mbox series

[RFC,00/19] drm/edid: overhaul CEA data block iteration

Message ID cover.1647985054.git.jani.nikula@intel.com (mailing list archive)
Headers show
Series drm/edid: overhaul CEA data block iteration | expand

Message

Jani Nikula March 22, 2022, 9:40 p.m. UTC
Add iterators for EDID blocks and CEA data blocks, to iterate through
all data blocks across all CEA extensions and CTA blocks in DisplayID
data blocks. Fix all code assuming only one CEA extension. Fix code
assuming CTA blocks contain everything that CEA extensions do. Sprinkle
a bunch of cleanups on top.

This is completely UNTESTED, didn't even smoke test it. It builds. ;)

This superseeds parts of [1] and [2].

BR,
Jani.

[1] https://patchwork.freedesktop.org/series/101241/
[2] https://patchwork.freedesktop.org/patch/msgid/20220321044330.27723-1-cooper.chiou@intel.com


Cc: Shawn C Lee <shawn.c.lee@intel.com>
Cc: Cooper Chiou <cooper.chiou@intel.com>
Cc: william.tseng@intel.com
Cc: ankit.k.nautiyal@intel.com
Cc: ville.syrjala@linux.intel.com
Cc: Drew Davenport <ddavenport@chromium.org>

Jani Nikula (19):
  drm/edid: add drm_edid_extension_block_count() and drm_edid_size()
  drm: use drm_edid_extension_block_count() and drm_edid_size()
  drm/edid: clean up CEA data block tag definitions
  drm/edid: add iterator for EDID base and extension blocks
  drm/edid: add iterator for CEA data blocks
  drm/edid: clean up cea_db_is_*() functions
  drm/edid: convert add_cea_modes() to use cea db iter
  drm/edid: convert drm_edid_to_speaker_allocation() to use cea db iter
  drm/edid: convert drm_edid_to_sad() to use cea db iter
  drm/edid: convert drm_detect_hdmi_monitor() to use cea db iter
  drm/edid: convert drm_detect_monitor_audio() to use cea db iter
  drm/edid: convert drm_parse_cea_ext() to use cea db iter
  drm/edid: convert drm_edid_to_eld() to use cea db iter
  drm/edid: sunset the old unused cea data block iterators
  drm/edid: restore some type safety to cea_db_*() functions
  drm/edid: detect basic audio only on CEA extension
  drm/edid: detect color formats and CEA revision only on CEA extension
  drm/edid: skip CEA extension scan in drm_edid_to_eld() just for CEA
    rev
  drm/edid: sunset drm_find_cea_extension()

 drivers/gpu/drm/drm_connector.c |   2 +-
 drivers/gpu/drm/drm_debugfs.c   |   3 +-
 drivers/gpu/drm/drm_edid.c      | 781 ++++++++++++++++++--------------
 include/drm/drm_edid.h          |   2 +
 4 files changed, 455 insertions(+), 333 deletions(-)

Comments

Ville Syrjälä March 23, 2022, 4:38 p.m. UTC | #1
On Tue, Mar 22, 2022 at 11:40:29PM +0200, Jani Nikula wrote:
> Add iterators for EDID blocks and CEA data blocks, to iterate through
> all data blocks across all CEA extensions and CTA blocks in DisplayID
> data blocks. Fix all code assuming only one CEA extension. Fix code
> assuming CTA blocks contain everything that CEA extensions do. Sprinkle
> a bunch of cleanups on top.
> 
> This is completely UNTESTED, didn't even smoke test it. It builds. ;)

Despite that it's now
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Left a few minor comments here and there.

> 
> This superseeds parts of [1] and [2].
> 
> BR,
> Jani.
> 
> [1] https://patchwork.freedesktop.org/series/101241/
> [2] https://patchwork.freedesktop.org/patch/msgid/20220321044330.27723-1-cooper.chiou@intel.com
> 
> 
> Cc: Shawn C Lee <shawn.c.lee@intel.com>
> Cc: Cooper Chiou <cooper.chiou@intel.com>
> Cc: william.tseng@intel.com
> Cc: ankit.k.nautiyal@intel.com
> Cc: ville.syrjala@linux.intel.com
> Cc: Drew Davenport <ddavenport@chromium.org>
> 
> Jani Nikula (19):
>   drm/edid: add drm_edid_extension_block_count() and drm_edid_size()
>   drm: use drm_edid_extension_block_count() and drm_edid_size()
>   drm/edid: clean up CEA data block tag definitions
>   drm/edid: add iterator for EDID base and extension blocks
>   drm/edid: add iterator for CEA data blocks
>   drm/edid: clean up cea_db_is_*() functions
>   drm/edid: convert add_cea_modes() to use cea db iter
>   drm/edid: convert drm_edid_to_speaker_allocation() to use cea db iter
>   drm/edid: convert drm_edid_to_sad() to use cea db iter
>   drm/edid: convert drm_detect_hdmi_monitor() to use cea db iter
>   drm/edid: convert drm_detect_monitor_audio() to use cea db iter
>   drm/edid: convert drm_parse_cea_ext() to use cea db iter
>   drm/edid: convert drm_edid_to_eld() to use cea db iter
>   drm/edid: sunset the old unused cea data block iterators
>   drm/edid: restore some type safety to cea_db_*() functions
>   drm/edid: detect basic audio only on CEA extension
>   drm/edid: detect color formats and CEA revision only on CEA extension
>   drm/edid: skip CEA extension scan in drm_edid_to_eld() just for CEA
>     rev
>   drm/edid: sunset drm_find_cea_extension()
> 
>  drivers/gpu/drm/drm_connector.c |   2 +-
>  drivers/gpu/drm/drm_debugfs.c   |   3 +-
>  drivers/gpu/drm/drm_edid.c      | 781 ++++++++++++++++++--------------
>  include/drm/drm_edid.h          |   2 +
>  4 files changed, 455 insertions(+), 333 deletions(-)
> 
> -- 
> 2.30.2