Skip to content

Commit c39b069

Browse files
Russell Kingairlied
authored andcommitted
DRM: armada: fix corruption while loading cursors
Loading cursors to the LCD controller's SRAM can be corrupted when the configured pixel clock is relatively slow. This seems to be caused when we write back-to-back to the SRAM registers. There doesn't appear to be any status register we can read to check when an access has completed. Inserting a dummy read between the writes appears to fix the problem. Cc: <stable@vger.kernel.org> # 3.13 Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Dave Airlie <airlied@redhat.com>
1 parent 9f97ba8 commit c39b069

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

drivers/gpu/drm/armada/armada_crtc.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -679,6 +679,7 @@ static void armada_load_cursor_argb(void __iomem *base, uint32_t *pix,
679679
base + LCD_SPU_SRAM_WRDAT);
680680
writel_relaxed(addr | SRAM_WRITE,
681681
base + LCD_SPU_SRAM_CTRL);
682+
readl_relaxed(base + LCD_SPU_HWC_OVSA_HPXL_VLN);
682683
addr += 1;
683684
if ((addr & 0x00ff) == 0)
684685
addr += 0xf00;

0 commit comments

Comments
 (0)