V4L/DVB (11061): au8522: move shared state and common functions into a separate heade...
[safe/jmp/linux-2.6] / drivers / media / dvb / frontends / cx24123.h
index 0c922b5..51ae866 100644 (file)
@@ -1,7 +1,7 @@
 /*
     Conexant cx24123/cx24109 - DVB QPSK Satellite demod/tuner driver
 
-    Copyright (C) 2005 Steven Toth <stoth@hauppauge.com>
+    Copyright (C) 2005 Steven Toth <stoth@linuxtv.org>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 
 #include <linux/dvb/frontend.h>
 
-struct cx24123_config
-{
+struct cx24123_config {
        /* the demodulator's i2c address */
        u8 demod_address;
 
-       /*
-          cards like Hauppauge Nova-S Plus/Nova-SE2 use an Intersil ISL6421 chip
-          for LNB control, while KWorld DVB-S 100 use the LNBDC and LNBTone bits
-          from register 0x29 of the CX24123 demodulator
-       */
-       int use_isl6421;
-
-       /* PLL maintenance */
-       int (*pll_init)(struct dvb_frontend* fe);
-       int (*pll_set)(struct dvb_frontend* fe, struct dvb_frontend_parameters* params);
-
        /* Need to set device param for start_dma */
-       int (*set_ts_params)(struct dvb_frontendfe, int is_punctured);
+       int (*set_ts_params)(struct dvb_frontend *fe, int is_punctured);
 
-       void (*enable_lnb_voltage)(struct dvb_frontend* fe, int on);
+       /* 0 = LNB voltage normal, 1 = LNB voltage inverted */
+       int lnb_polarity;
+
+       /* this device has another tuner */
+       u8 dont_use_pll;
+       void (*agc_callback) (struct dvb_frontend *);
 };
 
-extern struct dvb_frontend* cx24123_attach(const struct cx24123_config* config,
-                                          struct i2c_adapter* i2c);
+#if defined(CONFIG_DVB_CX24123) || (defined(CONFIG_DVB_CX24123_MODULE) \
+       && defined(MODULE))
+extern struct dvb_frontend *cx24123_attach(const struct cx24123_config *config,
+                                          struct i2c_adapter *i2c);
+extern struct i2c_adapter *cx24123_get_tuner_i2c_adapter(struct dvb_frontend *);
+#else
+static inline struct dvb_frontend *cx24123_attach(
+       const struct cx24123_config *config, struct i2c_adapter *i2c)
+{
+       printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
+       return NULL;
+}
+static struct i2c_adapter *
+       cx24123_get_tuner_i2c_adapter(struct dvb_frontend *fe)
+{
+       printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
+       return NULL;
+}
+#endif
 
 #endif /* CX24123_H */