diff options
author | Tejun Heo <htejun@gmail.com> | 2008-04-07 15:47:20 +0200 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-04-17 21:44:23 +0200 |
commit | 4c9bf4e799ce06a7378f1196587084802a414c03 (patch) | |
tree | 70a7d3741e756b975468850537f222349143a0be /drivers/ata/libata-sff.c | |
parent | libata: drop @finish_qc from ata_qc_complete_multiple() (diff) | |
download | linux-4c9bf4e799ce06a7378f1196587084802a414c03.tar.xz linux-4c9bf4e799ce06a7378f1196587084802a414c03.zip |
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 = { .qc_prep = ata_sff_qc_prep, .qc_issue = ata_sff_qc_issue, + .qc_fill_rtf = ata_sff_qc_fill_rtf, .freeze = ata_sff_freeze, .thaw = ata_sff_thaw, |