#include <linux/delay.h>
#include <media/cec.h>
#include "vivid-core.h"
#include "vivid-cec.h"
#define CEC_START_BIT_US …
#define CEC_DATA_BIT_US …
#define CEC_MARGIN_US …
struct xfer_on_bus { … };
static bool find_dest_adap(struct vivid_dev *dev,
struct cec_adapter *adap, u8 dest)
{ … }
static bool xfer_ready(struct vivid_dev *dev)
{ … }
static void adjust_sfts(struct vivid_dev *dev)
{ … }
int vivid_cec_bus_thread(void *_dev)
{ … }
static int vivid_cec_adap_enable(struct cec_adapter *adap, bool enable)
{ … }
static int vivid_cec_adap_log_addr(struct cec_adapter *adap, u8 log_addr)
{ … }
static int vivid_cec_adap_transmit(struct cec_adapter *adap, u8 attempts,
u32 signal_free_time, struct cec_msg *msg)
{ … }
static int vivid_received(struct cec_adapter *adap, struct cec_msg *msg)
{ … }
static const struct cec_adap_ops vivid_cec_adap_ops = …;
struct cec_adapter *vivid_cec_alloc_adap(struct vivid_dev *dev,
unsigned int idx,
bool is_source)
{ … }