AMD64 DVD driver issue (ide_cd/cdrom_read_intr fails)

From: Stefan Schwarzer (stefan.schwarzer_at_gmx.net)
Date: 11/20/05


Date: 19 Nov 2005 23:02:23 GMT

I am running AMD64, kernel 2.6.12 (debian sid, vanilla kernel) on an Asus A8V
Deluxe Motherboard. I am trying to get a Plextor DVD rewriter PX 740A
(firmware 1.01) to work.
It seems that the device is recognized correctly --- it shares the
first IDE bus with a Yamaha CD-RW):

Nov 18 09:27:42 ours kernel: ide: Assuming 33MHz system bus speed for PIO modes;
 override with idebus=xx
Nov 18 09:27:42 ours kernel: hda: YAMAHA CRW2200E, ATAPI CD/DVD-ROM drive
Nov 18 09:27:42 ours kernel: hdb: PLEXTOR DVDR PX-740A, ATAPI CD/DVD-ROM drive
Nov 18 09:27:42 ours kernel: hdc: WDC WD1200AB-00CBA1, ATA DISK drive
Nov 18 09:27:42 ours kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Nov 18 09:27:42 ours kernel: ide1 at 0x170-0x177,0x376 on irq 15
Nov 18 09:27:42 ours kernel: hda: ATAPI 40X CD-ROM CD-R/RW drive, 8192kB Cache
Nov 18 09:27:42 ours kernel: Uniform CD-ROM driver Revision: 3.20
Nov 18 09:27:42 ours kernel: hdb: ATAPI 94X DVD-ROM DVD-R CD-R/RW drive, 2048kB
Cache

Success so far is mixed. It seems that writes to the device work. I can
for example burn CD-RWs correctly, ie. using them in a different drive
I can correctly recover the iso-image that I burned with cdrecord.

However, reading from the drive does not work. dd commands, for example
to extract a CD image, mounts with subsequent
copy commands or attempts to read/play a DVD movie from the drive
fail with messages like

hdb: cdrom_read_intr: Bad transfer size 65534
  Trying to limit transfer sizes
end_request: I/O error, dev hdb, sector 77760
Buffer I/O error on device hdb, logical block 9720

and later the driver claims

hdb: cdrom_read_intr: Bad transfer size 65534
  This drive is not supported by this version of the driver

complemented by

hdb: status error: status=0x58 { DriveReady SeekComplete DataRequest }
ide: failed opcode was: unknown
hdb: drive not ready for command

The error does not occur immediately, but only if sufficient
data traffic is generated, sometimes 20-30 MB get transferred before the
I/O error is reported. The message is caused by the ide_cd driver code
at a place where it checks that the amount of data transferred is a
multiple of the sector (?) size. The transfer size inducing failure is
always the same 2^16-2. I have replaced the drive by a new one and I have
exchanged the cable to make sure that this is not a hardware issue.
The Yamaha drive on the same IDE bus works flawlessly.

I would like to know if there are people out there who
got the combination kernel 2.6.12 AMD64 (no SMP)
and Plextor 740A (Firmware 1.01)
to work or whether it is known to fail. I am also grateful for hints
how to best continue debugging.

Is there

 

I have had the drive and cable changed to make sure that I do not



Relevant Pages

  • Re: [PATCH][2.6][2/14] documentation update
    ... add udev.txt which describes how to use dvb and udev/sysfs ... The firmware can be loaded automatically via the hotplug manager ... +- For the dvb-ttpci driver/av7110 card you can download the firmware files from ... +file you probably know from the 2.4 DVB releases driver. ...
    (Linux-Kernel)
  • Re: Fedora 5 - Intel Pro/Wireless LAN 2100 3B Mini PCI adapter woes.
    ... Guide to install the Intel PRO Wireless 2100 Driver for Linux ... The ipw2100 binary firmware image. ...
    (comp.os.linux.networking)
  • Filmware Installation
    ... Broadcom wireless chip needs software, called "firmware", that runs on ... To get such firmware on your system, you must download the ... driver from a legal distribution point, ... extract the firmware from that Broadcom driver by using b43-fwcutter ...
    (Ubuntu)
  • Re: Problem: NIC transmit timeouts
    ... I've seen two causes for this: 1) driver bug, 2) firmware bug. ... Another fun aspect of case 2) is that since its PCI traffic related, ... the MTT register, and the equivalent of the ICH ...
    (Linux-Kernel)
  • [PATCH, RFT] starfire net driver update
    ... The firmware is needed to ... * include the firmware with this driver. ... #ifdef HAVE_NETDEV_POLL ... #define RxComplType RxComplType3 ...
    (Linux-Kernel)