On Tue, Apr 24, 2018 at 12:06:44PM +0800, xswang@xxxxxxxxxxx wrote: > From: Evan Wang <xswang@xxxxxxxxxxx> > > Marvell armada37xx, armada7k and armada8k share the same > AHCI sata controller IP, and currently there is an issue > (Errata Ref#226)that the SATA can not be detected via SATA > Port-MultiPlayer(PMP). After debugging, the reason is > found that the value of Port-x FIS-based Switching Control > (PxFBS@0x40) became 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 save the port PxFBS register before PxCMD > ST write and restore the port PxFBS register afterwards > in ahci_stop_engine(). > > This commit allows drivers to override ahci_stop_engine > behavior for use by the Marvell AHCI driver(and potentially > other drivers in the future). > > 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.c | 6 +++--- > drivers/ata/ahci.h | 7 +++++++ > drivers/ata/ahci_qoriq.c | 2 +- > drivers/ata/ahci_xgene.c | 4 ++-- > drivers/ata/libahci.c | 20 ++++++++++++-------- > drivers/ata/sata_highbank.c | 2 +- > 6 files changed, 26 insertions(+), 15 deletions(-) <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>