static int mhl_rap_recv(struct mhl_tx_ctrl *mhl_ctrl, u8 action_code) { u8 error_code; switch (action_code) { case MHL_RAP_POLL: case MHL_RAP_CONTENT_ON: case MHL_RAP_CONTENT_OFF: if (action_code == MHL_RAP_CONTENT_ON || mhl_ctrl->screen_mode) { mhl_rap_action(mhl_ctrl, action_code); error_code = MHL_RAPK_NO_ERROR; } else error_code = MHL_RAPK_UNSUPPORTED_ACTION_CODE; break; default: error_code = MHL_RAPK_UNRECOGNIZED_ACTION_CODE; break; } /* prior send rapk */ return mhl_msc_send_prior_msc_msg( mhl_ctrl, MHL_MSC_MSG_RAPK, error_code); }
static int mhl_rap_recv(struct mhl_tx_ctrl *mhl_ctrl, u8 action_code) { u8 error_code; bool tmds_en; tmds_en = mhl_check_tmds_enabled(mhl_ctrl); switch (action_code) { case MHL_RAP_POLL: if (tmds_en) error_code = MHL_RAPK_NO_ERROR; else error_code = MHL_RAPK_UNSUPPORTED_ACTION_CODE; break; case MHL_RAP_CONTENT_ON: case MHL_RAP_CONTENT_OFF: if (tmds_en) { mhl_rap_action(mhl_ctrl, action_code); error_code = MHL_RAPK_NO_ERROR; } else { error_code = MHL_RAPK_UNSUPPORTED_ACTION_CODE; } break; default: error_code = MHL_RAPK_UNRECOGNIZED_ACTION_CODE; break; } /* prior send rapk */ return mhl_msc_send_prior_msc_msg( mhl_ctrl, MHL_MSC_MSG_RAPK, error_code); }
int mhl_rcp_recv(struct mhl_tx_ctrl *mhl_ctrl, u8 key_code) { u8 index = key_code & 0x7f; u16 input_key_code; if (!mhl_ctrl->rcp_key_code_tbl) { pr_err("%s: RCP Key Code Table not initialized\n", __func__); return -EINVAL; } input_key_code = mhl_ctrl->rcp_key_code_tbl[index]; if ((index < mhl_ctrl->rcp_key_code_tbl_len) && (input_key_code > 0)) { /* prior send rcpk */ mhl_msc_send_prior_msc_msg( mhl_ctrl, MHL_MSC_MSG_RCPK, key_code); if (mhl_ctrl->input) mhl_handle_input(mhl_ctrl, key_code, input_key_code); } else { /* prior send rcpe */ mhl_msc_send_prior_msc_msg( mhl_ctrl, MHL_MSC_MSG_RCPE, MHL_RCPE_INEFFECTIVE_KEY_CODE); /* send rcpk after rcpe send */ mhl_msc_send_prior_msc_msg( mhl_ctrl, MHL_MSC_MSG_RCPK, key_code); } return 0; }