Lines Matching refs:s

27 static void cobalt_dma_stream_queue_handler(struct cobalt_stream *s)  in cobalt_dma_stream_queue_handler()  argument
29 struct cobalt *cobalt = s->cobalt; in cobalt_dma_stream_queue_handler()
30 int rx = s->video_channel; in cobalt_dma_stream_queue_handler()
32 COBALT_CVI_FREEWHEEL(s->cobalt, rx); in cobalt_dma_stream_queue_handler()
34 COBALT_CVI_VMR(s->cobalt, rx); in cobalt_dma_stream_queue_handler()
36 COBALT_CVI(s->cobalt, rx); in cobalt_dma_stream_queue_handler()
38 COBALT_CVI_CLK_LOSS(s->cobalt, rx); in cobalt_dma_stream_queue_handler()
42 spin_lock(&s->irqlock); in cobalt_dma_stream_queue_handler()
44 if (list_empty(&s->bufs)) { in cobalt_dma_stream_queue_handler()
46 spin_unlock(&s->irqlock); in cobalt_dma_stream_queue_handler()
54 cb = list_first_entry(&s->bufs, struct cobalt_buffer, list); in cobalt_dma_stream_queue_handler()
56 spin_unlock(&s->irqlock); in cobalt_dma_stream_queue_handler()
58 if (s->is_audio || s->is_output) in cobalt_dma_stream_queue_handler()
61 if (s->unstable_frame) { in cobalt_dma_stream_queue_handler()
68 if (s->enable_freewheel) in cobalt_dma_stream_queue_handler()
78 if (s->enable_freewheel) in cobalt_dma_stream_queue_handler()
84 ioread32(&vmr->vactive_area) != s->timings.bt.height || in cobalt_dma_stream_queue_handler()
85 ioread32(&vmr->hactive_area) != s->timings.bt.width) { in cobalt_dma_stream_queue_handler()
87 if (s->enable_freewheel) in cobalt_dma_stream_queue_handler()
91 if (!s->enable_cvi) { in cobalt_dma_stream_queue_handler()
92 s->enable_cvi = true; in cobalt_dma_stream_queue_handler()
98 if (s->enable_freewheel) in cobalt_dma_stream_queue_handler()
102 if (!s->enable_freewheel) { in cobalt_dma_stream_queue_handler()
104 s->enable_freewheel = true; in cobalt_dma_stream_queue_handler()
113 s->enable_freewheel = false; in cobalt_dma_stream_queue_handler()
114 s->unstable_frame = false; in cobalt_dma_stream_queue_handler()
115 s->skip_first_frames = 2; in cobalt_dma_stream_queue_handler()
128 s->unstable_frame = true; in cobalt_dma_stream_queue_handler()
129 s->enable_freewheel = false; in cobalt_dma_stream_queue_handler()
130 s->enable_cvi = false; in cobalt_dma_stream_queue_handler()
133 if (s->skip_first_frames) { in cobalt_dma_stream_queue_handler()
135 s->skip_first_frames--; in cobalt_dma_stream_queue_handler()
140 cb->vb.sequence = s->sequence++; in cobalt_dma_stream_queue_handler()
142 (skip || s->unstable_frame) ? in cobalt_dma_stream_queue_handler()
161 struct cobalt_stream *s = &cobalt->streams[i]; in cobalt_irq_handler() local
162 unsigned dma_fifo_mask = s->dma_fifo_mask; in cobalt_irq_handler()
164 if (dma_interrupt & (1 << s->dma_channel)) { in cobalt_irq_handler()
168 cobalt_dma_stream_queue_handler(s); in cobalt_irq_handler()
169 if (!s->is_audio) { in cobalt_irq_handler()
175 if (s->is_audio) in cobalt_irq_handler()
177 if (edge & s->adv_irq_mask) in cobalt_irq_handler()
178 set_bit(COBALT_STREAM_FL_ADV_IRQ, &s->flags); in cobalt_irq_handler()
179 if ((edge & mask & dma_fifo_mask) && vb2_is_streaming(&s->q)) { in cobalt_irq_handler()
218 struct cobalt_stream *s = &cobalt->streams[i]; in cobalt_irq_work_handler() local
220 if (test_and_clear_bit(COBALT_STREAM_FL_ADV_IRQ, &s->flags)) { in cobalt_irq_work_handler()
227 mask | s->adv_irq_mask); in cobalt_irq_work_handler()