drm/i915: Add debugfs dumping for bigjoiner, v3.
Dump debugfs and planar links as well, this will make it easier to debug when things go wrong. v4: * Rebase Changes since v1: - Report planar slaves as such, now that we have the plane_state switch. Changes since v2: - Rebase on top of the new plane format dumping Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> Reviewed-by: Animesh Manna <animesh.manna@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20201117194718.11462-12-manasi.d.navare@intel.com
This commit is contained in:
Родитель
9f05a7c0ad
Коммит
498fab06f6
|
@ -755,6 +755,17 @@ static void plane_rotation(char *buf, size_t bufsize, unsigned int rotation)
|
||||||
rotation);
|
rotation);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *plane_visibility(const struct intel_plane_state *plane_state)
|
||||||
|
{
|
||||||
|
if (plane_state->uapi.visible)
|
||||||
|
return "visible";
|
||||||
|
|
||||||
|
if (plane_state->planar_slave)
|
||||||
|
return "planar-slave";
|
||||||
|
|
||||||
|
return "hidden";
|
||||||
|
}
|
||||||
|
|
||||||
static void intel_plane_uapi_info(struct seq_file *m, struct intel_plane *plane)
|
static void intel_plane_uapi_info(struct seq_file *m, struct intel_plane *plane)
|
||||||
{
|
{
|
||||||
const struct intel_plane_state *plane_state =
|
const struct intel_plane_state *plane_state =
|
||||||
|
@ -773,13 +784,19 @@ static void intel_plane_uapi_info(struct seq_file *m, struct intel_plane *plane)
|
||||||
plane_rotation(rot_str, sizeof(rot_str),
|
plane_rotation(rot_str, sizeof(rot_str),
|
||||||
plane_state->uapi.rotation);
|
plane_state->uapi.rotation);
|
||||||
|
|
||||||
seq_printf(m, "\t\tuapi: [FB:%d] %s,0x%llx,%dx%d, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
|
seq_printf(m, "\t\tuapi: [FB:%d] %s,0x%llx,%dx%d, visible=%s, src=" DRM_RECT_FP_FMT ", dst=" DRM_RECT_FMT ", rotation=%s\n",
|
||||||
fb ? fb->base.id : 0, fb ? format_name.str : "n/a",
|
fb ? fb->base.id : 0, fb ? format_name.str : "n/a",
|
||||||
fb ? fb->modifier : 0,
|
fb ? fb->modifier : 0,
|
||||||
fb ? fb->width : 0, fb ? fb->height : 0,
|
fb ? fb->width : 0, fb ? fb->height : 0,
|
||||||
|
plane_visibility(plane_state),
|
||||||
DRM_RECT_FP_ARG(&src),
|
DRM_RECT_FP_ARG(&src),
|
||||||
DRM_RECT_ARG(&dst),
|
DRM_RECT_ARG(&dst),
|
||||||
rot_str);
|
rot_str);
|
||||||
|
|
||||||
|
if (plane_state->planar_linked_plane)
|
||||||
|
seq_printf(m, "\t\tplanar: Linked to [PLANE:%d:%s] as a %s\n",
|
||||||
|
plane_state->planar_linked_plane->base.base.id, plane_state->planar_linked_plane->base.name,
|
||||||
|
plane_state->planar_slave ? "slave" : "master");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void intel_plane_hw_info(struct seq_file *m, struct intel_plane *plane)
|
static void intel_plane_hw_info(struct seq_file *m, struct intel_plane *plane)
|
||||||
|
@ -875,6 +892,12 @@ static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
|
||||||
intel_scaler_info(m, crtc);
|
intel_scaler_info(m, crtc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (crtc_state->bigjoiner)
|
||||||
|
seq_printf(m, "\tLinked to [CRTC:%d:%s] as a %s\n",
|
||||||
|
crtc_state->bigjoiner_linked_crtc->base.base.id,
|
||||||
|
crtc_state->bigjoiner_linked_crtc->base.name,
|
||||||
|
crtc_state->bigjoiner_slave ? "slave" : "master");
|
||||||
|
|
||||||
for_each_intel_encoder_mask(&dev_priv->drm, encoder,
|
for_each_intel_encoder_mask(&dev_priv->drm, encoder,
|
||||||
crtc_state->uapi.encoder_mask)
|
crtc_state->uapi.encoder_mask)
|
||||||
intel_encoder_info(m, crtc, encoder);
|
intel_encoder_info(m, crtc, encoder);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче