linux/drivers/media/pci/zoran/zoran_device.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Zoran zr36057/zr36067 PCI controller driver, for the
 * Pinnacle/Miro DC10/DC10+/DC30/DC30+, Iomega Buz, Linux
 * Media Labs LML33/LML33R10.
 *
 * This part handles device access (PCI/I2C/codec/...)
 *
 * Copyright (C) 2000 Serguei Miridonov <[email protected]>
 */

#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/module.h>

#include <linux/interrupt.h>
#include <linux/i2c.h>
#include <linux/i2c-algo-bit.h>
#include <linux/videodev2.h>
#include <media/v4l2-common.h>
#include <linux/spinlock.h>

#include <linux/pci.h>
#include <linux/delay.h>
#include <linux/wait.h>
#include <linux/dma-mapping.h>

#include <linux/io.h>

#include "videocodec.h"
#include "zoran.h"
#include "zoran_device.h"
#include "zoran_card.h"

#define IRQ_MASK

static bool lml33dpath;		/* default = 0
				 * 1 will use digital path in capture
				 * mode instead of analog. It can be
				 * used for picture adjustments using
				 * tool like xawtv while watching image
				 * on TV monitor connected to the output.
				 * However, due to absence of 75 Ohm
				 * load on Bt819 input, there will be
				 * some image imperfections
				 */

module_param(lml33dpath, bool, 0644);
MODULE_PARM_DESC();

/*
 * initialize video front end
 */
static void zr36057_init_vfe(struct zoran *zr)
{}

/*
 * General Purpose I/O and Guest bus access
 */

/*
 * This is a bit tricky. When a board lacks a GPIO function, the corresponding
 * GPIO bit number in the card_info structure is set to 0.
 */

void GPIO(struct zoran *zr, int bit, unsigned int value)
{}

/*
 * Wait til post office is no longer busy
 */

int post_office_wait(struct zoran *zr)
{}

int post_office_write(struct zoran *zr, unsigned int guest,
		      unsigned int reg, unsigned int value)
{}

int post_office_read(struct zoran *zr, unsigned int guest, unsigned int reg)
{}

/*
 * JPEG Codec access
 */

void jpeg_codec_sleep(struct zoran *zr, int sleep)
{}

int jpeg_codec_reset(struct zoran *zr)
{}

/*
 *   Set the registers for the size we have specified. Don't bother
 *   trying to understand this without the ZR36057 manual in front of
 *   you [AC].
 */
static void zr36057_adjust_vfe(struct zoran *zr, enum zoran_codec_mode mode)
{}

/*
 * set geometry
 */

static void zr36057_set_vfe(struct zoran *zr, int video_width, int video_height,
			    const struct zoran_format *format)
{}

/* Enable/Disable uncompressed memory grabbing of the 36057 */
void zr36057_set_memgrab(struct zoran *zr, int mode)
{}

/*****************************************************************************
 *                                                                           *
 *  Set up the Buz-specific MJPEG part                                       *
 *                                                                           *
 *****************************************************************************/

static inline void set_frame(struct zoran *zr, int val)
{}

static void set_videobus_dir(struct zoran *zr, int val)
{}

static void init_jpeg_queue(struct zoran *zr)
{}

static void zr36057_set_jpg(struct zoran *zr, enum zoran_codec_mode mode)
{}

void clear_interrupt_counters(struct zoran *zr)
{}

static u32 count_reset_interrupt(struct zoran *zr)
{}

void jpeg_start(struct zoran *zr)
{}

void zr36057_enable_jpg(struct zoran *zr, enum zoran_codec_mode mode)
{}

/* when this is called the spinlock must be held */
void zoran_feed_stat_com(struct zoran *zr)
{}

/* when this is called the spinlock must be held */
static void zoran_reap_stat_com(struct zoran *zr)
{}

irqreturn_t zoran_irq(int irq, void *dev_id)
{}

void zoran_set_pci_master(struct zoran *zr, int set_master)
{}

void zoran_init_hardware(struct zoran *zr)
{}

void zr36057_restart(struct zoran *zr)
{}