From 5aef20aeff7e9b0741ecc80365a3f7416900e494 Mon Sep 17 00:00:00 2001
From: Manu Abraham <abraham.manu@gmail.com>
Date: Wed, 21 Jun 2006 10:28:16 -0300
Subject: V4L/DVB (4171): Fix Daughterboard detection

Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
---
 drivers/media/dvb/bt8xx/dst.c        | 33 +++++----------------------------
 drivers/media/dvb/bt8xx/dst_common.h |  1 +
 2 files changed, 6 insertions(+), 28 deletions(-)

(limited to 'drivers/media')

diff --git a/drivers/media/dvb/bt8xx/dst.c b/drivers/media/dvb/bt8xx/dst.c
index 97d6c632542..35d25c04e5c 100644
--- a/drivers/media/dvb/bt8xx/dst.c
+++ b/drivers/media/dvb/bt8xx/dst.c
@@ -965,13 +965,11 @@ static int dst_get_tuner_info(struct dst_state *state)
 	get_tuner_2[7] = dst_check_sum(get_tuner_2, 7);
 	dprintk(verbose, DST_ERROR, 1, "DST TYpe = MULTI FE");
 	if (state->type_flags & DST_TYPE_HAS_MULTI_FE) {
-//		if (dst_command(state, get_tuner_2, 8) < 0) {
 		if (dst_command(state, get_tuner_1, 8) < 0) {
 			dprintk(verbose, DST_INFO, 1, "Cmd=[0x13], Unsupported");
 			return -1;
 		}
 	} else {
-//		if (dst_command(state, get_tuner_1, 8) < 0) {
 		if (dst_command(state, get_tuner_2, 8) < 0) {
 			dprintk(verbose, DST_INFO, 1, "Cmd=[0xb], Unsupported");
 			return -1;
@@ -981,39 +979,18 @@ static int dst_get_tuner_info(struct dst_state *state)
 	memcpy(&state->board_info, &state->rxbuffer, 8);
 	if (state->type_flags & DST_TYPE_HAS_MULTI_FE) {
 		dprintk(verbose, DST_ERROR, 1, "DST type has TS=188");
-/*
-		if (state->board_info[1] == 0x0b) {
-			if (state->type_flags & DST_TYPE_HAS_TS204)
-				state->type_flags &= ~DST_TYPE_HAS_TS204;
-			state->type_flags |= DST_TYPE_HAS_NEWTUNE;
-			dprintk(verbose, DST_INFO, 1, "DST type has TS=188");
-		} else {
-			if (state->type_flags & DST_TYPE_HAS_NEWTUNE)
-				state->type_flags &= ~DST_TYPE_HAS_NEWTUNE;
-			state->type_flags |= DST_TYPE_HAS_TS204;
-			dprintk(verbose, DST_INFO, 1, "DST type has TS=204");
-		}
-	} else {
-*/
 	}
 	if (state->board_info[0] == 0xbc) {
-//		if (state->type_flags & DST_TYPE_HAS_TS204)
-//			state->type_flags &= ~DST_TYPE_HAS_TS204;
-//		state->type_flags |= DST_TYPE_HAS_NEWTUNE;
-		if (state->type_flags != DST_TYPE_IS_ATSC))
+		if (state->type_flags != DST_TYPE_IS_ATSC)
 			state->type_flags |= DST_TYPE_HAS_NEWTUNE;
 		else
 			state->type_flags |= DST_TYPE_HAS_NEWTUNE_2;
 
-		dprintk(verbose, DST_INFO, 1, "DST type has TS=188, Daughterboard=[%d]", state->board_info[1]);
-
-	} else if (state->board_info[0] == 0xcc) {
-//		if (state->type_flags & DST_TYPE_HAS_NEWTUNE)
-//			state->type_flags &= ~DST_TYPE_HAS_NEWTUNE;
-		state->type_flags |= DST_TYPE_HAS_TS204;
-		dprintk(verbose, DST_INFO, 1, "DST type has TS=204 Daughterboard=[%d]", state->board_info[1]);
+		if (state->board_info[1] == 0x01) {
+			state->dst_hw_cap |= DST_TYPE_HAS_DBOARD;
+			dprintk(verbose, DST_ERROR, 1, "DST has Daughterboard");
+		}
 	}
-//	}
 
 	return 0;
 }
diff --git a/drivers/media/dvb/bt8xx/dst_common.h b/drivers/media/dvb/bt8xx/dst_common.h
index d384ab443e3..abdaec848e1 100644
--- a/drivers/media/dvb/bt8xx/dst_common.h
+++ b/drivers/media/dvb/bt8xx/dst_common.h
@@ -53,6 +53,7 @@
 #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
 
 /*	Card capability list	*/
 
-- 
cgit v1.2.3-70-g09d2