linux/drivers/gpu/drm/i915/display/intel_vrr.c

// SPDX-License-Identifier: MIT
/*
 * Copyright © 2020 Intel Corporation
 *
 */

#include "i915_drv.h"
#include "i915_reg.h"
#include "intel_de.h"
#include "intel_display_types.h"
#include "intel_vrr.h"
#include "intel_vrr_regs.h"
#include "intel_dp.h"

#define FIXED_POINT_PRECISION
#define CMRR_PRECISION_TOLERANCE

bool intel_vrr_is_capable(struct intel_connector *connector)
{}

bool intel_vrr_is_in_range(struct intel_connector *connector, int vrefresh)
{}

void
intel_vrr_check_modeset(struct intel_atomic_state *state)
{}

/*
 * Without VRR registers get latched at:
 *  vblank_start
 *
 * With VRR the earliest registers can get latched is:
 *  intel_vrr_vmin_vblank_start(), which if we want to maintain
 *  the correct min vtotal is >=vblank_start+1
 *
 * The latest point registers can get latched is the vmax decision boundary:
 *  intel_vrr_vmax_vblank_start()
 *
 * Between those two points the vblank exit starts (and hence registers get
 * latched) ASAP after a push is sent.
 *
 * framestart_delay is programmable 1-4.
 */
static int intel_vrr_vblank_exit_length(const struct intel_crtc_state *crtc_state)
{}

int intel_vrr_vmin_vblank_start(const struct intel_crtc_state *crtc_state)
{}

int intel_vrr_vmax_vblank_start(const struct intel_crtc_state *crtc_state)
{}

static bool
is_cmrr_frac_required(struct intel_crtc_state *crtc_state)
{}

static unsigned int
cmrr_get_vtotal(struct intel_crtc_state *crtc_state, bool video_mode_required)
{}

void
intel_vrr_compute_config(struct intel_crtc_state *crtc_state,
			 struct drm_connector_state *conn_state)
{}

static u32 trans_vrr_ctl(const struct intel_crtc_state *crtc_state)
{}

void intel_vrr_set_transcoder_timings(const struct intel_crtc_state *crtc_state)
{}

void intel_vrr_send_push(const struct intel_crtc_state *crtc_state)
{}

bool intel_vrr_is_push_sent(const struct intel_crtc_state *crtc_state)
{}

void intel_vrr_enable(const struct intel_crtc_state *crtc_state)
{}

void intel_vrr_disable(const struct intel_crtc_state *old_crtc_state)
{}

void intel_vrr_get_config(struct intel_crtc_state *crtc_state)
{}