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

From: Jani Nikula
Date: Tue Apr 20 2021 - 04:14:29 EST

Cc: Lyude and drm-misc maintainers

On Wed, 14 Apr 2021, 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.

i915 has had this capability for some years now, and work is in progress
to extract the DP AUX backlight code to drm core as helpers [1]. There's
much more to it than what's proposed here. Adding incompatible DP AUX
code at this point would be a pretty bad outcome.

For example, we can't tie backlight device register to DP AUX backlight,
because there are modes where *both* the eDP PWM pin based backlight
control and DP AUX backlight control are used *simultaneously*. The
backlight device register needs to be in code that is aware of both.

Granted, it was a mistake way back when to add this in i915 only, and it
should've been lifted to drm much earlier. It would've been done by
Lyude by now, but people were not happy about not using drm device based
logging. And that has unfortunately lead to a pretty massive prep series

Please look into the code added to drm helpers in [1], and see how that
would work for you.



> 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

Jani Nikula, Intel Open Source Graphics Center