Re: Patch for IDE hang after resetting quirk drive

Andre Hedrick (andre@aslab.com)
Thu, 5 Jul 2001 00:53:37 -0700 (PDT)


Looks valid will take!

Cheers,

Andre Hedrick
ASL Kernel Development
Linux ATA Development
-----------------------------------------------------------------------------
ASL, Inc. Toll free: 1-877-ASL-3535
1757 Houret Court Fax: 1-408-941-2071
Milpitas, CA 95035 Web: www.aslab.com

On Tue, 3 Jul 2001, Dale Farnsworth wrote:

> I have a Promise PDC20265 ide controller with one of the "quirk" drives,
> a Quantum Fireballp LM30. That drive has a bad sector and accessing
> it would result in a DMA timeout. Unfortunately, after the IDE driver
> resets the controller, the drive never responded.
>
> The following patch appears to correct the problem. It duplicates
> the workaround for "quirky" drives found in ide-features.c
>
> -Dale
>
> Dale Farnsworth dale@farnsworth.org
>
> --- oldlinux-2.4.5/drivers/ide/ide.c Tue Jul 3 09:35:57 2001
> +++ linux-2.4.5/drivers/ide/ide.c Tue Jul 3 09:23:58 2001
> @@ -758,7 +758,10 @@
> */
> OUT_BYTE(drive->ctl|6,IDE_CONTROL_REG); /* set SRST and nIEN */
> udelay(10); /* more than enough time */
> - OUT_BYTE(drive->ctl|2,IDE_CONTROL_REG); /* clear SRST, leave nIEN */
> + if (drive->quirk_list == 2)
> + OUT_BYTE(drive->ctl, IDE_CONTROL_REG); /* clear SRST and nIEN */
> + else
> + OUT_BYTE(drive->ctl|2,IDE_CONTROL_REG); /* clear SRST only */
> udelay(10); /* more than enough time */
> hwgroup->poll_timeout = jiffies + WAIT_WORSTCASE;
> ide_set_handler (drive, &reset_pollfunc, HZ/20, NULL);
>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/