提交 58584b28 编写于 作者: J Johan Fjeldtvedt 提交者: Mauro Carvalho Chehab

[media] pulse8-cec: store logical address mask

In addition to setting the ACK mask, also set the logical address mask
setting in the dongle. This (and not the ACK mask) is persisted for
use in autonomous mode.

The logical address mask to use is deduced from the primary device type
in adap->log_addrs.
Signed-off-by: NJohan Fjeldtvedt <jaffe1@gmail.com>
Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
上级 09d6e35f
...@@ -498,6 +498,40 @@ static int pulse8_cec_adap_log_addr(struct cec_adapter *adap, u8 log_addr) ...@@ -498,6 +498,40 @@ static int pulse8_cec_adap_log_addr(struct cec_adapter *adap, u8 log_addr)
if (err) if (err)
goto unlock; goto unlock;
switch (adap->log_addrs.primary_device_type[0]) {
case CEC_OP_PRIM_DEVTYPE_TV:
mask = CEC_LOG_ADDR_MASK_TV;
break;
case CEC_OP_PRIM_DEVTYPE_RECORD:
mask = CEC_LOG_ADDR_MASK_RECORD;
break;
case CEC_OP_PRIM_DEVTYPE_TUNER:
mask = CEC_LOG_ADDR_MASK_TUNER;
break;
case CEC_OP_PRIM_DEVTYPE_PLAYBACK:
mask = CEC_LOG_ADDR_MASK_PLAYBACK;
break;
case CEC_OP_PRIM_DEVTYPE_AUDIOSYSTEM:
mask = CEC_LOG_ADDR_MASK_AUDIOSYSTEM;
break;
case CEC_OP_PRIM_DEVTYPE_SWITCH:
mask = CEC_LOG_ADDR_MASK_UNREGISTERED;
break;
case CEC_OP_PRIM_DEVTYPE_PROCESSOR:
mask = CEC_LOG_ADDR_MASK_SPECIFIC;
break;
default:
mask = 0;
break;
}
cmd[0] = MSGCODE_SET_LOGICAL_ADDRESS_MASK;
cmd[1] = mask >> 8;
cmd[2] = mask & 0xff;
err = pulse8_send_and_wait(pulse8, cmd, 3,
MSGCODE_COMMAND_ACCEPTED, 0);
if (err)
goto unlock;
cmd[0] = MSGCODE_SET_DEFAULT_LOGICAL_ADDRESS; cmd[0] = MSGCODE_SET_DEFAULT_LOGICAL_ADDRESS;
cmd[1] = log_addr; cmd[1] = log_addr;
err = pulse8_send_and_wait(pulse8, cmd, 2, err = pulse8_send_and_wait(pulse8, cmd, 2,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册