[PATCH 01/48] clk: at91: replace usleep() by udelay() calls
From: arnd@arndb.de (Arnd Bergmann)
Date: 2016-06-13 19:28:24
Also in:
linux-clk, lkml
From: arnd@arndb.de (Arnd Bergmann)
Date: 2016-06-13 19:28:24
Also in:
linux-clk, lkml
On Monday, June 13, 2016 5:24:09 PM CEST Alexandre Belloni wrote:
On 11/06/2016 at 00:30:36 +0200, Arnd Bergmann wrote :quoted
On Saturday, June 11, 2016 12:03:04 AM CEST Alexandre Belloni wrote:quoted
From: Cyrille Pitchen <redacted> Fix the main and slow clock .prepare() implementations which used to call usleep() when the scheduler wasn't ready yet.Does this have to be called that early? It seems wasteful to always call udelay() here, when these are functions that are normally allowed to sleep.So I've tested it and something like that would work: if (system_state < SYSTEM_RUNNING) udelay(osc->startup_usec); else usleep_range(osc->startup_usec, osc->startup_usec + 1);
I think that's reasonable in this case.
But I'm afraid it would be the first driver to actually do something like that (however, it is already the only driver trying to sleep).
We have a lot of drivers that call potentially sleeping function from the .prepare callback, e.g. when they go to an i2c controller. Arnd