Sorry,
my last mail i forgot to see the MAINTAINERS file and send
only to LKML and to Tejun Heo.
-----forwarded mail below----------------------------------
Hi,
I have a notebook with SiS968. It works with 2.6.23.x
kernels but not with 2.6.24+ kernels. Probably my
problem is the same of this old thread:
http://lkml.org/lkml/2008/2/14/263
The error is exactly the same.
Looking the changes from 2.6.23 to 2.6.24 in
http://kernelnewbies.org/Linux_2_6_24#head-f29764e7ef293be84e2f8aa1b08b8816b15ebfca
I try to revert two commits to see which one brokes
my SATA device support. The guilt is this one:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7d50b60b5e38f910ad69f0187af00f5d6a8970d4
It implements PMP support. In attached patch, I
disable PMP support in ahci.c to SiS SATA controllers.
I hope i am sending the patch to correct place and
it works fine to others (well, it's working to me).
The patch is against 2.6.24.5, but i think it's easy
to adapt to 2.6.25+
Thanks
Piter PUNK
--- linux-2.6.24.5/drivers/ata/ahci.c 2008-04-18 22:53:39.000000000 -0300
+++ linux-2.6.24.5_sis-fixed/drivers/ata/ahci.c 2008-06-14 22:58:22.000000000 -0300
@@ -85,6 +85,7 @@
board_ahci_ign_iferr = 2,
board_ahci_sb600 = 3,
board_ahci_mv = 4,
+ board_ahci_sis = 5,
/* global controller registers */
HOST_CAP = 0x00, /* host capabilities */
@@ -442,6 +443,15 @@
.udma_mask = ATA_UDMA6,
.port_ops = &ahci_ops,
},
+ /* board_ahci_sis */
+ {
+ AHCI_HFLAGS (AHCI_HFLAG_NO_PMP),
+ .flags = AHCI_FLAG_COMMON,
+ .link_flags = AHCI_LFLAG_COMMON | ATA_LFLAG_HRST_TO_RESUME,
+ .pio_mask = 0x1f, /* pio0-4 */
+ .udma_mask = ATA_UDMA6,
+ .port_ops = &ahci_vt8251_ops,
+ },
};
static const struct pci_device_id ahci_pci_tbl[] = {
@@ -552,9 +562,9 @@
{ PCI_VDEVICE(NVIDIA, 0x0abf), board_ahci }, /* MCP79 */
/* SiS */
- { PCI_VDEVICE(SI, 0x1184), board_ahci }, /* SiS 966 */
- { PCI_VDEVICE(SI, 0x1185), board_ahci }, /* SiS 966 */
- { PCI_VDEVICE(SI, 0x0186), board_ahci }, /* SiS 968 */
+ { PCI_VDEVICE(SI, 0x1184), board_ahci_sis }, /* SiS 966 */
+ { PCI_VDEVICE(SI, 0x1185), board_ahci_sis }, /* SiS 968 */
+ { PCI_VDEVICE(SI, 0x0186), board_ahci_sis }, /* SiS 968 */
/* Marvell */
{ PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv }, /* 6145 */