• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/usb/gadget/

Lines Matching refs:udc_controller

75 static struct qe_udc *udc_controller;
191 udc_controller->ep0_state = WAIT_FOR_SETUP;
192 udc_controller->ep0_dir = 0;
453 ep->rxbuf_d = dma_map_single(udc_controller->gadget.dev.parent,
459 dma_sync_single_for_device(udc_controller->gadget.dev.parent,
703 setbits8(&udc_controller->usb_regs->usb_usmod, USB_MODE_EN);
708 clrbits8(&udc_controller->usb_regs->usb_usmod, USB_MODE_EN);
1642 dma_unmap_single(udc_controller->gadget.dev.parent,
1648 udc_controller->gadget.dev.parent,
1868 tmp = in_be16(&udc_controller->usb_param->frame_n);
2313 if (!udc_controller)
2322 if (udc_controller->driver)
2326 spin_lock_irqsave(&udc_controller->lock, flags);
2330 udc_controller->driver = driver;
2331 udc_controller->gadget.dev.driver = &driver->driver;
2332 udc_controller->gadget.speed = (enum usb_device_speed)(driver->speed);
2333 spin_unlock_irqrestore(&udc_controller->lock, flags);
2335 retval = driver->bind(&udc_controller->gadget);
2337 dev_err(udc_controller->dev, "bind to %s --> %d",
2339 udc_controller->gadget.dev.driver = NULL;
2340 udc_controller->driver = NULL;
2347 out_be16(&udc_controller->usb_regs->usb_usber, 0xffff);
2348 out_be16(&udc_controller->usb_regs->usb_usbmr, USB_E_DEFAULT_DEVICE);
2349 udc_controller->usb_state = USB_STATE_ATTACHED;
2350 udc_controller->ep0_state = WAIT_FOR_SETUP;
2351 udc_controller->ep0_dir = USB_DIR_OUT;
2352 dev_info(udc_controller->dev, "%s bind to driver %s \n",
2353 udc_controller->gadget.name, driver->driver.name);
2363 if (!udc_controller)
2366 if (!driver || driver != udc_controller->driver)
2373 udc_controller->usb_state = USB_STATE_ATTACHED;
2374 udc_controller->ep0_state = WAIT_FOR_SETUP;
2375 udc_controller->ep0_dir = 0;
2378 spin_lock_irqsave(&udc_controller->lock, flags);
2379 udc_controller->gadget.speed = USB_SPEED_UNKNOWN;
2380 nuke(&udc_controller->eps[0], -ESHUTDOWN);
2381 list_for_each_entry(loop_ep, &udc_controller->gadget.ep_list,
2384 spin_unlock_irqrestore(&udc_controller->lock, flags);
2387 driver->disconnect(&udc_controller->gadget);
2390 driver->unbind(&udc_controller->gadget);
2391 udc_controller->gadget.dev.driver = NULL;
2392 udc_controller->driver = NULL;
2394 dev_info(udc_controller->dev, "unregistered gadget driver '%s'\r\n",
2516 complete(udc_controller->done);
2517 cpm_muram_free(cpm_muram_offset(udc_controller->ep_param[0]));
2519 udc_controller->ep_param[i] = NULL;
2521 kfree(udc_controller);
2522 udc_controller = NULL;
2540 udc_controller = qe_udc_config(ofdev);
2541 if (!udc_controller) {
2546 udc_controller->soc_type = (unsigned long)match->data;
2547 udc_controller->usb_regs = of_iomap(np, 0);
2548 if (!udc_controller->usb_regs) {
2555 qe_udc_reg_init(udc_controller);
2557 udc_controller->gadget.ops = &qe_gadget_ops;
2560 udc_controller->gadget.ep0 = &udc_controller->eps[0].ep;
2562 INIT_LIST_HEAD(&udc_controller->gadget.ep_list);
2565 udc_controller->gadget.speed = USB_SPEED_UNKNOWN;
2568 udc_controller->gadget.name = driver_name;
2570 device_initialize(&udc_controller->gadget.dev);
2572 dev_set_name(&udc_controller->gadget.dev, "gadget");
2574 udc_controller->gadget.dev.release = qe_udc_release;
2575 udc_controller->gadget.dev.parent = &ofdev->dev;
2584 qe_ep_config(udc_controller, (unsigned char)i);
2588 ret = qe_ep_init(udc_controller, 0, &qe_ep0_desc);
2593 udc_controller->nullbuf = kzalloc(256, GFP_KERNEL);
2594 if (udc_controller->nullbuf == NULL) {
2595 dev_err(udc_controller->dev, "cannot alloc nullbuf\n");
2601 udc_controller->statusbuf = kzalloc(2, GFP_KERNEL);
2602 if (udc_controller->statusbuf == NULL) {
2607 udc_controller->nullp = virt_to_phys((void *)udc_controller->nullbuf);
2608 if (udc_controller->nullp == DMA_ADDR_INVALID) {
2609 udc_controller->nullp = dma_map_single(
2610 udc_controller->gadget.dev.parent,
2611 udc_controller->nullbuf,
2614 udc_controller->nullmap = 1;
2616 dma_sync_single_for_device(udc_controller->gadget.dev.parent,
2617 udc_controller->nullp, 256,
2621 tasklet_init(&udc_controller->rx_tasklet, ep_rx_tasklet,
2622 (unsigned long)udc_controller);
2624 udc_controller->usb_irq = irq_of_parse_and_map(np, 0);
2625 if (!udc_controller->usb_irq) {
2630 ret = request_irq(udc_controller->usb_irq, qe_udc_irq, 0,
2631 driver_name, udc_controller);
2633 dev_err(udc_controller->dev, "cannot request irq %d err %d \n",
2634 udc_controller->usb_irq, ret);
2638 ret = device_add(&udc_controller->gadget.dev);
2642 dev_info(udc_controller->dev,
2644 (udc_controller->soc_type == PORT_QE) ? "QE" : "CPM");
2648 free_irq(udc_controller->usb_irq, udc_controller);
2650 irq_dispose_mapping(udc_controller->usb_irq);
2652 if (udc_controller->nullmap) {
2653 dma_unmap_single(udc_controller->gadget.dev.parent,
2654 udc_controller->nullp, 256,
2656 udc_controller->nullp = DMA_ADDR_INVALID;
2658 dma_sync_single_for_cpu(udc_controller->gadget.dev.parent,
2659 udc_controller->nullp, 256,
2662 kfree(udc_controller->statusbuf);
2664 kfree(udc_controller->nullbuf);
2666 ep = &udc_controller->eps[0];
2672 iounmap(udc_controller->usb_regs);
2674 kfree(udc_controller);
2675 udc_controller = NULL;
2698 if (!udc_controller)
2701 udc_controller->done = &done;
2702 tasklet_disable(&udc_controller->rx_tasklet);
2704 if (udc_controller->nullmap) {
2705 dma_unmap_single(udc_controller->gadget.dev.parent,
2706 udc_controller->nullp, 256,
2708 udc_controller->nullp = DMA_ADDR_INVALID;
2710 dma_sync_single_for_cpu(udc_controller->gadget.dev.parent,
2711 udc_controller->nullp, 256,
2714 kfree(udc_controller->statusbuf);
2715 kfree(udc_controller->nullbuf);
2717 ep = &udc_controller->eps[0];
2723 dma_unmap_single(udc_controller->gadget.dev.parent,
2728 dma_sync_single_for_cpu(udc_controller->gadget.dev.parent,
2736 free_irq(udc_controller->usb_irq, udc_controller);
2737 irq_dispose_mapping(udc_controller->usb_irq);
2739 tasklet_kill(&udc_controller->rx_tasklet);
2741 iounmap(udc_controller->usb_regs);
2743 device_unregister(&udc_controller->gadget.dev);