This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DRA726: Weston issue

Part Number: DRA726

If fixed the command line issue with kernel 4.19 but can't get weston to work.

[13:24:55.431] weston 5.0.0
               wayland.freedesktop.org
               Bug reports to: gitlab.freedesktop.org/.../
               Build: unknown (not built from git or tarball)
[13:24:55.432] Command line: weston --idle-time=0
[13:24:55.432] OS: Linux, 4.19.73-actia-g31275c05a1, #1 SMP PREEMPT Thu Feb 20 19:58:05 UTC 2020, armv7l
[13:24:55.432] Using config file '/etc//weston.ini'
[13:24:55.432] Output repaint window is 7 ms maximum.
[13:24:55.432] Loading module '/usr/lib/libweston-5/drm-backend.so'
[13:24:55.435] initializing drm backend
[13:24:55.437] using /dev/dri/card0
[13:24:55.437] DRM: supports universal planes
[13:24:55.437] DRM: supports atomic modesetting
[13:24:55.437] DRM: supports picture aspect ratio
[13:24:55.437] Loading module '/usr/lib/libweston-5/gl-renderer.so'
[13:24:55.442] warning: either no EGL_EXT_platform_base support or specific platform support; falling back to eglGetDis
[13:24:55.444] failed to initialize display
[13:24:55.445] EGL error state: EGL_BAD_ALLOC (0x3003)
[13:24:55.445] failed to initialize egl
[13:24:55.456] fatal: failed to create compositor backend
[13:24:55.456] Internal warning: debug scope 'drm-backend' has not been destroyed.
PVR:(Error): OpenServices: PVRDRMOpenRender failed [0, ]
PVR:(Error): PVRSRVConnect: Unable to open connection. [0, ]
PVR:(Error): Couldn't connect to services [0, ]


Here is the devicetree information for the LCD

&dss {
        status = "okay";
    vdda_video-supply = <&ldo5_reg>;

        port {
             dpi_lcd_out: endpoint {
                    remote-endpoint = <&lcd_in>;
                    data-lines = <24>;
             };
        };
};


for the 7 inch display

    /* LVDS LCD Display*/
        lcd0: display {
        status = "okay";
        compatible = "actiagd,gd7inch","panel-dpi";

                label = "lcd0";

        backlight = <&lcd_bl>;

                panel-timing {
                        clock-frequency = <66800000>;
                        hactive = <800>;
                        vactive = <1280>;
                        hfront-porch = <51>;
                        hback-porch = <10>;
                        hsync-len = <3>;
                        vback-porch = <2>;
                        vfront-porch = <4>;
                        vsync-len = <2>;
                        hsync-active = <0>;
                        vsync-active = <0>;
                        de-active = <1>;
                        pixelclk-active = <1>;
                };

                port {
                        lcd_in: endpoint {
                                remote-endpoint = <&dpi_lcd_out>;
                        };
                };
    };

for the 12 inch display

    /* LVDS LCD Display*/
        lcd0: display {
        status = "okay";
        compatible = "actiagd,gd12inch", "panel-dpi";

                label = "lcd0";

        backlight = <&lcd_bl>;

                panel-timing {
                        clock-frequency = <93688000>;
                        hactive = <1920>;
                        vactive = <720>;
                        hfront-porch = <115>;
                        hback-porch = <20>;
                        hsync-len = <5>;
                        vback-porch = <3>;
                        vfront-porch = <32>;
                        vsync-len = <3>;
                        hsync-active = <0>;
                        vsync-active = <0>;
                        de-active = <1>;
                        pixelclk-active = <1>;
                };

                port {
                        lcd_in: endpoint {
                                remote-endpoint = <&dpi_lcd_out>;
                        };
                };
    };

and changes to  panel-simple.c

static const struct drm_display_mode actiagd_gd7inch_mode = {
    .clock = 66800,
    .hdisplay = 800,
    .hsync_start = 800 + 51,
    .hsync_end = 800 + 51 + 3,
    .htotal = 800 + 51 + 3 + 10,
    .vdisplay = 1280,
    .vsync_start = 1280 + 4,
    .vsync_end = 1280 + 4 + 2,
    .vtotal = 1280 + 4 + 2 + 2,
    .vrefresh = 60,
    .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
};

static const struct panel_desc actiagd_gd7inch = {
    .modes = &actiagd_gd7inch_mode,
    .num_modes = 1,
    .bpc = 8,
    .size = {
        .width = 800,
        .height = 1280,
    },
    .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
    .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE |
             DRM_BUS_FLAG_SYNC_DRIVE_POSEDGE,
};

static const struct drm_display_mode actiagd_gd12inch_mode = {
    .clock = 93688,
    .hdisplay = 1920,
    .hsync_start = 1920 + 115,
    .hsync_end = 1920 + 115 + 5,
    .htotal = 1920 + 115 + 5 + 20,
    .vdisplay = 720,
    .vsync_start = 720 + 32,
    .vsync_end = 720 + 32 + 3,
    .vtotal = 720 + 32 + 3 + 3,
    .vrefresh = 60,
    .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
};

static const struct panel_desc actiagd_gd12inch = {
    .modes = &actiagd_gd12inch_mode,
    .num_modes = 1,
    .bpc = 8,
    .size = {
        .width = 1920,
        .height = 720,
    },
    .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
    .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE |
             DRM_BUS_FLAG_SYNC_DRIVE_POSEDGE,
};

static const struct of_device_id platform_of_match[] = {
    {
        .compatible = "actiagd,gd7inch",
        .data = &actiagd_gd7inch,
    }, {
        .compatible = "actiagd,gd12inch",
        .data = &actiagd_gd12inch,
    }, {

Michel Catudal

ACTIA Corp