<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/include/linux/gpio, branch v4.4.213</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.4.213</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.4.213'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2019-12-05T14:26:48Z</updated>
<entry>
<title>gpiolib: Fix return value of gpio_to_desc() stub if !GPIOLIB</title>
<updated>2019-12-05T14:26:48Z</updated>
<author>
<name>Krzysztof Kozlowski</name>
<email>krzk@kernel.org</email>
</author>
<published>2018-12-06T09:45:49Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=f644328e9f1b6ad812fe2b5e2bcf292f3a43d24c'/>
<id>urn:sha1:f644328e9f1b6ad812fe2b5e2bcf292f3a43d24c</id>
<content type='text'>
[ Upstream commit c5510b8dafce5f3f5a039c9b262ebcae0092c462 ]

If CONFIG_GPOILIB is not set, the stub of gpio_to_desc() should return
the same type of error as regular version: NULL.  All the callers
compare the return value of gpio_to_desc() against NULL, so returned
ERR_PTR would be treated as non-error case leading to dereferencing of
error value.

Fixes: 79a9becda894 ("gpiolib: export descriptor-based GPIO interface")
Signed-off-by: Krzysztof Kozlowski &lt;krzk@kernel.org&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>gpiolib: provide generic request/free implementations</title>
<updated>2015-10-16T20:11:16Z</updated>
<author>
<name>Jonas Gorski</name>
<email>jogo@openwrt.org</email>
</author>
<published>2015-10-11T15:34:15Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=c771c2f484857f3b1fc81d180485e96b7cb67c17'/>
<id>urn:sha1:c771c2f484857f3b1fc81d180485e96b7cb67c17</id>
<content type='text'>
Provide generic request/free implementations that pinctrl aware gpio
drivers can use instead of open coding if they use a 1:1 pin to gpio
signal mapping.

Signed-off-by: Jonas Gorski &lt;jogo@openwrt.org&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpio: keep the GPIO line names internal</title>
<updated>2015-09-24T17:48:53Z</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2015-09-23T23:20:43Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=f881bab038c9667deab19a85d8666029cbfa6f2c'/>
<id>urn:sha1:f881bab038c9667deab19a85d8666029cbfa6f2c</id>
<content type='text'>
This refactors the changes to the GPIO line naming mechanism to
not have so widespread effects, instead we conclude the patch series
by having created a name attribute in the GPIO descriptor, that need
not be globally unique, and it will be initialized from the old
.names array in struct gpio_chip if it exists, then used in the legacy
sysfs code like the array was used previously.

The associated changes to name lines from the device tree are
controversial and need to stand alone from this. Resulting changes:

1. Remove the export and the header for the gpio_name_to_desc() as so
far the only use is inside gpiolib.c. Staticize gpio_name_to_desc()
and move it above the only function using it.

2. Only print a warning if there are two GPIO lines with the same name.
The reason is to preserve current behaviour: before the previous
changes to the naming mechanism this would not reject probing the
driver, instead the error would occur when trying to export the line
in sysfs, so restore this behaviour, but print a friendly warning
if names collide.

Cc: Johan Hovold &lt;johan@kernel.org&gt;
Cc: Markus Pargmann &lt;mpa@pengutronix.de&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpio: Introduce gpio descriptor 'name'</title>
<updated>2015-09-24T17:48:51Z</updated>
<author>
<name>Markus Pargmann</name>
<email>mpa@pengutronix.de</email>
</author>
<published>2015-08-14T14:10:59Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=c0017ed71966a19ec40c7bc900d4338ddfbc4105'/>
<id>urn:sha1:c0017ed71966a19ec40c7bc900d4338ddfbc4105</id>
<content type='text'>
The latest gpio hogging mechanism assigns each gpio a 'line-name' in the
devicetree. The 'name' field is different from the 'label' field.
'label' is only used for requested GPIOs to describe its current use by
driver or userspace.

The 'name' field describes the GPIO itself, not the use. This is most
likely identical to the label in the schematic on the GPIO line and
should help to find this particular GPIO.

This is equivalent to the gpiochip-&gt;names array. However names should be
stored in the GPIO descriptor. We will use gpiochip-&gt;names in the future
only as initializer for the GPIO descriptors for drivers that assign
GPIO names hardcoded. All other GPIO names will be parsed from DT and
directly assigned to the GPIO descriptor.

This patch adds a helper function to find gpio descriptors by name
instead of gpio number.

Signed-off-by: Markus Pargmann &lt;mpa@pengutronix.de&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux</title>
<updated>2015-09-04T22:49:32Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2015-09-04T22:49:32Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=f377ea88b862bf7151be96d276f4cb740f8e1c41'/>
<id>urn:sha1:f377ea88b862bf7151be96d276f4cb740f8e1c41</id>
<content type='text'>
Pull drm updates from Dave Airlie:
 "This is the main pull request for the drm for 4.3.  Nouveau is
  probably the biggest amount of changes in here, since it missed 4.2.
  Highlights below, along with the usual bunch of fixes.

  All stuff outside drm should have applicable acks.

  Highlights:

   - new drivers:
        freescale dcu kms driver

   - core:
        more atomic fixes
        disable some dri1 interfaces on kms drivers
        drop fb panic handling, this was just getting more broken, as more locking was required.
        new core fbdev Kconfig support - instead of each driver enable/disabling it
        struct_mutex cleanups

   - panel:
        more new panels
        cleanup Kconfig

   - i915:
        Skylake support enabled by default
        legacy modesetting using atomic infrastructure
        Skylake fixes
        GEN9 workarounds

   - amdgpu:
        Fiji support
        CGS support for amdgpu
        Initial GPU scheduler - off by default
        Lots of bug fixes and optimisations.

   - radeon:
        DP fixes
        misc fixes

   - amdkfd:
        Add Carrizo support for amdkfd using amdgpu.

   - nouveau:
        long pending cleanup to complete driver,
        fully bisectable which makes it larger,
        perfmon work
        more reclocking improvements
        maxwell displayport fixes

   - vmwgfx:
        new DX device support, supports OpenGL 3.3
        screen targets support

   - mgag200:
        G200eW support
        G200e new revision support

   - msm:
        dragonboard 410c support, msm8x94 support, msm8x74v1 support
        yuv format support
        dma plane support
        mdp5 rotation
        initial hdcp

   - sti:
        atomic support

   - exynos:
        lots of cleanups
        atomic modesetting/pageflipping support
        render node support

   - tegra:
        tegra210 support (dc, dsi, dp/hdmi)
        dpms with atomic modesetting support

   - atmel:
        support for 3 more atmel SoCs
        new input formats, PRIME support.

   - dwhdmi:
        preparing to add audio support

   - rockchip:
        yuv plane support"

* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (1369 commits)
  drm/amdgpu: rename gmc_v8_0_init_compute_vmid
  drm/amdgpu: fix vce3 instance handling
  drm/amdgpu: remove ib test for the second VCE Ring
  drm/amdgpu: properly enable VM fault interrupts
  drm/amdgpu: fix warning in scheduler
  drm/amdgpu: fix buffer placement under memory pressure
  drm/amdgpu/cz: fix cz_dpm_update_low_memory_pstate logic
  drm/amdgpu: fix typo in dce11 watermark setup
  drm/amdgpu: fix typo in dce10 watermark setup
  drm/amdgpu: use top down allocation for non-CPU accessible vram
  drm/amdgpu: be explicit about cpu vram access for driver BOs (v2)
  drm/amdgpu: set MEC doorbell range for Fiji
  drm/amdgpu: implement burst NOP for SDMA
  drm/amdgpu: add insert_nop ring func and default implementation
  drm/amdgpu: add amdgpu_get_sdma_instance helper function
  drm/amdgpu: add AMDGPU_MAX_SDMA_INSTANCES
  drm/amdgpu: add burst_nop flag for sdma
  drm/amdgpu: add count field for the SDMA NOP packet v2
  drm/amdgpu: use PT for VM sync on unmap
  drm/amdgpu: make wait_event uninterruptible in push_job
  ...
</content>
</entry>
<entry>
<title>gpiolib: add description for gpio irqchip fields in struct gpio_chip</title>
<updated>2015-08-26T07:29:50Z</updated>
<author>
<name>Grygorii Strashko</name>
<email>grygorii.strashko@ti.com</email>
</author>
<published>2015-08-17T12:35:24Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=41d6bb4c890c8db01248b1bdd512a18e7bd29ca3'/>
<id>urn:sha1:41d6bb4c890c8db01248b1bdd512a18e7bd29ca3</id>
<content type='text'>
Add missed description for GPIO irqchip fields in struct gpio_chip.

Signed-off-by: Grygorii Strashko &lt;grygorii.strashko@ti.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>gpiolib: irqchip: use different lockdep class for each gpio irqchip</title>
<updated>2015-08-17T13:32:03Z</updated>
<author>
<name>Grygorii Strashko</name>
<email>grygorii.strashko@ti.com</email>
</author>
<published>2015-08-17T12:35:23Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=a0a8bcf4670c2c696e6e83742539a5e0dd7a62d6'/>
<id>urn:sha1:a0a8bcf4670c2c696e6e83742539a5e0dd7a62d6</id>
<content type='text'>
Since IRQ chip helpers were introduced drivers lose ability to
register separate lockdep classes for each registered GPIO IRQ
chip and the gpiolib now is using shared lockdep class for
all GPIO IRQ chips (gpiochip_irq_lock_class).
As result, lockdep will produce warning when there are min two
stacked GPIO chips and all of them are interrupt controllers.

HW configuration which generates lockdep warning (TI dra7-evm):

[SOC GPIO bankA.gpioX]
  &lt;- irq - [pcf875x.gpioY]
            &lt;- irq - DevZ.enable_irq_wake(pcf_gpioY_irq);
The issue was reported in [1] and discussed [2].

=============================================
[ INFO: possible recursive locking detected ]
4.2.0-rc6-00013-g5d050ed-dirty #55 Not tainted
---------------------------------------------
sh/63 is trying to acquire lock:
 (class){......}, at: [&lt;c009b91c&gt;] __irq_get_desc_lock+0x50/0x94

but task is already holding lock:
 (class){......}, at: [&lt;c009b91c&gt;] __irq_get_desc_lock+0x50/0x94

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(class);
  lock(class);

 *** DEADLOCK ***

 May be due to missing lock nesting notation

7 locks held by sh/63:
 #0:  (sb_writers#4){.+.+.+}, at: [&lt;c016bbb8&gt;] vfs_write+0x13c/0x164
 #1:  (&amp;of-&gt;mutex){+.+.+.}, at: [&lt;c01debf4&gt;] kernfs_fop_write+0x4c/0x1a0
 #2:  (s_active#36){.+.+.+}, at: [&lt;c01debfc&gt;] kernfs_fop_write+0x54/0x1a0
 #3:  (pm_mutex){+.+.+.}, at: [&lt;c009758c&gt;] pm_suspend+0xec/0x4c4
 #4:  (&amp;dev-&gt;mutex){......}, at: [&lt;c03f77f8&gt;] __device_suspend+0xd4/0x398
 #5:  (&amp;gpio-&gt;lock){+.+.+.}, at: [&lt;c009b940&gt;] __irq_get_desc_lock+0x74/0x94
 #6:  (class){......}, at: [&lt;c009b91c&gt;] __irq_get_desc_lock+0x50/0x94

stack backtrace:
CPU: 0 PID: 63 Comm: sh Not tainted 4.2.0-rc6-00013-g5d050ed-dirty #55
Hardware name: Generic DRA74X (Flattened Device Tree)
[&lt;c0016e24&gt;] (unwind_backtrace) from [&lt;c0013338&gt;] (show_stack+0x10/0x14)
[&lt;c0013338&gt;] (show_stack) from [&lt;c05f6b24&gt;] (dump_stack+0x84/0x9c)
[&lt;c05f6b24&gt;] (dump_stack) from [&lt;c00903f4&gt;] (__lock_acquire+0x19c0/0x1e20)
[&lt;c00903f4&gt;] (__lock_acquire) from [&lt;c0091098&gt;] (lock_acquire+0xa8/0x128)
[&lt;c0091098&gt;] (lock_acquire) from [&lt;c05fd61c&gt;] (_raw_spin_lock_irqsave+0x38/0x4c)
[&lt;c05fd61c&gt;] (_raw_spin_lock_irqsave) from [&lt;c009b91c&gt;] (__irq_get_desc_lock+0x50/0x94)
[&lt;c009b91c&gt;] (__irq_get_desc_lock) from [&lt;c009c4f4&gt;] (irq_set_irq_wake+0x20/0xfc)
[&lt;c009c4f4&gt;] (irq_set_irq_wake) from [&lt;c0393ac4&gt;] (pcf857x_irq_set_wake+0x24/0x54)
[&lt;c0393ac4&gt;] (pcf857x_irq_set_wake) from [&lt;c009c560&gt;] (irq_set_irq_wake+0x8c/0xfc)
[&lt;c009c560&gt;] (irq_set_irq_wake) from [&lt;c04a02ac&gt;] (gpio_keys_suspend+0x70/0xd4)
[&lt;c04a02ac&gt;] (gpio_keys_suspend) from [&lt;c03f6a00&gt;] (dpm_run_callback+0x50/0x124)
[&lt;c03f6a00&gt;] (dpm_run_callback) from [&lt;c03f7830&gt;] (__device_suspend+0x10c/0x398)
[&lt;c03f7830&gt;] (__device_suspend) from [&lt;c03f90f0&gt;] (dpm_suspend+0x134/0x2f4)
[&lt;c03f90f0&gt;] (dpm_suspend) from [&lt;c0096e20&gt;] (suspend_devices_and_enter+0xa8/0x728)
[&lt;c0096e20&gt;] (suspend_devices_and_enter) from [&lt;c00977cc&gt;] (pm_suspend+0x32c/0x4c4)
[&lt;c00977cc&gt;] (pm_suspend) from [&lt;c0096060&gt;] (state_store+0x64/0xb8)
[&lt;c0096060&gt;] (state_store) from [&lt;c01dec64&gt;] (kernfs_fop_write+0xbc/0x1a0)
[&lt;c01dec64&gt;] (kernfs_fop_write) from [&lt;c016b280&gt;] (__vfs_write+0x20/0xd8)
[&lt;c016b280&gt;] (__vfs_write) from [&lt;c016bb0c&gt;] (vfs_write+0x90/0x164)
[&lt;c016bb0c&gt;] (vfs_write) from [&lt;c016c330&gt;] (SyS_write+0x44/0x9c)
[&lt;c016c330&gt;] (SyS_write) from [&lt;c000f500&gt;] (ret_fast_syscall+0x0/0x54)

Lets fix it by using separate lockdep class for each registered GPIO
IRQ Chip. This is done by wrapping gpiochip_irqchip_add call into macros.

The implementation of this patch inspired by solution done by Nicolas
Boichat for regmap [3]

[1] http://www.spinics.net/lists/linux-gpio/msg05844.html
[2] http://www.spinics.net/lists/linux-gpio/msg06021.html
[3] http://www.spinics.net/lists/arm-kernel/msg429834.html

Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Cc: Roger Quadros &lt;rogerq@ti.com&gt;
Reported-by: Roger Quadros &lt;rogerq@ti.com&gt;
Tested-by: Roger Quadros &lt;rogerq@ti.com&gt;
Signed-off-by: Grygorii Strashko &lt;grygorii.strashko@ti.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
<entry>
<title>Merge tag 'v4.2-rc4' into devel</title>
<updated>2015-08-13T12:42:55Z</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2015-08-13T12:42:55Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=5f6f02cd49d61e9856ff2c337578316a1a1b3f88'/>
<id>urn:sha1:5f6f02cd49d61e9856ff2c337578316a1a1b3f88</id>
<content type='text'>
Linux 4.2-rc4
</content>
</entry>
<entry>
<title>gpiolib: Add support for removing registered consumer lookup table</title>
<updated>2015-07-21T07:21:40Z</updated>
<author>
<name>Shobhit Kumar</name>
<email>shobhit.kumar@intel.com</email>
</author>
<published>2015-06-26T09:02:04Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=be9015abb8296d8dc72cef4da75fa30e88ab7c81'/>
<id>urn:sha1:be9015abb8296d8dc72cef4da75fa30e88ab7c81</id>
<content type='text'>
In case we unload and load a driver module again that is registering a
lookup table, without this it will result in multiple entries. Provide
an option to remove the lookup table on driver unload

Cc: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
Cc: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Cc: Alexandre Courbot &lt;gnurou@gmail.com&gt;
Cc: Thierry Reding &lt;thierry.reding@gmail.com&gt;
Reviewed-by: Alexandre Courbot &lt;acourbot@nvidia.com&gt;
Reviewed-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Tested-by: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Signed-off-by: Shobhit Kumar &lt;shobhit.kumar@intel.com&gt;
Acked-by: Lee Jones &lt;lee.jones@linaro.org&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
</entry>
<entry>
<title>gpio: Remove double "base" in comment</title>
<updated>2015-07-15T22:12:24Z</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert+renesas@glider.be</email>
</author>
<published>2015-06-15T11:31:33Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=30bb6fb39e5c08b9db5bc592d6cbc9a5fc5e67a4'/>
<id>urn:sha1:30bb6fb39e5c08b9db5bc592d6cbc9a5fc5e67a4</id>
<content type='text'>
Signed-off-by: Geert Uytterhoeven &lt;geert+renesas@glider.be&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
</content>
</entry>
</feed>
