aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c
diff options
context:
space:
mode:
authorEvan Wang <xswang@marvell.com>2018-04-13 12:32:31 +0800
committerTejun Heo <tj@kernel.org>2018-04-26 11:25:15 -0700
commitdaa2e3bdbb0b3e691cf20a042350817310cb8cb5 (patch)
treea5fe675e574d50f1fae48ac7df725861d872e484 /drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c
parentfa89f53bd7288d6aa7a982841119e7123faf5a53 (diff)
ata: ahci: mvebu: override ahci_stop_engine for mvebu AHCI
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@marvell.com> Cc: Ofer Heifetz <oferh@marvell.com> Cc: Tejun Heo <tj@kernel.org> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c')
0 files changed, 0 insertions, 0 deletions