usb: renesas_usbhs: replace udelay() with usleep_range()
authorYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Thu, 17 Jan 2019 07:24:15 +0000 (16:24 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 18 Jan 2019 09:00:49 +0000 (10:00 +0100)
According to Documentation/timers/timers-howto.txt, a driver should
use usleep_range() instead of udelay() on NON-ATOMIC CONTEXT if
"SLEEPING FOR ~USECS OR SMALL MSECS ( 10us - 20ms)".

Since the .hardware_init() and .power_ctrl() will run on NON-ATOMIC
CONTEXT, this patch replaces udelay() with usleep_range().

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/renesas_usbhs/rcar3.c
drivers/usb/renesas_usbhs/rza.c

index aa38204482865f045de02cb26dd931faa87065ac..5e730e9b40ef5deef67aa45f90dba2e6e83941a2 100644 (file)
@@ -59,7 +59,7 @@ static int usbhs_rcar3_power_ctrl(struct platform_device *pdev,
        if (enable) {
                usbhs_bset(priv, LPSTS, LPSTS_SUSPM, LPSTS_SUSPM);
                /* The controller on R-Car Gen3 needs to wait up to 45 usec */
-               udelay(45);
+               usleep_range(45, 90);
        } else {
                usbhs_bset(priv, LPSTS, LPSTS_SUSPM, 0);
        }
index 5b287257ec11c02e2c4e39b17dc00eb06c7ed680..8c739bd24acd2da8097509822a82988dbc8e4248 100644 (file)
@@ -35,7 +35,7 @@ static int usbhs_rza1_hardware_init(struct platform_device *pdev)
 
        /* Enable USB PLL (NOTE: ch0 controls both ch0 and ch1) */
        usbhs_bset(priv, SYSCFG, UPLLE, UPLLE);
-       udelay(1000);
+       usleep_range(1000, 2000);
        usbhs_bset(priv, SUSPMODE, SUSPM, SUSPM);
 
        return 0;