[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
<GV2PR02MB11640D51CC0CEA2978D83E1638991A@GV2PR02MB11640.eurprd02.prod.outlook.com>
Date: Wed, 28 Jan 2026 13:06:14 +0000
From: Timothée Kremer <timothee.kremer@...tech.eu>
To: "gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>,
"mchehab@...nel.org" <mchehab@...nel.org>
CC: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-staging@...ts.linux.dev" <linux-staging@...ts.linux.dev>,
"linux-media@...r.kernel.org" <linux-media@...r.kernel.org>
Subject: [PATCH] staging: media: av7110: refactor sleep timers
>From e910a2c461328eceb168646779065583d88b5582 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timoth=C3=A9e=20KREMER?= <timothee.kremer@...tech.eu>
Date: Wed, 28 Jan 2026 13:57:30 +0100
Subject: [PATCH] staging: media: av7110: refactor sleep timers
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Refactor sleep timers to use usleep_range() for short delays (<20ms)
while retaining msleep() for longer delays to maintain hardware stability.
Signed-off-by: Timothée KREMER <timothee.kremer@...tech.eu>
---
drivers/staging/media/av7110/av7110_hw.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/drivers/staging/media/av7110/av7110_hw.c b/drivers/staging/media/av7110/av7110_hw.c
index bf8e6dca40e5..49ce295771e4 100644
--- a/drivers/staging/media/av7110/av7110_hw.c
+++ b/drivers/staging/media/av7110/av7110_hw.c
@@ -312,7 +312,7 @@ int av7110_wait_msgstate(struct av7110 *av7110, u16 flags)
pr_err("%s(): timeout waiting for MSGSTATE %04x\n", __func__, stat & flags);
return -ETIMEDOUT;
}
- msleep(1);
+ usleep_range(1000, 2000);
}
return 0;
}
@@ -343,7 +343,7 @@ static int __av7110_send_fw_cmd(struct av7110 *av7110, u16 *buf, int length)
av7110->arm_errors++;
return -ETIMEDOUT;
}
- msleep(1);
+ usleep_range(1000, 2000);
}
if (FW_VERSION(av7110->arm_app) <= 0x261f)
@@ -359,7 +359,7 @@ static int __av7110_send_fw_cmd(struct av7110 *av7110, u16 *buf, int length)
pr_err("%s(): timeout waiting for HANDSHAKE_REG\n", __func__);
return -ETIMEDOUT;
}
- msleep(1);
+ usleep_range(1000, 2000);
}
#endif
@@ -405,7 +405,7 @@ static int __av7110_send_fw_cmd(struct av7110 *av7110, u16 *buf, int length)
av7110->arm_errors++;
return -ETIMEDOUT;
}
- msleep(1);
+ usleep_range(1000, 2000);
}
}
@@ -433,7 +433,7 @@ static int __av7110_send_fw_cmd(struct av7110 *av7110, u16 *buf, int length)
__func__, (buf[0] >> 8) & 0xff);
return -ETIMEDOUT;
}
- msleep(1);
+ usleep_range(1000, 2000);
}
stat = rdebi(av7110, DEBINOSWAP, MSGSTATE, 0, 2);
@@ -559,7 +559,7 @@ int av7110_fw_request(struct av7110 *av7110, u16 *request_buf,
return -ETIMEDOUT;
}
#ifdef _NOHANDSHAKE
- msleep(1);
+ usleep_range(1000, 2000);
#endif
}
@@ -574,7 +574,7 @@ int av7110_fw_request(struct av7110 *av7110, u16 *request_buf,
mutex_unlock(&av7110->dcomlock);
return -ETIMEDOUT;
}
- msleep(1);
+ usleep_range(1000, 2000);
}
#endif
@@ -719,7 +719,7 @@ static int FlushText(struct av7110 *av7110)
mutex_unlock(&av7110->dcomlock);
return -ETIMEDOUT;
}
- msleep(1);
+ usleep_range(1000, 2000);
}
mutex_unlock(&av7110->dcomlock);
return 0;
@@ -745,7 +745,7 @@ static int WriteText(struct av7110 *av7110, u8 win, u16 x, u16 y, char *buf)
mutex_unlock(&av7110->dcomlock);
return -ETIMEDOUT;
}
- msleep(1);
+ usleep_range(1000, 2000);
}
#ifndef _NOHANDSHAKE
start = jiffies;
@@ -758,7 +758,7 @@ static int WriteText(struct av7110 *av7110, u8 win, u16 x, u16 y, char *buf)
mutex_unlock(&av7110->dcomlock);
return -ETIMEDOUT;
}
- msleep(1);
+ usleep_range(1000, 2000);
}
#endif
for (i = 0; i < length / 2; i++)
--
2.52.0
Powered by blists - more mailing lists