drm/msm/mdp5: dump smp state on errors too
If the dumpstate modparam is enabled, for debugging error irq's, also dump SMP state. Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
parent
bc5289eed4
commit
e8406b6132
@ -41,6 +41,8 @@ static void mdp5_irq_error_handler(struct mdp_irq *irq, uint32_t irqstatus)
|
|||||||
if (dumpstate && __ratelimit(&rs)) {
|
if (dumpstate && __ratelimit(&rs)) {
|
||||||
struct drm_printer p = drm_info_printer(mdp5_kms->dev->dev);
|
struct drm_printer p = drm_info_printer(mdp5_kms->dev->dev);
|
||||||
drm_state_dump(mdp5_kms->dev, &p);
|
drm_state_dump(mdp5_kms->dev, &p);
|
||||||
|
if (mdp5_kms->smp)
|
||||||
|
mdp5_smp_dump(mdp5_kms->smp, &p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -302,7 +302,8 @@ void mdp5_smp_dump(struct mdp5_smp *smp, struct drm_printer *p)
|
|||||||
drm_printf(p, "name\tinuse\tplane\n");
|
drm_printf(p, "name\tinuse\tplane\n");
|
||||||
drm_printf(p, "----\t-----\t-----\n");
|
drm_printf(p, "----\t-----\t-----\n");
|
||||||
|
|
||||||
drm_modeset_lock(&mdp5_kms->state_lock, NULL);
|
if (drm_can_sleep())
|
||||||
|
drm_modeset_lock(&mdp5_kms->state_lock, NULL);
|
||||||
|
|
||||||
/* grab these *after* we hold the state_lock */
|
/* grab these *after* we hold the state_lock */
|
||||||
hwpstate = &mdp5_kms->state->hwpipe;
|
hwpstate = &mdp5_kms->state->hwpipe;
|
||||||
@ -329,7 +330,8 @@ void mdp5_smp_dump(struct mdp5_smp *smp, struct drm_printer *p)
|
|||||||
drm_printf(p, "AVAIL:\t%d\n", smp->blk_cnt -
|
drm_printf(p, "AVAIL:\t%d\n", smp->blk_cnt -
|
||||||
bitmap_weight(state->state, smp->blk_cnt));
|
bitmap_weight(state->state, smp->blk_cnt));
|
||||||
|
|
||||||
drm_modeset_unlock(&mdp5_kms->state_lock);
|
if (drm_can_sleep())
|
||||||
|
drm_modeset_unlock(&mdp5_kms->state_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mdp5_smp_destroy(struct mdp5_smp *smp)
|
void mdp5_smp_destroy(struct mdp5_smp *smp)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user