Lines Matching refs:epdata

274 	struct ep_data	*epdata = ep->driver_data;  in epio_complete()  local
279 epdata->status = req->status; in epio_complete()
281 epdata->status = req->actual; in epio_complete()
289 get_ready_ep (unsigned f_flags, struct ep_data *epdata, bool is_write) in get_ready_ep() argument
294 if (!mutex_trylock(&epdata->lock)) in get_ready_ep()
296 if (epdata->state != STATE_EP_ENABLED && in get_ready_ep()
297 (!is_write || epdata->state != STATE_EP_READY)) { in get_ready_ep()
298 mutex_unlock(&epdata->lock); in get_ready_ep()
306 val = mutex_lock_interruptible(&epdata->lock); in get_ready_ep()
310 switch (epdata->state) { in get_ready_ep()
322 shortname, epdata, epdata->state); in get_ready_ep()
324 mutex_unlock(&epdata->lock); in get_ready_ep()
329 ep_io (struct ep_data *epdata, void *buf, unsigned len) in ep_io() argument
334 spin_lock_irq (&epdata->dev->lock); in ep_io()
335 if (likely (epdata->ep != NULL)) { in ep_io()
336 struct usb_request *req = epdata->req; in ep_io()
342 value = usb_ep_queue (epdata->ep, req, GFP_ATOMIC); in ep_io()
345 spin_unlock_irq (&epdata->dev->lock); in ep_io()
350 spin_lock_irq (&epdata->dev->lock); in ep_io()
351 if (likely (epdata->ep != NULL)) { in ep_io()
352 DBG (epdata->dev, "%s i/o interrupted\n", in ep_io()
353 epdata->name); in ep_io()
354 usb_ep_dequeue (epdata->ep, epdata->req); in ep_io()
355 spin_unlock_irq (&epdata->dev->lock); in ep_io()
358 if (epdata->status == -ECONNRESET) in ep_io()
359 epdata->status = -EINTR; in ep_io()
361 spin_unlock_irq (&epdata->dev->lock); in ep_io()
363 DBG (epdata->dev, "endpoint gone\n"); in ep_io()
364 epdata->status = -ENODEV; in ep_io()
367 return epdata->status; in ep_io()
430 struct ep_data *epdata; member
443 struct ep_data *epdata; in ep_aio_cancel() local
447 epdata = priv->epdata; in ep_aio_cancel()
449 if (likely(epdata && epdata->ep && priv->req)) in ep_aio_cancel()
450 value = usb_ep_dequeue (epdata->ep, priv->req); in ep_aio_cancel()
484 struct ep_data *epdata = priv->epdata; in ep_aio_complete() local
487 spin_lock(&epdata->dev->lock); in ep_aio_complete()
489 priv->epdata = NULL; in ep_aio_complete()
507 DBG(epdata->dev, "%s fault %d len %d\n", in ep_aio_complete()
515 spin_unlock(&epdata->dev->lock); in ep_aio_complete()
518 put_ep(epdata); in ep_aio_complete()
523 struct ep_data *epdata, in ep_aio() argument
534 get_ep(epdata); in ep_aio()
535 priv->epdata = epdata; in ep_aio()
542 spin_lock_irq(&epdata->dev->lock); in ep_aio()
544 if (unlikely(epdata->ep)) in ep_aio()
547 req = usb_ep_alloc_request(epdata->ep, GFP_ATOMIC); in ep_aio()
557 value = usb_ep_queue(epdata->ep, req, GFP_ATOMIC); in ep_aio()
559 usb_ep_free_request(epdata->ep, req); in ep_aio()
562 spin_unlock_irq(&epdata->dev->lock); in ep_aio()
566 spin_unlock_irq(&epdata->dev->lock); in ep_aio()
569 put_ep(epdata); in ep_aio()
577 struct ep_data *epdata = file->private_data; in ep_read_iter() local
582 if ((value = get_ready_ep(file->f_flags, epdata, false)) < 0) in ep_read_iter()
586 if (usb_endpoint_dir_in(&epdata->desc)) { in ep_read_iter()
587 if (usb_endpoint_xfer_isoc(&epdata->desc) || in ep_read_iter()
589 mutex_unlock(&epdata->lock); in ep_read_iter()
592 DBG (epdata->dev, "%s halt\n", epdata->name); in ep_read_iter()
593 spin_lock_irq(&epdata->dev->lock); in ep_read_iter()
594 if (likely(epdata->ep != NULL)) in ep_read_iter()
595 usb_ep_set_halt(epdata->ep); in ep_read_iter()
596 spin_unlock_irq(&epdata->dev->lock); in ep_read_iter()
597 mutex_unlock(&epdata->lock); in ep_read_iter()
603 mutex_unlock(&epdata->lock); in ep_read_iter()
607 value = ep_io(epdata, buf, len); in ep_read_iter()
620 value = ep_aio(iocb, priv, epdata, buf, len); in ep_read_iter()
626 mutex_unlock(&epdata->lock); in ep_read_iter()
636 struct ep_data *epdata = file->private_data; in ep_write_iter() local
642 if ((value = get_ready_ep(file->f_flags, epdata, true)) < 0) in ep_write_iter()
645 configured = epdata->state == STATE_EP_ENABLED; in ep_write_iter()
648 if (configured && !usb_endpoint_dir_in(&epdata->desc)) { in ep_write_iter()
649 if (usb_endpoint_xfer_isoc(&epdata->desc) || in ep_write_iter()
651 mutex_unlock(&epdata->lock); in ep_write_iter()
654 DBG (epdata->dev, "%s halt\n", epdata->name); in ep_write_iter()
655 spin_lock_irq(&epdata->dev->lock); in ep_write_iter()
656 if (likely(epdata->ep != NULL)) in ep_write_iter()
657 usb_ep_set_halt(epdata->ep); in ep_write_iter()
658 spin_unlock_irq(&epdata->dev->lock); in ep_write_iter()
659 mutex_unlock(&epdata->lock); in ep_write_iter()
665 mutex_unlock(&epdata->lock); in ep_write_iter()
675 value = ep_config(epdata, buf, len); in ep_write_iter()
677 value = ep_io(epdata, buf, len); in ep_write_iter()
682 value = ep_aio(iocb, priv, epdata, buf, len); in ep_write_iter()
689 mutex_unlock(&epdata->lock); in ep_write_iter()