Skip to content

Commit 6790749

Browse files
Vitaly Rodionovbroonie
authored andcommitted
ASoC: arizona/madera: use fsleep() in up/down DAPM event delays.
Using `fsleep` instead of `msleep` resolves some customer complaints regarding the precision of up/down DAPM event timing. `fsleep()` automatically selects the appropriate sleep function, making the delay time more predictable. Signed-off-by: Vitaly Rodionov <[email protected]> Link: https://patch.msgid.link/[email protected] Reviewed-by: Charles Keepax <[email protected]> Signed-off-by: Mark Brown <[email protected]>
1 parent dabbd32 commit 6790749

File tree

3 files changed

+16
-16
lines changed

3 files changed

+16
-16
lines changed

sound/soc/codecs/arizona.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -967,7 +967,7 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
967967
case ARIZONA_OUT3L_ENA_SHIFT:
968968
case ARIZONA_OUT3R_ENA_SHIFT:
969969
priv->out_up_pending++;
970-
priv->out_up_delay += 17;
970+
priv->out_up_delay += 17000;
971971
break;
972972
case ARIZONA_OUT4L_ENA_SHIFT:
973973
case ARIZONA_OUT4R_ENA_SHIFT:
@@ -977,7 +977,7 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
977977
case WM8997:
978978
break;
979979
default:
980-
priv->out_up_delay += 10;
980+
priv->out_up_delay += 10000;
981981
break;
982982
}
983983
break;
@@ -999,7 +999,7 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
999999
if (!priv->out_up_pending && priv->out_up_delay) {
10001000
dev_dbg(component->dev, "Power up delay: %d\n",
10011001
priv->out_up_delay);
1002-
msleep(priv->out_up_delay);
1002+
fsleep(priv->out_up_delay);
10031003
priv->out_up_delay = 0;
10041004
}
10051005
break;
@@ -1017,7 +1017,7 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
10171017
case ARIZONA_OUT3L_ENA_SHIFT:
10181018
case ARIZONA_OUT3R_ENA_SHIFT:
10191019
priv->out_down_pending++;
1020-
priv->out_down_delay++;
1020+
priv->out_down_delay += 1000;
10211021
break;
10221022
case ARIZONA_OUT4L_ENA_SHIFT:
10231023
case ARIZONA_OUT4R_ENA_SHIFT:
@@ -1028,10 +1028,10 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
10281028
break;
10291029
case WM8998:
10301030
case WM1814:
1031-
priv->out_down_delay += 5;
1031+
priv->out_down_delay += 5000;
10321032
break;
10331033
default:
1034-
priv->out_down_delay++;
1034+
priv->out_down_delay += 1000;
10351035
break;
10361036
}
10371037
break;
@@ -1053,7 +1053,7 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
10531053
if (!priv->out_down_pending && priv->out_down_delay) {
10541054
dev_dbg(component->dev, "Power down delay: %d\n",
10551055
priv->out_down_delay);
1056-
msleep(priv->out_down_delay);
1056+
fsleep(priv->out_down_delay);
10571057
priv->out_down_delay = 0;
10581058
}
10591059
break;

sound/soc/codecs/madera.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2323,10 +2323,10 @@ int madera_out_ev(struct snd_soc_dapm_widget *w,
23232323
case CS42L92:
23242324
case CS47L92:
23252325
case CS47L93:
2326-
out_up_delay = 6;
2326+
out_up_delay = 6000;
23272327
break;
23282328
default:
2329-
out_up_delay = 17;
2329+
out_up_delay = 17000;
23302330
break;
23312331
}
23322332

@@ -2357,7 +2357,7 @@ int madera_out_ev(struct snd_soc_dapm_widget *w,
23572357
case MADERA_OUT3R_ENA_SHIFT:
23582358
priv->out_up_pending--;
23592359
if (!priv->out_up_pending) {
2360-
msleep(priv->out_up_delay);
2360+
fsleep(priv->out_up_delay);
23612361
priv->out_up_delay = 0;
23622362
}
23632363
break;
@@ -2376,7 +2376,7 @@ int madera_out_ev(struct snd_soc_dapm_widget *w,
23762376
case MADERA_OUT3L_ENA_SHIFT:
23772377
case MADERA_OUT3R_ENA_SHIFT:
23782378
priv->out_down_pending++;
2379-
priv->out_down_delay++;
2379+
priv->out_down_delay += 1000;
23802380
break;
23812381
default:
23822382
break;
@@ -2393,7 +2393,7 @@ int madera_out_ev(struct snd_soc_dapm_widget *w,
23932393
case MADERA_OUT3R_ENA_SHIFT:
23942394
priv->out_down_pending--;
23952395
if (!priv->out_down_pending) {
2396-
msleep(priv->out_down_delay);
2396+
fsleep(priv->out_down_delay);
23972397
priv->out_down_delay = 0;
23982398
}
23992399
break;

sound/soc/codecs/wm5110.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ static int wm5110_hp_pre_enable(struct snd_soc_dapm_widget *w)
302302
} else {
303303
wseq = wm5110_no_dre_left_enable;
304304
nregs = ARRAY_SIZE(wm5110_no_dre_left_enable);
305-
priv->out_up_delay += 10;
305+
priv->out_up_delay += 10000;
306306
}
307307
break;
308308
case ARIZONA_OUT1R_ENA_SHIFT:
@@ -312,7 +312,7 @@ static int wm5110_hp_pre_enable(struct snd_soc_dapm_widget *w)
312312
} else {
313313
wseq = wm5110_no_dre_right_enable;
314314
nregs = ARRAY_SIZE(wm5110_no_dre_right_enable);
315-
priv->out_up_delay += 10;
315+
priv->out_up_delay += 10000;
316316
}
317317
break;
318318
default:
@@ -338,7 +338,7 @@ static int wm5110_hp_pre_disable(struct snd_soc_dapm_widget *w)
338338
snd_soc_component_update_bits(component,
339339
ARIZONA_SPARE_TRIGGERS,
340340
ARIZONA_WS_TRG1, 0);
341-
priv->out_down_delay += 27;
341+
priv->out_down_delay += 27000;
342342
}
343343
break;
344344
case ARIZONA_OUT1R_ENA_SHIFT:
@@ -350,7 +350,7 @@ static int wm5110_hp_pre_disable(struct snd_soc_dapm_widget *w)
350350
snd_soc_component_update_bits(component,
351351
ARIZONA_SPARE_TRIGGERS,
352352
ARIZONA_WS_TRG2, 0);
353-
priv->out_down_delay += 27;
353+
priv->out_down_delay += 27000;
354354
}
355355
break;
356356
default:

0 commit comments

Comments
 (0)