xref: /linux/drivers/media/cec/core/cec-priv.h (revision e74e1d55728509b352e4eec4283dd5b2781b2070)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * cec-priv.h - HDMI Consumer Electronics Control internal header
4  *
5  * Copyright 2016 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
6  */
7 
8 #ifndef _CEC_PRIV_H
9 #define _CEC_PRIV_H
10 
11 #include <linux/cec-funcs.h>
12 #include <media/cec-notifier.h>
13 
14 #define dprintk(lvl, fmt, arg...)					\
15 	do {								\
16 		if (lvl <= cec_debug)					\
17 			pr_info("cec-%s: " fmt, adap->name, ## arg);	\
18 	} while (0)
19 
20 /* devnode to cec_adapter */
21 #define to_cec_adapter(node) container_of(node, struct cec_adapter, devnode)
22 
23 static inline bool msg_is_raw(const struct cec_msg *msg)
24 {
25 	return msg->flags & CEC_MSG_FL_RAW;
26 }
27 
28 /* cec-core.c */
29 extern int cec_debug;
30 int cec_get_device(struct cec_devnode *devnode);
31 void cec_put_device(struct cec_devnode *devnode);
32 
33 /* cec-adap.c */
34 int cec_monitor_all_cnt_inc(struct cec_adapter *adap);
35 void cec_monitor_all_cnt_dec(struct cec_adapter *adap);
36 int cec_monitor_pin_cnt_inc(struct cec_adapter *adap);
37 void cec_monitor_pin_cnt_dec(struct cec_adapter *adap);
38 int cec_adap_status(struct seq_file *file, void *priv);
39 int cec_thread_func(void *_adap);
40 void __cec_s_phys_addr(struct cec_adapter *adap, u16 phys_addr, bool block);
41 int __cec_s_log_addrs(struct cec_adapter *adap,
42 		      struct cec_log_addrs *log_addrs, bool block);
43 int cec_transmit_msg_fh(struct cec_adapter *adap, struct cec_msg *msg,
44 			struct cec_fh *fh, bool block);
45 void cec_queue_event_fh(struct cec_fh *fh,
46 			const struct cec_event *new_ev, u64 ts);
47 
48 /* cec-api.c */
49 extern const struct file_operations cec_devnode_fops;
50 
51 #endif
52