usb: Add an interval parameter to create_int_queue
Subsystems (2)
PATCH v2 1/1 usb: Add an interval parameter to create_int_queue
Currently create_int_queue is only implemented by the ehci code, and that does not honor interrupt intervals, but other drivers which might also want to implement create_int_queue may honor intervals, so add an interval param.
Signed-off-by Hans de Goede <[email protected]>
---
Changes in v2:
-Fix compile error in ehci-hcd.c
(this was not tested because we can only enable one usb host at a time)
--- common/usb_kbd.c | 6 ++++-- drivers/usb/host/ehci-hcd.c | 4 ++-- include/usb.h | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-)
common/usb_kbd.c +4 -2
@@ -332,7 +332,8 @@ static inline void usb_kbd_poll_for_event(struct usb_device *dev)/* We've consumed all queued int packets, create new */ destroy_int_queue (dev, data->intq); data->intq =create_int_queue (dev, data->intpipe,1 , - USB_KBD_BOOT_REPORT_SIZE, data->new); +USB_KBD_BOOT_REPORT_SIZE , data->new, + data->intinterval); }#endif }
@@ -453,7 +454,8 @@ static int usb_kbd_probe(struct usb_device *dev, unsigned int ifnum)debug ("USB KBD: enable interrupt pipe...\n" );#ifdef CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE data->intq =create_int_queue (dev, data->intpipe,1 , -USB_KBD_BOOT_REPORT_SIZE , data->new); +USB_KBD_BOOT_REPORT_SIZE , data->new, + data->intinterval);if (!data->intq) {#else if (usb_submit_int_msg(dev, data->intpipe, data->new, data->intpktsize,
drivers/usb/host/ehci-hcd.c +2 -2
@@ -1148,7 +1148,7 @@ disable_periodic(struct ehci_ctrl *ctrl)struct int_queue *create_int_queue (struct usb_device *dev,unsigned long pipe,int queuesize, -int elementsize,void *buffer) +int elementsize,void *buffer,int interval) {struct ehci_ctrl *ctrl = dev->controller;struct int_queue *result =NULL ;
@@ -1398,7 +1398,7 @@ submit_int_msg(struct usb_device *dev, unsigned long pipe, void *buffer,debug ("dev=%p, pipe=%lu, buffer=%p, length=%d, interval=%d" , dev, pipe, buffer, length, interval); - queue =create_int_queue (dev, pipe,1 , length, buffer); + queue =create_int_queue (dev, pipe,1 , length, buffer, interval);if (!queue)return -1 ;
include/usb.h +1 -1
@@ -169,7 +169,7 @@ int submit_int_msg(struct usb_device *dev, unsigned long pipe, void *buffer,#ifdef CONFIG_USB_EHCI /* Only the ehci code has pollable int support */ struct int_queue *create_int_queue (struct usb_device *dev,unsigned long pipe, -int queuesize,int elementsize,void *buffer); +int queuesize,int elementsize,void *buffer,int interval);int destroy_int_queue (struct usb_device *dev,struct int_queue *queue);void *poll_int_queue (struct usb_device *dev,struct int_queue *queue);#endif
Signature · 1 line
2.1.0
Marek Vasut
AppliedPATCH v2 1/1 usb: Add an interval parameter to create_int_queue
Quoted 6 lines · Hans de Goede
Currently
create_int_queueis only implemented by the ehci code, and that does not honor interrupt intervals, but other drivers which might also want to implementcreate_int_queuemay honor intervals, so add an interval param.Signed-off-by Hans de Goede <[email protected]>
Applied, thanks!
Best regards,
Marek Vasut