Thread (26 messages) flat view 26 messages, 3 authors, 2012-04-05
DORMANTno replies

[PATCH v2 2/3] ep93xx: IDE driver platform support code

From: Rafal Prylowski <hidden>
Date: 2012-04-05 12:15:55

[linux-ide mailing list removed from Cc, because topic is not related to IDE/libata]

On 2012-04-04 19:11, H Hartley Sweeten wrote:
On Wednesday, April 04, 2012 9:43 AM, H Hartley Sweeten wrote:
quoted
On Wednesday, April 04, 2012 9:20 AM, H Hartley Sweeten wrote:
quoted
On Wednesday, April 04, 2012 1:41 AM, Rafal Prylowski wrote:
quoted
On 2012-04-03 19:41, H Hartley Sweeten wrote:
[not related to my patch, but ep93xx keypad]:
Isn't ep93xx_keypad_acquire_gpio be more correct if we apply the following patch:

Index: linux-2.6/arch/arm/mach-ep93xx/core.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-ep93xx/core.c
+++ linux-2.6/arch/arm/mach-ep93xx/core.c
@@ -734,7 +734,7 @@ int ep93xx_keypad_acquire_gpio(struct pl
 fail_gpio_d:
 	gpio_free(EP93XX_GPIO_LINE_C(i));
 fail_gpio_c:
-	for ( ; i >= 0; --i) {
+	for (--i; i >= 0; --i) {
 		gpio_free(EP93XX_GPIO_LINE_C(i));
 		gpio_free(EP93XX_GPIO_LINE_D(i));
 	}
This way we don't double free EP93XX_GPIO_LINE_C(i), and don't free lines which were not
successfully acquired (I noticed this when writing my patch, which is based on
ep93xx_keypad_acquire/release_gpio).
You are correct... ;-)

Care to submit an actual patch?
Yes, patch should be on LAKML already.
quoted
Note, if/when the devm_gpio_request patch gets into the kernel tree we can use
that and get rid of the gpio_free's completely.
I doubt if using devm_gpio_request() would help here. We need to call both
ep93xx_*_acquire and ep93xx_*_release_gpio in drivers, because it also sets up
some registers, etc. If ep93xx_*_acquire_gpio fails, then gpio lines should be
freed immediately and not when the driver unloads (because the driver might
want to use them in some other way..).
quoted
Sorry, I don't have a link to that patch...
I just pulled linux-next. It looks like the devm_gpio_* stuff is now in.

commit 1a0703ede4493bd74f9c6b53f782b749e175a88e
Author: John Crispin [off-list ref]
Date:   Tue Dec 20 21:40:21 2011 +0100

    GPIO: add bindings for managed devices
    
    This patch adds 2 functions that allow managed devices to request GPIOs.
    These GPIOs will then be managed by drivers/base/devres.c.
    
    Signed-off-by: John Crispin [off-list ref]
    Signed-off-by: Grant Likely [off-list ref]
I see that this is also in v3.4rc1 :)

Regards,
RP
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help