From: Michael Büsch Date: Tue, 19 Feb 2008 01:32:06 +0000 (+0000) Subject: ssb: Workaround: Need subsys_initcall to be able to register a PCI bus. X-Git-Tag: reboot~27007 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=6119a6dfedc1f6d3254b21fe9b25e8e5053f5431;p=openwrt%2Fstaging%2Flynxis.git ssb: Workaround: Need subsys_initcall to be able to register a PCI bus. This needs a different fix, but use this workaround for now. SVN-Revision: 10491 --- diff --git a/target/linux/brcm47xx/patches-2.6.23/610-ssb-watchdog-fix.patch b/target/linux/brcm47xx/patches-2.6.23/610-ssb-watchdog-fix.patch index 55ba9a02f4..ece1b17223 100644 --- a/target/linux/brcm47xx/patches-2.6.23/610-ssb-watchdog-fix.patch +++ b/target/linux/brcm47xx/patches-2.6.23/610-ssb-watchdog-fix.patch @@ -1,7 +1,9 @@ ---- a/drivers/ssb/driver_mipscore.c 2007-12-06 08:07:00.000000000 +0100 -+++ b/drivers/ssb/driver_mipscore.c 2007-12-06 10:27:43.000000000 +0100 -@@ -31,6 +31,19 @@ - ssb_write32(extif->dev, offset, value); +Index: linux-2.6.23.16/drivers/ssb/driver_mipscore.c +=================================================================== +--- linux-2.6.23.16.orig/drivers/ssb/driver_mipscore.c 2008-02-19 02:13:15.000000000 +0100 ++++ linux-2.6.23.16/drivers/ssb/driver_mipscore.c 2008-02-19 02:13:17.000000000 +0100 +@@ -31,6 +31,19 @@ static inline void mips_write32(struct s + ssb_write32(mcore->dev, offset, value); } +/* Set chip watchdog reset timer to fire in 'ticks' backplane cycles */ @@ -20,9 +22,11 @@ static const u32 ipsflag_irq_mask[] = { 0, SSB_IPSFLAG_IRQ1, ---- a/include/linux/ssb/ssb_driver_mips.h 2007-12-06 08:07:00.000000000 +0100 -+++ b/include/linux/ssb/ssb_driver_mips.h 2007-12-06 10:32:36.000000000 +0100 -@@ -30,6 +30,8 @@ +Index: linux-2.6.23.16/include/linux/ssb/ssb_driver_mips.h +=================================================================== +--- linux-2.6.23.16.orig/include/linux/ssb/ssb_driver_mips.h 2008-02-19 02:13:15.000000000 +0100 ++++ linux-2.6.23.16/include/linux/ssb/ssb_driver_mips.h 2008-02-19 02:13:17.000000000 +0100 +@@ -30,6 +30,8 @@ extern u32 ssb_cpu_clock(struct ssb_mips extern unsigned int ssb_mips_irq(struct ssb_device *dev); @@ -31,9 +35,11 @@ #else /* CONFIG_SSB_DRIVER_MIPS */ ---- a/arch/mips/bcm947xx/setup.c 2007-12-06 08:07:00.000000000 +0100 -+++ b/arch/mips/bcm947xx/setup.c 2007-12-06 10:33:39.000000000 +0100 -@@ -55,7 +55,7 @@ +Index: linux-2.6.23.16/arch/mips/bcm947xx/setup.c +=================================================================== +--- linux-2.6.23.16.orig/arch/mips/bcm947xx/setup.c 2008-02-19 02:13:15.000000000 +0100 ++++ linux-2.6.23.16/arch/mips/bcm947xx/setup.c 2008-02-19 02:13:17.000000000 +0100 +@@ -55,7 +55,7 @@ static void bcm47xx_machine_restart(char */ /* Set the watchdog timer to reset immediately */ @@ -42,7 +48,7 @@ while (1) cpu_relax(); } -@@ -64,7 +64,7 @@ +@@ -64,7 +64,7 @@ static void bcm47xx_machine_halt(void) { /* Disable interrupts and watchdog and spin forever */ local_irq_disable(); diff --git a/target/linux/brcm47xx/patches-2.6.23/620-ssb-modinit-fix.patch b/target/linux/brcm47xx/patches-2.6.23/620-ssb-modinit-fix.patch new file mode 100644 index 0000000000..0fb00f1036 --- /dev/null +++ b/target/linux/brcm47xx/patches-2.6.23/620-ssb-modinit-fix.patch @@ -0,0 +1,15 @@ +Index: linux-2.6.23.16/drivers/ssb/main.c +=================================================================== +--- linux-2.6.23.16.orig/drivers/ssb/main.c 2008-02-19 02:24:48.000000000 +0100 ++++ linux-2.6.23.16/drivers/ssb/main.c 2008-02-19 02:27:59.000000000 +0100 +@@ -1164,7 +1164,9 @@ static int __init ssb_modinit(void) + /* ssb must be initialized after PCI but before the ssb drivers. + * That means we must use some initcall between subsys_initcall + * and device_initcall. */ +-fs_initcall(ssb_modinit); ++//FIXME on embedded we need to be early to make sure we can register ++// a new PCI bus, if needed. ++subsys_initcall(ssb_modinit); + + static void __exit ssb_modexit(void) + {