Lines Matching +full:n +full:-

1 // SPDX-License-Identifier: GPL-2.0+
37 int n = 0; in smsdvb_print_dvb_stats() local
40 spin_lock(&debug_data->lock); in smsdvb_print_dvb_stats()
41 if (debug_data->stats_count) { in smsdvb_print_dvb_stats()
42 spin_unlock(&debug_data->lock); in smsdvb_print_dvb_stats()
46 buf = debug_data->stats_data; in smsdvb_print_dvb_stats()
48 n += sysfs_emit_at(buf, n, "is_rf_locked = %d\n", p->is_rf_locked); in smsdvb_print_dvb_stats()
49 n += sysfs_emit_at(buf, n, "is_demod_locked = %d\n", p->is_demod_locked); in smsdvb_print_dvb_stats()
50 n += sysfs_emit_at(buf, n, "is_external_lna_on = %d\n", p->is_external_lna_on); in smsdvb_print_dvb_stats()
51 n += sysfs_emit_at(buf, n, "SNR = %d\n", p->SNR); in smsdvb_print_dvb_stats()
52 n += sysfs_emit_at(buf, n, "ber = %d\n", p->ber); in smsdvb_print_dvb_stats()
53 n += sysfs_emit_at(buf, n, "FIB_CRC = %d\n", p->FIB_CRC); in smsdvb_print_dvb_stats()
54 n += sysfs_emit_at(buf, n, "ts_per = %d\n", p->ts_per); in smsdvb_print_dvb_stats()
55 n += sysfs_emit_at(buf, n, "MFER = %d\n", p->MFER); in smsdvb_print_dvb_stats()
56 n += sysfs_emit_at(buf, n, "RSSI = %d\n", p->RSSI); in smsdvb_print_dvb_stats()
57 n += sysfs_emit_at(buf, n, "in_band_pwr = %d\n", p->in_band_pwr); in smsdvb_print_dvb_stats()
58 n += sysfs_emit_at(buf, n, "carrier_offset = %d\n", p->carrier_offset); in smsdvb_print_dvb_stats()
59 n += sysfs_emit_at(buf, n, "modem_state = %d\n", p->modem_state); in smsdvb_print_dvb_stats()
60 n += sysfs_emit_at(buf, n, "frequency = %d\n", p->frequency); in smsdvb_print_dvb_stats()
61 n += sysfs_emit_at(buf, n, "bandwidth = %d\n", p->bandwidth); in smsdvb_print_dvb_stats()
62 n += sysfs_emit_at(buf, n, "transmission_mode = %d\n", p->transmission_mode); in smsdvb_print_dvb_stats()
63 n += sysfs_emit_at(buf, n, "modem_state = %d\n", p->modem_state); in smsdvb_print_dvb_stats()
64 n += sysfs_emit_at(buf, n, "guard_interval = %d\n", p->guard_interval); in smsdvb_print_dvb_stats()
65 n += sysfs_emit_at(buf, n, "code_rate = %d\n", p->code_rate); in smsdvb_print_dvb_stats()
66 n += sysfs_emit_at(buf, n, "lp_code_rate = %d\n", p->lp_code_rate); in smsdvb_print_dvb_stats()
67 n += sysfs_emit_at(buf, n, "hierarchy = %d\n", p->hierarchy); in smsdvb_print_dvb_stats()
68 n += sysfs_emit_at(buf, n, "constellation = %d\n", p->constellation); in smsdvb_print_dvb_stats()
69 n += sysfs_emit_at(buf, n, "burst_size = %d\n", p->burst_size); in smsdvb_print_dvb_stats()
70 n += sysfs_emit_at(buf, n, "burst_duration = %d\n", p->burst_duration); in smsdvb_print_dvb_stats()
71 n += sysfs_emit_at(buf, n, "burst_cycle_time = %d\n", p->burst_cycle_time); in smsdvb_print_dvb_stats()
72 n += sysfs_emit_at(buf, n, "calc_burst_cycle_time = %d\n", p->calc_burst_cycle_time); in smsdvb_print_dvb_stats()
73 n += sysfs_emit_at(buf, n, "num_of_rows = %d\n", p->num_of_rows); in smsdvb_print_dvb_stats()
74 n += sysfs_emit_at(buf, n, "num_of_padd_cols = %d\n", p->num_of_padd_cols); in smsdvb_print_dvb_stats()
75 n += sysfs_emit_at(buf, n, "num_of_punct_cols = %d\n", p->num_of_punct_cols); in smsdvb_print_dvb_stats()
76 n += sysfs_emit_at(buf, n, "error_ts_packets = %d\n", p->error_ts_packets); in smsdvb_print_dvb_stats()
77 n += sysfs_emit_at(buf, n, "total_ts_packets = %d\n", p->total_ts_packets); in smsdvb_print_dvb_stats()
78 n += sysfs_emit_at(buf, n, "num_of_valid_mpe_tlbs = %d\n", p->num_of_valid_mpe_tlbs); in smsdvb_print_dvb_stats()
79 n += sysfs_emit_at(buf, n, "num_of_invalid_mpe_tlbs = %d\n", p->num_of_invalid_mpe_tlbs); in smsdvb_print_dvb_stats()
80 n += sysfs_emit_at(buf, n, "num_of_corrected_mpe_tlbs = %d\n", in smsdvb_print_dvb_stats()
81 p->num_of_corrected_mpe_tlbs); in smsdvb_print_dvb_stats()
82 n += sysfs_emit_at(buf, n, "ber_error_count = %d\n", p->ber_error_count); in smsdvb_print_dvb_stats()
83 n += sysfs_emit_at(buf, n, "ber_bit_count = %d\n", p->ber_bit_count); in smsdvb_print_dvb_stats()
84 n += sysfs_emit_at(buf, n, "sms_to_host_tx_errors = %d\n", p->sms_to_host_tx_errors); in smsdvb_print_dvb_stats()
85 n += sysfs_emit_at(buf, n, "pre_ber = %d\n", p->pre_ber); in smsdvb_print_dvb_stats()
86 n += sysfs_emit_at(buf, n, "cell_id = %d\n", p->cell_id); in smsdvb_print_dvb_stats()
87 n += sysfs_emit_at(buf, n, "dvbh_srv_ind_hp = %d\n", p->dvbh_srv_ind_hp); in smsdvb_print_dvb_stats()
88 n += sysfs_emit_at(buf, n, "dvbh_srv_ind_lp = %d\n", p->dvbh_srv_ind_lp); in smsdvb_print_dvb_stats()
89 n += sysfs_emit_at(buf, n, "num_mpe_received = %d\n", p->num_mpe_received); in smsdvb_print_dvb_stats()
91 debug_data->stats_count = n; in smsdvb_print_dvb_stats()
92 spin_unlock(&debug_data->lock); in smsdvb_print_dvb_stats()
93 wake_up(&debug_data->stats_queue); in smsdvb_print_dvb_stats()
99 int i, n = 0; in smsdvb_print_isdb_stats() local
102 spin_lock(&debug_data->lock); in smsdvb_print_isdb_stats()
103 if (debug_data->stats_count) { in smsdvb_print_isdb_stats()
104 spin_unlock(&debug_data->lock); in smsdvb_print_isdb_stats()
108 buf = debug_data->stats_data; in smsdvb_print_isdb_stats()
110 n += sysfs_emit_at(buf, n, "statistics_type = %d\t", p->statistics_type); in smsdvb_print_isdb_stats()
111 n += sysfs_emit_at(buf, n, "full_size = %d\n", p->full_size); in smsdvb_print_isdb_stats()
113 n += sysfs_emit_at(buf, n, "is_rf_locked = %d\t\t", p->is_rf_locked); in smsdvb_print_isdb_stats()
114 n += sysfs_emit_at(buf, n, "is_demod_locked = %d\t", p->is_demod_locked); in smsdvb_print_isdb_stats()
115 n += sysfs_emit_at(buf, n, "is_external_lna_on = %d\n", p->is_external_lna_on); in smsdvb_print_isdb_stats()
116 n += sysfs_emit_at(buf, n, "SNR = %d dB\t\t", p->SNR); in smsdvb_print_isdb_stats()
117 n += sysfs_emit_at(buf, n, "RSSI = %d dBm\t\t", p->RSSI); in smsdvb_print_isdb_stats()
118 n += sysfs_emit_at(buf, n, "in_band_pwr = %d dBm\n", p->in_band_pwr); in smsdvb_print_isdb_stats()
119 n += sysfs_emit_at(buf, n, "carrier_offset = %d\t", p->carrier_offset); in smsdvb_print_isdb_stats()
120 n += sysfs_emit_at(buf, n, "bandwidth = %d\t\t", p->bandwidth); in smsdvb_print_isdb_stats()
121 n += sysfs_emit_at(buf, n, "frequency = %d Hz\n", p->frequency); in smsdvb_print_isdb_stats()
122 n += sysfs_emit_at(buf, n, "transmission_mode = %d\t", p->transmission_mode); in smsdvb_print_isdb_stats()
123 n += sysfs_emit_at(buf, n, "modem_state = %d\t\t", p->modem_state); in smsdvb_print_isdb_stats()
124 n += sysfs_emit_at(buf, n, "guard_interval = %d\n", p->guard_interval); in smsdvb_print_isdb_stats()
125 n += sysfs_emit_at(buf, n, "system_type = %d\t\t", p->system_type); in smsdvb_print_isdb_stats()
126 n += sysfs_emit_at(buf, n, "partial_reception = %d\t", p->partial_reception); in smsdvb_print_isdb_stats()
127 n += sysfs_emit_at(buf, n, "num_of_layers = %d\n", p->num_of_layers); in smsdvb_print_isdb_stats()
128 n += sysfs_emit_at(buf, n, "sms_to_host_tx_errors = %d\n", p->sms_to_host_tx_errors); in smsdvb_print_isdb_stats()
131 if (p->layer_info[i].number_of_segments < 1 || in smsdvb_print_isdb_stats()
132 p->layer_info[i].number_of_segments > 13) in smsdvb_print_isdb_stats()
135 n += sysfs_emit_at(buf, n, "\nLayer %d\n", i); in smsdvb_print_isdb_stats()
136 n += sysfs_emit_at(buf, n, "\tcode_rate = %d\t", p->layer_info[i].code_rate); in smsdvb_print_isdb_stats()
137 n += sysfs_emit_at(buf, n, "constellation = %d\n", p->layer_info[i].constellation); in smsdvb_print_isdb_stats()
138 n += sysfs_emit_at(buf, n, "\tber = %-5d\t", p->layer_info[i].ber); in smsdvb_print_isdb_stats()
139 n += sysfs_emit_at(buf, n, "\tber_error_count = %-5d\t", in smsdvb_print_isdb_stats()
140 p->layer_info[i].ber_error_count); in smsdvb_print_isdb_stats()
141 n += sysfs_emit_at(buf, n, "ber_bit_count = %-5d\n", in smsdvb_print_isdb_stats()
142 p->layer_info[i].ber_bit_count); in smsdvb_print_isdb_stats()
143 n += sysfs_emit_at(buf, n, "\tpre_ber = %-5d\t", p->layer_info[i].pre_ber); in smsdvb_print_isdb_stats()
144 n += sysfs_emit_at(buf, n, "\tts_per = %-5d\n", p->layer_info[i].ts_per); in smsdvb_print_isdb_stats()
145 n += sysfs_emit_at(buf, n, "\terror_ts_packets = %-5d\t", in smsdvb_print_isdb_stats()
146 p->layer_info[i].error_ts_packets); in smsdvb_print_isdb_stats()
147 n += sysfs_emit_at(buf, n, "total_ts_packets = %-5d\t", in smsdvb_print_isdb_stats()
148 p->layer_info[i].total_ts_packets); in smsdvb_print_isdb_stats()
149 n += sysfs_emit_at(buf, n, "ti_ldepth_i = %d\n", p->layer_info[i].ti_ldepth_i); in smsdvb_print_isdb_stats()
150 n += sysfs_emit_at(buf, n, "\tnumber_of_segments = %d\t", in smsdvb_print_isdb_stats()
151 p->layer_info[i].number_of_segments); in smsdvb_print_isdb_stats()
152 n += sysfs_emit_at(buf, n, "tmcc_errors = %d\n", p->layer_info[i].tmcc_errors); in smsdvb_print_isdb_stats()
155 debug_data->stats_count = n; in smsdvb_print_isdb_stats()
156 spin_unlock(&debug_data->lock); in smsdvb_print_isdb_stats()
157 wake_up(&debug_data->stats_queue); in smsdvb_print_isdb_stats()
163 int i, n = 0; in smsdvb_print_isdb_stats_ex() local
166 spin_lock(&debug_data->lock); in smsdvb_print_isdb_stats_ex()
167 if (debug_data->stats_count) { in smsdvb_print_isdb_stats_ex()
168 spin_unlock(&debug_data->lock); in smsdvb_print_isdb_stats_ex()
172 buf = debug_data->stats_data; in smsdvb_print_isdb_stats_ex()
174 n += sysfs_emit_at(buf, n, "statistics_type = %d\t", p->statistics_type); in smsdvb_print_isdb_stats_ex()
175 n += sysfs_emit_at(buf, n, "full_size = %d\n", p->full_size); in smsdvb_print_isdb_stats_ex()
177 n += sysfs_emit_at(buf, n, "is_rf_locked = %d\t\t", p->is_rf_locked); in smsdvb_print_isdb_stats_ex()
178 n += sysfs_emit_at(buf, n, "is_demod_locked = %d\t", p->is_demod_locked); in smsdvb_print_isdb_stats_ex()
179 n += sysfs_emit_at(buf, n, "is_external_lna_on = %d\n", p->is_external_lna_on); in smsdvb_print_isdb_stats_ex()
180 n += sysfs_emit_at(buf, n, "SNR = %d dB\t\t", p->SNR); in smsdvb_print_isdb_stats_ex()
181 n += sysfs_emit_at(buf, n, "RSSI = %d dBm\t\t", p->RSSI); in smsdvb_print_isdb_stats_ex()
182 n += sysfs_emit_at(buf, n, "in_band_pwr = %d dBm\n", p->in_band_pwr); in smsdvb_print_isdb_stats_ex()
183 n += sysfs_emit_at(buf, n, "carrier_offset = %d\t", p->carrier_offset); in smsdvb_print_isdb_stats_ex()
184 n += sysfs_emit_at(buf, n, "bandwidth = %d\t\t", p->bandwidth); in smsdvb_print_isdb_stats_ex()
185 n += sysfs_emit_at(buf, n, "frequency = %d Hz\n", p->frequency); in smsdvb_print_isdb_stats_ex()
186 n += sysfs_emit_at(buf, n, "transmission_mode = %d\t", p->transmission_mode); in smsdvb_print_isdb_stats_ex()
187 n += sysfs_emit_at(buf, n, "modem_state = %d\t\t", p->modem_state); in smsdvb_print_isdb_stats_ex()
188 n += sysfs_emit_at(buf, n, "guard_interval = %d\n", p->guard_interval); in smsdvb_print_isdb_stats_ex()
189 n += sysfs_emit_at(buf, n, "system_type = %d\t\t", p->system_type); in smsdvb_print_isdb_stats_ex()
190 n += sysfs_emit_at(buf, n, "partial_reception = %d\t", p->partial_reception); in smsdvb_print_isdb_stats_ex()
191 n += sysfs_emit_at(buf, n, "num_of_layers = %d\n", p->num_of_layers); in smsdvb_print_isdb_stats_ex()
192 n += sysfs_emit_at(buf, n, "segment_number = %d\t", p->segment_number); in smsdvb_print_isdb_stats_ex()
193 n += sysfs_emit_at(buf, n, "tune_bw = %d\n", p->tune_bw); in smsdvb_print_isdb_stats_ex()
196 if (p->layer_info[i].number_of_segments < 1 || in smsdvb_print_isdb_stats_ex()
197 p->layer_info[i].number_of_segments > 13) in smsdvb_print_isdb_stats_ex()
200 n += sysfs_emit_at(buf, n, "\nLayer %d\n", i); in smsdvb_print_isdb_stats_ex()
201 n += sysfs_emit_at(buf, n, "\tcode_rate = %d\t", p->layer_info[i].code_rate); in smsdvb_print_isdb_stats_ex()
202 n += sysfs_emit_at(buf, n, "constellation = %d\n", p->layer_info[i].constellation); in smsdvb_print_isdb_stats_ex()
203 n += sysfs_emit_at(buf, n, "\tber = %-5d\t", p->layer_info[i].ber); in smsdvb_print_isdb_stats_ex()
204 n += sysfs_emit_at(buf, n, "\tber_error_count = %-5d\t", in smsdvb_print_isdb_stats_ex()
205 p->layer_info[i].ber_error_count); in smsdvb_print_isdb_stats_ex()
206 n += sysfs_emit_at(buf, n, "ber_bit_count = %-5d\n", in smsdvb_print_isdb_stats_ex()
207 p->layer_info[i].ber_bit_count); in smsdvb_print_isdb_stats_ex()
208 n += sysfs_emit_at(buf, n, "\tpre_ber = %-5d\t", p->layer_info[i].pre_ber); in smsdvb_print_isdb_stats_ex()
209 n += sysfs_emit_at(buf, n, "\tts_per = %-5d\n", p->layer_info[i].ts_per); in smsdvb_print_isdb_stats_ex()
210 n += sysfs_emit_at(buf, n, "\terror_ts_packets = %-5d\t", in smsdvb_print_isdb_stats_ex()
211 p->layer_info[i].error_ts_packets); in smsdvb_print_isdb_stats_ex()
212 n += sysfs_emit_at(buf, n, "total_ts_packets = %-5d\t", in smsdvb_print_isdb_stats_ex()
213 p->layer_info[i].total_ts_packets); in smsdvb_print_isdb_stats_ex()
214 n += sysfs_emit_at(buf, n, "ti_ldepth_i = %d\n", p->layer_info[i].ti_ldepth_i); in smsdvb_print_isdb_stats_ex()
215 n += sysfs_emit_at(buf, n, "\tnumber_of_segments = %d\t", in smsdvb_print_isdb_stats_ex()
216 p->layer_info[i].number_of_segments); in smsdvb_print_isdb_stats_ex()
217 n += sysfs_emit_at(buf, n, "tmcc_errors = %d\n", p->layer_info[i].tmcc_errors); in smsdvb_print_isdb_stats_ex()
221 debug_data->stats_count = n; in smsdvb_print_isdb_stats_ex()
222 spin_unlock(&debug_data->lock); in smsdvb_print_isdb_stats_ex()
224 wake_up(&debug_data->stats_queue); in smsdvb_print_isdb_stats_ex()
229 struct smsdvb_client_t *client = inode->i_private; in smsdvb_stats_open()
230 struct smsdvb_debugfs *debug_data = client->debug_data; in smsdvb_stats_open()
232 kref_get(&debug_data->refcount); in smsdvb_stats_open()
234 spin_lock(&debug_data->lock); in smsdvb_stats_open()
235 debug_data->stats_count = 0; in smsdvb_stats_open()
236 debug_data->stats_was_read = false; in smsdvb_stats_open()
237 spin_unlock(&debug_data->lock); in smsdvb_stats_open()
239 file->private_data = debug_data; in smsdvb_stats_open()
256 spin_lock(&debug_data->lock); in smsdvb_stats_wait_read()
258 if (debug_data->stats_was_read) in smsdvb_stats_wait_read()
261 rc = debug_data->stats_count; in smsdvb_stats_wait_read()
264 spin_unlock(&debug_data->lock); in smsdvb_stats_wait_read()
270 struct smsdvb_debugfs *debug_data = file->private_data; in smsdvb_stats_poll()
273 kref_get(&debug_data->refcount); in smsdvb_stats_poll()
275 poll_wait(file, &debug_data->stats_queue, wait); in smsdvb_stats_poll()
278 kref_put(&debug_data->refcount, smsdvb_debugfs_data_release); in smsdvb_stats_poll()
287 struct smsdvb_debugfs *debug_data = file->private_data; in smsdvb_stats_read()
289 kref_get(&debug_data->refcount); in smsdvb_stats_read()
291 if (file->f_flags & O_NONBLOCK) { in smsdvb_stats_read()
294 rc = -EWOULDBLOCK; in smsdvb_stats_read()
298 rc = wait_event_interruptible(debug_data->stats_queue, in smsdvb_stats_read()
304 if (debug_data->stats_was_read) { in smsdvb_stats_read()
309 len = debug_data->stats_count - *ppos; in smsdvb_stats_read()
312 debug_data->stats_data, len); in smsdvb_stats_read()
316 if (*ppos >= debug_data->stats_count) { in smsdvb_stats_read()
317 spin_lock(&debug_data->lock); in smsdvb_stats_read()
318 debug_data->stats_was_read = true; in smsdvb_stats_read()
319 spin_unlock(&debug_data->lock); in smsdvb_stats_read()
322 kref_put(&debug_data->refcount, smsdvb_debugfs_data_release); in smsdvb_stats_read()
328 struct smsdvb_debugfs *debug_data = file->private_data; in smsdvb_stats_release()
330 spin_lock(&debug_data->lock); in smsdvb_stats_release()
331 debug_data->stats_was_read = true; /* return EOF to read() */ in smsdvb_stats_release()
332 spin_unlock(&debug_data->lock); in smsdvb_stats_release()
333 wake_up_interruptible_sync(&debug_data->stats_queue); in smsdvb_stats_release()
335 kref_put(&debug_data->refcount, smsdvb_debugfs_data_release); in smsdvb_stats_release()
336 file->private_data = NULL; in smsdvb_stats_release()
355 struct smscore_device_t *coredev = client->coredev; in smsdvb_debugfs_create()
359 if (!smsdvb_debugfs_usb_root || !coredev->is_usb_device) in smsdvb_debugfs_create()
360 return -ENODEV; in smsdvb_debugfs_create()
362 client->debugfs = debugfs_create_dir(coredev->devpath, in smsdvb_debugfs_create()
364 if (IS_ERR_OR_NULL(client->debugfs)) { in smsdvb_debugfs_create()
365 pr_info("Unable to create debugfs %s directory.\n", in smsdvb_debugfs_create()
366 coredev->devpath); in smsdvb_debugfs_create()
367 return -ENODEV; in smsdvb_debugfs_create()
370 d = debugfs_create_file("stats", S_IRUGO | S_IWUSR, client->debugfs, in smsdvb_debugfs_create()
373 debugfs_remove(client->debugfs); in smsdvb_debugfs_create()
374 return -ENOMEM; in smsdvb_debugfs_create()
377 debug_data = kzalloc(sizeof(*client->debug_data), GFP_KERNEL); in smsdvb_debugfs_create()
379 return -ENOMEM; in smsdvb_debugfs_create()
381 client->debug_data = debug_data; in smsdvb_debugfs_create()
382 client->prt_dvb_stats = smsdvb_print_dvb_stats; in smsdvb_debugfs_create()
383 client->prt_isdb_stats = smsdvb_print_isdb_stats; in smsdvb_debugfs_create()
384 client->prt_isdb_stats_ex = smsdvb_print_isdb_stats_ex; in smsdvb_debugfs_create()
386 init_waitqueue_head(&debug_data->stats_queue); in smsdvb_debugfs_create()
387 spin_lock_init(&debug_data->lock); in smsdvb_debugfs_create()
388 kref_init(&debug_data->refcount); in smsdvb_debugfs_create()
395 if (!client->debugfs) in smsdvb_debugfs_release()
398 client->prt_dvb_stats = NULL; in smsdvb_debugfs_release()
399 client->prt_isdb_stats = NULL; in smsdvb_debugfs_release()
400 client->prt_isdb_stats_ex = NULL; in smsdvb_debugfs_release()
402 debugfs_remove_recursive(client->debugfs); in smsdvb_debugfs_release()
403 kref_put(&client->debug_data->refcount, smsdvb_debugfs_data_release); in smsdvb_debugfs_release()
405 client->debug_data = NULL; in smsdvb_debugfs_release()
406 client->debugfs = NULL; in smsdvb_debugfs_release()
420 * node for sdio-based boards, but this may need some logic at sdio in smsdvb_debugfs_register()
425 pr_err("Couldn't create sysfs node for smsdvb\n"); in smsdvb_debugfs_register()