]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ravb: Clean up duplex handling
authorMagnus Damm <damm+renesas@opensource.se>
Wed, 21 Nov 2018 11:21:26 +0000 (20:21 +0900)
committerDavid S. Miller <davem@davemloft.net>
Fri, 23 Nov 2018 19:14:47 +0000 (11:14 -0800)
Since only full-duplex operation is supported by the
hardware, remove duplex handling code and keep the
register setting of ECMR.DM fixed at 1.

This updates the driver implementation to follow the
data sheet text "This bit should always be set to 1."

Fixes: c156633f1353 ("Renesas Ethernet AVB driver proper")
Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Reviewed-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/renesas/ravb.h
drivers/net/ethernet/renesas/ravb_main.c

index 1c6e4df94f016561ef5d0851daedd8ea1823f274..ac9195add8116e4e55a4dc390c8692908ea0bbef 100644 (file)
@@ -1032,7 +1032,6 @@ struct ravb_private {
        phy_interface_t phy_interface;
        int msg_enable;
        int speed;
-       int duplex;
        int emac_irq;
        enum ravb_chip_id chip_id;
        int rx_irqs[NUM_RX_QUEUE];
index 24ad493ec136f5343e5e9f866f6d59b560219498..ffc1ada4e6da3408a0d13867618a7e735fd5c8df 100644 (file)
@@ -82,13 +82,6 @@ static int ravb_config(struct net_device *ndev)
        return error;
 }
 
-static void ravb_set_duplex(struct net_device *ndev)
-{
-       struct ravb_private *priv = netdev_priv(ndev);
-
-       ravb_modify(ndev, ECMR, ECMR_DM, priv->duplex ? ECMR_DM : 0);
-}
-
 static void ravb_set_rate(struct net_device *ndev)
 {
        struct ravb_private *priv = netdev_priv(ndev);
@@ -406,13 +399,11 @@ static int ravb_ring_init(struct net_device *ndev, int q)
 /* E-MAC init function */
 static void ravb_emac_init(struct net_device *ndev)
 {
-       struct ravb_private *priv = netdev_priv(ndev);
-
        /* Receive frame limit set register */
        ravb_write(ndev, ndev->mtu + ETH_HLEN + VLAN_HLEN + ETH_FCS_LEN, RFLR);
 
        /* EMAC Mode: PAUSE prohibition; Duplex; RX Checksum; TX; RX */
-       ravb_write(ndev, ECMR_ZPF | (priv->duplex ? ECMR_DM : 0) |
+       ravb_write(ndev, ECMR_ZPF | ECMR_DM |
                   (ndev->features & NETIF_F_RXCSUM ? ECMR_RCSC : 0) |
                   ECMR_TE | ECMR_RE, ECMR);
 
@@ -995,12 +986,6 @@ static void ravb_adjust_link(struct net_device *ndev)
                ravb_rcv_snd_disable(ndev);
 
        if (phydev->link) {
-               if (phydev->duplex != priv->duplex) {
-                       new_state = true;
-                       priv->duplex = phydev->duplex;
-                       ravb_set_duplex(ndev);
-               }
-
                if (phydev->speed != priv->speed) {
                        new_state = true;
                        priv->speed = phydev->speed;
@@ -1015,7 +1000,6 @@ static void ravb_adjust_link(struct net_device *ndev)
                new_state = true;
                priv->link = 0;
                priv->speed = 0;
-               priv->duplex = -1;
        }
 
        /* Enable TX and RX right over here, if E-MAC change is ignored */
@@ -1045,7 +1029,6 @@ static int ravb_phy_init(struct net_device *ndev)
 
        priv->link = 0;
        priv->speed = 0;
-       priv->duplex = -1;
 
        /* Try connecting to PHY */
        pn = of_parse_phandle(np, "phy-handle", 0);