Commit 81bda12a authored by Andy Shevchenko's avatar Andy Shevchenko

platform/x86: intel_atomisp2_pm: Refactor timeout loop

The timeout loop look more naturally when done like

	unsigned long timeout = ...;
	...
	do {
		...
		if (cond)
			return %OK;

		sleep(...);
	} while (time_before(timeout));

	...print timeout error...
	return %ERROR;

It also saves LOCs. Convert the driver to this format of timeout loop.
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
parent a2821584
......@@ -50,24 +50,20 @@ static int isp_set_power(struct pci_dev *dev, bool enable)
* And we do the same for power on.
*/
timeout = jiffies + msecs_to_jiffies(50);
while (1) {
do {
u32 tmp;
/* Wait until ISPSSPM0 bit[25:24] shows the right value */
iosf_mbi_read(BT_MBI_UNIT_PMC, MBI_REG_READ, ISPSSPM0, &tmp);
tmp = (tmp & ISPSSPM0_ISPSSS_MASK) >> ISPSSPM0_ISPSSS_OFFSET;
if (tmp == val)
break;
return 0;
if (time_after(jiffies, timeout)) {
dev_err(&dev->dev, "IUNIT power-%s timeout.\n",
enable ? "on" : "off");
return -EBUSY;
}
usleep_range(1000, 2000);
}
} while (time_before(jiffies, timeout));
return 0;
dev_err(&dev->dev, "IUNIT power-%s timeout.\n", enable ? "on" : "off");
return -EBUSY;
}
static int isp_probe(struct pci_dev *dev, const struct pci_device_id *id)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment