aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/pdc_adma.c
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2007-08-06 05:36:22 -0400
committerJeff Garzik <jeff@garzik.org>2007-10-12 14:55:30 -0400
commit9af5c9c97dc9d599281778864c72b385f0c63341 (patch)
tree8359986bd42c4a9a5b1993078aa9ee4c7971ac3d /drivers/ata/pdc_adma.c
parent640fdb504941fa2b9f6f274716fc9f97f2bf6bff (diff)
libata-link: introduce ata_link
Introduce ata_link. It abstracts PHY and sits between ata_port and ata_device. This new level of abstraction is necessary to support SATA Port Multiplier, which basically adds a bunch of links (PHYs) to a ATA host port. Fields related to command execution, spd_limit and EH are per-link and thus moved to ata_link. This patch only defines the host link. Multiple link handling will be added later. Also, a lot of ap->link derefences are added but many of them will be removed as each part is converted to deal directly with ata_link instead of ata_port. This patch introduces no behavior change. Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: James Bottomley <James.Bottomley@SteelEye.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/ata/pdc_adma.c')
-rw-r--r--drivers/ata/pdc_adma.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/ata/pdc_adma.c b/drivers/ata/pdc_adma.c
index c95c1bf7df37..064a3b505609 100644
--- a/drivers/ata/pdc_adma.c
+++ b/drivers/ata/pdc_adma.c
@@ -485,7 +485,7 @@ static inline unsigned int adma_intr_pkt(struct ata_host *host)
485 pp = ap->private_data; 485 pp = ap->private_data;
486 if (!pp || pp->state != adma_state_pkt) 486 if (!pp || pp->state != adma_state_pkt)
487 continue; 487 continue;
488 qc = ata_qc_from_tag(ap, ap->active_tag); 488 qc = ata_qc_from_tag(ap, ap->link.active_tag);
489 if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) { 489 if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) {
490 if (status & aPERR) 490 if (status & aPERR)
491 qc->err_mask |= AC_ERR_HOST_BUS; 491 qc->err_mask |= AC_ERR_HOST_BUS;
@@ -500,7 +500,7 @@ static inline unsigned int adma_intr_pkt(struct ata_host *host)
500 if (!qc->err_mask) 500 if (!qc->err_mask)
501 ata_qc_complete(qc); 501 ata_qc_complete(qc);
502 else { 502 else {
503 struct ata_eh_info *ehi = &ap->eh_info; 503 struct ata_eh_info *ehi = &ap->link.eh_info;
504 ata_ehi_clear_desc(ehi); 504 ata_ehi_clear_desc(ehi);
505 ata_ehi_push_desc(ehi, 505 ata_ehi_push_desc(ehi,
506 "ADMA-status 0x%02X", status); 506 "ADMA-status 0x%02X", status);
@@ -529,7 +529,7 @@ static inline unsigned int adma_intr_mmio(struct ata_host *host)
529 struct adma_port_priv *pp = ap->private_data; 529 struct adma_port_priv *pp = ap->private_data;
530 if (!pp || pp->state != adma_state_mmio) 530 if (!pp || pp->state != adma_state_mmio)
531 continue; 531 continue;
532 qc = ata_qc_from_tag(ap, ap->active_tag); 532 qc = ata_qc_from_tag(ap, ap->link.active_tag);
533 if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) { 533 if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) {
534 534
535 /* check main status, clearing INTRQ */ 535 /* check main status, clearing INTRQ */
@@ -545,7 +545,8 @@ static inline unsigned int adma_intr_mmio(struct ata_host *host)
545 if (!qc->err_mask) 545 if (!qc->err_mask)
546 ata_qc_complete(qc); 546 ata_qc_complete(qc);
547 else { 547 else {
548 struct ata_eh_info *ehi = &ap->eh_info; 548 struct ata_eh_info *ehi =
549 &ap->link.eh_info;
549 ata_ehi_clear_desc(ehi); 550 ata_ehi_clear_desc(ehi);
550 ata_ehi_push_desc(ehi, 551 ata_ehi_push_desc(ehi,
551 "status 0x%02X", status); 552 "status 0x%02X", status);