All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mario Limonciello <superm1@kernel.org>
To: simonit.orig@gmail.com, Richard Hughes <richard@hughsie.com>
Cc: Harry Wentland <harry.wentland@amd.com>,
	Leo Li <sunpeng.li@amd.com>,
	Alex Deucher <alexander.deucher@amd.com>,
	dri-devel@lists.freedesktop.org, Wayne Lin <Wayne.Lin@amd.com>,
	amd-gfx@lists.freedesktop.org
Subject: Re: [PATCH v2] drm/amd/display: Route connector DDC over AUX for native DP sinks
Date: Sun, 15 Nov 2026 08:06:50 -0600	[thread overview]
Message-ID: <c6d79680-1fd2-4e71-9d00-616010b7727c@kernel.org> (raw)
In-Reply-To: <20261115082042.1902826-1-Wayne.Lin@amd.com>

On 11/15/26 02:20, Wayne Lin wrote:
> Reviewed-by: Wayne Lin <Wayne.Lin@amd.com>

Thanks Wayne.

Simon, Richard,

Can you please check that this resolves the issue raised?

Thanks,

> 
> On Tue, 03 Nov 2026 08:18:40 -0600, Mario Limonciello wrote:
>> On DisplayPort and eDP connectors DDC is tunneled over the AUX channel,
>> but the connector's "ddc" adapter ("AMDGPU DM i2c hw bus N") always
>> drives the physical i2c pins, which don't reach a native DP sink.  The
>> AUX backed adapter ("AMDGPU DM aux hw bus N") does, so userspace such as
>> fwupd, which uses the "ddc" sysfs link for DDC/CI, has to work around
>> this.
>>
>> Keep a single i2c bus per connector and pick the transport per transfer
>> based on the detected sink: if the sink is a native DP/eDP/MST sink,
>> forward the transfer to the AUX adapter, otherwise (DVI/HDMI, including
>> DP++ with a passive adapter) use the hw i2c engine as before.
>>
>> Reported-by: simonit.orig@gmail.com
>> Closes: https://github.com/fwupd/fwupd/pull/11308
>> Signed-off-by: Mario Limonciello <superm1@kernel.org>
>> ---
>> Changes in v2:
>> - Check which i2c bus to use on the fly instead of changing static symlink to
>>    avoid regressing passive adapters.
>> - Link to v1: https://patch.msgid.link/20261102-superm1-amdgpu-ddc-v1-1-9c5cb4a4f62d@amd.com
>> ---
>>   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c  | 16 ++++++++++++++++
>>   1 file changed, 16 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c
>> index b498fc5fbb140..678caffa3d120 100644
>> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c
>> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c
>> @@ -3373,6 +3373,22 @@ STATIC_IFN_KUNIT int amdgpu_dm_i2c_xfer(struct i2c_adapter *i2c_adap,
>>   	int i;
>>   	int result = -EIO;
>>   
>> +	if (!i2c->oem) {
>> +		struct dc_link *link = ddc_service->link;
>> +		struct amdgpu_dm_connector *aconnector = link->priv;
>> +
>> +		/*
>> +		 * DDC to a native DisplayPort sink is tunneled over the AUX
>> +		 * channel; the physical i2c pins only reach DVI/HDMI sinks
>> +		 * (e.g. DP++ with a passive adapter).  Route accordingly so
>> +		 * the connector's single "ddc" bus works for either sink.
>> +		 */
>> +		if (aconnector && link->local_sink &&
>> +		    dc_is_dp_signal(link->local_sink->sink_signal) &&
>> +		    aconnector->dm_dp_aux.aux.ddc.algo)
>> +			return i2c_transfer(&aconnector->dm_dp_aux.aux.ddc, msgs, num);
>> +	}
>> +
>>   	if (!ddc_service->ddc_pin)
>>   		return result;
>>   
>>
>> ---
>> base-commit: 6628e7d4c6b25c8d18f1345e3a20d21829aae7e4
>> change-id: 20261102-superm1-amdgpu-ddc-63f0eb10c022
>>
>> Best regards,
>> --
>> Mario Limonciello <superm1@kernel.org>
>>
>>


      reply	other threads:[~2026-11-15 14:07 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-03 14:18 [PATCH v2] drm/amd/display: Route connector DDC over AUX for native DP sinks Mario Limonciello
2026-11-03 14:36 ` sashiko-bot
2026-11-15  8:20 ` Wayne Lin
2026-11-15 14:06   ` Mario Limonciello [this message]

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=c6d79680-1fd2-4e71-9d00-616010b7727c@kernel.org \
    --to=superm1@kernel.org \
    --cc=Wayne.Lin@amd.com \
    --cc=alexander.deucher@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=harry.wentland@amd.com \
    --cc=richard@hughsie.com \
    --cc=simonit.orig@gmail.com \
    --cc=sunpeng.li@amd.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.