linux/drivers/i2c
Alexander Stein d038693e08 i2c: lpi2c: Avoid calling clk_get_rate during transfer
[ Upstream commit 4268254a39 ]

Instead of repeatedly calling clk_get_rate for each transfer, lock
the clock rate and cache the value.
A deadlock has been observed while adding tlv320aic32x4 audio codec to
the system. When this clock provider adds its clock, the clk mutex is
locked already, it needs to access i2c, which in return needs the mutex
for clk_get_rate as well.

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Andi Shyti <andi.shyti@kernel.org>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
[ Resolve minor conflicts to fix CVE-2024-40965 ]
Signed-off-by: Bin Lan <bin.lan.cn@windriver.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2024-12-09 10:31:40 +01:00
..
algos i2c: algo: bit: allow getsda to be NULL 2023-01-23 23:15:49 +01:00
busses i2c: lpi2c: Avoid calling clk_get_rate during transfer 2024-12-09 10:31:40 +01:00
muxes i2c: muxes: i2c-mux-gpmux: Use of_get_i2c_adapter_by_node() 2023-10-21 19:57:18 +02:00
i2c-atr.c media: i2c: add I2C Address Translator (ATR) support 2023-07-14 13:11:44 +02:00
i2c-boardinfo.c i2c: Remove support for dangling device properties 2021-04-10 21:43:02 +02:00
i2c-core-acpi.c i2c: acpi: Unbind mux adapters before delete 2024-06-16 13:47:40 +02:00
i2c-core-base.c i2c: core: Lock address during client device instantiation 2024-10-10 11:58:01 +02:00
i2c-core-of.c Char/Misc drivers for 6.4-rc1 2023-04-27 12:07:50 -07:00
i2c-core-slave.c i2c: add tracepoints for I2C slave events 2022-03-20 00:11:05 +01:00
i2c-core-smbus.c i2c: smbus: Check for parent device before dereference 2022-02-19 12:37:20 +01:00
i2c-core.h i2c: core: Fix atomic xfer check for non-preempt config 2024-01-10 17:17:00 +01:00
i2c-dev.c i2c: dev: copy userspace array safely 2023-11-28 17:19:47 +00:00
i2c-mux.c i2c: mux: Avoid potential false error message in i2c_mux_add_adapter 2023-09-25 08:22:02 +02:00
i2c-slave-eeprom.c i2c: Convert drivers to new .probe() callback 2023-03-09 21:59:30 +01:00
i2c-slave-testunit.c i2c: testunit: avoid re-issued work after read message 2024-07-18 13:21:26 +02:00
i2c-smbus.c i2c: smbus: Send alert notifications to all devices if source not found 2024-08-14 13:58:51 +02:00
i2c-stub.c i2c: stub: remove definition of DEBUG 2021-01-17 13:00:10 +01:00
Kconfig i2c: Make I2C_ATR invisible 2023-09-13 10:56:00 +02:00
Makefile media: i2c: add I2C Address Translator (ATR) support 2023-07-14 13:11:44 +02:00