[PATCH 1/2] drm: add dp helper to initialize remote aux channel.
Harry Wentland
hwentlan at amd.com
Fri Dec 6 16:09:56 UTC 2019
On 2019-12-06 10:30 a.m., Harry Wentland wrote:
> On 2019-12-05 11:55 a.m., David (Dingchen) Zhang wrote:
>> [why]
>> We need to minimally initialize the remote aux channel, e.g. the
>> crc work struct of remote aux to dump the sink's DPRX CRCs in MST
>> setup.
>>
>> [how]
>> Add helper that only initializes the crc work struct of the remote
>> aux, hooke crc work queue to 'drm_dp_aux_crc_work'. Then call this
>> helper in DP MST port initialization.
>>
>>
>> Cc: Leo Li <sunpeng.li at amd.com>
>> Cc: Harry Wentland <Harry.Wentland at amd.com>
>> Signed-off-by: David (Dingchen) Zhang <dingchen.zhang at amd.com>
>> ---
>> drivers/gpu/drm/drm_dp_helper.c | 13 +++++++++++++
>> drivers/gpu/drm/drm_dp_mst_topology.c | 3 +++
>> include/drm/drm_dp_helper.h | 1 +
>> 3 files changed, 17 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
>> index fc39323e7d52..37312593dd0a 100644
>> --- a/drivers/gpu/drm/drm_dp_helper.c
>> +++ b/drivers/gpu/drm/drm_dp_helper.c
>> @@ -1091,6 +1091,19 @@ static void drm_dp_aux_crc_work(struct work_struct *work)
>> }
>> }
>>
>> +/**
>> + * drm_dp_remote_aux_init() - minimally initialise a remote aux channel
>> + * @aux: DisplayPort AUX channel
>> + *
>> + * Used for remote aux channel in general. Merely initialize the crc work
>> + * struct.
>> + */
>> +void drm_dp_remote_aux_init(struct drm_dp_aux *aux)
>> +{
>> + INIT_WORK(&aux->crc_work, drm_dp_aux_crc_work);
>> +}
>> +EXPORT_SYMBOL(drm_dp_remote_aux_init);
>> +
>> /**
>> * drm_dp_aux_init() - minimally initialise an aux channel
>> * @aux: DisplayPort AUX channel
>> diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
>> index d5df02315e14..4308316fe211 100644
>> --- a/drivers/gpu/drm/drm_dp_mst_topology.c
>> +++ b/drivers/gpu/drm/drm_dp_mst_topology.c
>> @@ -1642,6 +1642,9 @@ static void drm_dp_add_port(struct drm_dp_mst_branch *mstb,
>
> This function is gone in amd-staging-drm-next.
>
> Please send a v2 of this patch based on amd-staging-drm-next of agd5f's
> repo from https://cgit.freedesktop.org/~agd5f/linux/?h=amd-staging-drm-next
>
My bad. This should be the drm-misc-next branch on
https://cgit.freedesktop.org/drm/drm-misc
Harry
> Harry
>
>> port->aux.dev = dev->dev;
>> port->aux.is_remote = true;
>>
>> + /* initialize the MST downstream port's AUX crc work queue */
>> + drm_dp_remote_aux_init(&port->aux);
>> +
>> /*
>> * Make sure the memory allocation for our parent branch stays
>> * around until our own memory allocation is released
>> diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h
>> index 61ef351c5fca..da0a69f10e38 100644
>> --- a/include/drm/drm_dp_helper.h
>> +++ b/include/drm/drm_dp_helper.h
>> @@ -1403,6 +1403,7 @@ int drm_dp_downstream_id(struct drm_dp_aux *aux, char id[6]);
>> void drm_dp_downstream_debug(struct seq_file *m, const u8 dpcd[DP_RECEIVER_CAP_SIZE],
>> const u8 port_cap[4], struct drm_dp_aux *aux);
>>
>> +void drm_dp_remote_aux_init(struct drm_dp_aux *aux);
>> void drm_dp_aux_init(struct drm_dp_aux *aux);
>> int drm_dp_aux_register(struct drm_dp_aux *aux);
>> void drm_dp_aux_unregister(struct drm_dp_aux *aux);
>>
More information about the dri-devel
mailing list