diff options
Diffstat (limited to 'drivers/video/omap2/displays/panel-tfp410.c')
| -rw-r--r-- | drivers/video/omap2/displays/panel-tfp410.c | 20 | 
1 files changed, 8 insertions, 12 deletions
diff --git a/drivers/video/omap2/displays/panel-tfp410.c b/drivers/video/omap2/displays/panel-tfp410.c index 40cc0cfa5d1..383811cf864 100644 --- a/drivers/video/omap2/displays/panel-tfp410.c +++ b/drivers/video/omap2/displays/panel-tfp410.c @@ -65,6 +65,9 @@ static int tfp410_power_on(struct omap_dss_device *dssdev)  	if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE)  		return 0; +	omapdss_dpi_set_timings(dssdev, &dssdev->panel.timings); +	omapdss_dpi_set_data_lines(dssdev, dssdev->phy.dpi.data_lines); +  	r = omapdss_dpi_display_enable(dssdev);  	if (r)  		goto err0; @@ -116,8 +119,8 @@ static int tfp410_probe(struct omap_dss_device *dssdev)  	}  	if (gpio_is_valid(ddata->pd_gpio)) { -		r = gpio_request_one(ddata->pd_gpio, GPIOF_OUT_INIT_LOW, -				"tfp410 pd"); +		r = devm_gpio_request_one(&dssdev->dev, ddata->pd_gpio, +				GPIOF_OUT_INIT_LOW, "tfp410 pd");  		if (r) {  			dev_err(&dssdev->dev, "Failed to request PD GPIO %d\n",  					ddata->pd_gpio); @@ -132,8 +135,7 @@ static int tfp410_probe(struct omap_dss_device *dssdev)  		if (!adapter) {  			dev_err(&dssdev->dev, "Failed to get I2C adapter, bus %d\n",  					i2c_bus_num); -			r = -EINVAL; -			goto err_i2c; +			return -EINVAL;  		}  		ddata->i2c_adapter = adapter; @@ -142,10 +144,6 @@ static int tfp410_probe(struct omap_dss_device *dssdev)  	dev_set_drvdata(&dssdev->dev, ddata);  	return 0; -err_i2c: -	if (gpio_is_valid(ddata->pd_gpio)) -		gpio_free(ddata->pd_gpio); -	return r;  }  static void __exit tfp410_remove(struct omap_dss_device *dssdev) @@ -157,9 +155,6 @@ static void __exit tfp410_remove(struct omap_dss_device *dssdev)  	if (ddata->i2c_adapter)  		i2c_put_adapter(ddata->i2c_adapter); -	if (gpio_is_valid(ddata->pd_gpio)) -		gpio_free(ddata->pd_gpio); -  	dev_set_drvdata(&dssdev->dev, NULL);  	mutex_unlock(&ddata->lock); @@ -231,7 +226,8 @@ static void tfp410_set_timings(struct omap_dss_device *dssdev,  	struct panel_drv_data *ddata = dev_get_drvdata(&dssdev->dev);  	mutex_lock(&ddata->lock); -	dpi_set_timings(dssdev, timings); +	omapdss_dpi_set_timings(dssdev, timings); +	dssdev->panel.timings = *timings;  	mutex_unlock(&ddata->lock);  }  |