Hello, On Sun, Jan 02, 2011 at 11:07:43PM -0600, Priyanka Gupta wrote: > Let me try and elaborate on what I am trying to achieve: I would like > to add a way to move the marvell sata controller to D3hot to save some > power. Oh I see. You wanna put the controller into sleep. You'll have to implement EH actions for it and invoke EH to do it. The problem is that for it to work in generic manner, the operations need to be synchronized with other accesses to the hardware and going through EH is the easiest way to achieve that. Something like the following would work. On runtime suspend * Tell EH to kick in and suspend the controller (and wait (or not)). * EH kicks in. Mark the port inactive so that further commands processing won't happen (it would probably be nice if this is something the PM framework can guarantee but I don't think it's done that way, is it?) * EH skips all other EH actions and put the controller in sleep. On runtime resume * Tell EH to kick in and wake up the controller. * EH kicks in. Powers up the controller and revalidates all the attached devices. So, it's gonna take a bit more code than posted. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html