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 <[email protected]>
Signed-off-by: Jani Nikula <[email protected]>
---
 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

Reply via email to