Re: [Intel-gfx] [PATCH 1/4] drm: allow specifying default subtype for the DP subconnector property

2023-08-02 Thread Dmitry Baryshkov

On 02/08/2023 21:54, Laurent Pinchart wrote:

Hi Dmitry,

Thank you for the patch.

On Sat, Jul 29, 2023 at 03:49:10AM +0300, Dmitry Baryshkov wrote:

In the embedded usecases the default subtype depends on the bridge
chain, so it is easier to specify the subtype at the proprety attachment


s/proprety/property/


type rather than specifying it later.


Did you mean s/type/time/ ?

I think I understand why you need this, looking at patch 2/4, but the
commit message isn't very clear. It would benefit from being reworded.


Ack, thanks for the feedback.




Signed-off-by: Dmitry Baryshkov 
---
  drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c  | 3 ++-
  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 3 ++-
  drivers/gpu/drm/drm_connector.c | 6 --
  drivers/gpu/drm/i915/display/intel_dp.c | 3 ++-
  include/drm/drm_connector.h | 3 ++-
  5 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
index d34037b85cf8..c18459ecd4be 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
@@ -2022,7 +2022,8 @@ amdgpu_connector_add(struct amdgpu_device *adev,
  
  	if (connector_type == DRM_MODE_CONNECTOR_DisplayPort ||

connector_type == DRM_MODE_CONNECTOR_eDP) {
-   
drm_connector_attach_dp_subconnector_property(_connector->base);
+   
drm_connector_attach_dp_subconnector_property(_connector->base,
+ 
DRM_MODE_SUBCONNECTOR_Unknown);
}
  
  	return;

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
index 943959012d04..297321f0199e 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
@@ -759,7 +759,8 @@ void amdgpu_dm_initialize_dp_connector(struct 
amdgpu_display_manager *dm,
drm_dp_mst_topology_mgr_init(>mst_mgr, 
adev_to_drm(dm->adev),
 >dm_dp_aux.aux, 16, 4, 
aconnector->connector_id);
  
-	drm_connector_attach_dp_subconnector_property(>base);

+   drm_connector_attach_dp_subconnector_property(>base,
+ 
DRM_MODE_SUBCONNECTOR_Unknown);
  }
  
  int dm_mst_get_pbn_divider(struct dc_link *link)

diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index a3d3e7dc08b2..a6066e4a5e9a 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -1577,10 +1577,12 @@ EXPORT_SYMBOL(drm_mode_create_dvi_i_properties);
  /**
   * drm_connector_attach_dp_subconnector_property - create subconnector 
property for DP
   * @connector: drm_connector to attach property
+ * @subtype: initial value for the subconnector type
   *
   * Called by a driver when DP connector is created.
   */
-void drm_connector_attach_dp_subconnector_property(struct drm_connector 
*connector)
+void drm_connector_attach_dp_subconnector_property(struct drm_connector 
*connector,
+  enum drm_mode_subconnector 
subtype)
  {
struct drm_mode_config *mode_config = >dev->mode_config;
  
@@ -1594,7 +1596,7 @@ void drm_connector_attach_dp_subconnector_property(struct drm_connector *connect
  
  	drm_object_attach_property(>base,

   mode_config->dp_subconnector_property,
-  DRM_MODE_SUBCONNECTOR_Unknown);
+  subtype);
  }
  EXPORT_SYMBOL(drm_connector_attach_dp_subconnector_property);
  
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c

index 474785110662..5819105187f6 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -5391,7 +5391,8 @@ intel_dp_add_properties(struct intel_dp *intel_dp, struct 
drm_connector *connect
enum port port = dp_to_dig_port(intel_dp)->base.port;
  
  	if (!intel_dp_is_edp(intel_dp))

-   drm_connector_attach_dp_subconnector_property(connector);
+   drm_connector_attach_dp_subconnector_property(connector,
+ 
DRM_MODE_SUBCONNECTOR_Unknown);
  
  	if (!IS_G4X(dev_priv) && port != PORT_A)

intel_attach_force_audio_property(connector);
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index 5a8115dca359..a130a78f6e0f 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -1990,7 +1990,8 @@ const char *drm_get_hdcp_content_type_name(int val);
  int drm_get_tv_mode_from_name(const char *name, size_t len);
  
  int drm_mode_create_dvi_i_properties(struct drm_device *dev);

Re: [Intel-gfx] [PATCH 1/4] drm: allow specifying default subtype for the DP subconnector property

2023-08-02 Thread Laurent Pinchart
Hi Dmitry,

Thank you for the patch.

On Sat, Jul 29, 2023 at 03:49:10AM +0300, Dmitry Baryshkov wrote:
> In the embedded usecases the default subtype depends on the bridge
> chain, so it is easier to specify the subtype at the proprety attachment

s/proprety/property/

> type rather than specifying it later.

Did you mean s/type/time/ ?

I think I understand why you need this, looking at patch 2/4, but the
commit message isn't very clear. It would benefit from being reworded.

> Signed-off-by: Dmitry Baryshkov 
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c  | 3 ++-
>  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 3 ++-
>  drivers/gpu/drm/drm_connector.c | 6 --
>  drivers/gpu/drm/i915/display/intel_dp.c | 3 ++-
>  include/drm/drm_connector.h | 3 ++-
>  5 files changed, 12 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
> index d34037b85cf8..c18459ecd4be 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
> @@ -2022,7 +2022,8 @@ amdgpu_connector_add(struct amdgpu_device *adev,
>  
>   if (connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
>   connector_type == DRM_MODE_CONNECTOR_eDP) {
> - 
> drm_connector_attach_dp_subconnector_property(_connector->base);
> + 
> drm_connector_attach_dp_subconnector_property(_connector->base,
> +   
> DRM_MODE_SUBCONNECTOR_Unknown);
>   }
>  
>   return;
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c 
> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> index 943959012d04..297321f0199e 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> @@ -759,7 +759,8 @@ void amdgpu_dm_initialize_dp_connector(struct 
> amdgpu_display_manager *dm,
>   drm_dp_mst_topology_mgr_init(>mst_mgr, 
> adev_to_drm(dm->adev),
>>dm_dp_aux.aux, 16, 4, 
> aconnector->connector_id);
>  
> - drm_connector_attach_dp_subconnector_property(>base);
> + drm_connector_attach_dp_subconnector_property(>base,
> +   
> DRM_MODE_SUBCONNECTOR_Unknown);
>  }
>  
>  int dm_mst_get_pbn_divider(struct dc_link *link)
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index a3d3e7dc08b2..a6066e4a5e9a 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -1577,10 +1577,12 @@ EXPORT_SYMBOL(drm_mode_create_dvi_i_properties);
>  /**
>   * drm_connector_attach_dp_subconnector_property - create subconnector 
> property for DP
>   * @connector: drm_connector to attach property
> + * @subtype: initial value for the subconnector type
>   *
>   * Called by a driver when DP connector is created.
>   */
> -void drm_connector_attach_dp_subconnector_property(struct drm_connector 
> *connector)
> +void drm_connector_attach_dp_subconnector_property(struct drm_connector 
> *connector,
> +enum drm_mode_subconnector 
> subtype)
>  {
>   struct drm_mode_config *mode_config = >dev->mode_config;
>  
> @@ -1594,7 +1596,7 @@ void 
> drm_connector_attach_dp_subconnector_property(struct drm_connector *connect
>  
>   drm_object_attach_property(>base,
>  mode_config->dp_subconnector_property,
> -DRM_MODE_SUBCONNECTOR_Unknown);
> +subtype);
>  }
>  EXPORT_SYMBOL(drm_connector_attach_dp_subconnector_property);
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
> b/drivers/gpu/drm/i915/display/intel_dp.c
> index 474785110662..5819105187f6 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -5391,7 +5391,8 @@ intel_dp_add_properties(struct intel_dp *intel_dp, 
> struct drm_connector *connect
>   enum port port = dp_to_dig_port(intel_dp)->base.port;
>  
>   if (!intel_dp_is_edp(intel_dp))
> - drm_connector_attach_dp_subconnector_property(connector);
> + drm_connector_attach_dp_subconnector_property(connector,
> +   
> DRM_MODE_SUBCONNECTOR_Unknown);
>  
>   if (!IS_G4X(dev_priv) && port != PORT_A)
>   intel_attach_force_audio_property(connector);
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index 5a8115dca359..a130a78f6e0f 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -1990,7 +1990,8 @@ const char *drm_get_hdcp_content_type_name(int val);
>  int drm_get_tv_mode_from_name(const char *name, size_t 

[Intel-gfx] [PATCH 1/4] drm: allow specifying default subtype for the DP subconnector property

2023-07-28 Thread Dmitry Baryshkov
In the embedded usecases the default subtype depends on the bridge
chain, so it is easier to specify the subtype at the proprety attachment
type rather than specifying it later.

Signed-off-by: Dmitry Baryshkov 
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c  | 3 ++-
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 3 ++-
 drivers/gpu/drm/drm_connector.c | 6 --
 drivers/gpu/drm/i915/display/intel_dp.c | 3 ++-
 include/drm/drm_connector.h | 3 ++-
 5 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
index d34037b85cf8..c18459ecd4be 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
@@ -2022,7 +2022,8 @@ amdgpu_connector_add(struct amdgpu_device *adev,
 
if (connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
connector_type == DRM_MODE_CONNECTOR_eDP) {
-   
drm_connector_attach_dp_subconnector_property(_connector->base);
+   
drm_connector_attach_dp_subconnector_property(_connector->base,
+ 
DRM_MODE_SUBCONNECTOR_Unknown);
}
 
return;
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
index 943959012d04..297321f0199e 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
@@ -759,7 +759,8 @@ void amdgpu_dm_initialize_dp_connector(struct 
amdgpu_display_manager *dm,
drm_dp_mst_topology_mgr_init(>mst_mgr, 
adev_to_drm(dm->adev),
 >dm_dp_aux.aux, 16, 4, 
aconnector->connector_id);
 
-   drm_connector_attach_dp_subconnector_property(>base);
+   drm_connector_attach_dp_subconnector_property(>base,
+ 
DRM_MODE_SUBCONNECTOR_Unknown);
 }
 
 int dm_mst_get_pbn_divider(struct dc_link *link)
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index a3d3e7dc08b2..a6066e4a5e9a 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -1577,10 +1577,12 @@ EXPORT_SYMBOL(drm_mode_create_dvi_i_properties);
 /**
  * drm_connector_attach_dp_subconnector_property - create subconnector 
property for DP
  * @connector: drm_connector to attach property
+ * @subtype: initial value for the subconnector type
  *
  * Called by a driver when DP connector is created.
  */
-void drm_connector_attach_dp_subconnector_property(struct drm_connector 
*connector)
+void drm_connector_attach_dp_subconnector_property(struct drm_connector 
*connector,
+  enum drm_mode_subconnector 
subtype)
 {
struct drm_mode_config *mode_config = >dev->mode_config;
 
@@ -1594,7 +1596,7 @@ void drm_connector_attach_dp_subconnector_property(struct 
drm_connector *connect
 
drm_object_attach_property(>base,
   mode_config->dp_subconnector_property,
-  DRM_MODE_SUBCONNECTOR_Unknown);
+  subtype);
 }
 EXPORT_SYMBOL(drm_connector_attach_dp_subconnector_property);
 
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index 474785110662..5819105187f6 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -5391,7 +5391,8 @@ intel_dp_add_properties(struct intel_dp *intel_dp, struct 
drm_connector *connect
enum port port = dp_to_dig_port(intel_dp)->base.port;
 
if (!intel_dp_is_edp(intel_dp))
-   drm_connector_attach_dp_subconnector_property(connector);
+   drm_connector_attach_dp_subconnector_property(connector,
+ 
DRM_MODE_SUBCONNECTOR_Unknown);
 
if (!IS_G4X(dev_priv) && port != PORT_A)
intel_attach_force_audio_property(connector);
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index 5a8115dca359..a130a78f6e0f 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -1990,7 +1990,8 @@ const char *drm_get_hdcp_content_type_name(int val);
 int drm_get_tv_mode_from_name(const char *name, size_t len);
 
 int drm_mode_create_dvi_i_properties(struct drm_device *dev);
-void drm_connector_attach_dp_subconnector_property(struct drm_connector 
*connector);
+void drm_connector_attach_dp_subconnector_property(struct drm_connector 
*connector,
+  enum drm_mode_subconnector 
subtype);
 
 int drm_mode_create_tv_margin_properties(struct drm_device *dev);
 int drm_mode_create_tv_properties_legacy(struct