Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit df7e6040 authored by Gopikrishnaiah Anandan's avatar Gopikrishnaiah Anandan
Browse files

drm: add uapi support for demura feature



DPU hardware supports demura feature, which needs to be controlled by
the user-space client.Change adds demura uapi structure for driver clients.

Change-Id: Ifa8c68b7f6a123af6451c110d53b3bc15240d45a
Signed-off-by: default avatarGopikrishnaiah Anandan <agopik@codeaurora.org>
parent 718e2246
Loading
Loading
Loading
Loading
+56 −0
Original line number Diff line number Diff line
@@ -593,6 +593,62 @@ struct drm_msm_spr_init_cfg {
	int cfg17[SPR_INIT_PARAM_SIZE_4];
};

#define FEATURE_DEM
#define CFG0_PARAM_LEN 8
#define CFG1_PARAM_LEN 8
#define CFG1_PARAM0_LEN 153
#define CFG0_PARAM2_LEN 256
#define CFG5_PARAM01_LEN 4
#define CFG3_PARAM01_LEN 4

struct drm_msm_dem_cfg {
	__u64 flags;
	__u32 pentile;
	__u32 cfg0_en;
	__u32 cfg0_param0_len;
	__u32 cfg0_param0[CFG0_PARAM_LEN];
	__u32 cfg0_param1_len;
	__u32 cfg0_param1[CFG0_PARAM_LEN];
	__u32 cfg0_param2_len;
	__u64 cfg0_param2_c0[CFG0_PARAM2_LEN];
	__u64 cfg0_param2_c1[CFG0_PARAM2_LEN];
	__u64 cfg0_param2_c2[CFG0_PARAM2_LEN];
	__u32 cfg0_param3_len;
	__u32 cfg0_param3_c0[CFG0_PARAM_LEN];
	__u32 cfg0_param3_c1[CFG0_PARAM_LEN];
	__u32 cfg0_param3_c2[CFG0_PARAM_LEN];
	__u32 cfg0_param4_len;
	__u32 cfg0_param4[CFG0_PARAM_LEN];

	__u32 cfg1_en;
	__u32 cfg1_high_idx;
	__u32 cfg1_low_idx;
	__u32 cfg01_param0_len;
	__u32 cfg01_param0[CFG1_PARAM_LEN];
	__u32 cfg1_param0_len;
	__u32 cfg1_param0_c0[CFG1_PARAM0_LEN];
	__u32 cfg1_param0_c1[CFG1_PARAM0_LEN];
	__u32 cfg1_param0_c2[CFG1_PARAM0_LEN];

	__u32 cfg2_en;
	__u32 cfg3_en;
	__u32 cfg3_param0_len;
	__u32 cfg3_param0_a[CFG3_PARAM01_LEN];
	__u32 cfg3_param0_b[CFG3_PARAM01_LEN];
	__u32 cfg3_ab_adj;
	__u32 cfg4_en;
	__u32 cfg5_en;
	__u32 cfg5_param0_len;
	__u32 cfg5_param0[CFG5_PARAM01_LEN];
	__u32 cfg5_param1_len;
	__u32 cfg5_param1[CFG5_PARAM01_LEN];

	__u32 c0_depth;
	__u32 c1_depth;
	__u32 c2_depth;
	__u32 src_id;
};

/**
 * struct drm_msm_ad4_manual_str_cfg - ad4 manual strength config set
 * by user-space client.
+3 −1
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
/*
 * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
 * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
 */

#ifndef _SDE_DRM_H_
@@ -59,12 +59,14 @@ extern "C" {
 *                                  less than 0xff, apply modulation as well.
 * @SDE_DRM_BLEND_OP_MAX:           Used to track maximum blend operation
 *                                  possible by mdp.
 * @SDE_DRM_BLEND_OP_SKIP:          Skip staging the layer in the layer mixer.
 */
#define SDE_DRM_BLEND_OP_NOT_DEFINED    0
#define SDE_DRM_BLEND_OP_OPAQUE         1
#define SDE_DRM_BLEND_OP_PREMULTIPLIED  2
#define SDE_DRM_BLEND_OP_COVERAGE       3
#define SDE_DRM_BLEND_OP_MAX            4
#define SDE_DRM_BLEND_OP_SKIP           5

/**
 * Bit masks for "src_config" property