drm: make drm_get_format_name thread-safe
[cascardo/linux.git] / drivers / gpu / drm / hisilicon / kirin / kirin_drm_ade.c
index c3707d4..ac7fa02 100644 (file)
@@ -608,15 +608,17 @@ static void ade_rdma_set(void __iomem *base, struct drm_framebuffer *fb,
                         u32 ch, u32 y, u32 in_h, u32 fmt)
 {
        struct drm_gem_cma_object *obj = drm_fb_cma_get_gem_obj(fb, 0);
+       const char *format_name;
        u32 reg_ctrl, reg_addr, reg_size, reg_stride, reg_space, reg_en;
        u32 stride = fb->pitches[0];
        u32 addr = (u32)obj->paddr + y * stride;
 
        DRM_DEBUG_DRIVER("rdma%d: (y=%d, height=%d), stride=%d, paddr=0x%x\n",
                         ch + 1, y, in_h, stride, (u32)obj->paddr);
+       format_name = drm_get_format_name(fb->pixel_format);
        DRM_DEBUG_DRIVER("addr=0x%x, fb:%dx%d, pixel_format=%d(%s)\n",
-                        addr, fb->width, fb->height, fmt,
-                        drm_get_format_name(fb->pixel_format));
+                        addr, fb->width, fb->height, fmt, format_name);
+       kfree(format_name);
 
        /* get reg offset */
        reg_ctrl = RD_CH_CTRL(ch);