Commit Graph

1075784 Commits

Author SHA1 Message Date
Louis Morhet
0a20ce9552 ODROID-C5: HID: mcp2221: fix get and get_direction for gpio
The mcp2221_raw_event retrieves the value and direction of gpio on the
same command, by setting the value on mcp->status and the direction on
mcp->gpio_dir; and the offset at which they are read is based on
mcp->gp_idx, set by the gpiochip callbacks.

However, the individual gpiochip calls set the index to look for
directly on the field they want to track. This create a "double offset"
in the final read in the response report.

Align the behaviour of mcp2221_raw_event and
mcp_gpio_get/mcp_gpio_get_direction by putting gp_idx on those calls to
the base offset of the gpio status struct.

Signed-off-by: Louis Morhet <lmorhet@kalrayinc.com>
Link: https://lore.kernel.org/r/dd0b23800a79d2a464e1e9ed429b018b69fd5df2.1680602387.git.lmorhet@kalrayinc.com
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Change-Id: I47c3d3d3c0ad7b7072614fefa9e804d417be8bba
2025-05-25 08:15:35 +09:00
Louis Morhet
a7fb304d9b ODROID-C5: HID: mcp2221: fix report layout for gpio get
The documentation of the component (section 3.1.12 GET GPIO VALUES)
describes the hid report structure with two fields per gpio:
its value, followed by its direction.

However, the driver describes it with a wrong order:
direction followed by value.

Fix the structure representing the report answered by the chip to the
GET GPIO VALUES command.

Fixes commit 567b8e9fed ("HID: mcp2221: Fix GPIO output handling")

Signed-off-by: Louis Morhet <lmorhet@kalrayinc.com>
Link: https://lore.kernel.org/r/945967fbab56d53f9630ad3844b64734f8c3107e.1680602387.git.lmorhet@kalrayinc.com
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Change-Id: I21d45bb9d4a4957c37b5e27cf67d3c8045f9b035
2025-05-25 08:15:35 +09:00
Benjamin Tissoires
f38b13cea0 ODROID-C5: HID: mcp-2221: prevent UAF in delayed work
If the device is plugged/unplugged without giving time for mcp_init_work()
to complete, we might kick in the devm free code path and thus have
unavailable struct mcp_2221 while in delayed work.

Canceling the delayed_work item is enough to solve the issue, because
cancel_delayed_work_sync will prevent the work item to requeue itself.

Fixes: 960f9df7c6 ("HID: mcp2221: add ADC/DAC support via iio subsystem")
CC: stable@vger.kernel.org
Acked-by: Jiri Kosina <jkosina@suse.cz>
Link: https://lore.kernel.org/r/20230215-wip-mcp2221-v2-1-109f71fd036e@redhat.com
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Change-Id: I35ca79b8a7b96dc72c702af8ea79d4c5ca92935f
2025-05-25 08:15:35 +09:00
Matt Ranostay
0a29d5c069 ODROID-C5: HID: mcp2221: correct undefined references when CONFIG_GPIOLIB isn't defined
Singular #ifdef IS_REACHABLE(CONFIG_GPIOLIB) weren't covering all the
gpiolib functions that were being referenced.

Update the code regions that are commented out when CONFIG_GPIOLIB isn't
enabled to avoid errors.

Fixes: 960f9df7c6 ("HID: mcp2221: add ADC/DAC support via iio subsystem")
Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Change-Id: I0b786ac507f9eff0dd589d4a547ce3f1ff425b78
2025-05-25 08:15:35 +09:00
Matt Ranostay
f07ab33405 ODROID-C5: HID: mcp2221: fix 'cast to restricted __le16' sparse warnings
Use (__force __le16) cast for adc_values le16_to_cpu conversion to correct following sparse
warnings:

drivers/hid/hid-mcp2221.c:950:32: sparse: sparse: cast to restricted __le16

Reported-by: kernel test robot <lkp@intel.com>
Fixes: 960f9df7c6 ("HID: mcp2221: add ADC/DAC support via iio subsystem")
Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Change-Id: If0a7a009669f6458c45089483179238525114e48
2025-05-25 08:15:35 +09:00
Jiri Kosina
2e3a3d3363 ODROID-C5: HID: mcp2221: fix usage of tmp variable in mcp2221_raw_event()
In mcp2221_raw_event(), 'tmp' is used only conditionally. Move
the declaration into the conditional block in order to prevent
unused variable warning.

Reported-by: kernel test robot <lkp@intel.com>
Fixes: 960f9df7c6 ("HID: mcp2221: add ADC/DAC support via iio subsystem")
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Change-Id: Icb349aaa2fdcfc48d975be4124532f53f894768a
2025-05-25 08:15:35 +09:00
Matt Ranostay
81f2365208 ODROID-C5: HID: mcp2221: add ADC/DAC support via iio subsystem
Add support for 3x 10-bit ADC and 1x DAC channels registered via the iio
subsystem.

To prevent breakage and unexpected dependencies this support only is
only built if CONFIG_IIO is enabled, and is only weakly referenced by
'imply IIO' within the respective Kconfig.

Additionally the iio device only gets registered if at least one channel
is enabled in the power-on configuration read from SRAM.

Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Change-Id: I898368e779dcced15b12d43f88a38f71a31be80f
2025-05-25 08:15:35 +09:00
Matt Ranostay
70b188bde1 ODROID-C5: HID: mcp2221: change 'select GPIOLIB' to imply
To avoid recursive dependencies on GPIOLIB when 'imply IIO' is requested
with other drivers we should switch GPIOLIB to an imply.

This isn't the most ideal solution but avoids modifiying the Kconfig for
other drivers, and only requires a singular IS_REACHABLE(CONFIG_GPIOLIB)
check.

Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Change-Id: Ie379ae18bd2aae09b576238298715055ca616f0d
2025-05-25 08:15:35 +09:00
Matt Ranostay
429600906f ODROID-C5: HID: mcp2221: switch i2c registration to devm functions
Switch from i2c_add_adapter() to resource managed devm_i2c_add_adapter()
for matching rest of driver initialization, and more concise code.

Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Change-Id: I642fcb5af3894a2010b4a8f2f06098abaecf6812
2025-05-25 08:15:35 +09:00
1d7e728fc2 ODROID-C5: config: add default i2c-dev
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: I5bbe12424592dcdffff9092e2c5b7ed6ce796bde
2025-05-25 08:15:35 +09:00
Dongjin Kim
f2ea9ed62a ODROID-C5: config: add default LED triggers
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Change-Id: I33f0ad8b7c9a23b3c4efe0d1d58f48402164dcb7
2025-05-25 08:15:35 +09:00
f31cfd1da6 ODROID-C5: config: enable touch driver for ODROID-Vu5/Vu7Plus
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: Icff420cbcaf2fb993ef716eb0eb606ba418f51ea
2025-05-25 08:15:35 +09:00
20086b2dbe ODROID-C5: input/touchscreen: Add Vu5/Vu7+ multitouch driver
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: I8f1ea4a68ba4e640b7848144ef419ade552281a4
2025-05-25 08:15:35 +09:00
18debd02b6 ODROID-C5: config: add module pcf8563 i2c-rtc support
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: I1a17b51d6b85393e5042e59b433529159d889248
2025-05-25 08:15:35 +09:00
f8457b3515 ODROID-C5: config: enable config for mcp2221, USB to I2C
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: I3f3ba500a4e98fdadc83069664b33b60e4933fcf
2025-05-25 08:15:35 +09:00
665213cea5 ODROID-C5: config: enable config USB to TTL driver
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: I693146d95a97a585675a19c1c54a25b47d51b002
2025-05-25 08:15:35 +09:00
Dongjin Kim
67818c2a29 ODROID-C5: config: select default kernel config
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Change-Id: Id841b74717e5d65a48daed97b1ec4949d74d0cd3
2025-05-25 08:15:35 +09:00
6508aa290e ODROID-C5: config: Enable sysfs gpio
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: I4940abe2202b92deee1882ec3a85b0bbfd886378
2025-05-25 08:15:35 +09:00
6850d29279 ODROID-C5: config: change config CONFIG_AMLOGIC_INPUT builtin
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: If272e0dd3861b8ca5c8f84704f26df0b70b1e6a9
2025-05-25 08:15:35 +09:00
Dongjin Kim
ec6f7e26d6 ODROID-C5: config: fixup on top of BSP 202501
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Change-Id: I52729ec5f9b7035d900b5a2e076dbb6aceff009b
2025-05-25 08:15:34 +09:00
7642637f96 ODROID-C5: touchscreen: Add support ads7846
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: I2215059bd9a9daad3f3218d95b47379db1b7b06f
2025-05-25 08:15:34 +09:00
c61e7281c6 ODROID-C5: tft: Add Hardkernel 3.2inch TFT LCD
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: If48bd4bda5b5281717accdb9d65faa9ca472758f
2025-05-25 08:15:34 +09:00
c449f77675 ODROID-C5: touchscreen: ads7846: Add spi device ids
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: I9a9488d02003ae82b3457848072829a60d465278
2025-05-25 08:15:34 +09:00
Dongjin Kim
957dd4c6e9 ODROID-C5: config: improve to support multimedia features
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Change-Id: I7f39b300787f99fa13f245485626551ebd29b55e
2025-05-25 08:15:34 +09:00
Dongjin Kim
5d60b1adbb ODROID-C5: config: convert driver module to static driver
SoC level driver bugs to manage kernel binaries as well as import them
to initramfs to make them load very early, this could cause boot failure
when one fails to update initramfs. So such driver must be in kernel
blob itself, not to miss.

Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Change-Id: Iea67d3fa3a97146db47cae25b2a7d5eb5b938f5c
2025-05-25 08:15:34 +09:00
Dongjin Kim
07e6a14655 ODROID-C5: config: remove none ODROID supported configs
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Change-Id: I86c86a406511b310fbbee4d975177e5a270192ed
2025-05-25 08:15:34 +09:00
13032636e2 ODROID-C5: defconfig: shtc1: Add config shtc1
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: I2ed4074057ec9d52381568930b6c27388ade48ad
2025-05-25 08:15:34 +09:00
f23baca83b ODROID-C5: defconfig: dht11: Add config dht11
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: Ia5c4e7d0ac15787513d183ffaef584e16af355e3
2025-05-25 08:15:34 +09:00
874b72b25e ODROID-C5: defconfig: onewire: Add config onewire
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: I5346db6dab7d4c264aca97b23eed076a9e889d4a
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
2025-05-25 08:15:34 +09:00
ffced6227f ODROID-C5: defconfig: can: Add module config MCP251X
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: Id6aa4f1e970937f03bfddfa08f437c35d060cfe5
2025-05-25 08:15:34 +09:00
93f5c81c6f ODROID-C5: spi: Add compatible name "linux,spidev"
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: I13f0a3d2ff898f0e8e3b504a38ea84666dcbf8d0
2025-05-25 08:15:34 +09:00
6281e175f7 ODROID-C5: Change flag for dt overlay
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: Ic5f9dea9fa288bb83010a429fc5c58413f539ae0
2025-05-25 08:15:34 +09:00
036de41f2a ODROID-C5: defconfig: spi: spidev set module
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: I320e6710edb8dbd2134d0638a7b597546610a283
2025-05-25 08:15:34 +09:00
Dongjin Kim
f86bfce026 ODROID-C5: arch/arm64: add 'ARCH_MESON_ODROID{C5|_COMMON}*'
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Change-Id: Ice6bb36f197bc445d8595b18e45110cfbfafe7b2
2025-05-25 08:15:34 +09:00
22d3742909 ODROID-C5: defconfig: Edit config for blue/red leds
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: I30d7ddfeb64350ac65a8a7256bb558939665c03f
2025-05-25 08:15:34 +09:00
16fd7594fd ODROID-C5: gpiomem: defconfig: Add gpiomem
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
Change-Id: I977be3880cd8520a8eccffc45d477595af34b284
2025-05-25 08:15:34 +09:00
Dongjin Kim
d3c2844d0c ODROID-C5: config: enable ARM Mali GPU drivers
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Change-Id: I5b34b4c57bd1ec70cd8011667239b36e68c0d6cf
2025-05-25 08:15:34 +09:00
Dongjin Kim
22479b00dc ODROID-C5: config: very first kernel config
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
2025-05-25 08:15:34 +09:00
Dongjin Kim
59f4cc1f49 ODROID-C5: not adding git commit value to kernel version
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
2025-05-25 08:15:34 +09:00
Dongjin Kim
25f2b89664 ODROID-C5: Add new submodule 'media_modules' to media drivers
Change-Id: I683fd590315157ce77b1672ab1b947b1104641d9
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
2025-05-25 08:15:34 +09:00
Dongjin Kim
6945ef66ba ODROID-C5: Add new submodule 'media_modules' to media drivers
Change-Id: I683fd590315157ce77b1672ab1b947b1104641d9
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
2025-05-25 08:15:21 +09:00
Dongjin Kim
ba40bf8f64 Revert "amlbian: Support making dtb-deb [1/1]"
This reverts commit d22cc183af54b1539b856a387e43d86688941eba.
2025-01-17 15:23:45 +09:00
tuan zhang
62dff0c86a Add rumble support to latest xbox controllers
PD#SWPL-185765

Currently, rumble is only supported via bluetooth on a single xbox
controller, called 'model 1708'. On the back of the device, it's named
'wireless controller for xbox one'. However, in 2021, Microsoft released
a firmware update for this controller. As part of this update, the HID
descriptor of the device changed. The product ID was also changed from
0x02fd to 0x0b20. On this controller, rumble was supported via
hid-microsoft, which matched against the old product id (0x02fd). As a
result, the firmware update broke rumble support on this controller.

The hid-microsoft driver actually supports rumble on the new firmware,
as well. So simply adding new product id is sufficient to bring back
this support.

After discussing further with the xbox team, it was pointed out that
another xbox controller, xbox elite series 2, can be supported in a
similar way.

Add rumble support for all of these devices in this patch. Two of the
devices have received firmware updates that caused their product id's to
change. Both old and new firmware versions of these devices were tested.

The tested controllers are:

1. 'wireless controller for xbox one', model 1708
2. 'xbox wireless controller', model 1914. This is also sometimes
   referred to as 'xbox series S|X'.
3. 'elite series 2', model 1797.

The tested configurations are:
1. model 1708, pid 0x02fd (old firmware)
2. model 1708, pid 0x0b20 (new firmware)
3. model 1914, pid 0x0b13
4. model 1797, pid 0x0b05 (old firmware)
5. model 1797, pid 0x0b22 (new firmware)

I verified rumble support on both bluetooth and usb.

Change-Id: Ia84736e95dadc61e442276ae943f370fe0cb6526
Reviewed-by: Bastien Nocera <hadess@hadess.net>
Signed-off-by: Siarhei Vishniakou <svv@google.com>
2025-01-17 15:07:03 +09:00
Fabio M. De Francesco
b5108d86fa UPSTREAM: binder: Use memset_page() in binder_alloc_clear_buf()
The use of kmap() is being deprecated in favor of kmap_local_page()
where it is feasible. With kmap_local_page(), the mapping is per
thread, CPU local and not globally visible.

binder_alloc_clear_buf() is a function where the use of kmap_local_page()
in place of kmap() is correctly suited because the mapping is local to the
thread.

Therefore, use kmap_local_page() / kunmap_local() but, instead of open
coding these two functions and adding a memset() of the virtual address
of the mapping, prefer memset_page().

Cc: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Todd Kjos <tkjos@google.com>
Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
Link: https://lore.kernel.org/r/20220425175754.8180-2-fmdefrancesco@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Bug: 368205746
Bug: 365876437
(cherry picked from commit 26eff2d66a)
Change-Id: I7bc041db662ee1e8758c173861b2229d6ad8eb1e
Signed-off-by: yenchia.chen <yenchia.chen@mediatek.com>
Signed-off-by: Carlos Llamas <cmllamas@google.com>
2025-01-17 15:07:03 +09:00
Fabio M. De Francesco
e38087f053 UPSTREAM: binder: Use kmap_local_page() in binder_alloc_copy_user_to_buffer()
The use of kmap() is being deprecated in favor of kmap_local_page()
where it is feasible. With kmap_local_page(), the mapping is per
thread, CPU local and not globally visible.

binder_alloc_copy_user_to_buffer() is a function where the use of
kmap_local_page() in place of kmap() is correctly suited because
the mapping is local to the thread.

Therefore, use kmap_local_page() / kunmap_local().

Cc: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Todd Kjos <tkjos@google.com>
Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
Link: https://lore.kernel.org/r/20220425175754.8180-3-fmdefrancesco@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Bug: 365876437
Bug: 367895677
(cherry picked from commit 1d625960e4)
Change-Id: I49739365cf5dcf584be1aab0c93848aa9ce886a8
Signed-off-by: Carlos Llamas <cmllamas@google.com>
2025-01-17 15:07:03 +09:00
qinglin.li
88e297173c ntfs3: ntfs3 fs_umode_to_dtype not in abi list [1/1]
PD#SWPL-169224

Problem:
ntfs3 fs_umode_to_dtype not in abi list

Solution:
ntfs3 fs_umode_to_dtype not in abi list

Verify:
local

Change-Id: Ibf190585f7606539b5df98151e8dd617ad66c9da
Signed-off-by: qinglin.li <qinglin.li@amlogic.com>
2025-01-17 15:07:03 +09:00
Long
6b489068ae eMMC: run work queue asynchronous. [1/1]
PD#SWPL-170009

Problem:
Synchronous run queues cause eMMC performance degradation.

Solution:
Asynchronous Run work queue.

Verify:
T3

Change-Id: I214f2d813373b46fd5fc64f050e00a395dd35828
Signed-off-by: Long <long.yu@amlogic.com>
2025-01-17 15:07:03 +09:00
yao zhang1
0a80f1482b Revert "f2fs: preserve direct write semantics when buffering is forced"
This reverts commit 82ab408329.

Change-Id: Ia0ad2463619b391a6589ba637edca394ff7b71eb
Signed-off-by: yao zhang1 <yao.zhang1@amlogic.com>
2025-01-17 15:07:03 +09:00
Hao Shi
c3e8d5f88b v4l: Adjust gfp_flag according to the order [1/1]
PD#SWPL-153208
PD#SWPL-131346

Problem:
1.When the memory is in short supply, if the
order is too large, the memory will not be
allocated at one time, which will increase
the allocation time.
2.Modify in vb2 did not following gki2.0

Solution:
1.According to the degree of memory shortage,
adjust the size of the order, so as to allocate
memory in small amounts and multiple times to
improve efficiency.
2.The modify in vb2 only for versions prior to
androidT and do not need to follow gki2.0. Now
use the new config to pass gki check.

Verify:
ohm

Change-Id: I4be66b8b06f9870041afefe9506d1e9f480c0bdd
Signed-off-by: Hao Shi <hao.shi@amlogic.com>
2025-01-17 15:07:03 +09:00
haotian.qu
affab35f9e fdtoverlay: fdtoverlay support delete dts node [1/2]
PD#SWPL-150301

Problem:
Fdtoverlay cann't support remove unnecessary dts node.

Solution:
Add __removenode__ key work to support the function.

Verify:
local

Change-Id: I3819a82663a90ae7a4da1d9c30c990af2d3a5fa0
Signed-off-by: haotian.qu <haotian.qu@amlogic.com>
2025-01-17 15:07:03 +09:00