• Hui Wang's avatar
    Bluetooth: btusb: Fix the autosuspend enable and disable · 7bd9fb05
    Hui Wang authored
    I tried to disable the autosuspend on btusb through the module
    parameter enable_autosuspend, this parameter is set to N, but the usb
    bluetooth device is still runtime suspended.
    $ cat /sys/module/btusb/parameters/enable_autosuspend
    N
    $ cat /sys/bus/usb/devices/3-10/power/runtime_status
    suspended
    $ cat /sys/bus/usb/devices/3-10/power/runtime_suspended_time
    65187
    
    We already set ".supports_autosuspend = 1" in the usb_driver, this
    device will be set autosuspend enabled by usb core, we don't need
    to call usb_enable_autosuspend() in the btusb_probe(). Instead if
    users set the parameter enable_autosuspend to N, we need to call
    usb_disable_autosuspend() in the btusb_probe(). After this change
    and set the parameter to N, we could see the device is not runtime
    suspended anymore.
    $ cat /sys/module/btusb/parameters/enable_autosuspend
    N
    $ cat /sys/bus/usb/devices/3-10/power/runtime_status
    active
    $ cat /sys/bus/usb/devices/3-10/power/runtime_suspended_time
    0
    
    And if we disable the autosuspend in the btusb_probe(), we need to
    enable the autosuspend in the disconnect(), this could guarantee
    that the device could be runtime suspended after we rmmod the btusb.
    Signed-off-by: default avatarHui Wang <hui.wang@canonical.com>
    Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
    7bd9fb05
btusb.c 133 KB