Message ID | 5e14a9559b6916022b506e5eb8d943783dc627a2.1704992868.git.jani.nikula@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915/opregion: better abstractions | expand |
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@intel.com> > Signed-off-by: Jani Nikula <jani.nikula@intel.com> LGTM, Reviewed-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com> > --- > 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 >
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);
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@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- 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(-)