Lines Matching refs:cs_char_data
134 static struct cs_char cs_char_data; variable
148 spin_lock(&cs_char_data.lock); in cs_notify()
150 if (!cs_char_data.opened) { in cs_notify()
151 spin_unlock(&cs_char_data.lock); in cs_notify()
157 dev_err(&cs_char_data.cl->device, in cs_notify()
159 spin_unlock(&cs_char_data.lock); in cs_notify()
166 spin_unlock(&cs_char_data.lock); in cs_notify()
168 wake_up_interruptible(&cs_char_data.wait); in cs_notify()
169 kill_fasync(&cs_char_data.async_queue, SIGIO, POLL_IN); in cs_notify()
190 cs_notify(message, &cs_char_data.chardev_queue); in cs_notify_control()
195 cs_notify(message, &cs_char_data.dataind_queue); in cs_notify_data()
197 spin_lock(&cs_char_data.lock); in cs_notify_data()
198 cs_char_data.dataind_pending++; in cs_notify_data()
199 while (cs_char_data.dataind_pending > maxlength && in cs_notify_data()
200 !list_empty(&cs_char_data.dataind_queue)) { in cs_notify_data()
201 dev_dbg(&cs_char_data.cl->device, "data notification " in cs_notify_data()
202 "queue overrun (%u entries)\n", cs_char_data.dataind_pending); in cs_notify_data()
204 cs_pop_entry(&cs_char_data.dataind_queue); in cs_notify_data()
205 cs_char_data.dataind_pending--; in cs_notify_data()
207 spin_unlock(&cs_char_data.lock); in cs_notify_data()
235 dev_dbg(&cs_char_data.cl->device, "control cmd destructor\n"); in cs_cmd_destructor()
295 msg->channel = cs_char_data.channel_id_cmd; in cs_alloc_cmds()
312 dev_dbg(&cs_char_data.cl->device, "Freeing data %s message\n", dir); in cs_hsi_data_destructor()
316 dev_err(&cs_char_data.cl->device, in cs_hsi_data_destructor()
341 rxmsg->channel = cs_char_data.channel_id_data; in cs_hsi_alloc_data()
350 txmsg->channel = cs_char_data.channel_id_data; in cs_hsi_alloc_data()
1127 poll_wait(file, &cs_char_data.wait, wait); in cs_char_poll()
1288 spin_lock_bh(&cs_char_data.lock); in cs_char_open()
1289 if (cs_char_data.opened) { in cs_char_open()
1291 spin_unlock_bh(&cs_char_data.lock); in cs_char_open()
1294 cs_char_data.opened = 1; in cs_char_open()
1295 cs_char_data.dataind_pending = 0; in cs_char_open()
1296 spin_unlock_bh(&cs_char_data.lock); in cs_char_open()
1304 ret = cs_hsi_start(&cs_char_data.hi, cs_char_data.cl, p, CS_MMAP_SIZE); in cs_char_open()
1306 dev_err(&cs_char_data.cl->device, "Unable to initialize HSI\n"); in cs_char_open()
1311 cs_char_data.mmap_base = p; in cs_char_open()
1312 cs_char_data.mmap_size = CS_MMAP_SIZE; in cs_char_open()
1314 file->private_data = &cs_char_data; in cs_char_open()
1321 spin_lock_bh(&cs_char_data.lock); in cs_char_open()
1322 cs_char_data.opened = 0; in cs_char_open()
1323 spin_unlock_bh(&cs_char_data.lock); in cs_char_open()
1383 init_waitqueue_head(&cs_char_data.wait); in cs_hsi_client_probe()
1384 spin_lock_init(&cs_char_data.lock); in cs_hsi_client_probe()
1385 cs_char_data.opened = 0; in cs_hsi_client_probe()
1386 cs_char_data.cl = cl; in cs_hsi_client_probe()
1387 cs_char_data.hi = NULL; in cs_hsi_client_probe()
1388 INIT_LIST_HEAD(&cs_char_data.chardev_queue); in cs_hsi_client_probe()
1389 INIT_LIST_HEAD(&cs_char_data.dataind_queue); in cs_hsi_client_probe()
1391 cs_char_data.channel_id_cmd = hsi_get_channel_id_by_name(cl, in cs_hsi_client_probe()
1393 if (cs_char_data.channel_id_cmd < 0) { in cs_hsi_client_probe()
1394 err = cs_char_data.channel_id_cmd; in cs_hsi_client_probe()
1399 cs_char_data.channel_id_data = hsi_get_channel_id_by_name(cl, in cs_hsi_client_probe()
1401 if (cs_char_data.channel_id_data < 0) { in cs_hsi_client_probe()
1402 err = cs_char_data.channel_id_data; in cs_hsi_client_probe()
1420 spin_lock_bh(&cs_char_data.lock); in cs_hsi_client_remove()
1421 hi = cs_char_data.hi; in cs_hsi_client_remove()
1422 cs_char_data.hi = NULL; in cs_hsi_client_remove()
1423 spin_unlock_bh(&cs_char_data.lock); in cs_hsi_client_remove()