Re: [v1 0/3] drm: Add support for backlight control of eDP panel on ti-sn65dsi86 bridge

From: Doug Anderson
Date: Fri Apr 16 2021 - 19:03:07 EST


On Wed, Apr 14, 2021 at 9:41 AM Rajeev Nandan <rajeevny@xxxxxxxxxxxxxx> wrote:
> The backlight level of an eDP panel can be controlled through the AUX
> channel using DPCD registers of the panel.
> The capability for the Source device to adjust backlight characteristics
> within the panel, using the Sink device DPCD registers is indicated by
> register (DPCD Address 701h, bit0). In this configuration, the eDP TCON
> receives the backlight level information from the host, through the AUX
> channel.
> The changes in this patch series do the following:
> - Add drm_dp_aux_backlight_ APIs to support backlight control using DPCD
> registers on the DisplayPort AUX channel.
> The current version only supports backlight brightness control by the
> EDP_BACKLIGHT_BRIGHTNESS_MSB/LSB registers (DPCD Addresses 722h-723h).
> - Add support for backlight control of the eDP panel connected to the
> ti-sn65dsi86 bridge.
> Rajeev Nandan (3):
> drm/dp: Add DisplayPort aux backlight control support
> dt-bindings: drm/bridge: ti-sn65dsi86: Document use-aux-backlight
> drm/bridge: ti-sn65dsi86: Add DisplayPort aux backlight support
> .../bindings/display/bridge/ti,sn65dsi86.yaml | 8 +
> drivers/gpu/drm/Kconfig | 8 +
> drivers/gpu/drm/Makefile | 1 +
> drivers/gpu/drm/bridge/Kconfig | 1 +
> drivers/gpu/drm/bridge/ti-sn65dsi86.c | 26 +++
> drivers/gpu/drm/drm_dp_aux_backlight.c | 191 +++++++++++++++++++++
> include/drm/drm_dp_aux_backlight.h | 29 ++++
> 7 files changed, 264 insertions(+)
> create mode 100644 drivers/gpu/drm/drm_dp_aux_backlight.c
> create mode 100644 include/drm/drm_dp_aux_backlight.h

So I haven't looked in massive detail at this patch series, but the
fact that it's touching "ti-sn65dsi86.c" is a red flag. I know in
out-of-band communications you said you weren't sure how to do better.
...but, perhaps, if folks don't hate my recent series [1] there may be
a way forward.

I wonder if perhaps now that the AUX channel can be registered early
if it gets around the circular dependency problems and now you can put
your code in some combination of the panel code and (maybe?) a new
backlight driver if it's generic enough.

It's possible that you might need to add some code to be able to look
up a "struct drm_dp_aux *" from a device tree node and you might need
to add a new device tree property like "ddc-aux-bus" in order to do
this, but I don't _think_ that would be controversial?