disp: msm: sde: add support for new dspp flush
SDE HW from lahaina has moved the DSPP flush bits from CTL_FLUSH to new CTL_DSPP_x_FLUSH registers. This change brings in support for programming the new DSPP flush registers which allow more fine-grained control over what sub-blocks within each DSPP get flushed. Change-Id: Ie16c9b153d607bd7627ba02480813ab588bbe2ea Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org> Signed-off-by: Steve Cohen <cohens@codeaurora.org>
This commit is contained in:

کامیت شده توسط
Steve Cohen

والد
bfbb5f63e7
کامیت
fd60107c88
@@ -1,6 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2015-2019, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2015-2020, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _SDE_HW_CTL_H
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "sde_hw_blk.h"
|
||||
|
||||
#define INVALID_CTL_STATUS 0xfffff88e
|
||||
#define CTL_MAX_DSPP_COUNT (DSPP_MAX - DSPP_0)
|
||||
|
||||
/**
|
||||
* sde_ctl_mode_sel: Interface mode selection
|
||||
@@ -136,6 +137,7 @@ struct sde_ctl_dsc_cfg {
|
||||
* @pending_merge_3d_flush_mask: pending 3d merge block flush
|
||||
* @pending_cwb_flush_mask: pending flush for concurrent writeback
|
||||
* @pending_periph_flush_mask: pending flush for peripheral module
|
||||
* @pending_dspp_flush_masks: pending flush masks for sub-blks of each DSPP
|
||||
*/
|
||||
struct sde_ctl_flush_cfg {
|
||||
u32 pending_flush_mask;
|
||||
@@ -146,6 +148,7 @@ struct sde_ctl_flush_cfg {
|
||||
u32 pending_merge_3d_flush_mask;
|
||||
u32 pending_cwb_flush_mask;
|
||||
u32 pending_periph_flush_mask;
|
||||
u32 pending_dspp_flush_masks[CTL_MAX_DSPP_COUNT];
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -347,6 +350,18 @@ struct sde_hw_ctl_ops {
|
||||
int (*update_bitmask_dspp_pavlut)(struct sde_hw_ctl *ctx,
|
||||
enum sde_dspp blk, bool enable);
|
||||
|
||||
/**
|
||||
* Program DSPP sub block specific bit of dspp flush register.
|
||||
* @ctx : ctl path ctx pointer
|
||||
* @dspp : HW block ID of dspp block
|
||||
* @sub_blk : enum of DSPP sub block to flush
|
||||
* @enable : true to enable, 0 to disable
|
||||
*
|
||||
* This API is for CTL with DSPP flush hierarchy registers.
|
||||
*/
|
||||
int (*update_bitmask_dspp_subblk)(struct sde_hw_ctl *ctx,
|
||||
enum sde_dspp dspp, u32 sub_blk, bool enable);
|
||||
|
||||
/**
|
||||
* update_bitmask_sspp: updates mask corresponding to sspp
|
||||
* @blk : blk id
|
||||
|
مرجع در شماره جدید
Block a user