aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/dvb-usb/dtt200u-fe.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/dvb/dvb-usb/dtt200u-fe.c')
-rw-r--r--drivers/media/dvb/dvb-usb/dtt200u-fe.c33
1 files changed, 19 insertions, 14 deletions
diff --git a/drivers/media/dvb/dvb-usb/dtt200u-fe.c b/drivers/media/dvb/dvb-usb/dtt200u-fe.c
index 17413adec7a1..3d81daa49172 100644
--- a/drivers/media/dvb/dvb-usb/dtt200u-fe.c
+++ b/drivers/media/dvb/dvb-usb/dtt200u-fe.c
@@ -16,7 +16,7 @@ struct dtt200u_fe_state {
16 16
17 fe_status_t stat; 17 fe_status_t stat;
18 18
19 struct dvb_frontend_parameters fep; 19 struct dtv_frontend_properties fep;
20 struct dvb_frontend frontend; 20 struct dvb_frontend frontend;
21}; 21};
22 22
@@ -100,22 +100,27 @@ static int dtt200u_fe_get_tune_settings(struct dvb_frontend* fe, struct dvb_fron
100 return 0; 100 return 0;
101} 101}
102 102
103static int dtt200u_fe_set_frontend(struct dvb_frontend* fe, 103static int dtt200u_fe_set_frontend(struct dvb_frontend *fe)
104 struct dvb_frontend_parameters *fep)
105{ 104{
105 struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
106 struct dtt200u_fe_state *state = fe->demodulator_priv; 106 struct dtt200u_fe_state *state = fe->demodulator_priv;
107 int i; 107 int i;
108 fe_status_t st; 108 fe_status_t st;
109 u16 freq = fep->frequency / 250000; 109 u16 freq = fep->frequency / 250000;
110 u8 bwbuf[2] = { SET_BANDWIDTH, 0 },freqbuf[3] = { SET_RF_FREQ, 0, 0 }; 110 u8 bwbuf[2] = { SET_BANDWIDTH, 0 },freqbuf[3] = { SET_RF_FREQ, 0, 0 };
111 111
112 switch (fep->u.ofdm.bandwidth) { 112 switch (fep->bandwidth_hz) {
113 case BANDWIDTH_8_MHZ: bwbuf[1] = 8; break; 113 case 8000000:
114 case BANDWIDTH_7_MHZ: bwbuf[1] = 7; break; 114 bwbuf[1] = 8;
115 case BANDWIDTH_6_MHZ: bwbuf[1] = 6; break; 115 break;
116 case BANDWIDTH_AUTO: return -EOPNOTSUPP; 116 case 7000000:
117 default: 117 bwbuf[1] = 7;
118 return -EINVAL; 118 break;
119 case 6000000:
120 bwbuf[1] = 6;
121 break;
122 default:
123 return -EINVAL;
119 } 124 }
120 125
121 dvb_usb_generic_write(state->d,bwbuf,2); 126 dvb_usb_generic_write(state->d,bwbuf,2);
@@ -134,11 +139,11 @@ static int dtt200u_fe_set_frontend(struct dvb_frontend* fe,
134 return 0; 139 return 0;
135} 140}
136 141
137static int dtt200u_fe_get_frontend(struct dvb_frontend* fe, 142static int dtt200u_fe_get_frontend(struct dvb_frontend* fe)
138 struct dvb_frontend_parameters *fep)
139{ 143{
144 struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
140 struct dtt200u_fe_state *state = fe->demodulator_priv; 145 struct dtt200u_fe_state *state = fe->demodulator_priv;
141 memcpy(fep,&state->fep,sizeof(struct dvb_frontend_parameters)); 146 memcpy(fep, &state->fep, sizeof(struct dtv_frontend_properties));
142 return 0; 147 return 0;
143} 148}
144 149
@@ -172,9 +177,9 @@ error:
172} 177}
173 178
174static struct dvb_frontend_ops dtt200u_fe_ops = { 179static struct dvb_frontend_ops dtt200u_fe_ops = {
180 .delsys = { SYS_DVBT },
175 .info = { 181 .info = {
176 .name = "WideView USB DVB-T", 182 .name = "WideView USB DVB-T",
177 .type = FE_OFDM,
178 .frequency_min = 44250000, 183 .frequency_min = 44250000,
179 .frequency_max = 867250000, 184 .frequency_max = 867250000,
180 .frequency_stepsize = 250000, 185 .frequency_stepsize = 250000,