I see the parsing and caching of child device data into i915->vbt.ddi_port_info[] slightly problematic. We keep adding data to it, and it just duplicates information. Start moving towards a single point of truth, and getting the information directly from the child device data. One obstacle has been that init_vbt_missing_defaults() only initializes ddi_port_info, without child devices. As the same problem arose in a patch from Lucas, I thought it was time to start creating fake child devices to unify the code. There are a bunch of cleanups and refactoring here. Patches 1-5 are enough to fix Lucas' patch I think. Patch 10 does what Lucas was after, just in a different way and as a byproduct of something else. The later patches in the series are more to show the direction, and seek validation for that direction. Naming is also a question mark. All of these are a bit questionable: intel_bios_encoder_data, devdata, intel_bios_encoder_supports_*, etc. BR, Jani. [1] http://patchwork.freedesktop.org/patch/msgid/20210213190511.1017088-2-lucas.demarchi@xxxxxxxxx Cc: Lucas De Marchi <lucas.demarchi@xxxxxxxxx> Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Jani Nikula (12): drm/i915/bios: mass convert dev_priv to i915 drm/i915/bios: store bdb version in i915 drm/i915/bios: limit default outputs by platform on missing VBT drm/i915/bios: limit default outputs to ports A through F drm/i915/bios: create fake child devices on missing VBT drm/i915/bios: rename display_device_data to intel_bios_encoder_data drm/i915/bios: add i915 backpointer to intel_bios_encoder_data drm/i915/vbt: add helper functions to check output support drm/i915/bios: save a higher level pointer in ddi_vbt_port_info[] drm/i915/bios: start using the intel_bios_encoder_data directly drm/i915/bios: start using intel_bios_encoder_data for Type-C USB and TBT drm/i915/bios: add intel_bios_encoder_data to encoder, use for iboost drivers/gpu/drm/i915/display/intel_bios.c | 1021 +++++++++-------- drivers/gpu/drm/i915/display/intel_bios.h | 17 +- drivers/gpu/drm/i915/display/intel_ddi.c | 28 +- .../drm/i915/display/intel_display_types.h | 3 + drivers/gpu/drm/i915/i915_drv.h | 9 +- 5 files changed, 584 insertions(+), 494 deletions(-) -- 2.20.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx