linux/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c

// SPDX-License-Identifier: GPL-2.0-only
/* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
 */

#include <linux/iopoll.h>

#include <drm/drm_managed.h>

#include "dpu_hw_mdss.h"
#include "dpu_hwio.h"
#include "dpu_hw_catalog.h"
#include "dpu_hw_pingpong.h"
#include "dpu_kms.h"
#include "dpu_trace.h"

#define PP_TEAR_CHECK_EN
#define PP_SYNC_CONFIG_VSYNC
#define PP_SYNC_CONFIG_HEIGHT
#define PP_SYNC_WRCOUNT
#define PP_VSYNC_INIT_VAL
#define PP_INT_COUNT_VAL
#define PP_SYNC_THRESH
#define PP_START_POS
#define PP_RD_PTR_IRQ
#define PP_WR_PTR_IRQ
#define PP_OUT_LINE_COUNT
#define PP_LINE_COUNT
#define PP_AUTOREFRESH_CONFIG

#define PP_FBC_MODE
#define PP_FBC_BUDGET_CTL
#define PP_FBC_LOSSY_MODE
#define PP_DSC_MODE
#define PP_DCE_DATA_IN_SWAP
#define PP_DCE_DATA_OUT_SWAP

#define PP_DITHER_EN
#define PP_DITHER_BITDEPTH
#define PP_DITHER_MATRIX

#define DITHER_DEPTH_MAP_INDEX

static u32 dither_depth_map[DITHER_DEPTH_MAP_INDEX] =;

static void dpu_hw_pp_setup_dither(struct dpu_hw_pingpong *pp,
				    struct dpu_hw_dither_cfg *cfg)
{}

static int dpu_hw_pp_enable_te(struct dpu_hw_pingpong *pp,
		struct dpu_hw_tear_check *te)
{}

static void dpu_hw_pp_setup_autorefresh_config(struct dpu_hw_pingpong *pp,
					       u32 frame_count, bool enable)
{}

/*
 * dpu_hw_pp_get_autorefresh_config - Get autorefresh config from HW
 * @pp:          DPU pingpong structure
 * @frame_count: Used to return the current frame count from hw
 *
 * Returns: True if autorefresh enabled, false if disabled.
 */
static bool dpu_hw_pp_get_autorefresh_config(struct dpu_hw_pingpong *pp,
					     u32 *frame_count)
{}

static int dpu_hw_pp_disable_te(struct dpu_hw_pingpong *pp)
{}

static int dpu_hw_pp_connect_external_te(struct dpu_hw_pingpong *pp,
		bool enable_external_te)
{}

static int dpu_hw_pp_get_vsync_info(struct dpu_hw_pingpong *pp,
		struct dpu_hw_pp_vsync_info *info)
{}

static u32 dpu_hw_pp_get_line_count(struct dpu_hw_pingpong *pp)
{}

static void dpu_hw_pp_disable_autorefresh(struct dpu_hw_pingpong *pp,
					  uint32_t encoder_id, u16 vdisplay)
{}

static int dpu_hw_pp_dsc_enable(struct dpu_hw_pingpong *pp)
{}

static void dpu_hw_pp_dsc_disable(struct dpu_hw_pingpong *pp)
{}

static int dpu_hw_pp_setup_dsc(struct dpu_hw_pingpong *pp)
{}

struct dpu_hw_pingpong *dpu_hw_pingpong_init(struct drm_device *dev,
					     const struct dpu_pingpong_cfg *cfg,
					     void __iomem *addr,
					     const struct dpu_mdss_version *mdss_rev)
{}