Merge the Sonics Silicon Backplane subsystem
Subsystems (3)
PATCH 1/1 Merge the Sonics Silicon Backplane subsystem
The Sonics Silicon Backplane is a mini-bus used on various Broadcom chips and embedded devices.
Devices using the SSB include b44, bcm43xx and various Broadcom based wireless routers.
A b44 and bcm43xx port and a SSB based OHCI driver is available.
--
Andrew, please put this patch into -mm.
This is the final patch to merge ssb, which means future cleanups and fixes will come incremental based on this one.
Please also schedule this patch for merge into mainline when the next merge window opens. I'll also send out a remind mail when that happens.
Please also leave the patch avoid-ssb-compililation-on-s390.patch
in -mm and also push that to mainline when the merge window opens.
drivers/Makefile +1 -0
@@ -87,3 +87,4 @@ obj-$(CONFIG_DMA_ENGINE) += dma/ obj-$(CONFIG_HID) += hid/ obj-$(CONFIG_PPC_PS3) += ps3/ obj-$(CONFIG_OF) += of/ +obj-$(CONFIG_SSB) += ssb/
drivers/Kconfig +2 -0
@@ -58,6 +58,8 @@ source "drivers/power/Kconfig" source "drivers/hwmon/Kconfig" +source "drivers/ssb/Kconfig" + source "drivers/mfd/Kconfig" source "drivers/media/Kconfig"
drivers/ssb/Makefile new file +13 -0
@@ -0,0 +1,13 @@ +# core +ssb-y += main.o scan.o + +# host support +ssb-$(CONFIG_SSB_PCIHOST) += pci.o pcihost_wrapper.o +ssb-$(CONFIG_SSB_PCMCIAHOST) += pcmcia.o + +# built-in drivers +ssb-y += driver_chipcommon.o +ssb-$(CONFIG_SSB_DRIVER_MIPS) += driver_mipscore.o +ssb-$(CONFIG_SSB_DRIVER_PCICORE) += driver_pcicore.o + +obj-$(CONFIG_SSB) += ssb.o
drivers/ssb/Kconfig new file +92 -0
92 lines not on this page · raw message
drivers/ssb/driver_chipcommon.c new file +394 -0
394 lines not on this page · raw message
drivers/ssb/driver_mipscore.c new file +258 -0
258 lines not on this page · raw message
drivers/ssb/driver_pcicore.c new file +568 -0
568 lines not on this page · raw message
drivers/ssb/main.c new file +1112 -0
1,112 lines not on this page · raw message
drivers/ssb/pci.c new file +704 -0
551 lines not on this page · raw message
drivers/ssb/pcihost_wrapper.c new file +104 -0
104 lines not on this page · raw message
drivers/ssb/pcmcia.c new file +265 -0
265 lines not on this page · raw message
drivers/ssb/scan.c new file +413 -0
413 lines not on this page · raw message
drivers/ssb/ssb_private.h new file +122 -0
122 lines not on this page · raw message
include/linux/ssb/ssb_driver_chipcommon.h new file +385 -0
385 lines not on this page · raw message
include/linux/ssb/ssb_driver_extif.h new file +160 -0
160 lines not on this page · raw message
include/linux/ssb/ssb_driver_mips.h new file +44 -0
44 lines not on this page · raw message
include/linux/ssb/ssb_driver_pci.h new file +106 -0
106 lines not on this page · raw message
include/linux/ssb/ssb.h new file +432 -0
432 lines not on this page · raw message
include/linux/ssb/ssb_regs.h new file +292 -0
292 lines not on this page · raw message
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.
Quoted 2 lines · On Sun, 29 Jul 2007 13:24:54 +0200 Michael Buesch <[email protected]> wrote:
The Sonics Silicon Backplane is a mini-bus used on various Broadcom chips and embedded devices.
Sigh.
s390:
drivers/ssb/main.c: In function 'ssb_ssb_read16':drivers/ssb/main.c:489: error: implicit declaration of function 'readw' drivers/ssb/main.c: In function 'ssb_ssb_read32':drivers/ssb/main.c:497: error: implicit declaration of function 'readl' drivers/ssb/main.c: In function 'ssb_ssb_write16':drivers/ssb/main.c:505: error: implicit declaration of function 'writew' drivers/ssb/main.c: In function 'ssb_ssb_write32':drivers/ssb/main.c:513: error: implicit declaration of function 'writel'
we shouldn't be compiling SSB on s390, because:
config SSB
tristate "Sonics Silicon Backplane support" depends on EXPERIMENTAL && HAS_IOMEM
and
akpm2:/usr/src/25> grep IOMEM .configCONFIG_NO_IOMEM=y
akpm2:/usr/src/25>
but
akpm2:/usr/src/25> grep SSB .configCONFIG_DCSSBLK=mCONFIG_SSB=mCONFIG_SSB_SILENT=y
well, how did that come about?
It _has_ to be select'. It's _always_ select'.
yup, it's `select':
Selected by: B44 && NETDEVICES && NET_ETHERNET || BCM43XX_MAC80211 && NETDEVICES && !S390 && MAC80211 && WLAN_80211 && EXPERIMENTAL
Look. Kconfig's `select' Just. Does. Not. Work. If you find yourself contemplating using it, please, don sackcloth, take a cold shower and several analgesics, then have another go, OK?
ho hum.
Quoted 43 lines · Andrew Morton
Quoted 2 lines · On Sun, 29 Jul 2007 13:24:54 +0200 Michael Buesch…
The Sonics Silicon Backplane is a mini-bus used on various Broadcom chips and embedded devices.
Sigh.
s390:
drivers/ssb/main.c: In function 'ssb_ssb_read16':drivers/ssb/main.c:489: error: implicit declaration of function 'readw'drivers/ssb/main.c: In function 'ssb_ssb_read32':drivers/ssb/main.c:497: error: implicit declaration of function 'readl'drivers/ssb/main.c: In function 'ssb_ssb_write16':drivers/ssb/main.c:505: error: implicit declaration of function 'writew'drivers/ssb/main.c: In function 'ssb_ssb_write32':drivers/ssb/main.c:513: error: implicit declaration of function 'writel'we shouldn't be compiling SSB on s390, because:
config SSB
tristate "Sonics Silicon Backplane support" depends on EXPERIMENTAL &&HAS_IOMEMand
akpm2:/usr/src/25> grep IOMEM .config
CONFIG_NO_IOMEM=y
akpm2:/usr/src/25>but
akpm2:/usr/src/25> grep SSB .config
CONFIG_DCSSBLK=mCONFIG_SSB=mCONFIG_SSB_SILENT=ywell, how did that come about?
It _has_ to be
select'. It's _always_select'.yup, it's `select':
Quoted 8 lines
Selected by: B44 && NETDEVICES &&
NET_ETHERNET||BCM43XX_MAC80211&& NETDEVICES && !S390 && MAC80211 &&WLAN_80211&& EXPERIMENTALLook. Kconfig's `select' Just. Does. Not. Work. If you find yourself contemplating using it, please, don sackcloth, take a cold shower and several analgesics, then have another go, OK?
ho hum.
Ah, yeah. Crap select not caring about dependencies... The problem is that people will kill me, if they don't find bcm43xx in the kconfig anymore, as they have to enable ssb before that. Ya know the flame with Uwe Bugla going crazy about that? :D
Same goes for b44. It was always there in kconfig without additional deps, but now (when we merge the b44 port) we would need ssb selected before we see b44.
Maybe default SSB to M?
Quoted 12 lines · On Wed, 1 Aug 2007 11:33:36 +0200 Michael Buesch…
Quoted 11 lines
yup, it's `select':
Selected by: B44 && NETDEVICES &&
NET_ETHERNET||BCM43XX_MAC80211&& NETDEVICES && !S390 && MAC80211 &&WLAN_80211&& EXPERIMENTALLook. Kconfig's `select' Just. Does. Not. Work. If you find yourself contemplating using it, please, don sackcloth, take a cold shower and several analgesics, then have another go, OK?
ho hum.
Quoted 8 lines
Ah, yeah. Crap select not caring about dependencies... The problem is that people will kill me, if they don't find bcm43xx in the kconfig anymore, as they have to enable ssb before that. Ya know the flame with Uwe Bugla going crazy about that? :D
Same goes for b44. It was always there in kconfig without additional deps, but now (when we merge the b44 port) we would need ssb selected before we see b44.
We just don't have a good solution to this.
`select' is bust and it's unobvious how it can _not_ be bust. If you're selecting something whose dependencies aren't met, what can we do? Maybe select the thing it depends on as well? What if it depends on (A||B)? Which one do we force on? Screwed.
And hiding options from the users until theyve gone elsewher and selected something else is most user-hostile.
At least we have menuconfig's "/" command, so if you know the option's name you can work out why it isn't appearing.
I think what we should do is to continue to offer the unselectable option in manuconfig and friends, only "greyed out" in some fashion. So the user can still navigate to it and select the "what do you depend on" button.
Quoted 1 line
Maybe default SSB to M?
People would complain about that too. I don't know what to do, sorry. Muddle through :(
Quoted 3 lines · Andrew Morton
Look. Kconfig's `select' Just. Does. Not. Work. If you find yourself contemplating using it, please, don sackcloth, take a cold shower and several analgesics, then have another go, OK?
Amen.
Signature · 1 line
dwmw2
Quoted 2 lines · On Sun, 29 Jul 2007 13:24:54 +0200 Michael Buesch…
The Sonics Silicon Backplane is a mini-bus used on various Broadcom chips and embedded devices.
A few probs with mips allmodconfig:
drivers/ssb/driver_mipscore.c:121: warning: "struct ssb_serial_ports" declared inside parameter list drivers/ssb/driver_mipscore.c:121: warning: its scope is only this definition or declaration, which is probably not what you want drivers/ssb/driver_mipscore.c: In function `ssb_mips_serial_init':drivers/ssb/driver_mipscore.c:166: warning: passing arg 1 of ssb_extif_serial_init' from incompatible pointer type drivers/ssb/driver_mipscore.c:166: warning: passing arg 2 of ssb_extif_serial_init' from incompatible pointer type drivers/ssb/driver_mipscore.c: At top level:drivers/ssb/driver_mipscore.c:188: warning: 'ssb_cpu_clock' defined but not used drivers/ssb/driver_pcicore.c: In function `ssb_fixup_pcibridge':drivers/ssb/driver_pcicore.c:98: error: implicit declaration of function `pcibios_enable_device' drivers/ssb/driver_pcicore.c: At top level:drivers/ssb/driver_pcicore.c:278: warning: integer overflow in expressiondrivers/ssb/driver_pcicore.c:278: warning: integer overflow in expression
the latter is due to .end in
static struct resource ssb_pcicore_mem_resource = {
.name = "SSB PCIcore external memory",
.start = SSB_PCI_DMA,
.end = SSB_PCI_DMA + SSB_PCI_DMA_SZ - 1,
.flags = IORESOURCE_MEM,};
It could be more Kconfig select borkage, of course..