AMD-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/amd/display: Only poll analog connectors
@ 2026-01-18 13:03 Timur Kristóf
  2026-01-19 16:46 ` Mario Limonciello (AMD) (kernel.org)
  2026-01-19 17:21 ` Harry Wentland
  0 siblings, 2 replies; 6+ messages in thread
From: Timur Kristóf @ 2026-01-18 13:03 UTC (permalink / raw)
  To: amd-gfx, Alexander.Deucher, Mario Limonciello, Ivan Lipski,
	harry.wentland
  Cc: Timur Kristóf, Matthew Schwartz

Analog connectors may be hot-plugged unlike other connector
types that don't support HPD.

Stop DRM from polling other connector types that don't
support HPD, such as eDP, LVDS, etc. These were wrongly
polled when analog connector support was added,
causing issues with the seamless boot process.

Fixes: c4f3f114e73c ("drm/amd/display: Poll analog connectors (v3)")
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reported-by: Matthew Schwartz <matthew.schwartz@linux.dev>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
index 0a2a3f233a0e..e7b0928bd3db 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
@@ -915,13 +915,19 @@ void amdgpu_dm_hpd_init(struct amdgpu_device *adev)
 		struct amdgpu_dm_connector *amdgpu_dm_connector;
 		const struct dc_link *dc_link;
 
-		use_polling |= connector->polled != DRM_CONNECTOR_POLL_HPD;
-
 		if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
 			continue;
 
 		amdgpu_dm_connector = to_amdgpu_dm_connector(connector);
 
+		/*
+		 * Analog connectors may be hot-plugged unlike other connector
+		 * types that don't support HPD. Only poll analog connectors.
+		 */
+		use_polling |=
+			amdgpu_dm_connector->dc_link &&
+			dc_connector_supports_analog(amdgpu_dm_connector->dc_link->link_id.id);
+
 		dc_link = amdgpu_dm_connector->dc_link;
 
 		/*
-- 
2.52.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/amd/display: Only poll analog connectors
  2026-01-18 13:03 [PATCH] drm/amd/display: Only poll analog connectors Timur Kristóf
@ 2026-01-19 16:46 ` Mario Limonciello (AMD) (kernel.org)
  2026-01-19 17:21 ` Harry Wentland
  1 sibling, 0 replies; 6+ messages in thread
From: Mario Limonciello (AMD) (kernel.org) @ 2026-01-19 16:46 UTC (permalink / raw)
  To: Timur Kristóf, amd-gfx, Alexander.Deucher, Ivan Lipski,
	harry.wentland
  Cc: Matthew Schwartz



On 1/18/2026 7:03 AM, Timur Kristóf wrote:
> Analog connectors may be hot-plugged unlike other connector
> types that don't support HPD.
> 
> Stop DRM from polling other connector types that don't
> support HPD, such as eDP, LVDS, etc. These were wrongly
> polled when analog connector support was added,
> causing issues with the seamless boot process.
> 
> Fixes: c4f3f114e73c ("drm/amd/display: Poll analog connectors (v3)")
> Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
> Reported-by: Matthew Schwartz <matthew.schwartz@linux.dev>
Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org>
> ---
>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c | 10 ++++++++--
>   1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
> index 0a2a3f233a0e..e7b0928bd3db 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
> @@ -915,13 +915,19 @@ void amdgpu_dm_hpd_init(struct amdgpu_device *adev)
>   		struct amdgpu_dm_connector *amdgpu_dm_connector;
>   		const struct dc_link *dc_link;
>   
> -		use_polling |= connector->polled != DRM_CONNECTOR_POLL_HPD;
> -
>   		if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
>   			continue;
>   
>   		amdgpu_dm_connector = to_amdgpu_dm_connector(connector);
>   
> +		/*
> +		 * Analog connectors may be hot-plugged unlike other connector
> +		 * types that don't support HPD. Only poll analog connectors.
> +		 */
> +		use_polling |=
> +			amdgpu_dm_connector->dc_link &&
> +			dc_connector_supports_analog(amdgpu_dm_connector->dc_link->link_id.id);
> +
>   		dc_link = amdgpu_dm_connector->dc_link;
>   
>   		/*


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/amd/display: Only poll analog connectors
  2026-01-18 13:03 [PATCH] drm/amd/display: Only poll analog connectors Timur Kristóf
  2026-01-19 16:46 ` Mario Limonciello (AMD) (kernel.org)
@ 2026-01-19 17:21 ` Harry Wentland
  2026-01-19 19:06   ` Timur Kristóf
  1 sibling, 1 reply; 6+ messages in thread
From: Harry Wentland @ 2026-01-19 17:21 UTC (permalink / raw)
  To: Timur Kristóf, amd-gfx, Alexander.Deucher, Mario Limonciello,
	Ivan Lipski
  Cc: Matthew Schwartz



On 2026-01-18 08:03, Timur Kristóf wrote:
> Analog connectors may be hot-plugged unlike other connector
> types that don't support HPD.
> 
> Stop DRM from polling other connector types that don't
> support HPD, such as eDP, LVDS, etc. These were wrongly
> polled when analog connector support was added,
> causing issues with the seamless boot process.
> 
> Fixes: c4f3f114e73c ("drm/amd/display: Poll analog connectors (v3)")
> Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
> Reported-by: Matthew Schwartz <matthew.schwartz@linux.dev>
> ---
>  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
> index 0a2a3f233a0e..e7b0928bd3db 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
> @@ -915,13 +915,19 @@ void amdgpu_dm_hpd_init(struct amdgpu_device *adev)
>  		struct amdgpu_dm_connector *amdgpu_dm_connector;
>  		const struct dc_link *dc_link;
>  
> -		use_polling |= connector->polled != DRM_CONNECTOR_POLL_HPD;
> -
>  		if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
>  			continue;
>  
>  		amdgpu_dm_connector = to_amdgpu_dm_connector(connector);
>  
> +		/*
> +		 * Analog connectors may be hot-plugged unlike other connector
> +		 * types that don't support HPD. Only poll analog connectors.
> +		 */
> +		use_polling |=
> +			amdgpu_dm_connector->dc_link &&
> +			dc_connector_supports_analog(amdgpu_dm_connector->dc_link->link_id.id);

Why isn't the aconnector->base.polled assignment in
amdgpu_dm_connector_init_helper doing the trick?

Harry

> +
>  		dc_link = amdgpu_dm_connector->dc_link;
>  
>  		/*


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/amd/display: Only poll analog connectors
  2026-01-19 17:21 ` Harry Wentland
@ 2026-01-19 19:06   ` Timur Kristóf
  2026-01-19 19:23     ` Harry Wentland
  0 siblings, 1 reply; 6+ messages in thread
From: Timur Kristóf @ 2026-01-19 19:06 UTC (permalink / raw)
  To: amd-gfx, Alexander.Deucher, Mario Limonciello, Ivan Lipski,
	Harry Wentland
  Cc: Matthew Schwartz

On Monday, January 19, 2026 6:21:40 PM Central European Standard Time Harry 
Wentland wrote:
> On 2026-01-18 08:03, Timur Kristóf wrote:
> > Analog connectors may be hot-plugged unlike other connector
> > types that don't support HPD.
> > 
> > Stop DRM from polling other connector types that don't
> > support HPD, such as eDP, LVDS, etc. These were wrongly
> > polled when analog connector support was added,
> > causing issues with the seamless boot process.
> > 
> > Fixes: c4f3f114e73c ("drm/amd/display: Poll analog connectors (v3)")
> > Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
> > Reported-by: Matthew Schwartz <matthew.schwartz@linux.dev>
> > ---
> > 
> >  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c | 10 ++++++++--
> >  1 file changed, 8 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
> > b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c index
> > 0a2a3f233a0e..e7b0928bd3db 100644
> > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
> > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
> > @@ -915,13 +915,19 @@ void amdgpu_dm_hpd_init(struct amdgpu_device *adev)
> > 
> >  		struct amdgpu_dm_connector *amdgpu_dm_connector;
> >  		const struct dc_link *dc_link;
> > 
> > -		use_polling |= connector->polled != 
DRM_CONNECTOR_POLL_HPD;
> > -
> > 
> >  		if (connector->connector_type == 
DRM_MODE_CONNECTOR_WRITEBACK)
> >  		
> >  			continue;
> >  		
> >  		amdgpu_dm_connector = 
to_amdgpu_dm_connector(connector);
> > 
> > +		/*
> > +		 * Analog connectors may be hot-plugged unlike other 
connector
> > +		 * types that don't support HPD. Only poll analog 
connectors.
> > +		 */
> > +		use_polling |=
> > +			amdgpu_dm_connector->dc_link &&
> > +			
dc_connector_supports_analog(amdgpu_dm_connector->dc_link->link_id.id)
> > ;
> 
> Why isn't the aconnector->base.polled assignment in
> amdgpu_dm_connector_init_helper doing the trick?
> 
> Harry

Hi Harry,

The issue is that checking "connector->polled != DRM_CONNECTOR_POLL_HPD" will 
also match connectors that don't support hotplugging, such as eDP, LVDS etc.

amdgpu_dm_connector_init_helper is working correctly, it doesn't set the 
DRM_CONNECTOR_POLL_HPD flag for neither analog connectors, nor eDP, LVDS, etc. 
which is correct. The problem is with this check in amdgpu_dm_hpd_init.

Best regards,
Timur

> 
> > +
> > 
> >  		dc_link = amdgpu_dm_connector->dc_link;
> >  		
> >  		/*





^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/amd/display: Only poll analog connectors
  2026-01-19 19:06   ` Timur Kristóf
@ 2026-01-19 19:23     ` Harry Wentland
  2026-01-19 19:48       ` Mario Limonciello
  0 siblings, 1 reply; 6+ messages in thread
From: Harry Wentland @ 2026-01-19 19:23 UTC (permalink / raw)
  To: Timur Kristóf, amd-gfx, Alexander.Deucher, Mario Limonciello,
	Ivan Lipski
  Cc: Matthew Schwartz



On 2026-01-19 14:06, Timur Kristóf wrote:
> On Monday, January 19, 2026 6:21:40 PM Central European Standard Time Harry 
> Wentland wrote:
>> On 2026-01-18 08:03, Timur Kristóf wrote:
>>> Analog connectors may be hot-plugged unlike other connector
>>> types that don't support HPD.
>>>
>>> Stop DRM from polling other connector types that don't
>>> support HPD, such as eDP, LVDS, etc. These were wrongly
>>> polled when analog connector support was added,
>>> causing issues with the seamless boot process.
>>>
>>> Fixes: c4f3f114e73c ("drm/amd/display: Poll analog connectors (v3)")
>>> Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
>>> Reported-by: Matthew Schwartz <matthew.schwartz@linux.dev>
>>> ---
>>>
>>>  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c | 10 ++++++++--
>>>  1 file changed, 8 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
>>> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c index
>>> 0a2a3f233a0e..e7b0928bd3db 100644
>>> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
>>> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
>>> @@ -915,13 +915,19 @@ void amdgpu_dm_hpd_init(struct amdgpu_device *adev)
>>>
>>>  		struct amdgpu_dm_connector *amdgpu_dm_connector;
>>>  		const struct dc_link *dc_link;
>>>
>>> -		use_polling |= connector->polled != 
> DRM_CONNECTOR_POLL_HPD;
>>> -
>>>
>>>  		if (connector->connector_type == 
> DRM_MODE_CONNECTOR_WRITEBACK)
>>>  		
>>>  			continue;
>>>  		
>>>  		amdgpu_dm_connector = 
> to_amdgpu_dm_connector(connector);
>>>
>>> +		/*
>>> +		 * Analog connectors may be hot-plugged unlike other 
> connector
>>> +		 * types that don't support HPD. Only poll analog 
> connectors.
>>> +		 */
>>> +		use_polling |=
>>> +			amdgpu_dm_connector->dc_link &&
>>> +			
> dc_connector_supports_analog(amdgpu_dm_connector->dc_link->link_id.id)
>>> ;
>>
>> Why isn't the aconnector->base.polled assignment in
>> amdgpu_dm_connector_init_helper doing the trick?
>>
>> Harry
> 
> Hi Harry,
> 
> The issue is that checking "connector->polled != DRM_CONNECTOR_POLL_HPD" will 
> also match connectors that don't support hotplugging, such as eDP, LVDS etc.
> 
> amdgpu_dm_connector_init_helper is working correctly, it doesn't set the 
> DRM_CONNECTOR_POLL_HPD flag for neither analog connectors, nor eDP, LVDS, etc. 
> which is correct. The problem is with this check in amdgpu_dm_hpd_init.
> 

Ah, you're right.

Reviewed-by: Harry Wentland <harry.wentland@amd.com>

Harry

> Best regards,
> Timur
> 
>>
>>> +
>>>
>>>  		dc_link = amdgpu_dm_connector->dc_link;
>>>  		
>>>  		/*
> 
> 
> 
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/amd/display: Only poll analog connectors
  2026-01-19 19:23     ` Harry Wentland
@ 2026-01-19 19:48       ` Mario Limonciello
  0 siblings, 0 replies; 6+ messages in thread
From: Mario Limonciello @ 2026-01-19 19:48 UTC (permalink / raw)
  To: Harry Wentland, Timur Kristóf, amd-gfx, Alexander.Deucher,
	Ivan Lipski
  Cc: Matthew Schwartz



On 1/19/2026 1:23 PM, Harry Wentland wrote:
> 
> 
> On 2026-01-19 14:06, Timur Kristóf wrote:
>> On Monday, January 19, 2026 6:21:40 PM Central European Standard Time Harry
>> Wentland wrote:
>>> On 2026-01-18 08:03, Timur Kristóf wrote:
>>>> Analog connectors may be hot-plugged unlike other connector
>>>> types that don't support HPD.
>>>>
>>>> Stop DRM from polling other connector types that don't
>>>> support HPD, such as eDP, LVDS, etc. These were wrongly
>>>> polled when analog connector support was added,
>>>> causing issues with the seamless boot process.
>>>>
>>>> Fixes: c4f3f114e73c ("drm/amd/display: Poll analog connectors (v3)")
>>>> Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
>>>> Reported-by: Matthew Schwartz <matthew.schwartz@linux.dev>
>>>> ---
>>>>
>>>>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c | 10 ++++++++--
>>>>   1 file changed, 8 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
>>>> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c index
>>>> 0a2a3f233a0e..e7b0928bd3db 100644
>>>> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
>>>> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
>>>> @@ -915,13 +915,19 @@ void amdgpu_dm_hpd_init(struct amdgpu_device *adev)
>>>>
>>>>   		struct amdgpu_dm_connector *amdgpu_dm_connector;
>>>>   		const struct dc_link *dc_link;
>>>>
>>>> -		use_polling |= connector->polled !=
>> DRM_CONNECTOR_POLL_HPD;
>>>> -
>>>>
>>>>   		if (connector->connector_type ==
>> DRM_MODE_CONNECTOR_WRITEBACK)
>>>>   		
>>>>   			continue;
>>>>   		
>>>>   		amdgpu_dm_connector =
>> to_amdgpu_dm_connector(connector);
>>>>
>>>> +		/*
>>>> +		 * Analog connectors may be hot-plugged unlike other
>> connector
>>>> +		 * types that don't support HPD. Only poll analog
>> connectors.
>>>> +		 */
>>>> +		use_polling |=
>>>> +			amdgpu_dm_connector->dc_link &&
>>>> +			
>> dc_connector_supports_analog(amdgpu_dm_connector->dc_link->link_id.id)
>>>> ;
>>>
>>> Why isn't the aconnector->base.polled assignment in
>>> amdgpu_dm_connector_init_helper doing the trick?
>>>
>>> Harry
>>
>> Hi Harry,
>>
>> The issue is that checking "connector->polled != DRM_CONNECTOR_POLL_HPD" will
>> also match connectors that don't support hotplugging, such as eDP, LVDS etc.
>>
>> amdgpu_dm_connector_init_helper is working correctly, it doesn't set the
>> DRM_CONNECTOR_POLL_HPD flag for neither analog connectors, nor eDP, LVDS, etc.
>> which is correct. The problem is with this check in amdgpu_dm_hpd_init.
>>
> 
> Ah, you're right.
> 
> Reviewed-by: Harry Wentland <harry.wentland@amd.com>
> 
> Harry
> 

applied to amd-staging-drm-next.

>> Best regards,
>> Timur
>>
>>>
>>>> +
>>>>
>>>>   		dc_link = amdgpu_dm_connector->dc_link;
>>>>   		
>>>>   		/*
>>
>>
>>
>>
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-01-19 19:48 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-18 13:03 [PATCH] drm/amd/display: Only poll analog connectors Timur Kristóf
2026-01-19 16:46 ` Mario Limonciello (AMD) (kernel.org)
2026-01-19 17:21 ` Harry Wentland
2026-01-19 19:06   ` Timur Kristóf
2026-01-19 19:23     ` Harry Wentland
2026-01-19 19:48       ` Mario Limonciello

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox