mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
[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>
This commit is contained in:
committed by
Jeff Garzik
parent
3c0eee3fe6
commit
02cdfcf043
@@ -90,6 +90,14 @@ config SATA_INIC162X
|
||||
help
|
||||
This option enables support for Initio 162x Serial ATA.
|
||||
|
||||
config SATA_ACARD_AHCI
|
||||
tristate "ACard AHCI variant (ATP 8620)"
|
||||
depends on PCI
|
||||
help
|
||||
This option enables support for Acard.
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
config SATA_SIL24
|
||||
tristate "Silicon Image 3124/3132 SATA support"
|
||||
depends on PCI
|
||||
|
||||
@@ -3,6 +3,7 @@ obj-$(CONFIG_ATA) += libata.o
|
||||
|
||||
# non-SFF interface
|
||||
obj-$(CONFIG_SATA_AHCI) += ahci.o libahci.o
|
||||
obj-$(CONFIG_SATA_ACARD_AHCI) += acard-ahci.o libahci.o
|
||||
obj-$(CONFIG_SATA_AHCI_PLATFORM) += ahci_platform.o libahci.o
|
||||
obj-$(CONFIG_SATA_FSL) += sata_fsl.o
|
||||
obj-$(CONFIG_SATA_INIC162X) += sata_inic162x.o
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -311,6 +311,8 @@ extern struct device_attribute *ahci_sdev_attrs[];
|
||||
|
||||
extern struct ata_port_operations ahci_ops;
|
||||
|
||||
void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag,
|
||||
u32 opts);
|
||||
void ahci_save_initial_config(struct device *dev,
|
||||
struct ahci_host_priv *hpriv,
|
||||
unsigned int force_port_map,
|
||||
@@ -326,6 +328,7 @@ int ahci_stop_engine(struct ata_port *ap);
|
||||
void ahci_start_engine(struct ata_port *ap);
|
||||
int ahci_check_ready(struct ata_link *link);
|
||||
int ahci_kick_engine(struct ata_port *ap);
|
||||
int ahci_port_resume(struct ata_port *ap);
|
||||
void ahci_set_em_messages(struct ahci_host_priv *hpriv,
|
||||
struct ata_port_info *pi);
|
||||
int ahci_reset_em(struct ata_host *host);
|
||||
|
||||
@@ -87,10 +87,7 @@ static int ahci_hardreset(struct ata_link *link, unsigned int *class,
|
||||
static void ahci_postreset(struct ata_link *link, unsigned int *class);
|
||||
static void ahci_error_handler(struct ata_port *ap);
|
||||
static void ahci_post_internal_cmd(struct ata_queued_cmd *qc);
|
||||
static int ahci_port_resume(struct ata_port *ap);
|
||||
static void ahci_dev_config(struct ata_device *dev);
|
||||
static void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag,
|
||||
u32 opts);
|
||||
#ifdef CONFIG_PM
|
||||
static int ahci_port_suspend(struct ata_port *ap, pm_message_t mesg);
|
||||
#endif
|
||||
@@ -1133,8 +1130,8 @@ static unsigned int ahci_dev_classify(struct ata_port *ap)
|
||||
return ata_dev_classify(&tf);
|
||||
}
|
||||
|
||||
static void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag,
|
||||
u32 opts)
|
||||
void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag,
|
||||
u32 opts)
|
||||
{
|
||||
dma_addr_t cmd_tbl_dma;
|
||||
|
||||
@@ -1145,6 +1142,7 @@ static void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag,
|
||||
pp->cmd_slot[tag].tbl_addr = cpu_to_le32(cmd_tbl_dma & 0xffffffff);
|
||||
pp->cmd_slot[tag].tbl_addr_hi = cpu_to_le32((cmd_tbl_dma >> 16) >> 16);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(ahci_fill_cmd_slot);
|
||||
|
||||
int ahci_kick_engine(struct ata_port *ap)
|
||||
{
|
||||
@@ -1918,7 +1916,7 @@ static void ahci_pmp_detach(struct ata_port *ap)
|
||||
writel(pp->intr_mask, port_mmio + PORT_IRQ_MASK);
|
||||
}
|
||||
|
||||
static int ahci_port_resume(struct ata_port *ap)
|
||||
int ahci_port_resume(struct ata_port *ap)
|
||||
{
|
||||
ahci_power_up(ap);
|
||||
ahci_start_port(ap);
|
||||
@@ -1930,6 +1928,7 @@ static int ahci_port_resume(struct ata_port *ap)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(ahci_port_resume);
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
static int ahci_port_suspend(struct ata_port *ap, pm_message_t mesg)
|
||||
|
||||
Reference in New Issue
Block a user