diff options
Diffstat (limited to 'drivers/media/dvb/bt8xx/dst_ca.c')
-rw-r--r-- | drivers/media/dvb/bt8xx/dst_ca.c | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/drivers/media/dvb/bt8xx/dst_ca.c b/drivers/media/dvb/bt8xx/dst_ca.c index 206aee3336bc..9160bdf479a2 100644 --- a/drivers/media/dvb/bt8xx/dst_ca.c +++ b/drivers/media/dvb/bt8xx/dst_ca.c | |||
@@ -40,23 +40,16 @@ static unsigned int debug = 1; | |||
40 | module_param(debug, int, 0644); | 40 | module_param(debug, int, 0644); |
41 | MODULE_PARM_DESC(dst_ca_debug, "debug messages, default is 0 (yes)"); | 41 | MODULE_PARM_DESC(dst_ca_debug, "debug messages, default is 0 (yes)"); |
42 | 42 | ||
43 | static unsigned int session; | ||
44 | module_param(session, int, 0644); | ||
45 | MODULE_PARM_DESC(session, "Support for hardware that has multiple sessions, default 0"); | ||
46 | |||
47 | static unsigned int new_ca; | ||
48 | module_param(new_ca, int, 0644); | ||
49 | MODULE_PARM_DESC(new_ca, "Support for the new CA interface firmware, default 0"); | ||
50 | |||
51 | #define dprintk if (debug) printk | 43 | #define dprintk if (debug) printk |
52 | 44 | ||
53 | 45 | /* Need some more work */ | |
54 | static int ca_set_slot_descr(void) | 46 | static int ca_set_slot_descr(void) |
55 | { | 47 | { |
56 | /* We could make this more graceful ? */ | 48 | /* We could make this more graceful ? */ |
57 | return -EOPNOTSUPP; | 49 | return -EOPNOTSUPP; |
58 | } | 50 | } |
59 | 51 | ||
52 | /* Need some more work */ | ||
60 | static int ca_set_pid(void) | 53 | static int ca_set_pid(void) |
61 | { | 54 | { |
62 | /* We could make this more graceful ? */ | 55 | /* We could make this more graceful ? */ |
@@ -213,7 +206,7 @@ static int ca_get_slot_caps(struct dst_state *state, struct ca_caps *p_ca_caps, | |||
213 | return 0; | 206 | return 0; |
214 | } | 207 | } |
215 | 208 | ||
216 | 209 | /* Need some more work */ | |
217 | static int ca_get_slot_descr(struct dst_state *state, struct ca_msg *p_ca_message, void *arg) | 210 | static int ca_get_slot_descr(struct dst_state *state, struct ca_msg *p_ca_message, void *arg) |
218 | { | 211 | { |
219 | return -EOPNOTSUPP; | 212 | return -EOPNOTSUPP; |
@@ -302,9 +295,9 @@ static int ca_get_message(struct dst_state *state, struct ca_msg *p_ca_message, | |||
302 | return 0; | 295 | return 0; |
303 | } | 296 | } |
304 | 297 | ||
305 | static int handle_en50221_tag(struct ca_msg *p_ca_message, struct ca_msg *hw_buffer) | 298 | static int handle_en50221_tag(struct dst_state *state, struct ca_msg *p_ca_message, struct ca_msg *hw_buffer) |
306 | { | 299 | { |
307 | if (session) { | 300 | if (state->dst_hw_cap & DST_TYPE_HAS_SESSION) { |
308 | hw_buffer->msg[2] = p_ca_message->msg[1]; /* MSB */ | 301 | hw_buffer->msg[2] = p_ca_message->msg[1]; /* MSB */ |
309 | hw_buffer->msg[3] = p_ca_message->msg[2]; /* LSB */ | 302 | hw_buffer->msg[3] = p_ca_message->msg[2]; /* LSB */ |
310 | } | 303 | } |
@@ -351,7 +344,7 @@ static int ca_set_pmt(struct dst_state *state, struct ca_msg *p_ca_message, stru | |||
351 | if (verbose > 3) | 344 | if (verbose > 3) |
352 | dprintk("%s, p_ca_message length %d (0x%x)\n", __FUNCTION__,p_ca_message->length,p_ca_message->length ); | 345 | dprintk("%s, p_ca_message length %d (0x%x)\n", __FUNCTION__,p_ca_message->length,p_ca_message->length ); |
353 | 346 | ||
354 | handle_en50221_tag(p_ca_message, hw_buffer); /* EN50221 tag */ | 347 | handle_en50221_tag(state, p_ca_message, hw_buffer); /* EN50221 tag */ |
355 | 348 | ||
356 | /* Handle the length field (variable) */ | 349 | /* Handle the length field (variable) */ |
357 | if (!(p_ca_message->msg[3] & 0x80)) { /* Length = 1 */ | 350 | if (!(p_ca_message->msg[3] & 0x80)) { /* Length = 1 */ |