diff options
author | Hauke Mehrtens <hauke@hauke-m.de> | 2012-03-27 15:38:56 +0000 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2012-03-27 15:38:56 +0000 |
commit | 6fd915ba37b67723337bf49b929d115c71a576bb (patch) | |
tree | 0d0772e4ca05f6f7609fe2924feb550d8cf8c5c0 /target/linux/brcm47xx/patches-3.2/182-bcma-scan-for-extra-address-space.patch | |
parent | 877c407ade3cc0cb7cf249bfd690fe133f8e67c0 (diff) | |
download | mtk-20170518-6fd915ba37b67723337bf49b929d115c71a576bb.zip mtk-20170518-6fd915ba37b67723337bf49b929d115c71a576bb.tar.gz mtk-20170518-6fd915ba37b67723337bf49b929d115c71a576bb.tar.bz2 |
brcm47xx: update usb driver to the version send for mainline kernel integartion
SVN-Revision: 31089
Diffstat (limited to 'target/linux/brcm47xx/patches-3.2/182-bcma-scan-for-extra-address-space.patch')
-rw-r--r-- | target/linux/brcm47xx/patches-3.2/182-bcma-scan-for-extra-address-space.patch | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/target/linux/brcm47xx/patches-3.2/182-bcma-scan-for-extra-address-space.patch b/target/linux/brcm47xx/patches-3.2/182-bcma-scan-for-extra-address-space.patch new file mode 100644 index 0000000..6e68f0c --- /dev/null +++ b/target/linux/brcm47xx/patches-3.2/182-bcma-scan-for-extra-address-space.patch @@ -0,0 +1,45 @@ +--- a/drivers/bcma/scan.c ++++ b/drivers/bcma/scan.c +@@ -297,6 +297,23 @@ static int bcma_get_next_core(struct bcm + return -EILSEQ; + } + ++ /* First Slave Address Descriptor should be port 0: ++ * the main register space for the core ++ */ ++ tmp = bcma_erom_get_addr_desc(bus, eromptr, SCAN_ADDR_TYPE_SLAVE, 0); ++ if (tmp <= 0) { ++ /* Try again to see if it is a bridge */ ++ tmp = bcma_erom_get_addr_desc(bus, eromptr, ++ SCAN_ADDR_TYPE_BRIDGE, 0); ++ if (tmp <= 0) { ++ return -EILSEQ; ++ } else { ++ pr_info("Bridge found\n"); ++ return -ENXIO; ++ } ++ } ++ core->addr = tmp; ++ + /* get & parse slave ports */ + for (i = 0; i < ports[1]; i++) { + for (j = 0; ; j++) { +@@ -309,7 +326,7 @@ static int bcma_get_next_core(struct bcm + break; + } else { + if (i == 0 && j == 0) +- core->addr = tmp; ++ core->addr1 = tmp; + } + } + } +--- a/include/linux/bcma/bcma.h ++++ b/include/linux/bcma/bcma.h +@@ -139,6 +139,7 @@ struct bcma_device { + u8 core_unit; + + u32 addr; ++ u32 addr1; + u32 wrap; + + void __iomem *io_addr; |