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.ten...@free-electrons.com>
---
 drivers/net/ethernet/marvell/mvmdio.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/marvell/mvmdio.c 
b/drivers/net/ethernet/marvell/mvmdio.c
index f66b474b382a..07b18f60da2a 100644
--- a/drivers/net/ethernet/marvell/mvmdio.c
+++ b/drivers/net/ethernet/marvell/mvmdio.c
@@ -70,6 +70,9 @@ struct orion_mdio_ops {
        void (*start_read)(struct orion_mdio_dev *, int, int);
        u16 (*read)(struct orion_mdio_dev *);
        void (*write)(struct orion_mdio_dev *, int, int, u16);
+
+       unsigned int poll_interval_min;
+       unsigned int poll_interval_max;
 };
 
 static int orion_mdio_smi_is_done(struct orion_mdio_dev *dev)
@@ -112,6 +115,9 @@ static const struct orion_mdio_ops orion_mdio_smi_ops = {
        .start_read = orion_mdio_smi_start_read_op,
        .read = orion_mdio_smi_read_op,
        .write = orion_mdio_smi_write_op,
+
+       .poll_interval_min = MVMDIO_SMI_POLL_INTERVAL_MIN,
+       .poll_interval_max = MVMDIO_SMI_POLL_INTERVAL_MAX,
 };
 
 /* Wait for the SMI unit to be ready for another operation
@@ -131,8 +137,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;
-- 
2.9.4

Reply via email to