Latest working kernel version: None Earliest failing kernel version: 2.6.18 (or earlier) Distribution: Gentoo Hardware Environment: TYAN S3992 + Broadcom RAIDCore BCM4852 Software Environment: Problem Description: I am using 8-ports SATA-RAID board Broadcom RAIDCore BCM4852, whose PCI-ID is 1166:0241. While, PCI-ID 1166:0241 is defined as Serverworks Frodo4 which has 4 ports in sata_svw.c. driver/ata/sata_svw.c:479 - 493 (linux-2.6.24.4): /* 0x240 is device ID for Apple K2 device * 0x241 is device ID for Serverworks Frodo4 * 0x242 is device ID for Serverworks Frodo8 * 0x24a is device ID for BCM5785 (aka HT1000) HT southbridge integrated SATA * controller * */ static const struct pci_device_id k2_sata_pci_tbl[] = { { PCI_VDEVICE(SERVERWORKS, 0x0240), board_svw4 }, { PCI_VDEVICE(SERVERWORKS, 0x0241), board_svw4 }, /* <-- defined as 4-ports board */ { PCI_VDEVICE(SERVERWORKS, 0x0242), board_svw8 }, { PCI_VDEVICE(SERVERWORKS, 0x024a), board_svw4 }, { PCI_VDEVICE(SERVERWORKS, 0x024b), board_svw4 }, { } }; Thus, only 4 ports out of 8 ports work without rewriting the definition. (rewriting "board_svw4" to "board_svw8" makes the board working all 8 ports.) I don't know about Frodo4, but I afraid of PCI-ID collision. If so, I think that it needs a module parameter to specify the number of ports of these devices. Steps to reproduce:
kernel version mistake... 2.6.24.9 -> 2.6.24.4
Will forward patch upstream. Thanks.