Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /***********************************************************************
0003  *
0004  ***********************************************************************/
0005 
0006 struct smsdvb_debugfs;
0007 struct smsdvb_client_t;
0008 
0009 typedef void (*sms_prt_dvb_stats_t)(struct smsdvb_debugfs *debug_data,
0010                     struct sms_stats *p);
0011 
0012 typedef void (*sms_prt_isdb_stats_t)(struct smsdvb_debugfs *debug_data,
0013                      struct sms_isdbt_stats *p);
0014 
0015 typedef void (*sms_prt_isdb_stats_ex_t)
0016             (struct smsdvb_debugfs *debug_data,
0017              struct sms_isdbt_stats_ex *p);
0018 
0019 
0020 struct smsdvb_client_t {
0021     struct list_head entry;
0022 
0023     struct smscore_device_t *coredev;
0024     struct smscore_client_t *smsclient;
0025 
0026     struct dvb_adapter      adapter;
0027     struct dvb_demux        demux;
0028     struct dmxdev           dmxdev;
0029     struct dvb_frontend     frontend;
0030 
0031     enum fe_status          fe_status;
0032 
0033     struct completion       tune_done;
0034     struct completion       stats_done;
0035 
0036     int last_per;
0037 
0038     int legacy_ber, legacy_per;
0039 
0040     int event_fe_state;
0041     int event_unc_state;
0042 
0043     unsigned long       get_stats_jiffies;
0044 
0045     int         feed_users;
0046     bool            has_tuned;
0047 
0048     /* stats debugfs data */
0049     struct dentry       *debugfs;
0050 
0051     struct smsdvb_debugfs   *debug_data;
0052 
0053     sms_prt_dvb_stats_t prt_dvb_stats;
0054     sms_prt_isdb_stats_t    prt_isdb_stats;
0055     sms_prt_isdb_stats_ex_t prt_isdb_stats_ex;
0056 };
0057 
0058 /*
0059  * This struct is a mix of struct sms_rx_stats_ex and
0060  * struct sms_srvm_signal_status.
0061  * It was obtained by comparing the way it was filled by the original code
0062  */
0063 struct RECEPTION_STATISTICS_PER_SLICES_S {
0064     u32 result;
0065     u32 snr;
0066     s32 in_band_power;
0067     u32 ts_packets;
0068     u32 ets_packets;
0069     u32 constellation;
0070     u32 hp_code;
0071     u32 tps_srv_ind_lp;
0072     u32 tps_srv_ind_hp;
0073     u32 cell_id;
0074     u32 reason;
0075     u32 request_id;
0076     u32 modem_state;        /* from SMSHOSTLIB_DVB_MODEM_STATE_ET */
0077 
0078     u32 ber;        /* Post Viterbi BER [1E-5] */
0079     s32 RSSI;       /* dBm */
0080     s32 carrier_offset; /* Carrier Offset in bin/1024 */
0081 
0082     u32 is_rf_locked;       /* 0 - not locked, 1 - locked */
0083     u32 is_demod_locked;    /* 0 - not locked, 1 - locked */
0084 
0085     u32 ber_bit_count;  /* Total number of SYNC bits. */
0086     u32 ber_error_count;    /* Number of erroneous SYNC bits. */
0087 
0088     s32 MRC_SNR;        /* dB */
0089     s32 mrc_in_band_pwr;    /* In band power in dBM */
0090     s32 MRC_RSSI;       /* dBm */
0091 };
0092 
0093 /* From smsdvb-debugfs.c */
0094 #ifdef CONFIG_SMS_SIANO_DEBUGFS
0095 
0096 int smsdvb_debugfs_create(struct smsdvb_client_t *client);
0097 void smsdvb_debugfs_release(struct smsdvb_client_t *client);
0098 void smsdvb_debugfs_register(void);
0099 void smsdvb_debugfs_unregister(void);
0100 
0101 #else
0102 
0103 static inline int smsdvb_debugfs_create(struct smsdvb_client_t *client)
0104 {
0105     return 0;
0106 }
0107 
0108 static inline void smsdvb_debugfs_release(struct smsdvb_client_t *client) {}
0109 
0110 static inline void smsdvb_debugfs_register(void) {}
0111 
0112 static inline void smsdvb_debugfs_unregister(void) {};
0113 
0114 #endif
0115