Thread (4 messages) 4 messages, 3 authors, 2004-08-04

Re: PATA handling on ICH5R in 2.6.8rc2

From: Jens Axboe <hidden>
Date: 2004-08-04 17:26:51

On Wed, Aug 04 2004, Andi Kleen wrote:
Hallo,

I have a machine with a ICH5R southbridge and a PATA DVD hanging off
it.  When I compile the kernel without CONFIG_BLK_DEV_IDE_SATA then
the old IDE driver detects the DVD anyways, but refuses to enable DMA
(because the PCI ID entry is not compiled into piix.c). It doesn't
even disable -u1 which causes quite some problems when accessing the
CD ROM: I get endless floods of "too many lost ticks", which means it
has spent more than 100 jiffies with interrupts off doing something. I
fixed this with hdparm -u1, but it's still quite slow with DMA off.

I could enable BLK_DEV_IDE_SATA, but then the old IDE driver would try
to drive all SATA drives, which would be wrong I guess.

I presume the right way to fix it would be to always readd the PCI ID
entry for 82801EB_1 to piix.c, but only let it be handled by the old
driver when there is a PATA DVD on the controller (and leave the other
controllers to libata). Still this could get conflicts when there is a
real SATA device on the same controller (can this happen?) 

For that the piix.c probe function would just need to do a quick cable
check and ignore the device when it is SATA and when BLK_DEV_IDE_SATA
is unset. I looked through the  Intel ICH5 manuals, but it was not
obvious to me how to probe this non intrusively. I suppose one way
would be to go through the full IDE driver initialization for the
drive, and then when SATA is detected bail out again and reset the
controller and leave it for libata.

Or drive the DVD always with libata? Does it have an working ATAPI
driver yet?

Is there a better solution for this problem? 
Can't you set it to enhanced mode in the bios, then shows up as a
seperate device id and just works. I had the same issue until Jeff
walked me through it :-)

-- 
Jens Axboe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help