Messages in this thread Patch in this message |  | | | Date | Sat, 14 Jun 2008 20:00:15 -0700 (PDT) | | From | Piter PUNK <> | | Subject | Re: Regression: kernel 2.6.24{,.1} ahci problem, does not boot |
| |
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 */
|  |