diff options
author | Eric Engestrom <eric@engestrom.ch> | 2016-08-14 20:02:38 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2016-08-15 03:25:12 -0400 |
commit | 90844f00049e9f42573fd31d7c32e8fd31d3fd07 (patch) | |
tree | 60303fd6ee2cb480548f847790090e786f5f70fd /drivers/gpu | |
parent | fc93ff608b15ae32cde3006b7af860b59cac20ec (diff) |
drm: make drm_get_format_name thread-safe
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
[danvet: Clarify that the returned pointer must be freed with
kfree().]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_atomic.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_crtc.c | 21 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_fourcc.c | 17 | ||||
-rw-r--r-- | drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_debugfs.c | 11 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_atomic_plane.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 39 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/atombios_crtc.c | 12 |
11 files changed, 88 insertions, 47 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c index c1b04e9aab57..0bf895920fbc 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | |||
@@ -2071,6 +2071,7 @@ static int dce_v10_0_crtc_do_set_base(struct drm_crtc *crtc, | |||
2071 | u32 tmp, viewport_w, viewport_h; | 2071 | u32 tmp, viewport_w, viewport_h; |
2072 | int r; | 2072 | int r; |
2073 | bool bypass_lut = false; | 2073 | bool bypass_lut = false; |
2074 | const char *format_name; | ||
2074 | 2075 | ||
2075 | /* no fb bound */ | 2076 | /* no fb bound */ |
2076 | if (!atomic && !crtc->primary->fb) { | 2077 | if (!atomic && !crtc->primary->fb) { |
@@ -2182,8 +2183,9 @@ static int dce_v10_0_crtc_do_set_base(struct drm_crtc *crtc, | |||
2182 | bypass_lut = true; | 2183 | bypass_lut = true; |
2183 | break; | 2184 | break; |
2184 | default: | 2185 | default: |
2185 | DRM_ERROR("Unsupported screen format %s\n", | 2186 | format_name = drm_get_format_name(target_fb->pixel_format); |
2186 | drm_get_format_name(target_fb->pixel_format)); | 2187 | DRM_ERROR("Unsupported screen format %s\n", format_name); |
2188 | kfree(format_name); | ||
2187 | return -EINVAL; | 2189 | return -EINVAL; |
2188 | } | 2190 | } |
2189 | 2191 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c index d4bf133908b1..1558a974ad00 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | |||
@@ -2046,6 +2046,7 @@ static int dce_v11_0_crtc_do_set_base(struct drm_crtc *crtc, | |||
2046 | u32 tmp, viewport_w, viewport_h; | 2046 | u32 tmp, viewport_w, viewport_h; |
2047 | int r; | 2047 | int r; |
2048 | bool bypass_lut = false; | 2048 | bool bypass_lut = false; |
2049 | const char *format_name; | ||
2049 | 2050 | ||
2050 | /* no fb bound */ | 2051 | /* no fb bound */ |
2051 | if (!atomic && !crtc->primary->fb) { | 2052 | if (!atomic && !crtc->primary->fb) { |
@@ -2157,8 +2158,9 @@ static int dce_v11_0_crtc_do_set_base(struct drm_crtc *crtc, | |||
2157 | bypass_lut = true; | 2158 | bypass_lut = true; |
2158 | break; | 2159 | break; |
2159 | default: | 2160 | default: |
2160 | DRM_ERROR("Unsupported screen format %s\n", | 2161 | format_name = drm_get_format_name(target_fb->pixel_format); |
2161 | drm_get_format_name(target_fb->pixel_format)); | 2162 | DRM_ERROR("Unsupported screen format %s\n", format_name); |
2163 | kfree(format_name); | ||
2162 | return -EINVAL; | 2164 | return -EINVAL; |
2163 | } | 2165 | } |
2164 | 2166 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c index 4fdfab1e9200..71a037546dae 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | |||
@@ -1952,6 +1952,7 @@ static int dce_v8_0_crtc_do_set_base(struct drm_crtc *crtc, | |||
1952 | u32 viewport_w, viewport_h; | 1952 | u32 viewport_w, viewport_h; |
1953 | int r; | 1953 | int r; |
1954 | bool bypass_lut = false; | 1954 | bool bypass_lut = false; |
1955 | const char *format_name; | ||
1955 | 1956 | ||
1956 | /* no fb bound */ | 1957 | /* no fb bound */ |
1957 | if (!atomic && !crtc->primary->fb) { | 1958 | if (!atomic && !crtc->primary->fb) { |
@@ -2056,8 +2057,9 @@ static int dce_v8_0_crtc_do_set_base(struct drm_crtc *crtc, | |||
2056 | bypass_lut = true; | 2057 | bypass_lut = true; |
2057 | break; | 2058 | break; |
2058 | default: | 2059 | default: |
2059 | DRM_ERROR("Unsupported screen format %s\n", | 2060 | format_name = drm_get_format_name(target_fb->pixel_format); |
2060 | drm_get_format_name(target_fb->pixel_format)); | 2061 | DRM_ERROR("Unsupported screen format %s\n", format_name); |
2062 | kfree(format_name); | ||
2061 | return -EINVAL; | 2063 | return -EINVAL; |
2062 | } | 2064 | } |
2063 | 2065 | ||
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c index fa3930757972..087391f08a69 100644 --- a/drivers/gpu/drm/drm_atomic.c +++ b/drivers/gpu/drm/drm_atomic.c | |||
@@ -837,8 +837,9 @@ static int drm_atomic_plane_check(struct drm_plane *plane, | |||
837 | /* Check whether this plane supports the fb pixel format. */ | 837 | /* Check whether this plane supports the fb pixel format. */ |
838 | ret = drm_plane_check_pixel_format(plane, state->fb->pixel_format); | 838 | ret = drm_plane_check_pixel_format(plane, state->fb->pixel_format); |
839 | if (ret) { | 839 | if (ret) { |
840 | DRM_DEBUG_ATOMIC("Invalid pixel format %s\n", | 840 | const char *format_name = drm_get_format_name(state->fb->pixel_format); |
841 | drm_get_format_name(state->fb->pixel_format)); | 841 | DRM_DEBUG_ATOMIC("Invalid pixel format %s\n", format_name); |
842 | kfree(format_name); | ||
842 | return ret; | 843 | return ret; |
843 | } | 844 | } |
844 | 845 | ||
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index e92bb9d3f90f..f4e3ebebe79a 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c | |||
@@ -2592,8 +2592,9 @@ static int __setplane_internal(struct drm_plane *plane, | |||
2592 | /* Check whether this plane supports the fb pixel format. */ | 2592 | /* Check whether this plane supports the fb pixel format. */ |
2593 | ret = drm_plane_check_pixel_format(plane, fb->pixel_format); | 2593 | ret = drm_plane_check_pixel_format(plane, fb->pixel_format); |
2594 | if (ret) { | 2594 | if (ret) { |
2595 | DRM_DEBUG_KMS("Invalid pixel format %s\n", | 2595 | const char *format_name = drm_get_format_name(fb->pixel_format); |
2596 | drm_get_format_name(fb->pixel_format)); | 2596 | DRM_DEBUG_KMS("Invalid pixel format %s\n", format_name); |
2597 | kfree(format_name); | ||
2597 | goto out; | 2598 | goto out; |
2598 | } | 2599 | } |
2599 | 2600 | ||
@@ -2902,8 +2903,9 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data, | |||
2902 | ret = drm_plane_check_pixel_format(crtc->primary, | 2903 | ret = drm_plane_check_pixel_format(crtc->primary, |
2903 | fb->pixel_format); | 2904 | fb->pixel_format); |
2904 | if (ret) { | 2905 | if (ret) { |
2905 | DRM_DEBUG_KMS("Invalid pixel format %s\n", | 2906 | const char *format_name = drm_get_format_name(fb->pixel_format); |
2906 | drm_get_format_name(fb->pixel_format)); | 2907 | DRM_DEBUG_KMS("Invalid pixel format %s\n", format_name); |
2908 | kfree(format_name); | ||
2907 | goto out; | 2909 | goto out; |
2908 | } | 2910 | } |
2909 | } | 2911 | } |
@@ -3279,6 +3281,7 @@ int drm_mode_addfb(struct drm_device *dev, | |||
3279 | static int format_check(const struct drm_mode_fb_cmd2 *r) | 3281 | static int format_check(const struct drm_mode_fb_cmd2 *r) |
3280 | { | 3282 | { |
3281 | uint32_t format = r->pixel_format & ~DRM_FORMAT_BIG_ENDIAN; | 3283 | uint32_t format = r->pixel_format & ~DRM_FORMAT_BIG_ENDIAN; |
3284 | const char *format_name; | ||
3282 | 3285 | ||
3283 | switch (format) { | 3286 | switch (format) { |
3284 | case DRM_FORMAT_C8: | 3287 | case DRM_FORMAT_C8: |
@@ -3343,8 +3346,9 @@ static int format_check(const struct drm_mode_fb_cmd2 *r) | |||
3343 | case DRM_FORMAT_YVU444: | 3346 | case DRM_FORMAT_YVU444: |
3344 | return 0; | 3347 | return 0; |
3345 | default: | 3348 | default: |
3346 | DRM_DEBUG_KMS("invalid pixel format %s\n", | 3349 | format_name = drm_get_format_name(r->pixel_format); |
3347 | drm_get_format_name(r->pixel_format)); | 3350 | DRM_DEBUG_KMS("invalid pixel format %s\n", format_name); |
3351 | kfree(format_name); | ||
3348 | return -EINVAL; | 3352 | return -EINVAL; |
3349 | } | 3353 | } |
3350 | } | 3354 | } |
@@ -3355,8 +3359,9 @@ static int framebuffer_check(const struct drm_mode_fb_cmd2 *r) | |||
3355 | 3359 | ||
3356 | ret = format_check(r); | 3360 | ret = format_check(r); |
3357 | if (ret) { | 3361 | if (ret) { |
3358 | DRM_DEBUG_KMS("bad framebuffer format %s\n", | 3362 | const char *format_name = drm_get_format_name(r->pixel_format); |
3359 | drm_get_format_name(r->pixel_format)); | 3363 | DRM_DEBUG_KMS("bad framebuffer format %s\n", format_name); |
3364 | kfree(format_name); | ||
3360 | return ret; | 3365 | return ret; |
3361 | } | 3366 | } |
3362 | 3367 | ||
diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c index 0645c85d5f95..d8f65c4fadf7 100644 --- a/drivers/gpu/drm/drm_fourcc.c +++ b/drivers/gpu/drm/drm_fourcc.c | |||
@@ -39,16 +39,14 @@ static char printable_char(int c) | |||
39 | * drm_get_format_name - return a string for drm fourcc format | 39 | * drm_get_format_name - return a string for drm fourcc format |
40 | * @format: format to compute name of | 40 | * @format: format to compute name of |
41 | * | 41 | * |
42 | * Note that the buffer used by this function is globally shared and owned by | 42 | * Note that the buffer returned by this function is owned by the caller |
43 | * the function itself. | 43 | * and will need to be freed using kfree(). |
44 | * | ||
45 | * FIXME: This isn't really multithreading safe. | ||
46 | */ | 44 | */ |
47 | const char *drm_get_format_name(uint32_t format) | 45 | const char *drm_get_format_name(uint32_t format) |
48 | { | 46 | { |
49 | static char buf[32]; | 47 | char *buf = kmalloc(32, GFP_KERNEL); |
50 | 48 | ||
51 | snprintf(buf, sizeof(buf), | 49 | snprintf(buf, 32, |
52 | "%c%c%c%c %s-endian (0x%08x)", | 50 | "%c%c%c%c %s-endian (0x%08x)", |
53 | printable_char(format & 0xff), | 51 | printable_char(format & 0xff), |
54 | printable_char((format >> 8) & 0xff), | 52 | printable_char((format >> 8) & 0xff), |
@@ -73,6 +71,8 @@ EXPORT_SYMBOL(drm_get_format_name); | |||
73 | void drm_fb_get_bpp_depth(uint32_t format, unsigned int *depth, | 71 | void drm_fb_get_bpp_depth(uint32_t format, unsigned int *depth, |
74 | int *bpp) | 72 | int *bpp) |
75 | { | 73 | { |
74 | const char *format_name; | ||
75 | |||
76 | switch (format) { | 76 | switch (format) { |
77 | case DRM_FORMAT_C8: | 77 | case DRM_FORMAT_C8: |
78 | case DRM_FORMAT_RGB332: | 78 | case DRM_FORMAT_RGB332: |
@@ -127,8 +127,9 @@ void drm_fb_get_bpp_depth(uint32_t format, unsigned int *depth, | |||
127 | *bpp = 32; | 127 | *bpp = 32; |
128 | break; | 128 | break; |
129 | default: | 129 | default: |
130 | DRM_DEBUG_KMS("unsupported pixel format %s\n", | 130 | format_name = drm_get_format_name(format); |
131 | drm_get_format_name(format)); | 131 | DRM_DEBUG_KMS("unsupported pixel format %s\n", format_name); |
132 | kfree(format_name); | ||
132 | *depth = 0; | 133 | *depth = 0; |
133 | *bpp = 0; | 134 | *bpp = 0; |
134 | break; | 135 | break; |
diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c index c3707d47cd89..ac7fa02b341f 100644 --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | |||
@@ -608,15 +608,17 @@ static void ade_rdma_set(void __iomem *base, struct drm_framebuffer *fb, | |||
608 | u32 ch, u32 y, u32 in_h, u32 fmt) | 608 | u32 ch, u32 y, u32 in_h, u32 fmt) |
609 | { | 609 | { |
610 | struct drm_gem_cma_object *obj = drm_fb_cma_get_gem_obj(fb, 0); | 610 | struct drm_gem_cma_object *obj = drm_fb_cma_get_gem_obj(fb, 0); |
611 | const char *format_name; | ||
611 | u32 reg_ctrl, reg_addr, reg_size, reg_stride, reg_space, reg_en; | 612 | u32 reg_ctrl, reg_addr, reg_size, reg_stride, reg_space, reg_en; |
612 | u32 stride = fb->pitches[0]; | 613 | u32 stride = fb->pitches[0]; |
613 | u32 addr = (u32)obj->paddr + y * stride; | 614 | u32 addr = (u32)obj->paddr + y * stride; |
614 | 615 | ||
615 | DRM_DEBUG_DRIVER("rdma%d: (y=%d, height=%d), stride=%d, paddr=0x%x\n", | 616 | DRM_DEBUG_DRIVER("rdma%d: (y=%d, height=%d), stride=%d, paddr=0x%x\n", |
616 | ch + 1, y, in_h, stride, (u32)obj->paddr); | 617 | ch + 1, y, in_h, stride, (u32)obj->paddr); |
618 | format_name = drm_get_format_name(fb->pixel_format); | ||
617 | DRM_DEBUG_DRIVER("addr=0x%x, fb:%dx%d, pixel_format=%d(%s)\n", | 619 | DRM_DEBUG_DRIVER("addr=0x%x, fb:%dx%d, pixel_format=%d(%s)\n", |
618 | addr, fb->width, fb->height, fmt, | 620 | addr, fb->width, fb->height, fmt, format_name); |
619 | drm_get_format_name(fb->pixel_format)); | 621 | kfree(format_name); |
620 | 622 | ||
621 | /* get reg offset */ | 623 | /* get reg offset */ |
622 | reg_ctrl = RD_CH_CTRL(ch); | 624 | reg_ctrl = RD_CH_CTRL(ch); |
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index f62285c1ed7f..120869e7622d 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c | |||
@@ -3113,6 +3113,7 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc) | |||
3113 | for_each_intel_plane_on_crtc(dev, intel_crtc, intel_plane) { | 3113 | for_each_intel_plane_on_crtc(dev, intel_crtc, intel_plane) { |
3114 | struct drm_plane_state *state; | 3114 | struct drm_plane_state *state; |
3115 | struct drm_plane *plane = &intel_plane->base; | 3115 | struct drm_plane *plane = &intel_plane->base; |
3116 | const char *format_name; | ||
3116 | 3117 | ||
3117 | if (!plane->state) { | 3118 | if (!plane->state) { |
3118 | seq_puts(m, "plane->state is NULL!\n"); | 3119 | seq_puts(m, "plane->state is NULL!\n"); |
@@ -3121,6 +3122,12 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc) | |||
3121 | 3122 | ||
3122 | state = plane->state; | 3123 | state = plane->state; |
3123 | 3124 | ||
3125 | if (state->fb) { | ||
3126 | format_name = drm_get_format_name(state->fb->pixel_format); | ||
3127 | } else { | ||
3128 | format_name = kstrdup("N/A", GFP_KERNEL); | ||
3129 | } | ||
3130 | |||
3124 | seq_printf(m, "\t--Plane id %d: type=%s, crtc_pos=%4dx%4d, crtc_size=%4dx%4d, src_pos=%d.%04ux%d.%04u, src_size=%d.%04ux%d.%04u, format=%s, rotation=%s\n", | 3131 | seq_printf(m, "\t--Plane id %d: type=%s, crtc_pos=%4dx%4d, crtc_size=%4dx%4d, src_pos=%d.%04ux%d.%04u, src_size=%d.%04ux%d.%04u, format=%s, rotation=%s\n", |
3125 | plane->base.id, | 3132 | plane->base.id, |
3126 | plane_type(intel_plane->base.type), | 3133 | plane_type(intel_plane->base.type), |
@@ -3134,8 +3141,10 @@ static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc) | |||
3134 | ((state->src_w & 0xffff) * 15625) >> 10, | 3141 | ((state->src_w & 0xffff) * 15625) >> 10, |
3135 | (state->src_h >> 16), | 3142 | (state->src_h >> 16), |
3136 | ((state->src_h & 0xffff) * 15625) >> 10, | 3143 | ((state->src_h & 0xffff) * 15625) >> 10, |
3137 | state->fb ? drm_get_format_name(state->fb->pixel_format) : "N/A", | 3144 | format_name, |
3138 | plane_rotation(state->rotation)); | 3145 | plane_rotation(state->rotation)); |
3146 | |||
3147 | kfree(format_name); | ||
3139 | } | 3148 | } |
3140 | } | 3149 | } |
3141 | 3150 | ||
diff --git a/drivers/gpu/drm/i915/intel_atomic_plane.c b/drivers/gpu/drm/i915/intel_atomic_plane.c index e06d1f5334cf..98288d87c2ce 100644 --- a/drivers/gpu/drm/i915/intel_atomic_plane.c +++ b/drivers/gpu/drm/i915/intel_atomic_plane.c | |||
@@ -143,6 +143,7 @@ static int intel_plane_atomic_check(struct drm_plane *plane, | |||
143 | crtc_state->base.enable ? crtc_state->pipe_src_h : 0; | 143 | crtc_state->base.enable ? crtc_state->pipe_src_h : 0; |
144 | 144 | ||
145 | if (state->fb && intel_rotation_90_or_270(state->rotation)) { | 145 | if (state->fb && intel_rotation_90_or_270(state->rotation)) { |
146 | const char *format_name; | ||
146 | if (!(state->fb->modifier[0] == I915_FORMAT_MOD_Y_TILED || | 147 | if (!(state->fb->modifier[0] == I915_FORMAT_MOD_Y_TILED || |
147 | state->fb->modifier[0] == I915_FORMAT_MOD_Yf_TILED)) { | 148 | state->fb->modifier[0] == I915_FORMAT_MOD_Yf_TILED)) { |
148 | DRM_DEBUG_KMS("Y/Yf tiling required for 90/270!\n"); | 149 | DRM_DEBUG_KMS("Y/Yf tiling required for 90/270!\n"); |
@@ -157,8 +158,9 @@ static int intel_plane_atomic_check(struct drm_plane *plane, | |||
157 | switch (state->fb->pixel_format) { | 158 | switch (state->fb->pixel_format) { |
158 | case DRM_FORMAT_C8: | 159 | case DRM_FORMAT_C8: |
159 | case DRM_FORMAT_RGB565: | 160 | case DRM_FORMAT_RGB565: |
160 | DRM_DEBUG_KMS("Unsupported pixel format %s for 90/270!\n", | 161 | format_name = drm_get_format_name(state->fb->pixel_format); |
161 | drm_get_format_name(state->fb->pixel_format)); | 162 | DRM_DEBUG_KMS("Unsupported pixel format %s for 90/270!\n", format_name); |
163 | kfree(format_name); | ||
162 | return -EINVAL; | 164 | return -EINVAL; |
163 | 165 | ||
164 | default: | 166 | default: |
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index c6f27ab99e8f..acc1ba36c5fa 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -12258,6 +12258,7 @@ static void intel_dump_pipe_config(struct intel_crtc *crtc, | |||
12258 | 12258 | ||
12259 | DRM_DEBUG_KMS("planes on this crtc\n"); | 12259 | DRM_DEBUG_KMS("planes on this crtc\n"); |
12260 | list_for_each_entry(plane, &dev->mode_config.plane_list, head) { | 12260 | list_for_each_entry(plane, &dev->mode_config.plane_list, head) { |
12261 | const char *format_name; | ||
12261 | intel_plane = to_intel_plane(plane); | 12262 | intel_plane = to_intel_plane(plane); |
12262 | if (intel_plane->pipe != crtc->pipe) | 12263 | if (intel_plane->pipe != crtc->pipe) |
12263 | continue; | 12264 | continue; |
@@ -12270,11 +12271,12 @@ static void intel_dump_pipe_config(struct intel_crtc *crtc, | |||
12270 | continue; | 12271 | continue; |
12271 | } | 12272 | } |
12272 | 12273 | ||
12274 | format_name = drm_get_format_name(fb->pixel_format); | ||
12275 | |||
12273 | DRM_DEBUG_KMS("[PLANE:%d:%s] enabled", | 12276 | DRM_DEBUG_KMS("[PLANE:%d:%s] enabled", |
12274 | plane->base.id, plane->name); | 12277 | plane->base.id, plane->name); |
12275 | DRM_DEBUG_KMS("\tFB:%d, fb = %ux%u format = %s", | 12278 | DRM_DEBUG_KMS("\tFB:%d, fb = %ux%u format = %s", |
12276 | fb->base.id, fb->width, fb->height, | 12279 | fb->base.id, fb->width, fb->height, format_name); |
12277 | drm_get_format_name(fb->pixel_format)); | ||
12278 | DRM_DEBUG_KMS("\tscaler:%d src %dx%d+%d+%d dst %dx%d+%d+%d\n", | 12280 | DRM_DEBUG_KMS("\tscaler:%d src %dx%d+%d+%d dst %dx%d+%d+%d\n", |
12279 | state->scaler_id, | 12281 | state->scaler_id, |
12280 | state->base.src.x1 >> 16, | 12282 | state->base.src.x1 >> 16, |
@@ -12284,6 +12286,8 @@ static void intel_dump_pipe_config(struct intel_crtc *crtc, | |||
12284 | state->base.dst.x1, state->base.dst.y1, | 12286 | state->base.dst.x1, state->base.dst.y1, |
12285 | drm_rect_width(&state->base.dst), | 12287 | drm_rect_width(&state->base.dst), |
12286 | drm_rect_height(&state->base.dst)); | 12288 | drm_rect_height(&state->base.dst)); |
12289 | |||
12290 | kfree(format_name); | ||
12287 | } | 12291 | } |
12288 | } | 12292 | } |
12289 | 12293 | ||
@@ -14911,6 +14915,7 @@ static int intel_framebuffer_init(struct drm_device *dev, | |||
14911 | unsigned int aligned_height; | 14915 | unsigned int aligned_height; |
14912 | int ret; | 14916 | int ret; |
14913 | u32 pitch_limit, stride_alignment; | 14917 | u32 pitch_limit, stride_alignment; |
14918 | const char *format_name; | ||
14914 | 14919 | ||
14915 | WARN_ON(!mutex_is_locked(&dev->struct_mutex)); | 14920 | WARN_ON(!mutex_is_locked(&dev->struct_mutex)); |
14916 | 14921 | ||
@@ -14985,16 +14990,18 @@ static int intel_framebuffer_init(struct drm_device *dev, | |||
14985 | break; | 14990 | break; |
14986 | case DRM_FORMAT_XRGB1555: | 14991 | case DRM_FORMAT_XRGB1555: |
14987 | if (INTEL_INFO(dev)->gen > 3) { | 14992 | if (INTEL_INFO(dev)->gen > 3) { |
14988 | DRM_DEBUG("unsupported pixel format: %s\n", | 14993 | format_name = drm_get_format_name(mode_cmd->pixel_format); |
14989 | drm_get_format_name(mode_cmd->pixel_format)); | 14994 | DRM_DEBUG("unsupported pixel format: %s\n", format_name); |
14995 | kfree(format_name); | ||
14990 | return -EINVAL; | 14996 | return -EINVAL; |
14991 | } | 14997 | } |
14992 | break; | 14998 | break; |
14993 | case DRM_FORMAT_ABGR8888: | 14999 | case DRM_FORMAT_ABGR8888: |
14994 | if (!IS_VALLEYVIEW(dev) && !IS_CHERRYVIEW(dev) && | 15000 | if (!IS_VALLEYVIEW(dev) && !IS_CHERRYVIEW(dev) && |
14995 | INTEL_INFO(dev)->gen < 9) { | 15001 | INTEL_INFO(dev)->gen < 9) { |
14996 | DRM_DEBUG("unsupported pixel format: %s\n", | 15002 | format_name = drm_get_format_name(mode_cmd->pixel_format); |
14997 | drm_get_format_name(mode_cmd->pixel_format)); | 15003 | DRM_DEBUG("unsupported pixel format: %s\n", format_name); |
15004 | kfree(format_name); | ||
14998 | return -EINVAL; | 15005 | return -EINVAL; |
14999 | } | 15006 | } |
15000 | break; | 15007 | break; |
@@ -15002,15 +15009,17 @@ static int intel_framebuffer_init(struct drm_device *dev, | |||
15002 | case DRM_FORMAT_XRGB2101010: | 15009 | case DRM_FORMAT_XRGB2101010: |
15003 | case DRM_FORMAT_XBGR2101010: | 15010 | case DRM_FORMAT_XBGR2101010: |
15004 | if (INTEL_INFO(dev)->gen < 4) { | 15011 | if (INTEL_INFO(dev)->gen < 4) { |
15005 | DRM_DEBUG("unsupported pixel format: %s\n", | 15012 | format_name = drm_get_format_name(mode_cmd->pixel_format); |
15006 | drm_get_format_name(mode_cmd->pixel_format)); | 15013 | DRM_DEBUG("unsupported pixel format: %s\n", format_name); |
15014 | kfree(format_name); | ||
15007 | return -EINVAL; | 15015 | return -EINVAL; |
15008 | } | 15016 | } |
15009 | break; | 15017 | break; |
15010 | case DRM_FORMAT_ABGR2101010: | 15018 | case DRM_FORMAT_ABGR2101010: |
15011 | if (!IS_VALLEYVIEW(dev) && !IS_CHERRYVIEW(dev)) { | 15019 | if (!IS_VALLEYVIEW(dev) && !IS_CHERRYVIEW(dev)) { |
15012 | DRM_DEBUG("unsupported pixel format: %s\n", | 15020 | format_name = drm_get_format_name(mode_cmd->pixel_format); |
15013 | drm_get_format_name(mode_cmd->pixel_format)); | 15021 | DRM_DEBUG("unsupported pixel format: %s\n", format_name); |
15022 | kfree(format_name); | ||
15014 | return -EINVAL; | 15023 | return -EINVAL; |
15015 | } | 15024 | } |
15016 | break; | 15025 | break; |
@@ -15019,14 +15028,16 @@ static int intel_framebuffer_init(struct drm_device *dev, | |||
15019 | case DRM_FORMAT_YVYU: | 15028 | case DRM_FORMAT_YVYU: |
15020 | case DRM_FORMAT_VYUY: | 15029 | case DRM_FORMAT_VYUY: |
15021 | if (INTEL_INFO(dev)->gen < 5) { | 15030 | if (INTEL_INFO(dev)->gen < 5) { |
15022 | DRM_DEBUG("unsupported pixel format: %s\n", | 15031 | format_name = drm_get_format_name(mode_cmd->pixel_format); |
15023 | drm_get_format_name(mode_cmd->pixel_format)); | 15032 | DRM_DEBUG("unsupported pixel format: %s\n", format_name); |
15033 | kfree(format_name); | ||
15024 | return -EINVAL; | 15034 | return -EINVAL; |
15025 | } | 15035 | } |
15026 | break; | 15036 | break; |
15027 | default: | 15037 | default: |
15028 | DRM_DEBUG("unsupported pixel format: %s\n", | 15038 | format_name = drm_get_format_name(mode_cmd->pixel_format); |
15029 | drm_get_format_name(mode_cmd->pixel_format)); | 15039 | DRM_DEBUG("unsupported pixel format: %s\n", format_name); |
15040 | kfree(format_name); | ||
15030 | return -EINVAL; | 15041 | return -EINVAL; |
15031 | } | 15042 | } |
15032 | 15043 | ||
diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c index a97abc8af657..981ca3f5842e 100644 --- a/drivers/gpu/drm/radeon/atombios_crtc.c +++ b/drivers/gpu/drm/radeon/atombios_crtc.c | |||
@@ -1154,6 +1154,7 @@ static int dce4_crtc_do_set_base(struct drm_crtc *crtc, | |||
1154 | u32 tmp, viewport_w, viewport_h; | 1154 | u32 tmp, viewport_w, viewport_h; |
1155 | int r; | 1155 | int r; |
1156 | bool bypass_lut = false; | 1156 | bool bypass_lut = false; |
1157 | const char *format_name; | ||
1157 | 1158 | ||
1158 | /* no fb bound */ | 1159 | /* no fb bound */ |
1159 | if (!atomic && !crtc->primary->fb) { | 1160 | if (!atomic && !crtc->primary->fb) { |
@@ -1257,8 +1258,9 @@ static int dce4_crtc_do_set_base(struct drm_crtc *crtc, | |||
1257 | bypass_lut = true; | 1258 | bypass_lut = true; |
1258 | break; | 1259 | break; |
1259 | default: | 1260 | default: |
1260 | DRM_ERROR("Unsupported screen format %s\n", | 1261 | format_name = drm_get_format_name(target_fb->pixel_format); |
1261 | drm_get_format_name(target_fb->pixel_format)); | 1262 | DRM_ERROR("Unsupported screen format %s\n", format_name); |
1263 | kfree(format_name); | ||
1262 | return -EINVAL; | 1264 | return -EINVAL; |
1263 | } | 1265 | } |
1264 | 1266 | ||
@@ -1469,6 +1471,7 @@ static int avivo_crtc_do_set_base(struct drm_crtc *crtc, | |||
1469 | u32 viewport_w, viewport_h; | 1471 | u32 viewport_w, viewport_h; |
1470 | int r; | 1472 | int r; |
1471 | bool bypass_lut = false; | 1473 | bool bypass_lut = false; |
1474 | const char *format_name; | ||
1472 | 1475 | ||
1473 | /* no fb bound */ | 1476 | /* no fb bound */ |
1474 | if (!atomic && !crtc->primary->fb) { | 1477 | if (!atomic && !crtc->primary->fb) { |
@@ -1558,8 +1561,9 @@ static int avivo_crtc_do_set_base(struct drm_crtc *crtc, | |||
1558 | bypass_lut = true; | 1561 | bypass_lut = true; |
1559 | break; | 1562 | break; |
1560 | default: | 1563 | default: |
1561 | DRM_ERROR("Unsupported screen format %s\n", | 1564 | format_name = drm_get_format_name(target_fb->pixel_format); |
1562 | drm_get_format_name(target_fb->pixel_format)); | 1565 | DRM_ERROR("Unsupported screen format %s\n", format_name); |
1566 | kfree(format_name); | ||
1563 | return -EINVAL; | 1567 | return -EINVAL; |
1564 | } | 1568 | } |
1565 | 1569 | ||