linux/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c

// SPDX-License-Identifier: GPL-2.0-or-later
/* Hisilicon Hibmc SoC drm driver
 *
 * Based on the bochs drm driver.
 *
 * Copyright (c) 2016 Huawei Limited.
 *
 * Author:
 *	Rongrong Zou <[email protected]>
 *	Rongrong Zou <[email protected]>
 *	Jianhua Li <[email protected]>
 */

#include <linux/delay.h>

#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_fourcc.h>
#include <drm/drm_gem_vram_helper.h>
#include <drm/drm_vblank.h>

#include "hibmc_drm_drv.h"
#include "hibmc_drm_regs.h"

struct hibmc_display_panel_pll {};

struct hibmc_dislay_pll_config {};

static const struct hibmc_dislay_pll_config hibmc_pll_table[] =;

static int hibmc_plane_atomic_check(struct drm_plane *plane,
				    struct drm_atomic_state *state)
{}

static void hibmc_plane_atomic_update(struct drm_plane *plane,
				      struct drm_atomic_state *state)
{}

static const u32 channel_formats1[] =;

static const struct drm_plane_funcs hibmc_plane_funcs =;

static const struct drm_plane_helper_funcs hibmc_plane_helper_funcs =;

static void hibmc_crtc_dpms(struct drm_crtc *crtc, u32 dpms)
{}

static void hibmc_crtc_atomic_enable(struct drm_crtc *crtc,
				     struct drm_atomic_state *state)
{}

static void hibmc_crtc_atomic_disable(struct drm_crtc *crtc,
				      struct drm_atomic_state *state)
{}

static enum drm_mode_status
hibmc_crtc_mode_valid(struct drm_crtc *crtc,
		      const struct drm_display_mode *mode)
{}

static u32 format_pll_reg(void)
{}

static void set_vclock_hisilicon(struct drm_device *dev, u64 pll)
{}

static void get_pll_config(u64 x, u64 y, u32 *pll1, u32 *pll2)
{}

/*
 * This function takes care the extra registers and bit fields required to
 * setup a mode in board.
 * Explanation about Display Control register:
 * FPGA only supports 7 predefined pixel clocks, and clock select is
 * in bit 4:0 of new register 0x802a8.
 */
static u32 display_ctrl_adjust(struct drm_device *dev,
			       struct drm_display_mode *mode,
			       u32 ctrl)
{}

static void hibmc_crtc_mode_set_nofb(struct drm_crtc *crtc)
{}

static void hibmc_crtc_atomic_begin(struct drm_crtc *crtc,
				    struct drm_atomic_state *state)
{}

static void hibmc_crtc_atomic_flush(struct drm_crtc *crtc,
				    struct drm_atomic_state *state)

{}

static int hibmc_crtc_enable_vblank(struct drm_crtc *crtc)
{}

static void hibmc_crtc_disable_vblank(struct drm_crtc *crtc)
{}

static void hibmc_crtc_load_lut(struct drm_crtc *crtc)
{}

static int hibmc_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
				u16 *blue, uint32_t size,
				struct drm_modeset_acquire_ctx *ctx)
{}

static const struct drm_crtc_funcs hibmc_crtc_funcs =;

static const struct drm_crtc_helper_funcs hibmc_crtc_helper_funcs =;

int hibmc_de_init(struct hibmc_drm_private *priv)
{}