On Thu, Aug 16, 2018 at 6:56 AM Hans Verkuil <hverkuil at xs4all.nl> wrote: > > From: Hans Verkuil <hans.verkuil at cisco.com> > > Now that the DisplayPort CEC-Tunneling-over-AUX drm+i915 support > has been merged in the mainline kernel it is time to roll this > out to nouveau and amdgpu as well. > > I combined both in the same patch series since both depend on the > same first patch, the comments in this cover letter apply to both > and the implementation is also very similar (and simple). > > As mentioned, the first patch is required for this: it adds checks that > the drm_dp_cec functions are called with a working aux implementation. > These checks weren't necessary for the i915, but nouveau and amdgpu > require them. > > The next two patches update a comment in drm_dp_cec.c and fix a bug > in sideband AUX handling that I found while researching CEC Tunneling > over an MST hub. It's there to prevent others from stumbling over the > same bug in the future. > > The fourth patch adds support for CEC to the nouveau driver. > > The last patch adds support for CEC to the amdgpu driver. However, there > appear to be two classes of amdgpu hardware: as a discrete GPU or > integrated. I only have a discrete GPU, so I can't test the integrated > GPU support and I only implemented this for the discrete GPU case. > > If someone has the integrated GPU and wants to get this working and is > willing to do some testing, then please contact me. It shouldn't be > difficult. You will likely have to buy a working DP-to-HDMI adapter. > See https://hverkuil.home.xs4all.nl/cec-status.txt for a (sadly very > short) list of working adapters. Actually you added support for APUs as well. In amdgpu, there are two sets of modesetting code, an older less featured version (amd/amdgpu/dce*.c) and the newer more featured code (amd/display/*). Newer asics (vega and raven) are only supported by DC. Older asics are supported by both. Eventually we'd like to remove the older modesetting code. I'm not really a CEC expert, but the patches look pretty straight forward to me. Series is: Acked-by: Alex Deucher <alexander.deucher at amd.com> > > Note that I may be completely off-base regarding what atombios_dp.c > does, it's the first time I ever looked at amdgpu code. > > Two notes on CEC-Tunneling-over-AUX: > > 1) You need to be very careful about which USB-C/DP/mini-DP to HDMI > adapters you buy. Only a few support this feature correctly today. > Known chipsets that support this are Parade PS175 & PS176 and > MegaChips 2900. Unfortunately almost all Parade-based adapters > do not hook up the HDMI CEC pin to the chip, making them useless > for this. The Parade reference design was only recently changed > to hook up this pin, so perhaps this situation will change for > new Parade-based adapters. > > Adapters based on the new MegaChips 2900 fare much better: it > appears that their reference design *does* hook up the CEC pin. > Club3D has adapters using this device for USB-C, DP and mini-DP > to HDMI, and they all work fine. > > If anyone finds other adapters that work besides those I list > in https://hverkuil.home.xs4all.nl/cec-status.txt, please let > me know and I'll add them to the list. > > Linux is the first OS that supports this feature, so I am > not surprised that HW support for this has been poor. Hopefully > this will change going forward. BTW, note the irony that CEC is > now supported for DP-to-HDMI adapters, but not for the native > HDMI ports on NVIDIA/AMD/Intel GPUs. > > 2) CEC-Tunneling does not work (yet?) if there is an MST hub in > between. I'm still researching this but this might be a limitation > of MST. > > Regards, > > Hans > > Hans Verkuil (5): > drm_dp_cec: check that aux has a transfer function > drm_dp_cec: add note about good MegaChips 2900 CEC support > drm_dp_mst_topology: fix broken > drm_dp_sideband_parse_remote_dpcd_read() > drm/nouveau: add DisplayPort CEC-Tunneling-over-AUX support > drm/amdgpu: add DisplayPort CEC-Tunneling-over-AUX support > > .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 13 +++++++++++-- > .../display/amdgpu_dm/amdgpu_dm_mst_types.c | 2 ++ > drivers/gpu/drm/drm_dp_cec.c | 18 +++++++++++++++++- > drivers/gpu/drm/drm_dp_mst_topology.c | 1 + > drivers/gpu/drm/nouveau/nouveau_connector.c | 17 +++++++++++++++-- > 5 files changed, 46 insertions(+), 5 deletions(-) > > -- > 2.18.0 > > _______________________________________________ > dri-devel mailing list > dri-devel at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel