1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * cec-priv.h - HDMI Consumer Electronics Control internal header
5 * Copyright 2016 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
11 #include <linux/cec-funcs.h>
12 #include <media/cec-notifier.h>
14 #define dprintk(lvl, fmt, arg...) \
16 if (lvl <= cec_debug) \
17 pr_info("cec-%s: " fmt, adap->name, ## arg); \
20 #define call_op(adap, op, arg...) \
21 ((adap->ops->op && !adap->devnode.unregistered) ? \
22 adap->ops->op(adap, ## arg) : 0)
24 #define call_void_op(adap, op, arg...) \
26 if (adap->ops->op && !adap->devnode.unregistered) \
27 adap->ops->op(adap, ## arg); \
30 /* devnode to cec_adapter */
31 #define to_cec_adapter(node) container_of(node, struct cec_adapter, devnode)
33 static inline bool msg_is_raw(const struct cec_msg
*msg
)
35 return msg
->flags
& CEC_MSG_FL_RAW
;
42 int cec_monitor_all_cnt_inc(struct cec_adapter
*adap
);
43 void cec_monitor_all_cnt_dec(struct cec_adapter
*adap
);
44 int cec_monitor_pin_cnt_inc(struct cec_adapter
*adap
);
45 void cec_monitor_pin_cnt_dec(struct cec_adapter
*adap
);
46 int cec_adap_status(struct seq_file
*file
, void *priv
);
47 int cec_thread_func(void *_adap
);
48 int cec_adap_enable(struct cec_adapter
*adap
);
49 void __cec_s_phys_addr(struct cec_adapter
*adap
, u16 phys_addr
, bool block
);
50 int __cec_s_log_addrs(struct cec_adapter
*adap
,
51 struct cec_log_addrs
*log_addrs
, bool block
);
52 int cec_transmit_msg_fh(struct cec_adapter
*adap
, struct cec_msg
*msg
,
53 struct cec_fh
*fh
, bool block
);
54 void cec_queue_event_fh(struct cec_fh
*fh
,
55 const struct cec_event
*new_ev
, u64 ts
);
58 extern const struct file_operations cec_devnode_fops
;