Changeset 38290


Ignore:
Timestamp:
2013-10-03T00:26:15+02:00 (4 years ago)
Author:
hauke
Message:

kernel: bcma: update to wireless-testing master-2013-10-01

Signed-off-by: Hauke Mehrtens <hauke@…>

Location:
trunk/target/linux/generic
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/generic/patches-3.10/025-bcma_backport.patch

    r37957 r38290  
    679679  * Workarounds. 
    680680  **************************************************/ 
    681 @@ -203,6 +210,25 @@ static void bcma_core_pci_config_fixup(s 
    682         } 
    683  } 
    684   
    685 +static void bcma_core_pci_power_save(struct bcma_drv_pci *pc, bool up) 
     681@@ -229,6 +236,32 @@ void bcma_core_pci_init(struct bcma_drv_ 
     682                bcma_core_pci_clientmode_init(pc); 
     683 } 
     684  
     685+void bcma_core_pci_power_save(struct bcma_bus *bus, bool up) 
    686686+{ 
     687+       struct bcma_drv_pci *pc; 
    687688+       u16 data; 
     689+ 
     690+       if (bus->hosttype != BCMA_HOSTTYPE_PCI) 
     691+               return; 
     692+ 
     693+       pc = &bus->drv_pci[0]; 
    688694+ 
    689695+       if (pc->core->id.rev >= 15 && pc->core->id.rev <= 20) { 
     
    701707+       } 
    702708+} 
    703 + 
    704  /************************************************** 
    705   * Init. 
    706   **************************************************/ 
    707 @@ -262,7 +288,7 @@ out: 
     709+EXPORT_SYMBOL_GPL(bcma_core_pci_power_save); 
     710+ 
     711 int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc, struct bcma_device *core, 
     712                          bool enable) 
     713 { 
     714@@ -262,7 +295,7 @@ out: 
    708715 } 
    709716 EXPORT_SYMBOL_GPL(bcma_core_pci_irq_ctl); 
     
    714721        u32 w; 
    715722  
    716 @@ -274,4 +300,33 @@ void bcma_core_pci_extend_L1timer(struct 
     723@@ -274,4 +307,29 @@ void bcma_core_pci_extend_L1timer(struct 
    717724        bcma_pcie_write(pc, BCMA_CORE_PCI_DLLP_PMTHRESHREG, w); 
    718725        bcma_pcie_read(pc, BCMA_CORE_PCI_DLLP_PMTHRESHREG); 
     
    729736+       pc = &bus->drv_pci[0]; 
    730737+ 
    731 +       bcma_core_pci_power_save(pc, true); 
    732 + 
    733738+       bcma_core_pci_extend_L1timer(pc, true); 
    734739+} 
     
    745750+ 
    746751+       bcma_core_pci_extend_L1timer(pc, false); 
    747 + 
    748 +       bcma_core_pci_power_save(pc, false); 
    749752+} 
    750753+EXPORT_SYMBOL_GPL(bcma_core_pci_down); 
     
    900903 #ifdef CONFIG_BCMA_DRIVER_PCI_HOSTMODE 
    901904 struct bcma_drv_pci_host { 
    902 @@ -219,7 +240,8 @@ struct bcma_drv_pci { 
     905@@ -219,7 +240,9 @@ struct bcma_drv_pci { 
    903906 extern void bcma_core_pci_init(struct bcma_drv_pci *pc); 
    904907 extern int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc, 
     
    907910+extern void bcma_core_pci_up(struct bcma_bus *bus); 
    908911+extern void bcma_core_pci_down(struct bcma_bus *bus); 
     912+extern void bcma_core_pci_power_save(struct bcma_bus *bus, bool up); 
    909913  
    910914 extern int bcma_core_pci_pcibios_map_irq(const struct pci_dev *dev); 
  • trunk/target/linux/generic/patches-3.3/025-bcma_backport.patch

    r37957 r38290  
    22492249  
    22502250 /************************************************** 
    2251 @@ -138,88 +150,127 @@ static void bcma_pcie_mdio_write(struct 
     2251@@ -138,88 +150,134 @@ static void bcma_pcie_mdio_write(struct 
    22522252  
    22532253 static u8 bcma_pcicore_polarity_workaround(struct bcma_drv_pci *pc) 
     
    23022302+               pcicore_write16(pc, regoff, val16); 
    23032303+       } 
    2304  } 
    2305   
    2306 -/************************************************** 
    2307 - * Init. 
    2308 - **************************************************/ 
    2309 - 
    2310 -static void bcma_core_pci_clientmode_init(struct bcma_drv_pci *pc) 
     2304+} 
     2305+ 
    23112306+/* Fix MISC config to allow coming out of L2/L3-Ready state w/o PRST */ 
    23122307+/* Needs to happen when coming out of 'standby'/'hibernate' */ 
    23132308+static void bcma_core_pci_config_fixup(struct bcma_drv_pci *pc) 
    2314  { 
    2315 -       bcma_pcicore_serdes_workaround(pc); 
     2309+{ 
    23162310+       u16 val16; 
    23172311+       uint regoff; 
     
    23272321 } 
    23282322  
     2323 /************************************************** 
     2324  * Init. 
     2325  **************************************************/ 
     2326  
     2327-static void bcma_core_pci_clientmode_init(struct bcma_drv_pci *pc) 
     2328+static void __devinit bcma_core_pci_clientmode_init(struct bcma_drv_pci *pc) 
     2329 { 
     2330+       bcma_core_pci_fixcfg(pc); 
     2331        bcma_pcicore_serdes_workaround(pc); 
     2332+       bcma_core_pci_config_fixup(pc); 
     2333 } 
     2334  
    23292335-static bool bcma_core_pci_is_in_hostmode(struct bcma_drv_pci *pc) 
    2330 +static void bcma_core_pci_power_save(struct bcma_drv_pci *pc, bool up) 
    2331  { 
     2336-{ 
    23322337-       struct bcma_bus *bus = pc->core->bus; 
    23332338-       u16 chipid_top; 
    2334 +       u16 data; 
    2335   
     2339- 
    23362340-       chipid_top = (bus->chipinfo.id & 0xFF00); 
    23372341-       if (chipid_top != 0x4700 && 
     
    23432347-               return false; 
    23442348-#endif /* CONFIG_SSB_DRIVER_PCICORE */ 
     2349- 
     2350-#if 0 
     2351-       /* TODO: on BCMA we use address from EROM instead of magic formula */ 
     2352-       u32 tmp; 
     2353-       return !mips_busprobe32(tmp, (bus->mmio + 
     2354-               (pc->core->core_index * BCMA_CORE_SIZE))); 
     2355-#endif 
     2356- 
     2357-       return true; 
     2358-} 
     2359- 
     2360-void bcma_core_pci_init(struct bcma_drv_pci *pc) 
     2361+void __devinit bcma_core_pci_init(struct bcma_drv_pci *pc) 
     2362 { 
     2363        if (pc->setup_done) 
     2364                return; 
     2365  
     2366-       if (bcma_core_pci_is_in_hostmode(pc)) { 
     2367 #ifdef CONFIG_BCMA_DRIVER_PCI_HOSTMODE 
     2368+       pc->hostmode = bcma_core_pci_is_in_hostmode(pc); 
     2369+       if (pc->hostmode) 
     2370                bcma_core_pci_hostmode_init(pc); 
     2371-#else 
     2372-               pr_err("Driver compiled without support for hostmode PCI\n"); 
     2373 #endif /* CONFIG_BCMA_DRIVER_PCI_HOSTMODE */ 
     2374-       } else { 
     2375+ 
     2376+       if (!pc->hostmode) 
     2377                bcma_core_pci_clientmode_init(pc); 
     2378-       } 
     2379+} 
     2380+ 
     2381+void bcma_core_pci_power_save(struct bcma_bus *bus, bool up) 
     2382+{ 
     2383+       struct bcma_drv_pci *pc; 
     2384+       u16 data; 
     2385  
     2386-       pc->setup_done = true; 
     2387+       if (bus->hosttype != BCMA_HOSTTYPE_PCI) 
     2388+               return; 
     2389+ 
     2390+       pc = &bus->drv_pci[0]; 
     2391+ 
    23452392+       if (pc->core->id.rev >= 15 && pc->core->id.rev <= 20) { 
    23462393+               data = up ? 0x74 : 0x7C; 
     
    23562403+                                        BCMA_CORE_PCI_MDIO_BLK1_MGMT3, data); 
    23572404+       } 
    2358 +} 
    2359   
    2360 -#if 0 
    2361 -       /* TODO: on BCMA we use address from EROM instead of magic formula */ 
    2362 -       u32 tmp; 
    2363 -       return !mips_busprobe32(tmp, (bus->mmio + 
    2364 -               (pc->core->core_index * BCMA_CORE_SIZE))); 
    2365 -#endif 
    2366 +/************************************************** 
    2367 + * Init. 
    2368 + **************************************************/ 
    2369   
    2370 -       return true; 
    2371 +static void __devinit bcma_core_pci_clientmode_init(struct bcma_drv_pci *pc) 
    2372 +{ 
    2373 +       bcma_core_pci_fixcfg(pc); 
    2374 +       bcma_pcicore_serdes_workaround(pc); 
    2375 +       bcma_core_pci_config_fixup(pc); 
    2376  } 
    2377   
    2378 -void bcma_core_pci_init(struct bcma_drv_pci *pc) 
    2379 +void __devinit bcma_core_pci_init(struct bcma_drv_pci *pc) 
    2380  { 
    2381         if (pc->setup_done) 
    2382                 return; 
    2383   
    2384 -       if (bcma_core_pci_is_in_hostmode(pc)) { 
    2385  #ifdef CONFIG_BCMA_DRIVER_PCI_HOSTMODE 
    2386 +       pc->hostmode = bcma_core_pci_is_in_hostmode(pc); 
    2387 +       if (pc->hostmode) 
    2388                 bcma_core_pci_hostmode_init(pc); 
    2389 -#else 
    2390 -               pr_err("Driver compiled without support for hostmode PCI\n"); 
    2391  #endif /* CONFIG_BCMA_DRIVER_PCI_HOSTMODE */ 
    2392 -       } else { 
    2393 -               bcma_core_pci_clientmode_init(pc); 
    2394 -       } 
    2395   
    2396 -       pc->setup_done = true; 
    2397 +       if (!pc->hostmode) 
    2398 +               bcma_core_pci_clientmode_init(pc); 
    2399  } 
     2405 } 
     2406+EXPORT_SYMBOL_GPL(bcma_core_pci_power_save); 
    24002407  
    24012408 int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc, struct bcma_device *core, 
     
    24202427        if (err) 
    24212428                goto out; 
    2422 @@ -236,3 +287,46 @@ out: 
     2429@@ -236,3 +294,42 @@ out: 
    24232430        return err; 
    24242431 } 
     
    24472454+       pc = &bus->drv_pci[0]; 
    24482455+ 
    2449 +       bcma_core_pci_power_save(pc, true); 
    2450 + 
    24512456+       bcma_core_pci_extend_L1timer(pc, true); 
    24522457+} 
     
    24632468+ 
    24642469+       bcma_core_pci_extend_L1timer(pc, false); 
    2465 + 
    2466 +       bcma_core_pci_power_save(pc, false); 
    24672470+} 
    24682471+EXPORT_SYMBOL_GPL(bcma_core_pci_down); 
     
    55595562 /* SBtoPCIx */ 
    55605563 #define BCMA_CORE_PCI_SBTOPCI_MEM              0x00000000 
    5561 @@ -72,20 +108,142 @@ struct pci_dev; 
     5564@@ -72,20 +108,143 @@ struct pci_dev; 
    55625565 #define  BCMA_CORE_PCI_SBTOPCI_RC_READL                0x00000010 /* Memory read line */ 
    55635566 #define  BCMA_CORE_PCI_SBTOPCI_RC_READM                0x00000020 /* Memory read multiple */ 
     
    56985701+extern void bcma_core_pci_up(struct bcma_bus *bus); 
    56995702+extern void bcma_core_pci_down(struct bcma_bus *bus); 
     5703+extern void bcma_core_pci_power_save(struct bcma_bus *bus, bool up); 
    57005704+ 
    57015705+extern int bcma_core_pci_pcibios_map_irq(const struct pci_dev *dev); 
  • trunk/target/linux/generic/patches-3.6/025-bcma_backport.patch

    r37957 r38290  
    16851685  * Workarounds. 
    16861686  **************************************************/ 
    1687 @@ -203,6 +210,25 @@ static void bcma_core_pci_config_fixup(s 
    1688         } 
    1689  } 
    1690   
    1691 +static void bcma_core_pci_power_save(struct bcma_drv_pci *pc, bool up) 
    1692 +{ 
     1687@@ -229,6 +236,32 @@ void __devinit bcma_core_pci_init(struct 
     1688                bcma_core_pci_clientmode_init(pc); 
     1689 } 
     1690  
     1691+void bcma_core_pci_power_save(struct bcma_bus *bus, bool up) 
     1692+{ 
     1693+       struct bcma_drv_pci *pc; 
    16931694+       u16 data; 
     1695+ 
     1696+       if (bus->hosttype != BCMA_HOSTTYPE_PCI) 
     1697+               return; 
     1698+ 
     1699+       pc = &bus->drv_pci[0]; 
    16941700+ 
    16951701+       if (pc->core->id.rev >= 15 && pc->core->id.rev <= 20) { 
     
    17071713+       } 
    17081714+} 
    1709 + 
    1710  /************************************************** 
    1711   * Init. 
    1712   **************************************************/ 
    1713 @@ -262,7 +288,7 @@ out: 
     1715+EXPORT_SYMBOL_GPL(bcma_core_pci_power_save); 
     1716+ 
     1717 int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc, struct bcma_device *core, 
     1718                          bool enable) 
     1719 { 
     1720@@ -262,7 +295,7 @@ out: 
    17141721 } 
    17151722 EXPORT_SYMBOL_GPL(bcma_core_pci_irq_ctl); 
     
    17201727        u32 w; 
    17211728  
    1722 @@ -274,4 +300,33 @@ void bcma_core_pci_extend_L1timer(struct 
     1729@@ -274,4 +307,29 @@ void bcma_core_pci_extend_L1timer(struct 
    17231730        bcma_pcie_write(pc, BCMA_CORE_PCI_DLLP_PMTHRESHREG, w); 
    17241731        bcma_pcie_read(pc, BCMA_CORE_PCI_DLLP_PMTHRESHREG); 
     
    17351742+       pc = &bus->drv_pci[0]; 
    17361743+ 
    1737 +       bcma_core_pci_power_save(pc, true); 
    1738 + 
    17391744+       bcma_core_pci_extend_L1timer(pc, true); 
    17401745+} 
     
    17511756+ 
    17521757+       bcma_core_pci_extend_L1timer(pc, false); 
    1753 + 
    1754 +       bcma_core_pci_power_save(pc, false); 
    17551758+} 
    17561759+EXPORT_SYMBOL_GPL(bcma_core_pci_down); 
     
    32113214 #ifdef CONFIG_BCMA_DRIVER_PCI_HOSTMODE 
    32123215 struct bcma_drv_pci_host { 
    3213 @@ -217,7 +240,8 @@ struct bcma_drv_pci { 
     3216@@ -217,7 +240,9 @@ struct bcma_drv_pci { 
    32143217 extern void __devinit bcma_core_pci_init(struct bcma_drv_pci *pc); 
    32153218 extern int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc, 
     
    32183221+extern void bcma_core_pci_up(struct bcma_bus *bus); 
    32193222+extern void bcma_core_pci_down(struct bcma_bus *bus); 
     3223+extern void bcma_core_pci_power_save(struct bcma_bus *bus, bool up); 
    32203224  
    32213225 extern int bcma_core_pci_pcibios_map_irq(const struct pci_dev *dev); 
  • trunk/target/linux/generic/patches-3.8/025-bcma_backport.patch

    r37957 r38290  
    17701770 #ifdef CONFIG_BCMA_DRIVER_PCI_HOSTMODE 
    17711771 struct bcma_drv_pci_host { 
    1772 @@ -217,7 +240,8 @@ struct bcma_drv_pci { 
     1772@@ -217,7 +240,9 @@ struct bcma_drv_pci { 
    17731773 extern void bcma_core_pci_init(struct bcma_drv_pci *pc); 
    17741774 extern int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc, 
     
    17771777+extern void bcma_core_pci_up(struct bcma_bus *bus); 
    17781778+extern void bcma_core_pci_down(struct bcma_bus *bus); 
     1779+extern void bcma_core_pci_power_save(struct bcma_bus *bus, bool up); 
    17791780  
    17801781 extern int bcma_core_pci_pcibios_map_irq(const struct pci_dev *dev); 
     
    18331834  * Workarounds. 
    18341835  **************************************************/ 
    1835 @@ -203,6 +210,25 @@ static void bcma_core_pci_config_fixup(s 
    1836         } 
    1837  } 
    1838   
    1839 +static void bcma_core_pci_power_save(struct bcma_drv_pci *pc, bool up) 
     1836@@ -229,6 +236,32 @@ void bcma_core_pci_init(struct bcma_drv_ 
     1837                bcma_core_pci_clientmode_init(pc); 
     1838 } 
     1839  
     1840+void bcma_core_pci_power_save(struct bcma_bus *bus, bool up) 
    18401841+{ 
     1842+       struct bcma_drv_pci *pc; 
    18411843+       u16 data; 
     1844+ 
     1845+       if (bus->hosttype != BCMA_HOSTTYPE_PCI) 
     1846+               return; 
     1847+ 
     1848+       pc = &bus->drv_pci[0]; 
    18421849+ 
    18431850+       if (pc->core->id.rev >= 15 && pc->core->id.rev <= 20) { 
     
    18551862+       } 
    18561863+} 
    1857 + 
    1858  /************************************************** 
    1859   * Init. 
    1860   **************************************************/ 
    1861 @@ -262,7 +288,7 @@ out: 
     1864+EXPORT_SYMBOL_GPL(bcma_core_pci_power_save); 
     1865+ 
     1866 int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc, struct bcma_device *core, 
     1867                          bool enable) 
     1868 { 
     1869@@ -262,7 +295,7 @@ out: 
    18621870 } 
    18631871 EXPORT_SYMBOL_GPL(bcma_core_pci_irq_ctl); 
     
    18681876        u32 w; 
    18691877  
    1870 @@ -274,4 +300,33 @@ void bcma_core_pci_extend_L1timer(struct 
     1878@@ -274,4 +307,29 @@ void bcma_core_pci_extend_L1timer(struct 
    18711879        bcma_pcie_write(pc, BCMA_CORE_PCI_DLLP_PMTHRESHREG, w); 
    18721880        bcma_pcie_read(pc, BCMA_CORE_PCI_DLLP_PMTHRESHREG); 
     
    18831891+       pc = &bus->drv_pci[0]; 
    18841892+ 
    1885 +       bcma_core_pci_power_save(pc, true); 
    1886 + 
    18871893+       bcma_core_pci_extend_L1timer(pc, true); 
    18881894+} 
     
    18991905+ 
    19001906+       bcma_core_pci_extend_L1timer(pc, false); 
    1901 + 
    1902 +       bcma_core_pci_power_save(pc, false); 
    19031907+} 
    19041908+EXPORT_SYMBOL_GPL(bcma_core_pci_down); 
  • trunk/target/linux/generic/patches-3.9/025-bcma_backport.patch

    r37957 r38290  
    10931093  * Workarounds. 
    10941094  **************************************************/ 
    1095 @@ -203,6 +210,25 @@ static void bcma_core_pci_config_fixup(s 
    1096         } 
    1097  } 
    1098   
    1099 +static void bcma_core_pci_power_save(struct bcma_drv_pci *pc, bool up) 
     1095@@ -229,6 +236,32 @@ void bcma_core_pci_init(struct bcma_drv_ 
     1096                bcma_core_pci_clientmode_init(pc); 
     1097 } 
     1098  
     1099+void bcma_core_pci_power_save(struct bcma_bus *bus, bool up) 
    11001100+{ 
     1101+       struct bcma_drv_pci *pc; 
    11011102+       u16 data; 
     1103+ 
     1104+       if (bus->hosttype != BCMA_HOSTTYPE_PCI) 
     1105+               return; 
     1106+ 
     1107+       pc = &bus->drv_pci[0]; 
    11021108+ 
    11031109+       if (pc->core->id.rev >= 15 && pc->core->id.rev <= 20) { 
     
    11151121+       } 
    11161122+} 
    1117 + 
    1118  /************************************************** 
    1119   * Init. 
    1120   **************************************************/ 
    1121 @@ -262,7 +288,7 @@ out: 
     1123+EXPORT_SYMBOL_GPL(bcma_core_pci_power_save); 
     1124+ 
     1125 int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc, struct bcma_device *core, 
     1126                          bool enable) 
     1127 { 
     1128@@ -262,7 +295,7 @@ out: 
    11221129 } 
    11231130 EXPORT_SYMBOL_GPL(bcma_core_pci_irq_ctl); 
     
    11281135        u32 w; 
    11291136  
    1130 @@ -274,4 +300,33 @@ void bcma_core_pci_extend_L1timer(struct 
     1137@@ -274,4 +307,29 @@ void bcma_core_pci_extend_L1timer(struct 
    11311138        bcma_pcie_write(pc, BCMA_CORE_PCI_DLLP_PMTHRESHREG, w); 
    11321139        bcma_pcie_read(pc, BCMA_CORE_PCI_DLLP_PMTHRESHREG); 
     
    11431150+       pc = &bus->drv_pci[0]; 
    11441151+ 
    1145 +       bcma_core_pci_power_save(pc, true); 
    1146 + 
    11471152+       bcma_core_pci_extend_L1timer(pc, true); 
    11481153+} 
     
    11591164+ 
    11601165+       bcma_core_pci_extend_L1timer(pc, false); 
    1161 + 
    1162 +       bcma_core_pci_power_save(pc, false); 
    11631166+} 
    11641167+EXPORT_SYMBOL_GPL(bcma_core_pci_down); 
     
    12191222 #ifdef CONFIG_BCMA_DRIVER_PCI_HOSTMODE 
    12201223 struct bcma_drv_pci_host { 
    1221 @@ -219,7 +240,8 @@ struct bcma_drv_pci { 
     1224@@ -219,7 +240,9 @@ struct bcma_drv_pci { 
    12221225 extern void bcma_core_pci_init(struct bcma_drv_pci *pc); 
    12231226 extern int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc, 
     
    12261229+extern void bcma_core_pci_up(struct bcma_bus *bus); 
    12271230+extern void bcma_core_pci_down(struct bcma_bus *bus); 
     1231+extern void bcma_core_pci_power_save(struct bcma_bus *bus, bool up); 
    12281232  
    12291233 extern int bcma_core_pci_pcibios_map_irq(const struct pci_dev *dev); 
Note: See TracChangeset for help on using the changeset viewer.