Re: [PATCH 2/2] ata: ahci: mvebu: override ahci_stop_engine for mvebu AHCI

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

 



On Tue, Apr 24, 2018 at 12:06:45PM +0800, xswang@xxxxxxxxxxx wrote:
> From: Evan Wang <xswang@xxxxxxxxxxx>
> 
> There is an issue(Errata Ref#226) that the SATA can not be
> detected via SATA Port-MultiPlayer(PMP) with following
> error log:
>   ata1.15: PMP product ID mismatch
>   ata1.15: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
>   ata1.15: Port Multiplier vendor mismatch '0x1b4b'!='0x0'
>   ata1.15: PMP revalidation failed (errno=-19)
> 
> After debugging, the reason is found that the value Port-x
> FIS-based Switching Control(PxFBS@0x40) become wrong.
> According to design, the bits[11:8, 0] of register PxFBS
> are cleared when Port Command and Status (0x18) bit[0]
> changes its value from 1 to 0, i.e. falling edge of Port
> Command and Status bit[0] sends PULSE that resets PxFBS
> bits[11:8; 0].
> So it needs a mvebu SATA WA to save the port PxFBS register
> before PxCMD ST write and restore it afterwards.
> 
> This patch implements the WA in a separate function of
> ahci_mvebu_stop_engine to override ahci_stop_gngine.
> 
> Signed-off-by: Evan Wang <xswang@xxxxxxxxxxx>
> Suggested-by: Ofer Heifetz <oferh@xxxxxxxxxxx>
> Cc: Tejun Heo <tj@xxxxxxxxxx>
> Cc: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxx>
> ---
>  drivers/ata/ahci_mvebu.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 56 insertions(+)


<formletter>

This is not the correct way to submit patches for inclusion in the
stable kernel tree.  Please read:
    https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
for how to do this properly.

</formletter>



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]