Re: [PATCH-V2] OMAP3EVM: Made backlight GPIO default state to off
Vaibhav, On Tue, Jan 25, 2011 at 12:52 AM, Vaibhav Hiremath hvaib...@ti.com wrote: If you choose default output to DVI, the LCD backlight used to stay on, since panel-disable function never gets called. So, during init put backlight GPIO to off state and the driver code will decide which output to enable. Signed-off-by: Vaibhav Hiremath hvaib...@ti.com --- Changes from V1 - - Added check for return value arch/arm/mach-omap2/board-omap3evm.c | 15 +-- 1 files changed, 13 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c index 7119380..a888a7d 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c @@ -411,6 +411,8 @@ static struct platform_device leds_gpio = { static int omap3evm_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { + int r; + /* gpio + 0 is mmc0_cd (input/IRQ) */ omap_mux_init_gpio(63, OMAP_PIN_INPUT); mmc[0].gpio_cd = gpio + 0; @@ -426,8 +428,17 @@ static int omap3evm_twl_gpio_setup(struct device *dev, */ /* TWL4030_GPIO_MAX + 0 == ledA, LCD Backlight control */ - gpio_request(gpio + TWL4030_GPIO_MAX, EN_LCD_BKL); - gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); + r = gpio_request(gpio + TWL4030_GPIO_MAX, EN_LCD_BKL); + if (r) + printk(KERN_ERR failed to get lcd_bkl gpio\n); So even if the gpio_request fails, this code prints an error and continues? + + if (get_omap3_evm_rev() = OMAP3EVM_BOARD_GEN_2) + r = gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1); + else + r = gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); + + if (r) + printk(KERN_ERR failed to set direction of lcd_bkl gpio\n); /* gpio + 7 == DVI Enable */ gpio_request(gpio + 7, EN_DVI); -- 1.6.2.4 -- 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 -- 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
RE: [PATCH-V2] OMAP3EVM: Made backlight GPIO default state to off
-Original Message- From: Semwal, Sumit Sent: Tuesday, January 25, 2011 8:05 AM To: Hiremath, Vaibhav Cc: linux-omap@vger.kernel.org; t...@atomide.com; tomi.valkei...@nokia.com Subject: Re: [PATCH-V2] OMAP3EVM: Made backlight GPIO default state to off Vaibhav, On Tue, Jan 25, 2011 at 12:52 AM, Vaibhav Hiremath hvaib...@ti.com wrote: If you choose default output to DVI, the LCD backlight used to stay on, since panel-disable function never gets called. So, during init put backlight GPIO to off state and the driver code will decide which output to enable. Signed-off-by: Vaibhav Hiremath hvaib...@ti.com --- Changes from V1 - - Added check for return value arch/arm/mach-omap2/board-omap3evm.c | 15 +-- 1 files changed, 13 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach- omap2/board-omap3evm.c index 7119380..a888a7d 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c @@ -411,6 +411,8 @@ static struct platform_device leds_gpio = { static int omap3evm_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { + int r; + /* gpio + 0 is mmc0_cd (input/IRQ) */ omap_mux_init_gpio(63, OMAP_PIN_INPUT); mmc[0].gpio_cd = gpio + 0; @@ -426,8 +428,17 @@ static int omap3evm_twl_gpio_setup(struct device *dev, */ /* TWL4030_GPIO_MAX + 0 == ledA, LCD Backlight control */ - gpio_request(gpio + TWL4030_GPIO_MAX, EN_LCD_BKL); - gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); + r = gpio_request(gpio + TWL4030_GPIO_MAX, EN_LCD_BKL); + if (r) + printk(KERN_ERR failed to get lcd_bkl gpio\n); So even if the gpio_request fails, this code prints an error and continues? [Hiremath, Vaibhav] yes, that's correct and intended. Thanks, Vaibhav + + if (get_omap3_evm_rev() = OMAP3EVM_BOARD_GEN_2) + r = gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1); + else + r = gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); + + if (r) + printk(KERN_ERR failed to set direction of lcd_bkl gpio\n); /* gpio + 7 == DVI Enable */ gpio_request(gpio + 7, EN_DVI); -- 1.6.2.4 -- 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 -- 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
Re: [PATCH-V2] OMAP3EVM: Made backlight GPIO default state to off
On Tue, Jan 25, 2011 at 10:18, Hiremath, Vaibhav hvaib...@ti.com wrote: -Original Message- From: Semwal, Sumit Sent: Tuesday, January 25, 2011 8:05 AM To: Hiremath, Vaibhav Cc: linux-omap@vger.kernel.org; t...@atomide.com; tomi.valkei...@nokia.com Subject: Re: [PATCH-V2] OMAP3EVM: Made backlight GPIO default state to off Vaibhav, On Tue, Jan 25, 2011 at 12:52 AM, Vaibhav Hiremath hvaib...@ti.com wrote: If you choose default output to DVI, the LCD backlight used to stay on, since panel-disable function never gets called. So, during init put backlight GPIO to off state and the driver code will decide which output to enable. Signed-off-by: Vaibhav Hiremath hvaib...@ti.com --- Changes from V1 - - Added check for return value arch/arm/mach-omap2/board-omap3evm.c | 15 +-- 1 files changed, 13 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach- omap2/board-omap3evm.c index 7119380..a888a7d 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c @@ -411,6 +411,8 @@ static struct platform_device leds_gpio = { static int omap3evm_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { + int r; + /* gpio + 0 is mmc0_cd (input/IRQ) */ omap_mux_init_gpio(63, OMAP_PIN_INPUT); mmc[0].gpio_cd = gpio + 0; @@ -426,8 +428,17 @@ static int omap3evm_twl_gpio_setup(struct device *dev, */ /* TWL4030_GPIO_MAX + 0 == ledA, LCD Backlight control */ - gpio_request(gpio + TWL4030_GPIO_MAX, EN_LCD_BKL); - gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); + r = gpio_request(gpio + TWL4030_GPIO_MAX, EN_LCD_BKL); + if (r) + printk(KERN_ERR failed to get lcd_bkl gpio\n); So even if the gpio_request fails, this code prints an error and continues? [Hiremath, Vaibhav] yes, that's correct and intended. As pointed out by Sumit, you should not continue modifying the direction of a gpio whose request failed (may be some other module is using this gpio)? Please mention why this is intentionally done so. Thanks, Vaibhav + + if (get_omap3_evm_rev() = OMAP3EVM_BOARD_GEN_2) + r = gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1); + else + r = gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); + + if (r) + printk(KERN_ERR failed to set direction of lcd_bkl gpio\n); /* gpio + 7 == DVI Enable */ gpio_request(gpio + 7, EN_DVI); -- 1.6.2.4 -- 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 -- 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 -- 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
RE: [PATCH-V2] OMAP3EVM: Made backlight GPIO default state to off
-Original Message- From: Varadarajan, Charulatha [mailto:ch...@ti.com] Sent: Tuesday, January 25, 2011 10:24 AM To: Hiremath, Vaibhav Cc: Semwal, Sumit; linux-omap@vger.kernel.org; t...@atomide.com; tomi.valkei...@nokia.com Subject: Re: [PATCH-V2] OMAP3EVM: Made backlight GPIO default state to off On Tue, Jan 25, 2011 at 10:18, Hiremath, Vaibhav hvaib...@ti.com wrote: -Original Message- From: Semwal, Sumit Sent: Tuesday, January 25, 2011 8:05 AM To: Hiremath, Vaibhav Cc: linux-omap@vger.kernel.org; t...@atomide.com; tomi.valkei...@nokia.com Subject: Re: [PATCH-V2] OMAP3EVM: Made backlight GPIO default state to off Vaibhav, On Tue, Jan 25, 2011 at 12:52 AM, Vaibhav Hiremath hvaib...@ti.com wrote: If you choose default output to DVI, the LCD backlight used to stay on, since panel-disable function never gets called. So, during init put backlight GPIO to off state and the driver code will decide which output to enable. Signed-off-by: Vaibhav Hiremath hvaib...@ti.com --- Changes from V1 - - Added check for return value arch/arm/mach-omap2/board-omap3evm.c | 15 +-- 1 files changed, 13 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach- omap2/board-omap3evm.c index 7119380..a888a7d 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c @@ -411,6 +411,8 @@ static struct platform_device leds_gpio = { static int omap3evm_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { + int r; + /* gpio + 0 is mmc0_cd (input/IRQ) */ omap_mux_init_gpio(63, OMAP_PIN_INPUT); mmc[0].gpio_cd = gpio + 0; @@ -426,8 +428,17 @@ static int omap3evm_twl_gpio_setup(struct device *dev, */ /* TWL4030_GPIO_MAX + 0 == ledA, LCD Backlight control */ - gpio_request(gpio + TWL4030_GPIO_MAX, EN_LCD_BKL); - gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); + r = gpio_request(gpio + TWL4030_GPIO_MAX, EN_LCD_BKL); + if (r) + printk(KERN_ERR failed to get lcd_bkl gpio\n); So even if the gpio_request fails, this code prints an error and continues? [Hiremath, Vaibhav] yes, that's correct and intended. As pointed out by Sumit, you should not continue modifying the direction of a gpio whose request failed (may be some other module is using this gpio)? Please mention why this is intentionally done so. [Hiremath, Vaibhav] First of all, if you look at implementation of gpio_xxx, it does handle all these scenarios gracefully. And second point is, the request is happening for backlight gpio (which is not something MUST required), so even if we fail to get handle here I think we should not return an error, just flag the warning and continue. Let me understand, why do you want to return from middle of function, for backlight gpio request, which means we will not call platform_device_register for leds_gpio and many other things. And also if you look at the twl4030-gpio.c, we do same thing - } else if (pdata-setup) { int status; status = pdata-setup(pdev-dev, pdata-gpio_base, TWL4030_GPIO_MAX); if (status) dev_dbg(pdev-dev, setup -- %d\n, status); } return ret; I hope this clarifies your doubts. Thanks, Vaibhav Thanks, Vaibhav + + if (get_omap3_evm_rev() = OMAP3EVM_BOARD_GEN_2) + r = gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1); + else + r = gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); + + if (r) + printk(KERN_ERR failed to set direction of lcd_bkl gpio\n); /* gpio + 7 == DVI Enable */ gpio_request(gpio + 7, EN_DVI); -- 1.6.2.4 -- 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 -- 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 -- 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
Re: [PATCH-V2] OMAP3EVM: Made backlight GPIO default state to off
On Tue, Jan 25, 2011 at 10:50, Hiremath, Vaibhav hvaib...@ti.com wrote: -Original Message- From: Varadarajan, Charulatha [mailto:ch...@ti.com] Sent: Tuesday, January 25, 2011 10:24 AM To: Hiremath, Vaibhav Cc: Semwal, Sumit; linux-omap@vger.kernel.org; t...@atomide.com; tomi.valkei...@nokia.com Subject: Re: [PATCH-V2] OMAP3EVM: Made backlight GPIO default state to off On Tue, Jan 25, 2011 at 10:18, Hiremath, Vaibhav hvaib...@ti.com wrote: -Original Message- From: Semwal, Sumit Vaibhav, On Tue, Jan 25, 2011 at 12:52 AM, Vaibhav Hiremath hvaib...@ti.com wrote: If you choose default output to DVI, the LCD backlight used to stay on, since panel-disable function never gets called. So, during init put backlight GPIO to off state and the driver code will decide which output to enable. Signed-off-by: Vaibhav Hiremath hvaib...@ti.com --- Changes from V1 - - Added check for return value arch/arm/mach-omap2/board-omap3evm.c | 15 +-- 1 files changed, 13 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach- omap2/board-omap3evm.c index 7119380..a888a7d 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c @@ -411,6 +411,8 @@ static struct platform_device leds_gpio = { static int omap3evm_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { + int r; + /* gpio + 0 is mmc0_cd (input/IRQ) */ omap_mux_init_gpio(63, OMAP_PIN_INPUT); mmc[0].gpio_cd = gpio + 0; @@ -426,8 +428,17 @@ static int omap3evm_twl_gpio_setup(struct device *dev, */ /* TWL4030_GPIO_MAX + 0 == ledA, LCD Backlight control */ - gpio_request(gpio + TWL4030_GPIO_MAX, EN_LCD_BKL); - gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); + r = gpio_request(gpio + TWL4030_GPIO_MAX, EN_LCD_BKL); + if (r) + printk(KERN_ERR failed to get lcd_bkl gpio\n); So even if the gpio_request fails, this code prints an error and continues? [Hiremath, Vaibhav] yes, that's correct and intended. As pointed out by Sumit, you should not continue modifying the direction of a gpio whose request failed (may be some other module is using this gpio)? Please mention why this is intentionally done so. [Hiremath, Vaibhav] First of all, if you look at implementation of gpio_xxx, it does handle all these scenarios gracefully. I guess you are talking about gpio_ensure_requested() used in gpio_xxx calls. That would throw warnings if the gpio is not requested but being used (eg., set output direction). And second point is, the request is happening for backlight gpio (which is not something MUST required), so even if we fail to get handle here I think we should not return an error, just flag the warning and continue. If this is the case, I guess, we need do a gpio_request() at all. Instead, we shall directly do a gpio_direction_output(). But I would like to differ. Let me understand, why do you want to return from middle of function, for backlight gpio request, which means we will not call platform_device_register for leds_gpio and many other things. And also if you look at the twl4030-gpio.c, we do same thing - Well, I am not saying that you should return from the function, if gpio_request fails. I am suggesting that you should not continue using the gpio whose request failed. One reason why gpio_request() might fail is in case some other request has already happened for the same gpio. } else if (pdata-setup) { int status; status = pdata-setup(pdev-dev, pdata-gpio_base, TWL4030_GPIO_MAX); if (status) dev_dbg(pdev-dev, setup -- %d\n, status); } return ret; I hope this clarifies your doubts. Thanks, Vaibhav Thanks, Vaibhav + + if (get_omap3_evm_rev() = OMAP3EVM_BOARD_GEN_2) + r = gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1); + else + r = gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); + + if (r) + printk(KERN_ERR failed to set direction of lcd_bkl gpio\n); /* gpio + 7 == DVI Enable */ gpio_request(gpio + 7, EN_DVI); -- 1.6.2.4 -- 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