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_qstor.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_qstor.c')
-rw-r--r-- | drivers/ata/sata_qstor.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/ata/sata_qstor.c b/drivers/ata/sata_qstor.c index 5e1dfdda698..ef1ad69c26e 100644 --- a/drivers/ata/sata_qstor.c +++ b/drivers/ata/sata_qstor.c | |||
@@ -404,7 +404,7 @@ static inline unsigned int qs_intr_pkt(struct ata_host *host) | |||
404 | struct qs_port_priv *pp = ap->private_data; | 404 | struct qs_port_priv *pp = ap->private_data; |
405 | if (!pp || pp->state != qs_state_pkt) | 405 | if (!pp || pp->state != qs_state_pkt) |
406 | continue; | 406 | continue; |
407 | qc = ata_qc_from_tag(ap, ap->active_tag); | 407 | qc = ata_qc_from_tag(ap, ap->link.active_tag); |
408 | if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) { | 408 | if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) { |
409 | switch (sHST) { | 409 | switch (sHST) { |
410 | case 0: /* successful CPB */ | 410 | case 0: /* successful CPB */ |
@@ -437,7 +437,7 @@ static inline unsigned int qs_intr_mmio(struct ata_host *host) | |||
437 | struct qs_port_priv *pp = ap->private_data; | 437 | struct qs_port_priv *pp = ap->private_data; |
438 | if (!pp || pp->state != qs_state_mmio) | 438 | if (!pp || pp->state != qs_state_mmio) |
439 | continue; | 439 | continue; |
440 | qc = ata_qc_from_tag(ap, ap->active_tag); | 440 | qc = ata_qc_from_tag(ap, ap->link.active_tag); |
441 | if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) { | 441 | if (qc && (!(qc->tf.flags & ATA_TFLAG_POLLING))) { |
442 | 442 | ||
443 | /* check main status, clearing INTRQ */ | 443 | /* check main status, clearing INTRQ */ |