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>