On 10/05/2017 02:11 PM, Andrzej Pietrasiewicz wrote:
> +static int crport_handshake(struct exynos5_usbdrd_phy *phy_drd,
> +                                             u32 val, u32 cmd)
> +{
> +     u32 usec = 100;
> +     unsigned int result;
> +
> +     writel(val | cmd, phy_drd->reg_phy + EXYNOS5_DRD_PHYREG0);
> +
> +     do {
> +             result = readl(phy_drd->reg_phy + EXYNOS5_DRD_PHYREG1);
> +             if (result & PHYREG1_CR_ACK)
> +                     break;
> +
> +             udelay(1);
> +     } while (usec-- > 0);

It looks like you could use readl_poll_timeout_atomic() macro 
instead of these polling loops.

-- 
Regards,
Sylwester
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to