Message ID | 20181214141218.12671-1-paul.kocialkowski@bootlin.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/vc4: Limit SAND tiling support to semiplanar YUV420 formats | expand |
Paul Kocialkowski <paul.kocialkowski@bootlin.com> writes: > Despite what the HVS documentation indicates, the VC4 does not actually > support SAND tiling modes for any RGB format and only semiplanar YUV420 > formats (NV12/NV21) can be used in these tiling modes. > > The driver currently claims to support RGB formats for the associated > modifiers, so remove them from the supported list in the > format_mod_supported helper for RGB formats. > > Remove further checks that are no longer necessary along the way, since > semi-planar YUV420 formats support every SAND tiling mode. > > Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> Reviewed-by: Eric Anholt <eric@anholt.net>
On Fri, Dec 14, 2018 at 08:16:32AM -0800, Eric Anholt wrote: > Paul Kocialkowski <paul.kocialkowski@bootlin.com> writes: > > > Despite what the HVS documentation indicates, the VC4 does not actually > > support SAND tiling modes for any RGB format and only semiplanar YUV420 > > formats (NV12/NV21) can be used in these tiling modes. > > > > The driver currently claims to support RGB formats for the associated > > modifiers, so remove them from the supported list in the > > format_mod_supported helper for RGB formats. > > > > Remove further checks that are no longer necessary along the way, since > > semi-planar YUV420 formats support every SAND tiling mode. > > > > Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> > > Reviewed-by: Eric Anholt <eric@anholt.net> Applied, Maxime
diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c index 75db62cbe468..a176e7d8af27 100644 --- a/drivers/gpu/drm/vc4/vc4_plane.c +++ b/drivers/gpu/drm/vc4/vc4_plane.c @@ -596,20 +596,7 @@ static int vc4_plane_mode_set(struct drm_plane *plane, case DRM_FORMAT_MOD_BROADCOM_SAND256: { uint32_t param = fourcc_mod_broadcom_param(fb->modifier); - /* Column-based NV12 or RGBA. - */ - if (fb->format->num_planes > 1) { - if (hvs_format != HVS_PIXEL_FORMAT_YCBCR_YUV420_2PLANE) { - DRM_DEBUG_KMS("SAND format only valid for NV12/21"); - return -EINVAL; - } - hvs_format = HVS_PIXEL_FORMAT_H264; - } else { - if (base_format_mod == DRM_FORMAT_MOD_BROADCOM_SAND256) { - DRM_DEBUG_KMS("SAND256 format only valid for H.264"); - return -EINVAL; - } - } + hvs_format = HVS_PIXEL_FORMAT_H264; switch (base_format_mod) { case DRM_FORMAT_MOD_BROADCOM_SAND64: @@ -1050,8 +1037,6 @@ static bool vc4_format_mod_supported(struct drm_plane *plane, switch (fourcc_mod_broadcom_mod(modifier)) { case DRM_FORMAT_MOD_LINEAR: case DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED: - case DRM_FORMAT_MOD_BROADCOM_SAND64: - case DRM_FORMAT_MOD_BROADCOM_SAND128: return true; default: return false;
Despite what the HVS documentation indicates, the VC4 does not actually support SAND tiling modes for any RGB format and only semiplanar YUV420 formats (NV12/NV21) can be used in these tiling modes. The driver currently claims to support RGB formats for the associated modifiers, so remove them from the supported list in the format_mod_supported helper for RGB formats. Remove further checks that are no longer necessary along the way, since semi-planar YUV420 formats support every SAND tiling mode. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> --- drivers/gpu/drm/vc4/vc4_plane.c | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-)