#include <linux/firmware.h>
#include <linux/delay.h>
#include <drm/drm_atomic_state_helper.h>
#include <drm/drm_edid.h>
#include <drm/drm_modeset_helper_vtables.h>
#include <drm/drm_print.h>
#include <drm/drm_probe_helper.h>
#include "ast_drv.h"
static bool ast_astdp_is_connected(struct ast_device *ast)
{ … }
static int ast_astdp_read_edid_block(void *data, u8 *buf, unsigned int block, size_t len)
{ … }
int ast_dp_launch(struct ast_device *ast)
{ … }
static bool ast_dp_power_is_on(struct ast_device *ast)
{ … }
static void ast_dp_power_on_off(struct drm_device *dev, bool on)
{ … }
static void ast_dp_link_training(struct ast_device *ast)
{ … }
static void ast_dp_set_on_off(struct drm_device *dev, bool on)
{ … }
static void ast_dp_set_mode(struct drm_crtc *crtc, struct ast_vbios_mode_info *vbios_mode)
{ … }
static void ast_wait_for_vretrace(struct ast_device *ast)
{ … }
static const struct drm_encoder_funcs ast_astdp_encoder_funcs = …;
static void ast_astdp_encoder_helper_atomic_mode_set(struct drm_encoder *encoder,
struct drm_crtc_state *crtc_state,
struct drm_connector_state *conn_state)
{ … }
static void ast_astdp_encoder_helper_atomic_enable(struct drm_encoder *encoder,
struct drm_atomic_state *state)
{ … }
static void ast_astdp_encoder_helper_atomic_disable(struct drm_encoder *encoder,
struct drm_atomic_state *state)
{ … }
static const struct drm_encoder_helper_funcs ast_astdp_encoder_helper_funcs = …;
static int ast_astdp_connector_helper_get_modes(struct drm_connector *connector)
{ … }
static int ast_astdp_connector_helper_detect_ctx(struct drm_connector *connector,
struct drm_modeset_acquire_ctx *ctx,
bool force)
{ … }
static const struct drm_connector_helper_funcs ast_astdp_connector_helper_funcs = …;
static const struct drm_connector_funcs ast_astdp_connector_funcs = …;
static int ast_astdp_connector_init(struct drm_device *dev, struct drm_connector *connector)
{ … }
int ast_astdp_output_init(struct ast_device *ast)
{ … }