mbox series

[v3,0/4] drm: lcdif: Improve YUV support

Message ID 20220929204235.773-1-laurent.pinchart@ideasonboard.com (mailing list archive)
Headers show
Series drm: lcdif: Improve YUV support | expand

Message

Laurent Pinchart Sept. 29, 2022, 8:42 p.m. UTC
Hello,

This small patch series improves YUV support in the i.MX8MP LCDIF
driver. After patches 1/4 and 2/4 that fix tiny cosmetic issues, patch
3/4 fixes YUV quantization range for the RGB to YUV conversion. Patch
4/4 addresses the other direction and adds support for YUV planes.

Please see individual patches for details.

Compared to v2, review comments have been taken into account, and the
YUV to RGB coefficients in patch 4/4 have been fixed (they were
blatantly wrong due to a stupid mistake).

The series has been tested on a Polyhex Debix board with the currently
out-of-tree HDMI encoder support patches developed by Lucas Stach, with
the kmstest and the libcamera 'cam' applications.

There is a know issue with the way the driver programs the format and
pitch, which produces incorrect output when testing YUV formats with the
legacy (non-atomic) KMS API, in particular with the modetest
application. The framebuffer is accessed from the plane state in
function called from the .atomic_enable() handler, which in some
circumstances results in the format and/or pitch of the old frame buffer
being used. This issue preexists, and can be triggered by selecting a
different RGB format with modetest (XR15 for instance). It should be
fixed separately, and I wouldn't consider it as a blocker for this
series as YUV formats can already be used correctly when using the KMS
atomic API.

Kieran Bingham (1):
  drm: lcdif: Add support for YUV planes

Laurent Pinchart (3):
  drm: lcdif: Fix indentation in lcdif_regs.h
  drm: lcdif: Don't use BIT() for multi-bit register fields
  drm: lcdif: Switch to limited range for RGB to YUV conversion

 drivers/gpu/drm/mxsfb/lcdif_kms.c  | 232 ++++++++++++++++++++++++++---
 drivers/gpu/drm/mxsfb/lcdif_regs.h |  37 ++---
 2 files changed, 229 insertions(+), 40 deletions(-)

Comments

Marek Vasut Oct. 16, 2022, 3:10 a.m. UTC | #1
On 9/29/22 22:42, Laurent Pinchart wrote:
> Hello,
> 
> This small patch series improves YUV support in the i.MX8MP LCDIF
> driver. After patches 1/4 and 2/4 that fix tiny cosmetic issues, patch
> 3/4 fixes YUV quantization range for the RGB to YUV conversion. Patch
> 4/4 addresses the other direction and adds support for YUV planes.
> 
> Please see individual patches for details.
> 
> Compared to v2, review comments have been taken into account, and the
> YUV to RGB coefficients in patch 4/4 have been fixed (they were
> blatantly wrong due to a stupid mistake).
> 
> The series has been tested on a Polyhex Debix board with the currently
> out-of-tree HDMI encoder support patches developed by Lucas Stach, with
> the kmstest and the libcamera 'cam' applications.
> 
> There is a know issue with the way the driver programs the format and
> pitch, which produces incorrect output when testing YUV formats with the
> legacy (non-atomic) KMS API, in particular with the modetest
> application. The framebuffer is accessed from the plane state in
> function called from the .atomic_enable() handler, which in some
> circumstances results in the format and/or pitch of the old frame buffer
> being used. This issue preexists, and can be triggered by selecting a
> different RGB format with modetest (XR15 for instance). It should be
> fixed separately, and I wouldn't consider it as a blocker for this
> series as YUV formats can already be used correctly when using the KMS
> atomic API.
> 
> Kieran Bingham (1):
>    drm: lcdif: Add support for YUV planes
> 
> Laurent Pinchart (3):
>    drm: lcdif: Fix indentation in lcdif_regs.h
>    drm: lcdif: Don't use BIT() for multi-bit register fields
>    drm: lcdif: Switch to limited range for RGB to YUV conversion
> 
>   drivers/gpu/drm/mxsfb/lcdif_kms.c  | 232 ++++++++++++++++++++++++++---
>   drivers/gpu/drm/mxsfb/lcdif_regs.h |  37 ++---
>   2 files changed, 229 insertions(+), 40 deletions(-)

Applied all, thanks