• Rainer Weikusat's avatar
    fix for bugzilla #7544 (keyspan USB-to-serial converter) · fdcba53e
    Rainer Weikusat authored
    At least the Keyspan USA-19HS USB-to-serial converter supports
    two different configurations, one where the input endpoints
    have interrupt transfer type and one where they are bulk endpoints.
    The default UHCI configuration uses the interrupt input endpoints.
    The keyspan driver, OTOH, assumes that the device has only bulk
    endpoints (all URBs are initialized by calling usb_fill_bulk_urb
    in keyspan.c/ keyspan_setup_urb). This causes the interval field
    of the input URBs to have a value of zero instead of one, which
    'accidentally' worked with Linux at least up to 2.6.17.11 but
    stopped to with 2.6.18, which changed the UHCI support code handling
    URBs for interrupt endpoints. The patch below modifies to driver to
    initialize its input URBs either as interrupt or as bulk URBs,
    depending on the transfertype contained in the associated endpoint
    descriptor (only tested with the default configuration) enabling
    the driver to again receive data from the serial converter.
    
    Greg K-H reworked the patch.
    Signed-off-by: default avatarRainer Weikusat <rweikusat@sncag.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    fdcba53e
keyspan.c 62.3 KB