[RFC PATCH 0/7] drm: facilitate driver unification around edid read and override

Jani Nikula jani.nikula at intel.com
Tue Dec 27 16:21:47 UTC 2016

Hi all -

This series aims at three goals:

1) Most drivers do similar things around drm_get_edid (namely convert
edid to eld, add modes, and update edid blob property). Add a helper for
the drivers, to reduce code and unify.

2) Move override and firmware EDID handling to a lower level, in the
helper. This makes them more transparent to the rest of the stack,
avoiding special casing. For example, any drm_detect_hdmi_monitor calls
typically use the EDID from the display, not the override EDID.

3) Make EDID caching easier and unified across drivers. Currently,
plenty of drivers have their own hacks for caching EDID reads. This
could be made more transparent and unified at the helper level.

All of this is opt-in, using the helper from patch 6/7. This is mostly
because converting everything at one go is pretty much impossible. The
main wrinkle is having to leave override/firmware EDID handling in two
places for now, but this could be fixed once enough drivers have
switched to using the common helper.


Jani Nikula (7):
  drm: reset ELD if NULL edid is passed to drm_edid_to_eld
  drm: move edid property update and add modes out of edid firmware
  drm: abstract override and firmware edid
  drm: export load edid firmware
  drm: make drm_get_displayid() available outside of drm_edid.c
  drm: add new drm_mode_connector_get_edid to do drm_get_edid and
  drm/i915: replace intel_ddc_get_modes with drm_mode_connector_get_edid

 drivers/gpu/drm/drm_connector.c    | 60 ++++++++++++++++++++++++++++++++++++++
 drivers/gpu/drm/drm_edid.c         | 10 +++----
 drivers/gpu/drm/drm_edid_load.c    | 18 ++++--------
 drivers/gpu/drm/drm_probe_helper.c | 45 +++++++++++++++++++++-------
 drivers/gpu/drm/i915/intel_drv.h   |  1 -
 drivers/gpu/drm/i915/intel_dvo.c   |  5 ++--
 drivers/gpu/drm/i915/intel_modes.c | 23 ---------------
 drivers/gpu/drm/i915/intel_sdvo.c  |  2 +-
 include/drm/drm_connector.h        |  6 ++++
 include/drm/drm_edid.h             |  8 +++--
 10 files changed, 120 insertions(+), 58 deletions(-)


More information about the dri-devel mailing list