mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
drm: virtio: add virtio_gpu_translate_format
Factors out code, no functional change. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Tested-by: Laurent Vivier <lvivier@redhat.com> Link: http://patchwork.freedesktop.org/patch/msgid/20170403070845.10793-2-kraxel@redhat.com
This commit is contained in:
parent
5d5f7c5715
commit
d519cb7618
3 changed files with 71 additions and 56 deletions
|
@ -42,6 +42,74 @@ static const uint32_t virtio_gpu_cursor_formats[] = {
|
|||
DRM_FORMAT_ARGB8888,
|
||||
};
|
||||
|
||||
uint32_t virtio_gpu_translate_format(uint32_t drm_fourcc)
|
||||
{
|
||||
uint32_t format;
|
||||
|
||||
switch (drm_fourcc) {
|
||||
#ifdef __BIG_ENDIAN
|
||||
case DRM_FORMAT_XRGB8888:
|
||||
format = VIRTIO_GPU_FORMAT_X8R8G8B8_UNORM;
|
||||
break;
|
||||
case DRM_FORMAT_ARGB8888:
|
||||
format = VIRTIO_GPU_FORMAT_A8R8G8B8_UNORM;
|
||||
break;
|
||||
case DRM_FORMAT_BGRX8888:
|
||||
format = VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM;
|
||||
break;
|
||||
case DRM_FORMAT_BGRA8888:
|
||||
format = VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM;
|
||||
break;
|
||||
case DRM_FORMAT_RGBX8888:
|
||||
format = VIRTIO_GPU_FORMAT_R8G8B8X8_UNORM;
|
||||
break;
|
||||
case DRM_FORMAT_RGBA8888:
|
||||
format = VIRTIO_GPU_FORMAT_R8G8B8A8_UNORM;
|
||||
break;
|
||||
case DRM_FORMAT_XBGR8888:
|
||||
format = VIRTIO_GPU_FORMAT_X8B8G8R8_UNORM;
|
||||
break;
|
||||
case DRM_FORMAT_ABGR8888:
|
||||
format = VIRTIO_GPU_FORMAT_A8B8G8R8_UNORM;
|
||||
break;
|
||||
#else
|
||||
case DRM_FORMAT_XRGB8888:
|
||||
format = VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM;
|
||||
break;
|
||||
case DRM_FORMAT_ARGB8888:
|
||||
format = VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM;
|
||||
break;
|
||||
case DRM_FORMAT_BGRX8888:
|
||||
format = VIRTIO_GPU_FORMAT_X8R8G8B8_UNORM;
|
||||
break;
|
||||
case DRM_FORMAT_BGRA8888:
|
||||
format = VIRTIO_GPU_FORMAT_A8R8G8B8_UNORM;
|
||||
break;
|
||||
case DRM_FORMAT_RGBX8888:
|
||||
format = VIRTIO_GPU_FORMAT_X8B8G8R8_UNORM;
|
||||
break;
|
||||
case DRM_FORMAT_RGBA8888:
|
||||
format = VIRTIO_GPU_FORMAT_A8B8G8R8_UNORM;
|
||||
break;
|
||||
case DRM_FORMAT_XBGR8888:
|
||||
format = VIRTIO_GPU_FORMAT_R8G8B8X8_UNORM;
|
||||
break;
|
||||
case DRM_FORMAT_ABGR8888:
|
||||
format = VIRTIO_GPU_FORMAT_R8G8B8A8_UNORM;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
/*
|
||||
* This should not happen, we handle everything listed
|
||||
* in virtio_gpu_formats[].
|
||||
*/
|
||||
format = 0;
|
||||
break;
|
||||
}
|
||||
WARN_ON(format == 0);
|
||||
return format;
|
||||
}
|
||||
|
||||
static void virtio_gpu_plane_destroy(struct drm_plane *plane)
|
||||
{
|
||||
drm_plane_cleanup(plane);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue