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;
947 static struct ffs_memory *generic_find_memory_area(struct ffs_epfile *epfile, uint64_t buf, uint32_t len)
952 list_for_each_entry(iter, &epfile->memory_list, memlist) {
977 struct ffs_epfile *epfile = io_data->epfile;
980 spin_lock_irqsave(&epfile->ffs->eps_lock, flags);
983 kfifo_in(&epfile->reqEventFifo, &io_data->buf, sizeof(struct UsbFnReqEvent));
987 spin_unlock_irqrestore(&epfile->ffs->eps_lock, flags);
988 wake_up_all(&epfile->wait_que);
1002 struct ffs_epfile *epfile = container_of(inode->i_cdev, struct ffs_epfile, cdev);
1004 if (WARN_ON(epfile->ffs->state != FFS_ACTIVE))
1007 file->private_data = epfile;
1019 struct ffs_epfile *epfile = file->private_data;
1025 if (epfile == NULL)
1051 spin_lock_irqsave(&epfile->ffs->eps_lock, flags);
1052 list_add_tail(&ffsm->memlist, &epfile->memory_list);
1053 spin_unlock_irqrestore(&epfile->ffs->eps_lock, flags);
1066 struct ffs_epfile *epfile = file->private_data;
1074 if (WARN_ON(epfile->ffs->state != FFS_ACTIVE))
1078 ep = epfile->ep;
1084 epfile->ffs->wait, (ep = epfile->ep));
1090 halt = (!io_data->read == !epfile->in);
1091 if (halt && epfile->isoc)
1095 ret = ffs_mutex_lock(&epfile->mutex, file->f_flags & O_NONBLOCK);
1103 * if we _do_ wait above, the epfile->ffs->gadget might be NULL
1107 gadget = epfile->ffs->gadget;
1109 spin_lock_irq(&epfile->ffs->eps_lock);
1111 if (epfile->ep != ep) {
1122 spin_unlock_irq(&epfile->ffs->eps_lock);
1125 spin_lock_irq(&epfile->ffs->eps_lock);
1126 ffsm = generic_find_memory_area(epfile, io_data->buf, io_data->len);
1131 if (epfile->ep != ep) {
1155 spin_unlock_irq(&epfile->ffs->eps_lock);
1199 io_data->epfile = epfile;
1214 spin_unlock_irq(&epfile->ffs->eps_lock);
1216 mutex_unlock(&epfile->mutex);
1223 struct ffs_epfile *epfile = file->private_data;
1224 struct ffs_ep *ep = epfile->ep;
1231 if (WARN_ON(epfile->ffs->state != FFS_ACTIVE))
1234 spin_lock_irq(&epfile->ffs->eps_lock);
1238 ret = kfifo_alloc(&epfile->reqEventFifo, MAX_REQUEST * sizeof(struct UsbFnReqEvent), GFP_KERNEL);
1241 kfifo_free(&epfile->reqEventFifo);
1249 ffsm = generic_find_memory_area(epfile, mem.buf, mem.size);
1265 spin_unlock_irq(&epfile->ffs->eps_lock);
1271 spin_unlock_irq(&epfile->ffs->eps_lock);
1279 spin_unlock_irq(&epfile->ffs->eps_lock);
1293 spin_unlock_irq(&epfile->ffs->eps_lock);
1298 spin_unlock_irq(&epfile->ffs->eps_lock);
1301 ffsm = generic_find_memory_area(epfile, myIoData.buf, myIoData.len);
1306 list_for_each_entry(req, &epfile->ep->req->list, list) {
1308 usb_ep_dequeue(epfile->ep->ep, req);
1309 spin_unlock_irq(&epfile->ffs->eps_lock);
1313 spin_unlock_irq(&epfile->ffs->eps_lock);
1321 spin_unlock_irq(&epfile->ffs->eps_lock);
1326 spin_unlock_irq(&epfile->ffs->eps_lock);
1329 ffsm = generic_find_memory_area(epfile, myIoData.buf, myIoData.len);
1334 list_for_each_entry(req, &epfile->ep->req->list, list) {
1336 spin_unlock_irq(&epfile->ffs->eps_lock);
1340 spin_unlock_irq(&epfile->ffs->eps_lock);
1344 ret = usb_ep_fifo_status(epfile->ep->ep);
1347 usb_ep_fifo_flush(epfile->ep->ep);
1351 ret = usb_ep_clear_halt(epfile->ep->ep);
1354 ret = epfile->ep->num;
1362 switch (epfile->ffs->speed) {
1372 for (i = 0; i < epfile->ffs->eps_count; i++) {
1373 if (epfile->ffs->epfiles + i == epfile)
1376 ep = epfile->ffs->eps + i;
1378 spin_unlock_irq(&epfile->ffs->eps_lock);
1387 spin_unlock_irq(&epfile->ffs->eps_lock);
1397 struct ffs_epfile *epfile = file->private_data;
1399 if (kfifo_is_empty(&epfile->reqEventFifo)) {
1402 spin_lock_irqsave(&epfile->ffs->eps_lock, flags);
1403 status = kfifo_to_user(&epfile->reqEventFifo, buf, count, &copied) == 0 ? copied : -1;
1404 spin_unlock_irqrestore(&epfile->ffs->eps_lock, flags);
1417 struct ffs_epfile *epfile = file->private_data;
1419 poll_wait(file, &epfile->wait_que, wait);
1420 if (!kfifo_is_empty(&epfile->reqEventFifo)) {
1760 struct ffs_epfile *epfile = NULL, *epfiles = NULL;
1770 epfile = epfiles;
1771 for (i = 1; i <= count; ++i, ++epfile) {
1772 epfile->ffs = ffs;
1773 mutex_init(&epfile->mutex);
1774 INIT_LIST_HEAD(&epfile->memory_list);
1775 init_waitqueue_head(&epfile->wait_que);
1777 if (sprintf(epfile->name, "%s.ep%02x", ffs->dev_name, ffs->eps_addrmap[i]) < 0) {
1781 if (sprintf(epfile->name, "%s.ep%u", ffs->dev_name, i) < 0) {
1786 cdev_init(&epfile->cdev, &ffs_epfile_operations);
1787 epfile->devno=MKDEV(MAJOR(ffs->devno), i);
1788 ret = cdev_add(&epfile->cdev, epfile->devno, 1);
1795 epfile->device = device_create(ffs_class, NULL, epfile->devno, NULL, epfile->name);
1796 if (IS_ERR(epfile->device))
1798 cdev_del(&epfile->cdev);
1810 struct ffs_epfile *epfile = epfiles;
1814 for (; count; --count, ++epfile) {
1815 BUG_ON(mutex_is_locked(&epfile->mutex));
1816 device_destroy(ffs_class, epfile->devno);
1817 cdev_del(&epfile->cdev);
1826 struct ffs_epfile *epfile = func->ffs->epfiles;
1837 if (epfile) {
1838 epfile->ep = NULL;
1839 ++epfile;
1849 struct ffs_epfile *epfile = ffs->epfiles;
1867 epfile->ep = ep;
1868 epfile->in = usb_endpoint_dir_in(ep->ep->desc);
1869 epfile->isoc = usb_endpoint_xfer_isoc(ep->ep->desc);
1875 ++epfile;