stv6110x           30 drivers/media/dvb-frontends/stv6110x.c static int stv6110x_read_reg(struct stv6110x_state *stv6110x, u8 reg, u8 *data)
stv6110x           33 drivers/media/dvb-frontends/stv6110x.c 	const struct stv6110x_config *config = stv6110x->config;
stv6110x           41 drivers/media/dvb-frontends/stv6110x.c 	ret = i2c_transfer(stv6110x->i2c, msg, 2);
stv6110x           51 drivers/media/dvb-frontends/stv6110x.c static int stv6110x_write_regs(struct stv6110x_state *stv6110x, int start, u8 data[], int len)
stv6110x           54 drivers/media/dvb-frontends/stv6110x.c 	const struct stv6110x_config *config = stv6110x->config;
stv6110x           77 drivers/media/dvb-frontends/stv6110x.c 	ret = i2c_transfer(stv6110x->i2c, &msg, 1);
stv6110x           86 drivers/media/dvb-frontends/stv6110x.c static int stv6110x_write_reg(struct stv6110x_state *stv6110x, u8 reg, u8 data)
stv6110x           90 drivers/media/dvb-frontends/stv6110x.c 	return stv6110x_write_regs(stv6110x, reg, &tmp, 1);
stv6110x           95 drivers/media/dvb-frontends/stv6110x.c 	struct stv6110x_state *stv6110x = fe->tuner_priv;
stv6110x           98 drivers/media/dvb-frontends/stv6110x.c 	ret = stv6110x_write_regs(stv6110x, 0, stv6110x->regs,
stv6110x           99 drivers/media/dvb-frontends/stv6110x.c 				  ARRAY_SIZE(stv6110x->regs));
stv6110x          110 drivers/media/dvb-frontends/stv6110x.c 	struct stv6110x_state *stv6110x = fe->tuner_priv;
stv6110x          115 drivers/media/dvb-frontends/stv6110x.c 	STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL1], CTRL1_K, (REFCLOCK_MHz - 16));
stv6110x          118 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_TNG1], TNG1_DIV4SEL, 1);
stv6110x          119 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_TNG1], TNG1_PRESC32_ON, 0);
stv6110x          122 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_TNG1], TNG1_DIV4SEL, 1);
stv6110x          123 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_TNG1], TNG1_PRESC32_ON, 1);
stv6110x          126 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_TNG1], TNG1_DIV4SEL, 0);
stv6110x          127 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_TNG1], TNG1_PRESC32_ON, 0);
stv6110x          130 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_TNG1], TNG1_DIV4SEL, 0);
stv6110x          131 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_TNG1], TNG1_PRESC32_ON, 1);
stv6110x          147 drivers/media/dvb-frontends/stv6110x.c 	STV6110x_SETFIELD(stv6110x->regs[STV6110x_TNG1], TNG1_R_DIV, rDivOpt);
stv6110x          148 drivers/media/dvb-frontends/stv6110x.c 	STV6110x_SETFIELD(stv6110x->regs[STV6110x_TNG1], TNG1_N_DIV_11_8, MSB(divider));
stv6110x          149 drivers/media/dvb-frontends/stv6110x.c 	STV6110x_SETFIELD(stv6110x->regs[STV6110x_TNG0], TNG0_N_DIV_7_0, LSB(divider));
stv6110x          152 drivers/media/dvb-frontends/stv6110x.c 	STV6110x_SETFIELD(stv6110x->regs[STV6110x_STAT1], STAT1_CALVCO_STRT, 1);
stv6110x          154 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_write_reg(stv6110x, STV6110x_CTRL1, stv6110x->regs[STV6110x_CTRL1]);
stv6110x          155 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_write_reg(stv6110x, STV6110x_TNG1, stv6110x->regs[STV6110x_TNG1]);
stv6110x          156 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_write_reg(stv6110x, STV6110x_TNG0, stv6110x->regs[STV6110x_TNG0]);
stv6110x          157 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_write_reg(stv6110x, STV6110x_STAT1, stv6110x->regs[STV6110x_STAT1]);
stv6110x          160 drivers/media/dvb-frontends/stv6110x.c 		stv6110x_read_reg(stv6110x, STV6110x_STAT1, &stv6110x->regs[STV6110x_STAT1]);
stv6110x          161 drivers/media/dvb-frontends/stv6110x.c 		if (!STV6110x_GETFIELD(STAT1_CALVCO_STRT, stv6110x->regs[STV6110x_STAT1]))
stv6110x          171 drivers/media/dvb-frontends/stv6110x.c 	struct stv6110x_state *stv6110x = fe->tuner_priv;
stv6110x          173 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_read_reg(stv6110x, STV6110x_TNG1, &stv6110x->regs[STV6110x_TNG1]);
stv6110x          174 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_read_reg(stv6110x, STV6110x_TNG0, &stv6110x->regs[STV6110x_TNG0]);
stv6110x          176 drivers/media/dvb-frontends/stv6110x.c 	*frequency = (MAKEWORD16(STV6110x_GETFIELD(TNG1_N_DIV_11_8, stv6110x->regs[STV6110x_TNG1]),
stv6110x          177 drivers/media/dvb-frontends/stv6110x.c 				 STV6110x_GETFIELD(TNG0_N_DIV_7_0, stv6110x->regs[STV6110x_TNG0]))) * REFCLOCK_kHz;
stv6110x          179 drivers/media/dvb-frontends/stv6110x.c 	*frequency /= (1 << (STV6110x_GETFIELD(TNG1_R_DIV, stv6110x->regs[STV6110x_TNG1]) +
stv6110x          180 drivers/media/dvb-frontends/stv6110x.c 			     STV6110x_GETFIELD(TNG1_DIV4SEL, stv6110x->regs[STV6110x_TNG1])));
stv6110x          189 drivers/media/dvb-frontends/stv6110x.c 	struct stv6110x_state *stv6110x = fe->tuner_priv;
stv6110x          196 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL3], CTRL3_CF, 31); /* LPF */
stv6110x          198 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL3], CTRL3_CF, 0); /* LPF */
stv6110x          200 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL3], CTRL3_CF, ((halfbw / 1000000) - 5)); /* LPF */
stv6110x          203 drivers/media/dvb-frontends/stv6110x.c 	STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL3], CTRL3_RCCLK_OFF, 0x0); /* cal. clk activated */
stv6110x          204 drivers/media/dvb-frontends/stv6110x.c 	STV6110x_SETFIELD(stv6110x->regs[STV6110x_STAT1], STAT1_CALRC_STRT, 0x1); /* LPF auto cal */
stv6110x          206 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_write_reg(stv6110x, STV6110x_CTRL3, stv6110x->regs[STV6110x_CTRL3]);
stv6110x          207 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_write_reg(stv6110x, STV6110x_STAT1, stv6110x->regs[STV6110x_STAT1]);
stv6110x          210 drivers/media/dvb-frontends/stv6110x.c 		stv6110x_read_reg(stv6110x, STV6110x_STAT1, &stv6110x->regs[STV6110x_STAT1]);
stv6110x          211 drivers/media/dvb-frontends/stv6110x.c 		if (!STV6110x_GETFIELD(STAT1_CALRC_STRT, stv6110x->regs[STV6110x_STAT1]))
stv6110x          215 drivers/media/dvb-frontends/stv6110x.c 	STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL3], CTRL3_RCCLK_OFF, 0x1); /* cal. done */
stv6110x          216 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_write_reg(stv6110x, STV6110x_CTRL3, stv6110x->regs[STV6110x_CTRL3]);
stv6110x          223 drivers/media/dvb-frontends/stv6110x.c 	struct stv6110x_state *stv6110x = fe->tuner_priv;
stv6110x          225 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_read_reg(stv6110x, STV6110x_CTRL3, &stv6110x->regs[STV6110x_CTRL3]);
stv6110x          226 drivers/media/dvb-frontends/stv6110x.c 	*bandwidth = (STV6110x_GETFIELD(CTRL3_CF, stv6110x->regs[STV6110x_CTRL3]) + 5) * 2000000;
stv6110x          233 drivers/media/dvb-frontends/stv6110x.c 	struct stv6110x_state *stv6110x = fe->tuner_priv;
stv6110x          239 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL2], CTRL2_CO_DIV, 0);
stv6110x          242 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL2], CTRL2_CO_DIV, 1);
stv6110x          245 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL2], CTRL2_CO_DIV, 2);
stv6110x          249 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL2], CTRL2_CO_DIV, 3);
stv6110x          252 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_write_reg(stv6110x, STV6110x_CTRL2, stv6110x->regs[STV6110x_CTRL2]);
stv6110x          259 drivers/media/dvb-frontends/stv6110x.c 	struct stv6110x_state *stv6110x = fe->tuner_priv;
stv6110x          261 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_read_reg(stv6110x, STV6110x_CTRL2, &stv6110x->regs[STV6110x_CTRL2]);
stv6110x          262 drivers/media/dvb-frontends/stv6110x.c 	*gain = 2 * STV6110x_GETFIELD(CTRL2_BBGAIN, stv6110x->regs[STV6110x_CTRL2]);
stv6110x          269 drivers/media/dvb-frontends/stv6110x.c 	struct stv6110x_state *stv6110x = fe->tuner_priv;
stv6110x          271 drivers/media/dvb-frontends/stv6110x.c 	STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL2], CTRL2_BBGAIN, gain / 2);
stv6110x          272 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_write_reg(stv6110x, STV6110x_CTRL2, stv6110x->regs[STV6110x_CTRL2]);
stv6110x          279 drivers/media/dvb-frontends/stv6110x.c 	struct stv6110x_state *stv6110x = fe->tuner_priv;
stv6110x          284 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL1], CTRL1_SYN, 0);
stv6110x          285 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL1], CTRL1_RX, 0);
stv6110x          286 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL1], CTRL1_LPT, 0);
stv6110x          290 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL1], CTRL1_SYN, 1);
stv6110x          291 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL1], CTRL1_RX, 1);
stv6110x          292 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL1], CTRL1_LPT, 1);
stv6110x          296 drivers/media/dvb-frontends/stv6110x.c 	ret = stv6110x_write_reg(stv6110x, STV6110x_CTRL1, stv6110x->regs[STV6110x_CTRL1]);
stv6110x          315 drivers/media/dvb-frontends/stv6110x.c 	struct stv6110x_state *stv6110x = fe->tuner_priv;
stv6110x          317 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_read_reg(stv6110x, STV6110x_STAT1, &stv6110x->regs[STV6110x_STAT1]);
stv6110x          319 drivers/media/dvb-frontends/stv6110x.c 	if (STV6110x_GETFIELD(STAT1_LOCK, stv6110x->regs[STV6110x_STAT1]))
stv6110x          330 drivers/media/dvb-frontends/stv6110x.c 	struct stv6110x_state *stv6110x = fe->tuner_priv;
stv6110x          333 drivers/media/dvb-frontends/stv6110x.c 	kfree(stv6110x);
stv6110x          336 drivers/media/dvb-frontends/stv6110x.c static void st6110x_init_regs(struct stv6110x_state *stv6110x)
stv6110x          340 drivers/media/dvb-frontends/stv6110x.c 	memcpy(stv6110x->regs, default_regs, 8);
stv6110x          343 drivers/media/dvb-frontends/stv6110x.c static void stv6110x_setup_divider(struct stv6110x_state *stv6110x)
stv6110x          345 drivers/media/dvb-frontends/stv6110x.c 	switch (stv6110x->config->clk_div) {
stv6110x          348 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL2],
stv6110x          353 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL2],
stv6110x          358 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL2],
stv6110x          364 drivers/media/dvb-frontends/stv6110x.c 		STV6110x_SETFIELD(stv6110x->regs[STV6110x_CTRL2],
stv6110x          394 drivers/media/dvb-frontends/stv6110x.c static void stv6110x_set_frontend_opts(struct stv6110x_state *stv6110x)
stv6110x          396 drivers/media/dvb-frontends/stv6110x.c 	stv6110x->frontend->tuner_priv		= stv6110x;
stv6110x          397 drivers/media/dvb-frontends/stv6110x.c 	stv6110x->frontend->ops.tuner_ops	= stv6110x_ops;
stv6110x          402 drivers/media/dvb-frontends/stv6110x.c 	struct stv6110x_state *stv6110x = i2c_get_clientdata(client);
stv6110x          406 drivers/media/dvb-frontends/stv6110x.c 	return stv6110x->devctl;
stv6110x          414 drivers/media/dvb-frontends/stv6110x.c 	struct stv6110x_state *stv6110x;
stv6110x          416 drivers/media/dvb-frontends/stv6110x.c 	stv6110x = kzalloc(sizeof(*stv6110x), GFP_KERNEL);
stv6110x          417 drivers/media/dvb-frontends/stv6110x.c 	if (!stv6110x)
stv6110x          420 drivers/media/dvb-frontends/stv6110x.c 	stv6110x->frontend	= config->frontend;
stv6110x          421 drivers/media/dvb-frontends/stv6110x.c 	stv6110x->i2c		= client->adapter;
stv6110x          422 drivers/media/dvb-frontends/stv6110x.c 	stv6110x->config	= config;
stv6110x          423 drivers/media/dvb-frontends/stv6110x.c 	stv6110x->devctl	= &stv6110x_ctl;
stv6110x          425 drivers/media/dvb-frontends/stv6110x.c 	st6110x_init_regs(stv6110x);
stv6110x          426 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_setup_divider(stv6110x);
stv6110x          427 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_set_frontend_opts(stv6110x);
stv6110x          429 drivers/media/dvb-frontends/stv6110x.c 	dev_info(&stv6110x->i2c->dev, "Probed STV6110x\n");
stv6110x          431 drivers/media/dvb-frontends/stv6110x.c 	i2c_set_clientdata(client, stv6110x);
stv6110x          441 drivers/media/dvb-frontends/stv6110x.c 	struct stv6110x_state *stv6110x = i2c_get_clientdata(client);
stv6110x          443 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_release(stv6110x->frontend);
stv6110x          451 drivers/media/dvb-frontends/stv6110x.c 	struct stv6110x_state *stv6110x;
stv6110x          453 drivers/media/dvb-frontends/stv6110x.c 	stv6110x = kzalloc(sizeof(*stv6110x), GFP_KERNEL);
stv6110x          454 drivers/media/dvb-frontends/stv6110x.c 	if (!stv6110x)
stv6110x          457 drivers/media/dvb-frontends/stv6110x.c 	stv6110x->frontend	= fe;
stv6110x          458 drivers/media/dvb-frontends/stv6110x.c 	stv6110x->i2c		= i2c;
stv6110x          459 drivers/media/dvb-frontends/stv6110x.c 	stv6110x->config	= config;
stv6110x          460 drivers/media/dvb-frontends/stv6110x.c 	stv6110x->devctl	= &stv6110x_ctl;
stv6110x          462 drivers/media/dvb-frontends/stv6110x.c 	st6110x_init_regs(stv6110x);
stv6110x          463 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_setup_divider(stv6110x);
stv6110x          464 drivers/media/dvb-frontends/stv6110x.c 	stv6110x_set_frontend_opts(stv6110x);
stv6110x          466 drivers/media/dvb-frontends/stv6110x.c 	fe->tuner_priv		= stv6110x;
stv6110x          469 drivers/media/dvb-frontends/stv6110x.c 	dev_info(&stv6110x->i2c->dev, "Attaching STV6110x\n");
stv6110x          470 drivers/media/dvb-frontends/stv6110x.c 	return stv6110x->devctl;
stv6110x           53 drivers/media/dvb-frontends/stv6110x_priv.h #define REFCLOCK_kHz				(stv6110x->config->refclk /    1000)
stv6110x           54 drivers/media/dvb-frontends/stv6110x_priv.h #define REFCLOCK_MHz				(stv6110x->config->refclk / 1000000)