• Peter E. Berger's avatar
    USB: io_ti: Add heartbeat to keep idle EP/416 ports from disconnecting · 26c78daa
    Peter E. Berger authored
    When using Edgeport/416 models with newer firmware (sometime after
    firmware version 4.80.0), idle ports are automatically bounced
    (disconnected and then reconnected) approximately every 60 seconds.
    This breaks programs (e.g: minicom) where idle periods are common,
    normal and expected.
    
    I confirmed with the manufacturer (Digi International) that Edgeport/416
    models now ship from the factory with firmware that expects periodic
    "heartbeat" queries from the driver to keep idle ports alive.  This
    patch implements heartbeat support using the mechanism Digi suggested
    (periodically requesting an I2C descriptor address) that appears effective
    on Edgeports running the newer firmware (that require it) and benign on
    Edgeport devices running older firmware.  Since we know that Edgeport
    firmware version 4.80 (the version distributed in /lib/firmware/down3.bin
    and used for Edgeports that are either running still older versions or
    have no onboard non-volatile firmware image) does not require heartbeat
    support, this patch schedules heartbeats only on Edgeport/416 devices,
    and only if they are running firmware versions newer than 4.80.
    Signed-off-by: default avatarPeter E. Berger <pberger@brimson.com>
    [johan: minor style changes ]
    Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
    26c78daa
io_ti.c 75.7 KB