Commit 8b302d43 authored by Antti Palosaari's avatar Antti Palosaari Committed by Mauro Carvalho Chehab

[media] fc2580: calculate filter control word dynamically

Calculate low-pass filter control word dynamically from given radio
channel bandwidth.
Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 7e33f8a2
...@@ -46,7 +46,7 @@ static int fc2580_set_params(struct dvb_frontend *fe) ...@@ -46,7 +46,7 @@ static int fc2580_set_params(struct dvb_frontend *fe)
int ret, i; int ret, i;
unsigned int uitmp, div_ref, div_ref_val, div_n, k, k_cw, div_out; unsigned int uitmp, div_ref, div_ref_val, div_n, k, k_cw, div_out;
u64 f_vco; u64 f_vco;
u8 u8tmp, synth_config; u8 synth_config;
unsigned long timeout; unsigned long timeout;
dev_dbg(&client->dev, dev_dbg(&client->dev,
...@@ -249,9 +249,9 @@ static int fc2580_set_params(struct dvb_frontend *fe) ...@@ -249,9 +249,9 @@ static int fc2580_set_params(struct dvb_frontend *fe)
if (ret) if (ret)
goto err; goto err;
u8tmp = div_u64((u64) dev->clk * fc2580_if_filter_lut[i].mul, uitmp = (unsigned int) 8058000 - (c->bandwidth_hz * 122 / 100 / 2);
1000000000); uitmp = div64_u64((u64) dev->clk * uitmp, 1000000000000ULL);
ret = regmap_write(dev->regmap, 0x37, u8tmp); ret = regmap_write(dev->regmap, 0x37, uitmp);
if (ret) if (ret)
goto err; goto err;
......
...@@ -64,16 +64,15 @@ static const struct fc2580_pll fc2580_pll_lut[] = { ...@@ -64,16 +64,15 @@ static const struct fc2580_pll fc2580_pll_lut[] = {
struct fc2580_if_filter { struct fc2580_if_filter {
u32 freq; u32 freq;
u16 mul;
u8 r36_val; u8 r36_val;
u8 r39_val; u8 r39_val;
}; };
static const struct fc2580_if_filter fc2580_if_filter_lut[] = { static const struct fc2580_if_filter fc2580_if_filter_lut[] = {
{ 6000000, 4400, 0x18, 0x00}, { 6000000, 0x18, 0x00},
{ 7000000, 3910, 0x18, 0x80}, { 7000000, 0x18, 0x80},
{ 8000000, 3300, 0x18, 0x80}, { 8000000, 0x18, 0x80},
{0xffffffff, 3300, 0x18, 0x80}, {0xffffffff, 0x18, 0x80},
}; };
struct fc2580_freq_regs { struct fc2580_freq_regs {
......
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