[PATCH 2/2] ahci: imx: software workaround for phy reset issue in resume

Tejun Heo tj at kernel.org
Wed Apr 16 07:01:12 PDT 2014


Hello,

On Wed, Apr 16, 2014 at 03:38:24PM +0800, Shawn Guo wrote:
> The hardware manual suggests that an ACK will normally be given within
> 100us.  So using msleep() will have it sleep longer than necessary for
> normal case.  Basically, we're following the suggestion from
> Documentation/timers/timers-howto.txt to use usleep_range() over
> msleep().
> 
> SLEEPING FOR ~USECS OR SMALL MSECS ( 10us - 20ms):
> 	* Use usleep_range
> 
> 	- Why not msleep for (1ms - 20ms)?
> 		Explained originally here:
> 			http://lkml.org/lkml/2007/8/3/250
> 		msleep(1~20) may not do what the caller intends, and
> 		will often sleep longer (~20 ms actual sleep for any
> 		value given in the 1~20ms range). In many cases this
> 		is not the desired behavior.

But we don't care whether the minimum wait is actually 100us here, do
we?  It's a reset path.  Let's please just be simple.  msleep(1) not
actually sleeping 1ms is an implementation detail which may change in
the future.  If this were in the command execution path, sure, but not
here.

Thanks.

-- 
tejun



More information about the linux-arm-kernel mailing list