Re: [PATCH v6 3/3] dt-bindings: drm/bridge: ti-sn65dsi86: Document no-hpd
From: Rob Herring
Date: Tue May 26 2020 - 18:22:27 EST
On Wed, May 13, 2020 at 02:59:02PM -0700, Douglas Anderson wrote:
> The ti-sn65dsi86 MIPI DSI to eDP bridge chip has a dedicated hardware
> HPD (Hot Plug Detect) pin on it, but it's mostly useless for eDP
> because of excessive debouncing in hardware. Specifically there is no
> way to disable the debouncing and for eDP debouncing hurts you because
> HPD is just used for knowing when the panel is ready, not for
> detecting physical plug events.
>
> Currently the driver in Linux just assumes that nobody has HPD hooked
> up. It relies on folks setting the "no-hpd" property in the panel
> node to specify that HPD isn't hooked up and then the panel driver
> using this to add some worst case delays when turning on the panel.
>
> Apparently it's also useful to specify "no-hpd" in the bridge node so
> that the bridge driver can make sure it's doing the right thing
> without peeking into the panel [1]. This would be used if anyone ever
> found it useful to implement support for the HW HPD pin on the bridge.
> Let's add this property to the bindings.
>
> NOTES:
> - This is somewhat of a backward-incompatible change. All current
> known users of ti-sn65dsi86 didn't have "no-hpd" specified in the
> bridge node yet none of them had HPD hooked up. This worked because
> the current Linux driver just assumed that HPD was never hooked up.
> We could make it less incompatible by saying that for this bridge
> it's assumed HPD isn't hooked up _unless_ a property is defined, but
> "no-hpd" is much more standard and it's unlikely to matter unless
> someone quickly goes and implements HPD in the driver.
> - It is sensible to specify "no-hpd" at the bridge chip level and
> specify "hpd-gpios" at the panel level. That would mean HPD is
> hooked up to some other GPIO in the system, just not the hardware
> HPD pin on the bridge chip.
I would say 'no-hpd' belongs wherever HPD is broken. So it may still
make sense in the panel. (Otherwise, it needs to be removed from
panel-common.yaml and some panel bindings, right?)
> [1] https://lore.kernel.org/r/20200417180819.GE5861@xxxxxxxxxxxxxxxxxxxxxxxxxx
>
> Signed-off-by: Douglas Anderson <dianders@xxxxxxxxxxxx>
> Reviewed-by: Stephen Boyd <swboyd@xxxxxxxxxxxx>
> Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> ---
In any case,
Reviewed-by: Rob Herring <robh@xxxxxxxxxx>