<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/gpio, branch v3.5</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v3.5</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v3.5'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2012-07-10T20:53:31Z</updated>
<entry>
<title>gpio/gpio-tps65910: gpio_chip.of_node referenced without CONFIG_OF_GPIO defined</title>
<updated>2012-07-10T20:53:31Z</updated>
<author>
<name>Jerry Snitselaar</name>
<email>dev@snitselaar.org</email>
</author>
<published>2012-07-10T05:16:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=bb39b6551e4bff392427d6ce8692dd576a388f19'/>
<id>urn:sha1:bb39b6551e4bff392427d6ce8692dd576a388f19</id>
<content type='text'>
commit 626f9914 added code to initialize gpio_chip.of_node, but if
CONFIG_OF_GPIO is not defined gps-tps65910 fails to build with an
error complaining gpio_chip has no member of_node. I ran into this
while doing a allyesconfig build on linux-next.

Signed-off-by: Gerard Snitselaar &lt;dev@snitselaar.org&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'kevin' into fixes</title>
<updated>2012-07-09T18:02:28Z</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2012-07-09T18:02:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=46bada60961396b65d01480e2cadf4af03bc1632'/>
<id>urn:sha1:46bada60961396b65d01480e2cadf4af03bc1632</id>
<content type='text'>
</content>
</entry>
<entry>
<title>gpio: tps65910: initialize of_node of gpio_chip</title>
<updated>2012-07-05T13:44:22Z</updated>
<author>
<name>Laxman Dewangan</name>
<email>ldewangan@nvidia.com</email>
</author>
<published>2012-07-04T15:06:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=626f9914a371e22f15135f67db6c2aa64adbdacb'/>
<id>urn:sha1:626f9914a371e22f15135f67db6c2aa64adbdacb</id>
<content type='text'>
Initialize the gpio chip's of_node to the device's node
to work with DT based system.

Signed-off-by: Laxman Dewangan &lt;ldewangan@nvidia.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpio/mxc: make irqs work for fsl,imx21-gpio devices</title>
<updated>2012-07-05T13:40:35Z</updated>
<author>
<name>Uwe Kleine-König</name>
<email>u.kleine-koenig@pengutronix.de</email>
</author>
<published>2012-06-06T09:49:23Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=33a4e985bab25d6753b52d1322b4e2fff706dd4f'/>
<id>urn:sha1:33a4e985bab25d6753b52d1322b4e2fff706dd4f</id>
<content type='text'>
The chained handler was set for the platform device with id == 0.
When the gpio devices are instantiated by a device tree, all have id ==
-1 and so the handler was unset resulting in unusable gpio irqs on
i.MX21 and i.MX27 (when using oftree).

Acked-by: Shawn Guo &lt;shawn.guo@linaro.org&gt;
Cc: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@pengutronix.de&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpio: export devm_gpio_request_one</title>
<updated>2012-07-05T12:49:13Z</updated>
<author>
<name>Stephen Warren</name>
<email>swarren@nvidia.com</email>
</author>
<published>2012-06-07T23:56:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=3996bfc787a3b3d7c7ad97b7519247f9f2ac4068'/>
<id>urn:sha1:3996bfc787a3b3d7c7ad97b7519247f9f2ac4068</id>
<content type='text'>
Without this, modules can't use this API, leading to build failures.

Signed-off-by: Stephen Warren &lt;swarren@nvidia.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpiolib: wm8994: Pay attention to the value set when enabling as output</title>
<updated>2012-07-05T12:49:10Z</updated>
<author>
<name>Mark Brown</name>
<email>broonie@opensource.wolfsonmicro.com</email>
</author>
<published>2012-06-09T03:07:56Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=8cd578b6e28693f357867a77598a88ef3deb6b39'/>
<id>urn:sha1:8cd578b6e28693f357867a77598a88ef3deb6b39</id>
<content type='text'>
Not paying attention to the value being set is a bad thing because it
means that we'll not set the hardware up to reflect what was requested.
Not setting the hardware up to reflect what was requested means that the
caller won't get the results they wanted.

Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpio/msm_v1: CONFIG_GPIO_MSM_V1 is only available on three SoCs</title>
<updated>2012-07-05T12:48:59Z</updated>
<author>
<name>Christian Dietrich</name>
<email>christian.dietrich@informatik.uni-erlangen.de</email>
</author>
<published>2012-05-31T11:12:57Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=afcc0f8c174ff34305146878c40e7dcc72fcbbdf'/>
<id>urn:sha1:afcc0f8c174ff34305146878c40e7dcc72fcbbdf</id>
<content type='text'>
The feature GPIO_MSM_V1 is only available on three SoCs. On all other MSM SoCs
the INT_GPIO_GROUP{1,2} is undeclared, but Kconfig does allow such
configurations. Therefore the produced configuration is valid, but does not
compile. The problem is fixed by adding the missing Kconfig constraints.

drivers/gpio/gpio-msm-v1.c: In function âmsm_init_gpioâ:
drivers/gpio/gpio-msm-v1.c:629:26: error: 'INT_GPIO_GROUP1' undeclared
drivers/gpio/gpio-msm-v1.c:630:26: error: 'INT_GPIO_GROUP2' undeclared

Signed-off-by: Christian Dietrich &lt;christian.dietrich@informatik.uni-erlangen.de&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpio-sta2x11: don't use pdata if null</title>
<updated>2012-07-05T12:48:49Z</updated>
<author>
<name>Alessandro Rubini</name>
<email>rubini@gnudd.com</email>
</author>
<published>2012-05-27T20:55:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=2e2070c85aa19f6c5bb3642a1429abf42f101e8d'/>
<id>urn:sha1:2e2070c85aa19f6c5bb3642a1429abf42f101e8d</id>
<content type='text'>
If there is no platform data available, the driver shouldn't use the
pointer or it will oops.  Since things will mostly work nonetheless,
(the BIOS may have set up the pins properly), I'd better not fail the
probe even in this case.

Signed-off-by: Alessandro Rubini &lt;rubini@gnudd.com&gt;
Acked-by: Giancarlo Asnaghi &lt;giancarlo.asnaghi@st.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpio/omap: fix invalid context restore of gpio bank-0</title>
<updated>2012-07-03T16:41:39Z</updated>
<author>
<name>Jon Hunter</name>
<email>jon-hunter@ti.com</email>
</author>
<published>2012-07-03T16:05:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=7b86cef34afceeecf57d4d07f3cfab06f8b60b13'/>
<id>urn:sha1:7b86cef34afceeecf57d4d07f3cfab06f8b60b13</id>
<content type='text'>
Currently the gpio _runtime_resume/suspend functions are calling the
get_context_loss_count() platform function if the function is populated for
a gpio bank. This function is used to determine if the gpio bank logic state
needs to be restored due to a power transition. This function will be populated
for all banks, but it should only be called for banks that have the
"loses_context" variable set. It is pointless to call this if loses_context is
false as we know the context will never be lost and will not need restoring.

For all OMAP2+ devices gpio bank-0 is in an always-on power domain and so will
never lose context. We found that the get_context_loss_count() was being called
for bank-0 during the probe and returning 1 instead of 0 indicating that the
context had been lost. This was causing the context restore function to be
called at probe time for this bank and because the context had never been saved,
was restoring an invalid state. This ultimately resulted in a crash [1].

This issue is a regression that was exposed by commit 1b1287032 (gpio/omap: fix
missing check in *_runtime_suspend()).

There are multiple bugs here that need to be addressed ...

1. Why the always-on power domain returns a context loss count of 1? This needs
   to be fixed in the power domain code [2]. However, the gpio driver should not
   assume the loss count is 0 to begin with.
2. The omap gpio driver should never be calling get_context_loss_count for a
   gpio bank in a always-on domain. This is pointless and adds unneccessary
   overhead.
3. The OMAP gpio driver assumes that the initial power domain context loss count
   will be 0 at the time the gpio driver is probed. However, it could be
   possible that this is not the case and an invalid context restore could be
   performed during the probe. To avoid this only populate the
   get_context_loss_count() function pointer after the initial call to
   pm_runtime_get() has occurred. This will ensure that the first
   pm_runtime_put() initialised the loss count correctly.

This patch addresses issues 2 and 3 above.

[1] http://marc.info/?l=linux-omap&amp;m=134065775323775&amp;w=2
[2] http://marc.info/?l=linux-omap&amp;m=134100413303810&amp;w=2

Cc: Kevin Hilman &lt;khilman@ti.com&gt;
Cc: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Cc: Linus Walleij &lt;linus.walleij@stericsson.com&gt;
Cc: Tarun Kanti DebBarma &lt;tarun.kanti@ti.com&gt;
Cc: Franky Lin &lt;frankyl@broadcom.com&gt;
Cc: Santosh Shilimkar &lt;santosh.shilimkar@ti.com&gt;
Cc: NeilBrown &lt;neilb@suse.de&gt;

Reported-by: Franky Lin &lt;frankyl@broadcom.com&gt;
Reviewed-by: Santosh Shilimkar &lt;santosh.shilimkar@ti.com&gt;
Tested-by: Franky Lin &lt;frankyl@broadcom.com&gt;
Acked-by: Kevin Hilman &lt;khilman@ti.com&gt;
Tested-by: NeilBrown &lt;neilb@suse.de&gt;
Signed-off-by: Jon Hunter &lt;jon-hunter@ti.com&gt;
Signed-off-by: Kevin Hilman &lt;khilman@ti.com&gt;
</content>
</entry>
<entry>
<title>gpio/omap: fix irq loss while in idle with debounce on</title>
<updated>2012-06-27T02:08:49Z</updated>
<author>
<name>Grazvydas Ignotas</name>
<email>notasas@gmail.com</email>
</author>
<published>2012-06-16T19:01:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=9e303f228c24d529bf479196d290eedc2a04cd5e'/>
<id>urn:sha1:9e303f228c24d529bf479196d290eedc2a04cd5e</id>
<content type='text'>
It seems that currently GPIO module is not working correctly during idle
when debounce is enabled - the system almost never responds to button
presses (observed on OMAP3530 ES2.1 and OMAP3630 ES1.2 pandora boards).
Even though wakeups are probably working, it seems that the GPIO module
itself is unable to detect input events and generate interrupts.
OMAP35x TRM also states that:
  "If the debounce clock is inactive, the debounce cell gates all
   input signals and thus cannot be used."

So whenever we are disabling debounce clocks (for PM or other reasons),
be sure the module's debounce feature is disabled too.

Cc: Kevin Hilman &lt;khilman@ti.com&gt;
Signed-off-by: Grazvydas Ignotas &lt;notasas@gmail.com&gt;
Signed-off-by: Kevin Hilman &lt;khilman@ti.com&gt;
</content>
</entry>
</feed>
