Commit 7fab72f8 authored by Doug Berger's avatar Doug Berger Committed by Tejun Heo
Browse files

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: default avatarDoug Berger <opendmb@gmail.com>
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
parent ef0da1bf
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -249,6 +249,8 @@ enum {
#endif
	AHCI_HFLAG_WAKE_BEFORE_STOP	= (1 << 22), /* wake before DMA stop */
	AHCI_HFLAG_YES_ALPM		= (1 << 23), /* force ALPM cap on */
	AHCI_HFLAG_NO_WRITE_TO_RO	= (1 << 24), /* don't write to read
							only registers */

	/* ap->flags bits */

+2 −1
Original line number Diff line number Diff line
@@ -945,6 +945,7 @@ int ahci_reset_controller(struct ata_host *host)
		/* Some registers might be cleared on reset.  Restore
		 * initial values.
		 */
		if (!(hpriv->flags & AHCI_HFLAG_NO_WRITE_TO_RO))
			ahci_restore_initial_config(host);
	} else
		dev_info(host->dev, "skipping global host reset\n");