diff options
author | Pradeep Bhat <pradeep.bhat@intel.com> | 2014-03-28 00:44:57 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-04-01 16:58:30 -0400 |
commit | 83a7280ebc359726d4b79b8772c9fddd7fd03f43 (patch) | |
tree | eec079b2d4390fa8ea582904e74f476ceb4ae907 /drivers/gpu/drm/i915/i915_drv.h | |
parent | c2d15359c4b5476c181d8a51bdeba4cead15c120 (diff) |
drm/i915: Adding VBT fields to support eDP DRRS feature
This patch reads the DRRS support and Mode type from VBT fields.
The read information will be stored in VBT struct during BIOS
parsing. The above functionality is needed for decision making
whether DRRS feature is supported in i915 driver for eDP panels.
This information helps us decide if seamless DRRS can be done
at runtime to support certain power saving features. This patch
was tested by setting necessary bit in VBT struct and merging
the new VBT with system BIOS so that we can read the value.
v2: Incorporated review comments from Chris Wilson
Removed "intel_" as a prefix for DRRS specific declarations.
v3: Incorporated Jani's review comments
Removed function which deducts drrs mode from panel_type. Modified some
print statements. Made changes to use DRRS_NOT_SUPPORTED as 0 instead of -1.
v4: Incorporated Jani's review comments.
Modifications around setting vbt drrs_type.
Signed-off-by: Pradeep Bhat <pradeep.bhat@intel.com>
Signed-off-by: Vandana Kannan <vandana.kannan@intel.com>
Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
[danvet: Drop the misleading/redundant comment about the added drrs
field in the vbt struct as discussed with Jani on irc.]
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.h')
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index ff02225d5edd..828886009ef4 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
@@ -1120,6 +1120,12 @@ struct ddi_vbt_port_info { | |||
1120 | uint8_t supports_dp:1; | 1120 | uint8_t supports_dp:1; |
1121 | }; | 1121 | }; |
1122 | 1122 | ||
1123 | enum drrs_support_type { | ||
1124 | DRRS_NOT_SUPPORTED = 0, | ||
1125 | STATIC_DRRS_SUPPORT = 1, | ||
1126 | SEAMLESS_DRRS_SUPPORT = 2 | ||
1127 | }; | ||
1128 | |||
1123 | struct intel_vbt_data { | 1129 | struct intel_vbt_data { |
1124 | struct drm_display_mode *lfp_lvds_vbt_mode; /* if any */ | 1130 | struct drm_display_mode *lfp_lvds_vbt_mode; /* if any */ |
1125 | struct drm_display_mode *sdvo_lvds_vbt_mode; /* if any */ | 1131 | struct drm_display_mode *sdvo_lvds_vbt_mode; /* if any */ |
@@ -1135,6 +1141,8 @@ struct intel_vbt_data { | |||
1135 | int lvds_ssc_freq; | 1141 | int lvds_ssc_freq; |
1136 | unsigned int bios_lvds_val; /* initial [PCH_]LVDS reg val in VBIOS */ | 1142 | unsigned int bios_lvds_val; /* initial [PCH_]LVDS reg val in VBIOS */ |
1137 | 1143 | ||
1144 | enum drrs_support_type drrs_type; | ||
1145 | |||
1138 | /* eDP */ | 1146 | /* eDP */ |
1139 | int edp_rate; | 1147 | int edp_rate; |
1140 | int edp_lanes; | 1148 | int edp_lanes; |