[Intel-gfx] [PATCH v5] drm/i915: pass ELD to HDMI/DP audio driver
Sander Jansen
s.jansen at gmail.com
Wed Nov 2 07:10:44 CET 2011
On Tue, Nov 1, 2011 at 8:45 PM, Wu Fengguang <fengguang.wu at intel.com> wrote:
> Hi Christopher,
>
>> The log does confirm that the drm_edid_to_eld function is running, and
>> that we're not far from a solution:
>> [ 21.061417] [drm:drm_edid_to_eld], ELD monitor TX-SR607
>> [ 21.061421] [drm:drm_edid_to_eld], ELD size 13, SAD count 8
>
> It looks all sane to this point.
>
>> As for where I am getting the EDID dump from, I am getting it from
>> /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-2/edid,
>> which provides direct virtual access to the EDID response of the
>> connected device.
>>
>> I'm completely confident that the device doesn't report too small of a
>> buffer size, and that it's completely compliant with the spec: If you
>
> Agreed.
>
>> have a Windows virtual machine (or if you're masochistic enough - a real
>> machine) you should download the excellent, free "Monitor Asset Manager"
>> by EnTech Taiwan from http://www.entechtaiwan.com/util/moninfo.shtm. It
>> will let you analyze EDID + ELD + extended timings, etc from an EDID
>> dump, such as the one taken above. It understands every part of EDID.
>>
>> I've put together a small archive containing my exact EDID binary dump
>> (taken from the above device path), the FULL dmesg log, as well as
>> EnTech's interpretation of the EDID dump, showing the full list of
>> supported channels, formats, etc.
>>
>> I'm guessing there is some tiny bug in your interpretation of how to
>> read ELD, maybe an incorrect 1 byte offset or something like that.
>>
>> Here's the pack:
>> http://www.pulseforce.com/node/edid_to_eld.zip
>
> Thanks! It's great tool and information!
>
>> If you do a hex analysis of my EDID dump and compare it to what the
>> edid_to_eld function is trying to do, it will probably show what's
>> wrong. I'd love to have a look at that myself but am really busy with a
>> project over here so I can't help out other than to recompile and test
>> as fast as I can.
>
> Would you install the "intel-gpu-tools" package and run its
> intel_audio_dump utility? If not shipped with your distribution, the
> source code is also available in
>
> git://anongit.freedesktop.org/git/xorg/app/intel-gpu-tools
>
> You'll need to install packages "autotools-dev pkg-config
> libpciaccess-dev libdrm-dev libdrm-intel1" in order to build it from
> source.
>
> intel_audio_dump will dump the ELD data in the hardware buffer for use
> by the audio driver. By verifying if that data is correct, we are able
> to analyze whether and how the audio driver goes wrong.
>
I think I experience similar issues. In my case the multi-channel pcm
playback through HDMI doesn't work. Stereo and passthrough seem to
work fine though !? It's hookedup to my TV via a yamaha receiver.
I'm currently running Linux 3.1 with a G45 chipset.
libdrm 2.4.27-1
xf86-video-intel 2.16.0-1
The eld seems be incorrectly parsed, though the kernel log didn't give
much info. The eld info from alsa is rather empty:
cat /proc/asound/Intel/eld#3.0
monitor_present 1
eld_valid 0
Using the same Monitor Asset Manager I was able to verify that the edid from
(/sys/devices/pci0000\:00/0000\:00\:02.0/drm/card0/card0-HDMI-A-1/edid
) does seem to contain the correct information.
I've attached both the edid and the output of Monitor Asset Manager.In
addition I also run the intel_audio_dump.
Let me know if you need anymore information.
Cheers,
Sander
PS. Hope the attachments are not too big.
-------------- next part --------------
Monitor
Model name............... SAMSUNG
Manufacturer............. Samsung
Plug and Play ID......... SAM050D
Serial number............ 1
Manufacture date......... 2008, ISO week 48
Filter driver............ None
-------------------------
EDID revision............ 1.3
Input signal type........ Digital
Color bit depth.......... Undefined
Display type............. RGB color
Screen size.............. 160 x 90 mm (7.2 in)
Power management......... Not supported
Extension blocs.......... 1 (CEA-EXT)
-------------------------
DDC/CI................... n/a
Color characteristics
Default color space...... Non-sRGB
Display gamma............ 2.20
Red chromaticity......... Rx 0.640 - Ry 0.330
Green chromaticity....... Gx 0.300 - Gy 0.600
Blue chromaticity........ Bx 0.150 - By 0.060
White point (default).... Wx 0.313 - Wy 0.329
Additional descriptors... None
Timing characteristics
Horizontal scan range.... 26-81kHz
Vertical scan range...... 24-75Hz
Video bandwidth.......... 150MHz
CVT standard............. Not supported
GTF standard............. Not supported
Additional descriptors... None
Preferred timing......... Yes
Native/preferred timing.. 1920x1080p at 60Hz (16:9)
Modeline............... "1920x1080" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
Detailed timing #1....... 1280x720p at 60Hz (16:9)
Modeline............... "1280x720" 74.250 1280 1390 1430 1650 720 725 730 750 +hsync +vsync
Standard timings supported
720 x 400p at 70Hz - IBM VGA
640 x 480p at 60Hz - IBM VGA
640 x 480p at 67Hz - Apple Mac II
640 x 480p at 72Hz - VESA
640 x 480p at 75Hz - VESA
800 x 600p at 60Hz - VESA
800 x 600p at 72Hz - VESA
800 x 600p at 75Hz - VESA
832 x 624p at 75Hz - Apple Mac II
1024 x 768p at 60Hz - VESA
1024 x 768p at 70Hz - VESA
1024 x 768p at 75Hz - VESA
1280 x 1024p at 75Hz - VESA
1152 x 870p at 75Hz - Apple Mac II
1152 x 864p at 75Hz - VESA STD
1280 x 800p at 60Hz - VESA STD
1280 x 960p at 60Hz - VESA STD
1280 x 1024p at 60Hz - VESA STD
1440 x 900p at 60Hz - VESA STD
1440 x 900p at 75Hz - VESA STD
1680 x 1050p at 60Hz - VESA STD
EIA/CEA-861 Information
Revision number.......... 3
IT underscan............. Supported
Basic audio.............. Supported
YCbCr 4:4:4.............. Supported
YCbCr 4:2:2.............. Supported
Native formats........... 4
Detailed timing #1....... 1920x1080i at 60Hz (16:9)
Modeline............... "1920x1080" 74.250 1920 2008 2052 2200 1080 1084 1094 1124 interlace +hsync +vsync
Detailed timing #2....... 720x480p at 60Hz (16:9)
Modeline............... "720x480" 27.000 720 736 798 858 480 489 495 525 -hsync -vsync
CE video identifiers (VICs) - timing/formats supported
1920 x 1080p at 60Hz - HDTV (16:9, 1:1) [Native]
1280 x 720p at 60Hz - HDTV (16:9, 1:1)
1920 x 1080i at 60Hz - HDTV (16:9, 1:1)
720 x 480p at 60Hz - EDTV (16:9, 32:27)
1920 x 1080p at 24Hz - HDTV (16:9, 1:1)
1920 x 1080p at 30Hz - HDTV (16:9, 1:1)
1440 x 480p at 60Hz - DVD (16:9, 16:27)
2880 x 480p at 60Hz - Console (16:9, 8:27)
NB: NTSC refresh rate = (Hz*1000)/1001
CE audio data (formats supported)
LPCM 2-channel, 16/20/24 bit depths at 32/44/48/88/96/176/192 kHz
LPCM 8-channel, 16/20/24 bit depths at 32/44/48/88/96/176/192 kHz
AC-3 6-channel, 640k max. bit rate at 32/44/48 kHz
DTS 7-channel, 1536k max. bit rate at 32/44/48/88/96 kHz
SACD 6-channel at 44 kHz
DD+ 8-channel at 44/48 kHz
DVD-A 8-channel at 48/96/192 kHz
DTS-HD 8-channel, 16-bit at 48/96/192 kHz
CE speaker allocation data
Channel configuration.... 7.1
Front left/right......... Yes
Front LFE................ Yes
Front center............. Yes
Rear left/right.......... Yes
Rear center.............. Yes
Front left/right center.. No
Rear left/right center... Yes
Rear LFE................. No
CE video capability data
CE scan behavior......... Supports overscan and underscan
IT scan behavior......... Supports overscan and underscan
PT scan behavior......... Not supported
RGB quantization range... Not supported
YCC quantization range... Not supported
CE colorimetry data
xvYCC709 support......... Yes
xvYCC601 support......... Yes
sYCC601 support.......... No
AdobeYCC601 support...... No
AdobeRGB support......... No
Metadata profile flags... 0x01
CE vendor specific data (VSDB)
IEEE registration number. 0x000C03
CEC physical address..... 1.1.0.0
Supports AI (ACP, ISRC).. Yes
Supports 48bpp........... No
Supports 36bpp........... Yes
Supports 30bpp........... Yes
Supports YCbCr 4:4:4..... Yes
Supports dual-link DVI... No
Maximum TMDS clock....... 225MHz
Audio/video latency (p).. n/a
Audio/video latency (i).. n/a
HDMI video capabilities.. No
Data payload............. 030C001100B82D00
Report information
Date generated........... 11/2/2011
Software revision........ 2.60.0.972
Data source.............. File
Operating system......... 5.1.2600.2.Service Pack 3 (Vista masked)
Raw data
00,FF,FF,FF,FF,FF,FF,00,4C,2D,0D,05,01,00,00,00,30,12,01,03,80,10,09,78,0A,EE,91,A3,54,4C,99,26,
0F,50,54,BD,EF,80,71,4F,81,00,81,40,81,80,95,00,95,0F,B3,00,01,01,02,3A,80,18,71,38,2D,40,58,2C,
45,00,A0,5A,00,00,00,1E,01,1D,00,72,51,D0,1E,20,6E,28,55,00,A0,5A,00,00,00,1E,00,00,00,FD,00,18,
4B,1A,51,0F,00,0A,20,20,20,20,20,20,00,00,00,FC,00,53,41,4D,53,55,4E,47,0A,20,20,20,20,20,01,A2,
02,03,3A,F4,48,90,04,05,03,20,22,0F,24,38,09,7F,07,0F,7F,07,15,07,50,3E,1F,C0,4D,02,00,57,06,00,
67,54,00,5F,54,01,83,5F,00,00,E2,00,0F,E3,05,03,01,68,03,0C,00,11,00,B8,2D,00,01,1D,80,18,71,1C,
16,20,58,2C,25,00,A0,5A,00,00,00,9E,8C,0A,D0,8A,20,E0,2D,10,10,3E,96,00,A0,5A,00,00,00,18,00,00,
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,6B
-------------- next part --------------
A non-text attachment was scrubbed...
Name: g45-samsung.edid
Type: application/octet-stream
Size: 256 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20111102/c2d7b9b7/attachment.obj>
-------------- next part --------------
VIDEO_DIP_CTL 0xa13b0000 Video DIP Control
SDVOB 0x00000adc Digital Display Port B Control Register
SDVOC 0x0000089c Digital Display Port C Control Register
PORT_HOTPLUG_EN 0x30000320 Hot Plug Detect Enable
AUD_CONFIG 0x00000004 Audio Configuration
AUD_DEBUG 0x00000000 Audio Debug
AUD_VID_DID 0x80862803 Audio Vendor ID / Device ID
AUD_RID 0x00100000 Audio Revision ID
AUD_SUBN_CNT 0x00010001 Audio Subordinate Node Count
AUD_FUNC_GRP 0x00000001 Audio Function Group Type
AUD_SUBN_CNT2 0x00020002 Audio Subordinate Node Count
AUD_GRP_CAP 0x00000004 Audio Function Group Capabilities
AUD_PWRST 0x00000000 Audio Power State
AUD_SUPPWR 0x00000009 Audio Supported Power States
AUD_SID 0x80860101 Audio Root Node Subsystem ID
AUD_OUT_CWCAP 0x00006211 Audio Output Converter Widget Capabilities
AUD_OUT_PCMSIZE 0x001e07f0 Audio PCM Size and Rates
AUD_OUT_STR 0x00000005 Audio Stream Formats
AUD_OUT_DIG_CNVT 0x00000001 Audio Digital Converter
AUD_OUT_CH_STR 0x00000000 Audio Channel ID and Stream ID
AUD_OUT_STR_DESC 0x00000032 Audio Stream Descriptor Format
AUD_PINW_CAP 0x004073bd Audio Pin Complex Widget Capabilities
AUD_PIN_CAP 0x00000094 Audio Pin Capabilities
AUD_PINW_CONNLNG 0x00000001 Audio Connection List Length
AUD_PINW_CONNLST 0x00000002 Audio Connection List Entry
AUD_PINW_CNTR 0x00000000 Audio Pin Widget Control
AUD_PINW_UNSOLRESP 0x80000003 Audio Unsolicited Response Enable
AUD_CNTL_ST 0x00002028 Audio Control State Register
AUD_PINW_CONFIG 0x18560010 Audio Configuration Default
AUD_HDMIW_STATUS 0x00000000 Audio HDMI Status
AUD_HDMIW_HDMIEDID 0x00000000 Audio HDMI Data EDID Block
AUD_HDMIW_INFOFR 0x00000000 Audio HDMI Widget Data Island Packet
AUD_CONV_CHCNT 0x00000077 Audio Converter Channel Count
AUD_CTS_ENABLE 0x00000000 Audio CTS Programming Enable
Details:
AUD_VID_DID vendor id 0x8086
AUD_VID_DID device id 0x2803
AUD_RID major revision 0x1
AUD_RID minor revision 0x0
AUD_RID revision id 0x0
AUD_RID stepping id 0x0
SDVOB enable 0
SDVOB HDMI encoding 1
SDVOB SDVO encoding 0
SDVOB null packets 1
SDVOB audio enabled 1
SDVOC enable 0
SDVOC HDMI encoding 1
SDVOC SDVO encoding 0
SDVOC null packets 0
SDVOC audio enabled 0
PORT_HOTPLUG_EN DisplayPort/HDMI port B 1
PORT_HOTPLUG_EN DisplayPort/HDMI port C 1
PORT_HOTPLUG_EN DisplayPort port D 0
PORT_HOTPLUG_EN SDVOB 0
PORT_HOTPLUG_EN SDVOC 0
PORT_HOTPLUG_EN audio 0
PORT_HOTPLUG_EN TV 0
PORT_HOTPLUG_EN CRT 1
VIDEO_DIP_CTL enable graphics DIP 1
VIDEO_DIP_CTL port select [0x1] Digital Port B
VIDEO_DIP_CTL DIP buffer trans active 0
VIDEO_DIP_CTL AVI DIP enabled 1
VIDEO_DIP_CTL vendor DIP enabled 0
VIDEO_DIP_CTL SPD DIP enabled 1
VIDEO_DIP_CTL DIP buffer index [0x3] Source Product Description DIP
VIDEO_DIP_CTL DIP trans freq [0x3] reserved
VIDEO_DIP_CTL DIP buffer size 0
VIDEO_DIP_CTL DIP address 0
AUD_CONFIG pixel clock [0x0] 25.2 / 1.001 MHz
AUD_CONFIG fabrication enabled 1
AUD_CONFIG professional use allowed 0
AUD_CONFIG fuse enabled 0
AUD_DEBUG function reset 0
AUD_SUBN_CNT starting node number 0x1
AUD_SUBN_CNT total number of nodes 0x1
AUD_SUBN_CNT2 starting node number 0x2
AUD_SUBN_CNT2 total number of nodes 0x2
AUD_FUNC_GRP unsol capable 0
AUD_FUNC_GRP node type 0x1
AUD_GRP_CAP beep 0 0
AUD_GRP_CAP input delay 0
AUD_GRP_CAP output delay 4
AUD_PWRST device power state D0
AUD_PWRST device power state setting D0
AUD_SUPPWR support D0 1
AUD_SUPPWR support D1 0
AUD_SUPPWR support D2 0
AUD_SUPPWR support D3 1
AUD_OUT_CWCAP widget type 0x0
AUD_OUT_CWCAP sample delay 0x0
AUD_OUT_CWCAP channel count 8
AUD_OUT_CWCAP L-R swap 0
AUD_OUT_CWCAP power control 0
AUD_OUT_CWCAP digital 1
AUD_OUT_CWCAP conn list 0
AUD_OUT_CWCAP unsol 0
AUD_OUT_CWCAP mute 0
AUD_OUT_CWCAP format override 1
AUD_OUT_CWCAP amp param override 0
AUD_OUT_CWCAP out amp present 0
AUD_OUT_CWCAP in amp present 0
AUD_OUT_DIG_CNVT SPDIF category 0x0
AUD_OUT_DIG_CNVT SPDIF level 0
AUD_OUT_DIG_CNVT professional 0
AUD_OUT_DIG_CNVT non PCM 0
AUD_OUT_DIG_CNVT copyright asserted 0
AUD_OUT_DIG_CNVT filter preemphasis 0
AUD_OUT_DIG_CNVT validity config 0
AUD_OUT_DIG_CNVT validity flag 0
AUD_OUT_DIG_CNVT digital enable 1
AUD_OUT_CH_STR stream id 0x0
AUD_OUT_CH_STR lowest channel 0x0
AUD_OUT_STR_DESC stream channels 0x2
AUD_PINW_CAP widget type 0x4
AUD_PINW_CAP sample delay 0x0
AUD_PINW_CAP channel count 0x7
AUD_PINW_CAP HDCP 1
AUD_PINW_CAP L-R swap 0
AUD_PINW_CAP power control 0
AUD_PINW_CAP digital 1
AUD_PINW_CAP conn list 1
AUD_PINW_CAP unsol 1
AUD_PINW_CAP mute 1
AUD_PINW_CAP format override 1
AUD_PINW_CAP amp param override 1
AUD_PINW_CAP out amp present 1
AUD_PINW_CAP in amp present 0
AUD_PIN_CAP EAPD 0
AUD_PIN_CAP HDMI 1
AUD_PIN_CAP output 1
AUD_PIN_CAP presence detect 1
AUD_PINW_CNTR mute status 0
AUD_PINW_CNTR out enable 0
AUD_PINW_CNTR amp mute status 0
AUD_PINW_CNTR amp mute status 0
AUD_PINW_CNTR stream type [0x0] default samples
AUD_PINW_UNSOLRESP enable unsol resp 1
AUD_CNTL_ST DIP audio enabled 0
AUD_CNTL_ST DIP ACP enabled 0
AUD_CNTL_ST DIP ISRCx enabled 0
AUD_CNTL_ST DIP port select [0x0] Reserved
AUD_CNTL_ST DIP buffer index [0x0] Audio DIP
AUD_CNTL_ST DIP trans freq [0x0] disabled
AUD_CNTL_ST DIP address 9
AUD_CNTL_ST CP ready 0
AUD_CNTL_ST ELD valid 0
AUD_CNTL_ST ELD ack 0
AUD_CNTL_ST ELD bufsize 16
AUD_CNTL_ST ELD address 2
AUD_HDMIW_STATUS CDCLK/DOTCLK underrun 0
AUD_HDMIW_STATUS CDCLK/DOTCLK overrun 0
AUD_HDMIW_STATUS BCLK/CDCLK underrun 0
AUD_HDMIW_STATUS BCLK/CDCLK overrun 0
AUD_CONV_CHCNT HDMI HBR enabled 0
AUD_CONV_CHCNT HDMI channel count 1
AUD_CONV_CHCNT HDMI channel mapping:
[0x0] 0 => 0
[0x11] 1 => 1
[0x22] 2 => 2
[0x33] 3 => 3
[0x44] 4 => 4
[0x55] 5 => 5
[0x66] 6 => 6
[0x77] 7 => 7
AUD_HDMIW_INFOFR HDMI audio Infoframe:
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
More information about the Intel-gfx
mailing list