Re: [BUG] DMA timeout errors on Dell Latitude XPi CD P150ST

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Panagiotis Issaris <panagiotis <at> gmail.com> writes:
> When booting Linux 2.6.19-rc3 (or 2.6.8-16sarge5 so it is not specific
> to the current kernels) on a friends laptop, I'm getting a lot of
> errormessages from the IDE controller related to DMA problems. When
> disabling all DMA related options, the kernel boots fine (and fast).
> With DMA enabled, it takes about 1 minute to stumble over the DMA
> problems. The laptop is Dell Latitude XPi CD P150ST.
Debian developer Frederik Schueler noted that as far as he knows the laptop does
not support DMA. 

It seems that in drivers/ide/setup-pci.c, DMA is being forced on:
177 static unsigned long ide_get_or_set_dma_base (ide_hwif_t *hwif)
...
225         switch(dev->device) {
...
22x             case PCI_DEVICE_ID_CMD_643:
...
234                 if (simplex_stat & 0x80) {
235                     printk(KERN_INFO "%s: simplex device: "
236                         "DMA forced\n",
...
240             default:
241                 /*
242                  * If the device claims "simplex" DMA,
243                  * this means only one of the two interfaces
244                  * can be trusted with DMA at any point in time.
245                  * So we should enable DMA only on one of the
246                  * two interfaces.
247                  */
...
259                         printk(KERN_INFO "%s: simplex device: "
260                             "DMA disabled\n",
...

I would guess it would be enough to remove the PCI_DEVICE_ID_CMD_643 and let it
be handled by the default case, thus disabling DMA. I will try the attached
patch on my friends laptop as soon as he brings it along.

With friendly regards,
Takis

diff --git a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c
index 0719b64..5a7b6f6 100644
--- a/drivers/ide/setup-pci.c
+++ b/drivers/ide/setup-pci.c
@@ -226,7 +226,6 @@ #endif /* CONFIG_BLK_DEV_IDEDMA_FORCED *
                        case PCI_DEVICE_ID_AL_M5219:
                        case PCI_DEVICE_ID_AL_M5229:
                        case PCI_DEVICE_ID_AMD_VIPER_7409:
-                       case PCI_DEVICE_ID_CMD_643:
                        case PCI_DEVICE_ID_SERVERWORKS_CSB5IDE:
                        case PCI_DEVICE_ID_REVOLUTION:
                                simplex_stat = hwif->INB(dma_base + 2);


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux