Comment 9 for bug 1847596

Revision history for this message
Hui Wang (hui.wang) wrote :

This problem is fixed by this commit, it is in the https://github.com/raspberrypi/linux.git

(the data structure does not match the firmware definition)

commit 26f64fa81357f4b18192432eb8023f99c7eb5cf7 (HEAD -> 26f64fa81357f4b18192432eb8023f99c7eb5cf7)
Author: Michael Brown <email address hidden>
Date: Sun Sep 22 21:51:29 2019 +0100

    bcm2708_fb: Fix layout of struct vc4_display_settings_t

    The display parameters returned by the VC4 firmware in response to the
    RPI_FIRMWARE_FRAMEBUFFER_GET_DISPLAY_SETTINGS tag do not match the
    layout of struct vc4_display_settings_t: the colour depth and row
    pitch are erroneously swapped in the kernel definition. This can
    trigger a kernel warning from pixel_to_pat(), such as:

      pixel_to_pat(): unsupported pixelformat 7296

    Fix by adjusting the layout of struct vc4_display_settings_t to match
    the layout as used by the VC4 firmware.

    Signed-off-by: Michael Brown <email address hidden>

diff --git a/drivers/video/fbdev/bcm2708_fb.c b/drivers/video/fbdev/bcm2708_fb.c
index 4da577c8a0d8..59443f79f228 100644
--- a/drivers/video/fbdev/bcm2708_fb.c
+++ b/drivers/video/fbdev/bcm2708_fb.c
@@ -88,8 +88,8 @@ struct vc4_display_settings_t {
        u32 display_num;
        u32 width;
        u32 height;
- u32 pitch;
        u32 depth;
+ u32 pitch;
        u32 virtual_width;
        u32 virtual_height;
        u32 virtual_width_offset;