Lines Matching refs:cs_char_data
121 static struct cs_char cs_char_data; variable
135 spin_lock(&cs_char_data.lock); in cs_notify()
137 if (!cs_char_data.opened) { in cs_notify()
138 spin_unlock(&cs_char_data.lock); in cs_notify()
144 dev_err(&cs_char_data.cl->device, in cs_notify()
146 spin_unlock(&cs_char_data.lock); in cs_notify()
153 spin_unlock(&cs_char_data.lock); in cs_notify()
155 wake_up_interruptible(&cs_char_data.wait); in cs_notify()
156 kill_fasync(&cs_char_data.async_queue, SIGIO, POLL_IN); in cs_notify()
177 cs_notify(message, &cs_char_data.chardev_queue); in cs_notify_control()
182 cs_notify(message, &cs_char_data.dataind_queue); in cs_notify_data()
184 spin_lock(&cs_char_data.lock); in cs_notify_data()
185 cs_char_data.dataind_pending++; in cs_notify_data()
186 while (cs_char_data.dataind_pending > maxlength && in cs_notify_data()
187 !list_empty(&cs_char_data.dataind_queue)) { in cs_notify_data()
188 dev_dbg(&cs_char_data.cl->device, "data notification " in cs_notify_data()
189 "queue overrun (%u entries)\n", cs_char_data.dataind_pending); in cs_notify_data()
191 cs_pop_entry(&cs_char_data.dataind_queue); in cs_notify_data()
192 cs_char_data.dataind_pending--; in cs_notify_data()
194 spin_unlock(&cs_char_data.lock); in cs_notify_data()
222 dev_dbg(&cs_char_data.cl->device, "control cmd destructor\n"); in cs_cmd_destructor()
282 msg->channel = cs_char_data.channel_id_cmd; in cs_alloc_cmds()
299 dev_dbg(&cs_char_data.cl->device, "Freeing data %s message\n", dir); in cs_hsi_data_destructor()
303 dev_err(&cs_char_data.cl->device, in cs_hsi_data_destructor()
328 rxmsg->channel = cs_char_data.channel_id_data; in cs_hsi_alloc_data()
337 txmsg->channel = cs_char_data.channel_id_data; in cs_hsi_alloc_data()
1118 poll_wait(file, &cs_char_data.wait, wait); in cs_char_poll()
1279 spin_lock_bh(&cs_char_data.lock); in cs_char_open()
1280 if (cs_char_data.opened) { in cs_char_open()
1282 spin_unlock_bh(&cs_char_data.lock); in cs_char_open()
1285 cs_char_data.opened = 1; in cs_char_open()
1286 cs_char_data.dataind_pending = 0; in cs_char_open()
1287 spin_unlock_bh(&cs_char_data.lock); in cs_char_open()
1295 ret = cs_hsi_start(&cs_char_data.hi, cs_char_data.cl, p, CS_MMAP_SIZE); in cs_char_open()
1297 dev_err(&cs_char_data.cl->device, "Unable to initialize HSI\n"); in cs_char_open()
1302 cs_char_data.mmap_base = p; in cs_char_open()
1303 cs_char_data.mmap_size = CS_MMAP_SIZE; in cs_char_open()
1305 file->private_data = &cs_char_data; in cs_char_open()
1312 spin_lock_bh(&cs_char_data.lock); in cs_char_open()
1313 cs_char_data.opened = 0; in cs_char_open()
1314 spin_unlock_bh(&cs_char_data.lock); in cs_char_open()
1374 init_waitqueue_head(&cs_char_data.wait); in cs_hsi_client_probe()
1375 spin_lock_init(&cs_char_data.lock); in cs_hsi_client_probe()
1376 cs_char_data.opened = 0; in cs_hsi_client_probe()
1377 cs_char_data.cl = cl; in cs_hsi_client_probe()
1378 cs_char_data.hi = NULL; in cs_hsi_client_probe()
1379 INIT_LIST_HEAD(&cs_char_data.chardev_queue); in cs_hsi_client_probe()
1380 INIT_LIST_HEAD(&cs_char_data.dataind_queue); in cs_hsi_client_probe()
1382 cs_char_data.channel_id_cmd = hsi_get_channel_id_by_name(cl, in cs_hsi_client_probe()
1384 if (cs_char_data.channel_id_cmd < 0) { in cs_hsi_client_probe()
1385 err = cs_char_data.channel_id_cmd; in cs_hsi_client_probe()
1390 cs_char_data.channel_id_data = hsi_get_channel_id_by_name(cl, in cs_hsi_client_probe()
1392 if (cs_char_data.channel_id_data < 0) { in cs_hsi_client_probe()
1393 err = cs_char_data.channel_id_data; in cs_hsi_client_probe()
1411 spin_lock_bh(&cs_char_data.lock); in cs_hsi_client_remove()
1412 hi = cs_char_data.hi; in cs_hsi_client_remove()
1413 cs_char_data.hi = NULL; in cs_hsi_client_remove()
1414 spin_unlock_bh(&cs_char_data.lock); in cs_hsi_client_remove()