ahci: add AHCI_HFLAG_DELAY_ENGINE host flag
authorBrian Norris <computersforpeace@gmail.com>
Tue, 21 Feb 2012 18:38:42 +0000 (10:38 -0800)
committerJeff Garzik <jgarzik@redhat.com>
Tue, 13 Mar 2012 20:35:37 +0000 (16:35 -0400)
commit66583c9fa63d05d5580e409f9a58d3cad6d76d17
treec84f755b8e15e164d631ec155d5ec7d532485311
parent6b4b8fc87dc5cbfcfb5c749dc200906471fb854c
ahci: add AHCI_HFLAG_DELAY_ENGINE host flag

The following commit was intended to fix problems with specific AHCI
controller(s) that would become bricks if the AHCI specification was not
followed strictly (that is, if ahci_start_engine() was called while the
controller was in the wrong state):

    commit 7faa33da9b7add01db9f1ad92c6a5d9145e940a7
    ahci: start engine only during soft/hard resets

However, some devices currently have issues with that fix, so we must
implement a flag that delays the ahci_start_engine() call only for specific
controllers.

This commit simply introduces the flag, without enabling it in any driver.

Note that even when AHCI_HFLAG_DELAY_ENGINE is not enabled, this patch does
not constitue a full revert to commit 7faa33da; there is still a change in
behavior to the ahci_port_suspend() failure path.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Cc: stable@kernel.org
drivers/ata/ahci.h
drivers/ata/libahci.c