AMD-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Li, Sun peng (Leo)" <Sunpeng.Li-5C7GfCeVMHo@public.gmane.org>
To: Lyude Paul <lyude-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	"Francis, David" <David.Francis-5C7GfCeVMHo@public.gmane.org>,
	"dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org"
	<dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>,
	"amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org"
	<amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>
Subject: Re: [PATCH v2 09/14] drm/dp-mst: Export symbols for dpcd read/write
Date: Tue, 20 Aug 2019 21:35:13 +0000	[thread overview]
Message-ID: <e7bc8662-0fcd-394d-7970-aab658206238@amd.com> (raw)
In-Reply-To: <773c80494087854b72ffb85938f0ea54bd89c121.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>




On 2019-08-20 5:02 p.m., Lyude Paul wrote:
> [Added Leo Li here, since they did the auxdev work that introduced these
> functions]
> 
> Since it seems we'll actually be doing remote DPCD read/writes in DRM drivers
> and not just from auxdev, maybe we should combine drm_dp_dpcd_read() with
> drm_dp_mst_dpcd_read() and do the same with the _write() variants? Based on
> previous discussions with Leo Li I remember that we can't just combine the
> dp_aux_dev->transfer() callbacks in struct drm_dp_aux_dev, but I don't see a
> reason we can't just teach drm_dp_dpcd_read/write() to work with MST aux so
> that we don't need two seperate functions. This should be pretty easy to do,
> just:
> 
> /* Add a check like this at the start of drm_dp_dpcd_read(): */
> ssize_t drm_dp_dpcd_read(...) {
> 	if (aux->is_remote)
> 		return drm_dp_mst_dpcd_read(...);
> 
> 	/* ... */
> }
> 
> /* And in drm_dp_dpcd_write(): */
> ssize_t drm_dp_dpcd_write(...) {
> 	if (aux->is_remote)
> 		return drm_dp_mst_dpcd_write(...);
> 
> 	/* ... */
> }
> 
> Then just replace the manual calls to drm_dp_mst_dpcd_write() in
> drivers/gpu/drm/drm_dp_aux_dev.c with normal
> drm_dp_dpcd_read()/drm_dp_dpcd_write() calls. Thoughts?

I think this would work well.

drm_dp_mst_dpcd_read/write will eventually call drm_dp_dpcd_write, so
doing so would cause a recursive call. That should be safe though. The
mst manager's aux will be used, and that should always be a real
(is_remote == false) aux, fwict.

Essentially, it's just moving that conditional from
auxdev_read/write_iter to drm_dp_dpcd_read/write.

Leo

> 
> On Tue, 2019-08-20 at 15:11 -0400, David Francis wrote:
>> To use these functions in drm driver directories, they must be
>> exported
>>
>> Signed-off-by: David Francis <David.Francis@amd.com>
>> ---
>>  drivers/gpu/drm/drm_dp_mst_topology.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c
>> b/drivers/gpu/drm/drm_dp_mst_topology.c
>> index b40d975aec76..5d5bd42da17c 100644
>> --- a/drivers/gpu/drm/drm_dp_mst_topology.c
>> +++ b/drivers/gpu/drm/drm_dp_mst_topology.c
>> @@ -1512,6 +1512,7 @@ ssize_t drm_dp_mst_dpcd_read(struct drm_dp_aux *aux,
>>  	return drm_dp_send_dpcd_read(port->mgr, port,
>>  				     offset, size, buffer);
>>  }
>> +EXPORT_SYMBOL(drm_dp_mst_dpcd_read);
>>  
>>  /**
>>   * drm_dp_mst_dpcd_write() - write a series of bytes to the DPCD via
>> sideband
>> @@ -1535,6 +1536,7 @@ ssize_t drm_dp_mst_dpcd_write(struct drm_dp_aux *aux,
>>  	return drm_dp_send_dpcd_write(port->mgr, port,
>>  				      offset, size, buffer);
>>  }
>> +EXPORT_SYMBOL(drm_dp_mst_dpcd_write);
>>  
>>  static void drm_dp_check_mstb_guid(struct drm_dp_mst_branch *mstb, u8
>> *guid)
>>  {
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

  parent reply	other threads:[~2019-08-20 21:35 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-20 19:11 [PATCH v2 00/14] Display Stream Compression (DSC) for AMD Navi David Francis
2019-08-20 19:11 ` [PATCH v2 01/14] Revert "drm/amd/display: skip dsc config for navi10 bring up" David Francis
2019-08-20 19:11 ` [PATCH v2 03/14] Revert "drm/amd/display: add global master update lock for DCN2" David Francis
2019-08-20 19:11 ` [PATCH v2 04/14] Revert "drm/amd/display: Fix underscan not using proper scaling" David Francis
2019-08-20 19:11 ` [PATCH v2 09/14] drm/dp-mst: Export symbols for dpcd read/write David Francis
     [not found]   ` <20190820191203.25807-10-David.Francis-5C7GfCeVMHo@public.gmane.org>
2019-08-20 21:02     ` Lyude Paul
     [not found]       ` <773c80494087854b72ffb85938f0ea54bd89c121.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2019-08-20 21:35         ` Li, Sun peng (Leo) [this message]
     [not found] ` <20190820191203.25807-1-David.Francis-5C7GfCeVMHo@public.gmane.org>
2019-08-20 19:11   ` [PATCH v2 02/14] Revert "drm/amd/display: navi10 bring up skip dsc encoder config" David Francis
2019-08-20 19:11   ` [PATCH v2 05/14] drm/amd/display: Enable SST DSC in DM David Francis
2019-08-20 19:11   ` [PATCH v2 06/14] drm/dp-mst: Use dc and drm helpers to compute timeslots David Francis
     [not found]     ` <20190820191203.25807-7-David.Francis-5C7GfCeVMHo@public.gmane.org>
2019-08-20 20:43       ` Lyude Paul
     [not found]         ` <eccdbdb90afa28079a92b9cd959a1cb54ed952b3.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2019-08-21 12:27           ` Kazlauskas, Nicholas
     [not found]             ` <f63c563e-3aa5-0772-559b-6b34ef612495-5C7GfCeVMHo@public.gmane.org>
2019-08-21 18:57               ` Lyude Paul
2019-08-20 19:11   ` [PATCH v2 07/14] drm/amd/display: Initialize DSC PPS variables to 0 David Francis
2019-08-20 19:11   ` [PATCH v2 08/14] drm/dp-mst: Parse FEC capability on MST ports David Francis
     [not found]     ` <20190820191203.25807-9-David.Francis-5C7GfCeVMHo@public.gmane.org>
2019-08-20 20:40       ` Lyude Paul
2019-08-20 19:11   ` [PATCH v2 10/14] drm/dp-mst: Fill branch->num_ports David Francis
     [not found]     ` <20190820191203.25807-11-David.Francis-5C7GfCeVMHo@public.gmane.org>
2019-08-20 21:08       ` Lyude Paul
2019-08-20 19:12   ` [PATCH v2 11/14] drm/amd/display: Validate DSC caps on MST endpoints David Francis
     [not found]     ` <20190820191203.25807-12-David.Francis-5C7GfCeVMHo@public.gmane.org>
2019-08-20 20:34       ` Lyude Paul
2019-08-21 18:14       ` Kazlauskas, Nicholas
2019-08-20 19:12   ` [PATCH v2 12/14] drm/amd/display: Write DSC enable to MST DPCD David Francis
2019-08-20 19:12   ` [PATCH v2 13/14] drm/amd/display: MST DSC compute fair share David Francis
2019-08-20 19:12 ` [PATCH v2 14/14] drm/amd/display: Trigger modesets on MST DSC connectors David Francis
     [not found]   ` <20190820191203.25807-15-David.Francis-5C7GfCeVMHo@public.gmane.org>
2019-08-20 21:09     ` Lyude Paul
     [not found]       ` <f7272de2841c61f1297f0fce493efe5dd5317dfa.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2019-08-21 12:25         ` Kazlauskas, Nicholas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e7bc8662-0fcd-394d-7970-aab658206238@amd.com \
    --to=sunpeng.li-5c7gfcevmho@public.gmane.org \
    --cc=David.Francis-5C7GfCeVMHo@public.gmane.org \
    --cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=lyude-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox