aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorEric Engestrom <eric@engestrom.ch>2016-08-14 20:02:38 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2016-08-15 03:25:12 -0400
commit90844f00049e9f42573fd31d7c32e8fd31d3fd07 (patch)
tree60303fd6ee2cb480548f847790090e786f5f70fd /drivers/gpu/drm/i915/intel_display.c
parentfc93ff608b15ae32cde3006b7af860b59cac20ec (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.c39
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