Ignore:
Timestamp:
2011-04-15T02:05:44+02:00 (6 years ago)
Author:
nbd
Message:

ar71xx: sync ethernet driver changes with trunk to fix MDIO issues on ar7240

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/backfire/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_mdio.c

    r19031 r26672  
    4848} 
    4949 
    50 static int ag71xx_mdio_mii_read(struct ag71xx_mdio *am, int addr, int reg) 
     50int ag71xx_mdio_mii_read(struct ag71xx_mdio *am, int addr, int reg) 
    5151{ 
    5252        int ret; 
     
    7474        DBG("mii_read: addr=%04x, reg=%04x, value=%04x\n", addr, reg, ret); 
    7575 
    76  out: 
     76out: 
    7777        return ret; 
    7878} 
    7979 
    80 static void ag71xx_mdio_mii_write(struct ag71xx_mdio *am, 
    81                                   int addr, int reg, u16 val) 
     80void ag71xx_mdio_mii_write(struct ag71xx_mdio *am, int addr, int reg, u16 val) 
    8281{ 
    8382        int i; 
     
    123122        struct ag71xx_mdio *am = bus->priv; 
    124123 
    125         return ag71xx_mdio_mii_read(am, addr, reg); 
     124        if (am->pdata->is_ar7240) 
     125                return ar7240sw_phy_read(bus, addr, reg); 
     126        else 
     127                return ag71xx_mdio_mii_read(am, addr, reg); 
    126128} 
    127129 
     
    130132        struct ag71xx_mdio *am = bus->priv; 
    131133 
    132         ag71xx_mdio_mii_write(am, addr, reg, val); 
    133         return 0; 
    134 } 
    135  
    136 static int __init ag71xx_mdio_probe(struct platform_device *pdev) 
     134        if (am->pdata->is_ar7240) 
     135                ar7240sw_phy_write(bus, addr, reg, val); 
     136        else 
     137                ag71xx_mdio_mii_write(am, addr, reg, val); 
     138        return 0; 
     139} 
     140 
     141static int __devinit ag71xx_mdio_probe(struct platform_device *pdev) 
    137142{ 
    138143        struct ag71xx_mdio_platform_data *pdata; 
     
    200205        return 0; 
    201206 
    202  err_free_bus: 
     207err_free_bus: 
    203208        mdiobus_free(am->mii_bus); 
    204  err_iounmap: 
     209err_iounmap: 
    205210        iounmap(am->mdio_base); 
    206  err_free_mdio: 
     211err_free_mdio: 
    207212        kfree(am); 
    208  err_out: 
     213err_out: 
    209214        return err; 
    210215} 
    211216 
    212 static int __exit ag71xx_mdio_remove(struct platform_device *pdev) 
     217static int __devexit ag71xx_mdio_remove(struct platform_device *pdev) 
    213218{ 
    214219        struct ag71xx_mdio *am = platform_get_drvdata(pdev); 
     
    233238}; 
    234239 
    235 int ag71xx_mdio_driver_init(void) 
     240int __init ag71xx_mdio_driver_init(void) 
    236241{ 
    237242        return platform_driver_register(&ag71xx_mdio_driver); 
Note: See TracChangeset for help on using the changeset viewer.