int s3cfb_extdsp_release(struct fb_info *fb, int user) { struct s3cfb_extdsp_window *win = fb->par; struct s3cfb_extdsp_global *fbdev = get_extdsp_global(0); int i; printk("[VFB] %s\n", __func__); s3cfb_extdsp_release_window(fb); mutex_lock(&fbdev->lock); atomic_dec(&win->in_use); mutex_unlock(&fbdev->lock); for (i = 0; i < CONFIG_FB_S5P_EXTDSP_NR_BUFFERS; i++) { if (fbdev->buf_list[i].dma_buf) { #if 0 dma_buf_put(fbdev->buf_list[i].dma_buf); fbdev->buf_list[i].dma_buf = NULL; fbdev->buf_list[i].dma_buf_uv = NULL; #endif printk("fbdev->buf_list[%d].dma_buf: %p\n", i, fbdev->buf_list[i].dma_buf); } } return 0; }
int s3cfb_extdsp_release(struct fb_info *fb, int user) { struct s3cfb_extdsp_window *win = fb->par; struct s3cfb_extdsp_global *fbdev = get_extdsp_global(0); s3cfb_extdsp_release_window(fb); mutex_lock(&fbdev->lock); atomic_dec(&win->in_use); mutex_unlock(&fbdev->lock); return 0; }