diff options
author | Tejun Heo <htejun@gmail.com> | 2007-12-18 02:33:06 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2008-01-23 05:24:12 -0500 |
commit | 021ee9a6da1cfc57f6a6c769c3c898bdd4753108 (patch) | |
tree | bb8c0246ded5a1d99320055343c7d277208fadd8 /include/linux | |
parent | a0f79b929acaba10d4780acd2543eff20bf4b5b0 (diff) |
libata: reimplement ata_acpi_cbl_80wire() using ata_acpi_gtm_xfermask()
Reimplement ata_acpi_cbl_80wire() using ata_acpi_gtm_xfermask() and
while at it relocate the function below ata_acpi_gtm_xfermask().
New ata_acpi_cbl_80wire() implementation takes @gtm, in both pata_via
and pata_amd, use the initial GTM value. Both are trying to peek
initial BIOS configuration, so using initial caching value makes
sense. This fixes ACPI part of cable detection in pata_amd which
previously always returned 0 because configuring PIO0 during reset
clears DMA configuration.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/libata.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h index 8ede93b5c7a6..cc4eaef6f889 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -968,18 +968,16 @@ static inline const struct ata_acpi_gtm *ata_acpi_init_gtm(struct ata_port *ap) | |||
968 | return &ap->__acpi_init_gtm; | 968 | return &ap->__acpi_init_gtm; |
969 | return NULL; | 969 | return NULL; |
970 | } | 970 | } |
971 | extern int ata_acpi_cbl_80wire(struct ata_port *ap); | ||
972 | int ata_acpi_stm(struct ata_port *ap, const struct ata_acpi_gtm *stm); | 971 | int ata_acpi_stm(struct ata_port *ap, const struct ata_acpi_gtm *stm); |
973 | int ata_acpi_gtm(struct ata_port *ap, struct ata_acpi_gtm *stm); | 972 | int ata_acpi_gtm(struct ata_port *ap, struct ata_acpi_gtm *stm); |
974 | unsigned long ata_acpi_gtm_xfermask(struct ata_device *dev, | 973 | unsigned long ata_acpi_gtm_xfermask(struct ata_device *dev, |
975 | const struct ata_acpi_gtm *gtm); | 974 | const struct ata_acpi_gtm *gtm); |
976 | 975 | int ata_acpi_cbl_80wire(struct ata_port *ap, const struct ata_acpi_gtm *gtm); | |
977 | #else | 976 | #else |
978 | static inline const struct ata_acpi_gtm *ata_acpi_init_gtm(struct ata_port *ap) | 977 | static inline const struct ata_acpi_gtm *ata_acpi_init_gtm(struct ata_port *ap) |
979 | { | 978 | { |
980 | return NULL; | 979 | return NULL; |
981 | } | 980 | } |
982 | static inline int ata_acpi_cbl_80wire(struct ata_port *ap) { return 0; } | ||
983 | 981 | ||
984 | static inline int ata_acpi_stm(const struct ata_port *ap, | 982 | static inline int ata_acpi_stm(const struct ata_port *ap, |
985 | struct ata_acpi_gtm *stm) | 983 | struct ata_acpi_gtm *stm) |
@@ -998,6 +996,12 @@ static inline unsigned int ata_acpi_gtm_xfermask(struct ata_device *dev, | |||
998 | { | 996 | { |
999 | return 0; | 997 | return 0; |
1000 | } | 998 | } |
999 | |||
1000 | static inline int ata_acpi_cbl_80wire(struct ata_port *ap, | ||
1001 | const struct ata_acpi_gtm *gtm) | ||
1002 | { | ||
1003 | return 0; | ||
1004 | } | ||
1001 | #endif | 1005 | #endif |
1002 | 1006 | ||
1003 | #ifdef CONFIG_PCI | 1007 | #ifdef CONFIG_PCI |