diff options
author | Dave Airlie <airlied@redhat.com> | 2016-08-24 07:11:48 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2016-08-24 07:11:48 +1000 |
commit | d804819605b461280ca176d982ee3204721c698b (patch) | |
tree | b98d2ea943d337deb3c8d7683dc6e5b209dd2ea7 /drivers/gpu/drm/drm_fourcc.c | |
parent | fc93ff608b15ae32cde3006b7af860b59cac20ec (diff) | |
parent | 28579f37467cd1a9130a6287cf8322986e0b56f9 (diff) |
Merge tag 'topic/drm-misc-2016-08-23' of git://anongit.freedesktop.org/drm-intel into drm-next
A few bigger things:
- start of splitting drm_crtc.c into more manageable and better documneted
chunks
- DRM_DEV_* logging (Sean)
* tag 'topic/drm-misc-2016-08-23' of git://anongit.freedesktop.org/drm-intel: (46 commits)
drm/fb-helper: Make docs for fb_set_suspend wrappers consistent
drm/rockchip: Delete unnecessary assignment for the field "owner"
drm/bridge: dw-hdmi: Delete unnecessary assignment for the field "owner"
drm/rockchip: Don't continue trying to enable crtc on failure
drm/fb-helper: Add drm_fb_helper_set_suspend_unlocked()
drm/fb-helper: Fix the dummy remove_conflicting_framebuffers
drm/udl: Ensure channel is selected before using the device.
drm: Avoid calling dev_printk(.dev = NULL)
drm: avoid exposing kernel stack in compat_drm_getstats
reservation: fix small comment typo
drm: Don't implement empty prepare_fb()/cleanup_fb()
virtio-gpu: Use memdup_user() rather than duplicating its implementation
GPU-DRM-Savage: Use memdup_user() rather than duplicating
drm: Allow drivers to modify plane_state in prepare_fb/cleanup_fb
drm/rockchip: Use DRM_DEV_ERROR in vop
drm: Introduce DRM_DEV_* log messages
drm/edid: CEA mode 64 1080p100 vsync pulse width incorrect
Revert "drm/hisilicon: Don't set drm_device->platformdev"
dma-buf: fix kernel-doc warning and typos
drm: Fix kerneldoc in drm_plane_helper.c
...
Diffstat (limited to 'drivers/gpu/drm/drm_fourcc.c')
-rw-r--r-- | drivers/gpu/drm/drm_fourcc.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c index 0645c85d5f95..c81546c15c93 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) * drm_get_format_name - return a string for drm fourcc format * @format: format to compute name of * - * Note that the buffer used by this function is globally shared and owned by - * the function itself. - * - * FIXME: This isn't really multithreading safe. + * Note that the buffer returned by this function is owned by the caller + * and will need to be freed using kfree(). */ -const char *drm_get_format_name(uint32_t format) +char *drm_get_format_name(uint32_t format) { - static char buf[32]; + char *buf = kmalloc(32, GFP_KERNEL); - snprintf(buf, sizeof(buf), + snprintf(buf, 32, "%c%c%c%c %s-endian (0x%08x)", printable_char(format & 0xff), printable_char((format >> 8) & 0xff), @@ -73,6 +71,8 @@ EXPORT_SYMBOL(drm_get_format_name); void drm_fb_get_bpp_depth(uint32_t format, unsigned int *depth, int *bpp) { + char *format_name; + switch (format) { case DRM_FORMAT_C8: case DRM_FORMAT_RGB332: @@ -127,8 +127,9 @@ void drm_fb_get_bpp_depth(uint32_t format, unsigned int *depth, *bpp = 32; break; default: - DRM_DEBUG_KMS("unsupported pixel format %s\n", - drm_get_format_name(format)); + format_name = drm_get_format_name(format); + DRM_DEBUG_KMS("unsupported pixel format %s\n", format_name); + kfree(format_name); *depth = 0; *bpp = 0; break; |