aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/virtio/virtgpu_fb.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2017-04-03 03:08:44 -0400
committerGerd Hoffmann <kraxel@redhat.com>2017-04-04 04:10:19 -0400
commitd519cb76181efc78ba67e87b38286fa04d46dfa3 (patch)
treeb5fcd90ae83a08587bcfd9a5604bf6121ecf1b5c /drivers/gpu/drm/virtio/virtgpu_fb.c
parent5d5f7c571549099dd03e56cdb46a551da088a106 (diff)
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
Diffstat (limited to 'drivers/gpu/drm/virtio/virtgpu_fb.c')
-rw-r--r--drivers/gpu/drm/virtio/virtgpu_fb.c58
1 files changed, 2 insertions, 56 deletions
diff --git a/drivers/gpu/drm/virtio/virtgpu_fb.c b/drivers/gpu/drm/virtio/virtgpu_fb.c
index 9bfaef379469..33df067b11c1 100644
--- a/drivers/gpu/drm/virtio/virtgpu_fb.c
+++ b/drivers/gpu/drm/virtio/virtgpu_fb.c
@@ -231,63 +231,9 @@ static int virtio_gpufb_create(struct drm_fb_helper *helper,
231 mode_cmd.pitches[0] = mode_cmd.width * 4; 231 mode_cmd.pitches[0] = mode_cmd.width * 4;
232 mode_cmd.pixel_format = drm_mode_legacy_fb_format(32, 24); 232 mode_cmd.pixel_format = drm_mode_legacy_fb_format(32, 24);
233 233
234 switch (mode_cmd.pixel_format) { 234 format = virtio_gpu_translate_format(mode_cmd.pixel_format);
235#ifdef __BIG_ENDIAN 235 if (format == 0)
236 case DRM_FORMAT_XRGB8888:
237 format = VIRTIO_GPU_FORMAT_X8R8G8B8_UNORM;
238 break;
239 case DRM_FORMAT_ARGB8888:
240 format = VIRTIO_GPU_FORMAT_A8R8G8B8_UNORM;
241 break;
242 case DRM_FORMAT_BGRX8888:
243 format = VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM;
244 break;
245 case DRM_FORMAT_BGRA8888:
246 format = VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM;
247 break;
248 case DRM_FORMAT_RGBX8888:
249 format = VIRTIO_GPU_FORMAT_R8G8B8X8_UNORM;
250 break;
251 case DRM_FORMAT_RGBA8888:
252 format = VIRTIO_GPU_FORMAT_R8G8B8A8_UNORM;
253 break;
254 case DRM_FORMAT_XBGR8888:
255 format = VIRTIO_GPU_FORMAT_X8B8G8R8_UNORM;
256 break;
257 case DRM_FORMAT_ABGR8888:
258 format = VIRTIO_GPU_FORMAT_A8B8G8R8_UNORM;
259 break;
260#else
261 case DRM_FORMAT_XRGB8888:
262 format = VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM;
263 break;
264 case DRM_FORMAT_ARGB8888:
265 format = VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM;
266 break;
267 case DRM_FORMAT_BGRX8888:
268 format = VIRTIO_GPU_FORMAT_X8R8G8B8_UNORM;
269 break;
270 case DRM_FORMAT_BGRA8888:
271 format = VIRTIO_GPU_FORMAT_A8R8G8B8_UNORM;
272 break;
273 case DRM_FORMAT_RGBX8888:
274 format = VIRTIO_GPU_FORMAT_X8B8G8R8_UNORM;
275 break;
276 case DRM_FORMAT_RGBA8888:
277 format = VIRTIO_GPU_FORMAT_A8B8G8R8_UNORM;
278 break;
279 case DRM_FORMAT_XBGR8888:
280 format = VIRTIO_GPU_FORMAT_R8G8B8X8_UNORM;
281 break;
282 case DRM_FORMAT_ABGR8888:
283 format = VIRTIO_GPU_FORMAT_R8G8B8A8_UNORM;
284 break;
285#endif
286 default:
287 DRM_ERROR("failed to find virtio gpu format for %d\n",
288 mode_cmd.pixel_format);
289 return -EINVAL; 236 return -EINVAL;
290 }
291 237
292 size = mode_cmd.pitches[0] * mode_cmd.height; 238 size = mode_cmd.pitches[0] * mode_cmd.height;
293 obj = virtio_gpu_alloc_object(dev, size, false, true); 239 obj = virtio_gpu_alloc_object(dev, size, false, true);