From: Patrick Lerda Date: Sun, 12 May 2019 22:03:58 +0000 (+0200) Subject: lima: add Allwinner H5 support X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6963f59cae61e1736deb41f6a9e14252a36123ba;p=mesa.git lima: add Allwinner H5 support The H5 hardware variant requires a specific plb_max_blk number. This value can't be probed at the hardware level. Signed-off-by: Patrick Lerda Reviewed-by: Qiang Yu --- diff --git a/src/gallium/drivers/lima/lima_screen.c b/src/gallium/drivers/lima/lima_screen.c index 0eb472acebd..31478c76f34 100644 --- a/src/gallium/drivers/lima/lima_screen.c +++ b/src/gallium/drivers/lima/lima_screen.c @@ -348,13 +348,31 @@ lima_screen_get_compiler_options(struct pipe_screen *pscreen, static bool lima_screen_set_plb_max_blk(struct lima_screen *screen) { - if (lima_plb_max_blk) + if (lima_plb_max_blk) { screen->plb_max_blk = lima_plb_max_blk; - else if (screen->gpu_type == DRM_LIMA_PARAM_GPU_ID_MALI450) + return true; + } + + if (screen->gpu_type == DRM_LIMA_PARAM_GPU_ID_MALI450) screen->plb_max_blk = 4096; else screen->plb_max_blk = 512; + drmDevicePtr devinfo; + + if (drmGetDevice2(screen->fd, 0, &devinfo)) + return false; + + if (devinfo->bustype == DRM_BUS_PLATFORM && devinfo->deviceinfo.platform) { + char **compatible = devinfo->deviceinfo.platform->compatible; + + if (compatible && *compatible) + if (!strcmp("allwinner,sun50i-h5-mali", *compatible)) + screen->plb_max_blk = 2048; + } + + drmFreeDevice(&devinfo); + return true; }