[PATCH 2/3] drm/vc4: Add monochrome mode to the VEC.
Maxime Ripard
mripard at kernel.org
Tue Jun 18 09:28:15 UTC 2024
Hi,
On Fri, Feb 16, 2024 at 06:48:56PM GMT, Dave Stevenson wrote:
> The VEC supports not producing colour bursts for monochrome output.
> It also has an option for disabling the chroma input to remove
> chroma from the signal.
>
> Now that there is a DRM_MODE_TV_MODE_MONOCHROME defined, plumb
> this in.
>
> Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
> ---
> drivers/gpu/drm/vc4/vc4_vec.c | 28 +++++++++++++++++++++++++++-
> 1 file changed, 27 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/vc4/vc4_vec.c b/drivers/gpu/drm/vc4/vc4_vec.c
> index 268f18b10ee0..f9e134dd1e3b 100644
> --- a/drivers/gpu/drm/vc4/vc4_vec.c
> +++ b/drivers/gpu/drm/vc4/vc4_vec.c
> @@ -234,6 +234,7 @@ enum vc4_vec_tv_mode_id {
> VC4_VEC_TV_MODE_PAL_60,
> VC4_VEC_TV_MODE_PAL_N,
> VC4_VEC_TV_MODE_SECAM,
> + VC4_VEC_TV_MODE_MONOCHROME,
> };
>
> struct vc4_vec_tv_mode {
> @@ -324,6 +325,22 @@ static const struct vc4_vec_tv_mode vc4_vec_tv_modes[] = {
> .config1 = VEC_CONFIG1_C_CVBS_CVBS,
> .custom_freq = 0x29c71c72,
> },
> + {
> + /* 50Hz mono */
> + .mode = DRM_MODE_TV_MODE_MONOCHROME,
> + .expected_htotal = 864,
> + .config0 = VEC_CONFIG0_PAL_BDGHI_STD | VEC_CONFIG0_BURDIS |
> + VEC_CONFIG0_CHRDIS,
> + .config1 = VEC_CONFIG1_C_CVBS_CVBS,
> + },
> + {
> + /* 60Hz mono */
> + .mode = DRM_MODE_TV_MODE_MONOCHROME,
> + .expected_htotal = 858,
> + .config0 = VEC_CONFIG0_PAL_M_STD | VEC_CONFIG0_BURDIS |
> + VEC_CONFIG0_CHRDIS,
> + .config1 = VEC_CONFIG1_C_CVBS_CVBS,
> + },
> };
>
> static inline const struct vc4_vec_tv_mode *
> @@ -351,6 +368,7 @@ static const struct drm_prop_enum_list legacy_tv_mode_names[] = {
> { VC4_VEC_TV_MODE_PAL_M, "PAL-M", },
> { VC4_VEC_TV_MODE_PAL_N, "PAL-N", },
> { VC4_VEC_TV_MODE_SECAM, "SECAM", },
> + { VC4_VEC_TV_MODE_MONOCHROME, "Mono", },
> };
>
> static enum drm_connector_status
> @@ -406,6 +424,10 @@ vc4_vec_connector_set_property(struct drm_connector *connector,
> state->tv.mode = DRM_MODE_TV_MODE_SECAM;
> break;
>
> + case VC4_VEC_TV_MODE_MONOCHROME:
> + state->tv.mode = DRM_MODE_TV_MODE_MONOCHROME;
> + break;
> +
> default:
> return -EINVAL;
> }
> @@ -453,6 +475,9 @@ vc4_vec_connector_get_property(struct drm_connector *connector,
> *val = VC4_VEC_TV_MODE_SECAM;
> break;
>
> + case DRM_MODE_TV_MODE_MONOCHROME:
> + return VC4_VEC_TV_MODE_MONOCHROME;
> +
> default:
> return -EINVAL;
> }
We don't need to expose the new value here, that property is only for
the legacy, driver-specific property. So you should only need the
vc4_vec_tv_modes changes
Maxime
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20240618/f66118ce/attachment-0001.sig>
More information about the dri-devel
mailing list