Created attachment 304043 [details] before turning off the screen hdmi device 3 and device 7 swapping after screen restore card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [PHL275E9] Subdevices: 0/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [2481W] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [2481W] Subdevices: 0/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [PHL275E9] Subdevices: 1/1 Subdevice #0: subdevice #0
Created attachment 304044 [details] after waking up the screen
Did this work in earlier kernel? Which one? 6.0? Or even earlier 6.1.y versions?
(In reply to The Linux kernel's regression tracker (Thorsten Leemhuis) from comment #2) > Did this work in earlier kernel? Which one? 6.0? Or even earlier 6.1.y > versions? 6.0.12-arch1-1 has sound, and 6.1.0-arch1-1 has no sound
(In reply to viqbgrg from comment #0) > Created attachment 304043 [details] > before turning off the screen > > hdmi device 3 and device 7 swapping after screen restore > > card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [PHL275E9] > Subdevices: 0/1 > Subdevice #0: subdevice #0 > card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [2481W] > Subdevices: 1/1 > Subdevice #0: subdevice #0 > > > > card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [2481W] > Subdevices: 0/1 > Subdevice #0: subdevice #0 > card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [PHL275E9] > Subdevices: 1/1 > Subdevice #0: subdevice #0 The graphics driver likely turns the audio device off at the screen off for power-saving or such. The HDMI device assignment is dynamic, per design, hence this kind of change may happen. IOW, this is still seen as the designed behavior.
So the question is what kind of sound backend you're using. PulseAudio or pipewire should be able to parse the HDMI device state on the fly.
(In reply to Takashi Iwai from comment #5) > So the question is what kind of sound backend you're using. PulseAudio or > pipewire should be able to parse the HDMI device state on the fly. The pipewire I use, the pipewire does not switch automatically
Could you run "alsactl monitor" and check whether the Jack events are sent/handled when the device swap happens? Also try "amixer -c0 events" for the same, too.
Also, when you re-select the right output, it starts working again, right? That is, the problem is only the swap of devices?
(In reply to Takashi Iwai from comment #8) > Also, when you re-select the right output, it starts working again, right? > That is, the problem is only the swap of devices? Yes, it works normally after I choose the correct device, do I need to install pipewire-jack? Another question is how does pipewire distinguish the difference between these two devices? Both device and node name have been exchanged.
OK, if it's only about the device assignment, a patch like below might help.
Created attachment 304057 [details] Test fix
(In reply to Takashi Iwai from comment #11) > Created attachment 304057 [details] > Test fix This patch works, thank you