aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2007-12-18 02:33:06 -0500
committerJeff Garzik <jeff@garzik.org>2008-01-23 05:24:12 -0500
commit021ee9a6da1cfc57f6a6c769c3c898bdd4753108 (patch)
treebb8c0246ded5a1d99320055343c7d277208fadd8 /include/linux
parenta0f79b929acaba10d4780acd2543eff20bf4b5b0 (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.h10
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}
971extern int ata_acpi_cbl_80wire(struct ata_port *ap);
972int ata_acpi_stm(struct ata_port *ap, const struct ata_acpi_gtm *stm); 971int ata_acpi_stm(struct ata_port *ap, const struct ata_acpi_gtm *stm);
973int ata_acpi_gtm(struct ata_port *ap, struct ata_acpi_gtm *stm); 972int ata_acpi_gtm(struct ata_port *ap, struct ata_acpi_gtm *stm);
974unsigned long ata_acpi_gtm_xfermask(struct ata_device *dev, 973unsigned long ata_acpi_gtm_xfermask(struct ata_device *dev,
975 const struct ata_acpi_gtm *gtm); 974 const struct ata_acpi_gtm *gtm);
976 975int ata_acpi_cbl_80wire(struct ata_port *ap, const struct ata_acpi_gtm *gtm);
977#else 976#else
978static inline const struct ata_acpi_gtm *ata_acpi_init_gtm(struct ata_port *ap) 977static inline const struct ata_acpi_gtm *ata_acpi_init_gtm(struct ata_port *ap)
979{ 978{
980 return NULL; 979 return NULL;
981} 980}
982static inline int ata_acpi_cbl_80wire(struct ata_port *ap) { return 0; }
983 981
984static inline int ata_acpi_stm(const struct ata_port *ap, 982static 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
1000static 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