Jeff Garzik wrote:
Tejun Heo wrote:
ahci_init_controller() calls ahci_deinit_port() to make sure the
controller is stopped before initializing the controller.  In turn,
ahci_deinit_port() invokes ahci_power_down() to power down the port.
If the controller supports slumber mode, the link is put into it.

I would rather just pass a 'dont suspend port' flag to ahci_deinit_port(). That leaves ahci_port_stop() behavior unchanged.

That behavior change is intended. ahci_port_stop() must not call ahci_power_down(); otherwise, it will cause strange behaviors on some devices on driver unloading.

The baseline is that power up/down shouldn't be done as part of controller init/deinit. Power up/down involves link power management operation which make some devices choke. They should only be done when actual power management is required. This is okay even for devices which choke on link pm because system-wide PM powers those devices down clearing lockup. I dunno what should be done with partial power management tho.

--
tejun
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to