disp: msm: sde: add changes to support odd number of dedicated-CWB
Add changes to support odd number of dedicated-CWB. Change-Id: I21c8521e98f6a8b5bb002f1c056afc501e7e9780 Signed-off-by: Akhil Jaiswal <quic_akhijais@quicinc.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2021-2022, 2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
* Copyright (c) 2015-2021, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2015-2021, The Linux Foundation. All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -102,21 +102,29 @@ static void _sde_hw_cwb_ctrl_init(struct sde_mdss_cfg *m,
|
|||||||
static void _sde_hw_dcwb_ctrl_init(struct sde_mdss_cfg *m,
|
static void _sde_hw_dcwb_ctrl_init(struct sde_mdss_cfg *m,
|
||||||
void __iomem *addr, struct sde_hw_wb *hw_wb)
|
void __iomem *addr, struct sde_hw_wb *hw_wb)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j, dcwb_count, blk_count;
|
||||||
u32 blk_off;
|
u32 blk_off;
|
||||||
char name[64] = {0};
|
char name[64] = {0};
|
||||||
|
|
||||||
if (!hw_wb)
|
if (!hw_wb || !m->dcwb_count)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (j = 0; j < (m->dcwb_count / MAX_CWB_BLOCKSIZE); j++) {
|
dcwb_count = (m->dcwb_count < MAX_CWB_BLOCKSIZE) ? m->dcwb_count :
|
||||||
|
(m->dcwb_count / MAX_CWB_BLOCKSIZE);
|
||||||
|
|
||||||
|
if (dcwb_count == m->dcwb_count)
|
||||||
|
blk_count = m->dcwb_count;
|
||||||
|
else
|
||||||
|
blk_count = MAX_CWB_BLOCKSIZE;
|
||||||
|
|
||||||
|
for (j = 0; j < dcwb_count; j++) {
|
||||||
hw_wb->dcwb_hw[j].base_off = addr;
|
hw_wb->dcwb_hw[j].base_off = addr;
|
||||||
hw_wb->dcwb_hw[j].blk_off = m->cwb_blk_off[j];
|
hw_wb->dcwb_hw[j].blk_off = m->cwb_blk_off[j];
|
||||||
hw_wb->dcwb_hw[j].length = 0x20;
|
hw_wb->dcwb_hw[j].length = 0x20;
|
||||||
hw_wb->dcwb_hw[j].hw_rev = m->hw_rev;
|
hw_wb->dcwb_hw[j].hw_rev = m->hw_rev;
|
||||||
hw_wb->dcwb_hw[j].log_mask = SDE_DBG_MASK_WB;
|
hw_wb->dcwb_hw[j].log_mask = SDE_DBG_MASK_WB;
|
||||||
|
|
||||||
for (i = 0; i < MAX_CWB_BLOCKSIZE; i++) {
|
for (i = 0; i < blk_count; i++) {
|
||||||
snprintf(name, sizeof(name), "dcwb%d", i);
|
snprintf(name, sizeof(name), "dcwb%d", i);
|
||||||
blk_off = hw_wb->dcwb_hw[j].blk_off + (m->cwb_blk_stride * i);
|
blk_off = hw_wb->dcwb_hw[j].blk_off + (m->cwb_blk_stride * i);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user