V4L/DVB (4167): Add Board Names
authorManu Abraham <abraham.manu@gmail.com>
Wed, 21 Jun 2006 13:28:01 +0000 (10:28 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Sun, 25 Jun 2006 05:05:17 +0000 (02:05 -0300)
Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/dvb/bt8xx/dst.c
drivers/media/dvb/bt8xx/dst_common.h

index 68db48b..21f327d 100644 (file)
@@ -589,18 +589,27 @@ static int dst_type_print(u8 type)
 struct tuner_types tuner_list[] = {
        {
                .tuner_type = 2,
-               .tuner_name = "L 64724"
+               .tuner_name = "L 64724",
+               .board_name = " "
        },
 
        {
                .tuner_type = 4,
-               .tuner_name = "STV 0299"
+               .tuner_name = "STV 0299",
+               .board_name = "VP1030"
        },
 
        {
                .tuner_type = 8,
-               .tuner_name = "MB 86A15"
+               .tuner_name = "MB 86A15",
+               .board_name = "VP1025"
        },
+
+       {
+               .tuner_type = 16,
+               .tuner_name = "NXT 200x",
+               .board_name = "VP3250"
+       }
 };
 
 /*
@@ -818,6 +827,9 @@ static int dst_fw_ver(struct dst_state *state)
 
 static int dst_card_type(struct dst_state *state)
 {
+       int j;
+       struct tuner_types *p_tuner_list = NULL;
+
        u8 get_type[] = { 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
        get_type[7] = dst_check_sum(get_type, 7);
        if (dst_command(state, get_type, 8) < 0) {
@@ -828,6 +840,14 @@ static int dst_card_type(struct dst_state *state)
        memcpy(&state->card_info, &state->rxbuffer, 7);
        dprintk(verbose, DST_ERROR, 1, "Device Model=[%s]", &state->card_info[0]);
 
+       for (j = 0, p_tuner_list = tuner_list; j < ARRAY_SIZE(tuner_list); j++, p_tuner_list++) {
+               if (!strcmp(&state->card_info[0], p_tuner_list->board_name)) {
+                       state->tuner_type = p_tuner_list->tuner_type;
+                       dprintk(verbose, DST_ERROR, 1, "DST has [%s] tuner, tuner type=[%d]\n",
+                               p_tuner_list->tuner_name, p_tuner_list->tuner_type);
+               }
+       }
+
        return 0;
 }
 
@@ -954,8 +974,8 @@ static int dst_get_device_id(struct dst_state *state)
 
                                for (j = 0, p_tuner_list = tuner_list; j < ARRAY_SIZE(tuner_list); j++, p_tuner_list++) {
                                        if (p_dst_type->tuner_type == p_tuner_list->tuner_type) {
-                                               state->tuner_name = p_tuner_list->tuner_name;
-                                               dprintk(verbose, DST_ERROR, 1, "DST has a [%s] based tuner\n", state->tuner_name);
+                                               state->tuner_type = p_tuner_list->tuner_type;
+                                               dprintk(verbose, DST_ERROR, 1, "DST has a [%s] based tuner\n", p_tuner_list->tuner_name);
                                        }
                                }
                        }
index 1944959..9323f94 100644 (file)
 #define DST_TYPE_HAS_SESSION   128
 
 #define TUNER_TYPE_MULTI       1
+
+/*     DVB-S           */
 #define TUNER_TYPE_L64724      2
 #define TUNER_TYPE_STV0299     4
 #define TUNER_TYPE_MB86A15     8
 
+/*     ATSC            */
+#define TUNER_TYPE_NXT200x     16
+
+
 #define RDC_8820_PIO_0_DISABLE 0
 #define RDC_8820_PIO_0_ENABLE  1
 #define RDC_8820_INT           2
@@ -132,6 +138,7 @@ struct dst_state {
 struct tuner_types {
        u32 tuner_type;
        char *tuner_name;
+       char *board_name;
 };
 
 struct dst_types {