#include <linux/clk.h>
#include <linux/device.h>
#include <linux/delay.h>
#include <linux/io.h>
#include <linux/iopoll.h>
#include <linux/reset.h>
#include "cdn-dp-core.h"
#include "cdn-dp-reg.h"
#define CDN_DP_SPDIF_CLK …
#define FW_ALIVE_TIMEOUT_US …
#define MAILBOX_RETRY_US …
#define MAILBOX_TIMEOUT_US …
#define LINK_TRAINING_RETRY_MS …
#define LINK_TRAINING_TIMEOUT_MS …
void cdn_dp_set_fw_clk(struct cdn_dp_device *dp, unsigned long clk)
{ … }
void cdn_dp_clock_reset(struct cdn_dp_device *dp)
{ … }
static int cdn_dp_mailbox_read(struct cdn_dp_device *dp)
{ … }
static int cdp_dp_mailbox_write(struct cdn_dp_device *dp, u8 val)
{ … }
static int cdn_dp_mailbox_validate_receive(struct cdn_dp_device *dp,
u8 module_id, u8 opcode,
u16 req_size)
{ … }
static int cdn_dp_mailbox_read_receive(struct cdn_dp_device *dp,
u8 *buff, u16 buff_size)
{ … }
static int cdn_dp_mailbox_send(struct cdn_dp_device *dp, u8 module_id,
u8 opcode, u16 size, u8 *message)
{ … }
static int cdn_dp_reg_write(struct cdn_dp_device *dp, u16 addr, u32 val)
{ … }
static int cdn_dp_reg_write_bit(struct cdn_dp_device *dp, u16 addr,
u8 start_bit, u8 bits_no, u32 val)
{ … }
int cdn_dp_dpcd_read(struct cdn_dp_device *dp, u32 addr, u8 *data, u16 len)
{ … }
int cdn_dp_dpcd_write(struct cdn_dp_device *dp, u32 addr, u8 value)
{ … }
int cdn_dp_load_firmware(struct cdn_dp_device *dp, const u32 *i_mem,
u32 i_size, const u32 *d_mem, u32 d_size)
{ … }
int cdn_dp_set_firmware_active(struct cdn_dp_device *dp, bool enable)
{ … }
int cdn_dp_set_host_cap(struct cdn_dp_device *dp, u8 lanes, bool flip)
{ … }
int cdn_dp_event_config(struct cdn_dp_device *dp)
{ … }
u32 cdn_dp_get_event(struct cdn_dp_device *dp)
{ … }
int cdn_dp_get_hpd_status(struct cdn_dp_device *dp)
{ … }
int cdn_dp_get_edid_block(void *data, u8 *edid,
unsigned int block, size_t length)
{ … }
static int cdn_dp_training_start(struct cdn_dp_device *dp)
{ … }
static int cdn_dp_get_training_status(struct cdn_dp_device *dp)
{ … }
int cdn_dp_train_link(struct cdn_dp_device *dp)
{ … }
int cdn_dp_set_video_status(struct cdn_dp_device *dp, int active)
{ … }
static int cdn_dp_get_msa_misc(struct video_info *video,
struct drm_display_mode *mode)
{ … }
int cdn_dp_config_video(struct cdn_dp_device *dp)
{ … }
int cdn_dp_audio_stop(struct cdn_dp_device *dp, struct audio_info *audio)
{ … }
int cdn_dp_audio_mute(struct cdn_dp_device *dp, bool enable)
{ … }
static void cdn_dp_audio_config_i2s(struct cdn_dp_device *dp,
struct audio_info *audio)
{ … }
static void cdn_dp_audio_config_spdif(struct cdn_dp_device *dp)
{ … }
int cdn_dp_audio_config(struct cdn_dp_device *dp, struct audio_info *audio)
{ … }