[Intel-gfx] [PATCH 3/4] drm/i915: move sdvo mappings to vbt data

Jani Nikula jani.nikula at intel.com
Tue Mar 29 12:25:52 UTC 2016


On Tue, 29 Mar 2016, Daniel Vetter <daniel at ffwll.ch> wrote:
> On Thu, Mar 24, 2016 at 05:50:22PM +0200, Jani Nikula wrote:
>> Move all data initialized from VBT under dev_priv->vbt. No functional
>> changes.
>> 
>> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
>> ---
>>  drivers/gpu/drm/i915/i915_drv.h   |  3 +--
>>  drivers/gpu/drm/i915/intel_bios.c |  2 +-
>>  drivers/gpu/drm/i915/intel_sdvo.c | 16 ++++++++--------
>>  3 files changed, 10 insertions(+), 11 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>> index ad6f69ef95d5..bf867e28731d 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -1491,6 +1491,7 @@ struct intel_vbt_data {
>>  	union child_device_config *child_dev;
>>  
>>  	struct ddi_vbt_port_info ddi_port_info[I915_MAX_PORTS];
>> +	struct sdvo_device_mapping sdvo_mappings[2];
>>  };
>>  
>>  enum intel_ddb_partitioning {
>> @@ -1823,8 +1824,6 @@ struct drm_i915_private {
>>  
>>  	/* Kernel Modesetting */
>>  
>> -	struct sdvo_device_mapping sdvo_mappings[2];
>> -
>>  	struct drm_crtc *plane_to_crtc_mapping[I915_MAX_PIPES];
>>  	struct drm_crtc *pipe_to_crtc_mapping[I915_MAX_PIPES];
>>  	wait_queue_head_t pending_flip_queue;
>> diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
>> index 3af8a4a2e145..407fb7a12a49 100644
>> --- a/drivers/gpu/drm/i915/intel_bios.c
>> +++ b/drivers/gpu/drm/i915/intel_bios.c
>> @@ -482,7 +482,7 @@ parse_sdvo_device_mapping(struct drm_i915_private *dev_priv,
>>  			      child->slave_addr,
>>  			      (child->dvo_port == DEVICE_PORT_DVOB) ?
>>  			      "SDVOB" : "SDVOC");
>> -		p_mapping = &(dev_priv->sdvo_mappings[child->dvo_port - 1]);
>> +		p_mapping = &dev_priv->vbt.sdvo_mappings[child->dvo_port - 1];
>
> Is the long-term plan that you pass around a point to dev_priv->vbt into
> all the parsing functions? Could be nice step to reinforce all your work
> to have vbt parsing consolidated into one place.

Yes, eventually I'd like (most of) dev_priv->vbt be private to
intel_bios.c and abstracted away from the rest of the driver.

> Anyway, on patches 2-4: Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>

Thanks, pushed to drm-intel-next-queued.

BR,
Jani.

>
>>  		if (!p_mapping->initialized) {
>>  			p_mapping->dvo_port = child->dvo_port;
>>  			p_mapping->slave_addr = child->slave_addr;
>> diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
>> index fae64bc93c1b..2128fae5687d 100644
>> --- a/drivers/gpu/drm/i915/intel_sdvo.c
>> +++ b/drivers/gpu/drm/i915/intel_sdvo.c
>> @@ -2260,9 +2260,9 @@ intel_sdvo_select_ddc_bus(struct drm_i915_private *dev_priv,
>>  	struct sdvo_device_mapping *mapping;
>>  
>>  	if (sdvo->port == PORT_B)
>> -		mapping = &(dev_priv->sdvo_mappings[0]);
>> +		mapping = &dev_priv->vbt.sdvo_mappings[0];
>>  	else
>> -		mapping = &(dev_priv->sdvo_mappings[1]);
>> +		mapping = &dev_priv->vbt.sdvo_mappings[1];
>>  
>>  	if (mapping->initialized)
>>  		sdvo->ddc_bus = 1 << ((mapping->ddc_pin & 0xf0) >> 4);
>> @@ -2278,9 +2278,9 @@ intel_sdvo_select_i2c_bus(struct drm_i915_private *dev_priv,
>>  	u8 pin;
>>  
>>  	if (sdvo->port == PORT_B)
>> -		mapping = &dev_priv->sdvo_mappings[0];
>> +		mapping = &dev_priv->vbt.sdvo_mappings[0];
>>  	else
>> -		mapping = &dev_priv->sdvo_mappings[1];
>> +		mapping = &dev_priv->vbt.sdvo_mappings[1];
>>  
>>  	if (mapping->initialized &&
>>  	    intel_gmbus_is_valid_pin(dev_priv, mapping->i2c_pin))
>> @@ -2316,11 +2316,11 @@ intel_sdvo_get_slave_addr(struct drm_device *dev, struct intel_sdvo *sdvo)
>>  	struct sdvo_device_mapping *my_mapping, *other_mapping;
>>  
>>  	if (sdvo->port == PORT_B) {
>> -		my_mapping = &dev_priv->sdvo_mappings[0];
>> -		other_mapping = &dev_priv->sdvo_mappings[1];
>> +		my_mapping = &dev_priv->vbt.sdvo_mappings[0];
>> +		other_mapping = &dev_priv->vbt.sdvo_mappings[1];
>>  	} else {
>> -		my_mapping = &dev_priv->sdvo_mappings[1];
>> -		other_mapping = &dev_priv->sdvo_mappings[0];
>> +		my_mapping = &dev_priv->vbt.sdvo_mappings[1];
>> +		other_mapping = &dev_priv->vbt.sdvo_mappings[0];
>>  	}
>>  
>>  	/* If the BIOS described our SDVO device, take advantage of it. */
>> -- 
>> 2.1.4
>> 
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Technology Center


More information about the Intel-gfx mailing list