Thread (16 messages) 16 messages, 5 authors, 2015-03-24

[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

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help