Put the two poll intervals (min and max) in the driver's private
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 | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/marvell/mvmdio.c 
b/drivers/net/ethernet/marvell/mvmdio.c
index 8a71ef93a61b..3cb3dd3331d8 100644
--- a/drivers/net/ethernet/marvell/mvmdio.c
+++ b/drivers/net/ethernet/marvell/mvmdio.c
@@ -63,6 +63,9 @@ struct orion_mdio_dev {
        int err_interrupt;
        wait_queue_head_t smi_busy_wait;
        struct orion_mdio_ops *ops;
+
+       unsigned int poll_interval_min;
+       unsigned int poll_interval_max;
 };
 
 struct orion_mdio_ops {
@@ -123,8 +126,8 @@ static int orion_mdio_wait_ready(struct mii_bus *bus)
                        break;
 
                if (dev->err_interrupt <= 0) {
-                       usleep_range(MVMDIO_SMI_POLL_INTERVAL_MIN,
-                                    MVMDIO_SMI_POLL_INTERVAL_MAX);
+                       usleep_range(dev->poll_interval_min,
+                                    dev->poll_interval_max);
 
                        if (time_is_before_jiffies(end))
                                ++timedout;
@@ -279,6 +282,8 @@ static int orion_mdio_probe(struct platform_device *pdev)
        if (!ops)
                return -ENOMEM;
 
+       dev->poll_interval_min = MVMDIO_SMI_POLL_INTERVAL_MIN;
+       dev->poll_interval_max = MVMDIO_SMI_POLL_INTERVAL_MAX;
        ops->is_done = orion_mdio_smi_is_done;
        ops->is_read_valid = orion_mdio_smi_is_read_valid;
        ops->start_read = orion_mdio_start_read_op;
-- 
2.9.4

Reply via email to