162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Driver for the Conexant CX25821 PCIe bridge 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2009 Conexant Systems Inc. 662306a36Sopenharmony_ci * Authors <shu.lin@conexant.com>, <hiep.huynh@conexant.com> 762306a36Sopenharmony_ci * Based on Steven Toth <stoth@linuxtv.org> cx23885 driver 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#ifndef CX25821_VIDEO_H_ 1162306a36Sopenharmony_ci#define CX25821_VIDEO_H_ 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#include <linux/init.h> 1462306a36Sopenharmony_ci#include <linux/list.h> 1562306a36Sopenharmony_ci#include <linux/module.h> 1662306a36Sopenharmony_ci#include <linux/moduleparam.h> 1762306a36Sopenharmony_ci#include <linux/kmod.h> 1862306a36Sopenharmony_ci#include <linux/kernel.h> 1962306a36Sopenharmony_ci#include <linux/slab.h> 2062306a36Sopenharmony_ci#include <linux/interrupt.h> 2162306a36Sopenharmony_ci#include <linux/delay.h> 2262306a36Sopenharmony_ci#include <linux/kthread.h> 2362306a36Sopenharmony_ci#include <asm/div64.h> 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci#include "cx25821.h" 2662306a36Sopenharmony_ci#include <media/v4l2-common.h> 2762306a36Sopenharmony_ci#include <media/v4l2-ioctl.h> 2862306a36Sopenharmony_ci#include <media/v4l2-event.h> 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci#define VIDEO_DEBUG 0 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci#define dprintk(level, fmt, arg...) \ 3362306a36Sopenharmony_cido { \ 3462306a36Sopenharmony_ci if (VIDEO_DEBUG >= level) \ 3562306a36Sopenharmony_ci printk(KERN_DEBUG "%s/0: " fmt, dev->name, ##arg); \ 3662306a36Sopenharmony_ci} while (0) 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci#define FORMAT_FLAGS_PACKED 0x01 3962306a36Sopenharmony_ciextern int cx25821_start_video_dma(struct cx25821_dev *dev, 4062306a36Sopenharmony_ci struct cx25821_dmaqueue *q, 4162306a36Sopenharmony_ci struct cx25821_buffer *buf, 4262306a36Sopenharmony_ci const struct sram_channel *channel); 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ciextern int cx25821_video_irq(struct cx25821_dev *dev, int chan_num, u32 status); 4562306a36Sopenharmony_ciextern void cx25821_video_unregister(struct cx25821_dev *dev, int chan_num); 4662306a36Sopenharmony_ciextern int cx25821_video_register(struct cx25821_dev *dev); 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci#endif 49