• Mikulas Patocka's avatar
    matroxfb: perform a dummy read of M_STATUS · 6733fc4b
    Mikulas Patocka authored
    commit 972754cf upstream.
    
    I had occasional screen corruption with the matrox framebuffer driver and
    I found out that the reason for the corruption is that the hardware
    blitter accesses the videoram while it is being written to.
    
    The matrox driver has a macro WaitTillIdle() that should wait until the
    blitter is idle, but it sometimes doesn't work. I added a dummy read
    mga_inl(M_STATUS) to WaitTillIdle() to fix the problem. The dummy read
    will flush the write buffer in the PCI chipset, and the next read of
    M_STATUS will return the hardware status.
    
    Since applying this patch, I had no screen corruption at all.
    Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
    [bwh: Backported to 3.2: adjust filename]
    Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
    6733fc4b
matroxfb_base.h 17.8 KB