Re: 2.6.18-rc7-git1: AHCI not seeing devices on ICH8 mobo (DG965RY)

From: Robin H. Johnson
Date: Sun Sep 17 2006 - 23:23:45 EST


On Sun, Sep 17, 2006 at 04:49:29PM +0900, Tejun Heo wrote:
> On Sat, Sep 16, 2006 at 02:08:57PM -0700, Robin H. Johnson wrote:
> > I recompiled libata and AHCI using the ATA_DEBUG and ATA_VERBOSE_DEBUG
> > defines, and got an interesting trace.
> >
> > In specific, look at port_idx 2/3, being all zeros in ahci_host_init.
> >
> > I'm digging into it further now, but something makes me suspect that
> > base addresses for ports 3/4 are wrong.
> >
> > Full file at:
> > http://orbis-terrarum.net/~robbat2/x86_64-mmconfig-failure/2.6.18-rc7-git1-libata-ahci-verbose-failure.dmesg
>
> Can you please try the attached patch?
Yes your patch fixes it perfectly - it's a better version of an almost
working fix I hacked up after my previous email.

Some patch review comments below as well.

Signed-off-by: Robin H. Johnson <robbat2@xxxxxxxxxx>

> @@ -186,9 +187,11 @@ struct ahci_host_priv {
> unsigned long flags;
> u32 cap; /* cache of HOST_CAP register */
> u32 port_map; /* cache of HOST_PORTS_IMPL reg */
> + int port_tbl[AHCI_MAX_PORTS];
> };
maybe u8 instead of int?
also a comment - /* mapping of port_idx to the implemented port */

> + if (n_ports == 0) {
> + dev_printk(KERN_ERR, &pdev->dev, "0 port implemented\n");
> + return -EINVAL;
> + }
Use plural form (0 ports), or negative (No ports) instead.

--
Robin Hugh Johnson
E-Mail : robbat2@xxxxxxxxxx
GnuPG FP : 11AC BA4F 4778 E3F6 E4ED F38E B27B 944E 3488 4E85

Attachment: pgp00000.pgp
Description: PGP signature