OLD | NEW |
1 #! /bin/sh | 1 #! /bin/sh |
2 # | 2 # |
3 # Laptop mode tools module: usb-autosuspend. | 3 # Laptop mode tools module: usb-autosuspend. |
4 # | 4 # |
5 | 5 |
6 blacklisted() { | 6 blacklisted() { |
7 for usbid in $AUTOSUSPEND_USBID_BLACKLIST; do | 7 for usbid in $AUTOSUSPEND_USBID_BLACKLIST; do |
8 if ! echo $usbid | grep -q ':'; then | 8 if ! echo $usbid | grep -q ':'; then |
9 log "MSG" "WARNING: Invalid entry \"$usbid\" in AUTOSUSP
END_USBID_BLACKLIST." | 9 log "MSG" "WARNING: Invalid entry \"$usbid\" in AUTOSUSP
END_USBID_BLACKLIST." |
10 fi | 10 fi |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 if [ $ON_AC -eq 1 ]; then | 43 if [ $ON_AC -eq 1 ]; then |
44 if [ "$ACTIVATE" -eq 1 ]; then | 44 if [ "$ACTIVATE" -eq 1 ]; then |
45 SUSPEND_USB_DEVICES="$LM_AC_SUSPEND_USB" | 45 SUSPEND_USB_DEVICES="$LM_AC_SUSPEND_USB" |
46 else | 46 else |
47 SUSPEND_USB_DEVICES="$NOLM_AC_SUSPEND_USB" | 47 SUSPEND_USB_DEVICES="$NOLM_AC_SUSPEND_USB" |
48 fi | 48 fi |
49 else | 49 else |
50 SUSPEND_USB_DEVICES="$BATT_SUSPEND_USB" | 50 SUSPEND_USB_DEVICES="$BATT_SUSPEND_USB" |
51 fi | 51 fi |
52 | 52 |
| 53 if [ -d /sys/bus/usb/devices ]; then |
| 54 if [ "$DEVICES" != "" ]; then |
| 55 # If a list of devices has been provided, operate on only the |
| 56 # listed USB devices. |
| 57 DEVICE_LIST="" |
| 58 for DEVICE in $DEVICES; do |
| 59 DEVICE_LIST="$DEVICE_LIST $DEVICE" |
| 60 done |
| 61 else |
| 62 # If no list was provided, operate on all USB devices |
| 63 DEVICE_LIST=/sys/bus/usb/devices/* |
| 64 fi |
| 65 else |
| 66 # This will rarely happen. |
| 67 log "VERBOSE" "There are no USB devices." |
| 68 fi |
| 69 |
53 if [ x$SUSPEND_USB_DEVICES = x1 ]; then | 70 if [ x$SUSPEND_USB_DEVICES = x1 ]; then |
54 if [ -f /sys/module/usbcore/parameters/autosuspend ]; then | 71 if [ -f /sys/module/usbcore/parameters/autosuspend ]; then |
55 echo $AUTOSUSPEND_TIMEOUT > /sys/module/usbcore/parameters/autosus
pend | 72 echo $AUTOSUSPEND_TIMEOUT > /sys/module/usbcore/parameters/autosus
pend |
56 log "VERBOSE" "Enabling autosuspend mode for USBCORE Controller, w
ith timeout $AUTOSUSPEND_TIMEOUT." | 73 log "VERBOSE" "Enabling autosuspend mode for USBCORE Controller, w
ith timeout $AUTOSUSPEND_TIMEOUT." |
57 else | 74 else |
58 log "VERBOSE" "Not enabling autosuspend mode for USBCORE Controlle
r. Not Supported" | 75 log "VERBOSE" "Not enabling autosuspend mode for USBCORE Controlle
r. Not Supported" |
59 fi | 76 fi |
60 » if [ -d /sys/bus/usb/devices ]; then | 77 » if [ "$DEVICE_LIST" != "" ]; then |
61 » for usb_device in /sys/bus/usb/devices/*; | 78 » for usb_device in $DEVICE_LIST; |
62 do | 79 do |
63 usb_device=`basename $usb_device`; | 80 usb_device=`basename $usb_device`; |
64 if ! blacklisted /sys/bus/usb/devices/$usb_device; then | 81 if ! blacklisted /sys/bus/usb/devices/$usb_device; then |
65 if ! blacklisted_by_type /sys/bus/usb/devices/$usb_devic
e; then | 82 if ! blacklisted_by_type /sys/bus/usb/devices/$usb_devic
e; then |
66 if [ -f /sys/bus/usb/devices/$usb_device/power/autosus
pend ]; then | 83 if [ -f /sys/bus/usb/devices/$usb_device/power/autosus
pend ]; then |
67 echo $AUTOSUSPEND_TIMEOUT > /sys/bus/usb/devic
es/$usb_device/power/autosuspend; | 84 echo $AUTOSUSPEND_TIMEOUT > /sys/bus/usb/devic
es/$usb_device/power/autosuspend; |
68 log "VERBOSE" "Enabling auto suspend mode for
usb device $usb_device." | 85 log "VERBOSE" "Enabling auto suspend mode for
usb device $usb_device." |
69 else | 86 else |
70 log "VERBOSE" "Not enabling auto suspend mode
for usb device $usb_device" | 87 log "VERBOSE" "Not enabling auto suspend mode
for usb device $usb_device" |
71 fi | 88 fi |
72 | 89 |
73 if [ -f /sys/bus/usb/devices/$usb_device/power/level ]
; then | 90 if [ -f /sys/bus/usb/devices/$usb_device/power/level ]
; then |
74 echo "auto" > /sys/bus/usb/devices/$usb_device
/power/level; | 91 echo "auto" > /sys/bus/usb/devices/$usb_device
/power/level; |
75 log "VERBOSE" "Enabling auto power level for u
sb device $usb_device." | 92 log "VERBOSE" "Enabling auto power level for u
sb device $usb_device." |
76 else | 93 else |
77 log "VERBOSE" "Not enabling auto power level f
or usb device $usb_device" | 94 log "VERBOSE" "Not enabling auto power level f
or usb device $usb_device" |
78 fi | 95 fi |
79 else | 96 else |
80 log "VERBOSE" "Device $usb_device has blacklisted driv
er type, skipping auto suspend." | 97 log "VERBOSE" "Device $usb_device has blacklisted driv
er type, skipping auto suspend." |
81 fi | 98 fi |
82 else | 99 else |
83 log "VERBOSE" "USB device $usbid is in the autosuspend
blacklist." | 100 log "VERBOSE" "USB device $usbid is in the autosuspend
blacklist." |
84 fi | 101 fi |
85 done | 102 done |
86 else | |
87 # This will rarely happen. | |
88 log "VERBOSE" "There are no USB devices." | |
89 fi | 103 fi |
90 else | 104 else |
91 AUTOSUSPEND_TIMEOUT=0 | 105 AUTOSUSPEND_TIMEOUT=0 |
92 if [ -f /sys/module/usbcore/parameters/autosuspend ]; then | 106 if [ -f /sys/module/usbcore/parameters/autosuspend ]; then |
93 echo $AUTOSUSPEND_TIMEOUT > /sys/module/usbcore/parameters/autosus
pend | 107 echo $AUTOSUSPEND_TIMEOUT > /sys/module/usbcore/parameters/autosus
pend |
94 log "VERBOSE" "Disabling autosuspend mode for USBCORE Controller,
with timeout $AUTOSUSPEND_TIMEOUT." | 108 log "VERBOSE" "Disabling autosuspend mode for USBCORE Controller,
with timeout $AUTOSUSPEND_TIMEOUT." |
95 else | 109 else |
96 log "VERBOSE" "Not disabling autosuspend mode for USBCORE Controll
er. Not Supported" | 110 log "VERBOSE" "Not disabling autosuspend mode for USBCORE Controll
er. Not Supported" |
97 fi | 111 fi |
98 » if [ -d /sys/bus/usb/devices ]; then | 112 » if [ "$DEVICE_LIST" != "" ]; then |
99 » for usb_device in /sys/bus/usb/devices/*; | 113 » for usb_device in $DEVICE_LIST; |
100 do | 114 do |
101 usb_device=`basename $usb_device`; | 115 usb_device=`basename $usb_device`; |
102 if [ -f /sys/bus/usb/devices/$usb_device/power/autosuspend ];
then | 116 if [ -f /sys/bus/usb/devices/$usb_device/power/autosuspend ];
then |
103 echo $AUTOSUSPEND_TIMEOUT > /sys/bus/usb/devices/$usb_devi
ce/power/autosuspend; | 117 echo $AUTOSUSPEND_TIMEOUT > /sys/bus/usb/devices/$usb_devi
ce/power/autosuspend; |
104 log "VERBOSE" "Disabling auto suspend mode for usb device
$usb_device." | 118 log "VERBOSE" "Disabling auto suspend mode for usb device
$usb_device." |
105 else | 119 else |
106 log "VERBOSE" "Not disabling auto suspend mode for usb dev
ice $usb_device" | 120 log "VERBOSE" "Not disabling auto suspend mode for usb dev
ice $usb_device" |
107 fi | 121 fi |
108 | 122 |
109 if [ -f /sys/bus/usb/devices/$usb_device/power/level ]; then | 123 if [ -f /sys/bus/usb/devices/$usb_device/power/level ]; then |
110 echo "on" > /sys/bus/usb/devices/$usb_device/power/level; | 124 echo "on" > /sys/bus/usb/devices/$usb_device/power/level; |
111 log "VERBOSE" "Enabling ON power level for usb device $usb
_device." | 125 log "VERBOSE" "Enabling ON power level for usb device $usb
_device." |
112 else | 126 else |
113 log "VERBOSE" "Not enabling ON power level for usb device
$usb_device" | 127 log "VERBOSE" "Not enabling ON power level for usb device
$usb_device" |
114 fi | 128 fi |
115 done | 129 done |
116 else | |
117 # This will rarely happen. | |
118 log "VERBOSE" "There are no USB devices." | |
119 fi | 130 fi |
120 fi | 131 fi |
121 else | 132 else |
122 log "VERBOSE" "USB autosuspend is disabled." | 133 log "VERBOSE" "USB autosuspend is disabled." |
123 fi | 134 fi |
124 | 135 |
OLD | NEW |