<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/gpio, branch linux-2.6.37.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>cs5535-gpio: handle GPIO regs where higher (clear) bits are set</title>
<updated>2010-12-23T23:31:48+00:00</updated>
<author>
<name>Andres Salomon</name>
<email>dilinger@queued.net</email>
</author>
<published>2010-12-21T21:04:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=44658a11f312fb9217674cb90b1a11cbe17fd18d'/>
<id>44658a11f312fb9217674cb90b1a11cbe17fd18d</id>
<content type='text'>
The default for non-READ_BACK GPIO regs is to have the clear bits set;
this means that our original errata fix was too simplistic.  This
changes it to the following behavior:

 - when setting GPIOs, ignore the higher order bits (they're for
   clearing, we don't need to care about them).

 - when clearing GPIOs, keep all the bits, but unset (via XOR) the
   lower order bit that negates the clear bit that we care about.  That
   is, if we're clearing GPIO 26 (val = 0x04000000), we first XOR what's
   currently in the register with 0x0400 (GPIO 26's SET bit), and then
   OR that with the GPIO 26's CLEAR bit.

Tested-by: Daniel Drake &lt;dsd@laptop.org&gt;
Signed-off-by: Andres Salomon &lt;dilinger@queued.net&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The default for non-READ_BACK GPIO regs is to have the clear bits set;
this means that our original errata fix was too simplistic.  This
changes it to the following behavior:

 - when setting GPIOs, ignore the higher order bits (they're for
   clearing, we don't need to care about them).

 - when clearing GPIOs, keep all the bits, but unset (via XOR) the
   lower order bit that negates the clear bit that we care about.  That
   is, if we're clearing GPIO 26 (val = 0x04000000), we first XOR what's
   currently in the register with 0x0400 (GPIO 26's SET bit), and then
   OR that with the GPIO 26's CLEAR bit.

Tested-by: Daniel Drake &lt;dsd@laptop.org&gt;
Signed-off-by: Andres Salomon &lt;dilinger@queued.net&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cs5535-gpio: don't apply errata #36 to edge detect GPIOs</title>
<updated>2010-12-23T23:31:48+00:00</updated>
<author>
<name>Andres Salomon</name>
<email>dilinger@queued.net</email>
</author>
<published>2010-12-21T21:04:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=001851659354cce436b749a793f3512a53394d80'/>
<id>001851659354cce436b749a793f3512a53394d80</id>
<content type='text'>
The edge detect status GPIOs function differently from the other atomic
model CS5536 GPIO registers; writing 1 to the high bits clears the GPIO,
but writing 1 to the lower bits also clears the bit.

This means that read-modify-write doesn't actually work for it, so don't
apply the errata here.  If a negative edge status gets lost after
resume..  well, we tried our best!

Tested-by: Daniel Drake &lt;dsd@laptop.org&gt;
Signed-off-by: Andres Salomon &lt;dilinger@queued.net&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The edge detect status GPIOs function differently from the other atomic
model CS5536 GPIO registers; writing 1 to the high bits clears the GPIO,
but writing 1 to the lower bits also clears the bit.

This means that read-modify-write doesn't actually work for it, so don't
apply the errata here.  If a negative edge status gets lost after
resume..  well, we tried our best!

Tested-by: Daniel Drake &lt;dsd@laptop.org&gt;
Signed-off-by: Andres Salomon &lt;dilinger@queued.net&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6</title>
<updated>2010-12-23T03:47:04+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2010-12-23T03:47:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ca5f73a05ebfbf74ea9874d5eaad8d63d7e69b4f'/>
<id>ca5f73a05ebfbf74ea9874d5eaad8d63d7e69b4f</id>
<content type='text'>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6:
  mfd: Support additional parent IDs for wm831x
  mfd: Fix ab8500-core interrupt ffs bit bug
  mfd: Supply IRQ base for WM832x devices
  watchdog: Fix null pointer dereference while accessing rdc321x platform_data
  gpio: Fix null pointer dereference while accessing rdc321x platform_data
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6:
  mfd: Support additional parent IDs for wm831x
  mfd: Fix ab8500-core interrupt ffs bit bug
  mfd: Supply IRQ base for WM832x devices
  watchdog: Fix null pointer dereference while accessing rdc321x platform_data
  gpio: Fix null pointer dereference while accessing rdc321x platform_data
</pre>
</div>
</content>
</entry>
<entry>
<title>gpiolib: gpio_request_one(): add missing gpio_free()</title>
<updated>2010-12-23T03:43:33+00:00</updated>
<author>
<name>Aaro Koskinen</name>
<email>aaro.koskinen@nokia.com</email>
</author>
<published>2010-12-22T01:24:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e254811c205ec539b648cff54a7852ee8dcd2e5e'/>
<id>e254811c205ec539b648cff54a7852ee8dcd2e5e</id>
<content type='text'>
If GPIO request succeeds, but configuration fails, it should be released.

Signed-off-by: Aaro Koskinen &lt;aaro.koskinen@nokia.com&gt;
Acked-by: Eric Miao &lt;eric.miao@canonical.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If GPIO request succeeds, but configuration fails, it should be released.

Signed-off-by: Aaro Koskinen &lt;aaro.koskinen@nokia.com&gt;
Acked-by: Eric Miao &lt;eric.miao@canonical.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gpio: Fix null pointer dereference while accessing rdc321x platform_data</title>
<updated>2010-12-22T11:05:20+00:00</updated>
<author>
<name>Florian Fainelli</name>
<email>florian@openwrt.org</email>
</author>
<published>2010-11-26T09:39:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=fa6469cb5b2d16703464c344b943e2c025cb7858'/>
<id>fa6469cb5b2d16703464c344b943e2c025cb7858</id>
<content type='text'>
rdc321x-gpio currently fetches its driver specific data by using the
platform_device-&gt;platform_data pointer, this is wrong because the mfd
device which registers our platform_device has been added using
mfd_add_device() which sets the platform_device-&gt;driver_data pointer
instead.

Signed-off-by: Florian Fainelli &lt;florian@openwrt.org&gt;
CC: stable@kernel.org
Signed-off-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
rdc321x-gpio currently fetches its driver specific data by using the
platform_device-&gt;platform_data pointer, this is wrong because the mfd
device which registers our platform_device has been added using
mfd_add_device() which sets the platform_device-&gt;driver_data pointer
instead.

Signed-off-by: Florian Fainelli &lt;florian@openwrt.org&gt;
CC: stable@kernel.org
Signed-off-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cs5535-gpio: apply CS5536 errata workaround for GPIOs</title>
<updated>2010-12-02T22:51:15+00:00</updated>
<author>
<name>Andres Salomon</name>
<email>dilinger@queued.net</email>
</author>
<published>2010-12-02T22:31:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=853ff88324a248a9f5da6e110850223db353ec07'/>
<id>853ff88324a248a9f5da6e110850223db353ec07</id>
<content type='text'>
The AMD Geode CS5536 Companion Device Silicon Revision B1 Specification
Update mentions the follow as issue #36:

 "Atomic write transactions to the atomic GPIO High Bank Feature Bit
  registers should only affect the bits selected [...]"

 "after Suspend, an atomic write transaction [...] will clear all
  non-selected bits of the accessed register."

In other words, writing to the high bank for a single GPIO bit will
clear every other GPIO bit (but only sometimes after a suspend).

The workaround described is obvious and simple; do a read-modify-write.
This patch does that, and documents why we're doing it.

Signed-off-by: Andres Salomon &lt;dilinger@queued.net&gt;
Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The AMD Geode CS5536 Companion Device Silicon Revision B1 Specification
Update mentions the follow as issue #36:

 "Atomic write transactions to the atomic GPIO High Bank Feature Bit
  registers should only affect the bits selected [...]"

 "after Suspend, an atomic write transaction [...] will clear all
  non-selected bits of the accessed register."

In other words, writing to the high bank for a single GPIO bit will
clear every other GPIO bit (but only sometimes after a suspend).

The workaround described is obvious and simple; do a read-modify-write.
This patch does that, and documents why we're doing it.

Signed-off-by: Andres Salomon &lt;dilinger@queued.net&gt;
Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gpio: Add VIA VX855 GPIO driver</title>
<updated>2010-10-28T22:29:51+00:00</updated>
<author>
<name>Daniel Drake</name>
<email>dsd@laptop.org</email>
</author>
<published>2010-09-30T20:55:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=99ea2626a75e13ce926af69d96e9ae5bfb62b7ba'/>
<id>99ea2626a75e13ce926af69d96e9ae5bfb62b7ba</id>
<content type='text'>
This is needed for supporting the upcoming VX855 camera and OLPC DCON
drivers, as well as the advanced viafb features on non-OLPC hardware
based on this chip.

Based on earlier work by Harald Welte.

Signed-off-by: Daniel Drake &lt;dsd@laptop.org&gt;
Signed-off-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is needed for supporting the upcoming VX855 camera and OLPC DCON
drivers, as well as the advanced viafb features on non-OLPC hardware
based on this chip.

Based on earlier work by Harald Welte.

Signed-off-by: Daniel Drake &lt;dsd@laptop.org&gt;
Signed-off-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gpio: Fix stmpe error path</title>
<updated>2010-10-28T22:29:32+00:00</updated>
<author>
<name>Vasiliy Kulikov</name>
<email>segooon@gmail.com</email>
</author>
<published>2010-09-12T18:57:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=02bf07492341d94e29890082201dd69dbf406570'/>
<id>02bf07492341d94e29890082201dd69dbf406570</id>
<content type='text'>
Free allocated memory.  Call stmpe_disable() if it was enabled.

Signed-off-by: Vasiliy Kulikov &lt;segooon@gmail.com&gt;
Acked-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
Acked-by: Rabin Vincent &lt;rabin.vincent@stericsson.com&gt;
Signed-off-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Free allocated memory.  Call stmpe_disable() if it was enabled.

Signed-off-by: Vasiliy Kulikov &lt;segooon@gmail.com&gt;
Acked-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
Acked-by: Rabin Vincent &lt;rabin.vincent@stericsson.com&gt;
Signed-off-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gpio: Handle stmpe-gpio platform data with no gpio base</title>
<updated>2010-10-28T22:29:18+00:00</updated>
<author>
<name>Virupax Sadashivpetimath</name>
<email>virupax.sadashivpetimath@stericsson.com</email>
</author>
<published>2010-08-31T04:34:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f4ebcab36088d45a5e8889e9b63d77e01c808076'/>
<id>f4ebcab36088d45a5e8889e9b63d77e01c808076</id>
<content type='text'>
This patch removes the requirement that gpio base be supplied in
platform data.

Signed-off-by: Virupax Sadashivpetimath &lt;virupax.sadashivpetimath@stericsson.com&gt;
Acked-by: Linus Walleij &lt;linus.walleij@stericsson.com&gt;
Acked-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
Signed-off-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch removes the requirement that gpio base be supplied in
platform data.

Signed-off-by: Virupax Sadashivpetimath &lt;virupax.sadashivpetimath@stericsson.com&gt;
Acked-by: Linus Walleij &lt;linus.walleij@stericsson.com&gt;
Acked-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
Signed-off-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gpio: Add bitmask to block requests to unavailable stmpe GPIOs</title>
<updated>2010-10-28T22:28:43+00:00</updated>
<author>
<name>Wolfram Sang</name>
<email>w.sang@pengutronix.de</email>
</author>
<published>2010-08-16T15:14:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=b8e9cf0b28173fc25dae9f3ac44de6fc4e9fc385'/>
<id>b8e9cf0b28173fc25dae9f3ac44de6fc4e9fc385</id>
<content type='text'>
GPIOs on these controller are multi-functional. If you decided to use
some of them e.g. as input channels for the ADC, you surely don't want
those pins to be reassigned as simple GPIOs (which may be triggered even
from userspace via 'export'). Same for the touchscreen controller pins.
Since knowledge about the hardware is needed to decide which GPIOs to
reserve, let this bitmask be inside platform_data and provide some
defines to assist potential users.

Signed-off-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
Acked-by: Rabin Vincent &lt;rabin.vincent@stericsson.com&gt;
Cc: Linus Walleij &lt;linus.walleij@stericsson.com&gt;
Signed-off-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
GPIOs on these controller are multi-functional. If you decided to use
some of them e.g. as input channels for the ADC, you surely don't want
those pins to be reassigned as simple GPIOs (which may be triggered even
from userspace via 'export'). Same for the touchscreen controller pins.
Since knowledge about the hardware is needed to decide which GPIOs to
reserve, let this bitmask be inside platform_data and provide some
defines to assist potential users.

Signed-off-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
Acked-by: Rabin Vincent &lt;rabin.vincent@stericsson.com&gt;
Cc: Linus Walleij &lt;linus.walleij@stericsson.com&gt;
Signed-off-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
