diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-05-06 12:17:03 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-05-06 12:17:03 -0400 |
commit | 31d9168d27fac127d449cb9fa252d880de872c7f (patch) | |
tree | 45cc65fa9af9eba64d79163d542e12ad55f9e457 /include | |
parent | 4880d10927c93d858d40e297361fff375ee98492 (diff) | |
parent | 05177f178efe1459d2d0ac05430027ba201889a4 (diff) |
Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev: (27 commits)
pata_atiixp: Don't disable
sata_inic162x: update intro comment, up the version and drop EXPERIMENTAL
sata_inic162x: add cardbus support
sata_inic162x: kill now unused SFF related stuff
sata_inic162x: use IDMA for ATAPI commands
sata_inic162x: use IDMA for non DMA ATA commands
sata_inic162x: kill now unused bmdma related stuff
sata_inic162x: use IDMA for ATA_PROT_DMA
sata_inic162x: update TF read handling
sata_inic162x: add / update constants
sata_inic162x: misc clean ups
sata_mv use hweight16() for bit counting (V2)
sata_mv NCQ-EH for FIS-based switching
sata_mv delayed eh handling
libata: export ata_eh_analyze_ncq_error
sata_mv new mv_port_intr function
sata_mv fix mv_host_intr bug for hc_irq_cause
sata_mv NCQ and SError fixes for mv_err_intr
sata_mv rearrange mv_config_fbs
sata_mv errata workaround for sata25 part 1
...
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/libata.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h index d1dfe872ee30..7e206da1fbfb 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -1039,6 +1039,7 @@ extern void ata_eh_thaw_port(struct ata_port *ap); | |||
1039 | 1039 | ||
1040 | extern void ata_eh_qc_complete(struct ata_queued_cmd *qc); | 1040 | extern void ata_eh_qc_complete(struct ata_queued_cmd *qc); |
1041 | extern void ata_eh_qc_retry(struct ata_queued_cmd *qc); | 1041 | extern void ata_eh_qc_retry(struct ata_queued_cmd *qc); |
1042 | extern void ata_eh_analyze_ncq_error(struct ata_link *link); | ||
1042 | 1043 | ||
1043 | extern void ata_do_eh(struct ata_port *ap, ata_prereset_fn_t prereset, | 1044 | extern void ata_do_eh(struct ata_port *ap, ata_prereset_fn_t prereset, |
1044 | ata_reset_fn_t softreset, ata_reset_fn_t hardreset, | 1045 | ata_reset_fn_t softreset, ata_reset_fn_t hardreset, |
@@ -1381,6 +1382,21 @@ static inline struct ata_port *ata_shost_to_port(struct Scsi_Host *host) | |||
1381 | return *(struct ata_port **)&host->hostdata[0]; | 1382 | return *(struct ata_port **)&host->hostdata[0]; |
1382 | } | 1383 | } |
1383 | 1384 | ||
1385 | static inline int ata_check_ready(u8 status) | ||
1386 | { | ||
1387 | /* Some controllers report 0x77 or 0x7f during intermediate | ||
1388 | * not-ready stages. | ||
1389 | */ | ||
1390 | if (status == 0x77 || status == 0x7f) | ||
1391 | return 0; | ||
1392 | |||
1393 | /* 0xff indicates either no device or device not ready */ | ||
1394 | if (status == 0xff) | ||
1395 | return -ENODEV; | ||
1396 | |||
1397 | return !(status & ATA_BUSY); | ||
1398 | } | ||
1399 | |||
1384 | 1400 | ||
1385 | /************************************************************************** | 1401 | /************************************************************************** |
1386 | * PMP - drivers/ata/libata-pmp.c | 1402 | * PMP - drivers/ata/libata-pmp.c |