READ_CD command timeout - resetting

Divacky Roman xdivac02 at stud.fit.vutbr.cz
Fri May 14 18:29:45 CEST 2004


> PS> na stejne hlaseni jsem objevil tento patch, ale nevim kam ho dat nebo 
> za co jej vymenit a taky bych si nerad znicil celou ATA:-)
> url:
 
patch aplikujes na zdrojaky kernelu a prekompilujes - pri tom ti zustane
stare jadro takze znicit nemuzes nic...

 
> Index: ata-lowlevel.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/dev/ata/ata-lowlevel.c,v
> retrieving revision 1.13
> diff -u -r1.13 ata-lowlevel.c
> --- ata-lowlevel.c 16 Sep 2003 15:21:37 -0000 1.13
> +++ ata-lowlevel.c 18 Sep 2003 07:55:10 -0000
> @@ -551,11 +551,8 @@
>                         ch->devices |= ATA_ATA_MASTER;
>                     }
>                 }
> - else if (err == lsb && err == msb) {
> - ATA_IDX_OUTB(ch, ATA_ERROR, 0xff);
> - DELAY(10);
> - if (stat0 == ATA_IDX_INB(ch, ATA_STATUS))
> - stat0 |= ATA_S_BUSY;
> + else if ((stat0 & 0x4f) && err == lsb && err == msb) {
> + stat0 |= ATA_S_BUSY;
>                 }
>             }
>         }
> @@ -579,11 +576,8 @@
>                         ch->devices |= ATA_ATA_SLAVE;
>                     }
>                 }
> - else if (err == lsb && err == msb) {
> - ATA_IDX_OUTB(ch, ATA_ERROR, 0xff);
> - DELAY(10);
> - if (stat1 == ATA_IDX_INB(ch, ATA_STATUS))
> - stat1 |= ATA_S_BUSY;
> + else if ((stat1 & 0x4f) && err == lsb && err == msb) {
> + stat1 |= ATA_S_BUSY;
>                 }
>             }
>         }

tohle vypada docela neskodne a rozhodne bych to zkusil... navic - tenhle
kod (ten po aplikaci) je v atang normalne takze to asi funguje ;)

roman



More information about the Users-l mailing list