• Alan Stern's avatar
    [PATCH] USB: usb_bulk_message() handles interrupts endpoints · d09d36a9
    Alan Stern authored
    Because there is no bulk_interrupt_message() routine and no
    USBDEVFS_INTERRUPT ioctl, people have been forced to abuse the
    usb_bulk_message() routine and USBDEVFS_BULK by using them for interrupt
    transfers as well as bulk transfers.
    
    This patch (as567) formalizes this practice and adds code to
    usb_bulk_message() for detecting when the target is really an interrupt
    endpoint.  If it is, the routine submits an interrupt URB (using the
    default interval) instead of a bulk URB.  In theory this should help HCDs
    that don't like it when people try to mix transfer types, queuing both
    periodic and non-periodic types for the same endpoint.
    
    Not fully tested -- I don't have any programs that use USBDEVFS_BULK for
    interrupt transfers -- but it compiles okay and normal bulk messages work
    as well as before.
    Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    
     drivers/usb/core/message.c |   24 ++++++++++++++++++++----
     1 file changed, 20 insertions(+), 4 deletions(-)
    d09d36a9
message.c 45.3 KB