OSDN Git Service

net: mvmdio: put the poll intervals in the ops structure
authorAntoine Ténart <antoine.tenart@free-electrons.com>
Thu, 15 Jun 2017 14:43:21 +0000 (16:43 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 16 Jun 2017 16:27:11 +0000 (12:27 -0400)
Put the two poll intervals (min and max) in the driver's ops
structure. This is needed to add the xmdio support later.

Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/mvmdio.c

index 2a8efc7..e4aa8e2 100644 (file)
@@ -64,6 +64,8 @@ struct orion_mdio_dev {
 
 struct orion_mdio_ops {
        int (*is_done)(struct orion_mdio_dev *);
+       unsigned int poll_interval_min;
+       unsigned int poll_interval_max;
 };
 
 /* Wait for the SMI unit to be ready for another operation
@@ -83,8 +85,8 @@ static int orion_mdio_wait_ready(const struct orion_mdio_ops *ops,
                        break;
 
                if (dev->err_interrupt <= 0) {
-                       usleep_range(MVMDIO_SMI_POLL_INTERVAL_MIN,
-                                    MVMDIO_SMI_POLL_INTERVAL_MAX);
+                       usleep_range(ops->poll_interval_min,
+                                    ops->poll_interval_max);
 
                        if (time_is_before_jiffies(end))
                                ++timedout;
@@ -113,6 +115,8 @@ static int orion_mdio_smi_is_done(struct orion_mdio_dev *dev)
 
 static const struct orion_mdio_ops orion_mdio_smi_ops = {
        .is_done = orion_mdio_smi_is_done,
+       .poll_interval_min = MVMDIO_SMI_POLL_INTERVAL_MIN,
+       .poll_interval_max = MVMDIO_SMI_POLL_INTERVAL_MAX,
 };
 
 static int orion_mdio_read(struct mii_bus *bus, int mii_id,