aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-11-05 20:43:04 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-11-05 20:43:04 -0500
commitf8a9efb52847433c6a2e1598d78e49c42a9aa3c5 (patch)
tree0f1ed130a72949a88ec2278d25ce5fc85847a089 /include/linux
parent61edab8d144ae7b4d7206b91adec947579a73c0a (diff)
parent6bbfd53d47abd1fb20d7c93a9b19a75970b66f49 (diff)
Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: libata: handle broken cable reporting pata_hpt37x: Fix outstanding bug reports on the HPT374 and 37x cable detect ata_piix: Add additional PCI identifier for 40 wire short cable pata_serverworks: Fix problem with some drive combinations libata: Don't disable dipm with SET FEATURES libata and bogus LBA48 drives
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/ata.h11
-rw-r--r--include/linux/libata.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/ata.h b/include/linux/ata.h
index 61535e72834d..5c4e54a2a8d6 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -425,6 +425,8 @@ static inline int ata_id_has_lba48(const u16 *id)
425{ 425{
426 if ((id[83] & 0xC000) != 0x4000) 426 if ((id[83] & 0xC000) != 0x4000)
427 return 0; 427 return 0;
428 if (!ata_id_u64(id, 100))
429 return 0;
428 return id[83] & (1 << 10); 430 return id[83] & (1 << 10);
429} 431}
430 432
@@ -535,6 +537,15 @@ static inline int ata_drive_40wire(const u16 *dev_id)
535 return 1; 537 return 1;
536} 538}
537 539
540static inline int ata_drive_40wire_relaxed(const u16 *dev_id)
541{
542 if (ata_id_is_sata(dev_id))
543 return 0; /* SATA */
544 if ((dev_id[93] & 0x2000) == 0x2000)
545 return 0; /* 80 wire */
546 return 1;
547}
548
538static inline int atapi_cdb_len(const u16 *dev_id) 549static inline int atapi_cdb_len(const u16 *dev_id)
539{ 550{
540 u16 tmp = dev_id[0] & 0x3; 551 u16 tmp = dev_id[0] & 0x3;
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 1e277852ba42..56a5673aebad 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -339,6 +339,7 @@ enum {
339 ATA_HORKAGE_SKIP_PM = (1 << 5), /* Skip PM operations */ 339 ATA_HORKAGE_SKIP_PM = (1 << 5), /* Skip PM operations */
340 ATA_HORKAGE_HPA_SIZE = (1 << 6), /* native size off by one */ 340 ATA_HORKAGE_HPA_SIZE = (1 << 6), /* native size off by one */
341 ATA_HORKAGE_IPM = (1 << 7), /* Link PM problems */ 341 ATA_HORKAGE_IPM = (1 << 7), /* Link PM problems */
342 ATA_HORKAGE_IVB = (1 << 8), /* cbl det validity bit bugs */
342 343
343 /* DMA mask for user DMA control: User visible values; DO NOT 344 /* DMA mask for user DMA control: User visible values; DO NOT
344 renumber */ 345 renumber */