• Dan Williams's avatar
    usbnet: allow status interrupt URB to always be active · 6eecdc5f
    Dan Williams authored
    Some drivers (sierra_net) need the status interrupt URB
    active even when the device is closed, because they receive
    custom indications from firmware.  Add functions to refcount
    the status interrupt URB submit/kill operation so that
    sub-drivers and the generic driver don't fight over whether
    the status interrupt URB is active or not.
    
    A sub-driver can call usbnet_status_start() at any time, but
    the URB is only submitted the first time the function is
    called.  Likewise, when the sub-driver is done with the URB,
    it calls usbnet_status_stop() but the URB is only killed when
    all users have stopped it.  The URB is still killed and
    re-submitted for suspend/resume, as before, with the same
    refcount it had at suspend.
    Signed-off-by: default avatarDan Williams <dcbw@redhat.com>
    Acked-by: default avatarOliver Neukum <oliver@neukum.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6eecdc5f
usbnet.c 51.7 KB