OSDN Git Service

minigbm: support YV12 with frequent software access
[android-x86/external-minigbm.git] / mediatek.c
index 23b1dd2..7e85f63 100644 (file)
 #include "helpers.h"
 #include "util.h"
 
-static struct supported_combination combos[8] = {
+static struct supported_combination combos[6] = {
        {DRM_FORMAT_ABGR8888, DRM_FORMAT_MOD_NONE,
-               DRV_BO_USE_RENDERING | DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN |
-               DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
+               BO_USE_LINEAR | BO_USE_RENDERING | BO_USE_SW_READ_OFTEN | BO_USE_SW_WRITE_OFTEN |
+               BO_USE_SW_READ_RARELY | BO_USE_SW_WRITE_RARELY},
        {DRM_FORMAT_ARGB8888, DRM_FORMAT_MOD_NONE,
-               DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR | DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
-       {DRM_FORMAT_ARGB8888, DRM_FORMAT_MOD_NONE,
-               DRV_BO_USE_RENDERING | DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
+               BO_USE_CURSOR | BO_USE_LINEAR | BO_USE_RENDERING | BO_USE_SW_READ_OFTEN |
+               BO_USE_SW_WRITE_OFTEN | BO_USE_SW_READ_RARELY | BO_USE_SW_WRITE_RARELY},
        {DRM_FORMAT_RGB565, DRM_FORMAT_MOD_NONE,
-               DRV_BO_USE_RENDERING | DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
-       {DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_NONE,
-               DRV_BO_USE_CURSOR | DRV_BO_USE_LINEAR | DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN},
+               BO_USE_RENDERING | BO_USE_SW_READ_OFTEN | BO_USE_SW_WRITE_OFTEN |
+               BO_USE_SW_READ_RARELY | BO_USE_SW_WRITE_RARELY},
        {DRM_FORMAT_XBGR8888, DRM_FORMAT_MOD_NONE,
-               DRV_BO_USE_RENDERING | DRV_BO_USE_SW_READ_OFTEN | DRV_BO_USE_SW_WRITE_OFTEN |
-               DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
+               BO_USE_RENDERING | BO_USE_SW_READ_OFTEN | BO_USE_SW_WRITE_OFTEN |
+               BO_USE_SW_READ_RARELY | BO_USE_SW_WRITE_RARELY},
        {DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_NONE,
-               DRV_BO_USE_RENDERING | DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
+               BO_USE_CURSOR | BO_USE_LINEAR | BO_USE_RENDERING | BO_USE_SW_READ_OFTEN |
+               BO_USE_SW_WRITE_OFTEN | BO_USE_SW_READ_RARELY | BO_USE_SW_WRITE_RARELY},
        {DRM_FORMAT_YVU420, DRM_FORMAT_MOD_NONE,
-               DRV_BO_USE_RENDERING | DRV_BO_USE_SW_READ_RARELY | DRV_BO_USE_SW_WRITE_RARELY},
+               BO_USE_LINEAR | BO_USE_RENDERING | BO_USE_SW_READ_OFTEN | BO_USE_SW_WRITE_OFTEN |
+               BO_USE_SW_READ_RARELY | BO_USE_SW_WRITE_RARELY},
 };
 
 static int mediatek_init(struct driver *drv)
@@ -107,6 +107,7 @@ struct backend backend_mediatek =
        .init = mediatek_init,
        .bo_create = mediatek_bo_create,
        .bo_destroy = drv_gem_bo_destroy,
+       .bo_import = drv_prime_bo_import,
        .bo_map = mediatek_bo_map,
        .resolve_format = mediatek_resolve_format,
 };