Changeset 31925


Ignore:
Timestamp:
2012-05-27T23:02:41+02:00 (6 years ago)
Author:
nbd
Message:

ar71xx: fix MII clock settings for various chips, improves ethernet stability on AR934x

Location:
trunk/target/linux/ar71xx/files
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c

    r31533 r31925  
    200200        switch (ath79_soc) { 
    201201        case ATH79_SOC_AR7240: 
     202                mdio_data->is_ar7240 = 1; 
     203                /* fall through */ 
    202204        case ATH79_SOC_AR7241: 
     205                mdio_data->builtin_switch = 1; 
     206                break; 
     207 
    203208        case ATH79_SOC_AR9330: 
     209                mdio_data->is_ar9330 = 1; 
     210                /* fall through */ 
    204211        case ATH79_SOC_AR9331: 
    205                 mdio_data->is_ar7240 = 1; 
     212                mdio_data->builtin_switch = 1; 
    206213                break; 
    207214 
     
    210217        case ATH79_SOC_AR9344: 
    211218                if (id == 1) 
    212                         mdio_data->is_ar7240 = 1; 
     219                        mdio_data->builtin_switch = 1; 
     220                mdio_data->is_ar934x = 1; 
    213221                break; 
    214222 
  • trunk/target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h

    r31533 r31925  
    5050struct ag71xx_mdio_platform_data { 
    5151        u32             phy_mask; 
    52         int             is_ar7240; 
     52        u8              builtin_switch:1; 
     53        u8              is_ar7240:1; 
     54        u8              is_ar9330:1; 
     55        u8              is_ar934x:1; 
    5356}; 
    5457 
  • trunk/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h

    r31736 r31925  
    323323#define MII_CFG_CLK_DIV_20      6 
    324324#define MII_CFG_CLK_DIV_28      7 
     325#define MII_CFG_CLK_DIV_34      8 
     326#define MII_CFG_CLK_DIV_42      9 
     327#define MII_CFG_CLK_DIV_50      10 
     328#define MII_CFG_CLK_DIV_58      11 
     329#define MII_CFG_CLK_DIV_66      12 
     330#define MII_CFG_CLK_DIV_74      13 
     331#define MII_CFG_CLK_DIV_82      14 
     332#define MII_CFG_CLK_DIV_98      15 
    325333#define MII_CFG_RESET           BIT(31) 
    326334 
  • trunk/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_mdio.c

    r30405 r31925  
    104104        if (am->pdata->is_ar7240) 
    105105                t = MII_CFG_CLK_DIV_6; 
     106        else if (am->pdata->is_ar9330) 
     107                t = MII_CFG_CLK_DIV_98; 
     108        else if (am->pdata->builtin_switch && !am->pdata->is_ar934x) 
     109                t = MII_CFG_CLK_DIV_10; 
     110        else if (!am->pdata->builtin_switch && am->pdata->is_ar934x) 
     111                t = MII_CFG_CLK_DIV_58; 
    106112        else 
    107113                t = MII_CFG_CLK_DIV_28; 
     
    120126        struct ag71xx_mdio *am = bus->priv; 
    121127 
    122         if (am->pdata->is_ar7240) 
     128        if (am->pdata->builtin_switch) 
    123129                return ar7240sw_phy_read(bus, addr, reg); 
    124130        else 
     
    130136        struct ag71xx_mdio *am = bus->priv; 
    131137 
    132         if (am->pdata->is_ar7240) 
     138        if (am->pdata->builtin_switch) 
    133139                ar7240sw_phy_write(bus, addr, reg, val); 
    134140        else 
Note: See TracChangeset for help on using the changeset viewer.