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 40cc0cfa5d17..383811cf8648 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) | |||
65 | if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE) | 65 | if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE) |
66 | return 0; | 66 | return 0; |
67 | 67 | ||
68 | omapdss_dpi_set_timings(dssdev, &dssdev->panel.timings); | ||
69 | omapdss_dpi_set_data_lines(dssdev, dssdev->phy.dpi.data_lines); | ||
70 | |||
68 | r = omapdss_dpi_display_enable(dssdev); | 71 | r = omapdss_dpi_display_enable(dssdev); |
69 | if (r) | 72 | if (r) |
70 | goto err0; | 73 | goto err0; |
@@ -116,8 +119,8 @@ static int tfp410_probe(struct omap_dss_device *dssdev) | |||
116 | } | 119 | } |
117 | 120 | ||
118 | if (gpio_is_valid(ddata->pd_gpio)) { | 121 | if (gpio_is_valid(ddata->pd_gpio)) { |
119 | r = gpio_request_one(ddata->pd_gpio, GPIOF_OUT_INIT_LOW, | 122 | r = devm_gpio_request_one(&dssdev->dev, ddata->pd_gpio, |
120 | "tfp410 pd"); | 123 | GPIOF_OUT_INIT_LOW, "tfp410 pd"); |
121 | if (r) { | 124 | if (r) { |
122 | dev_err(&dssdev->dev, "Failed to request PD GPIO %d\n", | 125 | dev_err(&dssdev->dev, "Failed to request PD GPIO %d\n", |
123 | ddata->pd_gpio); | 126 | ddata->pd_gpio); |
@@ -132,8 +135,7 @@ static int tfp410_probe(struct omap_dss_device *dssdev) | |||
132 | if (!adapter) { | 135 | if (!adapter) { |
133 | dev_err(&dssdev->dev, "Failed to get I2C adapter, bus %d\n", | 136 | dev_err(&dssdev->dev, "Failed to get I2C adapter, bus %d\n", |
134 | i2c_bus_num); | 137 | i2c_bus_num); |
135 | r = -EINVAL; | 138 | return -EINVAL; |
136 | goto err_i2c; | ||
137 | } | 139 | } |
138 | 140 | ||
139 | ddata->i2c_adapter = adapter; | 141 | ddata->i2c_adapter = adapter; |
@@ -142,10 +144,6 @@ static int tfp410_probe(struct omap_dss_device *dssdev) | |||
142 | dev_set_drvdata(&dssdev->dev, ddata); | 144 | dev_set_drvdata(&dssdev->dev, ddata); |
143 | 145 | ||
144 | return 0; | 146 | return 0; |
145 | err_i2c: | ||
146 | if (gpio_is_valid(ddata->pd_gpio)) | ||
147 | gpio_free(ddata->pd_gpio); | ||
148 | return r; | ||
149 | } | 147 | } |
150 | 148 | ||
151 | static void __exit tfp410_remove(struct omap_dss_device *dssdev) | 149 | static void __exit tfp410_remove(struct omap_dss_device *dssdev) |
@@ -157,9 +155,6 @@ static void __exit tfp410_remove(struct omap_dss_device *dssdev) | |||
157 | if (ddata->i2c_adapter) | 155 | if (ddata->i2c_adapter) |
158 | i2c_put_adapter(ddata->i2c_adapter); | 156 | i2c_put_adapter(ddata->i2c_adapter); |
159 | 157 | ||
160 | if (gpio_is_valid(ddata->pd_gpio)) | ||
161 | gpio_free(ddata->pd_gpio); | ||
162 | |||
163 | dev_set_drvdata(&dssdev->dev, NULL); | 158 | dev_set_drvdata(&dssdev->dev, NULL); |
164 | 159 | ||
165 | mutex_unlock(&ddata->lock); | 160 | mutex_unlock(&ddata->lock); |
@@ -231,7 +226,8 @@ static void tfp410_set_timings(struct omap_dss_device *dssdev, | |||
231 | struct panel_drv_data *ddata = dev_get_drvdata(&dssdev->dev); | 226 | struct panel_drv_data *ddata = dev_get_drvdata(&dssdev->dev); |
232 | 227 | ||
233 | mutex_lock(&ddata->lock); | 228 | mutex_lock(&ddata->lock); |
234 | dpi_set_timings(dssdev, timings); | 229 | omapdss_dpi_set_timings(dssdev, timings); |
230 | dssdev->panel.timings = *timings; | ||
235 | mutex_unlock(&ddata->lock); | 231 | mutex_unlock(&ddata->lock); |
236 | } | 232 | } |
237 | 233 | ||