[PATCH 4/7] regulator: add mxs regulator driver
From: Stefan Wahren <hidden>
Date: 2015-03-23 17:45:41
Also in:
linux-devicetree, linux-pm
From: Stefan Wahren <hidden>
Date: 2015-03-23 17:45:41
Also in:
linux-devicetree, linux-pm
Hi Mark,
quoted
+ if (ldo->get_power_source) + power_source = ldo->get_power_source(reg); + + switch (power_source) { + case HW_POWER_LINREG_DCDC_OFF: + case HW_POWER_LINREG_DCDC_READY: + case HW_POWER_EXTERNAL_SOURCE_5V: + usleep_range(1000, 2000); + return 0; + }I'd expect the switch to be in the if here?
yes, that's possible too.
quoted
+ + usleep_range(15, 20); + start = jiffies; + while (1) { + if (readl(ldo->status_addr) & BM_POWER_STS_DC_OK) + return 0; + + if (time_after(jiffies, start + msecs_to_jiffies(20))) + break; + + schedule(); + }So, this isn't actually quite a busy wait because we do a schedule() rather than a cpu_relax() but still it could devolve into that - 20ms seems a long time to burn doing that. If we're expecting this to finish very quickly can we do an initial busy wait then fall back to something with an actual sleep or soemthing?
We will need to keep the initial usleep_range(). So do you think of the following: 1. usleep_range 2. busy_wait for BM_POWER_STS_DC_OK 3. msleep (for the timeout case) Stefan