Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 30053
b: refs/heads/master
c: 3e357fd
h: refs/heads/master
i:
  30051: ab163cd
v: v3
  • Loading branch information
Manu Abraham authored and Mauro Carvalho Chehab committed Jun 25, 2006
1 parent 60c8ed9 commit 91a739d
Show file tree
Hide file tree
Showing 2 changed files with 96 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: cdd4208c059e01d4cdc10a538bbbebbb60aa9b9f
refs/heads/master: 3e357fd8a29cbcf91badd2a6d3b8ef5d4cb05025
95 changes: 95 additions & 0 deletions trunk/drivers/media/dvb/bt8xx/dst_ca.c
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,101 @@ static int debug_string(u8 *msg, u32 length, u32 offset)
return 0;
}

/* MMI */
static int ca_get_mmi(struct dst_state *state, struct ca_msg *hw_msg, struct ca_msg *mmi_msg)
{
static u8 get_mmi[] = { 0x07, 0x40, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x0f };

put_checksum(&get_mmi[0], 7);
if ((dst_put_ci(state, get_mmi, sizeof (get_mmi), hw_msg->msg, GET_REPLY)) < 0) {
dprintk(verbose, DST_CA_ERROR, 1, " -->dst_put_ci FAILED !");
return -1;
}
dprintk(verbose, DST_CA_NOTICE, 1, " -->dst_put_ci SUCCESS !");
memcpy(mmi_msg->msg, hw_msg->msg, hw_msg->msg[4]);

return 0;
}

/**
* Get Menu should be the first MMI function (like open !)
*/
static int ca_get_menu(struct dst_state *state)
{
static u8 get_menu[] = { 0x07, 0x40, 0x00, 0x00, 0x09, 0x00, 0x00, 0xff };

put_checksum(&get_menu[0], 7);
if ((dst_put_ci(state, get_menu, sizeof (get_menu), get_menu, NO_REPLY)) < 0) {
dprintk(verbose, DST_CA_ERROR, 1, " -->dst_put_ci FAILED !");
return -1;
}
dprintk(verbose, DST_CA_NOTICE, 1, " -->dst_put_ci SUCCESS !");

return 0;
}

/**
* MMI Enq (Enquire the application to allow user input)
*/
static int ca_answer_menu(struct dst_state *state, struct ca_msg *hw_msg, struct ca_msg *menu_answ)
{
u8 choice = 0;

static u8 answer_menu[] = { 0x08, 0x40, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x01, 0xff };

/* derive answer from menu (This comes from the user) */
answer_menu[7] = choice;
put_checksum(&answer_menu[0], 7);
if ((dst_put_ci(state, answer_menu, sizeof (answer_menu), hw_msg->msg, NO_REPLY)) < 0) {
dprintk(verbose, DST_CA_ERROR, 1, " -->dst_put_ci FAILED !");
return -1;
}
dprintk(verbose, DST_CA_NOTICE, 1, " -->dst_put_ci SUCCESS !");

return 0;
}

static int ca_answer_mmi(struct dst_state *state, struct ca_msg *hw_msg, struct ca_msg *answ_msg)
{
u8 answer =0, length = 0;

static u8 answer_mmi[] = { 0x08, 0x40, 0x00, 0x00, 0x08, 0x01, 0x00, 0x01, 0xff };

/* derive answer from answ_msg (This comes from the user) */
if (answer == 0) /* 0x00 == Cancel */
answer_mmi[7] = 0x00;
else { /* 0x01 == Answer */
length = strlen(answ_msg->msg);
memcpy(&answer_mmi[8], answ_msg->msg, length);
answer_mmi[0] += length;
answer_mmi[5] += length;
}
put_checksum(&answer_mmi[0], (8 + length));
if ((dst_put_ci(state, answer_mmi, sizeof (answer_mmi), hw_msg->msg, GET_REPLY)) < 0) {
dprintk(verbose, DST_CA_NOTICE, 1, " -->dst_put_ci FAILED !");

return -1;
}
dprintk(verbose, DST_CA_NOTICE, 1, " -->dst_put_ci SUCCESS !");

return 0;
}

static int ca_close_mmi(struct dst_state *state, struct ca_msg *hw_msg)
{
static u8 close_mmi[] = { 0x07, 0x40, 0x00, 0x00, 0x0e, 0x00, 0x00, 0xff };

put_checksum(&close_mmi[0], 7);
if ((dst_put_ci(state, close_mmi, sizeof (close_mmi), hw_msg->msg, NO_REPLY)) < 0) {
dprintk(verbose, DST_CA_ERROR, 1, " -->dst_put_ci FAILED !");

return -1;
}
dprintk(verbose, DST_CA_NOTICE, 1, " -->dst_put_ci SUCCESS !");

return 0;
}

static int ca_set_pmt(struct dst_state *state, struct ca_msg *p_ca_message, struct ca_msg *hw_buffer, u8 reply, u8 query)
{
u32 length = 0;
Expand Down

0 comments on commit 91a739d

Please sign in to comment.