On Thu, Jan 11, 2024 at 07:21:14PM +0200, Jani Nikula wrote: > All things VBT should be placed in intel_bios.c. > > While at it, shove in a FIXME comment about VBT possibly originating > from other places than opregion. > > Cc: Radhakrishna Sripada <radhakrishna.sripada@xxxxxxxxx> > Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> LGTM, Reviewed-by: Radhakrishna Sripada <radhakrishna.sripada@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_bios.c | 25 +++++++++++++++++++ > drivers/gpu/drm/i915/display/intel_bios.h | 2 ++ > .../drm/i915/display/intel_display_debugfs.c | 13 +--------- > 3 files changed, 28 insertions(+), 12 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > index 0e61e424802e..cf8e6f7bd490 100644 > --- a/drivers/gpu/drm/i915/display/intel_bios.c > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > @@ -3656,3 +3656,28 @@ void intel_bios_for_each_encoder(struct drm_i915_private *i915, > list_for_each_entry(devdata, &i915->display.vbt.display_devices, node) > func(i915, devdata); > } > + > +static int intel_bios_vbt_show(struct seq_file *m, void *unused) > +{ > + struct drm_i915_private *i915 = m->private; > + struct intel_opregion *opregion = &i915->display.opregion; > + > + /* > + * FIXME: VBT might originate from other places than opregion, and then > + * this would be incorrect. > + */ > + if (opregion->vbt) > + seq_write(m, opregion->vbt, opregion->vbt_size); > + > + return 0; > +} > + > +DEFINE_SHOW_ATTRIBUTE(intel_bios_vbt); > + > +void intel_bios_debugfs_register(struct drm_i915_private *i915) > +{ > + struct drm_minor *minor = i915->drm.primary; > + > + debugfs_create_file("i915_vbt", 0444, minor->debugfs_root, > + i915, &intel_bios_vbt_fops); > +} > diff --git a/drivers/gpu/drm/i915/display/intel_bios.h b/drivers/gpu/drm/i915/display/intel_bios.h > index 96673dc707e7..41bfb009d4b0 100644 > --- a/drivers/gpu/drm/i915/display/intel_bios.h > +++ b/drivers/gpu/drm/i915/display/intel_bios.h > @@ -280,4 +280,6 @@ void intel_bios_for_each_encoder(struct drm_i915_private *i915, > void (*func)(struct drm_i915_private *i915, > const struct intel_bios_encoder_data *devdata)); > > +void intel_bios_debugfs_register(struct drm_i915_private *i915); > + > #endif /* _INTEL_BIOS_H_ */ > diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c > index d951edb36687..9ee7e0738059 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c > +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c > @@ -97,17 +97,6 @@ static int i915_opregion(struct seq_file *m, void *unused) > return 0; > } > > -static int i915_vbt(struct seq_file *m, void *unused) > -{ > - struct drm_i915_private *i915 = node_to_i915(m->private); > - struct intel_opregion *opregion = &i915->display.opregion; > - > - if (opregion->vbt) > - seq_write(m, opregion->vbt, opregion->vbt_size); > - > - return 0; > -} > - > static int i915_gem_framebuffer_info(struct seq_file *m, void *data) > { > struct drm_i915_private *dev_priv = node_to_i915(m->private); > @@ -1067,7 +1056,6 @@ static const struct drm_info_list intel_display_debugfs_list[] = { > {"i915_frontbuffer_tracking", i915_frontbuffer_tracking, 0}, > {"i915_sr_status", i915_sr_status, 0}, > {"i915_opregion", i915_opregion, 0}, > - {"i915_vbt", i915_vbt, 0}, > {"i915_gem_framebuffer", i915_gem_framebuffer_info, 0}, > {"i915_power_domain_info", i915_power_domain_info, 0}, > {"i915_display_info", i915_display_info, 0}, > @@ -1105,6 +1093,7 @@ void intel_display_debugfs_register(struct drm_i915_private *i915) > ARRAY_SIZE(intel_display_debugfs_list), > minor->debugfs_root, minor); > > + intel_bios_debugfs_register(i915); > intel_cdclk_debugfs_register(i915); > intel_dmc_debugfs_register(i915); > intel_fbc_debugfs_register(i915); > -- > 2.39.2 >