# Re: \[PATCH v5 3/3\] ahci\_platforms: add support for CNS3xxx SoC devices

- From: Lin Mac \<hidden\>
- Date: 2011-01-10 15:47:29 
- List: linux-ide
- Page: https://ratatoskr.run/linux-ide/2011/01/8565566
- Thread: https://ratatoskr.run/linux-arm-kernel/2011/01/8565510/t.md

```text
2011/1/10 Basheer, Mansoor Ahamed [ref]:
>> 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
```

## Attachments

- [0001-libahci-Fixup-for-softwreset-failures-with-direct-co.patch](https://ratatoskr.run/linux-ide/2011/01/8565566/attachment/0) (text/x-diff, 1003 bytes)
