File Index
Files and directories
Sign in
FILE

smsdvb.h

File preview with syntax highlighting.

linux-6.19.14/drivers/media/common/siano/smsdvb.h C
  1/* SPDX-License-Identifier: GPL-2.0-or-later */
  2/***********************************************************************
  3 *
  4 ***********************************************************************/
  5
  6struct smsdvb_debugfs;
  7struct smsdvb_client_t;
  8
  9typedef void (*sms_prt_dvb_stats_t)(struct smsdvb_debugfs *debug_data,
 10				    struct sms_stats *p);
 11
 12typedef void (*sms_prt_isdb_stats_t)(struct smsdvb_debugfs *debug_data,
 13				     struct sms_isdbt_stats *p);
 14
 15typedef void (*sms_prt_isdb_stats_ex_t)
 16			(struct smsdvb_debugfs *debug_data,
 17			 struct sms_isdbt_stats_ex *p);
 18
 19
 20struct smsdvb_client_t {
 21	struct list_head entry;
 22
 23	struct smscore_device_t *coredev;
 24	struct smscore_client_t *smsclient;
 25
 26	struct dvb_adapter      adapter;
 27	struct dvb_demux        demux;
 28	struct dmxdev           dmxdev;
 29	struct dvb_frontend     frontend;
 30
 31	enum fe_status          fe_status;
 32
 33	struct completion       tune_done;
 34	struct completion       stats_done;
 35
 36	int last_per;
 37
 38	int legacy_ber, legacy_per;
 39
 40	int event_fe_state;
 41	int event_unc_state;
 42
 43	unsigned long		get_stats_jiffies;
 44
 45	int			feed_users;
 46	bool			has_tuned;
 47
 48	/* stats debugfs data */
 49	struct dentry		*debugfs;
 50
 51	struct smsdvb_debugfs	*debug_data;
 52
 53	sms_prt_dvb_stats_t	prt_dvb_stats;
 54	sms_prt_isdb_stats_t	prt_isdb_stats;
 55	sms_prt_isdb_stats_ex_t	prt_isdb_stats_ex;
 56};
 57
 58/*
 59 * This struct is a mix of struct sms_rx_stats_ex and
 60 * struct sms_srvm_signal_status.
 61 * It was obtained by comparing the way it was filled by the original code
 62 */
 63struct RECEPTION_STATISTICS_PER_SLICES_S {
 64	u32 result;
 65	u32 snr;
 66	s32 in_band_power;
 67	u32 ts_packets;
 68	u32 ets_packets;
 69	u32 constellation;
 70	u32 hp_code;
 71	u32 tps_srv_ind_lp;
 72	u32 tps_srv_ind_hp;
 73	u32 cell_id;
 74	u32 reason;
 75	u32 request_id;
 76	u32 modem_state;		/* from SMSHOSTLIB_DVB_MODEM_STATE_ET */
 77
 78	u32 ber;		/* Post Viterbi BER [1E-5] */
 79	s32 RSSI;		/* dBm */
 80	s32 carrier_offset;	/* Carrier Offset in bin/1024 */
 81
 82	u32 is_rf_locked;		/* 0 - not locked, 1 - locked */
 83	u32 is_demod_locked;	/* 0 - not locked, 1 - locked */
 84
 85	u32 ber_bit_count;	/* Total number of SYNC bits. */
 86	u32 ber_error_count;	/* Number of erroneous SYNC bits. */
 87
 88	s32 MRC_SNR;		/* dB */
 89	s32 mrc_in_band_pwr;	/* In band power in dBM */
 90	s32 MRC_RSSI;		/* dBm */
 91};
 92
 93/* From smsdvb-debugfs.c */
 94#ifdef CONFIG_SMS_SIANO_DEBUGFS
 95
 96int smsdvb_debugfs_create(struct smsdvb_client_t *client);
 97void smsdvb_debugfs_release(struct smsdvb_client_t *client);
 98void smsdvb_debugfs_register(void);
 99void smsdvb_debugfs_unregister(void);
100
101#else
102
103static inline int smsdvb_debugfs_create(struct smsdvb_client_t *client)
104{
105	return 0;
106}
107
108static inline void smsdvb_debugfs_release(struct smsdvb_client_t *client) {}
109
110static inline void smsdvb_debugfs_register(void) {}
111
112static inline void smsdvb_debugfs_unregister(void) {};
113
114#endif
115
~/ Read-only file preview.