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/drm/i915/intel_display.c | |
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/drm/i915/intel_display.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 39 |
1 files changed, 25 insertions, 14 deletions
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 | ||