mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
ASoC: arizona/madera: use fsleep() in up/down DAPM event delays.
[ Upstream commit 679074942c2502a95842a80471d8fb718165ac77 ] 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 <vitalyr@opensource.cirrus.com> Link: https://patch.msgid.link/20250205160849.500306-1-vitalyr@opensource.cirrus.com Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
17458c1193
commit
5d2ca607ad
@@ -967,7 +967,7 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
|
|||||||
case ARIZONA_OUT3L_ENA_SHIFT:
|
case ARIZONA_OUT3L_ENA_SHIFT:
|
||||||
case ARIZONA_OUT3R_ENA_SHIFT:
|
case ARIZONA_OUT3R_ENA_SHIFT:
|
||||||
priv->out_up_pending++;
|
priv->out_up_pending++;
|
||||||
priv->out_up_delay += 17;
|
priv->out_up_delay += 17000;
|
||||||
break;
|
break;
|
||||||
case ARIZONA_OUT4L_ENA_SHIFT:
|
case ARIZONA_OUT4L_ENA_SHIFT:
|
||||||
case ARIZONA_OUT4R_ENA_SHIFT:
|
case ARIZONA_OUT4R_ENA_SHIFT:
|
||||||
@@ -977,7 +977,7 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
|
|||||||
case WM8997:
|
case WM8997:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
priv->out_up_delay += 10;
|
priv->out_up_delay += 10000;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -999,7 +999,7 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
|
|||||||
if (!priv->out_up_pending && priv->out_up_delay) {
|
if (!priv->out_up_pending && priv->out_up_delay) {
|
||||||
dev_dbg(component->dev, "Power up delay: %d\n",
|
dev_dbg(component->dev, "Power up delay: %d\n",
|
||||||
priv->out_up_delay);
|
priv->out_up_delay);
|
||||||
msleep(priv->out_up_delay);
|
fsleep(priv->out_up_delay);
|
||||||
priv->out_up_delay = 0;
|
priv->out_up_delay = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -1017,7 +1017,7 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
|
|||||||
case ARIZONA_OUT3L_ENA_SHIFT:
|
case ARIZONA_OUT3L_ENA_SHIFT:
|
||||||
case ARIZONA_OUT3R_ENA_SHIFT:
|
case ARIZONA_OUT3R_ENA_SHIFT:
|
||||||
priv->out_down_pending++;
|
priv->out_down_pending++;
|
||||||
priv->out_down_delay++;
|
priv->out_down_delay += 1000;
|
||||||
break;
|
break;
|
||||||
case ARIZONA_OUT4L_ENA_SHIFT:
|
case ARIZONA_OUT4L_ENA_SHIFT:
|
||||||
case ARIZONA_OUT4R_ENA_SHIFT:
|
case ARIZONA_OUT4R_ENA_SHIFT:
|
||||||
@@ -1028,10 +1028,10 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
|
|||||||
break;
|
break;
|
||||||
case WM8998:
|
case WM8998:
|
||||||
case WM1814:
|
case WM1814:
|
||||||
priv->out_down_delay += 5;
|
priv->out_down_delay += 5000;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
priv->out_down_delay++;
|
priv->out_down_delay += 1000;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -1053,7 +1053,7 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
|
|||||||
if (!priv->out_down_pending && priv->out_down_delay) {
|
if (!priv->out_down_pending && priv->out_down_delay) {
|
||||||
dev_dbg(component->dev, "Power down delay: %d\n",
|
dev_dbg(component->dev, "Power down delay: %d\n",
|
||||||
priv->out_down_delay);
|
priv->out_down_delay);
|
||||||
msleep(priv->out_down_delay);
|
fsleep(priv->out_down_delay);
|
||||||
priv->out_down_delay = 0;
|
priv->out_down_delay = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -2322,10 +2322,10 @@ int madera_out_ev(struct snd_soc_dapm_widget *w,
|
|||||||
case CS42L92:
|
case CS42L92:
|
||||||
case CS47L92:
|
case CS47L92:
|
||||||
case CS47L93:
|
case CS47L93:
|
||||||
out_up_delay = 6;
|
out_up_delay = 6000;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
out_up_delay = 17;
|
out_up_delay = 17000;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2356,7 +2356,7 @@ int madera_out_ev(struct snd_soc_dapm_widget *w,
|
|||||||
case MADERA_OUT3R_ENA_SHIFT:
|
case MADERA_OUT3R_ENA_SHIFT:
|
||||||
priv->out_up_pending--;
|
priv->out_up_pending--;
|
||||||
if (!priv->out_up_pending) {
|
if (!priv->out_up_pending) {
|
||||||
msleep(priv->out_up_delay);
|
fsleep(priv->out_up_delay);
|
||||||
priv->out_up_delay = 0;
|
priv->out_up_delay = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -2375,7 +2375,7 @@ int madera_out_ev(struct snd_soc_dapm_widget *w,
|
|||||||
case MADERA_OUT3L_ENA_SHIFT:
|
case MADERA_OUT3L_ENA_SHIFT:
|
||||||
case MADERA_OUT3R_ENA_SHIFT:
|
case MADERA_OUT3R_ENA_SHIFT:
|
||||||
priv->out_down_pending++;
|
priv->out_down_pending++;
|
||||||
priv->out_down_delay++;
|
priv->out_down_delay += 1000;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -2392,7 +2392,7 @@ int madera_out_ev(struct snd_soc_dapm_widget *w,
|
|||||||
case MADERA_OUT3R_ENA_SHIFT:
|
case MADERA_OUT3R_ENA_SHIFT:
|
||||||
priv->out_down_pending--;
|
priv->out_down_pending--;
|
||||||
if (!priv->out_down_pending) {
|
if (!priv->out_down_pending) {
|
||||||
msleep(priv->out_down_delay);
|
fsleep(priv->out_down_delay);
|
||||||
priv->out_down_delay = 0;
|
priv->out_down_delay = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -302,7 +302,7 @@ static int wm5110_hp_pre_enable(struct snd_soc_dapm_widget *w)
|
|||||||
} else {
|
} else {
|
||||||
wseq = wm5110_no_dre_left_enable;
|
wseq = wm5110_no_dre_left_enable;
|
||||||
nregs = ARRAY_SIZE(wm5110_no_dre_left_enable);
|
nregs = ARRAY_SIZE(wm5110_no_dre_left_enable);
|
||||||
priv->out_up_delay += 10;
|
priv->out_up_delay += 10000;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ARIZONA_OUT1R_ENA_SHIFT:
|
case ARIZONA_OUT1R_ENA_SHIFT:
|
||||||
@@ -312,7 +312,7 @@ static int wm5110_hp_pre_enable(struct snd_soc_dapm_widget *w)
|
|||||||
} else {
|
} else {
|
||||||
wseq = wm5110_no_dre_right_enable;
|
wseq = wm5110_no_dre_right_enable;
|
||||||
nregs = ARRAY_SIZE(wm5110_no_dre_right_enable);
|
nregs = ARRAY_SIZE(wm5110_no_dre_right_enable);
|
||||||
priv->out_up_delay += 10;
|
priv->out_up_delay += 10000;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -338,7 +338,7 @@ static int wm5110_hp_pre_disable(struct snd_soc_dapm_widget *w)
|
|||||||
snd_soc_component_update_bits(component,
|
snd_soc_component_update_bits(component,
|
||||||
ARIZONA_SPARE_TRIGGERS,
|
ARIZONA_SPARE_TRIGGERS,
|
||||||
ARIZONA_WS_TRG1, 0);
|
ARIZONA_WS_TRG1, 0);
|
||||||
priv->out_down_delay += 27;
|
priv->out_down_delay += 27000;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ARIZONA_OUT1R_ENA_SHIFT:
|
case ARIZONA_OUT1R_ENA_SHIFT:
|
||||||
@@ -350,7 +350,7 @@ static int wm5110_hp_pre_disable(struct snd_soc_dapm_widget *w)
|
|||||||
snd_soc_component_update_bits(component,
|
snd_soc_component_update_bits(component,
|
||||||
ARIZONA_SPARE_TRIGGERS,
|
ARIZONA_SPARE_TRIGGERS,
|
||||||
ARIZONA_WS_TRG2, 0);
|
ARIZONA_WS_TRG2, 0);
|
||||||
priv->out_down_delay += 27;
|
priv->out_down_delay += 27000;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user