[Intel-gfx] [PATCH 1/2] drm/i915: Update VBT fields for child devices
Shubhangi Shrivastava
shubhangi.shrivastava at intel.com
Thu Mar 31 10:42:25 UTC 2016
On Wednesday 30 March 2016 08:18 PM, Jani Nikula wrote:
> On Fri, 25 Mar 2016, Shubhangi Shrivastava <shubhangi.shrivastava at intel.com> wrote:
>> This patch adds new fields that are not yet added in drm code
>> in child devices struct
>>
>> Signed-off-by: Sivakumar Thulasimani <sivakumar.thulasimani at intel.com>
>> Signed-off-by: Durgadoss R <durgadoss.r at intel.com>
>> Signed-off-by: Shubhangi Shrivastava <shubhangi.shrivastava at intel.com>
>> Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
>> ---
>> drivers/gpu/drm/i915/intel_bios.c | 15 ++++++++++++++-
>> drivers/gpu/drm/i915/intel_vbt_defs.h | 16 +++++++++++-----
>> 2 files changed, 25 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
>> index 083003b..e2f636c 100644
>> --- a/drivers/gpu/drm/i915/intel_bios.c
>> +++ b/drivers/gpu/drm/i915/intel_bios.c
>> @@ -1126,7 +1126,7 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
>> }
>>
>> /* Parse the I_boost config for SKL and above */
>> - if (bdb->version >= 196 && (child->common.flags_1 & IBOOST_ENABLE)) {
>> + if (bdb->version >= 196 && child->common.iboost) {
>> info->dp_boost_level = translate_iboost(child->common.iboost_level & 0xF);
>> DRM_DEBUG_KMS("VBT (e)DP boost level for port %c: %d\n",
>> port_name(port), info->dp_boost_level);
>> @@ -1244,6 +1244,19 @@ parse_device_mapping(struct drm_i915_private *dev_priv,
>> */
>> memcpy(child_dev_ptr, p_child,
>> min_t(size_t, p_defs->child_dev_size, sizeof(*p_child)));
>> +
>> + /*
>> + * copied full block, now init values when they are not
>> + * available in current version
>> + */
>> + if (bdb->version < 196) {
>> + /* Set default values for bits added from v196 */
>> + child_dev_ptr->common.iboost = 0;
>> + child_dev_ptr->common.hpd_invert = 0;
>> + }
>> +
>> + if (bdb->version < 192)
>> + child_dev_ptr->common.lspcon = 0;
>> }
>> return;
>> }
>> diff --git a/drivers/gpu/drm/i915/intel_vbt_defs.h b/drivers/gpu/drm/i915/intel_vbt_defs.h
>> index 749dcea..2da7be8 100644
>> --- a/drivers/gpu/drm/i915/intel_vbt_defs.h
>> +++ b/drivers/gpu/drm/i915/intel_vbt_defs.h
>> @@ -261,9 +261,6 @@ struct old_child_dev_config {
>> * versions. Notice that the meaning of the contents contents may still change,
>> * but at least the offsets are consistent. */
>>
>> -/* Definitions for flags_1 */
>> -#define IBOOST_ENABLE (1<<3)
>> -
>> struct common_child_dev_config {
>> u16 handle;
>> u16 device_type;
>> @@ -272,8 +269,17 @@ struct common_child_dev_config {
>> u8 not_common2[2];
>> u8 ddc_pin;
>> u16 edid_ptr;
>> - u8 obsolete;
>> - u8 flags_1;
>> + u8 dvo_cfg; /* See DEVICE_CFG_* above */
>> + u8 efp_routed:1;
>> + u8 lane_reversal:1;
>> + u8 lspcon:1;
>> + u8 iboost:1;
>> + u8 hpd_invert:1;
>> + u8 flag_reserved:3;
>> + u8 hdmi_support:1;
>> + u8 dp_support:1;
>> + u8 tmds_support:1;
>> + u8 support_reserved:5;
> You replace two bytes with three bytes, shifting the rest.
Oh yes.. Thats a miss. Thanks.. Fixed..
>
>> u8 not_common3[13];
>> u8 iboost_level;
>> } __packed;
More information about the Intel-gfx
mailing list