[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <46C43FB0.2020404@dunaweb.hu>
Date: Thu, 16 Aug 2007 14:14:40 +0200
From: Zoltan Boszormenyi <zboszor@...aweb.hu>
To: IDE/ATA development list <linux-ide@...r.kernel.org>
Cc: Michal Piotrowski <michal.k.k.piotrowski@...il.com>,
linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: Bad CD disk disables IDE DMA
Zoltan Boszormenyi írta:
> Michal Piotrowski írta:
>> Hi Zoltan,
>>
>> On 15/08/07, Zoltan Boszormenyi <zboszor@...aweb.hu> wrote:
>>
>>> Hi,
>>>
>>> I noticed that a bad CD of mine makes DMA disabled:
>>>
>>> hda: selected mode 0x44
>>> hda: cdrom_decode_status: status=0x51 { DriveReady SeekComplete Error }
>>> hda: cdrom_decode_status: error=0x40 { LastFailedSense=0x04 }
>>> ide: failed opcode was: unknown
>>> hda: cdrom_decode_status: status=0x51 { DriveReady SeekComplete Error }
>>> hda: cdrom_decode_status: error=0x40 { LastFailedSense=0x04 }
>>> ide: failed opcode was: unknown
>>> hda: cdrom_decode_status: status=0x51 { DriveReady SeekComplete Error }
>>> hda: cdrom_decode_status: error=0x40 { LastFailedSense=0x04 }
>>> ide: failed opcode was: unknown
>>> hda: cdrom_decode_status: status=0x51 { DriveReady SeekComplete Error }
>>> hda: cdrom_decode_status: error=0x40 { LastFailedSense=0x04 }
>>> ide: failed opcode was: unknown
>>> hda: DMA disabled
>>> hda: ide_intr: huh? expected NULL handler on exit
>>> hda: ATAPI reset complete
>>>
>>> Every time I put the said CD into to drive and DMA is on, I get the
>>> above messages.
>>>
>>
>> This might be intended.
>>
>
> Might be. Note however, that there are no "cdrom_decode_status: " lines
> when the drive is not using DMA. The disk is the same in both cases.
> I don't know too much about ATAPI, but shouldn't it report the same
> errors no matter how the commands are passed to the drive?
> I tried to make it using DMA after mounting the "faulty" disk and
> copying it.
> The same errors occured in the logs when dd started reading but it
> actually
> finished reading:
>
> $ LANG=C dd if=/dev/hda of=image.iso bs=2048
> dd: reading `/dev/hda': Input/output error
> 298106+0 records in
> 298106+0 records out
> 610521088 bytes (611 MB) copied, 144.349 seconds, 4.2 MB/s
>
> The file is a bit larger than what isosize reports about it but IIRC
> it's expected.
> So, if the disk is actually faulty dd would drop dead and not able to
> read the disk.
> Or something is not quite right in the ide-cd driver. The "DMA
> disabled" message
> comes when the drive should spin up the disk. Isn't there a timeout
> error somewhere?
> Hm. Thinking about it a bit more upon mount the same is happening -
> before
> the disk is spun up the error shows up in the logs and it switches to
> PIO.
> Does it ring a bell to someone?
Another data point: the other disks I tried up to now were DVDs
and DMA remains turned on for those. It's even true for empty
DVDs and the label side of a Labelflash disk. On the other hand,
another CD and two other CDRW disks (no visible faults, scratches
on either btw) give me the same error when they are mounted,
DMA gets disabled.
... some more tests and researching ...
TADA! The solution was to tune down the drive to only use UDMA3
with "hdparm -X67". Now although dd didn't get any faster, DMA
remained enabled. Actually the drive is originally a Pioneer 111D
that was reflashed to 111L to get the Labelflash feature.
Can it be a firmware bug? BTW the drive has a 80w cable.
>>> Two things are interesting: first, it gets mounted correctly and
>>> readable and
>>> second, when DMA was already disabled no such messages occur in the
>>> logs.
>>> Anyhow, I would need DMA to correctly burn CDs/DVDs...
>>> What can I do besides manually re-enable DMA?
>>> All other disks I have tried behave perfectly.
>>> This happened on 2.6.22[-rcX], 2.6.23-rc3-git1 and 2.6.20-1.2962.fc6.
>>> This is on a Fedora Core 6 system. CD/DVD is using the old IDE drivers:
>>>
>>> Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
>>> ide: Assuming 33MHz system bus speed for PIO modes; override with
>>> idebus=xx
>>> NFORCE-MCP55: IDE controller at PCI slot 0000:00:04.0
>>> NFORCE-MCP55: chipset revision 161
>>> NFORCE-MCP55: not 100% native mode: will probe irqs later
>>> NFORCE-MCP55: BIOS didn't set cable bits correctly. Enabling
>>> workaround.
>>> NFORCE-MCP55: 0000:00:04.0 (rev a1) UDMA133 controller
>>> ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA
>>> Probing IDE interface ide0...
>>> hda: PIONEER DVD-RW DVR-111L, ATAPI CD/DVD-ROM drive
>>> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
>>> Probing IDE interface ide1...
>>> ide-floppy driver 0.99.newide
>>>
>>> $ cat /proc/ide/amd74xx
>>> ----------AMD BusMastering IDE Configuration----------------
>>> Driver Version: 2.13
>>> South Bridge: 0000:00:04.0
>>> Revision: IDE 0xa1
>>> Highest DMA rate: UDMA133
>>> BM-DMA base: 0xf000
>>> PCI clock: 33.3MHz
>>> -----------------------Primary IDE-------Secondary IDE------
>>> Prefetch Buffer: yes yes
>>> Post Write Buffer: yes yes
>>> Enabled: yes no
>>> Simplex only: no yes
>>> Cable Type: 80w 80w
>>> -------------------drive0----drive1----drive2----drive3-----
>>> Transfer Mode: PIO DMA DMA DMA
>>> Address Setup: 30ns 90ns 90ns 90ns
>>> Cmd Active: 90ns 90ns 300ns 300ns
>>> Cmd Recovery: 30ns 30ns 300ns 300ns
>>> Data Active: 90ns 330ns 330ns 330ns
>>> Data Recovery: 30ns 270ns 270ns 270ns
>>> Cycle Time: 120ns 600ns 600ns 600ns
>>> Transfer Rate: 16.6MB/s 3.3MB/s 3.3MB/s 3.3MB/s
>>>
>>> Best regards,
>>> Zoltán Böszörményi
>>>
>>
>> Regards,
>> Michal
>>
>>
>
> Best regards,
> Zoltán
>
>
>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists