[patch 1/2]: firedtv: fix returned struct for ca_info

Henrik Kurelid henke at kurelid.se
Fri Dec 5 09:47:26 UTC 2008


>From 8aa2c50a84ca7009ea176ddef58dbec3e3a6a2a3 Mon Sep 17 00:00:00 2001
From: Henrik Kurelid <henrik at kurelid.se>
Date: Thu, 4 Dec 2008 22:40:52 +0100
Subject: [PATCH] firedtv: fix returned struct for ca_info

The SystemId of the ca_info message was filled with garbage.
It now returns what the card returns.

Signed-off-by: Henrik Kurelid <henrik at kurelid.se>
---
 drivers/media/dvb/firesat/avc_api.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/media/dvb/firesat/avc_api.c b/drivers/media/dvb/firesat/avc_api.c
index 56911f3..3a4da73 100644
--- a/drivers/media/dvb/firesat/avc_api.c
+++ b/drivers/media/dvb/firesat/avc_api.c
@@ -763,7 +763,7 @@ int avc_ca_info(struct firesat *firesat, char *app_info, unsigned int *len)
 {
 	AVCCmdFrm CmdFrm;
 	AVCRspFrm RspFrm;
-	/* int pos;  FIXME: unused */
+	int pos;

 	memset(&CmdFrm, 0, sizeof(AVCCmdFrm));
 	CmdFrm.cts = AVC;
@@ -783,13 +783,13 @@ int avc_ca_info(struct firesat *firesat, char *app_info, unsigned int *len)
 	if (avc_write(firesat, &CmdFrm, &RspFrm) < 0)
 		return -EIO;

-	/* pos = get_ca_object_pos(&RspFrm);  FIXME: unused */
+	pos = get_ca_object_pos(&RspFrm);
 	app_info[0] = (TAG_CA_INFO >> 16) & 0xFF;
 	app_info[1] = (TAG_CA_INFO >> 8) & 0xFF;
 	app_info[2] = (TAG_CA_INFO >> 0) & 0xFF;
 	app_info[3] = 2;
-	app_info[4] = app_info[5];
-	app_info[5] = app_info[6];
+	app_info[4] = RspFrm.operand[pos + 0];
+	app_info[5] = RspFrm.operand[pos + 1];
 	*len = app_info[3] + 4;

 	return 0;
-- 
1.5.4.3




More information about the devel mailing list