diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dvo.c')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_dvo.c | 93 | 
1 files changed, 47 insertions, 46 deletions
diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c index a4d2606de77..ebf213c96b9 100644 --- a/drivers/gpu/drm/i915/intel_dvo.c +++ b/drivers/gpu/drm/i915/intel_dvo.c @@ -25,6 +25,7 @@   *	Eric Anholt <eric@anholt.net>   */  #include <linux/i2c.h> +#include <linux/slab.h>  #include "drmP.h"  #include "drm.h"  #include "drm_crtc.h" @@ -79,8 +80,8 @@ static struct intel_dvo_device intel_dvo_devices[] = {  static void intel_dvo_dpms(struct drm_encoder *encoder, int mode)  {  	struct drm_i915_private *dev_priv = encoder->dev->dev_private; -	struct intel_output *intel_output = enc_to_intel_output(encoder); -	struct intel_dvo_device *dvo = intel_output->dev_priv; +	struct intel_encoder *intel_encoder = enc_to_intel_encoder(encoder); +	struct intel_dvo_device *dvo = intel_encoder->dev_priv;  	u32 dvo_reg = dvo->dvo_reg;  	u32 temp = I915_READ(dvo_reg); @@ -98,8 +99,8 @@ static void intel_dvo_dpms(struct drm_encoder *encoder, int mode)  static void intel_dvo_save(struct drm_connector *connector)  {  	struct drm_i915_private *dev_priv = connector->dev->dev_private; -	struct intel_output *intel_output = to_intel_output(connector); -	struct intel_dvo_device *dvo = intel_output->dev_priv; +	struct intel_encoder *intel_encoder = to_intel_encoder(connector); +	struct intel_dvo_device *dvo = intel_encoder->dev_priv;  	/* Each output should probably just save the registers it touches,  	 * but for now, use more overkill. @@ -114,8 +115,8 @@ static void intel_dvo_save(struct drm_connector *connector)  static void intel_dvo_restore(struct drm_connector *connector)  {  	struct drm_i915_private *dev_priv = connector->dev->dev_private; -	struct intel_output *intel_output = to_intel_output(connector); -	struct intel_dvo_device *dvo = intel_output->dev_priv; +	struct intel_encoder *intel_encoder = to_intel_encoder(connector); +	struct intel_dvo_device *dvo = intel_encoder->dev_priv;  	dvo->dev_ops->restore(dvo); @@ -127,8 +128,8 @@ static void intel_dvo_restore(struct drm_connector *connector)  static int intel_dvo_mode_valid(struct drm_connector *connector,  				struct drm_display_mode *mode)  { -	struct intel_output *intel_output = to_intel_output(connector); -	struct intel_dvo_device *dvo = intel_output->dev_priv; +	struct intel_encoder *intel_encoder = to_intel_encoder(connector); +	struct intel_dvo_device *dvo = intel_encoder->dev_priv;  	if (mode->flags & DRM_MODE_FLAG_DBLSCAN)  		return MODE_NO_DBLESCAN; @@ -149,8 +150,8 @@ static bool intel_dvo_mode_fixup(struct drm_encoder *encoder,  				 struct drm_display_mode *mode,  				 struct drm_display_mode *adjusted_mode)  { -	struct intel_output *intel_output = enc_to_intel_output(encoder); -	struct intel_dvo_device *dvo = intel_output->dev_priv; +	struct intel_encoder *intel_encoder = enc_to_intel_encoder(encoder); +	struct intel_dvo_device *dvo = intel_encoder->dev_priv;  	/* If we have timings from the BIOS for the panel, put them in  	 * to the adjusted mode.  The CRTC will be set up for this mode, @@ -185,8 +186,8 @@ static void intel_dvo_mode_set(struct drm_encoder *encoder,  	struct drm_device *dev = encoder->dev;  	struct drm_i915_private *dev_priv = dev->dev_private;  	struct intel_crtc *intel_crtc = to_intel_crtc(encoder->crtc); -	struct intel_output *intel_output = enc_to_intel_output(encoder); -	struct intel_dvo_device *dvo = intel_output->dev_priv; +	struct intel_encoder *intel_encoder = enc_to_intel_encoder(encoder); +	struct intel_dvo_device *dvo = intel_encoder->dev_priv;  	int pipe = intel_crtc->pipe;  	u32 dvo_val;  	u32 dvo_reg = dvo->dvo_reg, dvo_srcdim_reg; @@ -240,23 +241,23 @@ static void intel_dvo_mode_set(struct drm_encoder *encoder,   */  static enum drm_connector_status intel_dvo_detect(struct drm_connector *connector)  { -	struct intel_output *intel_output = to_intel_output(connector); -	struct intel_dvo_device *dvo = intel_output->dev_priv; +	struct intel_encoder *intel_encoder = to_intel_encoder(connector); +	struct intel_dvo_device *dvo = intel_encoder->dev_priv;  	return dvo->dev_ops->detect(dvo);  }  static int intel_dvo_get_modes(struct drm_connector *connector)  { -	struct intel_output *intel_output = to_intel_output(connector); -	struct intel_dvo_device *dvo = intel_output->dev_priv; +	struct intel_encoder *intel_encoder = to_intel_encoder(connector); +	struct intel_dvo_device *dvo = intel_encoder->dev_priv;  	/* We should probably have an i2c driver get_modes function for those  	 * devices which will have a fixed set of modes determined by the chip  	 * (TV-out, for example), but for now with just TMDS and LVDS,  	 * that's not the case.  	 */ -	intel_ddc_get_modes(intel_output); +	intel_ddc_get_modes(intel_encoder);  	if (!list_empty(&connector->probed_modes))  		return 1; @@ -274,8 +275,8 @@ static int intel_dvo_get_modes(struct drm_connector *connector)  static void intel_dvo_destroy (struct drm_connector *connector)  { -	struct intel_output *intel_output = to_intel_output(connector); -	struct intel_dvo_device *dvo = intel_output->dev_priv; +	struct intel_encoder *intel_encoder = to_intel_encoder(connector); +	struct intel_dvo_device *dvo = intel_encoder->dev_priv;  	if (dvo) {  		if (dvo->dev_ops->destroy) @@ -285,13 +286,13 @@ static void intel_dvo_destroy (struct drm_connector *connector)  		/* no need, in i830_dvoices[] now */  		//kfree(dvo);  	} -	if (intel_output->i2c_bus) -		intel_i2c_destroy(intel_output->i2c_bus); -	if (intel_output->ddc_bus) -		intel_i2c_destroy(intel_output->ddc_bus); +	if (intel_encoder->i2c_bus) +		intel_i2c_destroy(intel_encoder->i2c_bus); +	if (intel_encoder->ddc_bus) +		intel_i2c_destroy(intel_encoder->ddc_bus);  	drm_sysfs_connector_remove(connector);  	drm_connector_cleanup(connector); -	kfree(intel_output); +	kfree(intel_encoder);  }  #ifdef RANDR_GET_CRTC_INTERFACE @@ -299,8 +300,8 @@ static struct drm_crtc *intel_dvo_get_crtc(struct drm_connector *connector)  {  	struct drm_device *dev = connector->dev;  	struct drm_i915_private *dev_priv = dev->dev_private; -	struct intel_output *intel_output = to_intel_output(connector); -	struct intel_dvo_device *dvo = intel_output->dev_priv; +	struct intel_encoder *intel_encoder = to_intel_encoder(connector); +	struct intel_dvo_device *dvo = intel_encoder->dev_priv;  	int pipe = !!(I915_READ(dvo->dvo_reg) & SDVO_PIPE_B_SELECT);  	return intel_pipe_to_crtc(pScrn, pipe); @@ -351,8 +352,8 @@ intel_dvo_get_current_mode (struct drm_connector *connector)  {  	struct drm_device *dev = connector->dev;  	struct drm_i915_private *dev_priv = dev->dev_private; -	struct intel_output *intel_output = to_intel_output(connector); -	struct intel_dvo_device *dvo = intel_output->dev_priv; +	struct intel_encoder *intel_encoder = to_intel_encoder(connector); +	struct intel_dvo_device *dvo = intel_encoder->dev_priv;  	uint32_t dvo_reg = dvo->dvo_reg;  	uint32_t dvo_val = I915_READ(dvo_reg);  	struct drm_display_mode *mode = NULL; @@ -382,24 +383,24 @@ intel_dvo_get_current_mode (struct drm_connector *connector)  void intel_dvo_init(struct drm_device *dev)  { -	struct intel_output *intel_output; +	struct intel_encoder *intel_encoder;  	struct intel_dvo_device *dvo;  	struct i2c_adapter *i2cbus = NULL;  	int ret = 0;  	int i;  	int encoder_type = DRM_MODE_ENCODER_NONE; -	intel_output = kzalloc (sizeof(struct intel_output), GFP_KERNEL); -	if (!intel_output) +	intel_encoder = kzalloc (sizeof(struct intel_encoder), GFP_KERNEL); +	if (!intel_encoder)  		return;  	/* Set up the DDC bus */ -	intel_output->ddc_bus = intel_i2c_create(dev, GPIOD, "DVODDC_D"); -	if (!intel_output->ddc_bus) +	intel_encoder->ddc_bus = intel_i2c_create(dev, GPIOD, "DVODDC_D"); +	if (!intel_encoder->ddc_bus)  		goto free_intel;  	/* Now, try to find a controller */  	for (i = 0; i < ARRAY_SIZE(intel_dvo_devices); i++) { -		struct drm_connector *connector = &intel_output->base; +		struct drm_connector *connector = &intel_encoder->base;  		int gpio;  		dvo = &intel_dvo_devices[i]; @@ -434,11 +435,11 @@ void intel_dvo_init(struct drm_device *dev)  		if (!ret)  			continue; -		intel_output->type = INTEL_OUTPUT_DVO; -		intel_output->crtc_mask = (1 << 0) | (1 << 1); +		intel_encoder->type = INTEL_OUTPUT_DVO; +		intel_encoder->crtc_mask = (1 << 0) | (1 << 1);  		switch (dvo->type) {  		case INTEL_DVO_CHIP_TMDS: -			intel_output->clone_mask = +			intel_encoder->clone_mask =  				(1 << INTEL_DVO_TMDS_CLONE_BIT) |  				(1 << INTEL_ANALOG_CLONE_BIT);  			drm_connector_init(dev, connector, @@ -447,7 +448,7 @@ void intel_dvo_init(struct drm_device *dev)  			encoder_type = DRM_MODE_ENCODER_TMDS;  			break;  		case INTEL_DVO_CHIP_LVDS: -			intel_output->clone_mask = +			intel_encoder->clone_mask =  				(1 << INTEL_DVO_LVDS_CLONE_BIT);  			drm_connector_init(dev, connector,  					   &intel_dvo_connector_funcs, @@ -462,16 +463,16 @@ void intel_dvo_init(struct drm_device *dev)  		connector->interlace_allowed = false;  		connector->doublescan_allowed = false; -		intel_output->dev_priv = dvo; -		intel_output->i2c_bus = i2cbus; +		intel_encoder->dev_priv = dvo; +		intel_encoder->i2c_bus = i2cbus; -		drm_encoder_init(dev, &intel_output->enc, +		drm_encoder_init(dev, &intel_encoder->enc,  				 &intel_dvo_enc_funcs, encoder_type); -		drm_encoder_helper_add(&intel_output->enc, +		drm_encoder_helper_add(&intel_encoder->enc,  				       &intel_dvo_helper_funcs); -		drm_mode_connector_attach_encoder(&intel_output->base, -						  &intel_output->enc); +		drm_mode_connector_attach_encoder(&intel_encoder->base, +						  &intel_encoder->enc);  		if (dvo->type == INTEL_DVO_CHIP_LVDS) {  			/* For our LVDS chipsets, we should hopefully be able  			 * to dig the fixed panel mode out of the BIOS data. @@ -489,10 +490,10 @@ void intel_dvo_init(struct drm_device *dev)  		return;  	} -	intel_i2c_destroy(intel_output->ddc_bus); +	intel_i2c_destroy(intel_encoder->ddc_bus);  	/* Didn't find a chip, so tear down. */  	if (i2cbus != NULL)  		intel_i2c_destroy(i2cbus);  free_intel: -	kfree(intel_output); +	kfree(intel_encoder);  }  |