aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/ahci.h
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2014-02-22 10:53:30 -0500
committerTejun Heo <tj@kernel.org>2014-02-22 15:35:41 -0500
commit039ece38da45f5e6a94be3aa7611cf3634bc2461 (patch)
treec496379b086ca1c4251b1fd914ecafb68eb22063 /drivers/ata/ahci.h
parentb2a52b6a0a03000d07edb359b4059d4d871a7602 (diff)
libahci: Allow drivers to override start_engine
Allwinner A10 and A20 ARM SoCs have an AHCI sata controller which needs a special register to be poked before starting the DMA engine. This register gets reset on an ahci_stop_engine call, so there is no other place then ahci_start_engine where this poking can be done. This commit allows drivers to override ahci_start_engine behavior for use by the Allwinner AHCI driver (and potentially other drivers in the future). Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'drivers/ata/ahci.h')
-rw-r--r--drivers/ata/ahci.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h
index 2289efdf8203..64d1a99de5e4 100644
--- a/drivers/ata/ahci.h
+++ b/drivers/ata/ahci.h
@@ -323,6 +323,12 @@ struct ahci_host_priv {
323 u32 em_msg_type; /* EM message type */ 323 u32 em_msg_type; /* EM message type */
324 struct clk *clk; /* Only for platforms supporting clk */ 324 struct clk *clk; /* Only for platforms supporting clk */
325 void *plat_data; /* Other platform data */ 325 void *plat_data; /* Other platform data */
326 /*
327 * Optional ahci_start_engine override, if not set this gets set to the
328 * default ahci_start_engine during ahci_save_initial_config, this can
329 * be overridden anytime before the host is activated.
330 */
331 void (*start_engine)(struct ata_port *ap);
326}; 332};
327 333
328extern int ahci_ignore_sss; 334extern int ahci_ignore_sss;