The reset GPIO for Taal panel driver is currently requested in the
4430sdp board file. This patch moves the gpio request/free into the Taal
driver, where it should be.

Signed-off-by: Tomi Valkeinen <tomi.valkei...@ti.com>
---
 arch/arm/mach-omap2/board-4430sdp.c       |   16 ----------------
 drivers/video/omap2/displays/panel-taal.c |   15 +++++++++++++++
 2 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/arch/arm/mach-omap2/board-4430sdp.c 
b/arch/arm/mach-omap2/board-4430sdp.c
index 130ab00..6cbb16f 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -758,21 +758,6 @@ static struct omap_dss_device sdp4430_lcd2_device = {
        .channel                = OMAP_DSS_CHANNEL_LCD2,
 };
 
-static void sdp4430_lcd_init(void)
-{
-       int r;
-
-       r = gpio_request_one(dsi1_panel.reset_gpio, GPIOF_DIR_OUT,
-               "lcd1_reset_gpio");
-       if (r)
-               pr_err("%s: Could not get lcd1_reset_gpio\n", __func__);
-
-       r = gpio_request_one(dsi2_panel.reset_gpio, GPIOF_DIR_OUT,
-               "lcd2_reset_gpio");
-       if (r)
-               pr_err("%s: Could not get lcd2_reset_gpio\n", __func__);
-}
-
 static struct omap_dss_hdmi_data sdp4430_hdmi_data = {
        .hpd_gpio = HDMI_GPIO_HPD,
 };
@@ -858,7 +843,6 @@ static void __init omap_4430sdp_display_init(void)
        if (r)
                pr_err("%s: Could not get display_sel GPIO\n", __func__);
 
-       sdp4430_lcd_init();
        sdp4430_picodlp_init();
        omap_display_init(&sdp4430_dss_data);
        /*
diff --git a/drivers/video/omap2/displays/panel-taal.c 
b/drivers/video/omap2/displays/panel-taal.c
index 3053399..be9992f 100644
--- a/drivers/video/omap2/displays/panel-taal.c
+++ b/drivers/video/omap2/displays/panel-taal.c
@@ -912,6 +912,15 @@ static int taal_probe(struct omap_dss_device *dssdev)
 
        dev_set_drvdata(&dssdev->dev, td);
 
+       if (gpio_is_valid(panel_data->reset_gpio)) {
+               r = gpio_request_one(panel_data->reset_gpio, GPIOF_OUT_INIT_LOW,
+                               "taal rst");
+               if (r) {
+                       dev_err(&dssdev->dev, "failed to request reset gpio\n");
+                       goto err_rst_gpio;
+               }
+       }
+
        taal_hw_reset(dssdev);
 
        if (panel_data->use_dsi_backlight) {
@@ -992,6 +1001,9 @@ err_gpio:
        if (bldev != NULL)
                backlight_device_unregister(bldev);
 err_bl:
+       if (gpio_is_valid(panel_data->reset_gpio))
+               gpio_free(panel_data->reset_gpio);
+err_rst_gpio:
        destroy_workqueue(td->workqueue);
 err_wq:
        kfree(td);
@@ -1030,6 +1042,9 @@ static void __exit taal_remove(struct omap_dss_device 
*dssdev)
        /* reset, to be sure that the panel is in a valid state */
        taal_hw_reset(dssdev);
 
+       if (gpio_is_valid(panel_data->reset_gpio))
+               gpio_free(panel_data->reset_gpio);
+
        kfree(td);
 }
 
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to