diff options
author | Tejun Heo <htejun@gmail.com> | 2008-04-07 09:47:20 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-04-17 15:44:23 -0400 |
commit | 4c9bf4e799ce06a7378f1196587084802a414c03 (patch) | |
tree | 70a7d3741e756b975468850537f222349143a0be /drivers/ata/libata-sff.c | |
parent | 79f97dadfe9b4b561634d202225ba2fa910dc225 (diff) |
libata: replace tf_read with qc_fill_rtf for non-SFF drivers
Now that all SFF stuff is separated out of core layer, core layer
doesn't call ops->tf_read directly. It gets called only via
ops->qc_fill_rtf() for non-SFF drivers. This patch directly
implements private ops->qc_fill_rtf() for non-SFF controllers and kill
ops->tf_read().
This is much cleaner for non-SFF controllers as some of them have to
cache SFF register values in private data structure and report the
cached values via ops->tf_read(). Also, ops->tf_read() gets nasty for
controllers which don't have clear notion of TF registers when
operation is not in progress.
As this change makes default ops->qc_fill_rtf unnecessary, move
ata_sff_qc_fill_rtf() form ata_base_port_ops to ata_sff_port_ops where
it belongs.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Diffstat (limited to 'drivers/ata/libata-sff.c')
-rw-r--r-- | drivers/ata/libata-sff.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c index 5ae813f54420..8e6c78ac70f8 100644 --- a/drivers/ata/libata-sff.c +++ b/drivers/ata/libata-sff.c | |||
@@ -44,6 +44,7 @@ const struct ata_port_operations ata_sff_port_ops = { | |||
44 | 44 | ||
45 | .qc_prep = ata_sff_qc_prep, | 45 | .qc_prep = ata_sff_qc_prep, |
46 | .qc_issue = ata_sff_qc_issue, | 46 | .qc_issue = ata_sff_qc_issue, |
47 | .qc_fill_rtf = ata_sff_qc_fill_rtf, | ||
47 | 48 | ||
48 | .freeze = ata_sff_freeze, | 49 | .freeze = ata_sff_freeze, |
49 | .thaw = ata_sff_thaw, | 50 | .thaw = ata_sff_thaw, |