diff options
Diffstat (limited to 'drivers/media/dvb/dvb-usb/dvb-usb-i2c.c')
-rw-r--r-- | drivers/media/dvb/dvb-usb/dvb-usb-i2c.c | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-i2c.c b/drivers/media/dvb/dvb-usb/dvb-usb-i2c.c index 088b6dee3a7f..23428cd30756 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb-i2c.c +++ b/drivers/media/dvb/dvb-usb/dvb-usb-i2c.c | |||
@@ -46,82 +46,3 @@ int dvb_usb_i2c_exit(struct dvb_usb_device *d) | |||
46 | d->state &= ~DVB_USB_STATE_I2C; | 46 | d->state &= ~DVB_USB_STATE_I2C; |
47 | return 0; | 47 | return 0; |
48 | } | 48 | } |
49 | |||
50 | int dvb_usb_tuner_init_i2c(struct dvb_frontend *fe) | ||
51 | { | ||
52 | struct dvb_usb_adapter *adap = fe->dvb->priv; | ||
53 | struct i2c_msg msg = { .addr = adap->pll_addr, .flags = 0, .buf = adap->pll_init, .len = 4 }; | ||
54 | int ret = 0; | ||
55 | |||
56 | /* if pll_desc is not used */ | ||
57 | if (adap->pll_desc == NULL) | ||
58 | return 0; | ||
59 | |||
60 | if (adap->tuner_pass_ctrl) | ||
61 | adap->tuner_pass_ctrl(fe, 1, adap->pll_addr); | ||
62 | |||
63 | deb_pll("pll init: %x\n",adap->pll_addr); | ||
64 | deb_pll("pll-buf: %x %x %x %x\n",adap->pll_init[0], adap->pll_init[1], | ||
65 | adap->pll_init[2], adap->pll_init[3]); | ||
66 | |||
67 | if (fe->ops.i2c_gate_ctrl) | ||
68 | fe->ops.i2c_gate_ctrl(fe, 1); | ||
69 | if (i2c_transfer (&adap->dev->i2c_adap, &msg, 1) != 1) { | ||
70 | err("tuner i2c write failed for pll_init."); | ||
71 | ret = -EREMOTEIO; | ||
72 | } | ||
73 | msleep(1); | ||
74 | |||
75 | if (adap->tuner_pass_ctrl) | ||
76 | adap->tuner_pass_ctrl(fe,0,adap->pll_addr); | ||
77 | return ret; | ||
78 | } | ||
79 | EXPORT_SYMBOL(dvb_usb_tuner_init_i2c); | ||
80 | |||
81 | int dvb_usb_tuner_calc_regs(struct dvb_frontend *fe, struct dvb_frontend_parameters *fep, u8 *b, int buf_len) | ||
82 | { | ||
83 | struct dvb_usb_adapter *adap = fe->dvb->priv; | ||
84 | |||
85 | if (buf_len != 5) | ||
86 | return -EINVAL; | ||
87 | if (adap->pll_desc == NULL) | ||
88 | return 0; | ||
89 | |||
90 | deb_pll("pll addr: %x, freq: %d %p\n",adap->pll_addr, fep->frequency, adap->pll_desc); | ||
91 | |||
92 | b[0] = adap->pll_addr; | ||
93 | dvb_pll_configure(adap->pll_desc, &b[1], fep->frequency, fep->u.ofdm.bandwidth); | ||
94 | |||
95 | deb_pll("pll-buf: %x %x %x %x %x\n",b[0],b[1],b[2],b[3],b[4]); | ||
96 | |||
97 | return 5; | ||
98 | } | ||
99 | EXPORT_SYMBOL(dvb_usb_tuner_calc_regs); | ||
100 | |||
101 | int dvb_usb_tuner_set_params_i2c(struct dvb_frontend *fe, struct dvb_frontend_parameters *fep) | ||
102 | { | ||
103 | struct dvb_usb_adapter *adap = fe->dvb->priv; | ||
104 | int ret = 0; | ||
105 | u8 b[5]; | ||
106 | struct i2c_msg msg = { .addr = adap->pll_addr, .flags = 0, .buf = &b[1], .len = 4 }; | ||
107 | |||
108 | dvb_usb_tuner_calc_regs(fe,fep,b,5); | ||
109 | |||
110 | if (adap->tuner_pass_ctrl) | ||
111 | adap->tuner_pass_ctrl(fe, 1, adap->pll_addr); | ||
112 | |||
113 | if (fe->ops.i2c_gate_ctrl) | ||
114 | fe->ops.i2c_gate_ctrl(fe, 1); | ||
115 | |||
116 | if (i2c_transfer(&adap->dev->i2c_adap, &msg, 1) != 1) { | ||
117 | err("tuner i2c write failed for pll_set."); | ||
118 | ret = -EREMOTEIO; | ||
119 | } | ||
120 | msleep(1); | ||
121 | |||
122 | if (adap->tuner_pass_ctrl) | ||
123 | adap->tuner_pass_ctrl(fe, 0, adap->pll_addr); | ||
124 | |||
125 | return ret; | ||
126 | } | ||
127 | EXPORT_SYMBOL(dvb_usb_tuner_set_params_i2c); | ||