diff options
author | Tejun Heo <htejun@gmail.com> | 2007-08-06 05:36:22 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-10-12 14:55:30 -0400 |
commit | 9af5c9c97dc9d599281778864c72b385f0c63341 (patch) | |
tree | 8359986bd42c4a9a5b1993078aa9ee4c7971ac3d /drivers/ata/sata_promise.c | |
parent | 640fdb504941fa2b9f6f274716fc9f97f2bf6bff (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/sata_promise.c')
-rw-r--r-- | drivers/ata/sata_promise.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/ata/sata_promise.c b/drivers/ata/sata_promise.c index 25698cf0dce0..620d0675d18a 100644 --- a/drivers/ata/sata_promise.c +++ b/drivers/ata/sata_promise.c | |||
@@ -626,7 +626,7 @@ static void pdc_post_internal_cmd(struct ata_queued_cmd *qc) | |||
626 | static void pdc_error_intr(struct ata_port *ap, struct ata_queued_cmd *qc, | 626 | static void pdc_error_intr(struct ata_port *ap, struct ata_queued_cmd *qc, |
627 | u32 port_status, u32 err_mask) | 627 | u32 port_status, u32 err_mask) |
628 | { | 628 | { |
629 | struct ata_eh_info *ehi = &ap->eh_info; | 629 | struct ata_eh_info *ehi = &ap->link.eh_info; |
630 | unsigned int ac_err_mask = 0; | 630 | unsigned int ac_err_mask = 0; |
631 | 631 | ||
632 | ata_ehi_clear_desc(ehi); | 632 | ata_ehi_clear_desc(ehi); |
@@ -773,7 +773,7 @@ static irqreturn_t pdc_interrupt (int irq, void *dev_instance) | |||
773 | tmp = hotplug_status & (0x11 << ata_no); | 773 | tmp = hotplug_status & (0x11 << ata_no); |
774 | if (tmp && ap && | 774 | if (tmp && ap && |
775 | !(ap->flags & ATA_FLAG_DISABLED)) { | 775 | !(ap->flags & ATA_FLAG_DISABLED)) { |
776 | struct ata_eh_info *ehi = &ap->eh_info; | 776 | struct ata_eh_info *ehi = &ap->link.eh_info; |
777 | ata_ehi_clear_desc(ehi); | 777 | ata_ehi_clear_desc(ehi); |
778 | ata_ehi_hotplugged(ehi); | 778 | ata_ehi_hotplugged(ehi); |
779 | ata_ehi_push_desc(ehi, "hotplug_status %#x", tmp); | 779 | ata_ehi_push_desc(ehi, "hotplug_status %#x", tmp); |
@@ -788,7 +788,7 @@ static irqreturn_t pdc_interrupt (int irq, void *dev_instance) | |||
788 | !(ap->flags & ATA_FLAG_DISABLED)) { | 788 | !(ap->flags & ATA_FLAG_DISABLED)) { |
789 | struct ata_queued_cmd *qc; | 789 | struct ata_queued_cmd *qc; |
790 | 790 | ||
791 | qc = ata_qc_from_tag(ap, ap->active_tag); | 791 | qc = ata_qc_from_tag(ap, ap->link.active_tag); |
792 | if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) | 792 | if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) |
793 | handled += pdc_host_intr(ap, qc); | 793 | handled += pdc_host_intr(ap, qc); |
794 | } | 794 | } |