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