2022-08-29 13:19:16

by Maxime Ripard

[permalink] [raw]
Subject: [PATCH v2 05/41] drm/atomic: Add TV subconnector property to get/set_property

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 <[email protected]>

Reviewed-by: Noralf Trønnes <[email protected]>



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 60b5662dec7c..1d5e3cccb9e3 100644

--- a/include/drm/drm_connector.h

+++ b/include/drm/drm_connector.h

@@ -693,6 +693,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

@@ -704,6 +705,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;



--

b4 0.10.0-dev-65ba7