Hi Stephan, On Tue, Nov 28, 2023 at 10:48:37AM +0100, Stephan Gerhold wrote: > 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 ecdaa9473019 ("spi: qup: Vote for interconnect > bandwidth to DRAM") since both drivers represent the same hardware > block. > > Signed-off-by: Stephan Gerhold <stephan.gerhold@xxxxxxxxxxxxxxx> the patch looks good to me. > --- > The bandwidth calculation is taken over from Qualcomm's > downstream/vendor driver [1]. Due to lack of documentation about the > interconnect setup/behavior I cannot say exactly if this is right. > Unfortunately, this is not implemented very consistently downstream... > > [1]: https://git.codelinaro.org/clo/la/kernel/msm-3.10/-/commit/67174e2624ea64814231e7e1e4af83fd882302c6 Krzysztof, any chance you can help here? Thanks, Andi