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 <patrick9876@free.fr>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
This commit is contained in:
Patrick Lerda 2019-05-13 00:03:58 +02:00
parent 38c5a5a8b5
commit 6963f59cae

View file

@ -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;
}