mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 10:49:33 +00:00
[media] si2165: set list of DVB-T registers together
Use si2165_write_reg_list() to do the DVB-T mode initialization altogether. Signed-off-by: Matthias Schwarzott <zzam@gentoo.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
542fb3c56b
commit
25e7375309
1 changed files with 26 additions and 47 deletions
|
@ -803,6 +803,29 @@ static const struct si2165_reg_value_pair agc_rewrite[] = {
|
|||
{ 0x0123, 0x70 }
|
||||
};
|
||||
|
||||
static const struct si2165_reg_value_pair dvbt_regs[] = {
|
||||
/* standard = DVB-T */
|
||||
{ 0x00ec, 0x01 },
|
||||
{ 0x08f8, 0x00 },
|
||||
/* impulsive_noise_remover */
|
||||
{ 0x031c, 0x01 },
|
||||
{ 0x00cb, 0x00 },
|
||||
/* agc2 */
|
||||
{ 0x016e, 0x41 },
|
||||
{ 0x016c, 0x0e },
|
||||
{ 0x016d, 0x10 },
|
||||
/* agc */
|
||||
{ 0x015b, 0x03 },
|
||||
{ 0x0150, 0x78 },
|
||||
/* agc */
|
||||
{ 0x01a0, 0x78 },
|
||||
{ 0x01c8, 0x68 },
|
||||
/* freq_sync_range */
|
||||
REG16(0x030c, 0x0064),
|
||||
/* gp_reg0 */
|
||||
{ 0x0387, 0x00 }
|
||||
};
|
||||
|
||||
static int si2165_set_frontend(struct dvb_frontend *fe)
|
||||
{
|
||||
int ret;
|
||||
|
@ -825,18 +848,11 @@ static int si2165_set_frontend(struct dvb_frontend *fe)
|
|||
bw10k = 800;
|
||||
}
|
||||
|
||||
/* standard = DVB-T */
|
||||
ret = si2165_writereg8(state, 0x00ec, 0x01);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
ret = si2165_adjust_pll_divl(state, 12);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = si2165_set_if_freq_shift(state);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
ret = si2165_writereg8(state, 0x08f8, 0x00);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
/* bandwidth in 10KHz steps */
|
||||
|
@ -846,48 +862,11 @@ static int si2165_set_frontend(struct dvb_frontend *fe)
|
|||
ret = si2165_set_oversamp(state, dvb_rate);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
/* impulsive_noise_remover */
|
||||
ret = si2165_writereg8(state, 0x031c, 0x01);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
ret = si2165_writereg8(state, 0x00cb, 0x00);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
/* agc2 */
|
||||
ret = si2165_writereg8(state, 0x016e, 0x41);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
ret = si2165_writereg8(state, 0x016c, 0x0e);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
ret = si2165_writereg8(state, 0x016d, 0x10);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
/* agc */
|
||||
ret = si2165_writereg8(state, 0x015b, 0x03);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
ret = si2165_writereg8(state, 0x0150, 0x78);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
/* agc */
|
||||
ret = si2165_writereg8(state, 0x01a0, 0x78);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
ret = si2165_writereg8(state, 0x01c8, 0x68);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
/* freq_sync_range */
|
||||
ret = si2165_writereg16(state, 0x030c, 0x0064);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
/* gp_reg0 */
|
||||
ret = si2165_readreg8(state, 0x0387, val);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
ret = si2165_writereg8(state, 0x0387, 0x00);
|
||||
|
||||
ret = si2165_write_reg_list(state, dvbt_regs, ARRAY_SIZE(dvbt_regs));
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* dsp_addr_jump */
|
||||
ret = si2165_writereg32(state, 0x0348, 0xf4000000);
|
||||
if (ret < 0)
|
||||
|
|
Loading…
Reference in a new issue