linux/drivers/staging/nvec
Igor Putko 33da57cc4a staging: nvec: nvec_power: use GFP_KERNEL in probe()
nvec_power_probe() calls devm_kzalloc() with GFP_NOWAIT, which
disables direct reclaim and is meant for atomic context. probe()
runs in normal process context and may sleep, so this needlessly
risks a spurious -ENOMEM under memory pressure instead of just
waiting for reclaim like every other probe() allocation does.

nvec.c's own tegra_nvec_probe() already uses GFP_KERNEL for the
identical pattern, confirming this is an oversight, not intentional.

Signed-off-by: Igor Putko <igorpetindev@gmail.com>
Acked-by: Marc Dietrich <marvin24@gmx.de>
Link: https://patch.msgid.link/20260710150113.3041-1-igorpetindev@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2026-07-17 14:18:08 +02:00
..
Kconfig staging: nvec: Fix Kconfig indentation 2019-11-20 15:20:29 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
nvec-keytable.h staging: nvec: remove redundant license text 2018-01-15 16:03:45 +01:00
nvec.c staging: nvec: remove extra space in enum declaration 2026-07-07 11:23:29 +02:00
nvec.h staging: nvec: convert to use GPIO descriptors 2018-04-23 14:38:00 +02:00
nvec_kbd.c staging: Switch back to struct platform_driver::remove() 2024-10-09 11:54:53 +02:00
nvec_paz00.c Staging: nvec: Remove macro definition to_nvec_led 2023-03-22 10:19:25 +01:00
nvec_power.c staging: nvec: nvec_power: use GFP_KERNEL in probe() 2026-07-17 14:18:08 +02:00
nvec_ps2.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
README Staging: nvec: Replace HTTP links with HTTPS ones 2020-07-10 13:52:46 +02:00
TODO staging: nvec: update TODO 2024-04-11 13:59:31 +02:00

NVEC: An NVidia compliant Embedded Controller Protocol Implementation

This is an implementation of the NVEC protocol used to communicate with an
embedded controller (EC) via I2C bus. The EC is an I2C master while the host
processor is the I2C slave. Requests from the host processor to the EC are
started by triggering a gpio line.

There is no written documentation of the protocol available to the public,
but the source code[1] of the published nvec reference drivers can be a guide.
This driver is currently only used by the AC100 project[2], but it is likely,
that other Tegra boards (not yet mainlined, if ever) also use it.

[1] e.g. https://nv-tegra.nvidia.com/gitweb/?p=linux-2.6.git;a=tree;f=arch/arm/mach-tegra/nvec;hb=android-tegra-2.6.32
[2] http://gitorious.org/ac100, http://launchpad.net/ac100