The current ID enums start from 1 but there does not seem to be any reason that they cannot start with 0. Adjust the code to avoid the +1 in codec_init() and elsewhere.
Signed-off-by: Simon Glass <[email protected]> --- drivers/sound/max98095.h | 2 +- drivers/sound/sound-i2s.c | 6 ++---- drivers/sound/wm8994.c | 23 ++++++++++++----------- drivers/sound/wm8994.h | 2 +- 4 files changed, 16 insertions(+), 17 deletions(-) diff --git a/drivers/sound/max98095.h b/drivers/sound/max98095.h index 44b1e3a97b4..13ae177a86b 100644 --- a/drivers/sound/max98095.h +++ b/drivers/sound/max98095.h @@ -13,7 +13,7 @@ /* Available audio interface ports in wm8994 codec */ enum en_max_audio_interface { - AIF1 = 1, + AIF1, AIF2, }; diff --git a/drivers/sound/sound-i2s.c b/drivers/sound/sound-i2s.c index ed130750b2e..a2fc78154f1 100644 --- a/drivers/sound/sound-i2s.c +++ b/drivers/sound/sound-i2s.c @@ -120,13 +120,11 @@ static int codec_init(const void *blob, struct i2s_uc_priv *pi2s_tx) debug("device = %s\n", codectype); if (!strcmp(codectype, "wm8994")) { /* Check the codec type and initialise the same */ - ret = wm8994_init(blob, pi2s_tx->id + 1, - pi2s_tx->samplingrate, + ret = wm8994_init(blob, pi2s_tx->id, pi2s_tx->samplingrate, (pi2s_tx->samplingrate * (pi2s_tx->rfs)), pi2s_tx->bitspersample, pi2s_tx->channels); } else if (!strcmp(codectype, "max98095")) { - ret = max98095_init(blob, pi2s_tx->id + 1, - pi2s_tx->samplingrate, + ret = max98095_init(blob, pi2s_tx->id, pi2s_tx->samplingrate, (pi2s_tx->samplingrate * (pi2s_tx->rfs)), pi2s_tx->bitspersample); } else { diff --git a/drivers/sound/wm8994.c b/drivers/sound/wm8994.c index 1714f430f39..b8c3ffb67eb 100644 --- a/drivers/sound/wm8994.c +++ b/drivers/sound/wm8994.c @@ -285,7 +285,6 @@ static int wm8994_hw_params(struct wm8994_priv *priv, int aif_id, int aif1 = 0; int aif2 = 0; int rate_val = 0; - int id = aif_id - 1; int i, cur_val, best_val, bclk_rate, best; unsigned short reg_data; int ret = 0; @@ -343,10 +342,11 @@ static int wm8994_hw_params(struct wm8994_priv *priv, int aif_id, /* AIFCLK/fs ratio; look for a close match in either direction */ best = 0; - best_val = abs((fs_ratios[0] * sampling_rate) - priv->aifclk[id]); + best_val = abs((fs_ratios[0] * sampling_rate) - priv->aifclk[aif_id]); for (i = 1; i < ARRAY_SIZE(fs_ratios); i++) { - cur_val = abs(fs_ratios[i] * sampling_rate - priv->aifclk[id]); + cur_val = abs(fs_ratios[i] * sampling_rate - + priv->aifclk[aif_id]); if (cur_val >= best_val) continue; best = i; @@ -363,7 +363,8 @@ static int wm8994_hw_params(struct wm8994_priv *priv, int aif_id, */ best = 0; for (i = 0; i < ARRAY_SIZE(bclk_divs); i++) { - cur_val = (priv->aifclk[id] * 10 / bclk_divs[i]) - bclk_rate; + cur_val = (priv->aifclk[aif_id] * 10 / bclk_divs[i]) - + bclk_rate; if (cur_val < 0) /* BCLK table is sorted */ break; best = i; @@ -375,7 +376,7 @@ static int wm8994_hw_params(struct wm8994_priv *priv, int aif_id, return -1; } - bclk_rate = priv->aifclk[id] * 10 / bclk_divs[best]; + bclk_rate = priv->aifclk[aif_id] * 10 / bclk_divs[best]; bclk |= best << WM8994_AIF1_BCLK_DIV_SHIFT; if (wm8994_i2c_read(priv, aif1_reg, ®_data) != 0) { @@ -386,7 +387,7 @@ static int wm8994_hw_params(struct wm8994_priv *priv, int aif_id, if ((channels == 1) && ((reg_data & 0x18) == 0x18)) aif2 |= WM8994_AIF1_MONO; - if (priv->aifclk[id] == 0) { + if (priv->aifclk[aif_id] == 0) { debug("%s:Audio interface clock not set\n", __func__); return -1; } @@ -424,12 +425,12 @@ static int configure_aif_clock(struct wm8994_priv *priv, int aif) int ret; /* AIF(1/0) register adress offset calculated */ - if (aif-1) + if (aif) offset = 4; else offset = 0; - switch (priv->sysclk[aif - 1]) { + switch (priv->sysclk[aif]) { case WM8994_SYSCLK_MCLK1: reg1 |= SEL_MCLK1; rate = priv->mclk[0]; @@ -452,7 +453,7 @@ static int configure_aif_clock(struct wm8994_priv *priv, int aif) default: debug("%s: Invalid input clock selection [%d]\n", - __func__, priv->sysclk[aif - 1]); + __func__, priv->sysclk[aif]); return -1; } @@ -462,7 +463,7 @@ static int configure_aif_clock(struct wm8994_priv *priv, int aif) reg1 |= WM8994_AIF1CLK_DIV; } - priv->aifclk[aif - 1] = rate; + priv->aifclk[aif] = rate; ret = wm8994_bic_or(priv, WM8994_AIF1_CLOCKING_1 + offset, WM8994_AIF1CLK_SRC_MASK | WM8994_AIF1CLK_DIV, @@ -502,7 +503,7 @@ static int wm8994_set_sysclk(struct wm8994_priv *priv, int aif_id, int clk_id, int i; int ret = 0; - priv->sysclk[aif_id - 1] = clk_id; + priv->sysclk[aif_id] = clk_id; switch (clk_id) { case WM8994_SYSCLK_MCLK1: diff --git a/drivers/sound/wm8994.h b/drivers/sound/wm8994.h index ef2878f87ca..e36e6269f00 100644 --- a/drivers/sound/wm8994.h +++ b/drivers/sound/wm8994.h @@ -15,7 +15,7 @@ /* Avilable audi interface ports in wm8994 codec */ enum en_audio_interface { - WM8994_AIF1 = 1, + WM8994_AIF1, WM8994_AIF2, WM8994_AIF3 }; -- 2.20.0.rc1.387.gf8505762e3-goog _______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

