[PATCH 3/3] drm/amd/display: DC I2C review

Daniel Vetter daniel.vetter at ffwll.ch
Thu Sep 28 06:46:58 UTC 2017


On Wed, Sep 27, 2017 at 9:46 PM, Harry Wentland <harry.wentland at amd.com> wrote:
> While reviewing I2C in DC identified a few places. Added a couple to the
> TODO list.
>
> 1) Connector info read
>
> See get_ext_display_connection_info
>
> On some boards the connector information has to be read through a
> special I2C channel. This line is only used for this purpose and only on
> driver init.
>
> 2) SCDC stuff
>
> This should all be reworked to go through DRM's SCDC code. When this is
> done some unnecessary I2C code can be retired as well.
>
> 3) Max TMDS clock read
>
> See dal_ddc_service_i2c_query_dp_dual_mode_adaptor
>
> This should happen in DRM as well. I haven't checked if there's
> currently functionality in DRM. If not we can propose something.
>
> 4) HDMI retimer programming
>
> Some boards have an HDMI retimer that we need to program to pass PHY
> compliance.
>
> 1 & 3 might be a good exercise if someone is looking for things to do.
>
> Signed-off-by: Harry Wentland <harry.wentland at amd.com>
> ---
>  drivers/gpu/drm/amd/display/TODO | 26 ++++++++++++--------------
>  1 file changed, 12 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/TODO b/drivers/gpu/drm/amd/display/TODO
> index eea645b102a1..981352bc95f0 100644
> --- a/drivers/gpu/drm/amd/display/TODO
> +++ b/drivers/gpu/drm/amd/display/TODO
> @@ -62,20 +62,10 @@ TODOs
>      ~ Daniel Vetter
>
>
> -11. Remove existing i2c implementation from DC
> -
> -    "Similar story for i2c, it uses the kernel's i2c code now, but there's
> -    still a full i2c implementation hidden beneath that in
> -    display/dc/i2caux. Kinda not cool, but imo ok if you fix that
> -    post-merging (perhaps by not including any of this in the linux DC
> -    code in the upstream kernel, but as an aux module in your internal
> -    codebase since there you probably need that, same applies to the edid
> -    parsing DC still does. For both cases I assume that the minimal shim
> -    you need on linux (bit banging and edid parsing isn't rocket since) is
> -    a lot less than the glue code to interface with the dc-provided
> -    abstraction."
> -    ~ Daniel Vetter
> -
> +11. Remove dc/i2caux. This folder can be somewhat misleading. It's basically an
> +overy complicated HW programming function for sendind and receiving i2c/aux
> +commands. We can greatly simplify that and move it into dc/dceXYZ like other
> +HW blocks.

Best case I think would be if you directly implement the i2c_adapter
in there. It's a tiny abstraction/api, so should be trivial to
reimplement for the windows side. Or at least align really closely.
Even more so for the gpio bit-banging case, that should use the linux
implementation I think. Might be good to clarify.

Anyway, ack on this.

>  12. drm_modeset_lock in MST should no longer be needed in recent kernels
>      * Adopt appropriate locking scheme
> @@ -110,3 +100,11 @@ guilty.
>  stuff just isn't up to the challenges either. We need to figure out something
>  that integrates better with DRM and linux debug printing, while not being
>  useless with filtering output. dynamic debug printing might be an option.
> +
> +20. Move Max TMDS clock read to DRM. See
> +dal_ddc_service_i2c_query_dp_dual_mode_adaptor. I haven't checked if there's
> +currently functionality in DRM. If not we can propose something.

We already have dual_mode helpers. It's one of the todo's I've added,
merged this with point 15?

> +21. Use kernel i2c device to program HDMI retimer. Some boards have an HDMI
> +retimer that we need to program to pass PHY compliance. Currently that's
> +bypassing the i2c device and goes directly to HW. This should be changed.

I thought it eventually goes through the i2c stuff, after a few layers
at least. Maybe I got derailed. Anyway, makes sense.

With 20 merged into 15, ack on the patch from me.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the amd-gfx mailing list