[Nouveau] [PATCH 0/5] drm/nouveau+amdgpu: add DP CEC-Tunneling-over-AUX

Alex Deucher alexdeucher at gmail.com
Thu Aug 16 15:25:50 UTC 2018


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


More information about the Nouveau mailing list