budget.h (3184B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2 3#ifndef __BUDGET_DVB__ 4#define __BUDGET_DVB__ 5 6#include <media/dvb_frontend.h> 7#include <media/dvbdev.h> 8#include <media/demux.h> 9#include <media/dvb_demux.h> 10#include <media/dmxdev.h> 11#include <media/dvb_net.h> 12 13#include <linux/module.h> 14#include <linux/mutex.h> 15 16#include <media/drv-intf/saa7146.h> 17 18extern int budget_debug; 19 20#ifdef dprintk 21#undef dprintk 22#endif 23 24#define dprintk(level, fmt, arg...) do { \ 25 if (level & budget_debug) \ 26 printk(KERN_DEBUG KBUILD_MODNAME ": %s(): " fmt, \ 27 __func__, ##arg); \ 28} while (0) 29 30#define TS_SIZE 188 31 32struct budget_info { 33 char *name; 34 int type; 35}; 36 37/* place to store all the necessary device information */ 38struct budget { 39 40 /* devices */ 41 struct dvb_device dvb_dev; 42 struct dvb_net dvb_net; 43 44 struct saa7146_dev *dev; 45 46 struct i2c_adapter i2c_adap; 47 struct budget_info *card; 48 49 unsigned char *grabbing; 50 struct saa7146_pgtable pt; 51 52 struct tasklet_struct fidb_tasklet; 53 struct tasklet_struct vpe_tasklet; 54 55 struct dmxdev dmxdev; 56 struct dvb_demux demux; 57 58 struct dmx_frontend hw_frontend; 59 struct dmx_frontend mem_frontend; 60 61 int ci_present; 62 int video_port; 63 64 u32 buffer_width; 65 u32 buffer_height; 66 u32 buffer_size; 67 u32 buffer_warning_threshold; 68 u32 buffer_warnings; 69 unsigned long buffer_warning_time; 70 71 u32 ttbp; 72 int feeding; 73 74 spinlock_t feedlock; 75 76 spinlock_t debilock; 77 78 struct dvb_adapter dvb_adapter; 79 struct dvb_frontend *dvb_frontend; 80 int (*read_fe_status)(struct dvb_frontend *fe, enum fe_status *status); 81 int fe_synced; 82 83 void *priv; 84}; 85 86#define MAKE_BUDGET_INFO(x_var,x_name,x_type) \ 87static struct budget_info x_var ## _info = { \ 88 .name=x_name, \ 89 .type=x_type }; \ 90static struct saa7146_pci_extension_data x_var = { \ 91 .ext_priv = &x_var ## _info, \ 92 .ext = &budget_extension }; 93 94#define BUDGET_TT 0 95#define BUDGET_TT_HW_DISEQC 1 96#define BUDGET_PATCH 3 97#define BUDGET_FS_ACTIVY 4 98#define BUDGET_CIN1200S 5 99#define BUDGET_CIN1200C 6 100#define BUDGET_CIN1200T 7 101#define BUDGET_KNC1S 8 102#define BUDGET_KNC1C 9 103#define BUDGET_KNC1T 10 104#define BUDGET_KNC1SP 11 105#define BUDGET_KNC1CP 12 106#define BUDGET_KNC1TP 13 107#define BUDGET_TVSTAR 14 108#define BUDGET_CIN1200C_MK3 15 109#define BUDGET_KNC1C_MK3 16 110#define BUDGET_KNC1CP_MK3 17 111#define BUDGET_KNC1S2 18 112#define BUDGET_KNC1C_TDA10024 19 113 114#define BUDGET_VIDEO_PORTA 0 115#define BUDGET_VIDEO_PORTB 1 116 117extern int ttpci_budget_init(struct budget *budget, struct saa7146_dev *dev, 118 struct saa7146_pci_extension_data *info, 119 struct module *owner, short *adapter_nums); 120extern void ttpci_budget_init_hooks(struct budget *budget); 121extern int ttpci_budget_deinit(struct budget *budget); 122extern void ttpci_budget_irq10_handler(struct saa7146_dev *dev, u32 * isr); 123extern void ttpci_budget_set_video_port(struct saa7146_dev *dev, int video_port); 124extern int ttpci_budget_debiread(struct budget *budget, u32 config, int addr, int count, 125 int uselocks, int nobusyloop); 126extern int ttpci_budget_debiwrite(struct budget *budget, u32 config, int addr, int count, u32 value, 127 int uselocks, int nobusyloop); 128 129#endif