mbox series

[00/12] drm/i915/bios: vbt child device rework

Message ID cover.1613580193.git.jani.nikula@intel.com (mailing list archive)
Headers show
Series drm/i915/bios: vbt child device rework | expand

Message

Jani Nikula Feb. 17, 2021, 5:03 p.m. UTC
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@intel.com



Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>


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(-)

Comments

Lucas De Marchi Feb. 17, 2021, 5:54 p.m. UTC | #1
On Wed, Feb 17, 2021 at 07:03:30PM +0200, Jani Nikula wrote:
>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

humn... but we'd still need the patches in that series to cleanup
the calls to intel_ddi_init() from intel_display.c. Or did I miss
anything?

I did a quick scan through the patches and left a few comments. Overall
it looks good to me, but I need to dedicate a little more time to give a
proper r-b. I will do soon if no one beats me to it.


thanks
Lucas De Marchi

>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@intel.com
>
>
>
>Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
>
>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
>
Jani Nikula Feb. 17, 2021, 7:57 p.m. UTC | #2
On Wed, 17 Feb 2021, Lucas De Marchi <lucas.demarchi@intel.com> wrote:
> On Wed, Feb 17, 2021 at 07:03:30PM +0200, Jani Nikula wrote:
>>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
>
> humn... but we'd still need the patches in that series to cleanup
> the calls to intel_ddi_init() from intel_display.c. Or did I miss
> anything?

Nah, my bad. This makes it possible to do what you do there.

BR,
Jani.

>
> I did a quick scan through the patches and left a few comments. Overall
> it looks good to me, but I need to dedicate a little more time to give a
> proper r-b. I will do soon if no one beats me to it.
>
>
> thanks
> Lucas De Marchi
>
>>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@intel.com
>>
>>
>>
>>Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>>Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>
>>
>>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
>>