kernel: update bcma to version master-2014-07-29-1
authorhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 30 Jul 2014 18:54:10 +0000 (18:54 +0000)
committerhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 30 Jul 2014 18:54:10 +0000 (18:54 +0000)
This is a backport of bcma from wireless-tesing/master tag master-2014-07-29-1.

For kernel < 3.10 this only adds the header changes needed by more
recent b43 versions.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@41899 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/generic/patches-3.10/025-bcma_backport.patch
target/linux/generic/patches-3.13/025-bcma_backport.patch
target/linux/generic/patches-3.14/025-bcma_backport.patch
target/linux/generic/patches-3.3/025-bcma_backport.patch
target/linux/generic/patches-3.8/025-bcma_backport.patch
target/linux/generic/patches-3.9/025-bcma_backport.patch

index a6ae0cb..2b3f4ae 100644 (file)
        bcma_pmu_resources_init(cc);
        bcma_pmu_workarounds(cc);
  }
-@@ -480,6 +603,7 @@ void bcma_pmu_spuravoid_pllupdate(struct
+@@ -480,6 +603,8 @@ void bcma_pmu_spuravoid_pllupdate(struct
                tmp = BCMA_CC_PMU_CTL_PLL_UPD | BCMA_CC_PMU_CTL_NOILPONW;
                break;
  
++      case BCMA_CHIP_ID_BCM43131:
 +      case BCMA_CHIP_ID_BCM43217:
        case BCMA_CHIP_ID_BCM43227:
        case BCMA_CHIP_ID_BCM43228:
  }
  
  #ifdef CONFIG_PM_SLEEP
-@@ -267,14 +269,17 @@ static SIMPLE_DEV_PM_OPS(bcma_pm_ops, bc
+@@ -267,14 +269,18 @@ static SIMPLE_DEV_PM_OPS(bcma_pm_ops, bc
  
  #endif /* CONFIG_PM_SLEEP */
  
        { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4359) },
 +      { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4365) },
 +      { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x43a9) },
++      { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x43aa) },
        { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4727) },
        { 0, },
  };
  
        SPEX(leddc_on_time, SSB_SPROM8_LEDDC, SSB_SPROM8_LEDDC_ON,
             SSB_SPROM8_LEDDC_ON_SHIFT);
-@@ -502,12 +528,13 @@ static bool bcma_sprom_onchip_available(
+@@ -502,12 +528,14 @@ static bool bcma_sprom_onchip_available(
        case BCMA_CHIP_ID_BCM4331:
                present = chip_status & BCMA_CC_CHIPST_4331_OTP_PRESENT;
                break;
                /* for these chips OTP is always available */
                present = true;
                break;
++      case BCMA_CHIP_ID_BCM43131:
 +      case BCMA_CHIP_ID_BCM43217:
        case BCMA_CHIP_ID_BCM43227:
        case BCMA_CHIP_ID_BCM43228:
        case BCMA_CHIP_ID_BCM43428:
-@@ -550,7 +577,9 @@ int bcma_sprom_get(struct bcma_bus *bus)
+@@ -550,7 +578,9 @@ int bcma_sprom_get(struct bcma_bus *bus)
  {
        u16 offset = BCMA_CC_SPROM;
        u16 *sprom;
  
        if (!bus->drv_cc.core)
                return -EOPNOTSUPP;
-@@ -579,32 +608,37 @@ int bcma_sprom_get(struct bcma_bus *bus)
+@@ -579,32 +609,37 @@ int bcma_sprom_get(struct bcma_bus *bus)
                }
        }
  
  #define BCMA_CORE_4706_MAC_GBIT               0x52D
  #define BCMA_CORE_AMEMC                       0x52E   /* DDR1/2 memory controller core */
  #define BCMA_CORE_ALTA                        0x534   /* I2S core */
-@@ -144,6 +157,9 @@ struct bcma_host_ops {
+@@ -144,6 +157,10 @@ struct bcma_host_ops {
  
  /* Chip IDs of PCIe devices */
  #define BCMA_CHIP_ID_BCM4313  0x4313
 +#define BCMA_CHIP_ID_BCM43142 43142
++#define BCMA_CHIP_ID_BCM43131 43131
 +#define BCMA_CHIP_ID_BCM43217 43217
 +#define BCMA_CHIP_ID_BCM43222 43222
  #define BCMA_CHIP_ID_BCM43224 43224
  #define  BCMA_PKG_ID_BCM43224_FAB_CSM 0x8
  #define  BCMA_PKG_ID_BCM43224_FAB_SMIC        0xa
-@@ -176,6 +192,11 @@ struct bcma_host_ops {
+@@ -176,6 +193,11 @@ struct bcma_host_ops {
  #define  BCMA_PKG_ID_BCM5357  11
  #define BCMA_CHIP_ID_BCM53572 53572
  #define  BCMA_PKG_ID_BCM47188 9
  
  /* Board types (on PCI usually equals to the subsystem dev id) */
  /* BCM4313 */
-@@ -315,6 +336,7 @@ struct bcma_bus {
+@@ -315,6 +337,7 @@ struct bcma_bus {
  
        struct bcma_drv_cc drv_cc;
        struct bcma_drv_pci drv_pci[2];
        struct bcma_drv_mips drv_mips;
        struct bcma_drv_gmac_cmn drv_gmac_cmn;
  
-@@ -400,7 +422,14 @@ static inline void bcma_maskset16(struct
+@@ -400,7 +423,14 @@ static inline void bcma_maskset16(struct
        bcma_write16(cc, offset, (bcma_read16(cc, offset) & mask) | set);
  }
  
index 301a97c..e5c7e75 100644 (file)
  int bcma_bus_scan(struct bcma_bus *bus);
 --- a/drivers/bcma/driver_chipcommon_pmu.c
 +++ b/drivers/bcma/driver_chipcommon_pmu.c
-@@ -603,6 +603,7 @@ void bcma_pmu_spuravoid_pllupdate(struct
+@@ -603,6 +603,8 @@ void bcma_pmu_spuravoid_pllupdate(struct
                tmp = BCMA_CC_PMU_CTL_PLL_UPD | BCMA_CC_PMU_CTL_NOILPONW;
                break;
  
++      case BCMA_CHIP_ID_BCM43131:
 +      case BCMA_CHIP_ID_BCM43217:
        case BCMA_CHIP_ID_BCM43227:
        case BCMA_CHIP_ID_BCM43228:
        { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x0576) },
        { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4313) },
        { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 43224) },
-@@ -280,6 +279,7 @@ static DEFINE_PCI_DEVICE_TABLE(bcma_pci_
+@@ -280,6 +279,8 @@ static DEFINE_PCI_DEVICE_TABLE(bcma_pci_
        { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4358) },
        { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4359) },
        { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4365) },
 +      { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x43a9) },
++      { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x43aa) },
        { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4727) },
        { 0, },
  };
  
        SPEX(leddc_on_time, SSB_SPROM8_LEDDC, SSB_SPROM8_LEDDC_ON,
             SSB_SPROM8_LEDDC_ON_SHIFT);
-@@ -509,6 +534,7 @@ static bool bcma_sprom_onchip_available(
+@@ -509,6 +534,8 @@ static bool bcma_sprom_onchip_available(
                /* for these chips OTP is always available */
                present = true;
                break;
++      case BCMA_CHIP_ID_BCM43131:
 +      case BCMA_CHIP_ID_BCM43217:
        case BCMA_CHIP_ID_BCM43227:
        case BCMA_CHIP_ID_BCM43228:
  #include <linux/bcma/bcma_driver_mips.h>
  #include <linux/bcma/bcma_driver_gmac_cmn.h>
  #include <linux/ssb/ssb.h> /* SPROM sharing */
-@@ -157,6 +158,8 @@ struct bcma_host_ops {
+@@ -157,6 +158,9 @@ struct bcma_host_ops {
  /* Chip IDs of PCIe devices */
  #define BCMA_CHIP_ID_BCM4313  0x4313
  #define BCMA_CHIP_ID_BCM43142 43142
++#define BCMA_CHIP_ID_BCM43131 43131
 +#define BCMA_CHIP_ID_BCM43217 43217
 +#define BCMA_CHIP_ID_BCM43222 43222
  #define BCMA_CHIP_ID_BCM43224 43224
  #define  BCMA_PKG_ID_BCM43224_FAB_CSM 0x8
  #define  BCMA_PKG_ID_BCM43224_FAB_SMIC        0xa
-@@ -333,6 +336,7 @@ struct bcma_bus {
+@@ -333,6 +337,7 @@ struct bcma_bus {
  
        struct bcma_drv_cc drv_cc;
        struct bcma_drv_pci drv_pci[2];
        struct bcma_drv_mips drv_mips;
        struct bcma_drv_gmac_cmn drv_gmac_cmn;
  
-@@ -418,7 +422,14 @@ static inline void bcma_maskset16(struct
+@@ -418,7 +423,14 @@ static inline void bcma_maskset16(struct
        bcma_write16(cc, offset, (bcma_read16(cc, offset) & mask) | set);
  }
  
index 0dad074..1c4495f 100644 (file)
  bcma-$(CONFIG_BCMA_DRIVER_GMAC_CMN)   += driver_gmac_cmn.o
 --- a/drivers/bcma/driver_chipcommon_pmu.c
 +++ b/drivers/bcma/driver_chipcommon_pmu.c
-@@ -603,6 +603,7 @@ void bcma_pmu_spuravoid_pllupdate(struct
+@@ -603,6 +603,8 @@ void bcma_pmu_spuravoid_pllupdate(struct
                tmp = BCMA_CC_PMU_CTL_PLL_UPD | BCMA_CC_PMU_CTL_NOILPONW;
                break;
  
++      case BCMA_CHIP_ID_BCM43131:
 +      case BCMA_CHIP_ID_BCM43217:
        case BCMA_CHIP_ID_BCM43227:
        case BCMA_CHIP_ID_BCM43228:
 +}
 --- a/drivers/bcma/host_pci.c
 +++ b/drivers/bcma/host_pci.c
-@@ -279,6 +279,7 @@ static const struct pci_device_id bcma_p
+@@ -279,6 +279,8 @@ static const struct pci_device_id bcma_p
        { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4358) },
        { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4359) },
        { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4365) },
 +      { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x43a9) },
++      { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x43aa) },
        { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4727) },
        { 0, },
  };
  
        SPEX(leddc_on_time, SSB_SPROM8_LEDDC, SSB_SPROM8_LEDDC_ON,
             SSB_SPROM8_LEDDC_ON_SHIFT);
-@@ -509,6 +534,7 @@ static bool bcma_sprom_onchip_available(
+@@ -509,6 +534,8 @@ static bool bcma_sprom_onchip_available(
                /* for these chips OTP is always available */
                present = true;
                break;
++      case BCMA_CHIP_ID_BCM43131:
 +      case BCMA_CHIP_ID_BCM43217:
        case BCMA_CHIP_ID_BCM43227:
        case BCMA_CHIP_ID_BCM43228:
  #include <linux/bcma/bcma_driver_mips.h>
  #include <linux/bcma/bcma_driver_gmac_cmn.h>
  #include <linux/ssb/ssb.h> /* SPROM sharing */
-@@ -157,6 +158,8 @@ struct bcma_host_ops {
+@@ -157,6 +158,9 @@ struct bcma_host_ops {
  /* Chip IDs of PCIe devices */
  #define BCMA_CHIP_ID_BCM4313  0x4313
  #define BCMA_CHIP_ID_BCM43142 43142
++#define BCMA_CHIP_ID_BCM43131 43131
 +#define BCMA_CHIP_ID_BCM43217 43217
 +#define BCMA_CHIP_ID_BCM43222 43222
  #define BCMA_CHIP_ID_BCM43224 43224
  #define  BCMA_PKG_ID_BCM43224_FAB_CSM 0x8
  #define  BCMA_PKG_ID_BCM43224_FAB_SMIC        0xa
-@@ -333,6 +336,7 @@ struct bcma_bus {
+@@ -333,6 +337,7 @@ struct bcma_bus {
  
        struct bcma_drv_cc drv_cc;
        struct bcma_drv_pci drv_pci[2];
index 79f0b59..df80ec4 100644 (file)
  #define BCMA_CORE_INVALID             0x700
  #define BCMA_CORE_CHIPCOMMON          0x800
  #define BCMA_CORE_ILINE20             0x801
-@@ -121,10 +146,109 @@ struct bcma_host_ops {
+@@ -121,10 +146,112 @@ struct bcma_host_ops {
  #define BCMA_CORE_I2S                 0x834
  #define BCMA_CORE_SDR_DDR1_MEM_CTL    0x835   /* SDR/DDR1 memory controller core */
  #define BCMA_CORE_SHIM                        0x837   /* SHIM component in ubus/6362 */
 +/* Chip IDs of PCIe devices */
 +#define BCMA_CHIP_ID_BCM4313  0x4313
 +#define BCMA_CHIP_ID_BCM43142 43142
++#define BCMA_CHIP_ID_BCM43131  43131
++#define BCMA_CHIP_ID_BCM43217  43217
++#define BCMA_CHIP_ID_BCM43222  43222
 +#define BCMA_CHIP_ID_BCM43224 43224
 +#define  BCMA_PKG_ID_BCM43224_FAB_CSM 0x8
 +#define  BCMA_PKG_ID_BCM43224_FAB_SMIC        0xa
  struct bcma_device {
        struct bcma_bus *bus;
        struct bcma_device_id id;
-@@ -136,8 +260,10 @@ struct bcma_device {
+@@ -136,8 +263,10 @@ struct bcma_device {
        bool dev_registered;
  
        u8 core_index;
        u32 wrap;
  
        void __iomem *io_addr;
-@@ -175,6 +301,12 @@ int __bcma_driver_register(struct bcma_d
+@@ -175,6 +304,12 @@ int __bcma_driver_register(struct bcma_d
  
  extern void bcma_driver_unregister(struct bcma_driver *drv);
  
  struct bcma_bus {
        /* The MMIO area. */
        void __iomem *mmio;
-@@ -191,14 +323,18 @@ struct bcma_bus {
+@@ -191,14 +326,18 @@ struct bcma_bus {
  
        struct bcma_chipinfo chipinfo;
  
  
        /* We decided to share SPROM struct with SSB as long as we do not need
         * any hacks for BCMA. This simplifies drivers code. */
-@@ -282,6 +418,7 @@ static inline void bcma_maskset16(struct
+@@ -282,6 +421,7 @@ static inline void bcma_maskset16(struct
        bcma_write16(cc, offset, (bcma_read16(cc, offset) & mask) | set);
  }
  
  extern bool bcma_core_is_enabled(struct bcma_device *core);
  extern void bcma_core_disable(struct bcma_device *core, u32 flags);
  extern int bcma_core_enable(struct bcma_device *core, u32 flags);
-@@ -289,6 +426,7 @@ extern void bcma_core_set_clockmode(stru
+@@ -289,6 +429,7 @@ extern void bcma_core_set_clockmode(stru
                                    enum bcma_clkmode clkmode);
  extern void bcma_core_pll_ctl(struct bcma_device *core, u32 req, u32 status,
                              bool on);
index 6558454..21cffb1 100644 (file)
  #define BCMA_CORE_4706_MAC_GBIT               0x52D
  #define BCMA_CORE_AMEMC                       0x52E   /* DDR1/2 memory controller core */
  #define BCMA_CORE_ALTA                        0x534   /* I2S core */
-@@ -134,12 +146,17 @@ struct bcma_host_ops {
+@@ -134,12 +146,20 @@ struct bcma_host_ops {
  #define BCMA_CORE_I2S                 0x834
  #define BCMA_CORE_SDR_DDR1_MEM_CTL    0x835   /* SDR/DDR1 memory controller core */
  #define BCMA_CORE_SHIM                        0x837   /* SHIM component in ubus/6362 */
  /* Chip IDs of PCIe devices */
  #define BCMA_CHIP_ID_BCM4313  0x4313
 +#define BCMA_CHIP_ID_BCM43142 43142
++#define BCMA_CHIP_ID_BCM43131  43131
++#define BCMA_CHIP_ID_BCM43217  43217
++#define BCMA_CHIP_ID_BCM43222  43222
  #define BCMA_CHIP_ID_BCM43224 43224
  #define  BCMA_PKG_ID_BCM43224_FAB_CSM 0x8
  #define  BCMA_PKG_ID_BCM43224_FAB_SMIC        0xa
-@@ -172,6 +189,65 @@ struct bcma_host_ops {
+@@ -172,6 +192,65 @@ struct bcma_host_ops {
  #define  BCMA_PKG_ID_BCM5357  11
  #define BCMA_CHIP_ID_BCM53572 53572
  #define  BCMA_PKG_ID_BCM47188 9
index 92b1a32..9a40d6e 100644 (file)
  #define BCMA_CORE_4706_MAC_GBIT               0x52D
  #define BCMA_CORE_AMEMC                       0x52E   /* DDR1/2 memory controller core */
  #define BCMA_CORE_ALTA                        0x534   /* I2S core */
-@@ -134,12 +146,17 @@ struct bcma_host_ops {
+@@ -134,12 +146,20 @@ struct bcma_host_ops {
  #define BCMA_CORE_I2S                 0x834
  #define BCMA_CORE_SDR_DDR1_MEM_CTL    0x835   /* SDR/DDR1 memory controller core */
  #define BCMA_CORE_SHIM                        0x837   /* SHIM component in ubus/6362 */
  /* Chip IDs of PCIe devices */
  #define BCMA_CHIP_ID_BCM4313  0x4313
 +#define BCMA_CHIP_ID_BCM43142 43142
++#define BCMA_CHIP_ID_BCM43131  43131
++#define BCMA_CHIP_ID_BCM43217  43217
++#define BCMA_CHIP_ID_BCM43222  43222
  #define BCMA_CHIP_ID_BCM43224 43224
  #define  BCMA_PKG_ID_BCM43224_FAB_CSM 0x8
  #define  BCMA_PKG_ID_BCM43224_FAB_SMIC        0xa
-@@ -172,6 +189,65 @@ struct bcma_host_ops {
+@@ -172,6 +192,65 @@ struct bcma_host_ops {
  #define  BCMA_PKG_ID_BCM5357  11
  #define BCMA_CHIP_ID_BCM53572 53572
  #define  BCMA_PKG_ID_BCM47188 9