aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/libahci.c
diff options
context:
space:
mode:
authorDavid Milburn <dmilburn@redhat.com>2010-11-12 16:38:21 -0500
committerJeff Garzik <jgarzik@redhat.com>2011-01-05 19:43:22 -0500
commit02cdfcf043c5c6ebcbbaba1c35130b5fbcb10867 (patch)
tree1430ddb5236adbcc1fbfaa67b225efd0dbe3e80c /drivers/ata/libahci.c
parent3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5 (diff)
[libata] new driver acard_ahci, for ATP8620 host controller
Add support for Acard ATP8620 host controller. Based upon initial version by Jeff Garzik. Signed-off-by: David Milburn <dmilburn@redhat.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata/libahci.c')
-rw-r--r--drivers/ata/libahci.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
index ebc08d65b3dd..26d452339e98 100644
--- a/drivers/ata/libahci.c
+++ b/drivers/ata/libahci.c
@@ -87,10 +87,7 @@ static int ahci_hardreset(struct ata_link *link, unsigned int *class,
87static void ahci_postreset(struct ata_link *link, unsigned int *class); 87static void ahci_postreset(struct ata_link *link, unsigned int *class);
88static void ahci_error_handler(struct ata_port *ap); 88static void ahci_error_handler(struct ata_port *ap);
89static void ahci_post_internal_cmd(struct ata_queued_cmd *qc); 89static void ahci_post_internal_cmd(struct ata_queued_cmd *qc);
90static int ahci_port_resume(struct ata_port *ap);
91static void ahci_dev_config(struct ata_device *dev); 90static void ahci_dev_config(struct ata_device *dev);
92static void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag,
93 u32 opts);
94#ifdef CONFIG_PM 91#ifdef CONFIG_PM
95static int ahci_port_suspend(struct ata_port *ap, pm_message_t mesg); 92static int ahci_port_suspend(struct ata_port *ap, pm_message_t mesg);
96#endif 93#endif
@@ -1133,8 +1130,8 @@ static unsigned int ahci_dev_classify(struct ata_port *ap)
1133 return ata_dev_classify(&tf); 1130 return ata_dev_classify(&tf);
1134} 1131}
1135 1132
1136static void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag, 1133void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag,
1137 u32 opts) 1134 u32 opts)
1138{ 1135{
1139 dma_addr_t cmd_tbl_dma; 1136 dma_addr_t cmd_tbl_dma;
1140 1137
@@ -1145,6 +1142,7 @@ static void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag,
1145 pp->cmd_slot[tag].tbl_addr = cpu_to_le32(cmd_tbl_dma & 0xffffffff); 1142 pp->cmd_slot[tag].tbl_addr = cpu_to_le32(cmd_tbl_dma & 0xffffffff);
1146 pp->cmd_slot[tag].tbl_addr_hi = cpu_to_le32((cmd_tbl_dma >> 16) >> 16); 1143 pp->cmd_slot[tag].tbl_addr_hi = cpu_to_le32((cmd_tbl_dma >> 16) >> 16);
1147} 1144}
1145EXPORT_SYMBOL_GPL(ahci_fill_cmd_slot);
1148 1146
1149int ahci_kick_engine(struct ata_port *ap) 1147int ahci_kick_engine(struct ata_port *ap)
1150{ 1148{
@@ -1918,7 +1916,7 @@ static void ahci_pmp_detach(struct ata_port *ap)
1918 writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK); 1916 writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK);
1919} 1917}
1920 1918
1921static int ahci_port_resume(struct ata_port *ap) 1919int ahci_port_resume(struct ata_port *ap)
1922{ 1920{
1923 ahci_power_up(ap); 1921 ahci_power_up(ap);
1924 ahci_start_port(ap); 1922 ahci_start_port(ap);
@@ -1930,6 +1928,7 @@ static int ahci_port_resume(struct ata_port *ap)
1930 1928
1931 return 0; 1929 return 0;
1932} 1930}
1931EXPORT_SYMBOL_GPL(ahci_port_resume);
1933 1932
1934#ifdef CONFIG_PM 1933#ifdef CONFIG_PM
1935static int ahci_port_suspend(struct ata_port *ap, pm_message_t mesg) 1934static int ahci_port_suspend(struct ata_port *ap, pm_message_t mesg)