Re: libata and legacy ide pcmcia failure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



1. Please apply timing-debug.patch on 2.6.22rc1-git5 or later and report
the log with timestamp as before.  Let's see why the timeout has doubled.

2. Does the attached disable-dev_init_params.patch fix your problem?

-- 
tejun
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index d5939e6..6e98c85 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -1695,8 +1695,10 @@ int ata_dev_read_id(struct ata_device *d
 	 */
 	tf.flags |= ATA_TFLAG_POLLING;
 
+	ata_dev_printk(dev, KERN_INFO, "issuing IDENTIFY\n");
 	err_mask = ata_exec_internal(dev, &tf, NULL, DMA_FROM_DEVICE,
 				     id, sizeof(id[0]) * ATA_ID_WORDS);
+	ata_dev_printk(dev, KERN_INFO, "IDENTIFY complete\n");
 	if (err_mask) {
 		if (err_mask & AC_ERR_NODEV_HINT) {
 			DPRINTK("ata%u.%d: NODEV after polling detection\n",
@@ -1779,7 +1781,9 @@ int ata_dev_read_id(struct ata_device *d
 		 * Some drives were very specific about that exact sequence.
 		 */
 		if (ata_id_major_version(id) < 4 || !ata_id_has_lba(id)) {
+			ata_dev_printk(dev, KERN_INFO, "issuing DEV_INIT_PARAMS\n");
 			err_mask = ata_dev_init_params(dev, id[3], id[6]);
+			ata_dev_printk(dev, KERN_INFO, "DEV_INIT_PARAMS complete\n");
 			if (err_mask) {
 				rc = -EIO;
 				reason = "INIT_DEV_PARAMS failed";
@@ -6369,7 +6373,7 @@ int ata_host_register(struct ata_host *h
 
 			ehi->probe_mask = (1 << ATA_MAX_DEVICES) - 1;
 			ehi->action |= ATA_EH_SOFTRESET;
-			ehi->flags |= ATA_EHI_NO_AUTOPSY | ATA_EHI_QUIET;
+			ehi->flags |= ATA_EHI_NO_AUTOPSY/* | ATA_EHI_QUIET*/;
 
 			ap->pflags &= ~ATA_PFLAG_INITIALIZING;
 			ap->pflags |= ATA_PFLAG_LOADING;
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index 5309c31..99b573e 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -1980,6 +1980,7 @@ static int ata_eh_recover(struct ata_por
 					"reset failed, giving up\n");
 			goto out;
 		}
+		ata_port_printk(ap, KERN_INFO, "reset complete\n");
 
 		ata_eh_thaw_port(ap);
 	}
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index d5939e6..25677f4 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -1769,6 +1769,7 @@ int ata_dev_read_id(struct ata_device *d
 			goto retry;
 	}
 
+#if 0
 	if ((flags & ATA_READID_POSTRESET) && class == ATA_DEV_ATA) {
 		/*
 		 * The exact sequence expected by certain pre-ATA4 drives is:
@@ -1793,6 +1794,7 @@ int ata_dev_read_id(struct ata_device *d
 			goto retry;
 		}
 	}
+#endif
 
 	*p_class = class;
 

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux