diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/dvb/bt8xx/dst.c | 33 | ||||
-rw-r--r-- | drivers/media/dvb/bt8xx/dst_common.h | 6 |
2 files changed, 37 insertions, 2 deletions
diff --git a/drivers/media/dvb/bt8xx/dst.c b/drivers/media/dvb/bt8xx/dst.c index d2a7e413e9e1..52cbe150077d 100644 --- a/drivers/media/dvb/bt8xx/dst.c +++ b/drivers/media/dvb/bt8xx/dst.c | |||
@@ -586,6 +586,23 @@ static int dst_type_print(u8 type) | |||
586 | return 0; | 586 | return 0; |
587 | } | 587 | } |
588 | 588 | ||
589 | struct tuner_types tuner_list[] = { | ||
590 | { | ||
591 | .tuner_type = 2, | ||
592 | .tuner_name = "L 64724" | ||
593 | }, | ||
594 | |||
595 | { | ||
596 | .tuner_type = 4, | ||
597 | .tuner_name = "STV 0299" | ||
598 | }, | ||
599 | |||
600 | { | ||
601 | .tuner_type = 8, | ||
602 | .tuner_name = "MB 86A15" | ||
603 | }, | ||
604 | }; | ||
605 | |||
589 | /* | 606 | /* |
590 | Known cards list | 607 | Known cards list |
591 | Satellite | 608 | Satellite |
@@ -656,7 +673,7 @@ static struct dst_types dst_tlist[] = { | |||
656 | .type_flags = DST_TYPE_HAS_SYMDIV | DST_TYPE_HAS_TS204 | DST_TYPE_HAS_FW_2, | 673 | .type_flags = DST_TYPE_HAS_SYMDIV | DST_TYPE_HAS_TS204 | DST_TYPE_HAS_FW_2, |
657 | .dst_feature = DST_TYPE_HAS_DISEQC3 | DST_TYPE_HAS_DISEQC4 | DST_TYPE_HAS_DISEQC5 | 674 | .dst_feature = DST_TYPE_HAS_DISEQC3 | DST_TYPE_HAS_DISEQC4 | DST_TYPE_HAS_DISEQC5 |
658 | | DST_TYPE_HAS_MAC | DST_TYPE_HAS_MOTO, | 675 | | DST_TYPE_HAS_MAC | DST_TYPE_HAS_MOTO, |
659 | .tuner_type = TUNER_TYPE_STV0299 | 676 | .tuner_type = TUNER_TYPE_MULTI |
660 | }, | 677 | }, |
661 | 678 | ||
662 | { | 679 | { |
@@ -890,8 +907,10 @@ static int dst_get_device_id(struct dst_state *state) | |||
890 | { | 907 | { |
891 | u8 reply; | 908 | u8 reply; |
892 | 909 | ||
893 | int i; | 910 | int i, j; |
894 | struct dst_types *p_dst_type; | 911 | struct dst_types *p_dst_type; |
912 | struct tuner_types *p_tuner_list; | ||
913 | |||
895 | u8 use_dst_type = 0; | 914 | u8 use_dst_type = 0; |
896 | u32 use_type_flags = 0; | 915 | u32 use_type_flags = 0; |
897 | 916 | ||
@@ -930,6 +949,16 @@ static int dst_get_device_id(struct dst_state *state) | |||
930 | state->dst_hw_cap = p_dst_type->dst_feature; | 949 | state->dst_hw_cap = p_dst_type->dst_feature; |
931 | dprintk(verbose, DST_ERROR, 1, "Recognise [%s]\n", p_dst_type->device_id); | 950 | dprintk(verbose, DST_ERROR, 1, "Recognise [%s]\n", p_dst_type->device_id); |
932 | 951 | ||
952 | if (p_dst_type->tuner_type != TUNER_TYPE_MULTI) { | ||
953 | state->tuner_type = p_dst_type->tuner_type; | ||
954 | |||
955 | for (j = 0, p_tuner_list = tuner_list; j < ARRAY_SIZE(tuner_list); j++, p_tuner_list++) { | ||
956 | if (p_dst_type->tuner_type == p_tuner_list->tuner_type) { | ||
957 | state->tuner_name = p_tuner_list->tuner_name; | ||
958 | dprintk(verbose, DST_ERROR, 1, "DST has a [%s] based tuner\n", state->tuner_name); | ||
959 | } | ||
960 | } | ||
961 | } | ||
933 | break; | 962 | break; |
934 | } | 963 | } |
935 | } | 964 | } |
diff --git a/drivers/media/dvb/bt8xx/dst_common.h b/drivers/media/dvb/bt8xx/dst_common.h index 3908c5b8c72d..19449592fd99 100644 --- a/drivers/media/dvb/bt8xx/dst_common.h +++ b/drivers/media/dvb/bt8xx/dst_common.h | |||
@@ -125,9 +125,15 @@ struct dst_state { | |||
125 | u8 vendor[8]; | 125 | u8 vendor[8]; |
126 | u8 board_info[8]; | 126 | u8 board_info[8]; |
127 | u32 tuner_type; | 127 | u32 tuner_type; |
128 | char *tuner_name; | ||
128 | struct mutex dst_mutex; | 129 | struct mutex dst_mutex; |
129 | }; | 130 | }; |
130 | 131 | ||
132 | struct tuner_types { | ||
133 | u32 tuner_type; | ||
134 | char *tuner_name; | ||
135 | }; | ||
136 | |||
131 | struct dst_types { | 137 | struct dst_types { |
132 | char *device_id; | 138 | char *device_id; |
133 | int offset; | 139 | int offset; |