Subject: port-i386/8992: Sony Vaio CD-ROM drive PCGA-CD5 doesn't work
To: None <gnats-bugs@gnats.netbsd.org>
From: None <yyamano@kt.rim.or.jp>
List: netbsd-bugs
Date: 12/14/1999 05:27:38
>Number: 8992
>Category: port-i386
>Synopsis: Sony Vaio CD-ROM drive PCGA-CD5 doesn't work
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: port-i386-maintainer (NetBSD/i386 Portmaster)
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Dec 14 05:27:00 1999
>Last-Modified:
>Originator: Yuji Yamano
>Organization:
>Release: 1.4.1
>Environment:
NetBSD casper 1.4.1 NetBSD 1.4.1 (CASPER.v6) #30: Mon Dec 13 23:55:31 JST 1999 yyamano@casper:/usr/home/yyamano/src/KAME/kame-19991011-netbsd141-snap/netbsd/sys/arch/i386/compile/CASPER.v6 i386
>Description:
Sony Vaio CD-ROM drive PCGA-CD5 doesn't work with NetBSD 1.4.1.
>How-To-Repeat:
>Fix:
It works by the following patches, but I don't know my changes is
correct or not.
--- /usr/src/sys/dev/ic/wdc.c Tue Sep 14 00:45:05 1999
+++ ./wdc.c Sat Dec 4 16:25:56 1999
@@ -183,8 +183,6 @@
* Sanity check to see if the wdc channel responds at all.
*/
- if (chp->wdc == NULL ||
- (chp->wdc->cap & WDC_CAPABILITY_NO_EXTRA_RESETS) == 0) {
bus_space_write_1(chp->cmd_iot, chp->cmd_ioh, wd_sdh,
WDSD_IBM);
delay(10);
@@ -204,9 +202,10 @@
ret_value &= ~0x02;
if (ret_value == 0)
return 0;
- }
/* assert SRST, wait for reset to complete */
+ if (chp->wdc == NULL ||
+ (chp->wdc->cap & WDC_CAPABILITY_NO_EXTRA_RESETS) == 0) {
bus_space_write_1(chp->cmd_iot, chp->cmd_ioh, wd_sdh,
WDSD_IBM);
delay(10);
@@ -219,6 +218,7 @@
(void) bus_space_read_1(chp->cmd_iot, chp->cmd_ioh, wd_error);
bus_space_write_1(chp->ctl_iot, chp->ctl_ioh, wd_aux_ctlr, WDCTL_4BIT);
delay(10);
+ }
ret_value = __wdcwait_reset(chp, ret_value);
WDCDEBUG_PRINT(("%s:%d: after reset, ret_value=0x%d\n",
--- /usr/src/sys/dev/scsipi/atapi_wdc.c Thu May 6 07:39:04 1999
+++ ./atapi_wdc.c Mon Dec 13 23:54:41 1999
@@ -281,7 +281,7 @@
if ((sc_xfer->sc_link->scsipi_atapi.cap & ATAPI_CFG_DRQ_MASK) !=
ATAPI_CFG_IRQ_DRQ || (sc_xfer->flags & SCSI_POLL)) {
/* Wait for at last 400ns for status bit to be valid */
- DELAY(1);
+ DELAY(100);
wdc_atapi_intr(chp, xfer, 0);
} else {
chp->ch_flags |= WDCF_IRQ_WAIT;
>Audit-Trail:
>Unformatted: