vserver 1.9.5.x5
[linux-2.6.git] / drivers / media / dvb / ttpci / av7110.h
index c9485ee..a1eded6 100644 (file)
@@ -4,13 +4,12 @@
 #include <linux/interrupt.h>
 #include <linux/socket.h>
 #include <linux/netdevice.h>
+#include <linux/i2c.h>
 
 #ifdef CONFIG_DEVFS_FS
 #include <linux/devfs_fs_kernel.h>
 #endif
 
-#include <media/saa7146_vv.h>
-
 #include <linux/dvb/video.h>
 #include <linux/dvb/audio.h>
 #include <linux/dvb/dmx.h>
 #include "dvb_filter.h"
 #include "dvb_net.h"
 #include "dvb_ringbuffer.h"
+#include "dvb_frontend.h"
+#include "ves1820.h"
+#include "ves1x93.h"
+#include "stv0299.h"
+#include "tda8083.h"
+#include "sp8870.h"
+#include "stv0297.h"
+
+#include <media/saa7146_vv.h>
+
+
+#define ANALOG_TUNER_VES1820 1
+#define ANALOG_TUNER_STV0297 2
+#define ANALOG_TUNER_VBI     0x100
 
+extern int av7110_debug;
+
+#define dprintk(level,args...) \
+           do { if ((av7110_debug & level)) { printk("dvb-ttpci: %s(): ", __FUNCTION__); printk(args); } } while (0)
 
 #define MAXFILT 32
 
@@ -60,16 +77,17 @@ struct av7110 {
         struct dvb_device       dvb_dev;
         struct dvb_net               dvb_net;
 
-       struct video_device     v4l_dev;
-       struct video_device     vbi_dev;
+       struct video_device     *v4l_dev;
+       struct video_device     *vbi_dev;
 
         struct saa7146_dev     *dev;
 
-       struct dvb_i2c_bus      *i2c_bus;       
+       struct i2c_adapter      i2c_adap;
+
        char                    *card_name;
 
        /* support for analog module of dvb-c */
-       int                     has_analog_tuner;
+       int                     analog_tuner_flags;
        int                     current_input;
        u32                     current_freq;
                                
@@ -97,7 +115,7 @@ struct av7110 {
 
         int                     bmpp;
         int                     bmplen;
-        int                     bmp_state;
+       volatile int            bmp_state;
 #define BMP_NONE     0
 #define BMP_LOADING  1
 #define BMP_LOADINGS 2
@@ -109,8 +127,8 @@ struct av7110 {
 
         spinlock_t              debilock;
         struct semaphore        dcomlock;
-        int                     debitype;
-        int                     debilen;
+       volatile int            debitype;
+       volatile int            debilen;
 
 
         /* Recording and playback flags */
@@ -127,7 +145,7 @@ struct av7110 {
 
         int                     osdwin;      /* currently active window */
         u16                     osdbpp[8];
-
+       struct semaphore        osd_sema;
 
         /* CA */
 
@@ -140,6 +158,18 @@ struct av7110 {
         struct dmx_frontend    hw_frontend;
         struct dmx_frontend    mem_frontend;
 
+       /* for budget mode demux1 */
+       struct dmxdev           dmxdev1;
+       struct dvb_demux        demux1;
+       struct dvb_net          dvb_net1;
+       spinlock_t              feedlock1;
+       int                     feeding1;
+       u8                      tsf;
+       u32                     ttbp;
+       unsigned char           *grabbing;
+       struct saa7146_pgtable  pt;
+       struct tasklet_struct   vpe_tasklet;
+
         int                     fe_synced; 
         struct semaphore        pid_mutex;
 
@@ -187,6 +217,7 @@ struct av7110 {
         struct dvb_ringbuffer    ci_rbuffer;
         struct dvb_ringbuffer    ci_wbuffer;
 
+       struct audio_mixer      mixer;
 
         struct dvb_adapter       *dvb_adapter;
         struct dvb_device        *video_dev;
@@ -210,6 +241,18 @@ struct av7110 {
 
        unsigned char *bin_root;
        unsigned long size_root;
+
+       struct dvb_frontend* fe;
+       fe_status_t fe_status;
+       int (*fe_init)(struct dvb_frontend* fe);
+       int (*fe_read_status)(struct dvb_frontend* fe, fe_status_t* status);
+       int (*fe_diseqc_reset_overload)(struct dvb_frontend* fe);
+       int (*fe_diseqc_send_master_cmd)(struct dvb_frontend* fe, struct dvb_diseqc_master_cmd* cmd);
+       int (*fe_diseqc_send_burst)(struct dvb_frontend* fe, fe_sec_mini_cmd_t minicmd);
+       int (*fe_set_tone)(struct dvb_frontend* fe, fe_sec_tone_mode_t tone);
+       int (*fe_set_voltage)(struct dvb_frontend* fe, fe_sec_voltage_t voltage);
+       int (*fe_dishnetwork_send_legacy_command)(struct dvb_frontend* fe, unsigned int cmd);
+       int (*fe_set_frontend)(struct dvb_frontend* fe, struct dvb_frontend_parameters* params);
 };