From bf183aeff85bb573238fd16ac980d9c40f7c2fc5 Mon Sep 17 00:00:00 2001 From: hauke Date: Thu, 4 Aug 2011 20:04:54 +0000 Subject: brcm47xx: update patches * this adds sflash support for ssb devices * the flash is now a platform device * minor updates git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27902 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../patches-3.0/0004-bcma-add-SOC-bus.patch | 47 ++++++++++++++++++---- 1 file changed, 40 insertions(+), 7 deletions(-) (limited to 'target/linux/brcm47xx/patches-3.0/0004-bcma-add-SOC-bus.patch') diff --git a/target/linux/brcm47xx/patches-3.0/0004-bcma-add-SOC-bus.patch b/target/linux/brcm47xx/patches-3.0/0004-bcma-add-SOC-bus.patch index 035da9d76..6ad9dce4b 100644 --- a/target/linux/brcm47xx/patches-3.0/0004-bcma-add-SOC-bus.patch +++ b/target/linux/brcm47xx/patches-3.0/0004-bcma-add-SOC-bus.patch @@ -1,7 +1,7 @@ -From 22573303ad477fa07c948a9944e9c18fea9af724 Mon Sep 17 00:00:00 2001 +From d743a740b76a6be9e88fe1ae6991682927a7769c Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sat, 18 Jun 2011 14:31:53 +0200 -Subject: [PATCH 04/22] bcma: add SOC bus +Subject: [PATCH 04/26] bcma: add SOC bus MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -18,12 +18,14 @@ Signed-off-by: Hauke Mehrtens --- drivers/bcma/Kconfig | 4 + drivers/bcma/Makefile | 1 + + drivers/bcma/core.c | 2 + + drivers/bcma/driver_pci.c | 9 ++- drivers/bcma/host_soc.c | 183 +++++++++++++++++++++++++++++++++++++++++ - drivers/bcma/main.c | 6 +- + drivers/bcma/main.c | 9 ++- drivers/bcma/scan.c | 42 ++++++++- include/linux/bcma/bcma.h | 5 +- include/linux/bcma/bcma_soc.h | 16 ++++ - 7 files changed, 250 insertions(+), 7 deletions(-) + 9 files changed, 263 insertions(+), 8 deletions(-) create mode 100644 drivers/bcma/host_soc.c create mode 100644 include/linux/bcma/bcma_soc.h @@ -50,6 +52,35 @@ Signed-off-by: Hauke Mehrtens obj-$(CONFIG_BCMA) += bcma.o ccflags-$(CONFIG_BCMA_DEBUG) := -DDEBUG +--- a/drivers/bcma/core.c ++++ b/drivers/bcma/core.c +@@ -110,6 +110,8 @@ EXPORT_SYMBOL_GPL(bcma_core_pll_ctl); + u32 bcma_core_dma_translation(struct bcma_device *core) + { + switch (core->bus->hosttype) { ++ case BCMA_HOSTTYPE_SOC: ++ return 0; + case BCMA_HOSTTYPE_PCI: + if (bcma_aread32(core, BCMA_IOST) & BCMA_IOST_DMA64) + return BCMA_DMA_TRANSLATION_DMA64_CMT; +--- a/drivers/bcma/driver_pci.c ++++ b/drivers/bcma/driver_pci.c +@@ -208,7 +208,14 @@ int bcma_core_pci_irq_ctl(struct bcma_dr + { + struct pci_dev *pdev = pc->core->bus->host_pci; + u32 coremask, tmp; +- int err; ++ int err = 0; ++ ++ if (core->bus->hosttype != BCMA_HOSTTYPE_PCI) { ++ /* This bcma device is not on a PCI host-bus. So the IRQs are ++ * not routed through the PCI core. ++ * So we must not enable routing through the PCI core. */ ++ goto out; ++ } + + err = pci_read_config_dword(pdev, BCMA_PCI_IRQMASK, &tmp); + if (err) --- /dev/null +++ b/drivers/bcma/host_soc.c @@ -0,0 +1,183 @@ @@ -249,16 +280,18 @@ Signed-off-by: Hauke Mehrtens kfree(core); } -@@ -93,8 +97,8 @@ static int bcma_register_cores(struct bc +@@ -93,7 +97,10 @@ static int bcma_register_cores(struct bc core->dma_dev = &bus->host_pci->dev; core->irq = bus->host_pci->irq; break; - case BCMA_HOSTTYPE_NONE: - case BCMA_HOSTTYPE_SDIO: + case BCMA_HOSTTYPE_SOC: ++ core->dev.dma_mask = &core->dev.coherent_dma_mask; ++ core->dma_dev = &core->dev; ++ break; + case BCMA_HOSTTYPE_SDIO: break; } - --- a/drivers/bcma/scan.c +++ b/drivers/bcma/scan.c @@ -337,6 +337,16 @@ static int bcma_get_next_core(struct bcm -- cgit v1.2.3