#include <drm/radeon_drm.h>
#include "radeon.h"
#include "atom.h"
#include "atom-bits.h"
#include <drm/display/drm_dp_helper.h>
#define DP_LINK_CONFIGURATION_SIZE …
#define DP_DPCD_SIZE …
static char *voltage_names[] = …;
static char *pre_emph_names[] = …;
void radeon_atom_copy_swap(u8 *dst, u8 *src, u8 num_bytes, bool to_le)
{ … }
aux_channel_transaction;
static int radeon_process_aux_ch(struct radeon_i2c_chan *chan,
u8 *send, int send_bytes,
u8 *recv, int recv_size,
u8 delay, u8 *ack)
{ … }
#define BARE_ADDRESS_SIZE …
#define HEADER_SIZE …
static ssize_t
radeon_dp_aux_transfer_atom(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg)
{ … }
void radeon_dp_aux_init(struct radeon_connector *radeon_connector)
{ … }
#define DP_VOLTAGE_MAX …
#define DP_PRE_EMPHASIS_MAX …
static void dp_get_adjust_train(const u8 link_status[DP_LINK_STATUS_SIZE],
int lane_count,
u8 train_set[4])
{ … }
static int convert_bpc_to_bpp(int bpc)
{ … }
static int radeon_dp_get_dp_link_config(struct drm_connector *connector,
const u8 dpcd[DP_DPCD_SIZE],
unsigned pix_clock,
unsigned *dp_lanes, unsigned *dp_rate)
{ … }
static u8 radeon_dp_encoder_service(struct radeon_device *rdev,
int action, int dp_clock,
u8 ucconfig, u8 lane_num)
{ … }
u8 radeon_dp_getsinktype(struct radeon_connector *radeon_connector)
{ … }
static void radeon_dp_probe_oui(struct radeon_connector *radeon_connector)
{ … }
bool radeon_dp_getdpcd(struct radeon_connector *radeon_connector)
{ … }
int radeon_dp_get_panel_mode(struct drm_encoder *encoder,
struct drm_connector *connector)
{ … }
void radeon_dp_set_link_config(struct drm_connector *connector,
const struct drm_display_mode *mode)
{ … }
int radeon_dp_mode_valid_helper(struct drm_connector *connector,
struct drm_display_mode *mode)
{ … }
bool radeon_dp_needs_link_train(struct radeon_connector *radeon_connector)
{ … }
void radeon_dp_set_rx_power_state(struct drm_connector *connector,
u8 power_state)
{ … }
struct radeon_dp_link_train_info { … };
static void radeon_dp_update_vs_emph(struct radeon_dp_link_train_info *dp_info)
{ … }
static void radeon_dp_set_tp(struct radeon_dp_link_train_info *dp_info, int tp)
{ … }
static int radeon_dp_link_train_init(struct radeon_dp_link_train_info *dp_info)
{ … }
static int radeon_dp_link_train_finish(struct radeon_dp_link_train_info *dp_info)
{ … }
static int radeon_dp_link_train_cr(struct radeon_dp_link_train_info *dp_info)
{ … }
static int radeon_dp_link_train_ce(struct radeon_dp_link_train_info *dp_info)
{ … }
void radeon_dp_link_train(struct drm_encoder *encoder,
struct drm_connector *connector)
{ … }