mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
drm/rockchip: Add rockchip_drm_dbg_thread_info() function
Support print thread info. Change-Id: I56111c8bb438ad354553276881d74fc7a6186340 Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
This commit is contained in:
@@ -81,8 +81,34 @@ static inline bool rockchip_drm_debug_enabled(enum rockchip_drm_debug_category c
|
||||
return unlikely(drm_debug & category);
|
||||
}
|
||||
|
||||
static void rockchip_drm_dbg_print(const struct device *dev, enum rockchip_drm_debug_category category,
|
||||
bool show_thread, struct va_format *vaf)
|
||||
{
|
||||
if (rockchip_drm_debug_enabled(category)) {
|
||||
if (dev) {
|
||||
if (show_thread)
|
||||
dev_printk(KERN_DEBUG, dev, "%s %pV\n", current->comm, vaf);
|
||||
else
|
||||
dev_printk(KERN_DEBUG, dev, "%pV\n", vaf);
|
||||
} else {
|
||||
if (show_thread)
|
||||
printk(KERN_DEBUG "%s %pV\n", current->comm, vaf);
|
||||
else
|
||||
printk(KERN_DEBUG "%pV\n", vaf);
|
||||
}
|
||||
}
|
||||
|
||||
if (category == VOP_DEBUG_VSYNC)
|
||||
trace_rockchip_drm_dbg_vsync(vaf);
|
||||
else if (category == VOP_DEBUG_IOMMU_MAP)
|
||||
trace_rockchip_drm_dbg_iommu(vaf);
|
||||
else
|
||||
trace_rockchip_drm_dbg_common(vaf);
|
||||
}
|
||||
|
||||
__printf(3, 4)
|
||||
void rockchip_drm_dbg(const struct device *dev, enum rockchip_drm_debug_category category,
|
||||
void rockchip_drm_dbg(const struct device *dev,
|
||||
enum rockchip_drm_debug_category category,
|
||||
const char *format, ...)
|
||||
{
|
||||
struct va_format vaf;
|
||||
@@ -92,19 +118,24 @@ void rockchip_drm_dbg(const struct device *dev, enum rockchip_drm_debug_category
|
||||
vaf.fmt = format;
|
||||
vaf.va = &args;
|
||||
|
||||
if (rockchip_drm_debug_enabled(category)) {
|
||||
if (dev)
|
||||
dev_printk(KERN_DEBUG, dev, "%pV\n", &vaf);
|
||||
else
|
||||
printk(KERN_DEBUG "%pV\n", &vaf);
|
||||
}
|
||||
rockchip_drm_dbg_print(dev, category, false, &vaf);
|
||||
|
||||
if (category == VOP_DEBUG_VSYNC)
|
||||
trace_rockchip_drm_dbg_vsync(&vaf);
|
||||
else if (category == VOP_DEBUG_IOMMU_MAP)
|
||||
trace_rockchip_drm_dbg_iommu(&vaf);
|
||||
else
|
||||
trace_rockchip_drm_dbg_common(&vaf);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
__printf(3, 4)
|
||||
void rockchip_drm_dbg_thread_info(const struct device *dev,
|
||||
enum rockchip_drm_debug_category category,
|
||||
const char *format, ...)
|
||||
{
|
||||
struct va_format vaf;
|
||||
va_list args;
|
||||
|
||||
va_start(args, format);
|
||||
vaf.fmt = format;
|
||||
vaf.va = &args;
|
||||
|
||||
rockchip_drm_dbg_print(dev, category, true, &vaf);
|
||||
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
@@ -649,8 +649,13 @@ bool rockchip_drm_is_rfbc(struct drm_plane *plane, u64 modifier);
|
||||
const char *rockchip_drm_modifier_to_string(uint64_t modifier);
|
||||
|
||||
__printf(3, 4)
|
||||
void rockchip_drm_dbg(const struct device *dev, enum rockchip_drm_debug_category category,
|
||||
void rockchip_drm_dbg(const struct device *dev,
|
||||
enum rockchip_drm_debug_category category,
|
||||
const char *format, ...);
|
||||
__printf(3, 4)
|
||||
void rockchip_drm_dbg_thread_info(const struct device *dev,
|
||||
enum rockchip_drm_debug_category category,
|
||||
const char *format, ...);
|
||||
|
||||
extern struct platform_driver cdn_dp_driver;
|
||||
extern struct platform_driver dw_hdmi_rockchip_pltfm_driver;
|
||||
|
||||
@@ -1993,8 +1993,8 @@ static void vop_plane_atomic_disable(struct drm_plane *plane,
|
||||
if (!old_state->crtc)
|
||||
return;
|
||||
|
||||
rockchip_drm_dbg(vop->dev, VOP_DEBUG_PLANE, "disable win%d-area%d by %s",
|
||||
win->win_id, win->area_id, current->comm);
|
||||
rockchip_drm_dbg_thread_info(vop->dev, VOP_DEBUG_PLANE, "disable win%d-area%d",
|
||||
win->win_id, win->area_id);
|
||||
|
||||
spin_lock(&vop->reg_lock);
|
||||
|
||||
@@ -2249,12 +2249,12 @@ static void vop_plane_atomic_update(struct drm_plane *plane,
|
||||
|
||||
if (rockchip_afbc(plane, fb->modifier))
|
||||
afbc_en = true;
|
||||
rockchip_drm_dbg(vop->dev, VOP_DEBUG_PLANE,
|
||||
"update win%d-area%d [%dx%d->%dx%d@(%d, %d)] zpos:%d fmt[%p4cc%s] addr[%pad] by %s",
|
||||
win->win_id, win->area_id, actual_w, actual_h,
|
||||
dsp_w, dsp_h, dest->x1, dest->y1, vop_plane_state->zpos, &fb->format->format,
|
||||
afbc_en ? "[AFBC]" : "",
|
||||
&vop_plane_state->yrgb_mst, current->comm);
|
||||
rockchip_drm_dbg_thread_info(vop->dev, VOP_DEBUG_PLANE,
|
||||
"update win%d-area%d [%dx%d->%dx%d@(%d, %d)] zpos:%d fmt[%p4cc%s] addr[%pad]",
|
||||
win->win_id, win->area_id, actual_w, actual_h,
|
||||
dsp_w, dsp_h, dest->x1, dest->y1, vop_plane_state->zpos, &fb->format->format,
|
||||
afbc_en ? "[AFBC]" : "",
|
||||
&vop_plane_state->yrgb_mst);
|
||||
/*
|
||||
* spi interface(vop_plane_state->yrgb_kvaddr, fb->pixel_format,
|
||||
* actual_w, actual_h)
|
||||
|
||||
@@ -6112,13 +6112,13 @@ static void vop2_win_atomic_update(struct vop2_win *win, struct drm_rect *src, s
|
||||
|
||||
vop2_win_enable(win);
|
||||
spin_lock(&vop2->reg_lock);
|
||||
rockchip_drm_dbg(vop2->dev, VOP_DEBUG_PLANE,
|
||||
"vp%d update %s[%dx%d@(%d, %d)->%dx%d@(%d, %d)] zpos[%d] fmt[%p4cc%s] addr[%pad] fb_size[0x%zx] by %s",
|
||||
vp->id, win->name,
|
||||
actual_w, actual_h, src->x1 >> 16, src->y1 >> 16,
|
||||
dsp_w, dsp_h, dsp_stx, dsp_sty, vpstate->zpos,
|
||||
&fb->format->format, rockchip_drm_modifier_to_string(fb->modifier),
|
||||
&vpstate->yrgb_mst, vpstate->fb_size, current->comm);
|
||||
rockchip_drm_dbg_thread_info(vop2->dev, VOP_DEBUG_PLANE,
|
||||
"vp%d update %s[%dx%d@(%d, %d)->%dx%d@(%d, %d)] zpos[%d] fmt[%p4cc%s] addr[%pad] fb_size[0x%zx]",
|
||||
vp->id, win->name,
|
||||
actual_w, actual_h, src->x1 >> 16, src->y1 >> 16,
|
||||
dsp_w, dsp_h, dsp_stx, dsp_sty, vpstate->zpos,
|
||||
&fb->format->format, rockchip_drm_modifier_to_string(fb->modifier),
|
||||
&vpstate->yrgb_mst, vpstate->fb_size);
|
||||
|
||||
if (vop2->version != VOP_VERSION_RK3568)
|
||||
rk3588_vop2_win_cfg_axi(win);
|
||||
@@ -6362,17 +6362,17 @@ static void vop2_plane_atomic_update(struct drm_plane *plane, struct drm_atomic_
|
||||
}
|
||||
|
||||
if (vcstate->splice_mode) {
|
||||
rockchip_drm_dbg(vop2->dev, VOP_DEBUG_PLANE,
|
||||
"vp%d update %s[%dx%d@(%d, %d)->%dx%d@(%d, %d)] zpos[%d] fmt[%p4cc%s] addr[%pad] fb_size[0x%zx] by %s",
|
||||
vp->id, win->name,
|
||||
drm_rect_width(&vpstate->src) >> 16,
|
||||
drm_rect_height(&vpstate->src) >> 16,
|
||||
vpstate->src.x1 >> 16, vpstate->src.y1 >> 16,
|
||||
drm_rect_width(&vpstate->dest), drm_rect_height(&vpstate->dest),
|
||||
vpstate->dest.x1, vpstate->dest.y1, vpstate->zpos,
|
||||
&fb->format->format,
|
||||
rockchip_drm_modifier_to_string(fb->modifier), &vpstate->yrgb_mst,
|
||||
vpstate->fb_size, current->comm);
|
||||
rockchip_drm_dbg_thread_info(vop2->dev, VOP_DEBUG_PLANE,
|
||||
"vp%d update %s[%dx%d@(%d, %d)->%dx%d@(%d, %d)] zpos[%d] fmt[%p4cc%s] addr[%pad] fb_size[0x%zx]",
|
||||
vp->id, win->name,
|
||||
drm_rect_width(&vpstate->src) >> 16,
|
||||
drm_rect_height(&vpstate->src) >> 16,
|
||||
vpstate->src.x1 >> 16, vpstate->src.y1 >> 16,
|
||||
drm_rect_width(&vpstate->dest), drm_rect_height(&vpstate->dest),
|
||||
vpstate->dest.x1, vpstate->dest.y1, vpstate->zpos,
|
||||
&fb->format->format,
|
||||
rockchip_drm_modifier_to_string(fb->modifier), &vpstate->yrgb_mst,
|
||||
vpstate->fb_size);
|
||||
|
||||
vop2_calc_drm_rect_for_splice(vpstate, &wsrc, &wdst, &right_wsrc, &right_wdst);
|
||||
splice_win = win->splice_win;
|
||||
|
||||
Reference in New Issue
Block a user