Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

libata:pata_atiixp: Don't use unconnected secondary port on SB600

The AMD SB600 southbridge has an PATA IDE interface, but the
secondary port has no physical connections, so is disabled in
the PCI header which makes it appear as a legacy port.

On most systems this causes no trouble, but the Amigaone X1000 has
an SB600 connected to a PowerPC SoC PCI-e root port, with an
emulated ISA bus. On this system a kernel panic occurs at boot
time during device attach for the secondary port.

Mark the port as 'dummy' to prevent this. As a bonus, disabling
this will slightly speed up booting on PC systems using an
SB600 as they will now skip 2 known empty ports.

Signed-off-by: Darren Stevens <Darren@stevens-zone.net>

Signed-off-by: Tejun Heo <tj@kernel.org>

authored by

Darren Stevens and committed by
Tejun Heo
e47ecd4e 36fffd6a

+4
+4
drivers/ata/pata_atiixp.c
··· 278 278 }; 279 279 const struct ata_port_info *ppi[] = { &info, &info }; 280 280 281 + /* SB600 doesn't have secondary port wired */ 282 + if((pdev->device == PCI_DEVICE_ID_ATI_IXP600_IDE)) 283 + ppi[1] = &ata_dummy_port_info; 284 + 281 285 return ata_pci_bmdma_init_one(pdev, ppi, &atiixp_sht, NULL, 282 286 ATA_HOST_PARALLEL_SCAN); 283 287 }