lkml.org 
[lkml]   [2011]   [Oct]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC PATCH 10/17] pxa186_eth: Use standardized phy_init_hw() for PHY reset
    Date
    The PHY does not need to be reset immediately before phy_attach(), as
    that function will call phy_init_hw() properly on its own. Furthermore,
    the PHY should not be manually reset, as that will undo board-specific
    PHY fixups and driver-specific phy->drv->config_init() register tweaks.

    NOTE: Depends on earlier phy_init_hw() patch.

    Not-yet-Signed-off-by: Kyle Moffett <Kyle.D.Moffett@boeing.com>
    ---
    drivers/net/pxa168_eth.c | 21 +--------------------
    1 files changed, 1 insertions(+), 20 deletions(-)

    diff --git a/drivers/net/pxa168_eth.c b/drivers/net/pxa168_eth.c
    index d17d062..ab3bca9 100644
    --- a/drivers/net/pxa168_eth.c
    +++ b/drivers/net/pxa168_eth.c
    @@ -323,23 +323,6 @@ static void ethernet_phy_set_addr(struct pxa168_eth_private *pep, int phy_addr)
    wrl(pep, PHY_ADDRESS, reg_data);
    }

    -static void ethernet_phy_reset(struct pxa168_eth_private *pep)
    -{
    - int data;
    -
    - data = phy_read(pep->phy, MII_BMCR);
    - if (data < 0)
    - return;
    -
    - data |= BMCR_RESET;
    - if (phy_write(pep->phy, MII_BMCR, data) < 0)
    - return;
    -
    - do {
    - data = phy_read(pep->phy, MII_BMCR);
    - } while (data >= 0 && data & BMCR_RESET);
    -}
    -
    static void rxq_refill(struct net_device *dev)
    {
    struct pxa168_eth_private *pep = netdev_priv(dev);
    @@ -647,7 +630,7 @@ static void eth_port_start(struct net_device *dev)
    struct ethtool_cmd cmd;

    pxa168_get_settings(pep->dev, &cmd);
    - ethernet_phy_reset(pep);
    + phy_init_hw(pep->phy);
    pxa168_set_settings(pep->dev, &cmd);
    }

    @@ -1393,8 +1376,6 @@ static struct phy_device *phy_scan(struct pxa168_eth_private *pep, int phy_addr)
    static void phy_init(struct pxa168_eth_private *pep, int speed, int duplex)
    {
    struct phy_device *phy = pep->phy;
    - ethernet_phy_reset(pep);
    -
    phy_attach(pep->dev, dev_name(&phy->dev), 0, PHY_INTERFACE_MODE_MII);

    if (speed == 0) {
    --
    1.7.2.5


    \
     
     \ /
      Last update: 2011-10-20 23:15    [W:0.049 / U:31.076 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site