<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/gpio, branch v3.4</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/gpio?h=v3.4</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/gpio?h=v3.4'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-05-12T00:25:53Z</updated>
<entry>
<title>gpio/exynos: Fix compiler warnings when non-exynos machines are selected</title>
<updated>2012-05-12T00:25:53Z</updated>
<author>
<name>Sachin Kamat</name>
<email>sachin.kamat@linaro.org</email>
</author>
<published>2012-04-30T06:52:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2760f7adbb6c4e39bd3ae733f56d4ac8fb5e3521'/>
<id>urn:sha1:2760f7adbb6c4e39bd3ae733f56d4ac8fb5e3521</id>
<content type='text'>
Fixes the following compiler warnings:

drivers/gpio/gpio-samsung.c: In function ‘samsung_gpiolib_init’:
drivers/gpio/gpio-samsung.c:2980:1: warning: label ‘err_ioremap1’ defined but not used [-Wunused-label]
drivers/gpio/gpio-samsung.c:2978:1: warning: label ‘err_ioremap2’ defined but not used [-Wunused-label]
drivers/gpio/gpio-samsung.c:2976:1: warning: label ‘err_ioremap3’ defined but not used [-Wunused-label]
drivers/gpio/gpio-samsung.c:2974:1: warning: label ‘err_ioremap4’ defined but not used [-Wunused-label]
drivers/gpio/gpio-samsung.c:2722:55: warning: unused variable ‘gpio_base4’ [-Wunused-variable]

drivers/gpio/gpio-samsung.c:455:32: warning: ‘exynos_gpio_cfg’ defined but not used [-Wunused-variable]
drivers/gpio/gpio-samsung.c:2126:33: warning: ‘exynos4_gpios_1’ defined but not used [-Wunused-variable]
drivers/gpio/gpio-samsung.c:2228:33: warning: ‘exynos4_gpios_2’ defined but not used [-Wunused-variable]
drivers/gpio/gpio-samsung.c:2373:33: warning: ‘exynos4_gpios_3’ defined but not used [-Wunused-variable]

Signed-off-by: Sachin Kamat &lt;sachin.kamat@linaro.org&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
</entry>
<entry>
<title>gpio: pch9: Use proper flow type handlers</title>
<updated>2012-05-12T00:18:50Z</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2012-04-28T08:13:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=df9541a60af0985c3a756dc5f99b9253d2565a07'/>
<id>urn:sha1:df9541a60af0985c3a756dc5f99b9253d2565a07</id>
<content type='text'>
Jean-Francois Dagenais reported:

 Configuring a gpio pin with the gpio-pch driver with
 "IRQF_TRIGGER_LOW | IRQF_ONESHOT" generates an interrupt storm for
 threaded ISR until the ISR thread actually gets to physically clear
 the interrupt on the triggering chip!! The immediate observable
 symptom is the high CPU usage for my ISR thread task and the
 interrupt count in /proc/interrupts incrementing radically.

The driver is wrong in several ways:

1) Using handle_simple_irq() does not provide proper flow control
   handling. In the case of oneshot threaded handlers for the
   demultiplexed interrupts this results in an interrupt storm because
   the simple handler does not deal with masking/unmasking.  Even
   without threaded oneshot handlers an interrupt storm for level type
   interrupts can easily be triggered when the interrupt is disabled
   and the interrupt line is activated from the device.

2) Acknowlegding the demultiplexed interrupt before calling the
   handler is wrong for level type interrupts.

3) The set_type function unconditionally enables the interrupt. It's
   supposed to set the type and nothing else. The unmasking is done by
   the core code.

Move the acknowledge code into a separate function and add it to the
demux irqchip callbacks.

Remove the unconditional enabling from the set_type() callback and set
the proper flow handlers depending on the selected type (level/edge).

Reported-and-tested-by: Jean-Francois Dagenais &lt;jeff.dagenais@gmail.com&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
</entry>
<entry>
<title>gpio/omap: fix incorrect initialization of omap_gpio_mod_init</title>
<updated>2012-05-10T14:16:15Z</updated>
<author>
<name>Tarun Kanti DebBarma</name>
<email>tarun.kanti@ti.com</email>
</author>
<published>2012-04-30T07:20:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6edd94db250038c8fdf176f23ca4017d2f312509'/>
<id>urn:sha1:6edd94db250038c8fdf176f23ca4017d2f312509</id>
<content type='text'>
Initialization of irqenable, irqstatus registers is the common
operation done in this function for all OMAP platforms, viz. OMAP1,
OMAP2+. The latter _gpio_rmw()'s which supposedly got introduced
wrongly to take care of OMAP2+ platforms were overwriting initially
programmed OMAP1 value breaking functionality on OMAP1.
Somehow incorrect assumption was made that each _gpio_rmw()'s were
mutually exclusive. On close observation it is found that the first
_gpio_rmw() which is supposedly done to take care of OMAP1 platform
is generic enough and takes care of OMAP2+ platform as well.
Therefore remove the latter _gpio_rmw() to irqenable as they are
redundant now.

Writing to ctrl and debounce_en registers for OMAP2+ platforms are
modified to match the original(pre-cleanup) code where the registers
are initialized with 0. In the cleanup series since we are using
_gpio_rmw(reg, 0, 1), instead of __raw_writel(), we are just reading
and writing the same values to ctrl and debounce_en. This is not an
issue for debounce_en register because it has 0x0 as the default value.
But in the case of ctrl register the default value is 0x2 (GATINGRATIO
 = 0x1) so that we end up writing 0x2 instead of intended 0 value.
Therefore changing back to __raw_writel() as this is sufficient for
this case besides simpler to understand.

Also, change irqstatus initalization logic that avoids comparison
with bool, besides making it fit in a single line.

Cc: stable@vger.kernel.org
Cc: Tony Lindgren &lt;tony@atomide.com&gt;
Cc: Kevin Hilman &lt;khilman@ti.com&gt;
Cc: Santosh Shilimkar &lt;santosh.shilimkar@ti.com&gt;
Cc: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Reported-by: Janusz Krzysztofik &lt;jkrzyszt@tis.icnet.pl&gt;
Tested-by: Janusz Krzysztofik &lt;jkrzyszt@tis.icnet.pl&gt;
Signed-off-by: Tarun Kanti DebBarma &lt;tarun.kanti@ti.com&gt;
Signed-off-by: Kevin Hilman &lt;khilman@ti.com&gt;
</content>
</entry>
<entry>
<title>ARM: pxa: fix gpio wakeup setting</title>
<updated>2012-04-27T02:46:45Z</updated>
<author>
<name>Robert Jarzmik</name>
<email>robert.jarzmik@free.fr</email>
</author>
<published>2012-04-22T11:37:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b95ace54a23e2f8ebb032744cebb17c9f43bf651'/>
<id>urn:sha1:b95ace54a23e2f8ebb032744cebb17c9f43bf651</id>
<content type='text'>
In 3.3, gpio wakeup setting was broken. The call
enable_irq_wake() didn't set up the PXA gpio registers
(PWER, ...) anymore.

Fix it at least for pxa27x. The driver doesn't seem to be
used in pxa25x (weird ...), and the fix doesn't extend to
pxa3xx and pxa95x (which don't have a gpio_set_wake()
available).

Signed-off-by: Robert Jarzmik &lt;robert.jarzmik@free.fr&gt;
Signed-off-by: Haojian Zhuang &lt;haojian.zhuang@gmail.com&gt;
</content>
</entry>
<entry>
<title>gpio/exynos: Fix compiler warning in gpio-samsung.c file</title>
<updated>2012-04-11T04:15:39Z</updated>
<author>
<name>Sachin Kamat</name>
<email>sachin.kamat@linaro.org</email>
</author>
<published>2012-04-03T08:42:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9a5c7d6eb9b8cc9fa1c7169ecfd96c9e267c0452'/>
<id>urn:sha1:9a5c7d6eb9b8cc9fa1c7169ecfd96c9e267c0452</id>
<content type='text'>
Fixes the following warning when "SAMSUNG EXYNOS5" is not selected:

warning: ‘exynos5_gpios_1’ defined but not used [-Wunused-variable]
warning: ‘exynos5_gpios_2’ defined but not used [-Wunused-variable]
warning: ‘exynos5_gpios_3’ defined but not used [-Wunused-variable]
warning: ‘exynos5_gpios_4’ defined but not used [-Wunused-variable]

Signed-off-by: Sachin Kamat &lt;sachin.kamat@linaro.org&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
</entry>
<entry>
<title>gpio: Fix uninitialized variable bit in adp5588_irq_handler</title>
<updated>2012-04-10T20:20:55Z</updated>
<author>
<name>Axel Lin</name>
<email>axel.lin@gmail.com</email>
</author>
<published>2012-04-06T12:37:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=078dc65e61c562e289685fe43b5ef58118e033fc'/>
<id>urn:sha1:078dc65e61c562e289685fe43b5ef58118e033fc</id>
<content type='text'>
The variable 'bit' is uninitialized in the first iteration of for
loop. Fix it.

Signed-off-by: Axel Lin &lt;axel.lin@gmail.com&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
</entry>
<entry>
<title>gpio/sodaville: Convert sodaville driver to new irqdomain API</title>
<updated>2012-04-10T20:20:55Z</updated>
<author>
<name>Grant Likely</name>
<email>grant.likely@secretlab.ca</email>
</author>
<published>2012-03-28T20:55:04Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3ffc9cebb65f6942cd912e33e60e1f09e497e208'/>
<id>urn:sha1:3ffc9cebb65f6942cd912e33e60e1f09e497e208</id>
<content type='text'>
The irqdomain api changed significantly in v3.4 which caused a build
failure for this driver.

Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Acked-by: Sebastian Andrzej Siewior &lt;bigeasy@linutronix.de&gt;
Cc: Hans J. Koch &lt;hjk@linutronix.de&gt;
Cc: Torben Hohn &lt;torbenh@linutronix.de&gt;
</content>
</entry>
<entry>
<title>gpio: tegra: Iterate over the correct number of banks</title>
<updated>2012-04-04T19:13:18Z</updated>
<author>
<name>Stephen Warren</name>
<email>swarren@nvidia.com</email>
</author>
<published>2012-03-16T23:37:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4a3398ee9d7d8008ee9bfc8a600b734a1b22af23'/>
<id>urn:sha1:4a3398ee9d7d8008ee9bfc8a600b734a1b22af23</id>
<content type='text'>
When Tegra30 support was added to the Tegra GPIO driver, a few places
which iterated over all banks were not converted to use the variable
tegra_gpio_bank_count rather than hard-coding the bank count. Fix this.

Signed-off-by: Stephen Warren &lt;swarren@nvidia.com&gt;
Acked-by: Olof Johansson &lt;olof@lixom.net&gt;
</content>
</entry>
<entry>
<title>gpio: tegra: fix register address calculations for Tegra30</title>
<updated>2012-04-04T19:13:13Z</updated>
<author>
<name>Stephen Warren</name>
<email>swarren@nvidia.com</email>
</author>
<published>2012-03-16T23:35:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5c1e2c9dc684f26fcc78ff4ef15dc97ed0244303'/>
<id>urn:sha1:5c1e2c9dc684f26fcc78ff4ef15dc97ed0244303</id>
<content type='text'>
Tegra20 and Tegra30 share the same register layout within registers, but
the addresses of the registers is a little different. Fix the driver to
cope with this.

Signed-off-by: Stephen Warren &lt;swarren@nvidia.com&gt;
Acked-by: Olof Johansson &lt;olof@lixom.net&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm</title>
<updated>2012-03-29T23:53:48Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2012-03-29T23:53:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=12679a2d7e3bfbdc7586e3e86d1ca90c46659363'/>
<id>urn:sha1:12679a2d7e3bfbdc7586e3e86d1ca90c46659363</id>
<content type='text'>
Pull more ARM updates from Russell King.

This got a fair number of conflicts with the &lt;asm/system.h&gt; split, but
also with some other sparse-irq and header file include cleanups.  They
all looked pretty trivial, though.

* 'for-linus' of git://git.linaro.org/people/rmk/linux-arm: (59 commits)
  ARM: fix Kconfig warning for HAVE_BPF_JIT
  ARM: 7361/1: provide XIP_VIRT_ADDR for no-MMU builds
  ARM: 7349/1: integrator: convert to sparse irqs
  ARM: 7259/3: net: JIT compiler for packet filters
  ARM: 7334/1: add jump label support
  ARM: 7333/2: jump label: detect %c support for ARM
  ARM: 7338/1: add support for early console output via semihosting
  ARM: use set_current_blocked() and block_sigmask()
  ARM: exec: remove redundant set_fs(USER_DS)
  ARM: 7332/1: extract out code patch function from kprobes
  ARM: 7331/1: extract out insn generation code from ftrace
  ARM: 7330/1: ftrace: use canonical Thumb-2 wide instruction format
  ARM: 7351/1: ftrace: remove useless memory checks
  ARM: 7316/1: kexec: EOI active and mask all interrupts in kexec crash path
  ARM: Versatile Express: add NO_IOPORT
  ARM: get rid of asm/irq.h in asm/prom.h
  ARM: 7319/1: Print debug info for SIGBUS in user faults
  ARM: 7318/1: gic: refactor irq_start assignment
  ARM: 7317/1: irq: avoid NULL check in for_each_irq_desc loop
  ARM: 7315/1: perf: add support for the Cortex-A7 PMU
  ...
</content>
</entry>
</feed>
