lkml.org 
[lkml]   [2013]   [Jul]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH v2] ASoC: kirkwood-i2s: fix a compilation warning
    In the function kirkwood_set_rate, when the rate cannot be satisfied
    by the internal nor by an external clock, the clock source in undefined:

    warning: ‘clks_ctrl’ may be used uninitialized in this function

    The ALSA subsystem should never gives such a rate because:
    - the rates with the internal clock are limited to 44.1, 48 and 96 kHz
    as specified by the kirkwood_i2s_dai structure,
    - the other rates are proposed in the structure kirkwood_i2s_dai_extclk
    only when the external clock is present.

    In case of programming error (bad rate for internal clock and no
    external clock), the function will simply cause a backtrace.

    Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
    ---
    v2
    - add more explanations
    ---
    sound/soc/kirkwood/kirkwood-i2s.c | 8 +++++---
    1 file changed, 5 insertions(+), 3 deletions(-)

    diff --git a/sound/soc/kirkwood/kirkwood-i2s.c b/sound/soc/kirkwood/kirkwood-i2s.c
    index 4c9dad3..c9daf3b 100644
    --- a/sound/soc/kirkwood/kirkwood-i2s.c
    +++ b/sound/soc/kirkwood/kirkwood-i2s.c
    @@ -105,14 +105,16 @@ static void kirkwood_set_rate(struct snd_soc_dai *dai,
    uint32_t clks_ctrl;

    if (rate == 44100 || rate == 48000 || rate == 96000) {
    - /* use internal dco for supported rates */
    + /* use internal dco for the supported rates
    + * defined in kirkwood_i2s_dai */
    dev_dbg(dai->dev, "%s: dco set rate = %lu\n",
    __func__, rate);
    kirkwood_set_dco(priv->io, rate);

    clks_ctrl = KIRKWOOD_MCLK_SOURCE_DCO;
    - } else if (!IS_ERR(priv->extclk)) {
    - /* use optional external clk for other rates */
    + } else {
    + /* use the external clock for the other rates
    + * defined in kirkwood_i2s_dai_extclk */
    dev_dbg(dai->dev, "%s: extclk set rate = %lu -> %lu\n",
    __func__, rate, 256 * rate);
    clk_set_rate(priv->extclk, 256 * rate);
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2013-07-16 09:21    [W:5.925 / U:0.328 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site