Lines Matching defs:epfile
92 struct usb_request *req; /* P: epfile->mutex */
99 int status; /* P: epfile->mutex */
119 * can never run concurrently (they are synchronised by epfile->mutex)
199 struct ffs_epfile *epfile;
948 static struct ffs_memory *generic_find_memory_area(struct ffs_epfile *epfile, uint64_t buf, uint32_t len)
953 list_for_each_entry(iter, &epfile->memory_list, memlist) {
978 struct ffs_epfile *epfile = io_data->epfile;
981 spin_lock_irqsave(&epfile->ffs->eps_lock, flags);
984 kfifo_in(&epfile->reqEventFifo, &io_data->buf, sizeof(struct UsbFnReqEvent));
988 spin_unlock_irqrestore(&epfile->ffs->eps_lock, flags);
989 wake_up_all(&epfile->wait_que);
1003 struct ffs_epfile *epfile = container_of(inode->i_cdev, struct ffs_epfile, cdev);
1005 if (WARN_ON(epfile->ffs->state != FFS_ACTIVE))
1008 file->private_data = epfile;
1020 struct ffs_epfile *epfile = file->private_data;
1026 if (epfile == NULL)
1052 spin_lock_irqsave(&epfile->ffs->eps_lock, flags);
1053 list_add_tail(&ffsm->memlist, &epfile->memory_list);
1054 spin_unlock_irqrestore(&epfile->ffs->eps_lock, flags);
1067 struct ffs_epfile *epfile = file->private_data;
1075 if (WARN_ON(epfile->ffs->state != FFS_ACTIVE))
1079 ep = epfile->ep;
1085 epfile->ffs->wait, (ep = epfile->ep));
1091 halt = (!io_data->read == !epfile->in);
1092 if (halt && epfile->isoc)
1096 ret = ffs_mutex_lock(&epfile->mutex, file->f_flags & O_NONBLOCK);
1104 * if we _do_ wait above, the epfile->ffs->gadget might be NULL
1108 gadget = epfile->ffs->gadget;
1110 spin_lock_irq(&epfile->ffs->eps_lock);
1112 if (epfile->ep != ep) {
1123 spin_unlock_irq(&epfile->ffs->eps_lock);
1126 spin_lock_irq(&epfile->ffs->eps_lock);
1127 ffsm = generic_find_memory_area(epfile, io_data->buf, io_data->len);
1132 if (epfile->ep != ep) {
1156 spin_unlock_irq(&epfile->ffs->eps_lock);
1200 io_data->epfile = epfile;
1215 spin_unlock_irq(&epfile->ffs->eps_lock);
1217 mutex_unlock(&epfile->mutex);
1224 struct ffs_epfile *epfile = file->private_data;
1225 struct ffs_ep *ep = epfile->ep;
1232 if (WARN_ON(epfile->ffs->state != FFS_ACTIVE))
1235 spin_lock_irq(&epfile->ffs->eps_lock);
1239 ret = kfifo_alloc(&epfile->reqEventFifo, MAX_REQUEST * sizeof(struct UsbFnReqEvent), GFP_KERNEL);
1242 kfifo_free(&epfile->reqEventFifo);
1250 ffsm = generic_find_memory_area(epfile, mem.buf, mem.size);
1266 spin_unlock_irq(&epfile->ffs->eps_lock);
1272 spin_unlock_irq(&epfile->ffs->eps_lock);
1280 spin_unlock_irq(&epfile->ffs->eps_lock);
1294 spin_unlock_irq(&epfile->ffs->eps_lock);
1299 spin_unlock_irq(&epfile->ffs->eps_lock);
1302 ffsm = generic_find_memory_area(epfile, myIoData.buf, myIoData.len);
1307 list_for_each_entry(req, &epfile->ep->req->list, list) {
1309 usb_ep_dequeue(epfile->ep->ep, req);
1310 spin_unlock_irq(&epfile->ffs->eps_lock);
1314 spin_unlock_irq(&epfile->ffs->eps_lock);
1322 spin_unlock_irq(&epfile->ffs->eps_lock);
1327 spin_unlock_irq(&epfile->ffs->eps_lock);
1330 ffsm = generic_find_memory_area(epfile, myIoData.buf, myIoData.len);
1335 list_for_each_entry(req, &epfile->ep->req->list, list) {
1337 spin_unlock_irq(&epfile->ffs->eps_lock);
1341 spin_unlock_irq(&epfile->ffs->eps_lock);
1345 ret = usb_ep_fifo_status(epfile->ep->ep);
1348 usb_ep_fifo_flush(epfile->ep->ep);
1352 ret = usb_ep_clear_halt(epfile->ep->ep);
1355 ret = epfile->ep->num;
1363 switch (epfile->ffs->speed) {
1373 for (i = 0; i < epfile->ffs->eps_count; i++) {
1374 if (epfile->ffs->epfiles + i == epfile)
1377 ep = epfile->ffs->eps + i;
1379 spin_unlock_irq(&epfile->ffs->eps_lock);
1388 spin_unlock_irq(&epfile->ffs->eps_lock);
1398 struct ffs_epfile *epfile = file->private_data;
1400 if (kfifo_is_empty(&epfile->reqEventFifo)) {
1403 spin_lock_irqsave(&epfile->ffs->eps_lock, flags);
1404 status = kfifo_to_user(&epfile->reqEventFifo, buf, count, &copied) == 0 ? copied : -1;
1405 spin_unlock_irqrestore(&epfile->ffs->eps_lock, flags);
1418 struct ffs_epfile *epfile = file->private_data;
1420 poll_wait(file, &epfile->wait_que, wait);
1421 if (!kfifo_is_empty(&epfile->reqEventFifo)) {
1762 struct ffs_epfile *epfile = NULL, *epfiles = NULL;
1772 epfile = epfiles;
1773 for (i = 1; i <= count; ++i, ++epfile) {
1774 epfile->ffs = ffs;
1775 mutex_init(&epfile->mutex);
1776 INIT_LIST_HEAD(&epfile->memory_list);
1777 init_waitqueue_head(&epfile->wait_que);
1779 if (sprintf(epfile->name, "%s.ep%02x", ffs->dev_name, ffs->eps_addrmap[i]) < 0) {
1783 if (sprintf(epfile->name, "%s.ep%u", ffs->dev_name, i) < 0) {
1788 cdev_init(&epfile->cdev, &ffs_epfile_operations);
1789 epfile->devno=MKDEV(MAJOR(ffs->devno), i);
1790 ret = cdev_add(&epfile->cdev, epfile->devno, 1);
1797 epfile->device = device_create(ffs_class, NULL, epfile->devno, NULL, epfile->name);
1798 if (IS_ERR(epfile->device))
1800 cdev_del(&epfile->cdev);
1812 struct ffs_epfile *epfile = epfiles;
1816 for (; count; --count, ++epfile) {
1817 BUG_ON(mutex_is_locked(&epfile->mutex));
1818 device_destroy(ffs_class, epfile->devno);
1819 cdev_del(&epfile->cdev);
1828 struct ffs_epfile *epfile = func->ffs->epfiles;
1839 if (epfile) {
1840 epfile->ep = NULL;
1841 ++epfile;
1851 struct ffs_epfile *epfile = ffs->epfiles;
1869 epfile->ep = ep;
1870 epfile->in = usb_endpoint_dir_in(ep->ep->desc);
1871 epfile->isoc = usb_endpoint_xfer_isoc(ep->ep->desc);
1877 ++epfile;