Messages in this thread Patches in this message | | | Date | Sun, 20 May 2007 13:31:30 +0200 | From | Tejun Heo <> | Subject | Re: libata and legacy ide pcmcia failure |
| |
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; | |