From 005b1f7495e812b99b73de5adbc73afd7a1cbcaf Mon Sep 17 00:00:00 2001 From: Jeff Garzik Date: Fri, 9 May 2008 15:00:55 -0400 Subject: [PATCH] [libata] revert new check-ready Status register logic This behavior differs across multiple controllers, so we cannot use common logic for all controllers. Revert back to the basic common behavior, and specific drivers will be updated from here to take into account the unusual Status return values. Signed-off-by: Jeff Garzik --- include/linux/libata.h | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/include/linux/libata.h b/include/linux/libata.h index 7e206da1fbfb..0f17643e0a6e 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h @@ -1384,17 +1384,14 @@ static inline struct ata_port *ata_shost_to_port(struct Scsi_Host *host) static inline int ata_check_ready(u8 status) { - /* Some controllers report 0x77 or 0x7f during intermediate - * not-ready stages. - */ - if (status == 0x77 || status == 0x7f) - return 0; + if (!(status & ATA_BUSY)) + return 1; /* 0xff indicates either no device or device not ready */ if (status == 0xff) return -ENODEV; - return !(status & ATA_BUSY); + return 0; }