• Mikulas Patocka's avatar
    mach64: fix cursor when character width is not a multiple of 8 pixels · 43751a1b
    Mikulas Patocka authored
    This patch fixes the hardware cursor on mach64 when font width is not a
    multiple of 8 pixels.
    
    If you load such a font, the cursor is expanded to the next 8-byte
    boundary and a part of the next character after the cursor is not
    visible.
    For example, when you load a font with 12-pixel width, the cursor width
    is 16 pixels and when the cursor is displayed, 4 pixels of the next
    character are not visible.
    
    The reason is this: atyfb_cursor is called with proper parameters to
    load an image that is 12-pixel wide. However, the number is aligned on
    the next 8-pixel boundary on the line
    "unsigned int width = (cursor->image.width + 7) >> 3;" and the whole
    function acts as it is was loading a 16-pixel image.
    
    This patch fixes it so that the value written to the framebuffer is
    padded with 0xaaaa (the transparent pattern) when the image size it not
    a multiple of 8 pixels. The transparent pattern causes that the cursor
    will not interfere with the next character.
    Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
    43751a1b
mach64_cursor.c 5.92 KB