• Ben Dooks's avatar
    USB: s3c-hsotg: Add initial detection and setup for dedicated FIFO mode · 10aebc77
    Ben Dooks authored
    Add support for the dedicated FIFO mode on newer SoCs such as the S5PV210
    partly to improve support and to fix the bug where any non-EP0 IN endpoint
    requires its own FIFO allocation.
    
    To fix this, we ensure that any non-zero IN endpoint is given a TXFIFO
    using the same allocation method as the periodic case (all our current
    hardware has enough FIFOs and FIFO memory for a 1:1 mapping) and ensure
    that the necessary transmission done interrupt is enabled.
    
    The default settings from reset for the core point all EPs at FIFO0,
    used for the control endpoint. However, the controller documentation
    states that all IN endpoints _must_ have a unique FIFO to avoid any
    contention during transmission.
    
    Note, this leaves us with a large IN FIFO for EP0 (which re-uses the
    old NPTXFIFO) for an endpoint which cannot shift more than a pair of
    packets at a time... this is a waste, but it looks like we cannot
    re-allocate space to the individual IN FIFOs as they are already
    maxed out (to be confirmed).
    Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    10aebc77
s3c-hsotg.c 88.1 KB