i2c: pnx: Fix timeout in wait functions

[ Upstream commit 7363f2d4c18557c99c536b70489187bb4e05c412 ]

Since commit f63b94be6942 ("i2c: pnx: Fix potential deadlock warning
from del_timer_sync() call in isr") jiffies are stored in
i2c_pnx_algo_data.timeout, but wait_timeout and wait_reset are still
using it as milliseconds. Convert jiffies back to milliseconds to wait
for the expected amount of time.

Fixes: f63b94be6942 ("i2c: pnx: Fix potential deadlock warning from del_timer_sync() call in isr")
Signed-off-by: Vladimir Riabchun <ferr.lambarginio@gmail.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Vladimir Riabchun 2024-12-07 00:19:34 +01:00 committed by Ksawlii
parent 3050eda410
commit 6a99515b74

View file

@ -95,7 +95,7 @@ enum {
static inline int wait_timeout(struct i2c_pnx_algo_data *data) static inline int wait_timeout(struct i2c_pnx_algo_data *data)
{ {
long timeout = data->timeout; long timeout = jiffies_to_msecs(data->timeout);
while (timeout > 0 && while (timeout > 0 &&
(ioread32(I2C_REG_STS(data)) & mstatus_active)) { (ioread32(I2C_REG_STS(data)) & mstatus_active)) {
mdelay(1); mdelay(1);
@ -106,7 +106,7 @@ static inline int wait_timeout(struct i2c_pnx_algo_data *data)
static inline int wait_reset(struct i2c_pnx_algo_data *data) static inline int wait_reset(struct i2c_pnx_algo_data *data)
{ {
long timeout = data->timeout; long timeout = jiffies_to_msecs(data->timeout);
while (timeout > 0 && while (timeout > 0 &&
(ioread32(I2C_REG_CTL(data)) & mcntrl_reset)) { (ioread32(I2C_REG_CTL(data)) & mcntrl_reset)) {
mdelay(1); mdelay(1);