fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / media / dvb / bt8xx / dst_common.h
index 81557f3..3bf084f 100644 (file)
@@ -25,6 +25,7 @@
 #include <linux/smp_lock.h>
 #include <linux/dvb/frontend.h>
 #include <linux/device.h>
+#include <linux/mutex.h>
 #include "bt878.h"
 
 #include "dst_ca.h"
@@ -41,7 +42,7 @@
 #define DST_TYPE_IS_CABLE      2
 #define DST_TYPE_IS_ATSC       3
 
-#define DST_TYPE_HAS_NEWTUNE   1
+#define DST_TYPE_HAS_TS188     1
 #define DST_TYPE_HAS_TS204     2
 #define DST_TYPE_HAS_SYMDIV    4
 #define DST_TYPE_HAS_FW_1      8
@@ -51,6 +52,9 @@
 #define DST_TYPE_HAS_OBS_REGS  128
 #define DST_TYPE_HAS_INC_COUNT 256
 #define DST_TYPE_HAS_MULTI_FE  512
+#define DST_TYPE_HAS_NEWTUNE_2 1024
+#define DST_TYPE_HAS_DBOARD    2048
+#define DST_TYPE_HAS_VLF       4096
 
 /*     Card capability list    */
 
 #define        DST_TYPE_HAS_ANALOG     64      /*      Analog inputs   */
 #define DST_TYPE_HAS_SESSION   128
 
+#define TUNER_TYPE_MULTI       1
+#define TUNER_TYPE_UNKNOWN     2
+/*     DVB-S           */
+#define TUNER_TYPE_L64724      4
+#define TUNER_TYPE_STV0299     8
+#define TUNER_TYPE_MB86A15     16
+
+/*     DVB-T           */
+#define TUNER_TYPE_TDA10046    32
+
+/*     ATSC            */
+#define TUNER_TYPE_NXT200x     64
+
+
 #define RDC_8820_PIO_0_DISABLE 0
 #define RDC_8820_PIO_0_ENABLE  1
 #define RDC_8820_INT           2
@@ -83,8 +101,6 @@ struct dst_state {
 
        struct bt878* bt;
 
-       struct dvb_frontend_ops ops;
-
        /* configuration settings */
        const struct dst_config* config;
 
@@ -120,8 +136,18 @@ struct dst_state {
        u8 card_info[8];
        u8 vendor[8];
        u8 board_info[8];
+       u32 tuner_type;
+       char *tuner_name;
+       struct mutex dst_mutex;
+       u8 fw_name[8];
+       struct dvb_device *dst_ca;
+};
 
-       struct semaphore dst_mutex;
+struct tuner_types {
+       u32 tuner_type;
+       char *tuner_name;
+       char *board_name;
+       char *fw_name;
 };
 
 struct dst_types {
@@ -130,6 +156,7 @@ struct dst_types {
        u8 dst_type;
        u32 type_flags;
        u32 dst_feature;
+       u32 tuner_type;
 };
 
 struct dst_config
@@ -152,7 +179,7 @@ int write_dst(struct dst_state *state, u8 * data, u8 len);
 int read_dst(struct dst_state *state, u8 * ret, u8 len);
 u8 dst_check_sum(u8 * buf, u32 len);
 struct dst_state* dst_attach(struct dst_state* state, struct dvb_adapter *dvb_adapter);
-int dst_ca_attach(struct dst_state *state, struct dvb_adapter *dvb_adapter);
+struct dvb_device *dst_ca_attach(struct dst_state *state, struct dvb_adapter *dvb_adapter);
 int dst_gpio_outb(struct dst_state* state, u32 mask, u32 enbb, u32 outhigh, int delay);
 
 int dst_command(struct dst_state* state, u8 * data, u8 len);