hc
2023-11-06 e3e12f52b214121840b44c91de5b3e5af5d3eb84
kernel/drivers/video/rockchip/mpp/mpp_iommu.c
....@@ -87,7 +87,7 @@
8787 oldest = buffer;
8888 }
8989 }
90
- if (oldest && kref_read(&oldest->ref) <= 1)
90
+ if (oldest && kref_read(&oldest->ref) == 1)
9191 kref_put(&oldest->ref, mpp_dma_release_buffer);
9292 mutex_unlock(&dma->list_mutex);
9393 }
....@@ -179,7 +179,8 @@
179179 }
180180
181181 /* 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);
183184
184185 /* Check whether in dma session */
185186 buffer = mpp_dma_find_buffer_fd(dma, fd);
....@@ -233,6 +234,8 @@
233234 buffer->dma = dma;
234235
235236 kref_init(&buffer->ref);
237
+ if (!IS_ENABLED(CONFIG_DMABUF_CACHE))
238
+ kref_get(&buffer->ref);
236239
237240 mutex_lock(&dma->list_mutex);
238241 dma->buffer_count++;
....@@ -437,6 +440,8 @@
437440 info->dev = dev;
438441 info->pdev = pdev;
439442 init_rwsem(&info->rw_sem);
443
+ info->irq = platform_get_irq(pdev, 0);
444
+ info->got_irq = (info->irq < 0) ? false : true;
440445
441446 return info;
442447