Lines Matching refs:epdata
275 struct ep_data *epdata = ep->driver_data; in epio_complete() local
280 epdata->status = req->status; in epio_complete()
282 epdata->status = req->actual; in epio_complete()
290 get_ready_ep (unsigned f_flags, struct ep_data *epdata, bool is_write) in get_ready_ep() argument
295 if (!mutex_trylock(&epdata->lock)) in get_ready_ep()
297 if (epdata->state != STATE_EP_ENABLED && in get_ready_ep()
298 (!is_write || epdata->state != STATE_EP_READY)) { in get_ready_ep()
299 mutex_unlock(&epdata->lock); in get_ready_ep()
307 val = mutex_lock_interruptible(&epdata->lock); in get_ready_ep()
311 switch (epdata->state) { in get_ready_ep()
323 shortname, epdata, epdata->state); in get_ready_ep()
325 mutex_unlock(&epdata->lock); in get_ready_ep()
330 ep_io (struct ep_data *epdata, void *buf, unsigned len) in ep_io() argument
335 spin_lock_irq (&epdata->dev->lock); in ep_io()
336 if (likely (epdata->ep != NULL)) { in ep_io()
337 struct usb_request *req = epdata->req; in ep_io()
343 value = usb_ep_queue (epdata->ep, req, GFP_ATOMIC); in ep_io()
346 spin_unlock_irq (&epdata->dev->lock); in ep_io()
351 spin_lock_irq (&epdata->dev->lock); in ep_io()
352 if (likely (epdata->ep != NULL)) { in ep_io()
353 DBG (epdata->dev, "%s i/o interrupted\n", in ep_io()
354 epdata->name); in ep_io()
355 usb_ep_dequeue (epdata->ep, epdata->req); in ep_io()
356 spin_unlock_irq (&epdata->dev->lock); in ep_io()
359 if (epdata->status == -ECONNRESET) in ep_io()
360 epdata->status = -EINTR; in ep_io()
362 spin_unlock_irq (&epdata->dev->lock); in ep_io()
364 DBG (epdata->dev, "endpoint gone\n"); in ep_io()
366 epdata->status = -ENODEV; in ep_io()
369 return epdata->status; in ep_io()
432 struct ep_data *epdata; member
445 struct ep_data *epdata; in ep_aio_cancel() local
449 epdata = priv->epdata; in ep_aio_cancel()
451 if (likely(epdata && epdata->ep && priv->req)) in ep_aio_cancel()
452 value = usb_ep_dequeue (epdata->ep, priv->req); in ep_aio_cancel()
486 struct ep_data *epdata = priv->epdata; in ep_aio_complete() local
489 spin_lock(&epdata->dev->lock); in ep_aio_complete()
491 priv->epdata = NULL; in ep_aio_complete()
509 DBG(epdata->dev, "%s fault %d len %d\n", in ep_aio_complete()
519 spin_unlock(&epdata->dev->lock); in ep_aio_complete()
520 put_ep(epdata); in ep_aio_complete()
525 struct ep_data *epdata, in ep_aio() argument
536 get_ep(epdata); in ep_aio()
537 priv->epdata = epdata; in ep_aio()
544 spin_lock_irq(&epdata->dev->lock); in ep_aio()
546 if (unlikely(epdata->ep == NULL)) in ep_aio()
549 req = usb_ep_alloc_request(epdata->ep, GFP_ATOMIC); in ep_aio()
559 value = usb_ep_queue(epdata->ep, req, GFP_ATOMIC); in ep_aio()
561 usb_ep_free_request(epdata->ep, req); in ep_aio()
564 spin_unlock_irq(&epdata->dev->lock); in ep_aio()
568 spin_unlock_irq(&epdata->dev->lock); in ep_aio()
571 put_ep(epdata); in ep_aio()
579 struct ep_data *epdata = file->private_data; in ep_read_iter() local
584 if ((value = get_ready_ep(file->f_flags, epdata, false)) < 0) in ep_read_iter()
588 if (usb_endpoint_dir_in(&epdata->desc)) { in ep_read_iter()
589 if (usb_endpoint_xfer_isoc(&epdata->desc) || in ep_read_iter()
591 mutex_unlock(&epdata->lock); in ep_read_iter()
594 DBG (epdata->dev, "%s halt\n", epdata->name); in ep_read_iter()
595 spin_lock_irq(&epdata->dev->lock); in ep_read_iter()
596 if (likely(epdata->ep != NULL)) in ep_read_iter()
597 usb_ep_set_halt(epdata->ep); in ep_read_iter()
598 spin_unlock_irq(&epdata->dev->lock); in ep_read_iter()
599 mutex_unlock(&epdata->lock); in ep_read_iter()
605 mutex_unlock(&epdata->lock); in ep_read_iter()
609 value = ep_io(epdata, buf, len); in ep_read_iter()
622 value = ep_aio(iocb, priv, epdata, buf, len); in ep_read_iter()
628 mutex_unlock(&epdata->lock); in ep_read_iter()
638 struct ep_data *epdata = file->private_data; in ep_write_iter() local
644 if ((value = get_ready_ep(file->f_flags, epdata, true)) < 0) in ep_write_iter()
647 configured = epdata->state == STATE_EP_ENABLED; in ep_write_iter()
650 if (configured && !usb_endpoint_dir_in(&epdata->desc)) { in ep_write_iter()
651 if (usb_endpoint_xfer_isoc(&epdata->desc) || in ep_write_iter()
653 mutex_unlock(&epdata->lock); in ep_write_iter()
656 DBG (epdata->dev, "%s halt\n", epdata->name); in ep_write_iter()
657 spin_lock_irq(&epdata->dev->lock); in ep_write_iter()
658 if (likely(epdata->ep != NULL)) in ep_write_iter()
659 usb_ep_set_halt(epdata->ep); in ep_write_iter()
660 spin_unlock_irq(&epdata->dev->lock); in ep_write_iter()
661 mutex_unlock(&epdata->lock); in ep_write_iter()
667 mutex_unlock(&epdata->lock); in ep_write_iter()
677 value = ep_config(epdata, buf, len); in ep_write_iter()
679 value = ep_io(epdata, buf, len); in ep_write_iter()
684 value = ep_aio(iocb, priv, epdata, buf, len); in ep_write_iter()
691 mutex_unlock(&epdata->lock); in ep_write_iter()