Commit 40e006ae authored by Hans de Goede's avatar Hans de Goede Committed by Mauro Carvalho Chehab

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

Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
CC: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 5daf53a6
...@@ -120,9 +120,9 @@ static u32 snd_tea575x_read(struct snd_tea575x *tea) ...@@ -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) ...@@ -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) ...@@ -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);
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment