rk3026 lcdc: fix the not normal way of io request
authorhjc <hjc@rock-chips.com>
Sat, 26 Oct 2013 07:05:56 +0000 (15:05 +0800)
committerhjc <hjc@rock-chips.com>
Sat, 26 Oct 2013 07:05:56 +0000 (15:05 +0800)
drivers/video/rockchip/lcdc/rk3188_lcdc.c

index bfb0187002df0c8085a182be16cb6e1c2ac48e56..2ce3ed5ae08d8e5844ff3df49914b8b886e835d1 100755 (executable)
@@ -1042,7 +1042,7 @@ static int rk3188_lcdc_ioctl(struct rk_lcdc_device_driver *dev_drv, unsigned int
 
 static int rk3188_lcdc_early_suspend(struct rk_lcdc_device_driver *dev_drv)
 {
-       
+
        struct rk3188_lcdc_device *lcdc_dev = 
                container_of(dev_drv,struct rk3188_lcdc_device,driver);
 
@@ -1067,8 +1067,13 @@ static int rk3188_lcdc_early_suspend(struct rk_lcdc_device_driver *dev_drv)
        }
        rk3188_lcdc_clk_disable(lcdc_dev);
 #if defined(CONFIG_ARCH_RK3026)
-       iomux_set(GPIO2_B0);
-       gpio_direction_output(RK30_PIN2_PB0,0);
+       int gpio_dclk = iomux_mode_to_gpio(LCDC0_DCLK);
+       int ret = gpio_request(gpio_dclk,NULL);
+       if(unlikely(ret < 0)){
+               printk("Failed to request gpio:lcdc dclk\n");
+               return ret;
+       }
+       gpio_direction_output(gpio_dclk,GPIO_LOW);
 #endif
        return 0;
 }
@@ -1081,6 +1086,8 @@ static int rk3188_lcdc_early_resume(struct rk_lcdc_device_driver *dev_drv)
        int __iomem *c;
        int v;
 #if defined(CONFIG_ARCH_RK3026)
+       int gpio_dclk = iomux_mode_to_gpio(LCDC0_DCLK);
+       gpio_free(gpio_dclk);
        iomux_set(LCDC0_DCLK);
 #endif
        if(dev_drv->screen_ctr_info->io_enable)                 //power on