aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarren Stevens <darren@stevens-zone.net>2017-12-31 16:11:05 -0500
committerTejun Heo <tj@kernel.org>2018-01-08 07:02:02 -0500
commite47ecd4e48030c516e7521403f98903ea1c8f9a7 (patch)
tree88dfdc637f52f9e765ca0927de1d2c56db779200
parent36fffd6a1f19dcd935851fd6c724957727d2760e (diff)
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>
-rw-r--r--drivers/ata/pata_atiixp.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/ata/pata_atiixp.c b/drivers/ata/pata_atiixp.c
index 49d705c9f0f7..4d49fd3c927b 100644
--- a/drivers/ata/pata_atiixp.c
+++ b/drivers/ata/pata_atiixp.c
@@ -278,6 +278,10 @@ static int atiixp_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
278 }; 278 };
279 const struct ata_port_info *ppi[] = { &info, &info }; 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 return ata_pci_bmdma_init_one(pdev, ppi, &atiixp_sht, NULL, 285 return ata_pci_bmdma_init_one(pdev, ppi, &atiixp_sht, NULL,
282 ATA_HOST_PARALLEL_SCAN); 286 ATA_HOST_PARALLEL_SCAN);
283} 287}