[PATCH v2 1/3] drm/dp_mst: add passthrough_aux to struct drm_dp_mst_port

Hamza Mahfooz hamza.mahfooz at amd.com
Tue Aug 9 15:15:55 UTC 2022


Hey Lyude,

On 2022-08-05 17:17, Lyude Paul wrote:
> lgtm!
> 

Any chance you can apply this to drm-misc-next?

> Reviewed-by: Lyude Paul <lyude at redhat.com>
> 
> On Fri, 2022-08-05 at 17:13 -0400, Hamza Mahfooz wrote:
>> Currently, there is no way to identify if DSC pass-through can be
>> enabled and what aux DSC pass-through requests ought to be sent to. So,
>> add a variable to struct drm_dp_mst_port that keeps track of the
>> aforementioned information.
>>
>> Signed-off-by: Hamza Mahfooz <hamza.mahfooz at amd.com>
>> ---
>> v2: define DP_DSC_PASSTHROUGH_IS_SUPPORTED
>> ---
>>   drivers/gpu/drm/display/drm_dp_mst_topology.c | 4 +++-
>>   include/drm/display/drm_dp.h                  | 1 +
>>   include/drm/display/drm_dp_mst_helper.h       | 3 +++
>>   3 files changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/display/drm_dp_mst_topology.c b/drivers/gpu/drm/display/drm_dp_mst_topology.c
>> index 67b3b9697da7..71915afd9892 100644
>> --- a/drivers/gpu/drm/display/drm_dp_mst_topology.c
>> +++ b/drivers/gpu/drm/display/drm_dp_mst_topology.c
>> @@ -5921,8 +5921,10 @@ struct drm_dp_aux *drm_dp_mst_dsc_aux_for_port(struct drm_dp_mst_port *port)
>>   		/* Enpoint decompression with DP-to-DP peer device */
>>   		if ((endpoint_dsc & DP_DSC_DECOMPRESSION_IS_SUPPORTED) &&
>>   		    (endpoint_fec & DP_FEC_CAPABLE) &&
>> -		    (upstream_dsc & 0x2) /* DSC passthrough */)
>> +		    (upstream_dsc & DP_DSC_PASSTHROUGH_IS_SUPPORTED)) {
>> +			port->passthrough_aux = &immediate_upstream_port->aux;
>>   			return &port->aux;
>> +		}
>>   
>>   		/* Virtual DPCD decompression with DP-to-DP peer device */
>>   		return &immediate_upstream_port->aux;
>> diff --git a/include/drm/display/drm_dp.h b/include/drm/display/drm_dp.h
>> index 9e3aff7e68bb..4d0abe4c7ea9 100644
>> --- a/include/drm/display/drm_dp.h
>> +++ b/include/drm/display/drm_dp.h
>> @@ -239,6 +239,7 @@
>>   
>>   #define DP_DSC_SUPPORT                      0x060   /* DP 1.4 */
>>   # define DP_DSC_DECOMPRESSION_IS_SUPPORTED  (1 << 0)
>> +# define DP_DSC_PASSTHROUGH_IS_SUPPORTED    (1 << 1)
>>   
>>   #define DP_DSC_REV                          0x061
>>   # define DP_DSC_MAJOR_MASK                  (0xf << 0)
>> diff --git a/include/drm/display/drm_dp_mst_helper.h b/include/drm/display/drm_dp_mst_helper.h
>> index 10adec068b7f..4a39c95f8afd 100644
>> --- a/include/drm/display/drm_dp_mst_helper.h
>> +++ b/include/drm/display/drm_dp_mst_helper.h
>> @@ -86,6 +86,8 @@ struct drm_dp_vcpi {
>>    * @next: link to next port on this branch device
>>    * @aux: i2c aux transport to talk to device connected to this port, protected
>>    * by &drm_dp_mst_topology_mgr.base.lock.
>> + * @passthrough_aux: parent aux to which DSC pass-through requests should be
>> + * sent, only set if DSC pass-through is possible.
>>    * @parent: branch device parent of this port
>>    * @vcpi: Virtual Channel Payload info for this port.
>>    * @connector: DRM connector this port is connected to. Protected by
>> @@ -140,6 +142,7 @@ struct drm_dp_mst_port {
>>   	 */
>>   	struct drm_dp_mst_branch *mstb;
>>   	struct drm_dp_aux aux; /* i2c bus for this port? */
>> +	struct drm_dp_aux *passthrough_aux;
>>   	struct drm_dp_mst_branch *parent;
>>   
>>   	struct drm_dp_vcpi vcpi;
> 

-- 
Hamza



More information about the dri-devel mailing list