Question regarding PORT_IRQ_BAD_PMP (Re: AHCI support Port Multiplier problem.)

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

 



Tejun Heo <tj <at> kernel.org> writes:

[snip]

> Please take a look at ahci_sb600_softreset() in ahci.c.  The
> controller had the same problem.  Preferably, please fix your
> controller but as there are more than one controller with this
> problem, we probably should implement it as a quirk in libahci.c.

I refer to the ahci_sb600_softreset and ahci_sb600_check_ready to make my patch,
but I found that the following code changes in ahci_sb600_check_ready:

        /*                                                    
         * There is no need to check TFDATA if BAD PMP is found due to HW bug, 
                                             
         * which can save timeout delay.
         */                                                   
        if (irq_status & PORT_IRQ_BAD_PMP)
                return -EIO;

On my system (CNS3xxx) it result in:

ata2: softreset failed (device not ready)
ata2: applying PMP SRST workaround and retrying
ata2: softreset failed (device not ready)
ata2: reset failed (errno=-5), retrying in 9 secs
ata2: softreset failed (device not ready)
ata2: applying PMP SRST workaround and retrying
ata2: softreset failed (device not ready)
ata2: reset failed (errno=-5), retrying in 9 secs
ata2: softreset failed (device not ready)
ata2: applying PMP SRST workaround and retrying
ata2: softreset failed (device not ready)
ata2: reset failed (errno=-5), retrying in 34 secs
ata2: limiting SATA link speed to 1.5 Gbps
ata2: softreset failed (device not ready)
ata2: applying PMP SRST workaround and retrying
ata2: softreset failed (device not ready)
ata2: reset failed, giving up

It seems that the PORT_IRQ_BAD_PMP is not getting cleared, or, asserted every
time when it "received a FIS from a device that did not have a command
outstanding", which is the D2H FIS of softreset.

The sb600, which I assume the code work correctly, seems doesn't have this
problem. So I am wondering that whether is this the right behavior on cns3xxx,
or  and just another issue of the chip?

Best Regards,
Mac Lin



--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[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