mbox series

[0/3] drm-panel: Don't make failures quite so fatal

Message ID 20240325215631.3804796-1-dianders@chromium.org (mailing list archive)
Headers show
Series drm-panel: Don't make failures quite so fatal | expand

Message

Doug Anderson March 25, 2024, 9:56 p.m. UTC
This patch series is born out of the observation that after several
Chromebooks transitioned over to the generic "edp-panel" compatible
string that we received a number of in-the-field reports of the
primary graphics device for the Chromebook not coming up.

The current belief is that these Chromebooks are actually suffering
from a true hardware failure and the panel is either fully
disconnected or it has some type of intermittent connection. While we
can't solve that problem, digging showed that we actually dealt with
this situation better _before_ switching to the generic "edp-panel"
compatible string.

Before switching to "edp-panel", devices using eDP would finish their
probe and would actually not show any failure until you tried to turn
the panel on. That was a _good_ thing. The component model used by
many DRM devices means that if the panel doesn't finish probing that
the rest of the DRM device doesn't probe. In turn, that means that any
other display adapters (like ones that would allow hooking up an
external display) don't probe. The end result was that a device with a
broken panel that could have continued to be a useful computer by
hooking up an external display became e-waste.

I won't say that this series is the most elegant/wonderful thing in
the world. Ideally we could fail the probe of the panel and still use
the external display. That's a pretty serious re-design, though. DRM
devices work like they do with the component model because of some of
their inherent complexities.


Douglas Anderson (3):
  drm/panel-edp: Abstract out function to set conservative timings
  drm/panel-edp: If we fail to powerup/get EDID, use conservative
    timings
  drm-panel: If drm_panel_dp_aux_backlight() fails, don't fail panel
    probe

 drivers/gpu/drm/panel/panel-edp.c             | 60 +++++++++++--------
 .../gpu/drm/panel/panel-samsung-atna33xc20.c  |  9 ++-
 2 files changed, 41 insertions(+), 28 deletions(-)