ALSA: aoa: soundbus: i2sbus: pcm: use 'time_left' variable with wait_for_completion_timeout()
There is a confusing pattern in the kernel to use a variable named 'timeout' to store the result of wait_for_completion_timeout() causing patterns like: timeout = wait_for_completion_timeout(...) if (!timeout) return -ETIMEDOUT; with all kinds of permutations. Use 'time_left' as a variable to make the code self explaining. Fix to the proper variable type 'unsigned long' while here. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Link: https://lore.kernel.org/r/20240430121028.30443-1-wsa+renesas@sang-engineering.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
44f69ddccb
commit
222a596640
@ -255,24 +255,24 @@ static void i2sbus_wait_for_stop(struct i2sbus_dev *i2sdev,
|
||||
{
|
||||
unsigned long flags;
|
||||
DECLARE_COMPLETION_ONSTACK(done);
|
||||
long timeout;
|
||||
unsigned long time_left;
|
||||
|
||||
spin_lock_irqsave(&i2sdev->low_lock, flags);
|
||||
if (pi->dbdma_ring.stopping) {
|
||||
pi->stop_completion = &done;
|
||||
spin_unlock_irqrestore(&i2sdev->low_lock, flags);
|
||||
timeout = wait_for_completion_timeout(&done, HZ);
|
||||
time_left = wait_for_completion_timeout(&done, HZ);
|
||||
spin_lock_irqsave(&i2sdev->low_lock, flags);
|
||||
pi->stop_completion = NULL;
|
||||
if (timeout == 0) {
|
||||
if (time_left == 0) {
|
||||
/* timeout expired, stop dbdma forcefully */
|
||||
printk(KERN_ERR "i2sbus_wait_for_stop: timed out\n");
|
||||
/* make sure RUN, PAUSE and S0 bits are cleared */
|
||||
out_le32(&pi->dbdma->control, (RUN | PAUSE | 1) << 16);
|
||||
pi->dbdma_ring.stopping = 0;
|
||||
timeout = 10;
|
||||
time_left = 10;
|
||||
while (in_le32(&pi->dbdma->status) & ACTIVE) {
|
||||
if (--timeout <= 0)
|
||||
if (--time_left <= 0)
|
||||
break;
|
||||
udelay(1);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user