1<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>struct dvb_frontend_ops</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux Device Drivers"><link rel="up" href="ch06s02.html" title="Digital TV (DVB) devices"><link rel="prev" href="API-struct-analog-demod-ops.html" title="struct analog_demod_ops"><link rel="next" href="API-struct-dtv-frontend-properties.html" title="struct dtv_frontend_properties"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">struct dvb_frontend_ops</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-struct-analog-demod-ops.html">Prev</a> </td><th width="60%" align="center">Digital TV (DVB) devices</th><td width="20%" align="right"> <a accesskey="n" href="API-struct-dtv-frontend-properties.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-struct-dvb-frontend-ops"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>struct dvb_frontend_ops — 
2     Demodulation information and callbacks for ditialt TV
3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
4struct dvb_frontend_ops {
5  struct dvb_frontend_info info;
6  u8 delsys[MAX_DELSYS];
7  void (* release) (struct dvb_frontend* fe);
8  void (* release_sec) (struct dvb_frontend* fe);
9  int (* init) (struct dvb_frontend* fe);
10  int (* sleep) (struct dvb_frontend* fe);
11  int (* write) (struct dvb_frontend* fe, const u8 buf[], int len);
12  int (* tune) (struct dvb_frontend* fe,bool re_tune,unsigned int mode_flags,unsigned int *delay,enum fe_status *status);
13  enum dvbfe_algo (* get_frontend_algo) (struct dvb_frontend *fe);
14  int (* set_frontend) (struct dvb_frontend *fe);
15  int (* get_tune_settings) (struct dvb_frontend* fe, struct dvb_frontend_tune_settings* settings);
16  int (* get_frontend) (struct dvb_frontend *fe);
17  int (* read_status) (struct dvb_frontend *fe, enum fe_status *status);
18  int (* read_ber) (struct dvb_frontend* fe, u32* ber);
19  int (* read_signal_strength) (struct dvb_frontend* fe, u16* strength);
20  int (* read_snr) (struct dvb_frontend* fe, u16* snr);
21  int (* read_ucblocks) (struct dvb_frontend* fe, u32* ucblocks);
22  int (* diseqc_reset_overload) (struct dvb_frontend* fe);
23  int (* diseqc_send_master_cmd) (struct dvb_frontend* fe, struct dvb_diseqc_master_cmd* cmd);
24  int (* diseqc_recv_slave_reply) (struct dvb_frontend* fe, struct dvb_diseqc_slave_reply* reply);
25  int (* diseqc_send_burst) (struct dvb_frontend *fe,enum fe_sec_mini_cmd minicmd);
26  int (* set_tone) (struct dvb_frontend *fe, enum fe_sec_tone_mode tone);
27  int (* set_voltage) (struct dvb_frontend *fe,enum fe_sec_voltage voltage);
28  int (* enable_high_lnb_voltage) (struct dvb_frontend* fe, long arg);
29  int (* dishnetwork_send_legacy_command) (struct dvb_frontend* fe, unsigned long cmd);
30  int (* i2c_gate_ctrl) (struct dvb_frontend* fe, int enable);
31  int (* ts_bus_ctrl) (struct dvb_frontend* fe, int acquire);
32  int (* set_lna) (struct dvb_frontend *);
33  enum dvbfe_search (* search) (struct dvb_frontend *fe);
34  struct dvb_tuner_ops tuner_ops;
35  struct analog_demod_ops analog_ops;
36  int (* set_property) (struct dvb_frontend* fe, struct dtv_property* tvp);
37  int (* get_property) (struct dvb_frontend* fe, struct dtv_property* tvp);
38};  </pre></div><div class="refsect1"><a name="id-1.8.3.16.5"></a><h2>Members</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term">info</span></dt><dd><p>
39   embedded struct dvb_tuner_info with tuner properties
40      </p></dd><dt><span class="term">delsys[MAX_DELSYS]</span></dt><dd><p>
41   Delivery systems supported by the frontend
42      </p></dd><dt><span class="term">release</span></dt><dd><p>
43   callback function called when frontend is dettached.
44   drivers should free any allocated memory.
45      </p></dd><dt><span class="term">release_sec</span></dt><dd><p>
46   callback function requesting that the Satelite Equipment
47   Control (SEC) driver to release and free any memory
48   allocated by the driver.
49      </p></dd><dt><span class="term">init</span></dt><dd><p>
50   callback function used to initialize the tuner device.
51      </p></dd><dt><span class="term">sleep</span></dt><dd><p>
52   callback function used to put the tuner to sleep.
53      </p></dd><dt><span class="term">write</span></dt><dd><p>
54   callback function used by some demod legacy drivers to
55   allow other drivers to write data into their registers.
56   Should not be used on new drivers.
57      </p></dd><dt><span class="term">tune</span></dt><dd><p>
58   callback function used by demod drivers that use
59   <em class="parameter"><code>DVBFE_ALGO_HW</code></em>; to tune into a frequency.
60      </p></dd><dt><span class="term">get_frontend_algo</span></dt><dd><p>
61   returns the desired hardware algorithm.
62      </p></dd><dt><span class="term">set_frontend</span></dt><dd><p>
63   callback function used to inform the demod to set the
64   parameters for demodulating a digital TV channel.
65   The properties to be used are stored at
66   <em class="parameter"><code>dvb_frontend</code></em>.dtv_property_cache;. The demod can change
67   the parameters to reflect the changes needed for the
68   channel to be decoded, and update statistics.
69      </p></dd><dt><span class="term">get_tune_settings</span></dt><dd><p>
70   callback function
71      </p></dd><dt><span class="term">get_frontend</span></dt><dd><p>
72   callback function used to inform the parameters
73   actuall in use. The properties to be used are stored at
74   <em class="parameter"><code>dvb_frontend</code></em>.dtv_property_cache; and update
75   statistics. Please notice that it should not return
76   an error code if the statistics are not available
77   because the demog is not locked.
78      </p></dd><dt><span class="term">read_status</span></dt><dd><p>
79   returns the locking status of the frontend.
80      </p></dd><dt><span class="term">read_ber</span></dt><dd><p>
81   legacy callback function to return the bit error rate.
82   Newer drivers should provide such info via DVBv5 API,
83   e. g. <em class="parameter"><code>set_frontend</code></em>;/<em class="parameter"><code>get_frontend</code></em>;, implementing this
84   callback only if DVBv3 API compatibility is wanted.
85      </p></dd><dt><span class="term">read_signal_strength</span></dt><dd><p>
86   legacy callback function to return the signal
87   strength. Newer drivers should provide such info via
88   DVBv5 API, e. g. <em class="parameter"><code>set_frontend</code></em>;/<em class="parameter"><code>get_frontend</code></em>;,
89   implementing this callback only if DVBv3 API
90   compatibility is wanted.
91      </p></dd><dt><span class="term">read_snr</span></dt><dd><p>
92   legacy callback function to return the Signal/Noise
93   rate. Newer drivers should provide such info via
94   DVBv5 API, e. g. <em class="parameter"><code>set_frontend</code></em>;/<em class="parameter"><code>get_frontend</code></em>;,
95   implementing this callback only if DVBv3 API
96   compatibility is wanted.
97      </p></dd><dt><span class="term">read_ucblocks</span></dt><dd><p>
98   legacy callback function to return the Uncorrected Error
99   Blocks. Newer drivers should provide such info via
100   DVBv5 API, e. g. <em class="parameter"><code>set_frontend</code></em>;/<em class="parameter"><code>get_frontend</code></em>;,
101   implementing this callback only if DVBv3 API
102   compatibility is wanted.
103      </p></dd><dt><span class="term">diseqc_reset_overload</span></dt><dd><p>
104   callback function to implement the
105   FE_DISEQC_RESET_OVERLOAD ioctl (only Satellite)
106      </p></dd><dt><span class="term">diseqc_send_master_cmd</span></dt><dd><p>
107   callback function to implement the
108   FE_DISEQC_SEND_MASTER_CMD ioctl (only Satellite).
109      </p></dd><dt><span class="term">diseqc_recv_slave_reply</span></dt><dd><p>
110   callback function to implement the
111   FE_DISEQC_RECV_SLAVE_REPLY ioctl (only Satellite)
112      </p></dd><dt><span class="term">diseqc_send_burst</span></dt><dd><p>
113   callback function to implement the
114   FE_DISEQC_SEND_BURST ioctl (only Satellite).
115      </p></dd><dt><span class="term">set_tone</span></dt><dd><p>
116   callback function to implement the
117   FE_SET_TONE ioctl (only Satellite).
118      </p></dd><dt><span class="term">set_voltage</span></dt><dd><p>
119   callback function to implement the
120   FE_SET_VOLTAGE ioctl (only Satellite).
121      </p></dd><dt><span class="term">enable_high_lnb_voltage</span></dt><dd><p>
122   callback function to implement the
123   FE_ENABLE_HIGH_LNB_VOLTAGE ioctl (only Satellite).
124      </p></dd><dt><span class="term">dishnetwork_send_legacy_command</span></dt><dd><p>
125   callback function to implement the
126   FE_DISHNETWORK_SEND_LEGACY_CMD ioctl (only Satellite).
127      </p></dd><dt><span class="term">i2c_gate_ctrl</span></dt><dd><p>
128   controls the I2C gate. Newer drivers should use I2C
129   mux support instead.
130      </p></dd><dt><span class="term">ts_bus_ctrl</span></dt><dd><p>
131   callback function used to take control of the TS bus.
132      </p></dd><dt><span class="term">set_lna</span></dt><dd><p>
133   callback function to power on/off/auto the LNA.
134      </p></dd><dt><span class="term">search</span></dt><dd><p>
135   callback function used on some custom algo search algos.
136      </p></dd><dt><span class="term">tuner_ops</span></dt><dd><p>
137   pointer to struct dvb_tuner_ops
138      </p></dd><dt><span class="term">analog_ops</span></dt><dd><p>
139   pointer to struct analog_demod_ops
140      </p></dd><dt><span class="term">set_property</span></dt><dd><p>
141   callback function to allow the frontend to validade
142   incoming properties. Should not be used on new drivers.
143      </p></dd><dt><span class="term">get_property</span></dt><dd><p>
144   callback function to allow the frontend to override
145   outcoming properties. Should not be used on new drivers.
146      </p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-struct-analog-demod-ops.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch06s02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-struct-dtv-frontend-properties.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">struct analog_demod_ops</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">struct dtv_frontend_properties</span></td></tr></table></div></body></html>
147