| .. | .. |
|---|
| 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 | |
|---|