Locking in the clk API
From: Saravana Kannan <hidden>
Date: 2011-01-24 19:31:01
On 01/22/2011 01:15 AM, Russell King - ARM Linux wrote:
On Fri, Jan 21, 2011 at 05:53:43PM -0800, Saravana Kannan wrote:quoted
On 01/21/2011 01:32 AM, Russell King - ARM Linux wrote:quoted
On Thu, Jan 20, 2011 at 08:12:45PM -0800, Saravana Kannan wrote:quoted
In my opinion, the only major reason for needing atomic clk APIs was due to device_ops->suspend being atomic. Since that's not the case anymore, I really don't see a justification for atomic clocks. Sure, I might have missed some exceptions, but in that case we should make the atomic APIs an exception (add clk_enable_atomic) and not the norm.The suspend method has never been atomic. It has always been able to sleep. You're mistaken.I distinctly remember trying to do sleeping stuff inside a .suspend function and have it complain that it's atomic. So, I think you might be mistaken.No I'm not. I've always had stuff which takes mutexes/semaphores in the suspend method. You'll get the warning if you take a spinlock and then try sleeping - but that's your error for creating an atomic context (you can't sleep while holding a spinlock), not the fault of the callback.
I'm well aware of the fact that you can't grab a mutex inside a spinlock. Like I said, I will dig into this sometime and get back. -Saravana -- Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.