ICH6M SATA and poor optical drive performance

Øyvind Stegard oyvinst at ifi.uio.no
Sat Dec 10 00:03:32 UTC 2005

On Friday 09 December 2005 23:41, Christopher J. Bottaro wrote:
> I have a Dell Inspiron 6000d which has a SATA hard disk and PATA optical
> drive.  The performance for the hard disk is good, but the optical drive's
> performance is very poor, I can't turn on DMA.
> I used a kernel patch that got both drives working well, but it caused my
> kernel to be unstable (random lock ups).  Here is a discussion of the
> patch:
> http://www.math.ucla.edu/~jimc/insp6000/p-disc.html#cd
> I searched the web more and found a discussion on the kernel parameter
> atapi_enabled=1, but that didn't work for me either.
> http://comments.gmane.org/gmane.linux.kernel/351063
> This is the kernel I'm using:
> kernel-2.6.12-1.1381_FC3
> Any advice, tips or hints?  Thank you.
Yeah, use a newer kernel. I've got the same setup in my laptop (ICH6M SATA controller)
and I've got my optical drive recognized as a SCSI device, with full performance.
I use w/a couple of patches applied. Here's the patch 
I use to enable ATAPI in the libata-driver:

diff -uNr linux-2.6.14-rc5/drivers/scsi/libata-core.c linux-2.6.14-rc5.libata_pata/drivers/scsi/libata-core.c
--- linux-2.6.14-rc5/drivers/scsi/libata-core.c	2005-10-20 14:39:45.000000000 +0200
+++ linux-2.6.14-rc5.libata_pata/drivers/scsi/libata-core.c	2005-10-20 14:41:52.000000000 +0200
@@ -75,7 +75,7 @@
 static unsigned int ata_unique_id = 1;
 static struct workqueue_struct *ata_wq;
-int atapi_enabled = 0;
+int atapi_enabled = 1;
 module_param(atapi_enabled, int, 0444);
 MODULE_PARM_DESC(atapi_enabled, "Enable discovery of ATAPI devices (0=off, 1=on)");
diff -uNr linux-2.6.14-rc5/include/linux/libata.h linux-2.6.14-rc5.libata_pata/include/linux/libata.h
--- linux-2.6.14-rc5/include/linux/libata.h	2005-10-20 14:39:49.000000000 +0200
+++ linux-2.6.14-rc5.libata_pata/include/linux/libata.h	2005-10-20 14:41:38.000000000 +0200
@@ -40,7 +40,7 @@
 #undef ATA_VERBOSE_DEBUG	/* yet more debugging output */
 #undef ATA_IRQ_TRAP		/* define to ack screaming irqs */
 #undef ATA_NDEBUG		/* define to disable quick runtime checks */
-#undef ATA_ENABLE_PATA		/* define to enable PATA support in some
+#define ATA_ENABLE_PATA		/* define to enable PATA support in some
 				 * low-level drivers */
 #undef ATAPI_ENABLE_DMADIR	/* enables ATAPI DMADIR bridge support */
It applies nicely to I've _never_ had any lock ups with this, but,
of course, I cannot guarantee any thing. I'd backup my data before playing
with these things.

< Øyvind Stegard < oyvinst at ifi uio no >
 < http://www.oyvind.nu/
  < `Lottery: A tax on people who are bad at math.'

More information about the fedora-list mailing list