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