Files
linux/drivers
Lareine Khawaly ed173f77fd i2c: designware: use casting of u64 in clock multiplication to avoid overflow
[ Upstream commit c8c37bc514 ]

In functions i2c_dw_scl_lcnt() and i2c_dw_scl_hcnt() may have overflow
by depending on the values of the given parameters including the ic_clk.
For example in our use case where ic_clk is larger than one million,
multiplication of ic_clk * 4700 will result in 32 bit overflow.

Add cast of u64 to the calculation to avoid multiplication overflow, and
use the corresponding define for divide.

Fixes: 2373f6b974 ("i2c-designware: split of i2c-designware.c into core and bus specific parts")
Signed-off-by: Lareine Khawaly <lareine@amazon.com>
Signed-off-by: Hanna Hawa <hhhawa@amazon.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-02-01 08:23:23 +01:00
..
2021-03-04 11:38:21 +01:00
2022-05-09 09:04:56 +02:00
2023-01-24 07:20:00 +01:00
2021-11-18 14:03:51 +01:00
2022-04-13 21:00:55 +02:00
2023-01-14 10:16:24 +01:00
2022-08-25 11:38:14 +02:00