* [PATCH 0/2] virtio: fix virtio_gpu_mode_dumb_create @ 2017-04-03 7:08 Gerd Hoffmann 2017-04-03 7:08 ` Gerd Hoffmann ` (3 more replies) 0 siblings, 4 replies; 21+ messages in thread From: Gerd Hoffmann @ 2017-04-03 7:08 UTC (permalink / raw) To: dri-devel; +Cc: lvivier, Gerd Hoffmann Hi, Little series to fix xorg display on virtio on bigendian machines. First patch factors out the drm -> virtio format mapping code into a helper function, second patch actually fixes the issue using the new helper. cheers, Gerd Gerd Hoffmann (2): drm: virtio: add virtio_gpu_translate_format drm: virtio: fix virtio_gpu_mode_dumb_create drivers/gpu/drm/virtio/virtgpu_drv.h | 1 + drivers/gpu/drm/virtio/virtgpu_fb.c | 58 +---------------------------- drivers/gpu/drm/virtio/virtgpu_gem.c | 6 ++- drivers/gpu/drm/virtio/virtgpu_plane.c | 68 ++++++++++++++++++++++++++++++++++ 4 files changed, 75 insertions(+), 58 deletions(-) -- 2.9.3 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH 1/2] drm: virtio: add virtio_gpu_translate_format 2017-04-03 7:08 [PATCH 0/2] virtio: fix virtio_gpu_mode_dumb_create Gerd Hoffmann @ 2017-04-03 7:08 ` Gerd Hoffmann 2017-04-03 7:08 ` Gerd Hoffmann ` (2 subsequent siblings) 3 siblings, 0 replies; 21+ messages in thread From: Gerd Hoffmann @ 2017-04-03 7:08 UTC (permalink / raw) To: dri-devel Cc: lvivier, Gerd Hoffmann, David Airlie, open list:VIRTIO GPU DRIVER, open list Factors out code, no functional change. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- drivers/gpu/drm/virtio/virtgpu_drv.h | 1 + drivers/gpu/drm/virtio/virtgpu_fb.c | 58 +---------------------------- drivers/gpu/drm/virtio/virtgpu_plane.c | 68 ++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+), 56 deletions(-) diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h b/drivers/gpu/drm/virtio/virtgpu_drv.h index 93900a8..1328185 100644 --- a/drivers/gpu/drm/virtio/virtgpu_drv.h +++ b/drivers/gpu/drm/virtio/virtgpu_drv.h @@ -334,6 +334,7 @@ int virtio_gpu_modeset_init(struct virtio_gpu_device *vgdev); void virtio_gpu_modeset_fini(struct virtio_gpu_device *vgdev); /* virtio_gpu_plane.c */ +uint32_t virtio_gpu_translate_format(uint32_t drm_fourcc); struct drm_plane *virtio_gpu_plane_init(struct virtio_gpu_device *vgdev, enum drm_plane_type type, int index); diff --git a/drivers/gpu/drm/virtio/virtgpu_fb.c b/drivers/gpu/drm/virtio/virtgpu_fb.c index 9bfaef3..33df067 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, mode_cmd.pitches[0] = mode_cmd.width * 4; mode_cmd.pixel_format = drm_mode_legacy_fb_format(32, 24); - switch (mode_cmd.pixel_format) { -#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: - DRM_ERROR("failed to find virtio gpu format for %d\n", - mode_cmd.pixel_format); + format = virtio_gpu_translate_format(mode_cmd.pixel_format); + if (format == 0) return -EINVAL; - } size = mode_cmd.pitches[0] * mode_cmd.height; obj = virtio_gpu_alloc_object(dev, size, false, true); diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c b/drivers/gpu/drm/virtio/virtgpu_plane.c index 1ff9c64..372c91c 100644 --- a/drivers/gpu/drm/virtio/virtgpu_plane.c +++ b/drivers/gpu/drm/virtio/virtgpu_plane.c @@ -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); -- 2.9.3 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 1/2] drm: virtio: add virtio_gpu_translate_format @ 2017-04-03 7:08 ` Gerd Hoffmann 0 siblings, 0 replies; 21+ messages in thread From: Gerd Hoffmann @ 2017-04-03 7:08 UTC (permalink / raw) To: dri-devel; +Cc: lvivier, David Airlie, open list, open list:VIRTIO GPU DRIVER Factors out code, no functional change. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- drivers/gpu/drm/virtio/virtgpu_drv.h | 1 + drivers/gpu/drm/virtio/virtgpu_fb.c | 58 +---------------------------- drivers/gpu/drm/virtio/virtgpu_plane.c | 68 ++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+), 56 deletions(-) diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h b/drivers/gpu/drm/virtio/virtgpu_drv.h index 93900a8..1328185 100644 --- a/drivers/gpu/drm/virtio/virtgpu_drv.h +++ b/drivers/gpu/drm/virtio/virtgpu_drv.h @@ -334,6 +334,7 @@ int virtio_gpu_modeset_init(struct virtio_gpu_device *vgdev); void virtio_gpu_modeset_fini(struct virtio_gpu_device *vgdev); /* virtio_gpu_plane.c */ +uint32_t virtio_gpu_translate_format(uint32_t drm_fourcc); struct drm_plane *virtio_gpu_plane_init(struct virtio_gpu_device *vgdev, enum drm_plane_type type, int index); diff --git a/drivers/gpu/drm/virtio/virtgpu_fb.c b/drivers/gpu/drm/virtio/virtgpu_fb.c index 9bfaef3..33df067 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, mode_cmd.pitches[0] = mode_cmd.width * 4; mode_cmd.pixel_format = drm_mode_legacy_fb_format(32, 24); - switch (mode_cmd.pixel_format) { -#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: - DRM_ERROR("failed to find virtio gpu format for %d\n", - mode_cmd.pixel_format); + format = virtio_gpu_translate_format(mode_cmd.pixel_format); + if (format == 0) return -EINVAL; - } size = mode_cmd.pitches[0] * mode_cmd.height; obj = virtio_gpu_alloc_object(dev, size, false, true); diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c b/drivers/gpu/drm/virtio/virtgpu_plane.c index 1ff9c64..372c91c 100644 --- a/drivers/gpu/drm/virtio/virtgpu_plane.c +++ b/drivers/gpu/drm/virtio/virtgpu_plane.c @@ -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); -- 2.9.3 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH 1/2] drm: virtio: add virtio_gpu_translate_format 2017-04-03 7:08 ` Gerd Hoffmann @ 2017-04-03 7:51 ` Daniel Vetter -1 siblings, 0 replies; 21+ messages in thread From: Daniel Vetter @ 2017-04-03 7:51 UTC (permalink / raw) To: Gerd Hoffmann; +Cc: dri-devel, lvivier, open list, open list:VIRTIO GPU DRIVER On Mon, Apr 03, 2017 at 09:08:44AM +0200, Gerd Hoffmann wrote: > Factors out code, no functional change. > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Ugh on the big endian define, I guess we'll never managed to figure this aspect of drm pixel formats out correctly - they're supposed to encode endinaness. But the copy-paste looks correct :-) Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > drivers/gpu/drm/virtio/virtgpu_drv.h | 1 + > drivers/gpu/drm/virtio/virtgpu_fb.c | 58 +---------------------------- > drivers/gpu/drm/virtio/virtgpu_plane.c | 68 ++++++++++++++++++++++++++++++++++ > 3 files changed, 71 insertions(+), 56 deletions(-) > > diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h b/drivers/gpu/drm/virtio/virtgpu_drv.h > index 93900a8..1328185 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_drv.h > +++ b/drivers/gpu/drm/virtio/virtgpu_drv.h > @@ -334,6 +334,7 @@ int virtio_gpu_modeset_init(struct virtio_gpu_device *vgdev); > void virtio_gpu_modeset_fini(struct virtio_gpu_device *vgdev); > > /* virtio_gpu_plane.c */ > +uint32_t virtio_gpu_translate_format(uint32_t drm_fourcc); > struct drm_plane *virtio_gpu_plane_init(struct virtio_gpu_device *vgdev, > enum drm_plane_type type, > int index); > diff --git a/drivers/gpu/drm/virtio/virtgpu_fb.c b/drivers/gpu/drm/virtio/virtgpu_fb.c > index 9bfaef3..33df067 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, > mode_cmd.pitches[0] = mode_cmd.width * 4; > mode_cmd.pixel_format = drm_mode_legacy_fb_format(32, 24); > > - switch (mode_cmd.pixel_format) { > -#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: > - DRM_ERROR("failed to find virtio gpu format for %d\n", > - mode_cmd.pixel_format); > + format = virtio_gpu_translate_format(mode_cmd.pixel_format); > + if (format == 0) > return -EINVAL; > - } > > size = mode_cmd.pitches[0] * mode_cmd.height; > obj = virtio_gpu_alloc_object(dev, size, false, true); > diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c b/drivers/gpu/drm/virtio/virtgpu_plane.c > index 1ff9c64..372c91c 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_plane.c > +++ b/drivers/gpu/drm/virtio/virtgpu_plane.c > @@ -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); > -- > 2.9.3 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 1/2] drm: virtio: add virtio_gpu_translate_format @ 2017-04-03 7:51 ` Daniel Vetter 0 siblings, 0 replies; 21+ messages in thread From: Daniel Vetter @ 2017-04-03 7:51 UTC (permalink / raw) To: Gerd Hoffmann; +Cc: lvivier, open list, dri-devel, open list:VIRTIO GPU DRIVER On Mon, Apr 03, 2017 at 09:08:44AM +0200, Gerd Hoffmann wrote: > Factors out code, no functional change. > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Ugh on the big endian define, I guess we'll never managed to figure this aspect of drm pixel formats out correctly - they're supposed to encode endinaness. But the copy-paste looks correct :-) Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > drivers/gpu/drm/virtio/virtgpu_drv.h | 1 + > drivers/gpu/drm/virtio/virtgpu_fb.c | 58 +---------------------------- > drivers/gpu/drm/virtio/virtgpu_plane.c | 68 ++++++++++++++++++++++++++++++++++ > 3 files changed, 71 insertions(+), 56 deletions(-) > > diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h b/drivers/gpu/drm/virtio/virtgpu_drv.h > index 93900a8..1328185 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_drv.h > +++ b/drivers/gpu/drm/virtio/virtgpu_drv.h > @@ -334,6 +334,7 @@ int virtio_gpu_modeset_init(struct virtio_gpu_device *vgdev); > void virtio_gpu_modeset_fini(struct virtio_gpu_device *vgdev); > > /* virtio_gpu_plane.c */ > +uint32_t virtio_gpu_translate_format(uint32_t drm_fourcc); > struct drm_plane *virtio_gpu_plane_init(struct virtio_gpu_device *vgdev, > enum drm_plane_type type, > int index); > diff --git a/drivers/gpu/drm/virtio/virtgpu_fb.c b/drivers/gpu/drm/virtio/virtgpu_fb.c > index 9bfaef3..33df067 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, > mode_cmd.pitches[0] = mode_cmd.width * 4; > mode_cmd.pixel_format = drm_mode_legacy_fb_format(32, 24); > > - switch (mode_cmd.pixel_format) { > -#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: > - DRM_ERROR("failed to find virtio gpu format for %d\n", > - mode_cmd.pixel_format); > + format = virtio_gpu_translate_format(mode_cmd.pixel_format); > + if (format == 0) > return -EINVAL; > - } > > size = mode_cmd.pitches[0] * mode_cmd.height; > obj = virtio_gpu_alloc_object(dev, size, false, true); > diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c b/drivers/gpu/drm/virtio/virtgpu_plane.c > index 1ff9c64..372c91c 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_plane.c > +++ b/drivers/gpu/drm/virtio/virtgpu_plane.c > @@ -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); > -- > 2.9.3 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 1/2] drm: virtio: add virtio_gpu_translate_format 2017-04-03 7:51 ` Daniel Vetter @ 2017-04-03 9:05 ` Gerd Hoffmann -1 siblings, 0 replies; 21+ messages in thread From: Gerd Hoffmann @ 2017-04-03 9:05 UTC (permalink / raw) To: Daniel Vetter; +Cc: dri-devel, lvivier, open list, open list:VIRTIO GPU DRIVER On Mo, 2017-04-03 at 09:51 +0200, Daniel Vetter wrote: > On Mon, Apr 03, 2017 at 09:08:44AM +0200, Gerd Hoffmann wrote: > > Factors out code, no functional change. > > > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> > > Ugh on the big endian define, I guess we'll never managed to figure this > aspect of drm pixel formats out correctly - they're supposed to encode > endinaness. Oh, ok. (reading your patch replies out-of-order). Yep, in that case it maybe is a good idea to discuss fourcc semantics ... cheers, Gerd ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 1/2] drm: virtio: add virtio_gpu_translate_format @ 2017-04-03 9:05 ` Gerd Hoffmann 0 siblings, 0 replies; 21+ messages in thread From: Gerd Hoffmann @ 2017-04-03 9:05 UTC (permalink / raw) To: Daniel Vetter; +Cc: lvivier, open list, dri-devel, open list:VIRTIO GPU DRIVER On Mo, 2017-04-03 at 09:51 +0200, Daniel Vetter wrote: > On Mon, Apr 03, 2017 at 09:08:44AM +0200, Gerd Hoffmann wrote: > > Factors out code, no functional change. > > > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> > > Ugh on the big endian define, I guess we'll never managed to figure this > aspect of drm pixel formats out correctly - they're supposed to encode > endinaness. Oh, ok. (reading your patch replies out-of-order). Yep, in that case it maybe is a good idea to discuss fourcc semantics ... cheers, Gerd _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 1/2] drm: virtio: add virtio_gpu_translate_format 2017-04-03 7:51 ` Daniel Vetter (?) (?) @ 2017-04-03 9:05 ` Gerd Hoffmann -1 siblings, 0 replies; 21+ messages in thread From: Gerd Hoffmann @ 2017-04-03 9:05 UTC (permalink / raw) To: Daniel Vetter; +Cc: lvivier, open list, dri-devel, open list:VIRTIO GPU DRIVER On Mo, 2017-04-03 at 09:51 +0200, Daniel Vetter wrote: > On Mon, Apr 03, 2017 at 09:08:44AM +0200, Gerd Hoffmann wrote: > > Factors out code, no functional change. > > > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> > > Ugh on the big endian define, I guess we'll never managed to figure this > aspect of drm pixel formats out correctly - they're supposed to encode > endinaness. Oh, ok. (reading your patch replies out-of-order). Yep, in that case it maybe is a good idea to discuss fourcc semantics ... cheers, Gerd ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 1/2] drm: virtio: add virtio_gpu_translate_format 2017-04-03 7:08 ` Gerd Hoffmann (?) (?) @ 2017-04-03 7:51 ` Daniel Vetter -1 siblings, 0 replies; 21+ messages in thread From: Daniel Vetter @ 2017-04-03 7:51 UTC (permalink / raw) To: Gerd Hoffmann; +Cc: lvivier, open list, dri-devel, open list:VIRTIO GPU DRIVER On Mon, Apr 03, 2017 at 09:08:44AM +0200, Gerd Hoffmann wrote: > Factors out code, no functional change. > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Ugh on the big endian define, I guess we'll never managed to figure this aspect of drm pixel formats out correctly - they're supposed to encode endinaness. But the copy-paste looks correct :-) Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > drivers/gpu/drm/virtio/virtgpu_drv.h | 1 + > drivers/gpu/drm/virtio/virtgpu_fb.c | 58 +---------------------------- > drivers/gpu/drm/virtio/virtgpu_plane.c | 68 ++++++++++++++++++++++++++++++++++ > 3 files changed, 71 insertions(+), 56 deletions(-) > > diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h b/drivers/gpu/drm/virtio/virtgpu_drv.h > index 93900a8..1328185 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_drv.h > +++ b/drivers/gpu/drm/virtio/virtgpu_drv.h > @@ -334,6 +334,7 @@ int virtio_gpu_modeset_init(struct virtio_gpu_device *vgdev); > void virtio_gpu_modeset_fini(struct virtio_gpu_device *vgdev); > > /* virtio_gpu_plane.c */ > +uint32_t virtio_gpu_translate_format(uint32_t drm_fourcc); > struct drm_plane *virtio_gpu_plane_init(struct virtio_gpu_device *vgdev, > enum drm_plane_type type, > int index); > diff --git a/drivers/gpu/drm/virtio/virtgpu_fb.c b/drivers/gpu/drm/virtio/virtgpu_fb.c > index 9bfaef3..33df067 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, > mode_cmd.pitches[0] = mode_cmd.width * 4; > mode_cmd.pixel_format = drm_mode_legacy_fb_format(32, 24); > > - switch (mode_cmd.pixel_format) { > -#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: > - DRM_ERROR("failed to find virtio gpu format for %d\n", > - mode_cmd.pixel_format); > + format = virtio_gpu_translate_format(mode_cmd.pixel_format); > + if (format == 0) > return -EINVAL; > - } > > size = mode_cmd.pitches[0] * mode_cmd.height; > obj = virtio_gpu_alloc_object(dev, size, false, true); > diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c b/drivers/gpu/drm/virtio/virtgpu_plane.c > index 1ff9c64..372c91c 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_plane.c > +++ b/drivers/gpu/drm/virtio/virtgpu_plane.c > @@ -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); > -- > 2.9.3 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH 2/2] drm: virtio: fix virtio_gpu_mode_dumb_create 2017-04-03 7:08 [PATCH 0/2] virtio: fix virtio_gpu_mode_dumb_create Gerd Hoffmann @ 2017-04-03 7:08 ` Gerd Hoffmann 2017-04-03 7:08 ` Gerd Hoffmann ` (2 subsequent siblings) 3 siblings, 0 replies; 21+ messages in thread From: Gerd Hoffmann @ 2017-04-03 7:08 UTC (permalink / raw) To: dri-devel Cc: lvivier, Gerd Hoffmann, David Airlie, open list:VIRTIO GPU DRIVER, open list Lookup format using virtio_gpu_translate_format() instead of hardcoding it. Fixes xorg display on bigendian guests (i.e. ppc64). Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- drivers/gpu/drm/virtio/virtgpu_gem.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/virtio/virtgpu_gem.c b/drivers/gpu/drm/virtio/virtgpu_gem.c index 336a57f..cc025d8 100644 --- a/drivers/gpu/drm/virtio/virtgpu_gem.c +++ b/drivers/gpu/drm/virtio/virtgpu_gem.c @@ -88,6 +88,7 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv, int ret; uint32_t pitch; uint32_t resid; + uint32_t format; pitch = args->width * ((args->bpp + 1) / 8); args->size = pitch * args->height; @@ -98,9 +99,10 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv, if (ret) goto fail; + format = virtio_gpu_translate_format(DRM_FORMAT_XRGB8888); virtio_gpu_resource_id_get(vgdev, &resid); - virtio_gpu_cmd_create_resource(vgdev, resid, - 2, args->width, args->height); + virtio_gpu_cmd_create_resource(vgdev, resid, format, + args->width, args->height); /* attach the object to the resource */ obj = gem_to_virtio_gpu_obj(gobj); -- 2.9.3 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 2/2] drm: virtio: fix virtio_gpu_mode_dumb_create @ 2017-04-03 7:08 ` Gerd Hoffmann 0 siblings, 0 replies; 21+ messages in thread From: Gerd Hoffmann @ 2017-04-03 7:08 UTC (permalink / raw) To: dri-devel; +Cc: lvivier, Gerd Hoffmann, open list, open list:VIRTIO GPU DRIVER Lookup format using virtio_gpu_translate_format() instead of hardcoding it. Fixes xorg display on bigendian guests (i.e. ppc64). Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- drivers/gpu/drm/virtio/virtgpu_gem.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/virtio/virtgpu_gem.c b/drivers/gpu/drm/virtio/virtgpu_gem.c index 336a57f..cc025d8 100644 --- a/drivers/gpu/drm/virtio/virtgpu_gem.c +++ b/drivers/gpu/drm/virtio/virtgpu_gem.c @@ -88,6 +88,7 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv, int ret; uint32_t pitch; uint32_t resid; + uint32_t format; pitch = args->width * ((args->bpp + 1) / 8); args->size = pitch * args->height; @@ -98,9 +99,10 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv, if (ret) goto fail; + format = virtio_gpu_translate_format(DRM_FORMAT_XRGB8888); virtio_gpu_resource_id_get(vgdev, &resid); - virtio_gpu_cmd_create_resource(vgdev, resid, - 2, args->width, args->height); + virtio_gpu_cmd_create_resource(vgdev, resid, format, + args->width, args->height); /* attach the object to the resource */ obj = gem_to_virtio_gpu_obj(gobj); -- 2.9.3 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH 2/2] drm: virtio: fix virtio_gpu_mode_dumb_create 2017-04-03 7:08 ` Gerd Hoffmann @ 2017-04-03 7:45 ` Dave Airlie -1 siblings, 0 replies; 21+ messages in thread From: Dave Airlie @ 2017-04-03 7:45 UTC (permalink / raw) To: Gerd Hoffmann; +Cc: dri-devel, lvivier, open list, open list:VIRTIO GPU DRIVER On 3 April 2017 at 17:08, Gerd Hoffmann <kraxel@redhat.com> wrote: > Lookup format using virtio_gpu_translate_format() > instead of hardcoding it. Fixes xorg display on > bigendian guests (i.e. ppc64). > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> For the series, Reviewed-by: Dave Airlie <airlied@redhat.com> > --- > drivers/gpu/drm/virtio/virtgpu_gem.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/virtio/virtgpu_gem.c b/drivers/gpu/drm/virtio/virtgpu_gem.c > index 336a57f..cc025d8 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_gem.c > +++ b/drivers/gpu/drm/virtio/virtgpu_gem.c > @@ -88,6 +88,7 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv, > int ret; > uint32_t pitch; > uint32_t resid; > + uint32_t format; > > pitch = args->width * ((args->bpp + 1) / 8); > args->size = pitch * args->height; > @@ -98,9 +99,10 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv, > if (ret) > goto fail; > > + format = virtio_gpu_translate_format(DRM_FORMAT_XRGB8888); > virtio_gpu_resource_id_get(vgdev, &resid); > - virtio_gpu_cmd_create_resource(vgdev, resid, > - 2, args->width, args->height); > + virtio_gpu_cmd_create_resource(vgdev, resid, format, > + args->width, args->height); > > /* attach the object to the resource */ > obj = gem_to_virtio_gpu_obj(gobj); > -- > 2.9.3 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/2] drm: virtio: fix virtio_gpu_mode_dumb_create @ 2017-04-03 7:45 ` Dave Airlie 0 siblings, 0 replies; 21+ messages in thread From: Dave Airlie @ 2017-04-03 7:45 UTC (permalink / raw) To: Gerd Hoffmann; +Cc: lvivier, open list, dri-devel, open list:VIRTIO GPU DRIVER On 3 April 2017 at 17:08, Gerd Hoffmann <kraxel@redhat.com> wrote: > Lookup format using virtio_gpu_translate_format() > instead of hardcoding it. Fixes xorg display on > bigendian guests (i.e. ppc64). > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> For the series, Reviewed-by: Dave Airlie <airlied@redhat.com> > --- > drivers/gpu/drm/virtio/virtgpu_gem.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/virtio/virtgpu_gem.c b/drivers/gpu/drm/virtio/virtgpu_gem.c > index 336a57f..cc025d8 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_gem.c > +++ b/drivers/gpu/drm/virtio/virtgpu_gem.c > @@ -88,6 +88,7 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv, > int ret; > uint32_t pitch; > uint32_t resid; > + uint32_t format; > > pitch = args->width * ((args->bpp + 1) / 8); > args->size = pitch * args->height; > @@ -98,9 +99,10 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv, > if (ret) > goto fail; > > + format = virtio_gpu_translate_format(DRM_FORMAT_XRGB8888); > virtio_gpu_resource_id_get(vgdev, &resid); > - virtio_gpu_cmd_create_resource(vgdev, resid, > - 2, args->width, args->height); > + virtio_gpu_cmd_create_resource(vgdev, resid, format, > + args->width, args->height); > > /* attach the object to the resource */ > obj = gem_to_virtio_gpu_obj(gobj); > -- > 2.9.3 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/2] drm: virtio: fix virtio_gpu_mode_dumb_create 2017-04-03 7:08 ` Gerd Hoffmann @ 2017-04-03 7:53 ` Daniel Vetter -1 siblings, 0 replies; 21+ messages in thread From: Daniel Vetter @ 2017-04-03 7:53 UTC (permalink / raw) To: Gerd Hoffmann; +Cc: dri-devel, lvivier, open list, open list:VIRTIO GPU DRIVER On Mon, Apr 03, 2017 at 09:08:45AM +0200, Gerd Hoffmann wrote: > Lookup format using virtio_gpu_translate_format() > instead of hardcoding it. Fixes xorg display on > bigendian guests (i.e. ppc64). > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> ow ... :( With what kind of client have you tested this? fbdev? kms native? Should we patch drm_fourcc.h and essentially state that _all_ drm_fourcc are in native endian, don't dare mixing things up? Would be good to send out an rfc and discuss it with radeon/amd maintainers. Afaik they are the only ones who also care about some big endian platforms. On the patch itself, once you've added more details about what/how it falls over: Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> -Daniel > --- > drivers/gpu/drm/virtio/virtgpu_gem.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/virtio/virtgpu_gem.c b/drivers/gpu/drm/virtio/virtgpu_gem.c > index 336a57f..cc025d8 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_gem.c > +++ b/drivers/gpu/drm/virtio/virtgpu_gem.c > @@ -88,6 +88,7 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv, > int ret; > uint32_t pitch; > uint32_t resid; > + uint32_t format; > > pitch = args->width * ((args->bpp + 1) / 8); > args->size = pitch * args->height; > @@ -98,9 +99,10 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv, > if (ret) > goto fail; > > + format = virtio_gpu_translate_format(DRM_FORMAT_XRGB8888); > virtio_gpu_resource_id_get(vgdev, &resid); > - virtio_gpu_cmd_create_resource(vgdev, resid, > - 2, args->width, args->height); > + virtio_gpu_cmd_create_resource(vgdev, resid, format, > + args->width, args->height); > > /* attach the object to the resource */ > obj = gem_to_virtio_gpu_obj(gobj); > -- > 2.9.3 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/2] drm: virtio: fix virtio_gpu_mode_dumb_create @ 2017-04-03 7:53 ` Daniel Vetter 0 siblings, 0 replies; 21+ messages in thread From: Daniel Vetter @ 2017-04-03 7:53 UTC (permalink / raw) To: Gerd Hoffmann; +Cc: lvivier, open list, dri-devel, open list:VIRTIO GPU DRIVER On Mon, Apr 03, 2017 at 09:08:45AM +0200, Gerd Hoffmann wrote: > Lookup format using virtio_gpu_translate_format() > instead of hardcoding it. Fixes xorg display on > bigendian guests (i.e. ppc64). > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> ow ... :( With what kind of client have you tested this? fbdev? kms native? Should we patch drm_fourcc.h and essentially state that _all_ drm_fourcc are in native endian, don't dare mixing things up? Would be good to send out an rfc and discuss it with radeon/amd maintainers. Afaik they are the only ones who also care about some big endian platforms. On the patch itself, once you've added more details about what/how it falls over: Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> -Daniel > --- > drivers/gpu/drm/virtio/virtgpu_gem.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/virtio/virtgpu_gem.c b/drivers/gpu/drm/virtio/virtgpu_gem.c > index 336a57f..cc025d8 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_gem.c > +++ b/drivers/gpu/drm/virtio/virtgpu_gem.c > @@ -88,6 +88,7 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv, > int ret; > uint32_t pitch; > uint32_t resid; > + uint32_t format; > > pitch = args->width * ((args->bpp + 1) / 8); > args->size = pitch * args->height; > @@ -98,9 +99,10 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv, > if (ret) > goto fail; > > + format = virtio_gpu_translate_format(DRM_FORMAT_XRGB8888); > virtio_gpu_resource_id_get(vgdev, &resid); > - virtio_gpu_cmd_create_resource(vgdev, resid, > - 2, args->width, args->height); > + virtio_gpu_cmd_create_resource(vgdev, resid, format, > + args->width, args->height); > > /* attach the object to the resource */ > obj = gem_to_virtio_gpu_obj(gobj); > -- > 2.9.3 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/2] drm: virtio: fix virtio_gpu_mode_dumb_create 2017-04-03 7:53 ` Daniel Vetter (?) @ 2017-04-03 9:02 ` Gerd Hoffmann -1 siblings, 0 replies; 21+ messages in thread From: Gerd Hoffmann @ 2017-04-03 9:02 UTC (permalink / raw) To: Daniel Vetter; +Cc: lvivier, open list, dri-devel, open list:VIRTIO GPU DRIVER On Mo, 2017-04-03 at 09:53 +0200, Daniel Vetter wrote: > On Mon, Apr 03, 2017 at 09:08:45AM +0200, Gerd Hoffmann wrote: > > Lookup format using virtio_gpu_translate_format() > > instead of hardcoding it. Fixes xorg display on > > bigendian guests (i.e. ppc64). > > > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> > > ow ... :( > > With what kind of client have you tested this? fbdev? kms native? text console (fbcon) is fine, xorg (modesetting driver) fails. > Should we patch drm_fourcc.h and essentially state that _all_ drm_fourcc > are in native endian, don't dare mixing things up? Well, I don't think this needs clarification. I never assumed that fourcc is something else than native endian. It really was just an oversight in the virtio driver. One code path (which creates the framebuffer for fbdev emulation) did proper drm_fourcc -> virtio format mapping, including endianness handling. Patch 1/2 of this series factors this code out into a helper function so we can easily reuse it. The other code path (for creating dumb buffers) had the virtio format hardcoded which happened to work correctly in the little endian case. cheers, Gerd ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/2] drm: virtio: fix virtio_gpu_mode_dumb_create 2017-04-03 7:53 ` Daniel Vetter @ 2017-04-03 9:02 ` Gerd Hoffmann -1 siblings, 0 replies; 21+ messages in thread From: Gerd Hoffmann @ 2017-04-03 9:02 UTC (permalink / raw) To: Daniel Vetter; +Cc: dri-devel, lvivier, open list, open list:VIRTIO GPU DRIVER On Mo, 2017-04-03 at 09:53 +0200, Daniel Vetter wrote: > On Mon, Apr 03, 2017 at 09:08:45AM +0200, Gerd Hoffmann wrote: > > Lookup format using virtio_gpu_translate_format() > > instead of hardcoding it. Fixes xorg display on > > bigendian guests (i.e. ppc64). > > > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> > > ow ... :( > > With what kind of client have you tested this? fbdev? kms native? text console (fbcon) is fine, xorg (modesetting driver) fails. > Should we patch drm_fourcc.h and essentially state that _all_ drm_fourcc > are in native endian, don't dare mixing things up? Well, I don't think this needs clarification. I never assumed that fourcc is something else than native endian. It really was just an oversight in the virtio driver. One code path (which creates the framebuffer for fbdev emulation) did proper drm_fourcc -> virtio format mapping, including endianness handling. Patch 1/2 of this series factors this code out into a helper function so we can easily reuse it. The other code path (for creating dumb buffers) had the virtio format hardcoded which happened to work correctly in the little endian case. cheers, Gerd ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/2] drm: virtio: fix virtio_gpu_mode_dumb_create @ 2017-04-03 9:02 ` Gerd Hoffmann 0 siblings, 0 replies; 21+ messages in thread From: Gerd Hoffmann @ 2017-04-03 9:02 UTC (permalink / raw) To: Daniel Vetter; +Cc: lvivier, open list, dri-devel, open list:VIRTIO GPU DRIVER On Mo, 2017-04-03 at 09:53 +0200, Daniel Vetter wrote: > On Mon, Apr 03, 2017 at 09:08:45AM +0200, Gerd Hoffmann wrote: > > Lookup format using virtio_gpu_translate_format() > > instead of hardcoding it. Fixes xorg display on > > bigendian guests (i.e. ppc64). > > > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> > > ow ... :( > > With what kind of client have you tested this? fbdev? kms native? text console (fbcon) is fine, xorg (modesetting driver) fails. > Should we patch drm_fourcc.h and essentially state that _all_ drm_fourcc > are in native endian, don't dare mixing things up? Well, I don't think this needs clarification. I never assumed that fourcc is something else than native endian. It really was just an oversight in the virtio driver. One code path (which creates the framebuffer for fbdev emulation) did proper drm_fourcc -> virtio format mapping, including endianness handling. Patch 1/2 of this series factors this code out into a helper function so we can easily reuse it. The other code path (for creating dumb buffers) had the virtio format hardcoded which happened to work correctly in the little endian case. cheers, Gerd _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/2] drm: virtio: fix virtio_gpu_mode_dumb_create 2017-04-03 7:08 ` Gerd Hoffmann ` (2 preceding siblings ...) (?) @ 2017-04-03 7:53 ` Daniel Vetter -1 siblings, 0 replies; 21+ messages in thread From: Daniel Vetter @ 2017-04-03 7:53 UTC (permalink / raw) To: Gerd Hoffmann; +Cc: lvivier, open list, dri-devel, open list:VIRTIO GPU DRIVER On Mon, Apr 03, 2017 at 09:08:45AM +0200, Gerd Hoffmann wrote: > Lookup format using virtio_gpu_translate_format() > instead of hardcoding it. Fixes xorg display on > bigendian guests (i.e. ppc64). > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> ow ... :( With what kind of client have you tested this? fbdev? kms native? Should we patch drm_fourcc.h and essentially state that _all_ drm_fourcc are in native endian, don't dare mixing things up? Would be good to send out an rfc and discuss it with radeon/amd maintainers. Afaik they are the only ones who also care about some big endian platforms. On the patch itself, once you've added more details about what/how it falls over: Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> -Daniel > --- > drivers/gpu/drm/virtio/virtgpu_gem.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/virtio/virtgpu_gem.c b/drivers/gpu/drm/virtio/virtgpu_gem.c > index 336a57f..cc025d8 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_gem.c > +++ b/drivers/gpu/drm/virtio/virtgpu_gem.c > @@ -88,6 +88,7 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv, > int ret; > uint32_t pitch; > uint32_t resid; > + uint32_t format; > > pitch = args->width * ((args->bpp + 1) / 8); > args->size = pitch * args->height; > @@ -98,9 +99,10 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv, > if (ret) > goto fail; > > + format = virtio_gpu_translate_format(DRM_FORMAT_XRGB8888); > virtio_gpu_resource_id_get(vgdev, &resid); > - virtio_gpu_cmd_create_resource(vgdev, resid, > - 2, args->width, args->height); > + virtio_gpu_cmd_create_resource(vgdev, resid, format, > + args->width, args->height); > > /* attach the object to the resource */ > obj = gem_to_virtio_gpu_obj(gobj); > -- > 2.9.3 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH 2/2] drm: virtio: fix virtio_gpu_mode_dumb_create 2017-04-03 7:08 [PATCH 0/2] virtio: fix virtio_gpu_mode_dumb_create Gerd Hoffmann 2017-04-03 7:08 ` Gerd Hoffmann 2017-04-03 7:08 ` Gerd Hoffmann @ 2017-04-03 7:08 ` Gerd Hoffmann 2017-04-03 8:31 ` [PATCH 0/2] " Laurent Vivier 3 siblings, 0 replies; 21+ messages in thread From: Gerd Hoffmann @ 2017-04-03 7:08 UTC (permalink / raw) To: dri-devel; +Cc: lvivier, David Airlie, open list, open list:VIRTIO GPU DRIVER Lookup format using virtio_gpu_translate_format() instead of hardcoding it. Fixes xorg display on bigendian guests (i.e. ppc64). Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- drivers/gpu/drm/virtio/virtgpu_gem.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/virtio/virtgpu_gem.c b/drivers/gpu/drm/virtio/virtgpu_gem.c index 336a57f..cc025d8 100644 --- a/drivers/gpu/drm/virtio/virtgpu_gem.c +++ b/drivers/gpu/drm/virtio/virtgpu_gem.c @@ -88,6 +88,7 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv, int ret; uint32_t pitch; uint32_t resid; + uint32_t format; pitch = args->width * ((args->bpp + 1) / 8); args->size = pitch * args->height; @@ -98,9 +99,10 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv, if (ret) goto fail; + format = virtio_gpu_translate_format(DRM_FORMAT_XRGB8888); virtio_gpu_resource_id_get(vgdev, &resid); - virtio_gpu_cmd_create_resource(vgdev, resid, - 2, args->width, args->height); + virtio_gpu_cmd_create_resource(vgdev, resid, format, + args->width, args->height); /* attach the object to the resource */ obj = gem_to_virtio_gpu_obj(gobj); -- 2.9.3 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH 0/2] virtio: fix virtio_gpu_mode_dumb_create 2017-04-03 7:08 [PATCH 0/2] virtio: fix virtio_gpu_mode_dumb_create Gerd Hoffmann ` (2 preceding siblings ...) 2017-04-03 7:08 ` Gerd Hoffmann @ 2017-04-03 8:31 ` Laurent Vivier 3 siblings, 0 replies; 21+ messages in thread From: Laurent Vivier @ 2017-04-03 8:31 UTC (permalink / raw) To: Gerd Hoffmann, dri-devel On 03/04/2017 09:08, Gerd Hoffmann wrote: > Hi, > > Little series to fix xorg display on virtio on bigendian machines. > First patch factors out the drm -> virtio format mapping code into > a helper function, second patch actually fixes the issue using the > new helper. > > cheers, > Gerd > > Gerd Hoffmann (2): > drm: virtio: add virtio_gpu_translate_format > drm: virtio: fix virtio_gpu_mode_dumb_create > > drivers/gpu/drm/virtio/virtgpu_drv.h | 1 + > drivers/gpu/drm/virtio/virtgpu_fb.c | 58 +---------------------------- > drivers/gpu/drm/virtio/virtgpu_gem.c | 6 ++- > drivers/gpu/drm/virtio/virtgpu_plane.c | 68 ++++++++++++++++++++++++++++++++++ > 4 files changed, 75 insertions(+), 58 deletions(-) > Tested-by: Laurent Vivier <lvivier@redhat.com> Tested with BE endian kernel in QEMU pseries emulation on a LE endian kernel host. This fixes mixed RGB colors with X11. Thanks, Laurent _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2017-04-03 9:05 UTC | newest] Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-04-03 7:08 [PATCH 0/2] virtio: fix virtio_gpu_mode_dumb_create Gerd Hoffmann 2017-04-03 7:08 ` [PATCH 1/2] drm: virtio: add virtio_gpu_translate_format Gerd Hoffmann 2017-04-03 7:08 ` Gerd Hoffmann 2017-04-03 7:51 ` Daniel Vetter 2017-04-03 7:51 ` Daniel Vetter 2017-04-03 9:05 ` Gerd Hoffmann 2017-04-03 9:05 ` Gerd Hoffmann 2017-04-03 9:05 ` Gerd Hoffmann 2017-04-03 7:51 ` Daniel Vetter 2017-04-03 7:08 ` [PATCH 2/2] drm: virtio: fix virtio_gpu_mode_dumb_create Gerd Hoffmann 2017-04-03 7:08 ` Gerd Hoffmann 2017-04-03 7:45 ` Dave Airlie 2017-04-03 7:45 ` Dave Airlie 2017-04-03 7:53 ` Daniel Vetter 2017-04-03 7:53 ` Daniel Vetter 2017-04-03 9:02 ` Gerd Hoffmann 2017-04-03 9:02 ` Gerd Hoffmann 2017-04-03 9:02 ` Gerd Hoffmann 2017-04-03 7:53 ` Daniel Vetter 2017-04-03 7:08 ` Gerd Hoffmann 2017-04-03 8:31 ` [PATCH 0/2] " Laurent Vivier
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.