diff options
author | Doug Berger <opendmb@gmail.com> | 2017-06-21 19:20:13 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2017-06-22 16:12:59 -0400 |
commit | 7fab72f85d862572ed3281860dc550b7e737ac52 (patch) | |
tree | d45443b96ebe96e3b633b822cae8acb02be9e77a /drivers/ata/libahci.c | |
parent | ef0da1bf767d9e557c6375c7066717eead54cb15 (diff) |
libata: Add the AHCI_HFLAG_NO_WRITE_TO_RO flag
While most hardware will simply ignore a write to a read-only register,
some hardware will signal an abort if this occurs.
This commit introduces the flag AHCI_HFLAG_NO_WRITE_TO_RO to prevent the
AHCI library from attempting to write to the HOST_CAP, HOST_CAP2, and
HOST_PORTS_IMPL registers which may be read-only.
Signed-off-by: Doug Berger <opendmb@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'drivers/ata/libahci.c')
-rw-r--r-- | drivers/ata/libahci.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c index 4462f8a8cf2c..3e286d86ab42 100644 --- a/drivers/ata/libahci.c +++ b/drivers/ata/libahci.c | |||
@@ -945,7 +945,8 @@ int ahci_reset_controller(struct ata_host *host) | |||
945 | /* Some registers might be cleared on reset. Restore | 945 | /* Some registers might be cleared on reset. Restore |
946 | * initial values. | 946 | * initial values. |
947 | */ | 947 | */ |
948 | ahci_restore_initial_config(host); | 948 | if (!(hpriv->flags & AHCI_HFLAG_NO_WRITE_TO_RO)) |
949 | ahci_restore_initial_config(host); | ||
949 | } else | 950 | } else |
950 | dev_info(host->dev, "skipping global host reset\n"); | 951 | dev_info(host->dev, "skipping global host reset\n"); |
951 | 952 | ||