mbox series

[00/15] drm/i915/bios: PNPID->panel_type matching

Message ID 20220510104242.6099-1-ville.syrjala@linux.intel.com (mailing list archive)
Headers show
Series drm/i915/bios: PNPID->panel_type matching | expand

Message

Ville Syrjälä May 10, 2022, 10:42 a.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Handle VBT panel_type=0xff, ie. extract the panel PNPID from
the EDID and match it againts the VBT panel PNPIDs to determine
the actual panel_type.

We need to massage the PPS init code a bit to make sure it
works sensible without having access to the VBT power
sequencing delays until the end of the eDP probe.

I also started on the path to split the per-panel data from
i915->vbt into its own thing. So should get us one step closer
to supporting multiple internal panels.

Ville Syrjälä (15):
  drm/i915: Pass intel_connector to intel_vrr_is_capable()
  drm/i915: Extract intel_edp_fixup_vbt_bpp()
  drm/i915/pps: Split pps_init_delays() into distinct parts
  drm/i915/pps: Introduce pps_delays_valid()
  drm/i915/pps: Don't apply quirks/etc. to the VBT PPS delays if they
    haven't been initialized
  drm/i915/pps: Stash away original BIOS programmed PPS delays
  drm/i915/pps: Split PPS init+sanitize in two
  drm/i915/pps: Reinit PPS delays after VBT has been fully parsed
  drm/i915/pps: Keep VDD enabled during eDP probe
  drm/i915/bios: Split parse_driver_features() into two parts
  drm/i915/bios: Split VBT parsing to global vs. panel specific parts
  drm/i915/bios: Split VBT data into per-panel vs. global parts
  drm/i915/bios: Determine panel type via PNPID match
  drm/edid: Extract drm_edid_decode_mfg_id()
  drm/i915/bios: Dump PNPID and panel name

 drivers/gpu/drm/i915/display/g4x_dp.c         |  22 +-
 drivers/gpu/drm/i915/display/icl_dsi.c        |  11 +-
 .../gpu/drm/i915/display/intel_backlight.c    |  23 +-
 drivers/gpu/drm/i915/display/intel_bios.c     | 496 +++++++++++-------
 drivers/gpu/drm/i915/display/intel_bios.h     |   6 +
 drivers/gpu/drm/i915/display/intel_ddi.c      |  22 +-
 .../drm/i915/display/intel_ddi_buf_trans.c    |   9 +-
 .../drm/i915/display/intel_display_types.h    |  71 +++
 drivers/gpu/drm/i915/display/intel_dp.c       |  45 +-
 drivers/gpu/drm/i915/display/intel_dp.h       |   2 +
 .../drm/i915/display/intel_dp_aux_backlight.c |   6 +-
 drivers/gpu/drm/i915/display/intel_drrs.c     |   3 -
 drivers/gpu/drm/i915/display/intel_dsi.c      |   2 +-
 .../i915/display/intel_dsi_dcs_backlight.c    |   9 +-
 drivers/gpu/drm/i915/display/intel_dsi_vbt.c  |  56 +-
 drivers/gpu/drm/i915/display/intel_lvds.c     |   7 +-
 drivers/gpu/drm/i915/display/intel_panel.c    |  13 +-
 drivers/gpu/drm/i915/display/intel_pps.c      | 129 ++++-
 drivers/gpu/drm/i915/display/intel_pps.h      |   1 +
 drivers/gpu/drm/i915/display/intel_psr.c      |  30 +-
 drivers/gpu/drm/i915/display/intel_sdvo.c     |   3 +
 drivers/gpu/drm/i915/display/intel_vrr.c      |  14 +-
 drivers/gpu/drm/i915/display/intel_vrr.h      |   4 +-
 drivers/gpu/drm/i915/display/vlv_dsi.c        |  14 +-
 drivers/gpu/drm/i915/i915_drv.h               |  63 ---
 include/drm/drm_edid.h                        |  21 +-
 26 files changed, 672 insertions(+), 410 deletions(-)

Comments

Jani Nikula May 25, 2022, 8:47 a.m. UTC | #1
On Tue, 10 May 2022, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Handle VBT panel_type=0xff, ie. extract the panel PNPID from
> the EDID and match it againts the VBT panel PNPIDs to determine
> the actual panel_type.
>
> We need to massage the PPS init code a bit to make sure it
> works sensible without having access to the VBT power
> sequencing delays until the end of the eDP probe.
>
> I also started on the path to split the per-panel data from
> i915->vbt into its own thing. So should get us one step closer
> to supporting multiple internal panels.

There was one drrs type check removal in patch 12 that needs explaining,
maybe there were some things I could've nitpicked about here and there,
but meh, series is,

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

>
> Ville Syrjälä (15):
>   drm/i915: Pass intel_connector to intel_vrr_is_capable()
>   drm/i915: Extract intel_edp_fixup_vbt_bpp()
>   drm/i915/pps: Split pps_init_delays() into distinct parts
>   drm/i915/pps: Introduce pps_delays_valid()
>   drm/i915/pps: Don't apply quirks/etc. to the VBT PPS delays if they
>     haven't been initialized
>   drm/i915/pps: Stash away original BIOS programmed PPS delays
>   drm/i915/pps: Split PPS init+sanitize in two
>   drm/i915/pps: Reinit PPS delays after VBT has been fully parsed
>   drm/i915/pps: Keep VDD enabled during eDP probe
>   drm/i915/bios: Split parse_driver_features() into two parts
>   drm/i915/bios: Split VBT parsing to global vs. panel specific parts
>   drm/i915/bios: Split VBT data into per-panel vs. global parts
>   drm/i915/bios: Determine panel type via PNPID match
>   drm/edid: Extract drm_edid_decode_mfg_id()
>   drm/i915/bios: Dump PNPID and panel name
>
>  drivers/gpu/drm/i915/display/g4x_dp.c         |  22 +-
>  drivers/gpu/drm/i915/display/icl_dsi.c        |  11 +-
>  .../gpu/drm/i915/display/intel_backlight.c    |  23 +-
>  drivers/gpu/drm/i915/display/intel_bios.c     | 496 +++++++++++-------
>  drivers/gpu/drm/i915/display/intel_bios.h     |   6 +
>  drivers/gpu/drm/i915/display/intel_ddi.c      |  22 +-
>  .../drm/i915/display/intel_ddi_buf_trans.c    |   9 +-
>  .../drm/i915/display/intel_display_types.h    |  71 +++
>  drivers/gpu/drm/i915/display/intel_dp.c       |  45 +-
>  drivers/gpu/drm/i915/display/intel_dp.h       |   2 +
>  .../drm/i915/display/intel_dp_aux_backlight.c |   6 +-
>  drivers/gpu/drm/i915/display/intel_drrs.c     |   3 -
>  drivers/gpu/drm/i915/display/intel_dsi.c      |   2 +-
>  .../i915/display/intel_dsi_dcs_backlight.c    |   9 +-
>  drivers/gpu/drm/i915/display/intel_dsi_vbt.c  |  56 +-
>  drivers/gpu/drm/i915/display/intel_lvds.c     |   7 +-
>  drivers/gpu/drm/i915/display/intel_panel.c    |  13 +-
>  drivers/gpu/drm/i915/display/intel_pps.c      | 129 ++++-
>  drivers/gpu/drm/i915/display/intel_pps.h      |   1 +
>  drivers/gpu/drm/i915/display/intel_psr.c      |  30 +-
>  drivers/gpu/drm/i915/display/intel_sdvo.c     |   3 +
>  drivers/gpu/drm/i915/display/intel_vrr.c      |  14 +-
>  drivers/gpu/drm/i915/display/intel_vrr.h      |   4 +-
>  drivers/gpu/drm/i915/display/vlv_dsi.c        |  14 +-
>  drivers/gpu/drm/i915/i915_drv.h               |  63 ---
>  include/drm/drm_edid.h                        |  21 +-
>  26 files changed, 672 insertions(+), 410 deletions(-)