mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
libata-sff: Reenable Port Multiplier after libata-sff remodeling.
Keep track of the link on the which the current request is in progress. It allows support of links behind port multiplier. Not all libata-sff is PMP compliant. Code for native BMDMA controller does not take in accound PMP. Tested on Marvell 7042 and Sil7526. Signed-off-by: Gwendal Grignou <gwendal@google.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
parent
e2f3d75fc0
commit
ea3c64506e
3 changed files with 31 additions and 12 deletions
|
@ -724,6 +724,7 @@ struct ata_port {
|
|||
struct ata_ioports ioaddr; /* ATA cmd/ctl/dma register blocks */
|
||||
u8 ctl; /* cache of ATA control register */
|
||||
u8 last_ctl; /* Cache last written value */
|
||||
struct ata_link* sff_pio_task_link; /* link currently used */
|
||||
struct delayed_work sff_pio_task;
|
||||
#ifdef CONFIG_ATA_BMDMA
|
||||
struct ata_bmdma_prd *bmdma_prd; /* BMDMA SG list */
|
||||
|
@ -1595,7 +1596,7 @@ extern void ata_sff_irq_on(struct ata_port *ap);
|
|||
extern void ata_sff_irq_clear(struct ata_port *ap);
|
||||
extern int ata_sff_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc,
|
||||
u8 status, int in_wq);
|
||||
extern void ata_sff_queue_pio_task(struct ata_port *ap, unsigned long delay);
|
||||
extern void ata_sff_queue_pio_task(struct ata_link *link, unsigned long delay);
|
||||
extern unsigned int ata_sff_qc_issue(struct ata_queued_cmd *qc);
|
||||
extern bool ata_sff_qc_fill_rtf(struct ata_queued_cmd *qc);
|
||||
extern unsigned int ata_sff_port_intr(struct ata_port *ap,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue