Thread (13 messages) flat view 13 messages, 3 authors, 2010-08-02
STALE5855d

[RFC PATCH] arm/imx/gpio: add spinlock protection

From: baruch@tkos.co.il (Baruch Siach)
Date: 2010-07-06 10:37:49

On Tue, Jul 06, 2010 at 12:07:48PM +0200, Sascha Hauer wrote:
On Tue, Jul 06, 2010 at 10:40:43AM +0300, Baruch Siach wrote:
quoted
On Tue, Jul 06, 2010 at 09:17:02AM +0200, Sascha Hauer wrote:
quoted
On Tue, Jul 06, 2010 at 08:00:34AM +0300, Baruch Siach wrote:
quoted
On Mon, Jul 05, 2010 at 09:52:18AM +0200, Sascha Hauer wrote:
quoted
On Sun, Jul 04, 2010 at 10:15:13AM +0300, Baruch Siach wrote:
quoted
The GPIO and IRQ/GPIO registers need protection from concurrent access for
operations that are not atomic.
Apart from this other architectures do not use locking here aswell.
The Nomadic gpio driver does use a spinlock for mask/unmask operations.

What about the _set_gpio_direction, and mxc_gpio_set? These functions may be 
called from a process context (e.g., via sysfs). A context switch between 
__raw_readl and __raw_writel will cause corruption.
The gpio_chip functions are protected by a single spinlock in
gpiolib.
gpio_direction_input uses the gpio_lock for its own internal sanity check, and 
releases it before calling chip->direction_input. The same goes for 
gpio_direction_output.
Ok, true.
quoted
The __gpio_set_value function seems not acquire any lock before calling 
chip->set.
quoted
The gpio related registers and the irq related regsiters are
totally orthogonal, so we need no locking between these registers.
True.
This means we need locking for the gpio functions but not for the irq
functions.
Agreed. I'll post an updated patch shortly.

baruch

-- 
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help