Hi,

this patch updates generec and brcm47xx to linux 3.0.
runs on brcm47xx like a charm (for a few minutes by now ;) )

/Peter Wagner

Signed-off-by: Peter Wagner <tripo...@gmx.at>
diff --git a/include/kernel-version.mk b/include/kernel-version.mk
index 66fb021..4fd3207 100644
--- a/include/kernel-version.mk
+++ b/include/kernel-version.mk
@@ -29,6 +29,9 @@ endif
 ifeq ($(LINUX_VERSION),2.6.39.2)
   LINUX_KERNEL_MD5SUM:=51be93d92028658ec93f68b79a378b17
 endif
+ifeq ($(LINUX_VERSION),3.0)
+  LINUX_KERNEL_MD5SUM:=398e95866794def22b12dfbc15ce89c0
+endif
 
 # disable the md5sum check for unknown kernel versions
 LINUX_KERNEL_MD5SUM?=x
diff --git a/target/linux/brcm47xx/patches-3.0/240-ssb_no_sprom_on_pci.patch b/target/linux/brcm47xx/patches-3.0/240-ssb_no_sprom_on_pci.patch
index 52c8fe9..a0aa636 100644
--- a/target/linux/brcm47xx/patches-3.0/240-ssb_no_sprom_on_pci.patch
+++ b/target/linux/brcm47xx/patches-3.0/240-ssb_no_sprom_on_pci.patch
@@ -1,6 +1,8 @@
+diff --git a/drivers/ssb/driver_pcicore.c b/drivers/ssb/driver_pcicore.c
+index 11d85bf..836e2ee 100644
 --- a/drivers/ssb/driver_pcicore.c
 +++ b/drivers/ssb/driver_pcicore.c
-@@ -412,16 +412,6 @@ static int __devinit pcicore_is_in_hostm
+@@ -412,16 +412,6 @@ static int __devinit pcicore_is_in_hostmode(struct ssb_pcicore *pc)
   * Workarounds.
   **************************************************/
  
@@ -17,12 +19,12 @@
  static u8 ssb_pcicore_polarity_workaround(struct ssb_pcicore *pc)
  {
  	return (ssb_pcie_read(pc, 0x204) & 0x10) ? 0xC0 : 0x80;
-@@ -529,8 +519,6 @@ void __devinit ssb_pcicore_init(struct s
- 	if (!ssb_device_is_enabled(dev))
- 		ssb_device_enable(dev, 0);
+@@ -516,8 +506,6 @@ static void ssb_pcicore_pcie_setup_workarounds(struct ssb_pcicore *pc)
  
+ static void __devinit ssb_pcicore_init_clientmode(struct ssb_pcicore *pc)
+ {
 -	ssb_pcicore_fix_sprom_core_index(pc);
 -
- #ifdef CONFIG_SSB_PCICORE_HOSTMODE
- 	pc->hostmode = pcicore_is_in_hostmode(pc);
- 	if (pc->hostmode)
+ 	/* Disable PCI interrupts. */
+ 	ssb_write32(pc->dev, SSB_INTVEC, 0);
+ 
diff --git a/target/linux/generic/patches-3.0/020-ssb_update.patch b/target/linux/generic/patches-3.0/020-ssb_update.patch
index a310d90..4d430f8 100644
--- a/target/linux/generic/patches-3.0/020-ssb_update.patch
+++ b/target/linux/generic/patches-3.0/020-ssb_update.patch
@@ -1,6 +1,8 @@
+diff --git a/drivers/ssb/driver_chipcommon_pmu.c b/drivers/ssb/driver_chipcommon_pmu.c
+index 305ade7..a7aef47 100644
 --- a/drivers/ssb/driver_chipcommon_pmu.c
 +++ b/drivers/ssb/driver_chipcommon_pmu.c
-@@ -417,9 +417,9 @@ static void ssb_pmu_resources_init(struc
+@@ -417,9 +417,9 @@ static void ssb_pmu_resources_init(struct ssb_chipcommon *cc)
  	u32 min_msk = 0, max_msk = 0;
  	unsigned int i;
  	const struct pmu_res_updown_tab_entry *updown_tab = NULL;
@@ -12,9 +14,11 @@
  
  	switch (bus->chip_id) {
  	case 0x4312:
+diff --git a/drivers/ssb/driver_gige.c b/drivers/ssb/driver_gige.c
+index 5ba92a2..d758909 100644
 --- a/drivers/ssb/driver_gige.c
 +++ b/drivers/ssb/driver_gige.c
-@@ -106,8 +106,9 @@ void gige_pcicfg_write32(struct ssb_gige
+@@ -106,8 +106,9 @@ void gige_pcicfg_write32(struct ssb_gige *dev,
  	gige_write32(dev, SSB_GIGE_PCICFG + offset, value);
  }
  
@@ -26,7 +30,7 @@
  {
  	struct ssb_gige *dev = container_of(bus->ops, struct ssb_gige, pci_ops);
  	unsigned long flags;
-@@ -136,8 +137,9 @@ static int ssb_gige_pci_read_config(stru
+@@ -136,8 +137,9 @@ static int ssb_gige_pci_read_config(struct pci_bus *bus, unsigned int devfn,
  	return PCIBIOS_SUCCESSFUL;
  }
  
@@ -38,7 +42,7 @@
  {
  	struct ssb_gige *dev = container_of(bus->ops, struct ssb_gige, pci_ops);
  	unsigned long flags;
-@@ -166,7 +168,8 @@ static int ssb_gige_pci_write_config(str
+@@ -166,7 +168,8 @@ static int ssb_gige_pci_write_config(struct pci_bus *bus, unsigned int devfn,
  	return PCIBIOS_SUCCESSFUL;
  }
  
@@ -48,9 +52,11 @@
  {
  	struct ssb_gige *dev;
  	u32 base, tmslow, tmshigh;
+diff --git a/drivers/ssb/driver_pcicore.c b/drivers/ssb/driver_pcicore.c
+index d6620ad..11d85bf 100644
 --- a/drivers/ssb/driver_pcicore.c
 +++ b/drivers/ssb/driver_pcicore.c
-@@ -314,7 +314,7 @@ int ssb_pcicore_pcibios_map_irq(const st
+@@ -314,7 +314,7 @@ int ssb_pcicore_pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
  	return ssb_mips_irq(extpci_core->dev) + 2;
  }
  
@@ -59,7 +65,7 @@
  {
  	u32 val;
  
-@@ -379,7 +379,7 @@ static void ssb_pcicore_init_hostmode(st
+@@ -379,7 +379,7 @@ static void ssb_pcicore_init_hostmode(struct ssb_pcicore *pc)
  	register_pci_controller(&ssb_pcicore_controller);
  }
  
@@ -68,7 +74,7 @@
  {
  	struct ssb_bus *bus = pc->dev->bus;
  	u16 chipid_top;
-@@ -412,7 +412,7 @@ static int pcicore_is_in_hostmode(struct
+@@ -412,7 +412,7 @@ static int pcicore_is_in_hostmode(struct ssb_pcicore *pc)
   * Workarounds.
   **************************************************/
  
@@ -77,15 +83,17 @@
  {
  	u16 tmp = pcicore_read16(pc, SSB_PCICORE_SPROM(0));
  	if (((tmp & 0xF000) >> 12) != pc->dev->core_index) {
-@@ -514,13 +514,13 @@ static void ssb_pcicore_pcie_setup_worka
+@@ -514,7 +514,7 @@ static void ssb_pcicore_pcie_setup_workarounds(struct ssb_pcicore *pc)
   * Generic and Clientmode operation code.
   **************************************************/
  
 -static void ssb_pcicore_init_clientmode(struct ssb_pcicore *pc)
 +static void __devinit ssb_pcicore_init_clientmode(struct ssb_pcicore *pc)
  {
- 	/* Disable PCI interrupts. */
- 	ssb_write32(pc->dev, SSB_INTVEC, 0);
+ 	ssb_pcicore_fix_sprom_core_index(pc);
+ 
+@@ -529,7 +529,7 @@ static void ssb_pcicore_init_clientmode(struct ssb_pcicore *pc)
+ 	}
  }
  
 -void ssb_pcicore_init(struct ssb_pcicore *pc)
@@ -93,6 +101,8 @@
  {
  	struct ssb_device *dev = pc->dev;
  
+diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c
+index f8a13f8..57b7b64 100644
 --- a/drivers/ssb/main.c
 +++ b/drivers/ssb/main.c
 @@ -557,7 +557,7 @@ error:
@@ -141,7 +151,7 @@
  {
  	int err;
  
-@@ -897,8 +897,9 @@ EXPORT_SYMBOL(ssb_bus_pcmciabus_register
+@@ -897,8 +897,9 @@ EXPORT_SYMBOL(ssb_bus_pcmciabus_register);
  #endif /* CONFIG_SSB_PCMCIAHOST */
  
  #ifdef CONFIG_SSB_SDIOHOST
@@ -153,7 +163,7 @@
  {
  	int err;
  
-@@ -918,9 +919,9 @@ int ssb_bus_sdiobus_register(struct ssb_
+@@ -918,9 +919,9 @@ int ssb_bus_sdiobus_register(struct ssb_bus *bus, struct sdio_func *func,
  EXPORT_SYMBOL(ssb_bus_sdiobus_register);
  #endif /* CONFIG_SSB_PCMCIAHOST */
  
@@ -166,7 +176,7 @@
  {
  	int err;
  
-@@ -1001,8 +1002,8 @@ u32 ssb_calc_clock_rate(u32 plltype, u32
+@@ -1001,8 +1002,8 @@ u32 ssb_calc_clock_rate(u32 plltype, u32 n, u32 m)
  	switch (plltype) {
  	case SSB_PLLTYPE_6: /* 100/200 or 120/240 only */
  		if (m & SSB_CHIPCO_CLK_T6_MMASK)
@@ -177,9 +187,11 @@
  	case SSB_PLLTYPE_1: /* 48Mhz base, 3 dividers */
  	case SSB_PLLTYPE_3: /* 25Mhz, 2 dividers */
  	case SSB_PLLTYPE_4: /* 48Mhz, 4 dividers */
+diff --git a/drivers/ssb/pcihost_wrapper.c b/drivers/ssb/pcihost_wrapper.c
+index f6c8c81..d7a9813 100644
 --- a/drivers/ssb/pcihost_wrapper.c
 +++ b/drivers/ssb/pcihost_wrapper.c
-@@ -53,8 +53,8 @@ static int ssb_pcihost_resume(struct pci
+@@ -53,8 +53,8 @@ static int ssb_pcihost_resume(struct pci_dev *dev)
  # define ssb_pcihost_resume	NULL
  #endif /* CONFIG_PM */
  
@@ -190,7 +202,7 @@
  {
  	struct ssb_bus *ssb;
  	int err = -ENOMEM;
-@@ -110,7 +110,7 @@ static void ssb_pcihost_remove(struct pc
+@@ -110,7 +110,7 @@ static void ssb_pcihost_remove(struct pci_dev *dev)
  	pci_set_drvdata(dev, NULL);
  }
  
@@ -199,6 +211,8 @@
  {
  	driver->probe = ssb_pcihost_probe;
  	driver->remove = ssb_pcihost_remove;
+diff --git a/drivers/ssb/scan.c b/drivers/ssb/scan.c
+index 45e5bab..8047f9a 100644
 --- a/drivers/ssb/scan.c
 +++ b/drivers/ssb/scan.c
 @@ -310,8 +310,7 @@ int ssb_bus_scan(struct ssb_bus *bus,
diff --git a/target/linux/generic/patches-3.0/999-drop_sublevel.patch b/target/linux/generic/patches-3.0/999-drop_sublevel.patch
index f85fc86..ed938e0 100644
--- a/target/linux/generic/patches-3.0/999-drop_sublevel.patch
+++ b/target/linux/generic/patches-3.0/999-drop_sublevel.patch
@@ -4,6 +4,6 @@
  VERSION = 3
  PATCHLEVEL = 0
 -SUBLEVEL = 0
- EXTRAVERSION = -rc7
+ EXTRAVERSION =
  NAME = Sneaky Weasel
  
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to