Commit ada8f955 authored by Jani Nikula's avatar Jani Nikula

drm/i915/debugfs: add a separate debugfs file for VBT

In the future the VBT might not be in mailbox #4 of the ACPI OpRegion,
thus unavailable in i915_opregion, so add a separate file for the VBT.

v2: Drop the locking as unneeded (Chris)
v3: Rebase

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1450178232-27780-1-git-send-email-jani.nikula@intel.com
parent 2455a8e4
...@@ -1857,6 +1857,19 @@ static int i915_opregion(struct seq_file *m, void *unused) ...@@ -1857,6 +1857,19 @@ static int i915_opregion(struct seq_file *m, void *unused)
return 0; return 0;
} }
static int i915_vbt(struct seq_file *m, void *unused)
{
struct drm_info_node *node = m->private;
struct drm_device *dev = node->minor->dev;
struct drm_i915_private *dev_priv = dev->dev_private;
struct intel_opregion *opregion = &dev_priv->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) static int i915_gem_framebuffer_info(struct seq_file *m, void *data)
{ {
struct drm_info_node *node = m->private; struct drm_info_node *node = m->private;
...@@ -5325,6 +5338,7 @@ static const struct drm_info_list i915_debugfs_list[] = { ...@@ -5325,6 +5338,7 @@ static const struct drm_info_list i915_debugfs_list[] = {
{"i915_ips_status", i915_ips_status, 0}, {"i915_ips_status", i915_ips_status, 0},
{"i915_sr_status", i915_sr_status, 0}, {"i915_sr_status", i915_sr_status, 0},
{"i915_opregion", i915_opregion, 0}, {"i915_opregion", i915_opregion, 0},
{"i915_vbt", i915_vbt, 0},
{"i915_gem_framebuffer", i915_gem_framebuffer_info, 0}, {"i915_gem_framebuffer", i915_gem_framebuffer_info, 0},
{"i915_context_status", i915_context_status, 0}, {"i915_context_status", i915_context_status, 0},
{"i915_dump_lrc", i915_dump_lrc, 0}, {"i915_dump_lrc", i915_dump_lrc, 0},
......
...@@ -458,6 +458,7 @@ struct intel_opregion { ...@@ -458,6 +458,7 @@ struct intel_opregion {
u32 swsci_sbcb_sub_functions; u32 swsci_sbcb_sub_functions;
struct opregion_asle *asle; struct opregion_asle *asle;
const void *vbt; const void *vbt;
u32 vbt_size;
u32 *lid_state; u32 *lid_state;
struct work_struct asle_work; struct work_struct asle_work;
}; };
......
...@@ -993,6 +993,7 @@ int intel_opregion_setup(struct drm_device *dev) ...@@ -993,6 +993,7 @@ int intel_opregion_setup(struct drm_device *dev)
if (intel_bios_is_valid_vbt(vbt, vbt_size)) { if (intel_bios_is_valid_vbt(vbt, vbt_size)) {
DRM_DEBUG_KMS("Found valid VBT in ACPI OpRegion\n"); DRM_DEBUG_KMS("Found valid VBT in ACPI OpRegion\n");
opregion->vbt = vbt; opregion->vbt = vbt;
opregion->vbt_size = vbt_size;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment