Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

media: cec: add support for Absolute Volume Control

Add support for this new CEC message. This was added in HDMI 2.1a.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>

authored by

Hans Verkuil and committed by
Mauro Carvalho Chehab
479747ca 20694e96

+19
+2
Documentation/userspace-api/media/cec.h.rst.exceptions
··· 239 239 ignore define CEC_OP_FEAT_DEV_HAS_SET_AUDIO_RATE 240 240 ignore define CEC_OP_FEAT_DEV_SINK_HAS_ARC_TX 241 241 ignore define CEC_OP_FEAT_DEV_SOURCE_HAS_ARC_RX 242 + ignore define CEC_OP_FEAT_DEV_HAS_SET_AUDIO_VOLUME_LEVEL 242 243 243 244 ignore define CEC_MSG_GIVE_FEATURES 244 245 ··· 488 487 489 488 ignore define CEC_MSG_SYSTEM_AUDIO_MODE_REQUEST 490 489 ignore define CEC_MSG_SYSTEM_AUDIO_MODE_STATUS 490 + ignore define CEC_MSG_SET_AUDIO_VOLUME_LEVEL 491 491 492 492 ignore define CEC_OP_AUD_FMT_ID_CEA861 493 493 ignore define CEC_OP_AUD_FMT_ID_CEA861_CXT
+1
drivers/media/cec/core/cec-adap.c
··· 1027 1027 [CEC_MSG_REPORT_SHORT_AUDIO_DESCRIPTOR] = 2 | DIRECTED, 1028 1028 [CEC_MSG_REQUEST_SHORT_AUDIO_DESCRIPTOR] = 2 | DIRECTED, 1029 1029 [CEC_MSG_SET_SYSTEM_AUDIO_MODE] = 3 | BOTH, 1030 + [CEC_MSG_SET_AUDIO_VOLUME_LEVEL] = 3 | DIRECTED, 1030 1031 [CEC_MSG_SYSTEM_AUDIO_MODE_REQUEST] = 2 | DIRECTED, 1031 1032 [CEC_MSG_SYSTEM_AUDIO_MODE_STATUS] = 3 | DIRECTED, 1032 1033 [CEC_MSG_SET_AUDIO_RATE] = 3 | DIRECTED,
+14
include/uapi/linux/cec-funcs.h
··· 1568 1568 } 1569 1569 } 1570 1570 1571 + static inline void cec_msg_set_audio_volume_level(struct cec_msg *msg, 1572 + __u8 audio_volume_level) 1573 + { 1574 + msg->len = 3; 1575 + msg->msg[1] = CEC_MSG_SET_AUDIO_VOLUME_LEVEL; 1576 + msg->msg[2] = audio_volume_level; 1577 + } 1578 + 1579 + static inline void cec_ops_set_audio_volume_level(const struct cec_msg *msg, 1580 + __u8 *audio_volume_level) 1581 + { 1582 + *audio_volume_level = msg->msg[2]; 1583 + } 1584 + 1571 1585 1572 1586 /* Audio Rate Control Feature */ 1573 1587 static inline void cec_msg_set_audio_rate(struct cec_msg *msg,
+2
include/uapi/linux/cec.h
··· 768 768 #define CEC_OP_FEAT_DEV_HAS_SET_AUDIO_RATE 0x08 769 769 #define CEC_OP_FEAT_DEV_SINK_HAS_ARC_TX 0x04 770 770 #define CEC_OP_FEAT_DEV_SOURCE_HAS_ARC_RX 0x02 771 + #define CEC_OP_FEAT_DEV_HAS_SET_AUDIO_VOLUME_LEVEL 0x01 771 772 772 773 #define CEC_MSG_GIVE_FEATURES 0xa5 /* HDMI 2.0 */ 773 774 ··· 1060 1059 #define CEC_OP_AUD_FMT_ID_CEA861 0 1061 1060 #define CEC_OP_AUD_FMT_ID_CEA861_CXT 1 1062 1061 1062 + #define CEC_MSG_SET_AUDIO_VOLUME_LEVEL 0x73 1063 1063 1064 1064 /* Audio Rate Control Feature */ 1065 1065 #define CEC_MSG_SET_AUDIO_RATE 0x9a