diff options
author | G, Manjunath Kondaiah <manjugk@ti.com> | 2010-11-15 11:09:18 +0530 |
---|---|---|
committer | G, Manjunath Kondaiah <manjugk@ti.com> | 2010-11-15 11:09:18 +0530 |
commit | b0839fd6c5d964838cdce7b5faa34436dbc7ac97 (patch) | |
tree | 3f81031419c777de0be78c6bcd016783876488ea /drivers/media/video/tiler/tiler.c | |
parent | 9856fe407105936bef024d90e11d8e5ec2426263 (diff) | |
parent | d5c2de6f3d42b585038faf131720d93a8adbd4a7 (diff) |
Merge remote branch 'tiler/for-integ' into L24.11ti-2.6.35-omap4-L24.11-p3
Diffstat (limited to 'drivers/media/video/tiler/tiler.c')
-rw-r--r-- | drivers/media/video/tiler/tiler.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/media/video/tiler/tiler.c b/drivers/media/video/tiler/tiler.c index cfd54a1c0f80..1c117eb04b37 100644 --- a/drivers/media/video/tiler/tiler.c +++ b/drivers/media/video/tiler/tiler.c @@ -572,6 +572,12 @@ static void _m_unregister_buf(struct __buf_info *_b) kfree(_b); } +static int tiler_notify_event(int event, void *data) +{ + return blocking_notifier_call_chain(&tiler_device->notifier, + event, data); +} + /** * Free all info kept by a process: * @@ -590,6 +596,9 @@ static void _m_free_process_info(struct process_info *pi) struct __buf_info *_b = NULL, *_b_ = NULL; bool ai_autofreed, need2free; + if (!list_empty(&pi->bufs)) + tiler_notify_event(TILER_DEVICE_CLOSE, NULL); + /* unregister all buffers */ list_for_each_entry_safe(_b, _b_, &pi->bufs, by_pid) _m_unregister_buf(_b); @@ -1401,12 +1410,6 @@ s32 tiler_reserve(u32 n, struct tiler_buf_info *b) } EXPORT_SYMBOL(tiler_reserve); -static int tiler_notify_event(int event, void *data) -{ - return blocking_notifier_call_chain(&tiler_device->notifier, - event, data); -} - int tiler_reg_notifier(struct notifier_block *nb) { if (!nb) @@ -1483,10 +1486,8 @@ static s32 tiler_release(struct inode *ip, struct file *filp) mutex_lock(&mtx); /* free resources if last device in this process */ - if (0 == --pi->refs) { - tiler_notify_event(TILER_DEVICE_CLOSE, NULL); + if (0 == --pi->refs) _m_free_process_info(pi); - } mutex_unlock(&mtx); |