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;
585 struct es2_ap_dev *es2 = hd_to_es2(hd);
586 struct device *dev = &es2->usb_dev->dev;
591 ret = arpc_sync(es2, ARPC_TYPE_CPORT_CONNECTED, &req, sizeof(req),
604 struct es2_ap_dev *es2 = hd_to_es2(hd);
605 struct device *dev = &es2->usb_dev->dev;
610 ret = arpc_sync(es2, ARPC_TYPE_CPORT_FLUSH, &req, sizeof(req),
623 struct es2_ap_dev *es2 = hd_to_es2(hd);
624 struct device *dev = &es2->usb_dev->dev;
635 ret = arpc_sync(es2, ARPC_TYPE_CPORT_SHUTDOWN, &req, sizeof(req),
649 struct es2_ap_dev *es2 = hd_to_es2(hd);
650 struct device *dev = &es2->usb_dev->dev;
664 ret = arpc_sync(es2, ARPC_TYPE_CPORT_QUIESCE, &req, sizeof(req),
677 struct es2_ap_dev *es2 = hd_to_es2(hd);
678 struct device *dev = &es2->usb_dev->dev;
683 ret = arpc_sync(es2, ARPC_TYPE_CPORT_CLEAR, &req, sizeof(req),
696 struct es2_ap_dev *es2 = hd_to_es2(hd);
697 struct usb_device *udev = es2->usb_dev;
714 struct es2_ap_dev *es2 = hd_to_es2(hd);
715 struct usb_device *udev = es2->usb_dev;
773 static void es2_destroy(struct es2_ap_dev *es2)
779 debugfs_remove(es2->apb_log_enable_dentry);
780 usb_log_disable(es2);
784 urb = es2->cport_out_urb[i];
787 es2->cport_out_urb[i] = NULL;
788 es2->cport_out_urb_busy[i] = false; /* just to be anal */
792 usb_free_urb(es2->arpc_urb[i]);
793 kfree(es2->arpc_buffer[i]);
794 es2->arpc_buffer[i] = NULL;
798 usb_free_urb(es2->cport_in.urb[i]);
799 kfree(es2->cport_in.buffer[i]);
800 es2->cport_in.buffer[i] = NULL;
804 gb_hd_cport_release_reserved(es2->hd, ES2_CPORT_CDSI1);
805 gb_hd_cport_release_reserved(es2->hd, ES2_CPORT_CDSI0);
807 udev = es2->usb_dev;
808 gb_hd_put(es2->hd);
860 struct es2_ap_dev *es2 = hd_to_es2(hd);
866 spin_lock_irqsave(&es2->cport_out_urb_lock, flags);
868 spin_unlock_irqrestore(&es2->cport_out_urb_lock, flags);
876 free_urb(es2, urb);
922 static struct arpc *arpc_find(struct es2_ap_dev *es2, __le16 id)
926 list_for_each_entry(rpc, &es2->arpcs, list) {
934 static void arpc_add(struct es2_ap_dev *es2, struct arpc *rpc)
937 rpc->req->id = cpu_to_le16(es2->arpc_id_cycle++);
938 list_add_tail(&rpc->list, &es2->arpcs);
941 static void arpc_del(struct es2_ap_dev *es2, struct arpc *rpc)
949 static int arpc_send(struct es2_ap_dev *es2, struct arpc *rpc, int timeout)
951 struct usb_device *udev = es2->usb_dev;
971 static int arpc_sync(struct es2_ap_dev *es2, u8 type, void *payload,
985 spin_lock_irqsave(&es2->arpc_lock, flags);
986 arpc_add(es2, rpc);
987 spin_unlock_irqrestore(&es2->arpc_lock, flags);
989 retval = arpc_send(es2, rpc, timeout);
1011 spin_lock_irqsave(&es2->arpc_lock, flags);
1012 arpc_del(es2, rpc);
1013 spin_unlock_irqrestore(&es2->arpc_lock, flags);
1017 dev_err(&es2->usb_dev->dev,
1026 struct es2_ap_dev *es2 = urb->context;
1052 spin_lock_irqsave(&es2->arpc_lock, flags);
1053 rpc = arpc_find(es2, resp->id);
1057 spin_unlock_irqrestore(&es2->arpc_lock, flags);
1061 arpc_del(es2, rpc);
1064 spin_unlock_irqrestore(&es2->arpc_lock, flags);
1074 static void apb_log_get(struct es2_ap_dev *es2, char *buf)
1079 retval = usb_control_msg(es2->usb_dev,
1080 usb_rcvctrlpipe(es2->usb_dev, 0),
1089 kfifo_in(&es2->apb_log_fifo, buf, retval);
1095 struct es2_ap_dev *es2 = data;
1104 apb_log_get(es2, buf);
1115 struct es2_ap_dev *es2 = file_inode(f)->i_private;
1127 copied = kfifo_out(&es2->apb_log_fifo, tmp_buf, count);
1139 static void usb_log_enable(struct es2_ap_dev *es2)
1141 if (!IS_ERR_OR_NULL(es2->apb_log_task))
1145 es2->apb_log_task = kthread_run(apb_log_poll, es2, "apb_log");
1146 if (IS_ERR(es2->apb_log_task))
1149 es2->apb_log_dentry = debugfs_create_file("apb_log", 0444,
1150 gb_debugfs_get(), es2,
1154 static void usb_log_disable(struct es2_ap_dev *es2)
1156 if (IS_ERR_OR_NULL(es2->apb_log_task))
1159 debugfs_remove(es2->apb_log_dentry);
1160 es2->apb_log_dentry = NULL;
1162 kthread_stop(es2->apb_log_task);
1163 es2->apb_log_task = NULL;
1169 struct es2_ap_dev *es2 = file_inode(f)->i_private;
1170 int enable = !IS_ERR_OR_NULL(es2->apb_log_task);
1182 struct es2_ap_dev *es2 = file_inode(f)->i_private;
1189 usb_log_enable(es2);
1191 usb_log_disable(es2);
1247 struct es2_ap_dev *es2;
1277 es2 = hd_to_es2(hd);
1278 es2->hd = hd;
1279 es2->usb_intf = interface;
1280 es2->usb_dev = udev;
1281 spin_lock_init(&es2->cport_out_urb_lock);
1282 INIT_KFIFO(es2->apb_log_fifo);
1283 usb_set_intfdata(interface, es2);
1304 es2->cport_in.endpoint = ep_addr;
1307 es2->arpc_endpoint_in = ep_addr;
1318 es2->cport_out_endpoint = ep_addr;
1347 es2->cport_in.urb[i] = urb;
1356 usb_rcvbulkpipe(udev, es2->cport_in.endpoint),
1360 es2->cport_in.buffer[i] = buffer;
1373 es2->arpc_urb[i] = urb;
1383 es2->arpc_endpoint_in),
1385 arpc_in_callback, es2);
1387 es2->arpc_buffer[i] = buffer;
1400 es2->cport_out_urb[i] = urb;
1401 es2->cport_out_urb_busy[i] = false; /* just to be anal */
1405 es2->apb_log_enable_dentry = debugfs_create_file("apb_log_enable",
1407 gb_debugfs_get(), es2,
1410 INIT_LIST_HEAD(&es2->arpcs);
1411 spin_lock_init(&es2->arpc_lock);
1413 retval = es2_arpc_in_enable(es2);
1421 retval = es2_cport_in_enable(es2, &es2->cport_in);
1430 es2_arpc_in_disable(es2);
1432 es2_destroy(es2);
1439 struct es2_ap_dev *es2 = usb_get_intfdata(interface);
1441 gb_hd_del(es2->hd);
1443 es2_cport_in_disable(es2, &es2->cport_in);
1444 es2_arpc_in_disable(es2);
1446 es2_destroy(es2);