2011/1/10 Basheer, Mansoor Ahamed [off-list ref]:
quoted
From: Mac Lin <redacted>
CNS3xxx override the softreset function of ahci_platform
ahci_softreset by cns3xxx_ahci_softreset, which would retry
ahci_do_softreset again with pmp=0 if
pmp=15 failed, for the controller has problem receiving D2H
Reg FIS of the different PMP setting of the previous sent H2D Reg FIS.
Is this issue only with your ahci platform controller? I came across another
thread here,
http://www.spinics.net/lists/linux-ide/msg39865.html
Thanks for mentioning this.
They do look alike. I'll confirm with them.
Also, the ahci platform controller on Texas Instruments OMAP L138 platform
behaves in a similar fashion.
Currently I see only Cavium Networks, Faraday and TI using ahci platform
controller and all 3 facing same issue.
Hence, should we fix this in ahci_platform.c conditionally using platform data,
otherwise we will end-up adding file for every platform (just for one
function).
We can add quirk in ahci platform data, just like sdhci_pltfm.c and
sdhci_cns3xxx.c.
Thus, in cns3xxx's case, all we need is to include
<linux/ahci_platform.h>, and all the SoC specific code could exist in
arch folder, similar to my v1 patchset.
Best Regards,
Mac Lin