SHOW:
|
|
- or go back to the newest paste.
| 1 | - | void ag71xx_link_adjust(struct ag71xx *ag) |
| 1 | + | void ag71xx_link_adjust(struct ag71xx * ag) {
|
| 2 | - | {
|
| 2 | + | struct ag71xx_platform_data * pdata = ag71xx_get_pdata(ag); |
| 3 | - | struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag); |
| 3 | + | u32 cfg2; |
| 4 | - | struct mii_bus *mii = ag->mii_bus; |
| 4 | + | u32 ifctl; |
| 5 | - | u32 cfg2; |
| 5 | + | u32 fifo5; |
| 6 | - | u32 ifctl; |
| 6 | + | u32 fifo3; |
| 7 | - | u32 fifo5; |
| 7 | + | |
| 8 | - | u32 fifo3; |
| 8 | + | struct device * dev = & ag - > pdev - > dev; |
| 9 | - | u32 phy_id; |
| 9 | + | struct phy_device * phydev = NULL; |
| 10 | - | int phy_ret; |
| 10 | + | |
| 11 | - | |
| 11 | + | //BEGIN new |
| 12 | - | phy_ret = get_phy_id(mii, 0, &phy_id); |
| 12 | + | int phy_addr; |
| 13 | - | pr_info("%s: PHY ID is %08x (ret=%d) (unschoener Opennet-Hack v3)\n", ag->dev->name, phy_id, phy_ret); //new inserted line
|
| 13 | + | |
| 14 | - | |
| 14 | + | int ret = 0; |
| 15 | - | if (!ag->link) {
|
| 15 | + | for (phy_addr = 0; phy_addr < PHY_MAX_ADDR; phy_addr++) {
|
| 16 | - | ag71xx_hw_stop(ag); |
| 16 | + | if (!(pdata - > phy_mask & (1 << phy_addr))) |
| 17 | - | netif_carrier_off(ag->dev); |
| 17 | + | continue; |
| 18 | - | if (netif_msg_link(ag)) |
| 18 | + | |
| 19 | - | pr_info("%s: link down\n", ag->dev->name);
|
| 19 | + | if (ag - > mii_bus - > phy_map[phy_addr] == NULL) |
| 20 | - | return; |
| 20 | + | continue; |
| 21 | - | } |
| 21 | + | |
| 22 | - | |
| 22 | + | DBG("%s: PHY found at %s, uid=%08x\n",
|
| 23 | - | if (pdata->is_ar724x) |
| 23 | + | dev_name(dev), |
| 24 | - | ag71xx_fast_reset(ag); |
| 24 | + | dev_name( & ag - > mii_bus - > phy_map[phy_addr] - > dev), |
| 25 | ag - > mii_bus - > phy_map[phy_addr] - > phy_id); | |
| 26 | ||
| 27 | if (phydev == NULL) | |
| 28 | phydev = ag - > mii_bus - > phy_map[phy_addr]; | |
| 29 | } | |
| 30 | ||
| 31 | dev_info(dev, "connected to PHY at %s [uid=%08x, driver=%s] (Opennet-Info1)\n", | |
| 32 | dev_name( & phydev - > dev), phydev - > phy_id, phydev - > drv - > name); | |
| 33 | //END new | |
| 34 | ||
| 35 | if (!ag - > link) {
| |
| 36 | ag71xx_hw_stop(ag); | |
| 37 | netif_carrier_off(ag - > dev); | |
| 38 | if (netif_msg_link(ag)) pr_info("%s: link down\n", ag - > dev - > name);
| |
| 39 | return; | |
| 40 | } |