Skip to content
Snippets Groups Projects
Commit caab1bcd authored by Jessica Zhang's avatar Jessica Zhang Committed by Dmitry Baryshkov
Browse files

drm/msm/dpu: Add RM support for allocating CWB

parent d023c9cb
No related branches found
No related tags found
No related merge requests found
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
/* /*
* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved.
*/ */
#define pr_fmt(fmt) "[drm:%s] " fmt, __func__ #define pr_fmt(fmt) "[drm:%s] " fmt, __func__
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "dpu_hw_lm.h" #include "dpu_hw_lm.h"
#include "dpu_hw_ctl.h" #include "dpu_hw_ctl.h"
#include "dpu_hw_cdm.h" #include "dpu_hw_cdm.h"
#include "dpu_hw_cwb.h"
#include "dpu_hw_pingpong.h" #include "dpu_hw_pingpong.h"
#include "dpu_hw_sspp.h" #include "dpu_hw_sspp.h"
#include "dpu_hw_intf.h" #include "dpu_hw_intf.h"
...@@ -122,6 +123,19 @@ int dpu_rm_init(struct drm_device *dev, ...@@ -122,6 +123,19 @@ int dpu_rm_init(struct drm_device *dev,
rm->hw_wb[wb->id - WB_0] = hw; rm->hw_wb[wb->id - WB_0] = hw;
} }
for (i = 0; i < cat->cwb_count; i++) {
struct dpu_hw_cwb *hw;
const struct dpu_cwb_cfg *cwb = &cat->cwb[i];
hw = dpu_hw_cwb_init(dev, cwb, mmio);
if (IS_ERR(hw)) {
rc = PTR_ERR(hw);
DPU_ERROR("failed cwb object creation: err %d\n", rc);
goto fail;
}
rm->cwb_blks[cwb->id - CWB_0] = &hw->base;
}
for (i = 0; i < cat->ctl_count; i++) { for (i = 0; i < cat->ctl_count; i++) {
struct dpu_hw_ctl *hw; struct dpu_hw_ctl *hw;
const struct dpu_ctl_cfg *ctl = &cat->ctl[i]; const struct dpu_ctl_cfg *ctl = &cat->ctl[i];
......
...@@ -20,6 +20,7 @@ struct dpu_global_state; ...@@ -20,6 +20,7 @@ struct dpu_global_state;
* @ctl_blks: array of ctl hardware resources * @ctl_blks: array of ctl hardware resources
* @hw_intf: array of intf hardware resources * @hw_intf: array of intf hardware resources
* @hw_wb: array of wb hardware resources * @hw_wb: array of wb hardware resources
* @hw_cwb: array of cwb hardware resources
* @dspp_blks: array of dspp hardware resources * @dspp_blks: array of dspp hardware resources
* @hw_sspp: array of sspp hardware resources * @hw_sspp: array of sspp hardware resources
* @cdm_blk: cdm hardware resource * @cdm_blk: cdm hardware resource
...@@ -30,6 +31,7 @@ struct dpu_rm { ...@@ -30,6 +31,7 @@ struct dpu_rm {
struct dpu_hw_blk *ctl_blks[CTL_MAX - CTL_0]; struct dpu_hw_blk *ctl_blks[CTL_MAX - CTL_0];
struct dpu_hw_intf *hw_intf[INTF_MAX - INTF_0]; struct dpu_hw_intf *hw_intf[INTF_MAX - INTF_0];
struct dpu_hw_wb *hw_wb[WB_MAX - WB_0]; struct dpu_hw_wb *hw_wb[WB_MAX - WB_0];
struct dpu_hw_blk *cwb_blks[CWB_MAX - CWB_0];
struct dpu_hw_blk *dspp_blks[DSPP_MAX - DSPP_0]; struct dpu_hw_blk *dspp_blks[DSPP_MAX - DSPP_0];
struct dpu_hw_blk *merge_3d_blks[MERGE_3D_MAX - MERGE_3D_0]; struct dpu_hw_blk *merge_3d_blks[MERGE_3D_MAX - MERGE_3D_0];
struct dpu_hw_blk *dsc_blks[DSC_MAX - DSC_0]; struct dpu_hw_blk *dsc_blks[DSC_MAX - DSC_0];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment