[RFC PATCH 7/7] drm/i915: add DisplayPort CEC-Tunneling-over-AUX support
Clint Taylor
clinton.a.taylor at intel.com
Tue May 30 20:32:33 UTC 2017
On 05/30/2017 09:54 AM, Hans Verkuil wrote:
> On 05/30/2017 06:49 PM, Hans Verkuil wrote:
>> On 05/30/2017 04:19 PM, Clint Taylor wrote:
>>>
>>>
>>> On 05/30/2017 12:11 AM, Jani Nikula wrote:
>>>> On Tue, 30 May 2017, Hans Verkuil <hverkuil at xs4all.nl> wrote:
>>>>> On 05/29/2017 09:00 PM, Daniel Vetter wrote:
>>>>>> On Fri, May 26, 2017 at 12:20:48PM +0200, Hans Verkuil wrote:
>>>>>>> On 05/26/2017 09:15 AM, Daniel Vetter wrote:
>>>>>>>> Did you look into also wiring this up for dp mst chains?
>>>>>>> Isn't this sufficient? I have no way of testing mst chains.
>>>>>>>
>>>>>>> I think I need some pointers from you, since I am a complete
>>>>>>> newbie when it
>>>>>>> comes to mst.
>>>>>> I don't really have more clue, but yeah if you don't have an mst
>>>>>> thing (a
>>>>>> simple dp port multiplexer is what I use for testing here, then
>>>>>> plug in a
>>>>>> converter dongle or cable into that) then probably better to not
>>>>>> wire up
>>>>>> the code for it.
>>>>> I think my NUC already uses mst internally. But I was planning on
>>>>> buying a
>>>>> dp multiplexer to make sure there is nothing special I need to do
>>>>> for mst.
>>>>>
>>>>> The CEC Tunneling is all in the branch device, so if I understand
>>>>> things
>>>>> correctly it is not affected by mst.
>>>>>
>>>>> BTW, I did a bit more testing on my NUC7i5BNK: for the HDMI output
>>>>> they
>>>>> use a MegaChip MCDP2800 DP-to-HDMI converter which according to their
>>>>> datasheet is supposed to implement CEC Tunneling, but if they do
>>>>> it is not
>>>>> exposed as a capability. I'm not sure if it is a MegaChip firmware
>>>>> issue
>>>>> or something else. The BIOS is able to do some CEC, but whether
>>>>> they hook
>>>>> into the MegaChip or have the CEC pin connected to a GPIO or
>>>>> something and
>>>>> have their own controller is something I do not know.
>>>>>
>>>>> If anyone can clarify what Intel did on the NUC, then that would
>>>>> be very
>>>>> helpful.
>>>> It's called LSPCON, see i915/intel_lspcon.c, basically to support HDMI
>>>> 2.0. Currently we only use it in PCON mode, shows up as DP for us. It
>>>> could be used in LS mode, showing up as HDMI 1.4, but we don't support
>>>> that in i915.
>>>>
>>>> I don't know about the CEC on that.
>>>
>>> My NUC6i7KYK has the MCDP2850 LSPCON and it does support CEC over Aux.
>>> The release notes for the NUC state that there is a BIOS configuration
>>> option for enabling support. My doesn't have the option but the LSPCON
>>> fully supports CEC.
>>
>> What is the output of:
>>
>> dd if=/dev/drm_dp_aux0 of=aux0 skip=12288 ibs=1 count=48
>> od -t x1 aux0
>>
>> Assuming drm_dp_aux0 is the aux channel for the HDMI output on your NUC.
>>
>> If the first byte is != 0x00, then it advertises CEC over Aux.
>>
>> For me it says 0x00.
>>
>> When you say "it does support CEC over Aux", does that mean you have
>> actually
>> tested it somehow? The only working solution I have seen mentioned
>> for the
>> NUC6i7KYK is a Pulse-Eight adapter.
>>
>> With the NUC7i Intel made BIOS support for CEC, but it is not at all
>> clear to me if they used CEC tunneling or just hooked up the CEC pin to
>> some microcontroller.
>>
>> The only working chipset I have seen is the Parade PS176.
>
> If it really is working on your NUC, then can you add the output of
> /sys/kernel/debug/dri/0/i915_display_info?
[root at localhost cec-ctl]# cat /sys/kernel/debug/dri/0/i915_display_info
CRTC info
---------
CRTC 32: pipe: A, active=yes, (size=1920x1080), dither=no, bpp=24
fb: 115, pos: 0x0, size: 3840x2160
encoder 47: type: DDI B, connectors:
connector 48: type: DP-1, status: connected, mode:
id 0:"1920x1080" freq 60 clock 148500 hdisp 1920 hss 2008 hse
2052 htot 2200 vdisp 1080 vss 1084 vse 1089 vtot 1125 type 0x48 flags 0x5
cursor visible? no, position (0, 0), size 0x0, addr 0x00000000
num_scalers=2, scaler_users=0 scaler_id=-1, scalers[0]: use=no,
mode=0, scalers[1]: use=no, mode=0
--Plane id 26: type=PRI, crtc_pos= 0x 0, crtc_size=1920x1080,
src_pos=0.0000x0.0000, src_size=1920.0000x1080.0000, format=XR24
little-endian (0x34325258), rotation=0 (0x00000001)
--Plane id 28: type=OVL, crtc_pos= 0x 0, crtc_size= 0x 0,
src_pos=0.0000x0.0000, src_size=0.0000x0.0000, format=N/A, rotation=0
(0x00000001)
--Plane id 30: type=CUR, crtc_pos= 0x 0, crtc_size= 0x 0,
src_pos=0.0000x0.0000, src_size=0.0000x0.0000, format=N/A, rotation=0
(0x00000001)
underrun reporting: cpu=yes pch=yes
CRTC 39: pipe: B, active=yes, (size=3840x2160), dither=no, bpp=36
fb: 115, pos: 0x0, size: 3840x2160
encoder 54: type: DDI C, connectors:
connector 55: type: DP-2, status: connected, mode:
id 0:"3840x2160" freq 30 clock 296703 hdisp 3840 hss 4016 hse
4104 htot 4400 vdisp 2160 vss 2168 vse 2178 vtot 2250 type 0x48 flags 0x5
cursor visible? no, position (0, 0), size 0x0, addr 0x00000000
num_scalers=2, scaler_users=0 scaler_id=-1, scalers[0]: use=no,
mode=0, scalers[1]: use=no, mode=0
--Plane id 33: type=PRI, crtc_pos= 0x 0, crtc_size=3840x2160,
src_pos=0.0000x0.0000, src_size=3840.0000x2160.0000, format=XR24
little-endian (0x34325258), rotation=0 (0x00000001)
--Plane id 35: type=OVL, crtc_pos= 0x 0, crtc_size= 0x 0,
src_pos=0.0000x0.0000, src_size=0.0000x0.0000, format=N/A, rotation=0
(0x00000001)
--Plane id 37: type=CUR, crtc_pos= 0x 0, crtc_size= 0x 0,
src_pos=0.0000x0.0000, src_size=0.0000x0.0000, format=N/A, rotation=0
(0x00000001)
underrun reporting: cpu=yes pch=yes
CRTC 46: pipe: C, active=no, (size=0x0), dither=no, bpp=0
underrun reporting: cpu=yes pch=yes
Connector info
--------------
connector 48: type DP-1, status: connected
name:
physical dimensions: 700x400mm
subpixel order: Unknown
CEA rev: 3
DPCD rev: 12
audio support: yes
DP branch device present: yes
Type: HDMI
ID: 175IB0
HW: 1.0
SW: 7.32
Max TMDS clock: 600000 kHz
Max bpc: 12
modes:
id 70:"1920x1080" freq 60 clock 148500 hdisp 1920 hss 2008 hse
2052 htot 2200 vdisp 1080 vss 1084 vse 1089 vtot 1125 type 0x48 flags 0x5
id 92:"1920x1080" freq 60 clock 148352 hdisp 1920 hss 2008 hse
2052 htot 2200 vdisp 1080 vss 1084 vse 1089 vtot 1125 type 0x40 flags 0x5
id 71:"1920x1080i" freq 60 clock 74250 hdisp 1920 hss 2008 hse
2052 htot 2200 vdisp 1080 vss 1084 vse 1094 vtot 1125 type 0x40 flags 0x15
id 93:"1920x1080i" freq 60 clock 74176 hdisp 1920 hss 2008 hse
2052 htot 2200 vdisp 1080 vss 1084 vse 1094 vtot 1125 type 0x40 flags 0x15
id 91:"1920x1080" freq 50 clock 148500 hdisp 1920 hss 2448 hse
2492 htot 2640 vdisp 1080 vss 1084 vse 1089 vtot 1125 type 0x40 flags 0x5
id 77:"1920x1080i" freq 50 clock 74250 hdisp 1920 hss 2448 hse
2492 htot 2640 vdisp 1080 vss 1084 vse 1094 vtot 1125 type 0x40 flags 0x15
id 72:"1280x720" freq 60 clock 74250 hdisp 1280 hss 1390 hse
1430 htot 1650 vdisp 720 vss 725 vse 730 vtot 750 type 0x40 flags 0x5
id 94:"1280x720" freq 60 clock 74176 hdisp 1280 hss 1390 hse
1430 htot 1650 vdisp 720 vss 725 vse 730 vtot 750 type 0x40 flags 0x5
id 78:"1280x720" freq 50 clock 74250 hdisp 1280 hss 1720 hse
1760 htot 1980 vdisp 720 vss 725 vse 730 vtot 750 type 0x40 flags 0x5
id 75:"1440x480i" freq 60 clock 27000 hdisp 1440 hss 1478 hse
1602 htot 1716 vdisp 480 vss 488 vse 494 vtot 525 type 0x40 flags 0x1a
id 88:"720x576" freq 50 clock 27000 hdisp 720 hss 732 hse 796
htot 864 vdisp 576 vss 581 vse 586 vtot 625 type 0x40 flags 0xa
id 95:"720x480" freq 60 clock 27027 hdisp 720 hss 736 hse 798
htot 858 vdisp 480 vss 489 vse 495 vtot 525 type 0x40 flags 0xa
id 73:"720x480" freq 60 clock 27000 hdisp 720 hss 736 hse 798
htot 858 vdisp 480 vss 489 vse 495 vtot 525 type 0x40 flags 0xa
id 97:"640x480" freq 60 clock 25200 hdisp 640 hss 656 hse 752
htot 800 vdisp 480 vss 490 vse 492 vtot 525 type 0x40 flags 0xa
id 76:"640x480" freq 60 clock 25175 hdisp 640 hss 656 hse 752
htot 800 vdisp 480 vss 490 vse 492 vtot 525 type 0x40 flags 0xa
connector 55: type DP-2, status: connected
name:
physical dimensions: 620x340mm
subpixel order: Unknown
CEA rev: 3
DPCD rev: 12
audio support: yes
DP branch device present: yes
Type: HDMI
ID: BCTRC0
HW: 2.0
SW: 0.26
modes:
id 79:"3840x2160" freq 30 clock 296703 hdisp 3840 hss 4016 hse
4104 htot 4400 vdisp 2160 vss 2168 vse 2178 vtot 2250 type 0x48 flags 0x5
id 130:"3840x2160" freq 30 clock 297000 hdisp 3840 hss 4016 hse
4104 htot 4400 vdisp 2160 vss 2168 vse 2178 vtot 2250 type 0x40 flags 0x5
id 131:"3840x2160" freq 25 clock 297000 hdisp 3840 hss 4896 hse
4984 htot 5280 vdisp 2160 vss 2168 vse 2178 vtot 2250 type 0x40 flags 0x5
id 132:"3840x2160" freq 24 clock 297000 hdisp 3840 hss 5116 hse
5204 htot 5500 vdisp 2160 vss 2168 vse 2178 vtot 2250 type 0x40 flags 0x5
id 149:"3840x2160" freq 24 clock 296703 hdisp 3840 hss 5116 hse
5204 htot 5500 vdisp 2160 vss 2168 vse 2178 vtot 2250 type 0x40 flags 0x5
id 82:"1920x2160" freq 60 clock 297000 hdisp 1920 hss 2008 hse
2052 htot 2200 vdisp 2160 vss 2168 vse 2178 vtot 2250 type 0x40 flags 0x5
id 80:"2560x1440" freq 52 clock 241500 hdisp 2560 hss 2864 hse
3152 htot 3153 vdisp 1440 vss 1443 vse 1448 vtot 1481 type 0x40 flags 0x9
id 85:"2048x1152" freq 60 clock 162000 hdisp 2048 hss 2074 hse
2154 htot 2250 vdisp 1152 vss 1153 vse 1156 vtot 1200 type 0x40 flags 0x5
id 87:"1920x1200" freq 60 clock 154000 hdisp 1920 hss 1968 hse
2000 htot 2080 vdisp 1200 vss 1203 vse 1209 vtot 1235 type 0x40 flags 0x9
id 83:"1920x1080" freq 60 clock 148500 hdisp 1920 hss 2008 hse
2052 htot 2200 vdisp 1080 vss 1084 vse 1089 vtot 1125 type 0x40 flags 0x5
id 135:"1920x1080" freq 60 clock 148352 hdisp 1920 hss 2008 hse
2052 htot 2200 vdisp 1080 vss 1084 vse 1089 vtot 1125 type 0x40 flags 0x5
id 84:"1920x1080i" freq 60 clock 74250 hdisp 1920 hss 2008 hse
2052 htot 2200 vdisp 1080 vss 1084 vse 1094 vtot 1125 type 0x40 flags 0x15
id 136:"1920x1080i" freq 60 clock 74176 hdisp 1920 hss 2008 hse
2052 htot 2200 vdisp 1080 vss 1084 vse 1094 vtot 1125 type 0x40 flags 0x15
id 121:"1920x1080" freq 50 clock 148500 hdisp 1920 hss 2448 hse
2492 htot 2640 vdisp 1080 vss 1084 vse 1089 vtot 1125 type 0x40 flags 0x5
id 122:"1920x1080i" freq 50 clock 74250 hdisp 1920 hss 2448 hse
2492 htot 2640 vdisp 1080 vss 1084 vse 1094 vtot 1125 type 0x40 flags 0x15
id 128:"1920x1080" freq 24 clock 74250 hdisp 1920 hss 2558 hse
2602 htot 2750 vdisp 1080 vss 1084 vse 1089 vtot 1125 type 0x40 flags 0x5
id 146:"1920x1080" freq 24 clock 74176 hdisp 1920 hss 2558 hse
2602 htot 2750 vdisp 1080 vss 1084 vse 1089 vtot 1125 type 0x40 flags 0x5
id 89:"1600x1200" freq 60 clock 162000 hdisp 1600 hss 1664 hse
1856 htot 2160 vdisp 1200 vss 1201 vse 1204 vtot 1250 type 0x40 flags 0x5
id 90:"1680x1050" freq 60 clock 119000 hdisp 1680 hss 1728 hse
1760 htot 1840 vdisp 1050 vss 1053 vse 1059 vtot 1080 type 0x40 flags 0x9
id 86:"1600x900" freq 60 clock 108000 hdisp 1600 hss 1624 hse
1704 htot 1800 vdisp 900 vss 901 vse 904 vtot 1000 type 0x40 flags 0x5
id 106:"1280x1024" freq 75 clock 135000 hdisp 1280 hss 1296 hse
1440 htot 1688 vdisp 1024 vss 1025 vse 1028 vtot 1066 type 0x40 flags 0x5
id 96:"1280x1024" freq 60 clock 108000 hdisp 1280 hss 1328 hse
1440 htot 1688 vdisp 1024 vss 1025 vse 1028 vtot 1066 type 0x40 flags 0x5
id 113:"1152x864" freq 75 clock 108000 hdisp 1152 hss 1216 hse
1344 htot 1600 vdisp 864 vss 865 vse 868 vtot 900 type 0x40 flags 0x5
id 98:"1280x720" freq 60 clock 74250 hdisp 1280 hss 1390 hse
1430 htot 1650 vdisp 720 vss 725 vse 730 vtot 750 type 0x40 flags 0x5
id 137:"1280x720" freq 60 clock 74176 hdisp 1280 hss 1390 hse
1430 htot 1650 vdisp 720 vss 725 vse 730 vtot 750 type 0x40 flags 0x5
id 123:"1280x720" freq 50 clock 74250 hdisp 1280 hss 1720 hse
1760 htot 1980 vdisp 720 vss 725 vse 730 vtot 750 type 0x40 flags 0x5
id 107:"1024x768" freq 75 clock 78750 hdisp 1024 hss 1040 hse
1136 htot 1312 vdisp 768 vss 769 vse 772 vtot 800 type 0x40 flags 0x5
id 108:"1024x768" freq 70 clock 75000 hdisp 1024 hss 1048 hse
1184 htot 1328 vdisp 768 vss 771 vse 777 vtot 806 type 0x40 flags 0xa
id 109:"1024x768" freq 60 clock 65000 hdisp 1024 hss 1048 hse
1184 htot 1344 vdisp 768 vss 771 vse 777 vtot 806 type 0x40 flags 0xa
id 110:"832x624" freq 75 clock 57284 hdisp 832 hss 864 hse 928
htot 1152 vdisp 624 vss 625 vse 628 vtot 667 type 0x40 flags 0xa
id 111:"800x600" freq 75 clock 49500 hdisp 800 hss 816 hse 896
htot 1056 vdisp 600 vss 601 vse 604 vtot 625 type 0x40 flags 0x5
id 112:"800x600" freq 72 clock 50000 hdisp 800 hss 856 hse 976
htot 1040 vdisp 600 vss 637 vse 643 vtot 666 type 0x40 flags 0x5
id 99:"800x600" freq 60 clock 40000 hdisp 800 hss 840 hse 968
htot 1056 vdisp 600 vss 601 vse 605 vtot 628 type 0x40 flags 0x5
id 100:"800x600" freq 56 clock 36000 hdisp 800 hss 824 hse 896
htot 1024 vdisp 600 vss 601 vse 603 vtot 625 type 0x40 flags 0x5
id 124:"720x576" freq 50 clock 27000 hdisp 720 hss 732 hse 796
htot 864 vdisp 576 vss 581 vse 586 vtot 625 type 0x40 flags 0xa
id 142:"720x480" freq 60 clock 27027 hdisp 720 hss 736 hse 798
htot 858 vdisp 480 vss 489 vse 495 vtot 525 type 0x40 flags 0xa
id 117:"720x480" freq 60 clock 27000 hdisp 720 hss 736 hse 798
htot 858 vdisp 480 vss 489 vse 495 vtot 525 type 0x40 flags 0xa
id 101:"640x480" freq 75 clock 31500 hdisp 640 hss 656 hse 720
htot 840 vdisp 480 vss 481 vse 484 vtot 500 type 0x40 flags 0xa
id 102:"640x480" freq 73 clock 31500 hdisp 640 hss 664 hse 704
htot 832 vdisp 480 vss 489 vse 492 vtot 520 type 0x40 flags 0xa
id 103:"640x480" freq 67 clock 30240 hdisp 640 hss 704 hse 768
htot 864 vdisp 480 vss 483 vse 486 vtot 525 type 0x40 flags 0xa
id 138:"640x480" freq 60 clock 25200 hdisp 640 hss 656 hse 752
htot 800 vdisp 480 vss 490 vse 492 vtot 525 type 0x40 flags 0xa
id 104:"640x480" freq 60 clock 25175 hdisp 640 hss 656 hse 752
htot 800 vdisp 480 vss 490 vse 492 vtot 525 type 0x40 flags 0xa
id 105:"720x400" freq 70 clock 28320 hdisp 720 hss 738 hse 846
htot 900 vdisp 400 vss 412 vse 414 vtot 449 type 0x40 flags 0x6
connector 59: type HDMI-A-1, status: disconnected
modes:
connector 62: type DP-3, status: disconnected
DPCD rev: 0
audio support: no
DP branch device present: no
modes:
connector 66: type HDMI-A-2, status: disconnected
audio support: no
modes:
>
> Thanks,
>
> Hans
More information about the dri-devel
mailing list