linux/drivers/media/pci/pt1/pt1.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * driver for Earthsoft PT1/PT2
 *
 * Copyright (C) 2009 HIRANO Takahito <[email protected]>
 *
 * based on pt1dvr - http://pt1dvr.sourceforge.jp/
 *	by Tomoaki Ishikawa <[email protected]>
 */

#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/sched/signal.h>
#include <linux/hrtimer.h>
#include <linux/delay.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include <linux/pci.h>
#include <linux/kthread.h>
#include <linux/freezer.h>
#include <linux/ratelimit.h>
#include <linux/string.h>
#include <linux/i2c.h>

#include <media/dvbdev.h>
#include <media/dvb_demux.h>
#include <media/dmxdev.h>
#include <media/dvb_net.h>
#include <media/dvb_frontend.h>

#include "tc90522.h"
#include "qm1d1b0004.h"
#include "dvb-pll.h"

#define DRIVER_NAME

#define PT1_PAGE_SHIFT
#define PT1_PAGE_SIZE
#define PT1_NR_UPACKETS
#define PT1_NR_BUFS

struct pt1_buffer_page {};

struct pt1_table_page {};

struct pt1_buffer {};

struct pt1_table {};

enum pt1_fe_clk {};

#define PT1_NR_ADAPS

struct pt1_adapter;

struct pt1 {};

struct pt1_adapter {};

pt1_tuner_config;

struct pt1_config {};

static const struct pt1_config pt1_configs[PT1_NR_ADAPS] =;

static const u8 va1j5jf8007s_20mhz_configs[][2] =;

static const u8 va1j5jf8007s_25mhz_configs[][2] =;

static const u8 va1j5jf8007t_20mhz_configs[][2] =;

static const u8 va1j5jf8007t_25mhz_configs[][2] =;

static int config_demod(struct i2c_client *cl, enum pt1_fe_clk clk)
{}

/*
 * Init registers for (each pair of) terrestrial/satellite block in demod.
 * Note that resetting terr. block also resets its peer sat. block as well.
 * This function must be called before configuring any demod block
 * (before pt1_wakeup(), fe->ops.init()).
 */
static int pt1_demod_block_init(struct pt1 *pt1)
{}

static void pt1_write_reg(struct pt1 *pt1, int reg, u32 data)
{}

static u32 pt1_read_reg(struct pt1 *pt1, int reg)
{}

static unsigned int pt1_nr_tables =;
module_param_named(nr_tables, pt1_nr_tables, uint, 0);

static void pt1_increment_table_count(struct pt1 *pt1)
{}

static void pt1_init_table_count(struct pt1 *pt1)
{}

static void pt1_register_tables(struct pt1 *pt1, u32 first_pfn)
{}

static void pt1_unregister_tables(struct pt1 *pt1)
{}

static int pt1_sync(struct pt1 *pt1)
{}

static u64 pt1_identify(struct pt1 *pt1)
{}

static int pt1_unlock(struct pt1 *pt1)
{}

static int pt1_reset_pci(struct pt1 *pt1)
{}

static int pt1_reset_ram(struct pt1 *pt1)
{}

static int pt1_do_enable_ram(struct pt1 *pt1)
{}

static int pt1_enable_ram(struct pt1 *pt1)
{}

static void pt1_disable_ram(struct pt1 *pt1)
{}

static void pt1_set_stream(struct pt1 *pt1, int index, int enabled)
{}

static void pt1_init_streams(struct pt1 *pt1)
{}

static int pt1_filter(struct pt1 *pt1, struct pt1_buffer_page *page)
{}

static int pt1_thread(void *data)
{}

static void pt1_free_page(struct pt1 *pt1, void *page, dma_addr_t addr)
{}

static void *pt1_alloc_page(struct pt1 *pt1, dma_addr_t *addrp, u32 *pfnp)
{}

static void pt1_cleanup_buffer(struct pt1 *pt1, struct pt1_buffer *buf)
{}

static int
pt1_init_buffer(struct pt1 *pt1, struct pt1_buffer *buf,  u32 *pfnp)
{}

static void pt1_cleanup_table(struct pt1 *pt1, struct pt1_table *table)
{}

static int
pt1_init_table(struct pt1 *pt1, struct pt1_table *table, u32 *pfnp)
{}

static void pt1_cleanup_tables(struct pt1 *pt1)
{}

static int pt1_init_tables(struct pt1 *pt1)
{}

static int pt1_start_polling(struct pt1 *pt1)
{}

static int pt1_start_feed(struct dvb_demux_feed *feed)
{}

static void pt1_stop_polling(struct pt1 *pt1)
{}

static int pt1_stop_feed(struct dvb_demux_feed *feed)
{}

static void
pt1_update_power(struct pt1 *pt1)
{}

static int pt1_set_voltage(struct dvb_frontend *fe, enum fe_sec_voltage voltage)
{}

static int pt1_sleep(struct dvb_frontend *fe)
{}

static int pt1_wakeup(struct dvb_frontend *fe)
{}

static void pt1_free_adapter(struct pt1_adapter *adap)
{}

DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);

static struct pt1_adapter *
pt1_alloc_adapter(struct pt1 *pt1)
{}

static void pt1_cleanup_adapters(struct pt1 *pt1)
{}

static int pt1_init_adapters(struct pt1 *pt1)
{}

static void pt1_cleanup_frontend(struct pt1_adapter *adap)
{}

static int pt1_init_frontend(struct pt1_adapter *adap, struct dvb_frontend *fe)
{}

static void pt1_cleanup_frontends(struct pt1 *pt1)
{}

static int pt1_init_frontends(struct pt1 *pt1)
{}

static void pt1_i2c_emit(struct pt1 *pt1, int addr, int busy, int read_enable,
			 int clock, int data, int next_addr)
{}

static void pt1_i2c_write_bit(struct pt1 *pt1, int addr, int *addrp, int data)
{}

static void pt1_i2c_read_bit(struct pt1 *pt1, int addr, int *addrp)
{}

static void pt1_i2c_write_byte(struct pt1 *pt1, int addr, int *addrp, int data)
{}

static void pt1_i2c_read_byte(struct pt1 *pt1, int addr, int *addrp, int last)
{}

static void pt1_i2c_prepare(struct pt1 *pt1, int addr, int *addrp)
{}

static void
pt1_i2c_write_msg(struct pt1 *pt1, int addr, int *addrp, struct i2c_msg *msg)
{}

static void
pt1_i2c_read_msg(struct pt1 *pt1, int addr, int *addrp, struct i2c_msg *msg)
{}

static int pt1_i2c_end(struct pt1 *pt1, int addr)
{}

static void pt1_i2c_begin(struct pt1 *pt1, int *addrp)
{}

static int pt1_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
{}

static u32 pt1_i2c_func(struct i2c_adapter *adap)
{}

static const struct i2c_algorithm pt1_i2c_algo =;

static void pt1_i2c_wait(struct pt1 *pt1)
{}

static void pt1_i2c_init(struct pt1 *pt1)
{}

#ifdef CONFIG_PM_SLEEP

static int pt1_suspend(struct device *dev)
{}

static int pt1_resume(struct device *dev)
{}

#endif /* CONFIG_PM_SLEEP */

static void pt1_remove(struct pci_dev *pdev)
{}

static int pt1_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
{}

static const struct pci_device_id pt1_id_table[] =;
MODULE_DEVICE_TABLE(pci, pt1_id_table);

static SIMPLE_DEV_PM_OPS(pt1_pm_ops, pt1_suspend, pt1_resume);

static struct pci_driver pt1_driver =;

module_pci_driver();

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();