Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.14 104 lines 3.3 kB view raw
1/* 2 * dvb_frontend.h 3 * 4 * Copyright (C) 2001 convergence integrated media GmbH 5 * Copyright (C) 2004 convergence GmbH 6 * 7 * Written by Ralph Metzler 8 * Overhauled by Holger Waechtler 9 * Kernel I2C stuff by Michael Hunold <hunold@convergence.de> 10 * 11 * This program is free software; you can redistribute it and/or 12 * modify it under the terms of the GNU Lesser General Public License 13 * as published by the Free Software Foundation; either version 2.1 14 * of the License, or (at your option) any later version. 15 * 16 * This program is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU General Public License for more details. 20 * 21 22 * You should have received a copy of the GNU Lesser General Public License 23 * along with this program; if not, write to the Free Software 24 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 25 * 26 */ 27 28#ifndef _DVB_FRONTEND_H_ 29#define _DVB_FRONTEND_H_ 30 31#include <linux/types.h> 32#include <linux/sched.h> 33#include <linux/ioctl.h> 34#include <linux/i2c.h> 35#include <linux/module.h> 36#include <linux/errno.h> 37#include <linux/delay.h> 38 39#include <linux/dvb/frontend.h> 40 41#include "dvbdev.h" 42 43struct dvb_frontend_tune_settings { 44 int min_delay_ms; 45 int step_size; 46 int max_drift; 47 struct dvb_frontend_parameters parameters; 48}; 49 50struct dvb_frontend; 51 52struct dvb_frontend_ops { 53 54 struct dvb_frontend_info info; 55 56 void (*release)(struct dvb_frontend* fe); 57 58 int (*init)(struct dvb_frontend* fe); 59 int (*sleep)(struct dvb_frontend* fe); 60 61 int (*set_frontend)(struct dvb_frontend* fe, struct dvb_frontend_parameters* params); 62 int (*get_frontend)(struct dvb_frontend* fe, struct dvb_frontend_parameters* params); 63 int (*get_tune_settings)(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* settings); 64 65 int (*read_status)(struct dvb_frontend* fe, fe_status_t* status); 66 int (*read_ber)(struct dvb_frontend* fe, u32* ber); 67 int (*read_signal_strength)(struct dvb_frontend* fe, u16* strength); 68 int (*read_snr)(struct dvb_frontend* fe, u16* snr); 69 int (*read_ucblocks)(struct dvb_frontend* fe, u32* ucblocks); 70 71 int (*diseqc_reset_overload)(struct dvb_frontend* fe); 72 int (*diseqc_send_master_cmd)(struct dvb_frontend* fe, struct dvb_diseqc_master_cmd* cmd); 73 int (*diseqc_recv_slave_reply)(struct dvb_frontend* fe, struct dvb_diseqc_slave_reply* reply); 74 int (*diseqc_send_burst)(struct dvb_frontend* fe, fe_sec_mini_cmd_t minicmd); 75 int (*set_tone)(struct dvb_frontend* fe, fe_sec_tone_mode_t tone); 76 int (*set_voltage)(struct dvb_frontend* fe, fe_sec_voltage_t voltage); 77 int (*enable_high_lnb_voltage)(struct dvb_frontend* fe, int arg); 78 int (*dishnetwork_send_legacy_command)(struct dvb_frontend* fe, unsigned int cmd); 79}; 80 81#define MAX_EVENT 8 82 83struct dvb_fe_events { 84 struct dvb_frontend_event events[MAX_EVENT]; 85 int eventw; 86 int eventr; 87 int overflow; 88 wait_queue_head_t wait_queue; 89 struct semaphore sem; 90}; 91 92struct dvb_frontend { 93 struct dvb_frontend_ops* ops; 94 struct dvb_adapter *dvb; 95 void* demodulator_priv; 96 void* frontend_priv; 97}; 98 99extern int dvb_register_frontend(struct dvb_adapter* dvb, 100 struct dvb_frontend* fe); 101 102extern int dvb_unregister_frontend(struct dvb_frontend* fe); 103 104#endif