Re: [PATCH v1 03/35] drm/atomic: Add TV subconnector property to get/set_property
From: Noralf Trønnes
Date: Mon Aug 08 2022 - 08:31:06 EST
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 <maxime@xxxxxxxxxx>
>
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 <noralf@xxxxxxxxxxx>
> 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;
>