mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-19 02:34:01 +08:00
usb: phy: phy-mv-usb: convert to readl_poll_timeout_atomic()
Use readl_poll_timeout_atomic() to simplify code Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Link: https://lore.kernel.org/r/1600668815-12135-9-git-send-email-chunfeng.yun@mediatek.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
a3e20fbd90
commit
f158afecff
@ -8,6 +8,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/iopoll.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/proc_fs.h>
|
||||
@ -135,8 +136,8 @@ static int mv_otg_set_timer(struct mv_otg *mvotg, unsigned int id,
|
||||
|
||||
static int mv_otg_reset(struct mv_otg *mvotg)
|
||||
{
|
||||
unsigned int loops;
|
||||
u32 tmp;
|
||||
int ret;
|
||||
|
||||
/* Stop the controller */
|
||||
tmp = readl(&mvotg->op_regs->usbcmd);
|
||||
@ -146,15 +147,12 @@ static int mv_otg_reset(struct mv_otg *mvotg)
|
||||
/* Reset the controller to get default values */
|
||||
writel(USBCMD_CTRL_RESET, &mvotg->op_regs->usbcmd);
|
||||
|
||||
loops = 500;
|
||||
while (readl(&mvotg->op_regs->usbcmd) & USBCMD_CTRL_RESET) {
|
||||
if (loops == 0) {
|
||||
dev_err(&mvotg->pdev->dev,
|
||||
"Wait for RESET completed TIMEOUT\n");
|
||||
return -ETIMEDOUT;
|
||||
}
|
||||
loops--;
|
||||
udelay(20);
|
||||
ret = readl_poll_timeout_atomic(&mvotg->op_regs->usbcmd, tmp,
|
||||
(tmp & USBCMD_CTRL_RESET), 10, 10000);
|
||||
if (ret < 0) {
|
||||
dev_err(&mvotg->pdev->dev,
|
||||
"Wait for RESET completed TIMEOUT\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
writel(0x0, &mvotg->op_regs->usbintr);
|
||||
|
Loading…
Reference in New Issue
Block a user