[alsa-devel] HDMI LPCM (7.1) with AMD/FGLRX

Andrée 'Glaucous' glakke1 at gmail.com
Mon Aug 8 12:22:26 CEST 2011


Turns out hda-verb is somewhat "out of my league".
This is what I came up with, but I'm not sure what PARAMETER I should use in
order to get something useful, I'm actually not sure
if it's the correct nid either. If you could point me (even more) in the
correct direction that'd be good, so that I can confirm it.

# hda-verb /dev/snd/hwC2D0 0x0 GET_PIN_SENSE VENDOR_ID

It seems odd that the driver isn't sending monitor_present true, since it
very much is present, and used. Then again fglrx aren't the nicest
drivers to work with.

On 8 August 2011 11:52, Takashi Iwai <tiwai at suse.de> wrote:

> At Mon, 8 Aug 2011 11:32:43 +0200,
> Andrée 'Glaucous' wrote:
> >
> > >>
> > /proc/asound/Generic/codec#0
> >
> > Codec: ATI R6xx HDMI
> > Address: 0
> > AFG Function Id: 0x1 (unsol 0)
> > Vendor Id: 0x1002aa01
> > Subsystem Id: 0x00aa0100
> > Revision Id: 0x100200
> > No Modem Function Group found
> > Default PCM:
> >     rates [0x70]: 32000 44100 48000
> >     bits [0x2]: 16
> >     formats [0x5]: PCM AC3
> > Default Amp-In caps: N/A
> > Default Amp-Out caps: N/A
> > GPIO: io=0, o=0, i=0, unsolicited=0, wake=0
> > Node 0x02 [Audio Output] wcaps 0x201: Stereo Digital
> >   Control: name="IEC958 Playback Con Mask", index=0, device=0
> >   Control: name="IEC958 Playback Pro Mask", index=0, device=0
> >   Control: name="IEC958 Playback Default", index=0, device=0
> >   Control: name="IEC958 Playback Switch", index=0, device=0
> >   Device: name="HDMI 0", type="HDMI", device=3
> >   Converter: stream=1, channel=0
> >   Digital: Enabled
> >   Digital category: 0x0
> > Node 0x03 [Pin Complex] wcaps 0x400381: Stereo Digital
> >   Pincap 0x00000094: OUT Detect HDMI
> >   Pin Default 0x18560010: [Jack] Digital Out at Int HDMI
> >     Conn = Digital, Color = Unknown
> >     DefAssociation = 0x1, Sequence = 0x0
> >   Pin-ctls: 0x40: OUT
> >   Unsolicited: tag=03, enabled=1
> >   Connection: 1
> >      0x02
> > <<
> >
> > Since it's R6xx, it should be processed by patch_generic_hdmi().
> >
> > >>
> > patch_hdmi.c
> > ..
> >
> > id = 0x1002aa01, .name = "R6xx HDMI", .patch = patch_generic_hdmi
> > <<
> >
> > Although this might not be proof enough, how best would I debug and
> > check if it's using patch_generic_hdmi?
>
> Don't worry, if it has ELD file, it alone means it's generic-HDMI
> parser.
>
>
> > I also checked the ELD, while outputting video to HDMI (to make sure
> > it's enabled) to the screen.
> >
> > (Generic is symlink to card2)
> > >>
> > /proc/asound/Generic/eld#0.0
> >
> > monitor_present               0
> > eld_valid             1
> > monitor_name
> > connection_type               HDMI
> > eld_version           [0x0] reserved
> > edid_version          [0x0] no CEA EDID Timing Extension block present
> > manufacture_id                0x0
> > product_id            0x0
> > port_id                       0x0
> > support_hdcp          0
> > support_ai            0
> > audio_sync_delay      0
> > speakers              [0x0]
> > sad_count             0
> > <<
> >
> > It seems to think that it's valid at least, but I doesn't seem to
> > output any information about it (speaker count etc).
>
> The monitor isn't present, so it seems that it didn't get ELD info.
> The information is taken from the pin-sense verb, so you can even get
> it externally via hda-verb for confirming whether the information is
> correct or not.
>
>
> Takashi
>


More information about the Alsa-devel mailing list