Den 29.07.2022 18.34, skrev Maxime Ripard:
> The subconnector property was created by drm_mode_create_tv_properties(),
> but wasn't exposed to the userspace through the generic
> atomic_get/set_property implementation, and wasn't stored in any generic
> state structure.
> 
> Let's solve this.
> 
> Signed-off-by: Maxime Ripard <max...@cerno.tech>
> 

I just realised that this and the select_subconnector property isn't
used by any drivers. Do you plan to use them? Maybe they don't need to
be wired up at all.

Anyways, up to you:

Reviewed-by: Noralf Trønnes <nor...@tronnes.org>

> diff --git a/drivers/gpu/drm/drm_atomic_uapi.c 
> b/drivers/gpu/drm/drm_atomic_uapi.c
> index c74c78a28171..c06d0639d552 100644
> --- a/drivers/gpu/drm/drm_atomic_uapi.c
> +++ b/drivers/gpu/drm/drm_atomic_uapi.c
> @@ -688,6 +688,8 @@ static int drm_atomic_connector_set_property(struct 
> drm_connector *connector,
>               return -EINVAL;
>       } else if (property == config->tv_select_subconnector_property) {
>               state->tv.select_subconnector = val;
> +     } else if (property == config->tv_subconnector_property) {
> +             state->tv.subconnector = val;
>       } else if (property == config->tv_left_margin_property) {
>               state->tv.margins.left = val;
>       } else if (property == config->tv_right_margin_property) {
> @@ -796,6 +798,8 @@ drm_atomic_connector_get_property(struct drm_connector 
> *connector,
>                       *val = connector->dpms;
>       } else if (property == config->tv_select_subconnector_property) {
>               *val = state->tv.select_subconnector;
> +     } else if (property == config->tv_subconnector_property) {
> +             *val = state->tv.subconnector;
>       } else if (property == config->tv_left_margin_property) {
>               *val = state->tv.margins.left;
>       } else if (property == config->tv_right_margin_property) {
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index f8091edf9a33..1e9996b33cc8 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -672,6 +672,7 @@ struct drm_connector_tv_margins {
>  /**
>   * struct drm_tv_connector_state - TV connector related states
>   * @select_subconnector: selected subconnector
> + * @subconnector: detected subconnector
>   * @margins: TV margins
>   * @mode: TV mode
>   * @brightness: brightness in percent
> @@ -683,6 +684,7 @@ struct drm_connector_tv_margins {
>   */
>  struct drm_tv_connector_state {
>       enum drm_mode_subconnector select_subconnector;
> +     enum drm_mode_subconnector subconnector;
>       struct drm_connector_tv_margins margins;
>       unsigned int mode;
>       unsigned int brightness;
> 

Reply via email to