Patch "drm/radeon: Fix spurious unplug event on radeon HDMI" has been added to the 6.12-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/radeon: Fix spurious unplug event on radeon HDMI

to the 6.12-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-radeon-fix-spurious-unplug-event-on-radeon-hdmi.patch
and it can be found in the queue-6.12 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit f50b3ca2b45f3abe039d60da8c4af67bd6bbccb7
Author: Steven 'Steve' Kendall <skend@xxxxxxxxxxxx>
Date:   Fri Nov 15 21:17:58 2024 +0000

    drm/radeon: Fix spurious unplug event on radeon HDMI
    
    [ Upstream commit 7037bb04265ef05c6ffad56d884b0df76f57b095 ]
    
    On several HP models (tested on HP 3125 and HP Probook 455 G2),
    spurious unplug events are emitted upon login on Chrome OS.
    This is likely due to the way Chrome OS restarts graphics
    upon login, so it's possible it's an issue on other
    distributions but not as common, though I haven't
    reproduced the issue elsewhere.
    Use logic from an earlier version of the merged change
    (see link below) which iterates over connectors and finds
    matching encoders, rather than the other way around.
    Also fixes an issue with screen mirroring on Chrome OS.
    I've deployed this patch on Fedora and did not observe
    any regression on these devices.
    
    Link: https://gitlab.freedesktop.org/drm/amd/-/issues/1569#note_1603002
    Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3771
    Fixes: 20ea34710f7b ("drm/radeon: Add HD-audio component notifier support (v6)")
    Signed-off-by: Steven 'Steve' Kendall <skend@xxxxxxxxxxxx>
    Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/radeon/radeon_audio.c b/drivers/gpu/drm/radeon/radeon_audio.c
index 47aa06a9a9422..5b69cc8011b42 100644
--- a/drivers/gpu/drm/radeon/radeon_audio.c
+++ b/drivers/gpu/drm/radeon/radeon_audio.c
@@ -760,16 +760,20 @@ static int radeon_audio_component_get_eld(struct device *kdev, int port,
 	if (!rdev->audio.enabled || !rdev->mode_info.mode_config_initialized)
 		return 0;
 
-	list_for_each_entry(encoder, &rdev_to_drm(rdev)->mode_config.encoder_list, head) {
+	list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
+		const struct drm_connector_helper_funcs *connector_funcs =
+				connector->helper_private;
+		encoder = connector_funcs->best_encoder(connector);
+
+		if (!encoder)
+			continue;
+
 		if (!radeon_encoder_is_digital(encoder))
 			continue;
 		radeon_encoder = to_radeon_encoder(encoder);
 		dig = radeon_encoder->enc_priv;
 		if (!dig->pin || dig->pin->id != port)
 			continue;
-		connector = radeon_get_connector_for_encoder(encoder);
-		if (!connector)
-			continue;
 		*enabled = true;
 		ret = drm_eld_size(connector->eld);
 		memcpy(buf, connector->eld, min(max_bytes, ret));




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux