aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/frontends/stv090x_priv.h
diff options
context:
space:
mode:
authorAndreas Regel <andreas.regel@gmx.de>2010-01-05 17:19:43 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-02-26 13:10:36 -0500
commit97f7a2ae1a8a1e44a481456375efced75210e5eb (patch)
tree0acc51538d65350219254dc06af3e2dc66f82520 /drivers/media/dvb/frontends/stv090x_priv.h
parentb79c6df705e02b5dcb0e9360a15b28373813fec1 (diff)
V4L/DVB (13975): [STV090x] Added internal structure with shared settings and data.
As the STV0900 features two demodulation paths in one chip there is some information used by both instances of the driver when used in dual mode. This information is now shared in an internal structure referenced by I2C adapter and address. Do initialisation of the demodulator only once when used in dual mode. Moved global mutex demod_lock to internal structure. Moved dev_ver and mclk to internal structure. Removed unused tuner_refclk from stv090x_state. Signed-off-by: Andreas Regel <andreas.regel@gmx.de> Signed-off-by: Manu Abraham <manu@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/frontends/stv090x_priv.h')
-rw-r--r--drivers/media/dvb/frontends/stv090x_priv.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/drivers/media/dvb/frontends/stv090x_priv.h b/drivers/media/dvb/frontends/stv090x_priv.h
index 5921a8d6c89f..d38542665b0a 100644
--- a/drivers/media/dvb/frontends/stv090x_priv.h
+++ b/drivers/media/dvb/frontends/stv090x_priv.h
@@ -230,11 +230,22 @@ struct stv090x_tab {
230 s32 read; 230 s32 read;
231}; 231};
232 232
233struct stv090x_internal {
234 struct i2c_adapter *i2c_adap;
235 u8 i2c_addr;
236
237 struct mutex demod_lock; /* Lock access to shared register */
238 s32 mclk; /* Masterclock Divider factor */
239 u32 dev_ver;
240
241 int num_used;
242};
243
233struct stv090x_state { 244struct stv090x_state {
234 enum stv090x_device device; 245 enum stv090x_device device;
235 enum stv090x_demodulator demod; 246 enum stv090x_demodulator demod;
236 enum stv090x_mode demod_mode; 247 enum stv090x_mode demod_mode;
237 u32 dev_ver; 248 struct stv090x_internal *internal;
238 249
239 struct i2c_adapter *i2c; 250 struct i2c_adapter *i2c;
240 const struct stv090x_config *config; 251 const struct stv090x_config *config;
@@ -256,11 +267,8 @@ struct stv090x_state {
256 u32 frequency; 267 u32 frequency;
257 u32 srate; 268 u32 srate;
258 269
259 s32 mclk; /* Masterclock Divider factor */
260 s32 tuner_bw; 270 s32 tuner_bw;
261 271
262 u32 tuner_refclk;
263
264 s32 search_range; 272 s32 search_range;
265 273
266 s32 DemodTimeout; 274 s32 DemodTimeout;