Lines Matching defs:es2
142 static void usb_log_enable(struct es2_ap_dev *es2);
143 static void usb_log_disable(struct es2_ap_dev *es2);
144 static int arpc_sync(struct es2_ap_dev *es2, u8 type, void *payload,
147 static int output_sync(struct es2_ap_dev *es2, void *req, u16 size, u8 cmd)
149 struct usb_device *udev = es2->usb_dev;
179 static int output_async(struct es2_ap_dev *es2, void *req, u16 size, u8 cmd)
181 struct usb_device *udev = es2->usb_dev;
220 struct es2_ap_dev *es2 = hd_to_es2(hd);
223 return output_async(es2, req, size, cmd);
225 return output_sync(es2, req, size, cmd);
228 static int es2_cport_in_enable(struct es2_ap_dev *es2,
240 dev_err(&es2->usb_dev->dev,
257 static void es2_cport_in_disable(struct es2_ap_dev *es2,
269 static int es2_arpc_in_enable(struct es2_ap_dev *es2)
276 urb = es2->arpc_urb[i];
280 dev_err(&es2->usb_dev->dev,
290 urb = es2->arpc_urb[i];
297 static void es2_arpc_in_disable(struct es2_ap_dev *es2)
303 urb = es2->arpc_urb[i];
308 static struct urb *next_free_urb(struct es2_ap_dev *es2, gfp_t gfp_mask)
314 spin_lock_irqsave(&es2->cport_out_urb_lock, flags);
318 if (!es2->cport_out_urb_busy[i] &&
319 !es2->cport_out_urb_cancelled[i]) {
320 es2->cport_out_urb_busy[i] = true;
321 urb = es2->cport_out_urb[i];
325 spin_unlock_irqrestore(&es2->cport_out_urb_lock, flags);
333 dev_dbg(&es2->usb_dev->dev,
338 static void free_urb(struct es2_ap_dev *es2, struct urb *urb)
346 spin_lock_irqsave(&es2->cport_out_urb_lock, flags);
348 if (urb == es2->cport_out_urb[i]) {
349 es2->cport_out_urb_busy[i] = false;
354 spin_unlock_irqrestore(&es2->cport_out_urb_lock, flags);
393 struct es2_ap_dev *es2 = hd_to_es2(hd);
394 struct usb_device *udev = es2->usb_dev;
411 urb = next_free_urb(es2, gfp_mask);
415 spin_lock_irqsave(&es2->cport_out_urb_lock, flags);
417 spin_unlock_irqrestore(&es2->cport_out_urb_lock, flags);
426 es2->cport_out_endpoint),
437 spin_lock_irqsave(&es2->cport_out_urb_lock, flags);
439 spin_unlock_irqrestore(&es2->cport_out_urb_lock, flags);
441 free_urb(es2, urb);
456 struct es2_ap_dev *es2 = hd_to_es2(hd);
462 spin_lock_irq(&es2->cport_out_urb_lock);
470 if (urb == es2->cport_out_urb[i]) {
471 es2->cport_out_urb_cancelled[i] = true;
475 spin_unlock_irq(&es2->cport_out_urb_lock);
480 spin_lock_irq(&es2->cport_out_urb_lock);
481 es2->cport_out_urb_cancelled[i] = false;
482 spin_unlock_irq(&es2->cport_out_urb_lock);
491 struct es2_ap_dev *es2 = hd_to_es2(hd);
504 if (es2->cdsi1_in_use) {
509 es2->cdsi1_in_use = true;
530 struct es2_ap_dev *es2 = hd_to_es2(hd);
534 es2->cdsi1_in_use = false;
544 struct es2_ap_dev *es2 = hd_to_es2(hd);
545 struct usb_device *udev = es2->usb_dev;
588 struct es2_ap_dev *es2 = hd_to_es2(hd);
589 struct device *dev = &es2->usb_dev->dev;
594 ret = arpc_sync(es2, ARPC_TYPE_CPORT_CONNECTED, &req, sizeof(req),
607 struct es2_ap_dev *es2 = hd_to_es2(hd);
608 struct device *dev = &es2->usb_dev->dev;
613 ret = arpc_sync(es2, ARPC_TYPE_CPORT_FLUSH, &req, sizeof(req),
626 struct es2_ap_dev *es2 = hd_to_es2(hd);
627 struct device *dev = &es2->usb_dev->dev;
638 ret = arpc_sync(es2, ARPC_TYPE_CPORT_SHUTDOWN, &req, sizeof(req),
652 struct es2_ap_dev *es2 = hd_to_es2(hd);
653 struct device *dev = &es2->usb_dev->dev;
667 ret = arpc_sync(es2, ARPC_TYPE_CPORT_QUIESCE, &req, sizeof(req),
680 struct es2_ap_dev *es2 = hd_to_es2(hd);
681 struct device *dev = &es2->usb_dev->dev;
686 ret = arpc_sync(es2, ARPC_TYPE_CPORT_CLEAR, &req, sizeof(req),
699 struct es2_ap_dev *es2 = hd_to_es2(hd);
700 struct usb_device *udev = es2->usb_dev;
717 struct es2_ap_dev *es2 = hd_to_es2(hd);
718 struct usb_device *udev = es2->usb_dev;
776 static void es2_destroy(struct es2_ap_dev *es2)
782 debugfs_remove(es2->apb_log_enable_dentry);
783 usb_log_disable(es2);
787 urb = es2->cport_out_urb[i];
790 es2->cport_out_urb[i] = NULL;
791 es2->cport_out_urb_busy[i] = false; /* just to be anal */
795 usb_free_urb(es2->arpc_urb[i]);
796 kfree(es2->arpc_buffer[i]);
797 es2->arpc_buffer[i] = NULL;
801 usb_free_urb(es2->cport_in.urb[i]);
802 kfree(es2->cport_in.buffer[i]);
803 es2->cport_in.buffer[i] = NULL;
807 gb_hd_cport_release_reserved(es2->hd, ES2_CPORT_CDSI1);
808 gb_hd_cport_release_reserved(es2->hd, ES2_CPORT_CDSI0);
810 udev = es2->usb_dev;
811 gb_hd_put(es2->hd);
863 struct es2_ap_dev *es2 = hd_to_es2(hd);
869 spin_lock_irqsave(&es2->cport_out_urb_lock, flags);
871 spin_unlock_irqrestore(&es2->cport_out_urb_lock, flags);
879 free_urb(es2, urb);
925 static struct arpc *arpc_find(struct es2_ap_dev *es2, __le16 id)
929 list_for_each_entry(rpc, &es2->arpcs, list) {
937 static void arpc_add(struct es2_ap_dev *es2, struct arpc *rpc)
940 rpc->req->id = cpu_to_le16(es2->arpc_id_cycle++);
941 list_add_tail(&rpc->list, &es2->arpcs);
944 static void arpc_del(struct es2_ap_dev *es2, struct arpc *rpc)
952 static int arpc_send(struct es2_ap_dev *es2, struct arpc *rpc, int timeout)
954 struct usb_device *udev = es2->usb_dev;
976 static int arpc_sync(struct es2_ap_dev *es2, u8 type, void *payload,
990 spin_lock_irqsave(&es2->arpc_lock, flags);
991 arpc_add(es2, rpc);
992 spin_unlock_irqrestore(&es2->arpc_lock, flags);
994 retval = arpc_send(es2, rpc, timeout);
1016 spin_lock_irqsave(&es2->arpc_lock, flags);
1017 arpc_del(es2, rpc);
1018 spin_unlock_irqrestore(&es2->arpc_lock, flags);
1022 dev_err(&es2->usb_dev->dev,
1031 struct es2_ap_dev *es2 = urb->context;
1057 spin_lock_irqsave(&es2->arpc_lock, flags);
1058 rpc = arpc_find(es2, resp->id);
1062 spin_unlock_irqrestore(&es2->arpc_lock, flags);
1066 arpc_del(es2, rpc);
1069 spin_unlock_irqrestore(&es2->arpc_lock, flags);
1079 static void apb_log_get(struct es2_ap_dev *es2, char *buf)
1084 retval = usb_control_msg(es2->usb_dev,
1085 usb_rcvctrlpipe(es2->usb_dev, 0),
1094 kfifo_in(&es2->apb_log_fifo, buf, retval);
1100 struct es2_ap_dev *es2 = data;
1109 apb_log_get(es2, buf);
1120 struct es2_ap_dev *es2 = file_inode(f)->i_private;
1132 copied = kfifo_out(&es2->apb_log_fifo, tmp_buf, count);
1144 static void usb_log_enable(struct es2_ap_dev *es2)
1146 if (!IS_ERR_OR_NULL(es2->apb_log_task))
1150 es2->apb_log_task = kthread_run(apb_log_poll, es2, "apb_log");
1151 if (IS_ERR(es2->apb_log_task))
1154 es2->apb_log_dentry = debugfs_create_file("apb_log", 0444,
1155 gb_debugfs_get(), es2,
1159 static void usb_log_disable(struct es2_ap_dev *es2)
1161 if (IS_ERR_OR_NULL(es2->apb_log_task))
1164 debugfs_remove(es2->apb_log_dentry);
1165 es2->apb_log_dentry = NULL;
1167 kthread_stop(es2->apb_log_task);
1168 es2->apb_log_task = NULL;
1174 struct es2_ap_dev *es2 = file_inode(f)->i_private;
1175 int enable = !IS_ERR_OR_NULL(es2->apb_log_task);
1187 struct es2_ap_dev *es2 = file_inode(f)->i_private;
1194 usb_log_enable(es2);
1196 usb_log_disable(es2);
1252 struct es2_ap_dev *es2;
1282 es2 = hd_to_es2(hd);
1283 es2->hd = hd;
1284 es2->usb_intf = interface;
1285 es2->usb_dev = udev;
1286 spin_lock_init(&es2->cport_out_urb_lock);
1287 INIT_KFIFO(es2->apb_log_fifo);
1288 usb_set_intfdata(interface, es2);
1309 es2->cport_in.endpoint = ep_addr;
1312 es2->arpc_endpoint_in = ep_addr;
1323 es2->cport_out_endpoint = ep_addr;
1352 es2->cport_in.urb[i] = urb;
1361 usb_rcvbulkpipe(udev, es2->cport_in.endpoint),
1365 es2->cport_in.buffer[i] = buffer;
1378 es2->arpc_urb[i] = urb;
1388 es2->arpc_endpoint_in),
1390 arpc_in_callback, es2);
1392 es2->arpc_buffer[i] = buffer;
1405 es2->cport_out_urb[i] = urb;
1406 es2->cport_out_urb_busy[i] = false; /* just to be anal */
1410 es2->apb_log_enable_dentry = debugfs_create_file("apb_log_enable",
1412 gb_debugfs_get(), es2,
1415 INIT_LIST_HEAD(&es2->arpcs);
1416 spin_lock_init(&es2->arpc_lock);
1418 retval = es2_arpc_in_enable(es2);
1426 retval = es2_cport_in_enable(es2, &es2->cport_in);
1435 es2_arpc_in_disable(es2);
1437 es2_destroy(es2);
1444 struct es2_ap_dev *es2 = usb_get_intfdata(interface);
1446 gb_hd_del(es2->hd);
1448 es2_cport_in_disable(es2, &es2->cport_in);
1449 es2_arpc_in_disable(es2);
1451 es2_destroy(es2);