diff options
author | Hans de Goede <hdegoede@redhat.com> | 2014-02-22 10:53:30 -0500 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2014-02-22 15:35:41 -0500 |
commit | 039ece38da45f5e6a94be3aa7611cf3634bc2461 (patch) | |
tree | c496379b086ca1c4251b1fd914ecafb68eb22063 /drivers/ata/ahci.h | |
parent | b2a52b6a0a03000d07edb359b4059d4d871a7602 (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.h | 6 |
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 | ||
328 | extern int ahci_ignore_sss; | 334 | extern int ahci_ignore_sss; |