Lines Matching refs:debug_data

34 static void smsdvb_print_dvb_stats(struct smsdvb_debugfs *debug_data,  in smsdvb_print_dvb_stats()  argument
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()
132 debug_data->stats_count = n; in smsdvb_print_dvb_stats()
133 spin_unlock(&debug_data->lock); in smsdvb_print_dvb_stats()
134 wake_up(&debug_data->stats_queue); in smsdvb_print_dvb_stats()
137 static void smsdvb_print_isdb_stats(struct smsdvb_debugfs *debug_data, in smsdvb_print_isdb_stats() argument
143 spin_lock(&debug_data->lock); in smsdvb_print_isdb_stats()
144 if (debug_data->stats_count) { in smsdvb_print_isdb_stats()
145 spin_unlock(&debug_data->lock); in smsdvb_print_isdb_stats()
149 buf = debug_data->stats_data; in smsdvb_print_isdb_stats()
222 debug_data->stats_count = n; in smsdvb_print_isdb_stats()
223 spin_unlock(&debug_data->lock); in smsdvb_print_isdb_stats()
224 wake_up(&debug_data->stats_queue); in smsdvb_print_isdb_stats()
227 static void smsdvb_print_isdb_stats_ex(struct smsdvb_debugfs *debug_data, in smsdvb_print_isdb_stats_ex() argument
233 spin_lock(&debug_data->lock); in smsdvb_print_isdb_stats_ex()
234 if (debug_data->stats_count) { in smsdvb_print_isdb_stats_ex()
235 spin_unlock(&debug_data->lock); in smsdvb_print_isdb_stats_ex()
239 buf = debug_data->stats_data; in smsdvb_print_isdb_stats_ex()
315 debug_data->stats_count = n; in smsdvb_print_isdb_stats_ex()
316 spin_unlock(&debug_data->lock); in smsdvb_print_isdb_stats_ex()
318 wake_up(&debug_data->stats_queue); in smsdvb_print_isdb_stats_ex()
324 struct smsdvb_debugfs *debug_data = client->debug_data; in smsdvb_stats_open() local
326 kref_get(&debug_data->refcount); in smsdvb_stats_open()
328 spin_lock(&debug_data->lock); in smsdvb_stats_open()
329 debug_data->stats_count = 0; in smsdvb_stats_open()
330 debug_data->stats_was_read = false; in smsdvb_stats_open()
331 spin_unlock(&debug_data->lock); in smsdvb_stats_open()
333 file->private_data = debug_data; in smsdvb_stats_open()
340 struct smsdvb_debugfs *debug_data; in smsdvb_debugfs_data_release() local
342 debug_data = container_of(ref, struct smsdvb_debugfs, refcount); in smsdvb_debugfs_data_release()
343 kfree(debug_data); in smsdvb_debugfs_data_release()
346 static int smsdvb_stats_wait_read(struct smsdvb_debugfs *debug_data) in smsdvb_stats_wait_read() argument
350 spin_lock(&debug_data->lock); in smsdvb_stats_wait_read()
352 if (debug_data->stats_was_read) in smsdvb_stats_wait_read()
355 rc = debug_data->stats_count; in smsdvb_stats_wait_read()
358 spin_unlock(&debug_data->lock); in smsdvb_stats_wait_read()
364 struct smsdvb_debugfs *debug_data = file->private_data; in smsdvb_stats_poll() local
367 kref_get(&debug_data->refcount); in smsdvb_stats_poll()
369 poll_wait(file, &debug_data->stats_queue, wait); in smsdvb_stats_poll()
371 rc = smsdvb_stats_wait_read(debug_data); in smsdvb_stats_poll()
372 kref_put(&debug_data->refcount, smsdvb_debugfs_data_release); in smsdvb_stats_poll()
381 struct smsdvb_debugfs *debug_data = file->private_data; in smsdvb_stats_read() local
383 kref_get(&debug_data->refcount); in smsdvb_stats_read()
386 rc = smsdvb_stats_wait_read(debug_data); in smsdvb_stats_read()
392 rc = wait_event_interruptible(debug_data->stats_queue, in smsdvb_stats_read()
393 smsdvb_stats_wait_read(debug_data)); in smsdvb_stats_read()
398 if (debug_data->stats_was_read) { in smsdvb_stats_read()
403 len = debug_data->stats_count - *ppos; in smsdvb_stats_read()
406 debug_data->stats_data, len); in smsdvb_stats_read()
410 if (*ppos >= debug_data->stats_count) { in smsdvb_stats_read()
411 spin_lock(&debug_data->lock); in smsdvb_stats_read()
412 debug_data->stats_was_read = true; in smsdvb_stats_read()
413 spin_unlock(&debug_data->lock); in smsdvb_stats_read()
416 kref_put(&debug_data->refcount, smsdvb_debugfs_data_release); in smsdvb_stats_read()
422 struct smsdvb_debugfs *debug_data = file->private_data; in smsdvb_stats_release() local
424 spin_lock(&debug_data->lock); in smsdvb_stats_release()
425 debug_data->stats_was_read = true; /* return EOF to read() */ in smsdvb_stats_release()
426 spin_unlock(&debug_data->lock); in smsdvb_stats_release()
427 wake_up_interruptible_sync(&debug_data->stats_queue); in smsdvb_stats_release()
429 kref_put(&debug_data->refcount, smsdvb_debugfs_data_release); in smsdvb_stats_release()
451 struct smsdvb_debugfs *debug_data; in smsdvb_debugfs_create() local
471 debug_data = kzalloc(sizeof(*client->debug_data), GFP_KERNEL); in smsdvb_debugfs_create()
472 if (!debug_data) in smsdvb_debugfs_create()
475 client->debug_data = debug_data; in smsdvb_debugfs_create()
480 init_waitqueue_head(&debug_data->stats_queue); in smsdvb_debugfs_create()
481 spin_lock_init(&debug_data->lock); in smsdvb_debugfs_create()
482 kref_init(&debug_data->refcount); in smsdvb_debugfs_create()
497 kref_put(&client->debug_data->refcount, smsdvb_debugfs_data_release); in smsdvb_debugfs_release()
499 client->debug_data = NULL; in smsdvb_debugfs_release()