18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Driver for the Conexant CX25821 PCIe bridge 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2009 Conexant Systems Inc. 68c2ecf20Sopenharmony_ci * Authors <shu.lin@conexant.com>, <hiep.huynh@conexant.com> 78c2ecf20Sopenharmony_ci * Based on Steven Toth <stoth@linuxtv.org> cx23885 driver 88c2ecf20Sopenharmony_ci */ 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#ifndef CX25821_VIDEO_H_ 118c2ecf20Sopenharmony_ci#define CX25821_VIDEO_H_ 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci#include <linux/init.h> 148c2ecf20Sopenharmony_ci#include <linux/list.h> 158c2ecf20Sopenharmony_ci#include <linux/module.h> 168c2ecf20Sopenharmony_ci#include <linux/moduleparam.h> 178c2ecf20Sopenharmony_ci#include <linux/kmod.h> 188c2ecf20Sopenharmony_ci#include <linux/kernel.h> 198c2ecf20Sopenharmony_ci#include <linux/slab.h> 208c2ecf20Sopenharmony_ci#include <linux/interrupt.h> 218c2ecf20Sopenharmony_ci#include <linux/delay.h> 228c2ecf20Sopenharmony_ci#include <linux/kthread.h> 238c2ecf20Sopenharmony_ci#include <asm/div64.h> 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci#include "cx25821.h" 268c2ecf20Sopenharmony_ci#include <media/v4l2-common.h> 278c2ecf20Sopenharmony_ci#include <media/v4l2-ioctl.h> 288c2ecf20Sopenharmony_ci#include <media/v4l2-event.h> 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci#define VIDEO_DEBUG 0 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci#define dprintk(level, fmt, arg...) \ 338c2ecf20Sopenharmony_cido { \ 348c2ecf20Sopenharmony_ci if (VIDEO_DEBUG >= level) \ 358c2ecf20Sopenharmony_ci printk(KERN_DEBUG "%s/0: " fmt, dev->name, ##arg); \ 368c2ecf20Sopenharmony_ci} while (0) 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci#define FORMAT_FLAGS_PACKED 0x01 398c2ecf20Sopenharmony_ciextern void cx25821_video_wakeup(struct cx25821_dev *dev, 408c2ecf20Sopenharmony_ci struct cx25821_dmaqueue *q, u32 count); 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ciextern int cx25821_start_video_dma(struct cx25821_dev *dev, 438c2ecf20Sopenharmony_ci struct cx25821_dmaqueue *q, 448c2ecf20Sopenharmony_ci struct cx25821_buffer *buf, 458c2ecf20Sopenharmony_ci const struct sram_channel *channel); 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ciextern int cx25821_video_irq(struct cx25821_dev *dev, int chan_num, u32 status); 488c2ecf20Sopenharmony_ciextern void cx25821_video_unregister(struct cx25821_dev *dev, int chan_num); 498c2ecf20Sopenharmony_ciextern int cx25821_video_register(struct cx25821_dev *dev); 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_ci#endif 52