disp: msm: avoid msm_drv probe if sde_rsc is not probed yet

Msm_drv device node has dependency on sde_rsc device
node for power resource enable if sde_rsc device
device is enabled. This change moves the msm_drv device
to probe defer state during component addition if
sde_rsc device is not probed yet. It also removes
the master_drm device node access from sde_rsc device.

Change-Id: Ibb7457279b3376f45e82e5c9373aabd84a37ed36
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
Šī revīzija ir iekļauta:
Dhaval Patel
2020-04-22 20:29:00 -07:00
vecāks a590ad8a8a
revīzija d4566743e0
3 mainīti faili ar 29 papildinājumiem un 16 dzēšanām

Parādīt failu

@@ -928,11 +928,7 @@ int sde_rsc_client_state_update(struct sde_rsc_client *caller_client,
caller_client->crtc_id = crtc_id;
caller_client->current_state = state;
if (rsc->master_drm == NULL) {
pr_err("invalid master component binding\n");
rc = -EINVAL;
goto end;
} else if ((rsc->current_state == state) && !config) {
if ((rsc->current_state == state) && !config) {
pr_debug("no state change: %d\n", state);
goto end;
}
@@ -1636,10 +1632,6 @@ static int sde_rsc_bind(struct device *dev,
return -EINVAL;
}
mutex_lock(&rsc->client_lock);
rsc->master_drm = drm;
mutex_unlock(&rsc->client_lock);
sde_dbg_reg_register_base(SDE_RSC_DRV_DBG_NAME, rsc->drv_io.base,
rsc->drv_io.len);
sde_dbg_reg_register_base(SDE_RSC_WRAPPER_DBG_NAME,
@@ -1669,10 +1661,6 @@ static void sde_rsc_unbind(struct device *dev,
pr_err("invalid display rsc\n");
return;
}
mutex_lock(&rsc->client_lock);
rsc->master_drm = NULL;
mutex_unlock(&rsc->client_lock);
}
static const struct component_ops sde_rsc_comp_ops = {