Repository navigation
[BUG]TGL] No HDMI/DP Jack detection item in amixer contents after reboot without HDMI&DP connected #1847
Description
Describe the bug
No HDMI/DP Jack detection item in amixer contents after reboot without HDMI&DP connected
Plugin HDMI&DP,then reboot can recovery
To Reproduce
1.Unplug power supply to power off
2.Plug in power supply to power on without HDMI/DP connected
3.amixer contents to check HDMI/DP jack detection
Reproduction Rate
Tried 5times,reproduced 5times
Expected behavior
"amixer contents" can check the status of HDMI/DP jack detection
Actual result
No HDMI/DP jack detection item in amixer contents,but "aplay -l" display normal
amixercontents_pass
numid=8,iface=CARD,name='HDMI/DP,pcm=3 Jack'
; type=BOOLEAN,access=r-------,values=1
: values=on
numid=14,iface=CARD,name='HDMI/DP,pcm=4 Jack'
; type=BOOLEAN,access=r-------,values=1
: values=off
numid=20,iface=CARD,name='HDMI/DP,pcm=5 Jack'
; type=BOOLEAN,access=r-------,values=1
: values=off
numid=7,iface=CARD,name='Headphone Jack'
; type=BOOLEAN,access=r-------,values=1
: values=on
numid=6,iface=CARD,name='Mic Jack'
; type=BOOLEAN,access=r-------,values=1
: values=on
numid=2,iface=MIXER,name='Master Playback Switch'
; type=BOOLEAN,access=rw------,values=2
: values=on,on
numid=1,iface=MIXER,name='Master Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=87,step=0
: values=75,75
| dBscale-min=-65.25dB,step=0.75dB,mute=0
numid=5,iface=MIXER,name='Mic Boost Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=3,step=0
: values=1,1
| dBscale-min=0.00dB,step=10.00dB,mute=0
numid=4,iface=MIXER,name='Capture Switch'
; type=BOOLEAN,access=rw------,values=2
: values=on,on
numid=3,iface=MIXER,name='Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=63,step=0
: values=63,63
| dBscale-min=-17.25dB,step=0.75dB,mute=0
numid=9,iface=MIXER,name='IEC958 Playback Con Mask'
; type=IEC958,access=r-------,values=1
: values=[AES0=0x0f AES1=0xff AES2=0x00 AES3=0x00]
numid=15,iface=MIXER,name='IEC958 Playback Con Mask',index=1
; type=IEC958,access=r-------,values=1
: values=[AES0=0x0f AES1=0xff AES2=0x00 AES3=0x00]
numid=21,iface=MIXER,name='IEC958 Playback Con Mask',index=2
; type=IEC958,access=r-------,values=1
: values=[AES0=0x0f AES1=0xff AES2=0x00 AES3=0x00]
numid=10,iface=MIXER,name='IEC958 Playback Pro Mask'
; type=IEC958,access=r-------,values=1
: values=[AES0=0x0f AES1=0x00 AES2=0x00 AES3=0x00]
numid=16,iface=MIXER,name='IEC958 Playback Pro Mask',index=1
; type=IEC958,access=r-------,values=1
: values=[AES0=0x0f AES1=0x00 AES2=0x00 AES3=0x00]
numid=22,iface=MIXER,name='IEC958 Playback Pro Mask',index=2
; type=IEC958,access=r-------,values=1
: values=[AES0=0x0f AES1=0x00 AES2=0x00 AES3=0x00]
numid=11,iface=MIXER,name='IEC958 Playback Default'
; type=IEC958,access=rw------,values=1
: values=[AES0=0x04 AES1=0x00 AES2=0x00 AES3=0x00]
numid=17,iface=MIXER,name='IEC958 Playback Default',index=1
; type=IEC958,access=rw------,values=1
: values=[AES0=0x04 AES1=0x00 AES2=0x00 AES3=0x00]
numid=23,iface=MIXER,name='IEC958 Playback Default',index=2
; type=IEC958,access=rw------,values=1
: values=[AES0=0x04 AES1=0x00 AES2=0x00 AES3=0x00]
numid=12,iface=MIXER,name='IEC958 Playback Switch'
; type=BOOLEAN,access=rw------,values=1
: values=off
numid=18,iface=MIXER,name='IEC958 Playback Switch',index=1
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=24,iface=MIXER,name='IEC958 Playback Switch',index=2
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=39,iface=MIXER,name='Dmic0 Capture Switch'
; type=BOOLEAN,access=rw------,values=2
: values=on,on
numid=38,iface=MIXER,name='Dmic0 Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=70,step=0
: values=70,70
| dBscale-min=-50.00dB,step=1.00dB,mute=1
numid=41,iface=MIXER,name='Dmic1 Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=70,step=0
: values=70,70
| dBscale-min=-50.00dB,step=1.00dB,mute=1
numid=40,iface=MIXER,name='EQIIR10.0 EQIIR_C48'
; type=BYTES,access=-----RW-,values=304
; ASoC TLV Byte control, skipping bytes dump
numid=42,iface=MIXER,name='EQIIR11.0 EQIIR_C16'
; type=BYTES,access=-----RW-,values=304
; ASoC TLV Byte control, skipping bytes dump
numid=31,iface=MIXER,name='EQIIR2.0 eqiir_bytes_2'
; type=BYTES,access=-----RW-,values=304
; ASoC TLV Byte control, skipping bytes dump
numid=34,iface=MIXER,name='EQIIR4.0 eqiir_bytes_4'
; type=BYTES,access=-----RW-,values=304
; ASoC TLV Byte control, skipping bytes dump
numid=29,iface=MIXER,name='PGA1.0 1 Master Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=32,step=0
: values=32,32
| dBscale-min=-64.00dB,step=2.00dB,mute=1
numid=30,iface=MIXER,name='PGA2.0 2 Master Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=80,step=0
: values=80,80
| dBscale-min=-50.00dB,step=1.00dB,mute=1
numid=32,iface=MIXER,name='PGA3.0 3 Master Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=32,step=0
: values=31,31
| dBscale-min=-64.00dB,step=2.00dB,mute=1
numid=33,iface=MIXER,name='PGA4.0 4 Master Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=80,step=0
: values=50,50
| dBscale-min=-50.00dB,step=1.00dB,mute=1
numid=35,iface=MIXER,name='PGA7.0 7 Master Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=32,step=0
: values=31,31
| dBscale-min=-64.00dB,step=2.00dB,mute=1
numid=36,iface=MIXER,name='PGA8.0 8 Master Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=32,step=0
: values=32,32
| dBscale-min=-64.00dB,step=2.00dB,mute=1
numid=37,iface=MIXER,name='PGA9.0 9 Master Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=32,step=0
: values=32,32
| dBscale-min=-64.00dB,step=2.00dB,mute=1
numid=13,iface=PCM,name='ELD',device=3
; type=BYTES,access=r--v----,values=28
: values=0x10,0x00,0x06,0x00,0x65,0x14,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x69,0xb1,0x24,0x50,0x41,0x32,0x34,0x38,0x09,0x07,0x07
numid=26,iface=PCM,name='Playback Channel Map',device=3
; type=INTEGER,access=rw---R--,values=8,min=0,max=36,step=0
: values=0,0,0,0,0,0,0,0
| container
| chmap-variable=FL,FR
numid=19,iface=PCM,name='ELD',device=4
; type=BYTES,access=r--v----,values=0
: values=
numid=27,iface=PCM,name='Playback Channel Map',device=4
; type=INTEGER,access=rw---R--,values=8,min=0,max=36,step=0
: values=0,0,0,0,0,0,0,0
| container
| chmap-variable=FL,FR
numid=25,iface=PCM,name='ELD',device=5
; type=BYTES,access=r--v----,values=0
: values=
numid=28,iface=PCM,name='Playback Channel Map',device=5
; type=INTEGER,access=rw---R--,values=8,min=0,max=36,step=0
: values=0,0,0,0,0,0,0,0
| container
| chmap-variable=FL,FR
amixercontents_fail
numid=7,iface=CARD,name='Headphone Jack'
; type=BOOLEAN,access=r-------,values=1
: values=on
numid=6,iface=CARD,name='Mic Jack'
; type=BOOLEAN,access=r-------,values=1
: values=on
numid=2,iface=MIXER,name='Master Playback Switch'
; type=BOOLEAN,access=rw------,values=2
: values=on,on
numid=1,iface=MIXER,name='Master Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=87,step=0
: values=74,74
| dBscale-min=-65.25dB,step=0.75dB,mute=0
numid=5,iface=MIXER,name='Mic Boost Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=3,step=0
: values=1,1
| dBscale-min=0.00dB,step=10.00dB,mute=0
numid=4,iface=MIXER,name='Capture Switch'
; type=BOOLEAN,access=rw------,values=2
: values=on,on
numid=3,iface=MIXER,name='Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=63,step=0
: values=63,63
| dBscale-min=-17.25dB,step=0.75dB,mute=0
numid=18,iface=MIXER,name='Dmic0 Capture Switch'
; type=BOOLEAN,access=rw------,values=2
: values=on,on
numid=17,iface=MIXER,name='Dmic0 Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=70,step=0
: values=70,70
| dBscale-min=-50.00dB,step=1.00dB,mute=1
numid=20,iface=MIXER,name='Dmic1 Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=70,step=0
: values=70,70
| dBscale-min=-50.00dB,step=1.00dB,mute=1
numid=19,iface=MIXER,name='EQIIR10.0 EQIIR_C48'
; type=BYTES,access=-----RW-,values=304
; ASoC TLV Byte control, skipping bytes dump
numid=21,iface=MIXER,name='EQIIR11.0 EQIIR_C16'
; type=BYTES,access=-----RW-,values=304
; ASoC TLV Byte control, skipping bytes dump
numid=10,iface=MIXER,name='EQIIR2.0 eqiir_bytes_2'
; type=BYTES,access=-----RW-,values=304
; ASoC TLV Byte control, skipping bytes dump
numid=13,iface=MIXER,name='EQIIR4.0 eqiir_bytes_4'
; type=BYTES,access=-----RW-,values=304
; ASoC TLV Byte control, skipping bytes dump
numid=8,iface=MIXER,name='PGA1.0 1 Master Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=32,step=0
: values=32,32
| dBscale-min=-64.00dB,step=2.00dB,mute=1
numid=9,iface=MIXER,name='PGA2.0 2 Master Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=80,step=0
: values=80,80
| dBscale-min=-50.00dB,step=1.00dB,mute=1
numid=11,iface=MIXER,name='PGA3.0 3 Master Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=32,step=0
: values=31,31
| dBscale-min=-64.00dB,step=2.00dB,mute=1
numid=12,iface=MIXER,name='PGA4.0 4 Master Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=80,step=0
: values=50,50
| dBscale-min=-50.00dB,step=1.00dB,mute=1
numid=14,iface=MIXER,name='PGA7.0 7 Master Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=32,step=0
: values=31,31
| dBscale-min=-64.00dB,step=2.00dB,mute=1
numid=15,iface=MIXER,name='PGA8.0 8 Master Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=32,step=0
: values=32,32
| dBscale-min=-64.00dB,step=2.00dB,mute=1
numid=16,iface=MIXER,name='PGA9.0 9 Master Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=32,step=0
: values=32,32
| dBscale-min=-64.00dB,step=2.00dB,mute=1
At this time if aplay via HDMI/DP, A error of "Unable to install hw params" occured,
Platform: TGL-U RVP with onboard codec ALC711 in HDA mode
Firmware:c3db256a https://github.com/thesofproject/sof/commits/master
Kernel: 30887e1 https://github.com/thesofproject/linux/commits/topic/sof-dev
Topology: file: tools/topology/ sof-hda-generic-4ch.tplg same as firmware
Activity
[-][BUG]TGL] No HDMI/DP Jack detection item in amixer contents After unplug HDMI&DP in shutdown mode[/-][+][BUG]TGL] No HDMI/DP Jack detection item in amixer contents After Unplug/plugin power supply to power on without HDMI&DP connected[/+][-][BUG]TGL] No HDMI/DP Jack detection item in amixer contents After Unplug/plugin power supply to power on without HDMI&DP connected[/-][+][BUG]TGL] No HDMI/DP Jack detection item in amixer contents after reboot without HDMI&DP connected[/+]Liviali155 commentedon Mar 3, 2020
drmlog as attachment
drm.log
kv2019i commentedon Mar 3, 2020
@Liviali155 @mengdonglin This is a probably a new case of HDMI codec probe failing. With recent patches to support systems without i915, HDMI probe errors will not block SOF probe completely, but HDMI functionality will be disabled.
The dmesg logs you provide do not cover the probe part, so I cannot confirm the finding, but you should see something like:
kernel: [ 14.365535] sof-audio-pci 0000:00:1f.3: codec #2 probe error, ret: -5
kv2019i commentedon Mar 3, 2020
@Liviali155 I could reproduce this at least once on my system. Key things to hit:
This would seem like a regression as I can not reproduce this at all with sof-dev commit af7aae1
I'll try bisecting the problem.
Liviali155 commentedon Mar 3, 2020
Yes ,on my side,if enable drm logs,I tried 10times,but only reproduced once
if disable drm logs.can reproduce every time
kv2019i commentedon Mar 3, 2020
Ok, I managed to bisect the issue. It unfortunately seems to be this commit I made to i915:
f4b1889 drm/i915: Limit audio CDCLK>=2*BCLK constraint back to GLK only
The trouble is that without this patch, we get flicker during boot:
https://gitlab.freedesktop.org/drm/intel/issues/913
So now we have two showstopper issues, either we get the flicker, or we get HDMI probe errors on some platforms. The problem was discussed while fixing #1763, but no better solution was found. That discussion needs to be reopened now. I'll start investigating the options again.
kv2019i commentedon Mar 13, 2020
Solution discussed on intel-gfx: https://lists.freedesktop.org/archives/intel-gfx/2020-March/232621.html
My proposal patchset:
https://lists.freedesktop.org/archives/intel-gfx/2020-March/233457.html
kv2019i commentedon Mar 17, 2020
We have a couple of candidate fixes, but so far the solutions have come with notable downsides, so we have continued exploring options. Here's one fix that seems to help without require increase of clocks.
@Liviali155 Could you give tihs a try. In my local tests, this systematically helps to the probe errors:
#1901
Liviali155 commentedon Mar 18, 2020
Tried with PR#1901,error not seen
drm/i915: use forced codec wake on all gen9+ platforms
36 remaining items
drm/i915: use forced codec wake on all gen9+ platforms
drm/i915: use forced codec wake on all gen9+ platforms
drm/i915: use forced codec wake on all gen9+ platforms
drm/i915: use forced codec wake on all gen9+ platforms
drm/i915: use forced codec wake on all gen9+ platforms
drm/i915: use forced codec wake on all gen9+ platforms
drm/i915: use forced codec wake on all gen9+ platforms
drm/i915: use forced codec wake on all gen9+ platforms
drm/i915: use forced codec wake on all gen9+ platforms
FROMGIT: drm/i915: use forced codec wake on all gen9+ platforms
FROMGIT: drm/i915: use forced codec wake on all gen9+ platforms
FROMGIT: drm/i915: use forced codec wake on all gen9+ platforms
FROMGIT: drm/i915: use forced codec wake on all gen9+ platforms
drm/i915: use forced codec wake on all gen9+ platforms
drm/i915: use forced codec wake on all gen9+ platforms