.. | .. |
---|
87 | 87 | oldest = buffer; |
---|
88 | 88 | } |
---|
89 | 89 | } |
---|
90 | | - if (oldest && kref_read(&oldest->ref) <= 1) |
---|
| 90 | + if (oldest && kref_read(&oldest->ref) == 1) |
---|
91 | 91 | kref_put(&oldest->ref, mpp_dma_release_buffer); |
---|
92 | 92 | mutex_unlock(&dma->list_mutex); |
---|
93 | 93 | } |
---|
.. | .. |
---|
179 | 179 | } |
---|
180 | 180 | |
---|
181 | 181 | /* remove the oldest before add buffer */ |
---|
182 | | - mpp_dma_remove_extra_buffer(dma); |
---|
| 182 | + if (!IS_ENABLED(CONFIG_DMABUF_CACHE)) |
---|
| 183 | + mpp_dma_remove_extra_buffer(dma); |
---|
183 | 184 | |
---|
184 | 185 | /* Check whether in dma session */ |
---|
185 | 186 | buffer = mpp_dma_find_buffer_fd(dma, fd); |
---|
.. | .. |
---|
233 | 234 | buffer->dma = dma; |
---|
234 | 235 | |
---|
235 | 236 | kref_init(&buffer->ref); |
---|
| 237 | + if (!IS_ENABLED(CONFIG_DMABUF_CACHE)) |
---|
| 238 | + kref_get(&buffer->ref); |
---|
236 | 239 | |
---|
237 | 240 | mutex_lock(&dma->list_mutex); |
---|
238 | 241 | dma->buffer_count++; |
---|
.. | .. |
---|
437 | 440 | info->dev = dev; |
---|
438 | 441 | info->pdev = pdev; |
---|
439 | 442 | init_rwsem(&info->rw_sem); |
---|
| 443 | + info->irq = platform_get_irq(pdev, 0); |
---|
| 444 | + info->got_irq = (info->irq < 0) ? false : true; |
---|
440 | 445 | |
---|
441 | 446 | return info; |
---|
442 | 447 | |
---|