From: Andy Shevchenko Date: Thu, 9 Jan 2020 14:08:25 +0000 (+0200) Subject: platform/x86: intel_atomisp2_pm: Refactor timeout loop X-Git-Tag: v5.10.7~3431^2~42 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=81bda12aad60b0dc9f76f6f7a575d7b812533a19;p=platform%2Fkernel%2Flinux-rpi.git 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: Andy Shevchenko --- diff --git a/drivers/platform/x86/intel_atomisp2_pm.c b/drivers/platform/x86/intel_atomisp2_pm.c index b0f421fe..6c42003 100644 --- a/drivers/platform/x86/intel_atomisp2_pm.c +++ b/drivers/platform/x86/intel_atomisp2_pm.c @@ -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)