[media] snd_tea575x: set_freq: update cached freq to the actual achieved frequency

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
CC: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Hans de Goede 2012-05-19 11:19:06 -03:00 committed by Mauro Carvalho Chehab
parent 5daf53a6eb
commit 40e006aea8

View file

@ -120,9 +120,9 @@ static u32 snd_tea575x_read(struct snd_tea575x *tea)
return data; return data;
} }
static u32 snd_tea575x_get_freq(struct snd_tea575x *tea) static u32 snd_tea575x_val_to_freq(struct snd_tea575x *tea, u32 val)
{ {
u32 freq = snd_tea575x_read(tea) & TEA575X_BIT_FREQ_MASK; u32 freq = val & TEA575X_BIT_FREQ_MASK;
if (freq == 0) if (freq == 0)
return freq; return freq;
@ -139,6 +139,11 @@ static u32 snd_tea575x_get_freq(struct snd_tea575x *tea)
return clamp(freq * 16, FREQ_LO, FREQ_HI); /* from kHz */ return clamp(freq * 16, FREQ_LO, FREQ_HI); /* from kHz */
} }
static u32 snd_tea575x_get_freq(struct snd_tea575x *tea)
{
return snd_tea575x_val_to_freq(tea, snd_tea575x_read(tea));
}
static void snd_tea575x_set_freq(struct snd_tea575x *tea) static void snd_tea575x_set_freq(struct snd_tea575x *tea)
{ {
u32 freq = tea->freq; u32 freq = tea->freq;
@ -156,6 +161,7 @@ static void snd_tea575x_set_freq(struct snd_tea575x *tea)
tea->val &= ~TEA575X_BIT_FREQ_MASK; tea->val &= ~TEA575X_BIT_FREQ_MASK;
tea->val |= freq & TEA575X_BIT_FREQ_MASK; tea->val |= freq & TEA575X_BIT_FREQ_MASK;
snd_tea575x_write(tea, tea->val); snd_tea575x_write(tea, tea->val);
tea->freq = snd_tea575x_val_to_freq(tea, tea->val);
} }
/* /*