snd_hda UAA patch second preview
Alexander Motin
mav at FreeBSD.org
Tue Aug 26 20:41:22 UTC 2008
Vladimir Grebenschikov wrote:
>>> hdac0: hdac_command_send_internal: TIMEOUT numcmd=1, sent=1, received=0
>>> hdac0: hdac_command_send_internal: TIMEOUT numcmd=1, sent=1, received=0
>>> hdac0: <HDA Codec #0: Analog Devices AD1981HD>
>>> hdac0: <HDA Codec #1: Unknown Codec>
>>> pcm0: <HDA codec Analog Devices AD1981HD PCM #0> on hdac0
>>> pcm1: <HDA codec Analog Devices AD1981HD PCM #1> on hdac0
> ...
> hdac0: hdac_command_send_internal: TIMEOUT numcmd=1, sent=1, received=0
> hdac0: Found unknown FG nid=304
> hdac0: hdac_command_send_internal: TIMEOUT numcmd=1, sent=1, received=0
> hdac0: Found unknown FG nid=305
> hdac0: hdac_command_send_internal: TIMEOUT numcmd=1, sent=1, received=0
> hdac0: Found unknown FG nid=306
> hdac0: hdac_command_send_internal: TIMEOUT numcmd=1, sent=1, received=0
> hdac0: Found unknown FG nid=307
> ...
> hdac0: hdac_command_send_internal: TIMEOUT numcmd=1, sent=1, received=0
> hdac0: Found unknown FG nid=509
> hdac0: <HDA Codec #0: Analog Devices AD1981HD>
> hdac0: <HDA Codec ID: 0x11d41981>
> ...
After closer look I think that problem is, as I have said, in second
codec detected in your system, but not responding. I have just uploaded
new patch that also should skip such non-responding codecs after two
first unsuccessfull requests.
> hdac0: Playback:
> hdac0:
> hdac0: nid=5 [pin: Line-out (Both)]
> hdac0: |
> hdac0: + <- nid=3 [audio output] [src: pcm]
> hdac0: + <- nid=14 [audio mixer] [src: mix]
> hdac0:
> hdac0: nid=10 [pin: SPDIF-out (Jack)]
> hdac0: |
> hdac0: + <- nid=2 [audio output] [src: pcm]
>
> Looks like second pcm is related to SPDIF-out, I have such jack on dock
> station. (Actually I have IBM/Lenovo T60 with dock)
Indeed.
>>> # mixer
>>> Mixer vol is currently set to 100:100
>>> Mixer pcm is currently set to 75:75
>>> Mixer cd is currently set to 62:62
>>> Mixer rec is currently set to 70:70
>>> Mixer ogain is currently set to 100:100
>>> Mixer monitor is currently set to 45:45
>>> Recording source:
>>> # mixer -f /dev/mixer1
>>> Mixer vol is currently set to 75:75
>>> Mixer pcm is currently set to 75:75
>>> #
>>>
>>> Changing of mixer volumes for both mixer does not affects anything.
>>>
>>> any hints will be appreciated.
>> Some mixers may have low precision, even be mute-only. What exactly each
>> mixer does could be found from system boot verbose log messages
>>
>> Could you repeat your test and send me verbose output?
>
> Yes, there is a lot of output in with boot -v, I may get lost here:
>
> Looks like part related to mixers here:
>
> hdac0: +-----------------------------------+
> hdac0: | DUMPING HDA AUDIO/VOLUME CONTROLS |
> hdac0: +-----------------------------------+
> hdac0:
> hdac0: Master Volume (OSS: vol)
> hdac0: |
> hdac0: +- ctl 1 (nid 5 in 0): -91/3dB (64 steps) + mute
> hdac0:
> hdac0: PCM Volume (OSS: pcm)
> hdac0: |
> hdac0: +- ctl 1 (nid 5 in 0): -91/3dB (64 steps) + mute
> hdac0:
> hdac0: CD Volume (OSS: cd)
> hdac0: |
> hdac0: +- ctl 18 (nid 29 out): -34/12dB (32 steps) + mute
> hdac0:
> hdac0: Recording Level (OSS: rec)
> hdac0: |
> hdac0: +- ctl 12 (nid 21 out): 0/22dB (16 steps) + mute
> hdac0:
> hdac0: Unknown Ctl (OSS: monitor)
> hdac0: |
> hdac0: +- ctl 5 (nid 8 out): 0/30dB (4 steps)
> hdac0: +- ctl 10 (nid 18 out): -34/12dB (32 steps) + mute
> hdac0: +- ctl 19 (nid 30 out): mute
> hdac0:
>
> Same volume (not too loud on head-phones), while all below operations:
>
> $ mixer
> Mixer vol is currently set to 75:75
> Mixer pcm is currently set to 75:75
> Mixer cd is currently set to 75:75
> Mixer rec is currently set to 0:0
> Mixer ogain is currently set to 50:50
> Mixer monitor is currently set to 75:75
> Recording source:
> $ mixer vol 90
> Setting the mixer vol from 75:75 to 90:90.
> $ mixer vol 0
> Setting the mixer vol from 90:90 to 0:0.
> $ mixer vol 100
> Setting the mixer vol from 0:0 to 100:100.
> $ mixer pcm 100
> Setting the mixer pcm from 75:75 to 100:100.
> $ mixer pcm 0
> Setting the mixer pcm from 100:100 to 0:0.
> $ mixer monitor 0
> Setting the mixer monitor from 75:75 to 0:0.
> $ mixer monitor 75
> Setting the mixer monitor from 0:0 to 75:75.
> $ mixer ogain 0
> Setting the mixer ogain from 50:50 to 0:0.
> $ mixer ogain 100
> Setting the mixer ogain from 0:0 to 100:100.
> $ mixer ogain 0
> Setting the mixer ogain from 100:100 to 0:0.
> $
>
> Nothing was changed with playback volume.
That's really unexpected to me. Output you've sent to me tells that pcm
and vol should both control volume.
> Another question, I have speaker connected to sound-card also, and it
> has too high volume when terminal beeps.
>
> Is there a way to change volume of these beeps ?
After reading datasheet I think that the codec you have (AD1981HD) is
the most unusual and unsuitable for automatic parser codec which I have
seen.
This codec may be configured in two ways - playback directly from DAC or
playback from mixer. My driver has no idea how to answer that question
and it just takes the first possible decision.
As I can see from logs it was to get playback signal directly from DAC.
But in this case I don't understand how can you still hear the beeps as
they are going via the mixer. The only idea I have is that codec has
some audio paths I don't know about.
> Old and new pcm drivers verbose dmesg attached. (sorry too lond new
> messages cuts at beginning)
In new patch version I have made some improvements that may give you
beeper volume control. Test it please and send me new dmesg output.
--
Alexander Motin
More information about the freebsd-multimedia
mailing list