Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Mar 1999 18:51:28 +1100 (EST)
From:      Gregory Bond <gnb@itga.com.au>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/10597: patch: atapi-cd with HP8100 CD-RW
Message-ID:  <199903150751.SAA00662@hellcat.itga.com.au>

next in thread | raw e-mail | index | archive | help

>Number:         10597
>Category:       kern
>Synopsis:       Patch to make HP 8100 CD-RW work with acd driver
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Mar 15 00:00:02 PST 1999
>Closed-Date:
>Last-Modified:
>Originator:     Gregory Bond
>Release:        FreeBSD 3.1-STABLE i386
>Organization:
ITG Australia Limited
>Environment:

>Description:

It seems the HP 8100 CD-RW drive does not work with the standard
acd driver in 3.x for write mode.  When opening for writing, the
acdopen() routine does an ATAPI REZERO_UNIT command that the HP
8100 rejects with an "illegal request" error.  The HP 7200 aparently
accepts the REZERO as that drive reportedly does work with the
stock acd driver.  The dmesg output for the probe and acdopen()
(with atapi.c DEBUG enabled) are as follows:

[wdc/acd probes]
wdc0 at 0x1f0-0x1f7 irq 14 on isa
wdc0: unit 0 (wd0): <QUANTUM FIREBALL EX4.3A>, DMA, 32-bit, multi-block-16
wd0: 4104MB (8405775 sectors), 8895 cyls, 15 heads, 63 S/T, 512 B/S
wdc0: unit 1 (wd1): <QUANTUM FIREBALL EX6.4A>, DMA, 32-bit, multi-block-16
wd1: 6149MB (12594960 sectors), 13328 cyls, 15 heads, 63 S/T, 512 B/S
wdc1 at 0x170-0x177 irq 15 on isa
atapi1.0 at 0x170: attach called
wdc1: unit 0 (atapi): <CD-532E-A/2.0C>, removable, accel, ovlap, dma, iordis
atapi10: info c0-85-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-
0-0-0-0-0-0-0-0-3-0-0-1-0-0-32-2e-30-43-0-0-0-0-43-44-2d-35-33-32-45-2d-41-0-0-0
-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-2f-0-0-0-2-0-
2-2-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-7-0-7-4-3-0-78-0-78-0-b4-0-78-0-0-0-0-0-5e
-1-0-0-0-0
atapi1.0: req im 5a-0-2a-0-0-0-0-0-1c-0-0-0-0-0-0-0 len=28
atapi1.0: start
atapi1.0: send cmd MODE_SENSE 5a-0-2a-0-0-0-0-0-1c-0-0-0-0-0-0-0
atapi1.0: intr ireason=0x2, len=28, status=58<ready,opdone,drq>, error=0
atapi1.0: intr ireason=0x3, len=28, status=50<ready,opdone>, error=0
acd0: drive speed 5512KB/sec, 128KB cache
acd0: supported read types: CD-R, CD-RW, CD-DA, packet track
acd0: Audio: play, 16 volume levels
acd0: Mechanism: ejectable tray
acd0: Medium: no/blank disc inside, unlocked
atapi10: cap 0-1a-70-0-0-0-0-0-2a-12-7-0-71-73-29-3-d-16-10-0-80-0-d-16-0-0-0-0
atapi1.1 at 0x170: attach called
wdc1: unit 1 (atapi): <Hewlett-Packard CD-Writer Plus 8100/1.0g>, removable, acc
el, dma, iordis
atapi11: info c0-85-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-59-4d-57-33-37-35-43-37-
36-4c-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-31-2e-30-67-0-0-0-0-48-65-77-6c-65-74-74-2
d-50-61-63-6b-61-72-64-20-43-44-2d-57-72-69-74-65-72-20-50-6c-75-73-20-38-31-30-
30-0-0-0-0-0-0-0-0-0-0-f-0-0-0-3-0-2-2-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-7-0-3-2
-1-0-96-0-96-0-b4-0-b4-0-0-0-0-0-0-0-0-0-0-0
atapi1.1: req im 5a-0-2a-0-0-0-0-0-1c-0-0-0-0-0-0-0 len=28
atapi1.1: start
atapi1.1: send cmd MODE_SENSE 5a-0-2a-0-0-0-0-0-1c-0-0-0-0-0-0-0
atapi1.1: intr ireason=0x2, len=28, status=58<ready,opdone,drq>, error=0
atapi1.1: intr ireason=0x3, len=28, status=50<ready,opdone>, error=0
acd1: drive speed 4134KB/sec, 1024KB cache
acd1: supported read types: CD-R, CD-RW, CD-DA, packet track
acd1: supported write types: CD-R, CD-RW, test write
acd1: Audio: play, 256 volume levels
acd1: Mechanism: ejectable tray
acd1: Medium: CD-RW 120mm data disc loaded, unlocked
atapi11: cap 0-1c-21-0-0-0-0-0-2a-14-7-7-71-63-29-23-8a-10-0-1-0-4-8a-10-0-0-2-c
2

[ then, when attempting to open for write:]

atapi1.1: start
atapi1.1: send cmd PREVENT_ALLOW 1e-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0
atapi1.1: intr ireason=0x3, len=0, status=50<ready,opdone>, error=0
atapi1.1: req w 1-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0 len=0
atapi1.1: start
atapi1.1: send cmd REZERO_UNIT 1-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0
atapi1.1: intr ireason=0x3, len=0, status=51<ready,opdone,check>, error=54<abort
>
atapi1:1: illegal request
acd1: rezero failed



>How-To-Repeat:

With an HP8100 connected, try to burn a CD-R/CD-RW disk.  When opening the
device for write, it elicits the following error in dmesg:
	acd1: rezero failed

>Fix:
	
The following patch works for me, but I am no ATAPI wizard so I have no 
idea if there are unforseen Bad Things that happen if the rezero isn't 
successful.

*** ./sys/i386/isa/atapi-cd.c.dist      Mon Jan  4 10:13:22 1999
--- ./sys/i386/isa/atapi-cd.c   Mon Mar 15 16:51:44 1999
***************
*** 399,405 ****
              /* read/write */
              if (acd_rezero_unit(cdp)) {
                  printf("acd%d: rezero failed\n", lun);
!                 return EIO;
              }
          } else {
              /* read only */
--- 399,405 ----
              /* read/write */
              if (acd_rezero_unit(cdp)) {
                  printf("acd%d: rezero failed\n", lun);
!                 /* return EIO; */
              }
          } else {
              /* read only */


>Release-Note:
>Audit-Trail:
>Unformatted:


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?199903150751.SAA00662>