#include "dcn32_optc.h"
#include "dcn30/dcn30_optc.h"
#include "dcn31/dcn31_optc.h"
#include "reg_helper.h"
#include "dc.h"
#include "dcn_calc_math.h"
#include "dc_dmub_srv.h"
#define REG(reg) …
#define CTX …
#undef FN
#define FN(reg_name, field_name) …
static void optc32_set_odm_combine(struct timing_generator *optc, int *opp_id, int opp_cnt,
int segment_width, int last_segment_width)
{ … }
void optc32_get_odm_combine_segments(struct timing_generator *tg, int *odm_combine_segments)
{ … }
void optc32_wait_odm_doublebuffer_pending_clear(struct timing_generator *tg)
{ … }
void optc32_set_h_timing_div_manual_mode(struct timing_generator *optc, bool manual_mode)
{ … }
static bool optc32_enable_crtc(struct timing_generator *optc)
{ … }
static bool optc32_disable_crtc(struct timing_generator *optc)
{ … }
static void optc32_phantom_crtc_post_enable(struct timing_generator *optc)
{ … }
static void optc32_disable_phantom_otg(struct timing_generator *optc)
{ … }
void optc32_set_odm_bypass(struct timing_generator *optc,
const struct dc_crtc_timing *dc_crtc_timing)
{ … }
static void optc32_setup_manual_trigger(struct timing_generator *optc)
{ … }
static void optc32_set_drr(
struct timing_generator *optc,
const struct drr_params *params)
{ … }
bool optc32_get_double_buffer_pending(struct timing_generator *optc)
{ … }
static struct timing_generator_funcs dcn32_tg_funcs = …;
void dcn32_timing_generator_init(struct optc *optc1)
{ … }