Loading drivers/usb/dwc3/gadget.c +1 −0 Original line number Diff line number Diff line Loading @@ -2168,6 +2168,7 @@ static int dwc3_gadget_start(struct usb_gadget *g, } dwc->irq = irq; g->interrupt_num = dwc->irq; spin_lock_irqsave(&dwc->lock, flags); if (dwc->gadget_driver) { Loading drivers/usb/gadget/android.c +14 −1 Original line number Diff line number Diff line Loading @@ -293,7 +293,7 @@ static const char *pm_qos_to_string(enum android_pm_qos_state state) } } static void android_pm_qos_update_latency(struct android_dev *dev, u32 latency) static void android_pm_qos_update_latency(struct android_dev *dev, s32 latency) { static int last_vote = -1; Loading Loading @@ -4069,6 +4069,19 @@ static int android_probe(struct platform_device *pdev) /* pm qos request to prevent apps idle power collapse */ android_dev->curr_pm_qos_state = NO_USB_VOTE; if (pdata && pdata->pm_qos_latency[0]) { /* * The default request type PM_QOS_REQ_ALL_CORES is * applicable to all CPU cores that are online and * would have a power impact when there are more * number of CPUs. PM_QOS_REQ_AFFINE_IRQ request * type shall update/apply the vote only to that CPU to * which IRQ's affinity is set to. */ #ifdef CONFIG_SMP android_dev->pm_qos_req_dma.type = PM_QOS_REQ_AFFINE_IRQ; android_dev->pm_qos_req_dma.irq = android_dev->cdev->gadget->interrupt_num; #endif pm_qos_add_request(&android_dev->pm_qos_req_dma, PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE); android_dev->down_pm_qos_sample_sec = DOWN_PM_QOS_SAMPLE_SEC; Loading drivers/usb/gadget/ci13xxx_msm.c +5 −1 Original line number Diff line number Diff line Loading @@ -223,7 +223,11 @@ static void ci13xxx_msm_notify_event(struct ci13xxx *udc, unsigned event) dev_info(dev, "CI13XXX_CONTROLLER_ERROR_EVENT received\n"); ci13xxx_msm_mark_err_event(); break; case CI13XXX_CONTROLLER_UDC_STARTED_EVENT: dev_info(dev, "CI13XXX_CONTROLLER_UDC_STARTED_EVENT received\n"); udc->gadget.interrupt_num = _udc_ctxt.irq; break; default: dev_dbg(dev, "unknown ci13xxx_udc event\n"); break; Loading include/linux/usb/gadget.h +2 −0 Original line number Diff line number Diff line Loading @@ -632,6 +632,7 @@ struct usb_gadget_ops { * @bam2bam_func_enabled; Indicates function using bam2bam is enabled or not. * @extra_buf_alloc: Extra allocation size for AXI prefetch so that out of * boundary access is protected. * @interrupt_num: Interrupt number for the underlying platform device. * * Gadgets have a mostly-portable "gadget driver" implementing device * functions, handling all usb configurations and interfaces. Gadget Loading Loading @@ -679,6 +680,7 @@ struct usb_gadget { bool l1_supported; bool bam2bam_func_enabled; u32 extra_buf_alloc; int interrupt_num; }; #define work_to_gadget(w) (container_of((w), struct usb_gadget, work)) Loading Loading
drivers/usb/dwc3/gadget.c +1 −0 Original line number Diff line number Diff line Loading @@ -2168,6 +2168,7 @@ static int dwc3_gadget_start(struct usb_gadget *g, } dwc->irq = irq; g->interrupt_num = dwc->irq; spin_lock_irqsave(&dwc->lock, flags); if (dwc->gadget_driver) { Loading
drivers/usb/gadget/android.c +14 −1 Original line number Diff line number Diff line Loading @@ -293,7 +293,7 @@ static const char *pm_qos_to_string(enum android_pm_qos_state state) } } static void android_pm_qos_update_latency(struct android_dev *dev, u32 latency) static void android_pm_qos_update_latency(struct android_dev *dev, s32 latency) { static int last_vote = -1; Loading Loading @@ -4069,6 +4069,19 @@ static int android_probe(struct platform_device *pdev) /* pm qos request to prevent apps idle power collapse */ android_dev->curr_pm_qos_state = NO_USB_VOTE; if (pdata && pdata->pm_qos_latency[0]) { /* * The default request type PM_QOS_REQ_ALL_CORES is * applicable to all CPU cores that are online and * would have a power impact when there are more * number of CPUs. PM_QOS_REQ_AFFINE_IRQ request * type shall update/apply the vote only to that CPU to * which IRQ's affinity is set to. */ #ifdef CONFIG_SMP android_dev->pm_qos_req_dma.type = PM_QOS_REQ_AFFINE_IRQ; android_dev->pm_qos_req_dma.irq = android_dev->cdev->gadget->interrupt_num; #endif pm_qos_add_request(&android_dev->pm_qos_req_dma, PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE); android_dev->down_pm_qos_sample_sec = DOWN_PM_QOS_SAMPLE_SEC; Loading
drivers/usb/gadget/ci13xxx_msm.c +5 −1 Original line number Diff line number Diff line Loading @@ -223,7 +223,11 @@ static void ci13xxx_msm_notify_event(struct ci13xxx *udc, unsigned event) dev_info(dev, "CI13XXX_CONTROLLER_ERROR_EVENT received\n"); ci13xxx_msm_mark_err_event(); break; case CI13XXX_CONTROLLER_UDC_STARTED_EVENT: dev_info(dev, "CI13XXX_CONTROLLER_UDC_STARTED_EVENT received\n"); udc->gadget.interrupt_num = _udc_ctxt.irq; break; default: dev_dbg(dev, "unknown ci13xxx_udc event\n"); break; Loading
include/linux/usb/gadget.h +2 −0 Original line number Diff line number Diff line Loading @@ -632,6 +632,7 @@ struct usb_gadget_ops { * @bam2bam_func_enabled; Indicates function using bam2bam is enabled or not. * @extra_buf_alloc: Extra allocation size for AXI prefetch so that out of * boundary access is protected. * @interrupt_num: Interrupt number for the underlying platform device. * * Gadgets have a mostly-portable "gadget driver" implementing device * functions, handling all usb configurations and interfaces. Gadget Loading Loading @@ -679,6 +680,7 @@ struct usb_gadget { bool l1_supported; bool bam2bam_func_enabled; u32 extra_buf_alloc; int interrupt_num; }; #define work_to_gadget(w) (container_of((w), struct usb_gadget, work)) Loading