Date: Mon, 19 Mar 2001 13:00:04 -0800 (PST) From: Soren Schmidt <sos@freebsd.dk> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/25370: ATA subsystem in 4.x fails to recognize some ATA CD-ROMs Message-ID: <200103192100.f2JL04694182@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/25370; it has been noted by GNATS. From: Soren Schmidt <sos@freebsd.dk> To: matt@gsicomp.on.ca (Matthew Emmerton) Cc: freebsd-gnats-submit@FreeBSD.org, sos@FreeBSD.org Subject: Re: kern/25370: ATA subsystem in 4.x fails to recognize some ATA CD-ROMs Date: Mon, 19 Mar 2001 21:56:20 +0100 (CET) It seems Matthew Emmerton wrote: > After considerable time learning the ata code, I've created an updated patch > which should fix the problem. > > <PATCH> > --- sys/dev/ata/atapi-all.c.orig Mon Mar 19 14:48:51 2001 > +++ sys/dev/ata/atapi-all.c Mon Mar 19 14:49:00 2001 > @@ -391,7 +391,7 @@ > atapi_read(request, length); > else > atapi_write(request, length); > - /* FALLTHROUGH */ > + return ATA_OP_CONTINUES; > > case ATAPI_P_ABORT: > case ATAPI_P_DONE: > </PATCH> > boot output: > (null): MODE_SENSE_BIG command timeout - resetting > ata0: resetting devices .. done > (null): MODE_SENSE_BIG DONEDRQ > (null): read data overrun 65526/1 > (null): MODE_SENSE_BIG command timeout - resetting > ata0: resetting devices .. done > (null): read data overrun 29/0 > acd0: CDROM <MATSHITA CR-581> at ata0-slave using BIOSPIO Hmm, well it still sortof fails, and it breaks devices that actually use ATAPI_P_DONEDRQ (which by the way is another abuse of the spec), since it is meant for devices that return the DONE part of the protocol together with the last part of the data. Now if you return ATA_OP_CONTINUES the driver will wait for a new interrupt which wont occur.. -Søren To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200103192100.f2JL04694182>