diff options
author | Tejun Heo <htejun@gmail.com> | 2008-04-07 09:47:18 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-04-17 15:44:22 -0400 |
commit | 0aa1113d544226bc2c4a20d6ac1d71170512a361 (patch) | |
tree | 503b33b0805424d312abddd3535c941bb85c03bc /include/linux/libata.h | |
parent | 288623a06c652239d2f57d271af12bb024cf7218 (diff) |
libata: separate out ata_std_prereset() from ata_sff_prereset()
Separate out generic ATA portion from ata_sff_prereset() into
ata_std_prereset() and implement ata_sff_prereset() using the std
version. Waiting for device readiness is the only SFF specific part.
ata_base_port_ops now has ata_std_prereset() for its prereset and
ata_sff_port_ops overrides it to ata_sff_prereset(). This change can
affect pdc_adma, ahci, sata_fsl and sata_sil24. pdc_adma implements
its own prereset using ata_sff_prereset() and the rest has hardreset
and thus are unaffected by this change.
This change reflects real world situation. There is no generic way to
wait for device readiness for non-SFF controllers and some of them
don't have any mechanism for that. Non-sff drivers which don't have
hardreset should wrap ata_std_prereset() and wait for device readiness
itself but there's no such driver now and isn't likely to be popular
in the future either.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Diffstat (limited to 'include/linux/libata.h')
-rw-r--r-- | include/linux/libata.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h index 603712b59cf3..595ede55fe4c 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -824,6 +824,7 @@ static inline int ata_port_is_dummy(struct ata_port *ap) | |||
824 | extern void sata_print_link_status(struct ata_link *link); | 824 | extern void sata_print_link_status(struct ata_link *link); |
825 | extern void ata_port_probe(struct ata_port *); | 825 | extern void ata_port_probe(struct ata_port *); |
826 | extern int sata_set_spd(struct ata_link *link); | 826 | extern int sata_set_spd(struct ata_link *link); |
827 | extern int ata_std_prereset(struct ata_link *link, unsigned long deadline); | ||
827 | extern int sata_link_debounce(struct ata_link *link, | 828 | extern int sata_link_debounce(struct ata_link *link, |
828 | const unsigned long *params, unsigned long deadline); | 829 | const unsigned long *params, unsigned long deadline); |
829 | extern int sata_link_resume(struct ata_link *link, const unsigned long *params, | 830 | extern int sata_link_resume(struct ata_link *link, const unsigned long *params, |