<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/gpio, branch v3.6</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/gpio?h=v3.6</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/gpio?h=v3.6'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-09-24T19:56:01Z</updated>
<entry>
<title>gpio-lpc32xx: Fix value handling of gpio_direction_output()</title>
<updated>2012-09-24T19:56:01Z</updated>
<author>
<name>Roland Stigge</name>
<email>stigge@antcom.de</email>
</author>
<published>2012-09-20T08:48:03Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b1268d3737c6316016026245eef276eda6b0a621'/>
<id>urn:sha1:b1268d3737c6316016026245eef276eda6b0a621</id>
<content type='text'>
For GPIOs of gpio-lpc32xx, gpio_direction_output() ignores the value argument
(initial value of output). This patch fixes this by setting the level
accordingly.

Cc: stable@kernel.org
Signed-off-by: Roland Stigge &lt;stigge@antcom.de&gt;
Acked-by: Alexandre Pereira da Silva &lt;aletes.xgr@gmail.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpio: rdc321x: Prevent removal of modules exporting active GPIOs</title>
<updated>2012-09-01T10:52:24Z</updated>
<author>
<name>Axel Lin</name>
<email>axel.lin@gmail.com</email>
</author>
<published>2012-09-01T06:11:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1146f8822ae6601e24f9072d6cd74f76506142cd'/>
<id>urn:sha1:1146f8822ae6601e24f9072d6cd74f76506142cd</id>
<content type='text'>
This driver can be built as a module, set the missing owner field of
struct gpio_chip to prevent removal of modules exporting active GPIOs.

Signed-off-by: Axel Lin &lt;axel.lin@gmail.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpio: em: Fix checking return value of irq_alloc_descs</title>
<updated>2012-08-31T23:18:39Z</updated>
<author>
<name>Axel Lin</name>
<email>axel.lin@gmail.com</email>
</author>
<published>2012-08-28T11:30:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=dd2914972e5f6d9c1a687158c0f65b81d239fe37'/>
<id>urn:sha1:dd2914972e5f6d9c1a687158c0f65b81d239fe37</id>
<content type='text'>
irq_alloc_descs() returns negative error code on failure.

Signed-off-by: Axel Lin &lt;axel.lin@gmail.com&gt;
Acked-by: Magnus Damm &lt;damm@opensource.se&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpio: mc9s08dz60: Fix build error if I2C=m</title>
<updated>2012-08-31T23:00:39Z</updated>
<author>
<name>Axel Lin</name>
<email>axel.lin@gmail.com</email>
</author>
<published>2012-08-29T01:35:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4c30aa33d4b4ce9a0ee5b32d058a40f4eca2ab63'/>
<id>urn:sha1:4c30aa33d4b4ce9a0ee5b32d058a40f4eca2ab63</id>
<content type='text'>
Make GPIO_MC9S08DZ60 depend on I2C=y, this fixes below build error:

  LD      init/built-in.o
drivers/built-in.o: In function `mc9s08dz60_get_value':
clk-fixed-factor.c:(.text+0x7214): undefined reference to `i2c_smbus_read_byte_data'
drivers/built-in.o: In function `mc9s08dz60_set':
clk-fixed-factor.c:(.text+0x727c): undefined reference to `i2c_smbus_read_byte_data'
clk-fixed-factor.c:(.text+0x72bc): undefined reference to `i2c_smbus_write_byte_data'
drivers/built-in.o: In function `mc9s08dz60_i2c_driver_init':
clk-fixed-factor.c:(.init.text+0x290): undefined reference to `i2c_register_driver'
drivers/built-in.o: In function `mc9s08dz60_i2c_driver_exit':
clk-fixed-factor.c:(.exit.text+0x2c): undefined reference to `i2c_del_driver'
make: *** [vmlinux] Error 1

Signed-off-by: Axel Lin &lt;axel.lin@gmail.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpio: Fix debug message in of_get_named_gpio_flags()</title>
<updated>2012-08-17T05:35:25Z</updated>
<author>
<name>Thierry Reding</name>
<email>thierry.reding@avionic-design.de</email>
</author>
<published>2012-08-09T06:38:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c61307a7cc1be87b6785dad0885492b6ca7998db'/>
<id>urn:sha1:c61307a7cc1be87b6785dad0885492b6ca7998db</id>
<content type='text'>
This was probably missed in the conversion done in commit 3d0f7cf
("gpio: Adjust of_xlate API to support multiple GPIO chips").

Signed-off-by: Thierry Reding &lt;thierry.reding@avionic-design.de&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>GPIO: gpio-pxa: fix building without CONFIG_OF</title>
<updated>2012-08-14T04:50:36Z</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2012-08-13T14:36:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f43e04ec46b67071d432fc3f368dc9891a3443e5'/>
<id>urn:sha1:f43e04ec46b67071d432fc3f368dc9891a3443e5</id>
<content type='text'>
Commit 7212157267 ("GPIO: gpio-pxa: fix devicetree functions") added an
"xlate" function pointer to the irq_domain_ops, but this function is nor
declared or defined anywhere when CONFIG_OF is disabled, causing the
build error:

  drivers/gpio/gpio-pxa.c:532:11: error: 'irq_domain_xlate_twocell' undeclared here (not in a function)

Extending the DT-only code section to cover the irq_domain_ops and the
pxa_gpio_dt_ids solves this problem and makes it clearer which code is
actually used without DT.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>Merge tag 'gpio-fixes-v3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio</title>
<updated>2012-08-12T18:45:33Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2012-08-12T18:45:33Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=21d2f8dc91e4eb987999092aabbb5f8409a1ab50'/>
<id>urn:sha1:21d2f8dc91e4eb987999092aabbb5f8409a1ab50</id>
<content type='text'>
Pull gpio fixes from Linus Walleij:
 - Fix a resource leak in the SCH driver
 - Fix the register address calculation in the MSIC driver
 - Fix the PXA driver's devicetree functions
 - Delete redundant shadow variable leftovers in the MXC driver
 - Specify the GPIO base for the device tree probe in the MXC driver
 - Add a modalias for the i.MX driver
 - Fix off-by-one bug in the Samsung driver
 - Fix erroneous errorpath in the Langwell driver

* tag 'gpio-fixes-v3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
  drivers/gpio/gpio-langwell.c: fix error return code
  gpio: samsung: Fix off-by-one bug in gpio addresses
  ARM: dts: imx: add alias for gpio
  gpio/mxc: specify gpio base for device tree probe
  gpio/mxc: remove redundant shadow variables initialization
  GPIO: gpio-pxa: fix devicetree functions
  gpio: msic: Fix calculating register address in msic_gpio_to_oreg()
  gpio-sch: Fix leak of resource
</content>
</entry>
<entry>
<title>gpio: em: do not discard em_gio_irq_domain_cleanup</title>
<updated>2012-08-10T10:27:46Z</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2012-08-04T10:33:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=38eaed327dc5bea2e5548ea3d195de83a2070c6d'/>
<id>urn:sha1:38eaed327dc5bea2e5548ea3d195de83a2070c6d</id>
<content type='text'>
The newly added gpio-em driver marks its em_gio_irq_domain_cleanup
function as __devexit, which would lead to that function being
discarded in case CONFIG_HOTPLUG is disabled. However, the function
is also called by the error handling logic em_gio_probe, which
would cause a jump into a NULL pointer if it was removed from the
kernel or module.

Without this patch, building kzm9d_defconfig results in:

WARNING: drivers/gpio/built-in.o(.devinit.text+0x330): Section mismatch in reference from the function em_gio_probe() to the function .devexit.text:em_gio_irq_domain_cleanup()
The function __devinit em_gio_probe() references
a function __devexit em_gio_irq_domain_cleanup().
This is often seen when error handling in the init function
uses functionality in the exit path.
The fix is often to remove the __devexit annotation of
em_gio_irq_domain_cleanup() so it may be used outside an exit section.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Cc: Magnus Damm &lt;damm@opensource.se&gt;
Cc: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Cc: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
</content>
</entry>
<entry>
<title>drivers/gpio/gpio-langwell.c: fix error return code</title>
<updated>2012-08-07T06:55:52Z</updated>
<author>
<name>Julia Lawall</name>
<email>julia@diku.dk</email>
</author>
<published>2012-08-05T09:52:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d6a2b7ba67334a7e72cd153c142c449831557cb9'/>
<id>urn:sha1:d6a2b7ba67334a7e72cd153c142c449831557cb9</id>
<content type='text'>
Convert a 0 error return code to a negative one, as returned elsewhere in the
function.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// &lt;smpl&gt;
@@
identifier ret;
expression e,e1,e2,e3,e4,x;
@@

(
if (\(ret != 0\|ret &lt; 0\) || ...) { ... return ...; }
|
ret = 0
)
... when != ret = e1
*x = \(kmalloc\|kzalloc\|kcalloc\|devm_kzalloc\|ioremap\|ioremap_nocache\|devm_ioremap\|devm_ioremap_nocache\)(...);
... when != x = e2
    when != ret = e3
*if (x == NULL || ...)
{
  ... when != ret = e4
*  return ret;
}
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;julia@diku.dk&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpio: samsung: Fix off-by-one bug in gpio addresses</title>
<updated>2012-08-07T06:55:52Z</updated>
<author>
<name>Sean Paul</name>
<email>seanpaul@chromium.org</email>
</author>
<published>2012-07-20T20:58:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f7093f3e7a50bfeeceb8950f9130cbf8af74bf92'/>
<id>urn:sha1:f7093f3e7a50bfeeceb8950f9130cbf8af74bf92</id>
<content type='text'>
Move gpc4 to the end of the automatically processed gpio controllers so
we don't taint the automatic offset calculation.

This bug caused all controllers coming after gpc4 to map to the
incorrect address. The result is &lt;&amp;gpd1 0 0 0 0&gt; would actually map to
GPIO 0 in gpd0.

Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Reviewed-by: Thomas Abraham &lt;thomas.abraham@linaro.org&gt;
Acked-by: Doug Anderson &lt;dianders@chromium.org&gt;
Acked-by: Kukjin Kim &lt;kgene.kim@samsung.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
</feed>
