Re: Intel AHCI ICH9R not detecting devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



xerces8 wrote:
>> This looks like resource conflict to me, which could have resulted
>> from ahci trying to grab all resources.  Can you please post the
>> result of "cat /proc/ioports" and "cat /proc/iomem"?
> 
> I noticed that in IDE mode the same happens (32bit kernel has problems,
> 64bit kernel has not), so here is dmesg, iomem and ioports for all 4
> combinations.

Can you please try the attached debug patch and report boot log.  All
resources look fine.

Thanks.

-- 
tejun
---
 drivers/ata/ahci.c |   21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

Index: tree0/drivers/ata/ahci.c
===================================================================
--- tree0.orig/drivers/ata/ahci.c
+++ tree0/drivers/ata/ahci.c
@@ -2240,8 +2240,10 @@ static int ahci_init_one(struct pci_dev
 
 	/* acquire resources */
 	rc = pcim_enable_device(pdev);
-	if (rc)
+	if (rc) {
+		dev_printk(KERN_WARNING, &pdev->dev, "pcim_enable_device failed %d\n", rc);
 		return rc;
+	}
 
 	/* AHCI controllers often implement SFF compatible interface.
 	 * Grab all PCI BARs just in case.
@@ -2249,8 +2251,10 @@ static int ahci_init_one(struct pci_dev
 	rc = pcim_iomap_regions_request_all(pdev, 1 << AHCI_PCI_BAR, DRV_NAME);
 	if (rc == -EBUSY)
 		pcim_pin_device(pdev);
-	if (rc)
+	if (rc) {
+		dev_printk(KERN_WARNING, &pdev->dev, "pcim_iomap_regions_request_all() failed %d\n", rc);
 		return rc;
+	}
 
 	if (pdev->vendor == PCI_VENDOR_ID_INTEL &&
 	    (pdev->device == 0x2652 || pdev->device == 0x2653)) {
@@ -2324,19 +2328,26 @@ static int ahci_init_one(struct pci_dev
 
 	/* initialize adapter */
 	rc = ahci_configure_dma_masks(pdev, hpriv->cap & HOST_CAP_64);
-	if (rc)
+	if (rc) {
+		dev_printk(KERN_WARNING, &pdev->dev, "ahci_configure_dma_masks() failed %d\n", rc);
 		return rc;
+	}
 
 	rc = ahci_reset_controller(host);
-	if (rc)
+	if (rc) {
+		dev_printk(KERN_WARNING, &pdev->dev, "ahci_reset_controller() failed %d\n", rc);
 		return rc;
+	}
 
 	ahci_init_controller(host);
 	ahci_print_info(host);
 
 	pci_set_master(pdev);
-	return ata_host_activate(host, pdev->irq, ahci_interrupt, IRQF_SHARED,
+	rc = ata_host_activate(host, pdev->irq, ahci_interrupt, IRQF_SHARED,
 				 &ahci_sht);
+	if (rc)
+		dev_printk(KERN_WARNING, &pdev->dev, "ahci_host_activate() failed %d\n", rc);
+	return rc;
 }
 
 static int __init ahci_init(void)

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux