Lines Matching refs:epdata
273 struct ep_data *epdata = ep->driver_data; in epio_complete() local
278 epdata->status = req->status; in epio_complete()
280 epdata->status = req->actual; in epio_complete()
288 get_ready_ep (unsigned f_flags, struct ep_data *epdata, bool is_write) in get_ready_ep() argument
293 if (!mutex_trylock(&epdata->lock)) in get_ready_ep()
295 if (epdata->state != STATE_EP_ENABLED && in get_ready_ep()
296 (!is_write || epdata->state != STATE_EP_READY)) { in get_ready_ep()
297 mutex_unlock(&epdata->lock); in get_ready_ep()
305 val = mutex_lock_interruptible(&epdata->lock); in get_ready_ep()
309 switch (epdata->state) { in get_ready_ep()
321 shortname, epdata, epdata->state); in get_ready_ep()
323 mutex_unlock(&epdata->lock); in get_ready_ep()
328 ep_io (struct ep_data *epdata, void *buf, unsigned len) in ep_io() argument
333 spin_lock_irq (&epdata->dev->lock); in ep_io()
334 if (likely (epdata->ep != NULL)) { in ep_io()
335 struct usb_request *req = epdata->req; in ep_io()
341 value = usb_ep_queue (epdata->ep, req, GFP_ATOMIC); in ep_io()
344 spin_unlock_irq (&epdata->dev->lock); in ep_io()
349 spin_lock_irq (&epdata->dev->lock); in ep_io()
350 if (likely (epdata->ep != NULL)) { in ep_io()
351 DBG (epdata->dev, "%s i/o interrupted\n", in ep_io()
352 epdata->name); in ep_io()
353 usb_ep_dequeue (epdata->ep, epdata->req); in ep_io()
354 spin_unlock_irq (&epdata->dev->lock); in ep_io()
357 if (epdata->status == -ECONNRESET) in ep_io()
358 epdata->status = -EINTR; in ep_io()
360 spin_unlock_irq (&epdata->dev->lock); in ep_io()
362 DBG (epdata->dev, "endpoint gone\n"); in ep_io()
363 epdata->status = -ENODEV; in ep_io()
366 return epdata->status; in ep_io()
429 struct ep_data *epdata; member
442 struct ep_data *epdata; in ep_aio_cancel() local
446 epdata = priv->epdata; in ep_aio_cancel()
448 if (likely(epdata && epdata->ep && priv->req)) in ep_aio_cancel()
449 value = usb_ep_dequeue (epdata->ep, priv->req); in ep_aio_cancel()
483 struct ep_data *epdata = priv->epdata; in ep_aio_complete() local
486 spin_lock(&epdata->dev->lock); in ep_aio_complete()
488 priv->epdata = NULL; in ep_aio_complete()
506 DBG(epdata->dev, "%s fault %d len %d\n", in ep_aio_complete()
516 spin_unlock(&epdata->dev->lock); in ep_aio_complete()
517 put_ep(epdata); in ep_aio_complete()
522 struct ep_data *epdata, in ep_aio() argument
533 get_ep(epdata); in ep_aio()
534 priv->epdata = epdata; in ep_aio()
541 spin_lock_irq(&epdata->dev->lock); in ep_aio()
543 if (unlikely(epdata->ep == NULL)) in ep_aio()
546 req = usb_ep_alloc_request(epdata->ep, GFP_ATOMIC); in ep_aio()
556 value = usb_ep_queue(epdata->ep, req, GFP_ATOMIC); in ep_aio()
558 usb_ep_free_request(epdata->ep, req); in ep_aio()
561 spin_unlock_irq(&epdata->dev->lock); in ep_aio()
565 spin_unlock_irq(&epdata->dev->lock); in ep_aio()
568 put_ep(epdata); in ep_aio()
576 struct ep_data *epdata = file->private_data; in ep_read_iter() local
581 if ((value = get_ready_ep(file->f_flags, epdata, false)) < 0) in ep_read_iter()
585 if (usb_endpoint_dir_in(&epdata->desc)) { in ep_read_iter()
586 if (usb_endpoint_xfer_isoc(&epdata->desc) || in ep_read_iter()
588 mutex_unlock(&epdata->lock); in ep_read_iter()
591 DBG (epdata->dev, "%s halt\n", epdata->name); in ep_read_iter()
592 spin_lock_irq(&epdata->dev->lock); in ep_read_iter()
593 if (likely(epdata->ep != NULL)) in ep_read_iter()
594 usb_ep_set_halt(epdata->ep); in ep_read_iter()
595 spin_unlock_irq(&epdata->dev->lock); in ep_read_iter()
596 mutex_unlock(&epdata->lock); in ep_read_iter()
602 mutex_unlock(&epdata->lock); in ep_read_iter()
606 value = ep_io(epdata, buf, len); in ep_read_iter()
619 value = ep_aio(iocb, priv, epdata, buf, len); in ep_read_iter()
625 mutex_unlock(&epdata->lock); in ep_read_iter()
635 struct ep_data *epdata = file->private_data; in ep_write_iter() local
641 if ((value = get_ready_ep(file->f_flags, epdata, true)) < 0) in ep_write_iter()
644 configured = epdata->state == STATE_EP_ENABLED; in ep_write_iter()
647 if (configured && !usb_endpoint_dir_in(&epdata->desc)) { in ep_write_iter()
648 if (usb_endpoint_xfer_isoc(&epdata->desc) || in ep_write_iter()
650 mutex_unlock(&epdata->lock); in ep_write_iter()
653 DBG (epdata->dev, "%s halt\n", epdata->name); in ep_write_iter()
654 spin_lock_irq(&epdata->dev->lock); in ep_write_iter()
655 if (likely(epdata->ep != NULL)) in ep_write_iter()
656 usb_ep_set_halt(epdata->ep); in ep_write_iter()
657 spin_unlock_irq(&epdata->dev->lock); in ep_write_iter()
658 mutex_unlock(&epdata->lock); in ep_write_iter()
664 mutex_unlock(&epdata->lock); in ep_write_iter()
674 value = ep_config(epdata, buf, len); in ep_write_iter()
676 value = ep_io(epdata, buf, len); in ep_write_iter()
681 value = ep_aio(iocb, priv, epdata, buf, len); in ep_write_iter()
688 mutex_unlock(&epdata->lock); in ep_write_iter()