summaryrefslogtreecommitdiff
path: root/drivers/gpu
diff options
context:
space:
mode:
authorDhaval Patel <pdhaval@codeaurora.org>2016-10-05 18:01:06 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-10-11 16:04:10 -0700
commitefb9164320865a14ce9fdbe3a563b1aa3bb2b89f (patch)
tree0b5550bbb4fabf64d7cd84f82fd014d081cf1cd1 /drivers/gpu
parentb97a5e56c535e5dd962c3f9eceb68811469c9dc4 (diff)
drm/msm/sde: update proper error message for rm failure
Resource manager failure just prints the error message but it does not indicate cause for it. This patch prints error message for each cause to help debugging. Change-Id: I1f5ab716d09b5f29913e2679b1c8d800bc76b8a8 Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/msm/sde/sde_rm.c30
1 files changed, 22 insertions, 8 deletions
diff --git a/drivers/gpu/drm/msm/sde/sde_rm.c b/drivers/gpu/drm/msm/sde/sde_rm.c
index 37db9eec8dc9..b17ac828d110 100644
--- a/drivers/gpu/drm/msm/sde/sde_rm.c
+++ b/drivers/gpu/drm/msm/sde/sde_rm.c
@@ -342,6 +342,7 @@ int sde_rm_init(struct sde_rm *rm,
if (IS_ERR_OR_NULL(rm->hw_mdp)) {
rc = PTR_ERR(rm->hw_mdp);
rm->hw_mdp = NULL;
+ SDE_ERROR("failed: mdp hw not available\n");
goto fail;
}
@@ -356,8 +357,10 @@ int sde_rm_init(struct sde_rm *rm,
rc = _sde_rm_hw_blk_create(rm, cat, mmio, SDE_HW_BLK_LM,
cat->mixer[i].id, &cat->mixer[i]);
- if (rc)
+ if (rc) {
+ SDE_ERROR("failed: lm hw not available\n");
goto fail;
+ }
if (!rm->lm_max_width) {
rm->lm_max_width = lm->sblk->maxwidth;
@@ -375,15 +378,19 @@ int sde_rm_init(struct sde_rm *rm,
for (i = 0; i < cat->dspp_count; i++) {
rc = _sde_rm_hw_blk_create(rm, cat, mmio, SDE_HW_BLK_DSPP,
cat->dspp[i].id, &cat->dspp[i]);
- if (rc)
+ if (rc) {
+ SDE_ERROR("failed: dspp hw not available\n");
goto fail;
+ }
}
for (i = 0; i < cat->pingpong_count; i++) {
rc = _sde_rm_hw_blk_create(rm, cat, mmio, SDE_HW_BLK_PINGPONG,
cat->pingpong[i].id, &cat->pingpong[i]);
- if (rc)
+ if (rc) {
+ SDE_ERROR("failed: pp hw not available\n");
goto fail;
+ }
}
for (i = 0; i < cat->intf_count; i++) {
@@ -394,35 +401,42 @@ int sde_rm_init(struct sde_rm *rm,
rc = _sde_rm_hw_blk_create(rm, cat, mmio, SDE_HW_BLK_INTF,
cat->intf[i].id, &cat->intf[i]);
- if (rc)
+ if (rc) {
+ SDE_ERROR("failed: intf hw not available\n");
goto fail;
+ }
}
for (i = 0; i < cat->wb_count; i++) {
rc = _sde_rm_hw_blk_create(rm, cat, mmio, SDE_HW_BLK_WB,
cat->wb[i].id, &cat->wb[i]);
- if (rc)
+ if (rc) {
+ SDE_ERROR("failed: wb hw not available\n");
goto fail;
+ }
}
for (i = 0; i < cat->ctl_count; i++) {
rc = _sde_rm_hw_blk_create(rm, cat, mmio, SDE_HW_BLK_CTL,
cat->ctl[i].id, &cat->ctl[i]);
- if (rc)
+ if (rc) {
+ SDE_ERROR("failed: ctl hw not available\n");
goto fail;
+ }
}
for (i = 0; i < cat->cdm_count; i++) {
rc = _sde_rm_hw_blk_create(rm, cat, mmio, SDE_HW_BLK_CDM,
cat->cdm[i].id, &cat->cdm[i]);
- if (rc)
+ if (rc) {
+ SDE_ERROR("failed: cdm hw not available\n");
goto fail;
+ }
}
return 0;
fail:
- SDE_ERROR("failed to init sde kms resources\n");
sde_rm_destroy(rm);
return rc;