drm/msm/sde: use common structure for phys encoder init
Consolidate physical encoder init parameters into a common
structure for clarity and ease of use.
Change-Id: I6d6b69deef69e7e0080361fd26148fa45c6032af
Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org>
diff --git a/drivers/gpu/drm/msm/sde/sde_encoder.c b/drivers/gpu/drm/msm/sde/sde_encoder.c
index 5194679..2b5fc41 100644
--- a/drivers/gpu/drm/msm/sde/sde_encoder.c
+++ b/drivers/gpu/drm/msm/sde/sde_encoder.c
@@ -571,17 +571,9 @@
static int sde_encoder_virt_add_phys_encs(
u32 display_caps,
struct sde_encoder_virt *sde_enc,
- struct sde_kms *sde_kms,
- enum sde_intf intf_idx,
- enum sde_pingpong pp_idx,
- enum sde_ctl ctl_idx,
- enum sde_enc_split_role split_role)
+ struct sde_enc_phys_init_params *params)
{
struct sde_encoder_phys *enc = NULL;
- struct sde_encoder_virt_ops parent_ops = {
- sde_encoder_vblank_callback,
- sde_encoder_handle_phys_enc_ready_for_kickoff
- };
DBG("");
@@ -597,8 +589,7 @@
}
if (display_caps & MSM_DISPLAY_CAP_VID_MODE) {
- enc = sde_encoder_phys_vid_init(sde_kms, intf_idx, ctl_idx,
- split_role, &sde_enc->base, parent_ops);
+ enc = sde_encoder_phys_vid_init(params);
if (IS_ERR_OR_NULL(enc)) {
DRM_ERROR("Failed to initialize phys vid enc: %ld\n",
@@ -611,9 +602,7 @@
}
if (display_caps & MSM_DISPLAY_CAP_CMD_MODE) {
- enc = sde_encoder_phys_cmd_init(sde_kms, intf_idx, pp_idx,
- ctl_idx, split_role, &sde_enc->base,
- parent_ops);
+ enc = sde_encoder_phys_cmd_init(params);
if (IS_ERR_OR_NULL(enc)) {
DRM_ERROR("Failed to initialize phys cmd enc: %ld\n",
@@ -628,32 +617,20 @@
return 0;
}
-static int sde_encoder_virt_add_phys_enc_wb(
- struct sde_encoder_virt *sde_enc,
- struct sde_kms *sde_kms,
- enum sde_wb wb_idx,
- enum sde_ctl ctl_idx,
- enum sde_cdm cdm_idx,
- enum sde_enc_split_role split_role)
+static int sde_encoder_virt_add_phys_enc_wb(struct sde_encoder_virt *sde_enc,
+ struct sde_enc_phys_init_params *params)
{
struct sde_encoder_phys *enc = NULL;
- struct sde_encoder_virt_ops parent_ops = {
- sde_encoder_vblank_callback,
- sde_encoder_handle_phys_enc_ready_for_kickoff
- };
DBG("");
- if (sde_enc->num_phys_encs + 1 >=
- ARRAY_SIZE(sde_enc->phys_encs)) {
+ if (sde_enc->num_phys_encs + 1 >= ARRAY_SIZE(sde_enc->phys_encs)) {
DRM_ERROR("Too many physical encoders %d, unable to add\n",
sde_enc->num_phys_encs);
return -EINVAL;
}
- enc = sde_encoder_phys_wb_init(sde_kms, wb_idx,
- ctl_idx, cdm_idx, split_role, &sde_enc->base,
- parent_ops);
+ enc = sde_encoder_phys_wb_init(params);
if (IS_ERR_OR_NULL(enc)) {
DRM_ERROR("Failed to initialize phys wb enc: %ld\n",
@@ -674,7 +651,17 @@
{
int ret = 0;
int i = 0;
- enum sde_intf_type intf_type = INTF_NONE;
+ enum sde_intf_type intf_type;
+ struct sde_encoder_virt_ops parent_ops = {
+ sde_encoder_vblank_callback,
+ sde_encoder_handle_phys_enc_ready_for_kickoff
+ };
+ struct sde_enc_phys_init_params phys_params;
+
+ memset(&phys_params, 0, sizeof(phys_params));
+ phys_params.sde_kms = sde_kms;
+ phys_params.parent = &sde_enc->base;
+ phys_params.parent_ops = parent_ops;
DBG("");
@@ -703,63 +690,63 @@
* h_tile_instance_ids[2] = {1, 0}; DSI1 = left, DSI0 = right
*/
const struct sde_hw_res_map *hw_res_map = NULL;
- enum sde_intf intf_idx = INTF_MAX;
- enum sde_pingpong pp_idx = PINGPONG_MAX;
- enum sde_wb wb_idx = WB_MAX;
- enum sde_ctl ctl_idx = CTL_MAX;
- enum sde_cdm cdm_idx = SDE_NONE;
u32 controller_id = disp_info->h_tile_instance[i];
- enum sde_enc_split_role split_role = ENC_ROLE_SOLO;
if (disp_info->num_of_h_tiles > 1) {
if (i == 0)
- split_role = ENC_ROLE_MASTER;
+ phys_params.split_role = ENC_ROLE_MASTER;
else
- split_role = ENC_ROLE_SLAVE;
+ phys_params.split_role = ENC_ROLE_SLAVE;
+ } else {
+ phys_params.split_role = ENC_ROLE_SOLO;
}
DBG("h_tile_instance %d = %d, split_role %d",
- i, controller_id, split_role);
+ i, controller_id, phys_params.split_role);
if (intf_type == INTF_WB) {
- wb_idx = sde_encoder_get_wb(sde_kms->catalog,
+ phys_params.wb_idx = sde_encoder_get_wb(
+ sde_kms->catalog,
intf_type, controller_id);
- if (wb_idx == WB_MAX) {
+ if (phys_params.wb_idx == WB_MAX) {
DRM_ERROR(
- "Error: could not get the writeback id\n");
+ "Error: could not get writeback: type %d, id %d\n",
+ intf_type, controller_id);
ret = -EINVAL;
}
- intf_idx = SDE_NONE;
} else {
- intf_idx = sde_encoder_get_intf(sde_kms->catalog,
- intf_type, controller_id);
- if (intf_idx == INTF_MAX) {
+ phys_params.intf_idx = sde_encoder_get_intf(
+ sde_kms->catalog, intf_type,
+ controller_id);
+ if (phys_params.intf_idx == INTF_MAX) {
DRM_ERROR(
- "Error: could not get the interface id\n");
+ "Error: could not get writeback: type %d, id %d\n",
+ intf_type, controller_id);
ret = -EINVAL;
}
- wb_idx = SDE_NONE;
}
- hw_res_map = sde_rm_get_res_map(sde_kms, intf_idx, wb_idx);
+ hw_res_map = sde_rm_get_res_map(sde_kms, phys_params.intf_idx,
+ phys_params.wb_idx);
if (IS_ERR_OR_NULL(hw_res_map)) {
+ DRM_ERROR("failed to get hw_res_map: %ld\n",
+ PTR_ERR(hw_res_map));
ret = -EINVAL;
} else {
- pp_idx = hw_res_map->pp;
- ctl_idx = hw_res_map->ctl;
- cdm_idx = hw_res_map->cdm;
+ phys_params.pp_idx = hw_res_map->pp;
+ phys_params.ctl_idx = hw_res_map->ctl;
+ phys_params.cdm_idx = hw_res_map->cdm;
}
if (!ret) {
if (intf_type == INTF_WB)
- ret = sde_encoder_virt_add_phys_enc_wb(
- sde_enc, sde_kms, wb_idx,
- ctl_idx, cdm_idx, split_role);
+ ret = sde_encoder_virt_add_phys_enc_wb(sde_enc,
+ &phys_params);
else
ret = sde_encoder_virt_add_phys_encs(
disp_info->capabilities,
- sde_enc, sde_kms, intf_idx,
- pp_idx, ctl_idx, split_role);
+ sde_enc,
+ &phys_params);
if (ret)
DRM_ERROR("Failed to add phys encs\n");
}
diff --git a/drivers/gpu/drm/msm/sde/sde_encoder_phys.h b/drivers/gpu/drm/msm/sde/sde_encoder_phys.h
index 45114d4..e478b62 100644
--- a/drivers/gpu/drm/msm/sde/sde_encoder_phys.h
+++ b/drivers/gpu/drm/msm/sde/sde_encoder_phys.h
@@ -242,74 +242,57 @@
};
/**
- * sde_encoder_phys_vid_init - Construct a new video mode physical encoder
+ * struct sde_enc_phys_init_params - initialization parameters for phys encs
* @sde_kms: Pointer to the sde_kms top level
- * @intf_idx: Interface index this phys_enc will control
- * @ctl_idx: Control index this phys_enc requires
- * @split_role: Role to play in a split-panel configuration
* @parent: Pointer to the containing virtual encoder
* @parent_ops: Callbacks exposed by the parent to the phys_enc
+ * @split_role: Role to play in a split-panel configuration
+ * @intf_idx: Interface index this phys_enc will control
+ * @wb_idx: Writeback index this phys_enc will control
+ * @pp_idx: Pingpong index this phys_enc will control
+ * @ctl_idx: Control path index this phys_enc will use
+ * @cdm_idx: Chromadown index this phys_enc will use
+ */
+struct sde_enc_phys_init_params {
+ struct sde_kms *sde_kms;
+ struct drm_encoder *parent;
+ struct sde_encoder_virt_ops parent_ops;
+ enum sde_enc_split_role split_role;
+ enum sde_intf intf_idx;
+ enum sde_wb wb_idx;
+ enum sde_pingpong pp_idx;
+ enum sde_ctl ctl_idx;
+ enum sde_cdm cdm_idx;
+};
+
+/**
+ * sde_encoder_phys_vid_init - Construct a new video mode physical encoder
+ * @p: Pointer to init params structure
* Return: Error code or newly allocated encoder
*/
struct sde_encoder_phys *sde_encoder_phys_vid_init(
- struct sde_kms *sde_kms,
- enum sde_intf intf_idx,
- enum sde_ctl ctl_idx,
- enum sde_enc_split_role split_role,
- struct drm_encoder *parent,
- struct sde_encoder_virt_ops parent_ops);
+ struct sde_enc_phys_init_params *p);
/**
* sde_encoder_phys_cmd_init - Construct a new command mode physical encoder
- * @sde_kms: Pointer to the sde_kms top level
- * @intf_idx: Interface index this phys_enc will control
- * @pp_idx: PingPong index this phys_enc will control
- * @ctl_idx: Control index this phys_enc requires
- * @split_role: Role to play in a split-panel configuration
- * @parent: Pointer to the containing virtual encoder
- * @parent_ops: Callbacks exposed by the parent to the phys_enc
+ * @p: Pointer to init params structure
* Return: Error code or newly allocated encoder
*/
struct sde_encoder_phys *sde_encoder_phys_cmd_init(
- struct sde_kms *sde_kms,
- enum sde_intf intf_idx,
- enum sde_pingpong pp_idx,
- enum sde_ctl ctl_idx,
- enum sde_enc_split_role split_role,
- struct drm_encoder *parent,
- struct sde_encoder_virt_ops parent_ops);
+ struct sde_enc_phys_init_params *p);
/**
* sde_encoder_phys_wb_init - Construct a new writeback physical encoder
- * @sde_kms: Pointer to the sde_kms top level
- * @wb_idx: Writeback index this phys_enc will control
- * @ctl_idx: Control index this phys_enc requires
- * @cdm_idx: Chromadown index this phys_enc requires
- * @split_role: Role to play in a split-panel configuration
- * @parent: Pointer to the containing virtual encoder
- * @parent_ops: Callbacks exposed by the parent to the phys_enc
- *
+ * @p: Pointer to init params structure
* Return: Error code or newly allocated encoder
*/
#ifdef CONFIG_DRM_SDE_WB
struct sde_encoder_phys *sde_encoder_phys_wb_init(
- struct sde_kms *sde_kms,
- enum sde_wb wb_idx,
- enum sde_ctl ctl_idx,
- enum sde_cdm cdm_idx,
- enum sde_enc_split_role split_role,
- struct drm_encoder *parent,
- struct sde_encoder_virt_ops parent_ops);
+ struct sde_enc_phys_init_params *p);
#else
static inline
struct sde_encoder_phys *sde_encoder_phys_wb_init(
- struct sde_kms *sde_kms,
- enum sde_wb wb_idx,
- enum sde_ctl ctl_idx,
- enum sde_cdm cdm_idx,
- enum sde_enc_split_role split_role,
- struct drm_encoder *parent,
- struct sde_encoder_virt_ops parent_ops)
+ struct sde_enc_phys_init_params *p)
{
return NULL;
}
diff --git a/drivers/gpu/drm/msm/sde/sde_encoder_phys_cmd.c b/drivers/gpu/drm/msm/sde/sde_encoder_phys_cmd.c
index a5c8f73..056ea83 100644
--- a/drivers/gpu/drm/msm/sde/sde_encoder_phys_cmd.c
+++ b/drivers/gpu/drm/msm/sde/sde_encoder_phys_cmd.c
@@ -439,19 +439,13 @@
}
struct sde_encoder_phys *sde_encoder_phys_cmd_init(
- struct sde_kms *sde_kms,
- enum sde_intf intf_idx,
- enum sde_pingpong pp_idx,
- enum sde_ctl ctl_idx,
- enum sde_enc_split_role split_role,
- struct drm_encoder *parent,
- struct sde_encoder_virt_ops parent_ops)
+ struct sde_enc_phys_init_params *p)
{
struct sde_encoder_phys *phys_enc = NULL;
struct sde_encoder_phys_cmd *cmd_enc = NULL;
int ret = 0;
- DBG("intf %d, pp %d", intf_idx, pp_idx);
+ DBG("intf %d, pp %d", p->intf_idx, p->pp_idx);
cmd_enc = kzalloc(sizeof(*cmd_enc), GFP_KERNEL);
if (!cmd_enc) {
@@ -460,8 +454,8 @@
}
phys_enc = &cmd_enc->base;
- phys_enc->hw_mdptop = sde_hw_mdptop_init(MDP_TOP, sde_kms->mmio,
- sde_kms->catalog);
+ phys_enc->hw_mdptop = sde_hw_mdptop_init(MDP_TOP, p->sde_kms->mmio,
+ p->sde_kms->catalog);
if (IS_ERR_OR_NULL(phys_enc->hw_mdptop)) {
ret = PTR_ERR(phys_enc->hw_mdptop);
phys_enc->hw_mdptop = NULL;
@@ -469,11 +463,11 @@
goto fail_mdptop;
}
- cmd_enc->intf_idx = intf_idx;
+ cmd_enc->intf_idx = p->intf_idx;
- phys_enc->hw_ctl = sde_rm_acquire_ctl_path(sde_kms, ctl_idx);
+ phys_enc->hw_ctl = sde_rm_acquire_ctl_path(p->sde_kms, p->ctl_idx);
if (phys_enc->hw_ctl == ERR_PTR(-ENODEV))
- phys_enc->hw_ctl = sde_rm_get_ctl_path(sde_kms, ctl_idx);
+ phys_enc->hw_ctl = sde_rm_get_ctl_path(p->sde_kms, p->ctl_idx);
if (IS_ERR_OR_NULL(phys_enc->hw_ctl)) {
ret = PTR_ERR(phys_enc->hw_ctl);
@@ -482,8 +476,8 @@
goto fail_ctl;
}
- cmd_enc->hw_pp = sde_hw_pingpong_init(pp_idx, sde_kms->mmio,
- sde_kms->catalog);
+ cmd_enc->hw_pp = sde_hw_pingpong_init(p->pp_idx, p->sde_kms->mmio,
+ p->sde_kms->catalog);
if (IS_ERR_OR_NULL(cmd_enc->hw_pp)) {
ret = PTR_ERR(cmd_enc->hw_pp);
cmd_enc->hw_pp = NULL;
@@ -492,10 +486,10 @@
}
sde_encoder_phys_cmd_init_ops(&phys_enc->ops);
- phys_enc->parent = parent;
- phys_enc->parent_ops = parent_ops;
- phys_enc->sde_kms = sde_kms;
- phys_enc->split_role = split_role;
+ phys_enc->parent = p->parent;
+ phys_enc->parent_ops = p->parent_ops;
+ phys_enc->sde_kms = p->sde_kms;
+ phys_enc->split_role = p->split_role;
spin_lock_init(&phys_enc->spin_lock);
phys_enc->mode_3d = BLEND_3D_NONE;
cmd_enc->stream_sel = 0;
diff --git a/drivers/gpu/drm/msm/sde/sde_encoder_phys_vid.c b/drivers/gpu/drm/msm/sde/sde_encoder_phys_vid.c
index 48738bd..975d7a4 100644
--- a/drivers/gpu/drm/msm/sde/sde_encoder_phys_vid.c
+++ b/drivers/gpu/drm/msm/sde/sde_encoder_phys_vid.c
@@ -602,18 +602,13 @@
}
struct sde_encoder_phys *sde_encoder_phys_vid_init(
- struct sde_kms *sde_kms,
- enum sde_intf intf_idx,
- enum sde_ctl ctl_idx,
- enum sde_enc_split_role split_role,
- struct drm_encoder *parent,
- struct sde_encoder_virt_ops parent_ops)
+ struct sde_enc_phys_init_params *p)
{
struct sde_encoder_phys *phys_enc = NULL;
struct sde_encoder_phys_vid *vid_enc = NULL;
int ret = 0;
- DBG("intf %d", intf_idx);
+ DBG("intf %d", p->intf_idx);
vid_enc = kzalloc(sizeof(*vid_enc), GFP_KERNEL);
if (!vid_enc) {
@@ -625,8 +620,8 @@
phys_enc = &vid_enc->base;
- phys_enc->hw_mdptop = sde_hw_mdptop_init(MDP_TOP, sde_kms->mmio,
- sde_kms->catalog);
+ phys_enc->hw_mdptop = sde_hw_mdptop_init(MDP_TOP, p->sde_kms->mmio,
+ p->sde_kms->catalog);
if (IS_ERR_OR_NULL(phys_enc->hw_mdptop)) {
ret = PTR_ERR(phys_enc->hw_mdptop);
phys_enc->hw_mdptop = NULL;
@@ -634,8 +629,8 @@
goto fail;
}
- vid_enc->hw_intf =
- sde_hw_intf_init(intf_idx, sde_kms->mmio, sde_kms->catalog);
+ vid_enc->hw_intf = sde_hw_intf_init(p->intf_idx, p->sde_kms->mmio,
+ p->sde_kms->catalog);
if (IS_ERR_OR_NULL(vid_enc->hw_intf)) {
ret = PTR_ERR(vid_enc->hw_intf);
vid_enc->hw_intf = NULL;
@@ -648,9 +643,9 @@
* will both try to get it, depending on which is first need to call
* acquire (initial), and other one needs to call get (add ref count)
*/
- phys_enc->hw_ctl = sde_rm_acquire_ctl_path(sde_kms, ctl_idx);
+ phys_enc->hw_ctl = sde_rm_acquire_ctl_path(p->sde_kms, p->ctl_idx);
if (phys_enc->hw_ctl == ERR_PTR(-ENODEV))
- phys_enc->hw_ctl = sde_rm_get_ctl_path(sde_kms, ctl_idx);
+ phys_enc->hw_ctl = sde_rm_get_ctl_path(p->sde_kms, p->ctl_idx);
if (IS_ERR_OR_NULL(phys_enc->hw_ctl)) {
ret = PTR_ERR(phys_enc->hw_ctl);
@@ -660,10 +655,10 @@
}
sde_encoder_phys_vid_init_ops(&phys_enc->ops);
- phys_enc->parent = parent;
- phys_enc->parent_ops = parent_ops;
- phys_enc->sde_kms = sde_kms;
- phys_enc->split_role = split_role;
+ phys_enc->parent = p->parent;
+ phys_enc->parent_ops = p->parent_ops;
+ phys_enc->sde_kms = p->sde_kms;
+ phys_enc->split_role = p->split_role;
spin_lock_init(&phys_enc->spin_lock);
init_completion(&vid_enc->vblank_completion);
diff --git a/drivers/gpu/drm/msm/sde/sde_encoder_phys_wb.c b/drivers/gpu/drm/msm/sde/sde_encoder_phys_wb.c
index 1f09470..cd696b0 100644
--- a/drivers/gpu/drm/msm/sde/sde_encoder_phys_wb.c
+++ b/drivers/gpu/drm/msm/sde/sde_encoder_phys_wb.c
@@ -886,22 +886,10 @@
/**
* sde_encoder_phys_wb_init - initialize writeback encoder
- * @sde_kms: Pointer to SDE KMS object
- * @wb_idx: Writeback index
- * @ctl_idx: Control index
- * @cdm_idx: Chroma down index
- * @split_role: Master/slave mode
- * @parent: Pointer to virtual encoder
- * @parent_ops: Pointer to virtual encoder operations
+ * @init: Pointer to init info structure with initialization params
*/
struct sde_encoder_phys *sde_encoder_phys_wb_init(
- struct sde_kms *sde_kms,
- enum sde_wb wb_idx,
- enum sde_ctl ctl_idx,
- enum sde_cdm cdm_idx,
- enum sde_enc_split_role split_role,
- struct drm_encoder *parent,
- struct sde_encoder_virt_ops parent_ops)
+ struct sde_enc_phys_init_params *p)
{
struct sde_encoder_phys *phys_enc;
struct sde_encoder_phys_wb *wb_enc;
@@ -921,19 +909,20 @@
phys_enc = &wb_enc->base;
- if (sde_kms->vbif[VBIF_NRT]) {
+ if (p->sde_kms->vbif[VBIF_NRT]) {
wb_enc->mmu_id[SDE_IOMMU_DOMAIN_UNSECURE] =
- sde_kms->mmu_id[MSM_SMMU_DOMAIN_NRT_UNSECURE];
+ p->sde_kms->mmu_id[MSM_SMMU_DOMAIN_NRT_UNSECURE];
wb_enc->mmu_id[SDE_IOMMU_DOMAIN_SECURE] =
- sde_kms->mmu_id[MSM_SMMU_DOMAIN_NRT_SECURE];
+ p->sde_kms->mmu_id[MSM_SMMU_DOMAIN_NRT_SECURE];
} else {
wb_enc->mmu_id[SDE_IOMMU_DOMAIN_UNSECURE] =
- sde_kms->mmu_id[MSM_SMMU_DOMAIN_UNSECURE];
+ p->sde_kms->mmu_id[MSM_SMMU_DOMAIN_UNSECURE];
wb_enc->mmu_id[SDE_IOMMU_DOMAIN_SECURE] =
- sde_kms->mmu_id[MSM_SMMU_DOMAIN_SECURE];
+ p->sde_kms->mmu_id[MSM_SMMU_DOMAIN_SECURE];
}
- hw_mdp = sde_hw_mdptop_init(MDP_TOP, sde_kms->mmio, sde_kms->catalog);
+ hw_mdp = sde_hw_mdptop_init(MDP_TOP, p->sde_kms->mmio,
+ p->sde_kms->catalog);
if (IS_ERR_OR_NULL(hw_mdp)) {
ret = PTR_ERR(hw_mdp);
SDE_ERROR("failed to init hw_top: %d\n", ret);
@@ -941,15 +930,15 @@
}
phys_enc->hw_mdptop = hw_mdp;
- if (wb_idx != SDE_NONE) {
+ if (p->wb_idx != SDE_NONE) {
struct sde_hw_wb *hw_wb;
- hw_wb = sde_hw_wb_init(wb_idx, sde_kms->mmio,
- sde_kms->catalog, phys_enc->hw_mdptop);
+ hw_wb = sde_hw_wb_init(p->wb_idx, p->sde_kms->mmio,
+ p->sde_kms->catalog, phys_enc->hw_mdptop);
if (IS_ERR_OR_NULL(hw_wb)) {
ret = PTR_ERR(hw_wb);
SDE_ERROR("failed to init hw_wb%d: %d\n",
- wb_idx - WB_0, ret);
+ p->wb_idx - WB_0, ret);
goto fail_wb_init;
}
wb_enc->hw_wb = hw_wb;
@@ -959,30 +948,30 @@
goto fail_wb_check;
}
- if (cdm_idx != SDE_NONE) {
+ if (p->cdm_idx != SDE_NONE) {
struct sde_hw_cdm *hw_cdm;
- SDE_DEBUG("Acquiring CDM %d\n", cdm_idx - CDM_0);
- hw_cdm = sde_rm_acquire_cdm_path(sde_kms, cdm_idx,
+ SDE_DEBUG("Acquiring CDM %d\n", p->cdm_idx - CDM_0);
+ hw_cdm = sde_rm_acquire_cdm_path(p->sde_kms, p->cdm_idx,
phys_enc->hw_mdptop);
if (IS_ERR_OR_NULL(hw_cdm)) {
ret = PTR_ERR(hw_cdm);
SDE_ERROR("failed to init hw_cdm%d: %d\n",
- cdm_idx - CDM_0, ret);
+ p->cdm_idx - CDM_0, ret);
goto fail_cdm_init;
}
phys_enc->hw_cdm = hw_cdm;
}
- if (ctl_idx != SDE_NONE) {
+ if (p->ctl_idx != SDE_NONE) {
struct sde_hw_ctl *hw_ctl;
- SDE_DEBUG("Acquiring CTL %d\n", ctl_idx - CTL_0);
- hw_ctl = sde_rm_acquire_ctl_path(sde_kms, ctl_idx);
+ SDE_DEBUG("Acquiring CTL %d\n", p->ctl_idx - CTL_0);
+ hw_ctl = sde_rm_acquire_ctl_path(p->sde_kms, p->ctl_idx);
if (IS_ERR_OR_NULL(hw_ctl)) {
ret = PTR_ERR(hw_ctl);
SDE_ERROR("failed to init hw_ctl%d: %d\n",
- ctl_idx - CTL_0, ret);
+ p->ctl_idx - CTL_0, ret);
goto fail_ctl_init;
}
phys_enc->hw_ctl = hw_ctl;
@@ -993,13 +982,13 @@
}
sde_encoder_phys_wb_init_ops(&phys_enc->ops);
- phys_enc->parent = parent;
- phys_enc->parent_ops = parent_ops;
- phys_enc->sde_kms = sde_kms;
- phys_enc->split_role = split_role;
+ phys_enc->parent = p->parent;
+ phys_enc->parent_ops = p->parent_ops;
+ phys_enc->sde_kms = p->sde_kms;
+ phys_enc->split_role = p->split_role;
spin_lock_init(&phys_enc->spin_lock);
- ret = sde_encoder_phys_wb_init_debugfs(phys_enc, sde_kms);
+ ret = sde_encoder_phys_wb_init_debugfs(phys_enc, p->sde_kms);
if (ret) {
SDE_ERROR("failed to init debugfs %d\n", ret);
goto fail_debugfs_init;
@@ -1011,10 +1000,10 @@
return phys_enc;
fail_debugfs_init:
- sde_rm_release_ctl_path(sde_kms, ctl_idx);
+ sde_rm_release_ctl_path(p->sde_kms, p->ctl_idx);
fail_ctl_init:
fail_ctl_check:
- sde_rm_release_cdm_path(sde_kms, cdm_idx);
+ sde_rm_release_cdm_path(p->sde_kms, p->cdm_idx);
fail_cdm_init:
sde_hw_wb_destroy(wb_enc->hw_wb);
fail_wb_init: