11a59d1b8SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 2b285192aSMauro Carvalho Chehab /* 3b285192aSMauro Carvalho Chehab interrupt handling 4b285192aSMauro Carvalho Chehab Copyright (C) 2003-2004 Kevin Thayer <nufan_wfk at yahoo.com> 5b285192aSMauro Carvalho Chehab Copyright (C) 2004 Chris Kennedy <c@groovy.org> 6b285192aSMauro Carvalho Chehab Copyright (C) 2005-2007 Hans Verkuil <hverkuil@xs4all.nl> 7b285192aSMauro Carvalho Chehab 8b285192aSMauro Carvalho Chehab */ 9b285192aSMauro Carvalho Chehab 10b285192aSMauro Carvalho Chehab #ifndef IVTV_IRQ_H 11b285192aSMauro Carvalho Chehab #define IVTV_IRQ_H 12b285192aSMauro Carvalho Chehab 13cce8cccaSMauro Carvalho Chehab #define IVTV_IRQ_ENC_START_CAP BIT(31) 14cce8cccaSMauro Carvalho Chehab #define IVTV_IRQ_ENC_EOS BIT(30) 15cce8cccaSMauro Carvalho Chehab #define IVTV_IRQ_ENC_VBI_CAP BIT(29) 16cce8cccaSMauro Carvalho Chehab #define IVTV_IRQ_ENC_VIM_RST BIT(28) 17cce8cccaSMauro Carvalho Chehab #define IVTV_IRQ_ENC_DMA_COMPLETE BIT(27) 18cce8cccaSMauro Carvalho Chehab #define IVTV_IRQ_ENC_PIO_COMPLETE BIT(25) 19cce8cccaSMauro Carvalho Chehab #define IVTV_IRQ_DEC_AUD_MODE_CHG BIT(24) 20cce8cccaSMauro Carvalho Chehab #define IVTV_IRQ_DEC_DATA_REQ BIT(22) 21cce8cccaSMauro Carvalho Chehab #define IVTV_IRQ_DEC_DMA_COMPLETE BIT(20) 22cce8cccaSMauro Carvalho Chehab #define IVTV_IRQ_DEC_VBI_RE_INSERT BIT(19) 23cce8cccaSMauro Carvalho Chehab #define IVTV_IRQ_DMA_ERR BIT(18) 24cce8cccaSMauro Carvalho Chehab #define IVTV_IRQ_DMA_WRITE BIT(17) 25cce8cccaSMauro Carvalho Chehab #define IVTV_IRQ_DMA_READ BIT(16) 26cce8cccaSMauro Carvalho Chehab #define IVTV_IRQ_DEC_VSYNC BIT(10) 27b285192aSMauro Carvalho Chehab 28b285192aSMauro Carvalho Chehab /* IRQ Masks */ 29b285192aSMauro Carvalho Chehab #define IVTV_IRQ_MASK_INIT (IVTV_IRQ_DMA_ERR|IVTV_IRQ_ENC_DMA_COMPLETE|\ 30b285192aSMauro Carvalho Chehab IVTV_IRQ_DMA_READ|IVTV_IRQ_ENC_PIO_COMPLETE) 31b285192aSMauro Carvalho Chehab 32b285192aSMauro Carvalho Chehab #define IVTV_IRQ_MASK_CAPTURE (IVTV_IRQ_ENC_START_CAP | IVTV_IRQ_ENC_EOS) 33b285192aSMauro Carvalho Chehab #define IVTV_IRQ_MASK_DECODE (IVTV_IRQ_DEC_DATA_REQ|IVTV_IRQ_DEC_AUD_MODE_CHG) 34b285192aSMauro Carvalho Chehab 35b285192aSMauro Carvalho Chehab irqreturn_t ivtv_irq_handler(int irq, void *dev_id); 36b285192aSMauro Carvalho Chehab 37b285192aSMauro Carvalho Chehab void ivtv_irq_work_handler(struct kthread_work *work); 38b285192aSMauro Carvalho Chehab void ivtv_dma_stream_dec_prepare(struct ivtv_stream *s, u32 offset, int lock); 39162e6376SKees Cook void ivtv_unfinished_dma(struct timer_list *t); 40b285192aSMauro Carvalho Chehab 41b285192aSMauro Carvalho Chehab #endif 42