lkml.org 
[lkml]   [2011]   [Jul]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3/6] ASoC: twl6040: Simplify sample rate constraint handling
    Date
    We can manage the sample rate constraints without the need
    to maintain a variable and a pointer.
    This simplifies the handling of the constraint, and makes it
    more robust.

    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    ---
    sound/soc/codecs/twl6040.c | 19 ++++---------------
    1 files changed, 4 insertions(+), 15 deletions(-)

    diff --git a/sound/soc/codecs/twl6040.c b/sound/soc/codecs/twl6040.c
    index e61f32f..9229049 100644
    --- a/sound/soc/codecs/twl6040.c
    +++ b/sound/soc/codecs/twl6040.c
    @@ -88,7 +88,6 @@ struct twl6040_data {
    u16 hs_right_step;
    u16 hf_left_step;
    u16 hf_right_step;
    - struct snd_pcm_hw_constraint_list *sysclk_constraints;
    struct twl6040_jack_data hs_jack;
    struct snd_soc_codec *codec;
    struct workqueue_struct *workqueue;
    @@ -223,11 +222,6 @@ static unsigned int lp_rates[] = {
    96000,
    };

    -static struct snd_pcm_hw_constraint_list lp_constraints = {
    - .count = ARRAY_SIZE(lp_rates),
    - .list = lp_rates,
    -};
    -
    static unsigned int hp_rates[] = {
    8000,
    16000,
    @@ -236,9 +230,9 @@ static unsigned int hp_rates[] = {
    96000,
    };

    -static struct snd_pcm_hw_constraint_list hp_constraints = {
    - .count = ARRAY_SIZE(hp_rates),
    - .list = hp_rates,
    +static struct snd_pcm_hw_constraint_list sysclk_constraints[] = {
    + { .count = ARRAY_SIZE(lp_rates), .list = lp_rates, },
    + { .count = ARRAY_SIZE(hp_rates), .list = hp_rates, },
    };

    /*
    @@ -1098,10 +1092,6 @@ static int twl6040_pll_put_enum(struct snd_kcontrol *kcontrol,
    struct twl6040_data *priv = snd_soc_codec_get_drvdata(codec);

    priv->pll_power_mode = ucontrol->value.enumerated.item[0];
    - if (priv->pll_power_mode)
    - priv->sysclk_constraints = &hp_constraints;
    - else
    - priv->sysclk_constraints = &lp_constraints;

    return 0;
    }
    @@ -1369,7 +1359,7 @@ static int twl6040_startup(struct snd_pcm_substream *substream,

    snd_pcm_hw_constraint_list(substream->runtime, 0,
    SNDRV_PCM_HW_PARAM_RATE,
    - priv->sysclk_constraints);
    + &sysclk_constraints[priv->pll_power_mode]);

    return 0;
    }
    @@ -1589,7 +1579,6 @@ static int twl6040_probe(struct snd_soc_codec *codec)
    priv->hf_right_step = 1;
    }

    - priv->sysclk_constraints = &lp_constraints;
    priv->workqueue = create_singlethread_workqueue("twl6040-codec");
    if (!priv->workqueue) {
    ret = -ENOMEM;
    --
    1.7.6


    \
     
     \ /
      Last update: 2011-07-04 12:09    [W:0.023 / U:1.016 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site