diff options
author | Dave Airlie <airlied@redhat.com> | 2017-05-17 22:57:06 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2017-05-17 22:57:06 -0400 |
commit | e98c58e55f68f8785aebfab1f8c9a03d8de0afe1 (patch) | |
tree | 8357e8fda6efb0867ac39fc6b9211a579721d00a /drivers/dma-buf/sync_file.c | |
parent | 2ea659a9ef488125eb46da6eb571de5eae5c43f6 (diff) | |
parent | 9cf8f5802f39d9991158b29033c852bccfc3a4d4 (diff) |
Merge tag 'drm-misc-next-2017-05-16' of git://anongit.freedesktop.org/git/drm-misc into drm-next
UAPI Changes:
- Return -ENODEV instead of -ENXIO when creating cma fb w/o valid gem (Daniel)
- Add aspect ratio and custom scaling propertis to connector state (Maarten)
Cross-subsystem Changes:
- None
Core Changes:
- Add Laurent as bridge reviewer and Andrzej as bridge maintainer (Archit)
- Maintain new STM driver through -misc (Yannick)
- Misc doc improvements (as is tradition) (Daniel)
- Add driver-private objects to atomic state (Dhinakaran)
- Deprecate preclose hook in modern drivers (use postclose) (Daniel)
- Add hwmode to vblank struct. This fixes mode access in irq context and reduced
a bunch of boilerplate (Daniel)
Driver Changes:
- vc4: Add out-fence support to vc4 V3D rendering (Eric)
- stm: Add stm32f429 display hw and am-480272h3tmqw-t01h panel support (Yannick)
- vc4: Remove 256MB cma limit from vc4 (Eric)
- dw-hdmi: Disable audio when inactive, instead of always enabled (Romain)
- zte: Add support for VGA to the ZTE driver (Shawn)
- i915: Track DP MST bandwidth and check it in atomic_check (Dhinakaran)
- vgem: Enable gem dmabuf import iface to facilitate ion testing (Laura)
- vc4: Add support for Cygnus (new dt compat string + couple bug fixes) (Eric)
- pl111: Add driver for pl111 CLCD display controller (Eric/Tom)
- vgem: Subclass drm_device instead of standalone platform device (Chris)
Cc: Archit Taneja <architt@codeaurora.org>
Cc: Eric Anholt <eric@anholt.net>
Cc: Yannick Fertre <yannick.fertre@st.com>
Cc: Romain Perier <romain.perier@collabora.com>
Cc: Navare, Manasi D <manasi.d.navare@intel.com>
Cc: Shawn Guo <shawn.guo@linaro.org>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Laura Abbott <labbott@redhat.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Tom Cooksey <tom.cooksey@arm.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
* tag 'drm-misc-next-2017-05-16' of git://anongit.freedesktop.org/git/drm-misc: (72 commits)
drm: add missing declaration to drm_blend.h
drm/dp: Wait up all outstanding tx waiters
drm/dp: Read the tx msg state once after checking for an event
drm/prime: Forward declare struct device
drm/vblank: Lock down vblank->hwmode more
drm/vblank: drop the mode argument from drm_calc_vbltimestamp_from_scanoutpos
drm/vblank: Add FIXME comments about moving the vblank ts hooks
drm/vblank: Switch to bool in_vblank_irq in get_vblank_timestamp
drm/vblank: Switch drm_driver->get_vblank_timestamp to return a bool
drm/vgem: Convert to a struct drm_device subclass
gpu: drm: gma500: remove dead code
drm/sti: Adjust two checks for null pointers in sti_hqvdp_probe()
drm/sti: Fix typos in a comment line
drm/sti: Fix a typo in a comment line
drm/sti: Replace 17 seq_puts() calls by seq_putc()
drm/sti: Reduce function calls for sequence output at five places
drm/sti: use seq_puts to display a string
drm: Nerf the preclose callback for modern drivers
drm/exynos: Merge pre/postclose hooks
drm/tegra: switch to postclose
...
Diffstat (limited to 'drivers/dma-buf/sync_file.c')
-rw-r--r-- | drivers/dma-buf/sync_file.c | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/drivers/dma-buf/sync_file.c b/drivers/dma-buf/sync_file.c index 2321035f6204..dc89b1d484e8 100644 --- a/drivers/dma-buf/sync_file.c +++ b/drivers/dma-buf/sync_file.c | |||
@@ -41,8 +41,6 @@ static struct sync_file *sync_file_alloc(void) | |||
41 | if (IS_ERR(sync_file->file)) | 41 | if (IS_ERR(sync_file->file)) |
42 | goto err; | 42 | goto err; |
43 | 43 | ||
44 | kref_init(&sync_file->kref); | ||
45 | |||
46 | init_waitqueue_head(&sync_file->wq); | 44 | init_waitqueue_head(&sync_file->wq); |
47 | 45 | ||
48 | INIT_LIST_HEAD(&sync_file->cb.node); | 46 | INIT_LIST_HEAD(&sync_file->cb.node); |
@@ -277,22 +275,15 @@ err: | |||
277 | 275 | ||
278 | } | 276 | } |
279 | 277 | ||
280 | static void sync_file_free(struct kref *kref) | 278 | static int sync_file_release(struct inode *inode, struct file *file) |
281 | { | 279 | { |
282 | struct sync_file *sync_file = container_of(kref, struct sync_file, | 280 | struct sync_file *sync_file = file->private_data; |
283 | kref); | ||
284 | 281 | ||
285 | if (test_bit(POLL_ENABLED, &sync_file->fence->flags)) | 282 | if (test_bit(POLL_ENABLED, &sync_file->fence->flags)) |
286 | dma_fence_remove_callback(sync_file->fence, &sync_file->cb); | 283 | dma_fence_remove_callback(sync_file->fence, &sync_file->cb); |
287 | dma_fence_put(sync_file->fence); | 284 | dma_fence_put(sync_file->fence); |
288 | kfree(sync_file); | 285 | kfree(sync_file); |
289 | } | ||
290 | |||
291 | static int sync_file_release(struct inode *inode, struct file *file) | ||
292 | { | ||
293 | struct sync_file *sync_file = file->private_data; | ||
294 | 286 | ||
295 | kref_put(&sync_file->kref, sync_file_free); | ||
296 | return 0; | 287 | return 0; |
297 | } | 288 | } |
298 | 289 | ||