Support for DMA on ICH6M / piix.
PATCH 1/1 Support for DMA on ICH6M / piix.
Hi,
the disk drive in my laptop cannot enable DMA with "hdparm -d1 /dev/hda", unless I use a kernel with the supplied patch.
The patch was originally written by Erik Slagter for 2.6.12 (see http://marc.theaimsgroup.com/?l=linux-ide&m=112030174904055&w=2) and I have successfully used it until 2.6.14. I want to upgrade to 2.6.16 ASAP, so I adapted the patch for vanilla 2.6.16.
It works for me, but you might want to check whether it messes up things...
More info on my hardware:
$ dmesg | grep SAMSUNG hda: SAMSUNG MP0804H, ATA DISK drive
$ lspci | grep ICH6M 0000:00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 03)
The patch:
drivers/ide/pci/piix.c +4 -0
@@ -132,6 +132,7 @@ static u8 piix_ratemask (ide_drive_t *drcase PCI_DEVICE_ID_INTEL_82801DB_11 :case PCI_DEVICE_ID_INTEL_82801EB_11 :case PCI_DEVICE_ID_INTEL_ESB_2 : +case PCI_DEVICE_ID_INTEL_ICH6_5 :case PCI_DEVICE_ID_INTEL_ICH6_19 :case PCI_DEVICE_ID_INTEL_ICH7_21 :case PCI_DEVICE_ID_INTEL_ESB2_18 :
@@ -447,6 +448,7 @@ static unsigned int __devinit init_chipscase PCI_DEVICE_ID_INTEL_82801EB_11 :case PCI_DEVICE_ID_INTEL_82801E_11 :case PCI_DEVICE_ID_INTEL_ESB_2 : +case PCI_DEVICE_ID_INTEL_ICH6_5 :case PCI_DEVICE_ID_INTEL_ICH6_19 :case PCI_DEVICE_ID_INTEL_ICH7_21 :case PCI_DEVICE_ID_INTEL_ESB2_18 :
@@ -578,6 +580,7 @@ static ide_pci_device_t piix_pci_info[]/* 22 */ DECLARE_PIIX_DEV ("ICH4" ),/* 23 */ DECLARE_PIIX_DEV ("ESB2" ),/* 24 */ DECLARE_PIIX_DEV ("ICH8M" ), + /* 25 */ DECLARE_PIIX_DEV("ICH6M"), };/**
@@ -655,6 +658,7 @@ static struct pci_device_id piix_pci_tbl { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 22}, { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB2_18, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 23}, { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH8_6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 24}, + { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 25}, { 0, }, };MODULE_DEVICE_TABLE (pci, piix_pci_tbl);
include/linux/pci_ids.h +1 -0
@@ -2092,6 +2092,7 @@#define PCI_DEVICE_ID_INTEL_ICH6_0 0x2640#define PCI_DEVICE_ID_INTEL_ICH6_1 0x2641#define PCI_DEVICE_ID_INTEL_ICH6_2 0x2642 +#define PCI_DEVICE_ID_INTEL_ICH6_5 0x2653#define PCI_DEVICE_ID_INTEL_ICH6_16 0x266a#define PCI_DEVICE_ID_INTEL_ICH6_17 0x266d#define PCI_DEVICE_ID_INTEL_ICH6_18 0x266e
HTH, Uwe.
Signature · 4 lines
Uwe Hermann http://www.hermann-uwe.de http://www.it-services-uh.de | http://www.crazy-hacks.org http://www.holsham-traders.de | http://www.unmaintained-free-software.org