Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 76710
b: refs/heads/master
c: 8d316bf
h: refs/heads/master
v: v3
  • Loading branch information
Michael Krufky authored and Mauro Carvalho Chehab committed Jan 25, 2008
1 parent c15f767 commit 29be12b
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ccbac9bb174db457181f5f58fecf9cbc3020ea1d
refs/heads/master: 8d316bf54b2a1965f9460d0ad9d80850d2c7afb3
20 changes: 20 additions & 0 deletions trunk/drivers/media/dvb/frontends/tda18271-fe.c
Original file line number Diff line number Diff line change
Expand Up @@ -598,26 +598,36 @@ static int tda18271_init(struct dvb_frontend *fe)
{
struct tda18271_priv *priv = fe->tuner_priv;

mutex_lock(&priv->lock);

/* initialization */
tda18271_ir_cal_init(fe);

if (priv->id == TDA18271HDC2)
tda18271_rf_cal_init(fe);

mutex_unlock(&priv->lock);

return 0;
}

static int tda18271c2_tune(struct dvb_frontend *fe,
u32 ifc, u32 freq, u32 bw, u8 std)
{
struct tda18271_priv *priv = fe->tuner_priv;

tda_dbg("freq = %d, ifc = %d\n", freq, ifc);

tda18271_init(fe);

mutex_lock(&priv->lock);

tda18271_rf_tracking_filters_correction(fe, freq);

tda18271_channel_configuration(fe, ifc, freq, bw, std);

mutex_unlock(&priv->lock);

return 0;
}

Expand All @@ -632,6 +642,8 @@ static int tda18271c1_tune(struct dvb_frontend *fe,

tda18271_init(fe);

mutex_lock(&priv->lock);

tda_dbg("freq = %d, ifc = %d\n", freq, ifc);

/* RF tracking filter calibration */
Expand Down Expand Up @@ -766,6 +778,7 @@ static int tda18271c1_tune(struct dvb_frontend *fe,

tda18271_write_regs(fe, R_TM, 15);
msleep(5);
mutex_unlock(&priv->lock);

return 0;
}
Expand Down Expand Up @@ -1012,7 +1025,9 @@ static int tda18271_get_id(struct dvb_frontend *fe)
char *name;
int ret = 0;

mutex_lock(&priv->lock);
tda18271_read_regs(fe);
mutex_unlock(&priv->lock);

switch (regs[R_ID] & 0x7f) {
case 3:
Expand Down Expand Up @@ -1065,6 +1080,7 @@ struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, u8 addr,
priv->i2c_adap = i2c;
priv->gate = (cfg) ? cfg->gate : TDA18271_GATE_AUTO;
priv->cal_initialized = false;
mutex_init(&priv->lock);

fe->tuner_priv = priv;

Expand All @@ -1084,8 +1100,12 @@ struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, u8 addr,
if (tda18271_debug & DBG_MAP)
tda18271_dump_std_map(fe);

mutex_lock(&priv->lock);

tda18271_init_regs(fe);

mutex_unlock(&priv->lock);

return fe;
fail:
tda18271_release(fe);
Expand Down
3 changes: 3 additions & 0 deletions trunk/drivers/media/dvb/frontends/tda18271-priv.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/mutex.h>
#include "tda18271.h"

#define R_ID 0x00 /* ID byte */
Expand Down Expand Up @@ -112,6 +113,8 @@ struct tda18271_priv {
struct tda18271_std_map std;
struct tda18271_rf_tracking_filter_cal rf_cal_state[8];

struct mutex lock;

u32 frequency;
u32 bandwidth;
};
Expand Down

0 comments on commit 29be12b

Please sign in to comment.