On Wed, Jan 22, 2020 at 11:53 AM Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx> wrote: > > On (20/01/22 10:39), Sergey Senozhatsky wrote: > > [..] > > > > } > > > > > > > > +static void set_buffer_cache_hints(struct vb2_queue *q, > > > > + struct vb2_buffer *vb, > > > > + struct v4l2_buffer *b) > > > > +{ > > > > + vb->need_cache_sync_on_prepare = 1; > > > > + > > > > + if (q->dma_dir != DMA_TO_DEVICE) > > > > > > What should be done when dma_dir == DMA_BIDIRECTIONAL? > > > > [..] > > > We probably cannot enforce any other behavior here. Am I missing > > something? > > Never mind. I got your point. DMA_BIDIRECTIONAL by default needs sync on both prepare and finish. need_cache_sync_on_prepare is initialized to 1. Since DMA_BIDIRECTIONAL != DMA_TO_DEVICE, need_cache_sync_on_finish would also be set to 1. Is anything still missing?