linux/drivers/i2c
Stephan Gerhold d4f35233a6 i2c: qup: Vote for interconnect bandwidth to DRAM
When the I2C QUP controller is used together with a DMA engine it needs
to vote for the interconnect path to the DRAM. Otherwise it may be
unable to access the memory quickly enough.

The requested peak bandwidth is dependent on the I2C core clock.

To avoid sending votes too often the bandwidth is always requested when
a DMA transfer starts, but dropped only on runtime suspend. Runtime
suspend should only happen if no transfer is active. After resumption we
can defer the next vote until the first DMA transfer actually happens.

The implementation is largely identical to the one introduced for
spi-qup in commit ecdaa94730 ("spi: qup: Vote for interconnect
bandwidth to DRAM") since both drivers represent the same hardware
block.

Signed-off-by: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://lore.kernel.org/r/20231128-i2c-qup-dvfs-v1-3-59a0e3039111@kernkonzept.com
2025-03-18 21:53:53 +01:00
..
algos i2c: algo: bit: allow getsda to be NULL 2023-01-23 23:15:49 +01:00
busses i2c: qup: Vote for interconnect bandwidth to DRAM 2025-03-18 21:53:53 +01:00
muxes i2c: mux: remove incorrect of_match_ptr annotations 2025-03-18 21:53:53 +01:00
i2c-atr.c i2c: atr: Fix client detach 2025-01-09 11:08:01 +01:00
i2c-boardinfo.c
i2c-core-acpi.c i2c: Force ELAN06FA touchpad I2C bus freq to 100KHz 2025-01-14 13:01:31 +01:00
i2c-core-base.c i2c: core: Allocate temporary client dynamically 2025-02-22 10:27:37 +01:00
i2c-core-of-prober.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08: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: simplify with scoped for each OF child loop 2024-09-03 12:01:52 +02:00
i2c-core-smbus.c i2c: Fix whitespace style issue 2024-11-27 12:23:43 +01:00
i2c-core.h i2c: core: Fix atomic xfer check for non-preempt config 2024-01-06 14:10:10 +01:00
i2c-dev.c i2c: dev: Fix memory leak when underlying adapter does not support I2C 2024-11-14 11:22:57 +01:00
i2c-mux.c i2c: mux: Remove class argument from i2c_mux_add_adapter() 2024-05-13 16:13:19 +02:00
i2c-slave-eeprom.c i2c: slave-eeprom: Constify 'struct bin_attribute' 2025-01-09 10:48:44 +01:00
i2c-slave-testunit.c i2c: testunit: on errors, repeat NACK until STOP 2025-01-15 19:44:21 +01:00
i2c-smbus.c i2c: support gpio-binding for SMBAlerts 2024-10-08 11:04:20 +02:00
i2c-stub.c i2c: stub: Don't let i2c adapters declare I2C_CLASS_SPD support if they support I2C_CLASS_HWMON 2024-01-18 21:10:41 +01:00
Kconfig i2c: Remove I2C_COMPAT config symbol and related code 2024-09-07 18:31:28 +02:00
Makefile i2c: Introduce OF component probe function 2024-11-27 12:04:10 +01:00