• Tony Olech's avatar
    USB: ftdi-elan: client driver for ELAN Uxxx adapters · a5c66e4b
    Tony Olech authored
    This "ftdi-elan" module is one half of the "driver" for
    ELAN's Uxxx series adapters which are USB to PCMCIA CardBus
    adapters. Currently only the U132 adapter is available and
    it's module is called "u132-hcd".
    
    When the USB hot plug subsystem detects a Uxxx series adapter
    it should load this module.
    
    Upon a successful device probe() the jtag device file interface
    is created and the status workqueue started up.
    
    The jtag device file interface exists for the purpose of
    updating the firmware in the Uxxx series adapter, but as
    yet it had never been used.
    
    The status workqueue initializes the Uxxx and then sits there
    polling the Uxxx until a supported PCMCIA CardBus device is
    detected it will start the command and respond workqueues
    and then load the module that handles the device. This will
    initially be only the u132-hcd module. The status workqueue
    then just polls the Uxxx looking for card ejects.
    
    The command and respond workqueues implement a command
    sequencer for communicating with the firmware on the other
    side of the FTDI chip in the Uxxx. This "ftdi-elan" module
    exports some functions to interface with the sequencer.
    
    Note that this module is a USB client driver.
    
    Note that the "u132-hcd" module is a (cut-down OHCI)
    host controller.
    
    Thus we have a topology with the parent of a host controller
    being a USB client! This really stresses the USB subsystem
    semaphore/mutex handling in the module removal.
    Signed-off-by: default avatarTony Olech <tony.olech@elandigitalsystems.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    
    a5c66e4b
ftdi-elan.c 113 KB