File Index
Files and directories
Sign in
FILE

cec-splitter.h

File preview with syntax highlighting.

linux-6.19.14/drivers/media/cec/usb/extron-da-hd-4k-plus/cec-splitter.h C
 1/* SPDX-License-Identifier: GPL-2.0-only */
 2
 3/*
 4 * Copyright 2021-2024 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
 5 */
 6
 7#ifndef _CEC_SPLITTER_H_
 8#define _CEC_SPLITTER_H_
 9
10struct cec_splitter;
11
12#define STATE_CHANGE_MAX_REPEATS 2
13
14struct cec_splitter_port {
15	struct cec_splitter *splitter;
16	struct cec_adapter *adap;
17	unsigned int port;
18	bool is_active_source;
19	bool found_sink;
20	ktime_t lost_sink_ts;
21	u32 out_request_current_latency_seq;
22	ktime_t out_request_current_latency_ts;
23	u8 video_latency;
24	u32 out_give_device_power_status_seq;
25	ktime_t out_give_device_power_status_ts;
26	u8 power_status;
27};
28
29struct cec_splitter {
30	struct device *dev;
31	unsigned int num_out_ports;
32	struct cec_splitter_port **ports;
33
34	/* High-level splitter state */
35	u8 request_current_latency_dest;
36	u8 give_device_power_status_dest;
37	bool is_standby;
38};
39
40void cec_splitter_unconfigured_output(struct cec_splitter_port *port);
41void cec_splitter_configured_output(struct cec_splitter_port *port);
42int cec_splitter_received_input(struct cec_splitter_port *port, struct cec_msg *msg);
43int cec_splitter_received_output(struct cec_splitter_port *port, struct cec_msg *msg,
44				 struct cec_adapter *input_adap);
45void cec_splitter_nb_transmit_canceled_output(struct cec_splitter_port *port,
46					      const struct cec_msg *msg,
47					      struct cec_adapter *input_adap);
48bool cec_splitter_poll(struct cec_splitter *splitter,
49		       struct cec_adapter *input_adap, bool debug);
50
51#endif
~/ Read-only file preview.