Date: Friday, August 7, 2015 @ 08:41:35
  Author: alucryd
Revision: 138043

upgpkg: tlp 0.8-1

Deleted:
  tlp/trunk/fix-udev-event-processing-for-AC-BAT.patch
  tlp/trunk/fix-udev-event-processing-for-USB.patch

--------------------------------------------+
 fix-udev-event-processing-for-AC-BAT.patch |  134 ------------
 fix-udev-event-processing-for-USB.patch    |  284 ---------------------------
 2 files changed, 418 deletions(-)

Deleted: fix-udev-event-processing-for-AC-BAT.patch
===================================================================
--- fix-udev-event-processing-for-AC-BAT.patch  2015-08-07 06:40:17 UTC (rev 
138042)
+++ fix-udev-event-processing-for-AC-BAT.patch  2015-08-07 06:41:35 UTC (rev 
138043)
@@ -1,134 +0,0 @@
-From d8092a1c3ee2183e086312269d0224bf5ffded5e Mon Sep 17 00:00:00 2001
-From: Thomas Koch <linrun...@gmx.net>
-Date: Mon, 13 Jul 2015 22:05:32 +0200
-Subject: [PATCH 1/2] Issues #147, #149: fix udev event processing for AC/BAT
- switching
-
-Background: systemd-udevd version 221 now kills forked processes
-when the main process (called by RUN=) terminates and stdout/
-stderr have been closed. First occurred on Arch Linux.
-
-Consequences:
-TLP's technique to fork udev event processing in a subshell fails
-and the code applying the settings is aborted prematurely.
-
-In case of tlp-usb-udev removing the subshell is not an option,
-because it would remove the ability to concurrently populate
-the subdevices tree and thus incapacitate the driver blacklisting
-feature.
-
-Solution:
-- Remove subshell forking for AC/BAT switching in tlp
-- Do not close stdout/stdin in tlp-usb-udev subshell to prevent
-  being killed by udev post-processing
-- Reduce wait for subdevices populating in tlp-usb-udev
----
- tlp          | 11 +++--------
- tlp-usb-udev | 62 ++++++++++++++++++++++++++++++++----------------------------
- 2 files changed, 36 insertions(+), 37 deletions(-)
-
-diff --git a/tlp b/tlp
-index 9f41611..c7c9f12 100755
---- a/tlp
-+++ b/tlp
-@@ -139,14 +139,9 @@ case "$mode" in
- 
-     auto) # set mode depending on state (called by udev rule)
-         check_root
--        ( # run in a detached subshell to avoid blocking udev,
--          # close stdout/stderr
--            exec 1> /dev/null 2>/dev/null
--
--            apply_common_settings $pwrmode
--            [ "$pwrmode" = "1" ] && poweroff_drivebay 0
--            set_radio_device_states $pwrmode
--        ) &
-+        apply_common_settings $pwrmode
-+        [ "$pwrmode" = "1" ] && poweroff_drivebay 0
-+        set_radio_device_states $pwrmode
-         ;;
- 
-     start) # set mode depending on state (interactive mode)
-diff --git a/tlp-usb-udev b/tlp-usb-udev
-index c31a686..f3b8546 100755
---- a/tlp-usb-udev
-+++ b/tlp-usb-udev
-@@ -71,22 +71,9 @@ usbdev=/sys$1
- if [ -f $usbdev/power/autosuspend ] || [ -f 
$usbdev/power/autosuspend_delay_ms ]; then
-     # device is autosuspendable
- 
--    ( # run remainder in a detached subshell to avoid blocking udev,
--      # close stdout/stderr
--        exec 1> /dev/null 2>/dev/null
--
--        # initialize driver blacklist from settings
--        drv_bl=${USB_DRIVER_BLACKLIST:-$DEFAULT_USB_DRIVER_BLACKLIST}
--
--        # add wwan driver blacklist if enabled
--        USB_BLACKLIST_WWAN=${USB_BLACKLIST_WWAN:-1} # default is exclude
--
--        if [ $USB_BLACKLIST_WWAN = "1" ]; then
--            drv_bl="$drv_bl $USB_WWAN_DRIVERS"
--        fi
--
--        # wait for subdevices to populate via parallel udev events (not 
handled here)
--        sleep 2.0
-+    (   # run remainder in a detached subshell to allow udev to populate
-+        # subdevices in parallel; do *not* close stdin/stdout to avoid
-+        # being "sanitized" (killed) by udev post-processing
- 
-         # apply autosuspend
-         ctrlf="control"
-@@ -105,19 +92,36 @@ if [ -f $usbdev/power/autosuspend ] || [ -f 
$usbdev/power/autosuspend_delay_ms ]
-             control="on"
-             exc="_dev_black"
-         else
--            # check subdevices for blacklisted drivers
--            for subdev in $usbdev/*:*; do
--                # get driver name from subdev uevent file
--                drv=$(sed -rn 's/^DRIVER=(.*)/\1/p' $subdev/uevent)
--
--                # check against driver blacklist
--                if wordinlist "$drv" "$drv_bl"; then
--                    # driver is blacklisted
--                    control="on"
--                    exc="_drv_black"
--                    break
--                fi
--            done
-+            # initialize driver blacklist from settings
-+            drv_bl=${USB_DRIVER_BLACKLIST:-$DEFAULT_USB_DRIVER_BLACKLIST}
-+
-+            # add wwan driver blacklist if enabled
-+            USB_BLACKLIST_WWAN=${USB_BLACKLIST_WWAN:-1} # default is exclude
-+            if [ $USB_BLACKLIST_WWAN = "1" ]; then
-+                drv_bl="$drv_bl $USB_WWAN_DRIVERS"
-+            fi
-+
-+            if [ -n "$drv_bl" ]; then
-+                # proceed only when driver blacklist is not empty
-+
-+                # wait for subdevices to populate via parallel udev events
-+                # (not handled here)
-+                sleep 0.5
-+
-+                # check subdevices for blacklisted drivers
-+                for subdev in $usbdev/*:*; do
-+                    # get driver name from subdev uevent file
-+                    drv=$(sed -rn 's/^DRIVER=(.*)/\1/p' $subdev/uevent)
-+
-+                    # check against driver blacklist
-+                    if wordinlist "$drv" "$drv_bl"; then
-+                        # driver is blacklisted
-+                        control="on"
-+                        exc="_drv_black"
-+                        break
-+                    fi
-+                done
-+            fi
-         fi
- 
-         if [ -f $usbdev/power/control ]; then
--- 
-1.9.1
-

Deleted: fix-udev-event-processing-for-USB.patch
===================================================================
--- fix-udev-event-processing-for-USB.patch     2015-08-07 06:40:17 UTC (rev 
138042)
+++ fix-udev-event-processing-for-USB.patch     2015-08-07 06:41:35 UTC (rev 
138043)
@@ -1,284 +0,0 @@
-From 9694c03ee7522b8fc4a73aec20e51159b4ea0fdb Mon Sep 17 00:00:00 2001
-From: Thomas Koch <linrun...@gmx.net>
-Date: Mon, 13 Jul 2015 21:46:00 +0200
-Subject: [PATCH 2/2] Issues #147, 149: fix udev event processing for USB
- hotplugging
-
-Rationale: USB_DRIVER_BLACKLIST code detecting drivers by iterating
-subdevices is broken since systemd-udevd v221 (and higher).
-
-Solution: revert implementation to version 0.6 code
-- Remove detached subshell
-- Detect usbhid via subdevices' bInterfaceClass = 03
-- Detect wwan devices via idVendor static blacklist
-- Remove USB_DRIVER_BLACKLIST feature
----
- default       |   5 ---
- tlp-functions |  36 ++++++++--------
- tlp-stat      |   3 +-
- tlp-usb-udev  | 132 +++++++++++++++++++++++++++++-----------------------------
- 4 files changed, 83 insertions(+), 93 deletions(-)
-
-diff --git a/default b/default
-index fe0d134..b19ce4a 100644
---- a/default
-+++ b/default
-@@ -172,11 +172,6 @@ USB_AUTOSUSPEND=1
- # Note: input devices (usbhid) are excluded automatically (see below)
- #USB_BLACKLIST="1111:2222 3333:4444"
- 
--# Exclude devices assigned to the listed drivers from USB autosuspend.
--# Default is "usbhid" (input devices); use "" to disable the feature
--# completely. Separate multiple drivers with spaces.
--USB_DRIVER_BLACKLIST="usbhid"
--
- # WWAN devices are excluded from USB autosuspend:
- # 0=do not exclude / 1=exclude
- USB_BLACKLIST_WWAN=1
-diff --git a/tlp-functions b/tlp-functions
-index 8a1a9c4..e52ed51 100755
---- a/tlp-functions
-+++ b/tlp-functions
-@@ -53,7 +53,7 @@ readonly CPU_TURBO_PSTATE=$INTEL_PSTATED/no_turbo
- readonly USBD=/sys/bus/usb/devices
- readonly USB_TIMEOUT=2
- readonly USB_TIMEOUT_MS=2000
--readonly USB_WWAN_DRIVERS="cdc_acm cdc_wdm cdc_ether hso qcserial sierra"
-+readonly USB_WWAN_VENDORS="0bdb 05c6 1199"
- readonly USB_DONE=usb_done
- 
- readonly DOCKGLOB="/sys/devices/platform/dock.?"
-@@ -1487,16 +1487,6 @@ set_usb_suspend () { # activate usb autosuspend for all 
devices except input and
-     if [ "$USB_AUTOSUSPEND" = "1" ]; then
-         # autosuspend is configured
- 
--        # initialize driver blacklist from settings
--        drv_bl=${USB_DRIVER_BLACKLIST:-$DEFAULT_USB_DRIVER_BLACKLIST}
--
--        # add wwan driver blacklist if enabled
--        USB_BLACKLIST_WWAN=${USB_BLACKLIST_WWAN:-1} # default is exclude
--
--        if [ $USB_BLACKLIST_WWAN = "1" ]; then
--            drv_bl="$drv_bl $USB_WWAN_DRIVERS"
--        fi
--
-         # iterate devices
-         devices=$(ls $USBD 2> /dev/null | grep -v ':')
- 
-@@ -1518,19 +1508,27 @@ set_usb_suspend () { # activate usb autosuspend for 
all devices except input and
-                         control="on"
-                         exc="_dev_black"
-                     else
--                        # check subdevices for blacklisted drivers
-+                        # check for hid subdevices
-                         for subdev in $USBD/$usbdev/*:*; do
--                            # get driver name from subdev uevent file
--                            drv=$(sed -rn 's/^DRIVER=(.*)/\1/p' 
$subdev/uevent)
--
--                            # check against driver blacklist
--                            if wordinlist "$drv" "$drv_bl"; then
--                                # driver is blacklisted
-+                            if [ -d $subdev ] && [ "$(cat 
$subdev/bInterfaceClass)" = "03" ]; then
-                                 control="on"
--                                exc="_drv_black"
-+                                exc="_hid_black"
-                                 break
-                             fi
-                         done
-+
-+                        if [ -z "$exc" ]; then
-+                            # check for wwan vendor ids
-+                            USB_BLACKLIST_WWAN=${USB_BLACKLIST_WWAN:-1} # 
default is exclude
-+
-+                            if [ $USB_BLACKLIST_WWAN = "1" ]; then
-+                                vendor="$(cat $USBD/$usbdev/idVendor)"
-+                                if wordinlist "$vendor" "$USB_WWAN_VENDORS"; 
then
-+                                    control="on"
-+                                    exc="_wwan_black"
-+                                fi
-+                            fi
-+                        fi
-                     fi
-                 fi
- 
-diff --git a/tlp-stat b/tlp-stat
-index 5a179f3..f958df2 100755
---- a/tlp-stat
-+++ b/tlp-stat
-@@ -872,9 +872,8 @@ if [ "$show_usb" = "1" ] || [ "$show_all" = "1" ]; then
-     fi
-     echo "device whitelist   = ${USB_WHITELIST:=(not configured)}"
-     echo "device blacklist   = ${USB_BLACKLIST:=(not configured)}"
--    echo "driver blacklist   = ${USB_DRIVER_BLACKLIST:=(not configured)}"
-     if [ "$USB_BLACKLIST_WWAN" = "1" ]; then
--        echo "wwan blacklist     = enabled ($USB_WWAN_DRIVERS)"
-+        echo "wwan blacklist     = enabled"
-     else
-         echo "wwan blacklist     = disabled"
-     fi
-diff --git a/tlp-usb-udev b/tlp-usb-udev
-index f3b8546..917fc5c 100755
---- a/tlp-usb-udev
-+++ b/tlp-usb-udev
-@@ -13,8 +13,7 @@ readonly LOGGER=logger
- readonly USBD=/sys/bus/usb/devices
- readonly USB_TIMEOUT=2
- readonly USB_TIMEOUT_MS=2000
--readonly USB_WWAN_DRIVERS="cdc_acm cdc_wdm cdc_ether hso qcserial sierra"
--readonly DEFAULT_USB_DRIVER_BLACKLIST="usbhid"
-+readonly USB_WWAN_VENDORS="0bdb 05c6 1199"
- 
- readonly RUNDIR=/var/run/tlp
- readonly USB_DONE=usb_done
-@@ -71,84 +70,83 @@ usbdev=/sys$1
- if [ -f $usbdev/power/autosuspend ] || [ -f 
$usbdev/power/autosuspend_delay_ms ]; then
-     # device is autosuspendable
- 
--    (   # run remainder in a detached subshell to allow udev to populate
--        # subdevices in parallel; do *not* close stdin/stdout to avoid
--        # being "sanitized" (killed) by udev post-processing
--
--        # apply autosuspend
--        ctrlf="control"
--        autof="autosuspend_delay_ms"
--        usbid="$(cat $usbdev/idVendor):$(cat $usbdev/idProduct)"
--        busdev="Bus $(cat $usbdev/busnum) Dev $(cat $usbdev/devnum)"
-+    # apply autosuspend
-+    ctrlf="control"
-+    autof="autosuspend_delay_ms"
-+    usbid="$(cat $usbdev/idVendor):$(cat $usbdev/idProduct)"
-+    busdev="Bus $(cat $usbdev/busnum) Dev $(cat $usbdev/devnum)"
-+    control="auto"
-+    exc=""
-+    chg=0
-+
-+    if wordinlist "$usbid" "$USB_WHITELIST"; then
-+        # device is in whitelist -- whitelist always wins
-         control="auto"
--        exc=""
--
--        if wordinlist "$usbid" "$USB_WHITELIST"; then
--            # device is in whitelist -- whitelist always wins
--            control="auto"
--            exc="_dev_white"
--        elif wordinlist "$usbid" "$USB_BLACKLIST"; then
--            # device is in blacklist
--            control="on"
--            exc="_dev_black"
--        else
--            # initialize driver blacklist from settings
--            drv_bl=${USB_DRIVER_BLACKLIST:-$DEFAULT_USB_DRIVER_BLACKLIST}
-+        exc="_dev_white"
-+    elif wordinlist "$usbid" "$USB_BLACKLIST"; then
-+        # device is in blacklist
-+        control="on"
-+        exc="_dev_black"
-+    else
-+        # wait for subdevices to populate
-+        sleep 0.5
-+
-+        # check for hid subdevices
-+        for subdev in $usbdev/*:*; do
-+            if [ -d $subdev ] && [ "$(cat $subdev/bInterfaceClass)" = "03" ]; 
then
-+                control="on"
-+                exc="_hid_black"
-+                break
-+            fi
-+        done
- 
--            # add wwan driver blacklist if enabled
-+        if [ -z "$exc" ]; then
-+            # check for wwan vendor ids
-             USB_BLACKLIST_WWAN=${USB_BLACKLIST_WWAN:-1} # default is exclude
--            if [ $USB_BLACKLIST_WWAN = "1" ]; then
--                drv_bl="$drv_bl $USB_WWAN_DRIVERS"
--            fi
- 
--            if [ -n "$drv_bl" ]; then
--                # proceed only when driver blacklist is not empty
--
--                # wait for subdevices to populate via parallel udev events
--                # (not handled here)
--                sleep 0.5
--
--                # check subdevices for blacklisted drivers
--                for subdev in $usbdev/*:*; do
--                    # get driver name from subdev uevent file
--                    drv=$(sed -rn 's/^DRIVER=(.*)/\1/p' $subdev/uevent)
--
--                    # check against driver blacklist
--                    if wordinlist "$drv" "$drv_bl"; then
--                        # driver is blacklisted
--                        control="on"
--                        exc="_drv_black"
--                        break
--                    fi
--                done
-+            if [ $USB_BLACKLIST_WWAN = "1" ]; then
-+                vendor="$(cat $usbdev/idVendor)"
-+                if wordinlist "$vendor" "$USB_WWAN_VENDORS"; then
-+                    control="on"
-+                    exc="_wwan_black"
-+                fi
-             fi
-         fi
-+    fi
- 
--        if [ -f $usbdev/power/control ]; then
-+    if [ -f $usbdev/power/control ]; then
-+        if [ "$(cat $usbdev/power/control)" != "$control" ]; then
-+            # Write actual changes only
-             echo "$control" > $usbdev/power/control
--        else
--            # level is deprecated
-+            chg=1
-+        fi
-+    else
-+        # level is deprecated
-+        if [ "$(cat $usbdev/power/level)" != "$control" ]; then
-+            # Write actual changes only
-             echo "$control" > $usbdev/power/level
--            ctrlf="level"
-+            chg=1
-         fi
-+        ctrlf="level"
-+    fi
- 
--        if [ "$X_TLP_USB_SET_AUTOSUSPEND_DELAY" = "1" ]; then
--            # set autosuspend_delay
--            if [ -f $usbdev/power/autosuspend_delay_ms ]; then
--                echo $USB_TIMEOUT_MS > $usbdev/power/autosuspend_delay_ms
--            else
--                # autosuspend is deprecated
--                echo $USB_TIMEOUT > $usbdev/power/autosuspend
--                autof="autosuspend"
--            fi
--            echo_debug "usb" "udev_usb.$control$exc: $busdev ID $usbid 
$usbdev [$ctrlf $autof]"
-+    if [ "$X_TLP_USB_SET_AUTOSUSPEND_DELAY" = "1" ]; then
-+        # set autosuspend_delay
-+        if [ -f $usbdev/power/autosuspend_delay_ms ]; then
-+            echo $USB_TIMEOUT_MS > $usbdev/power/autosuspend_delay_ms
-         else
--            # default: do not change autosuspend_delay, i.e. keep kernel 
default setting
--            echo_debug "usb" "udev_usb.$control$exc: $busdev ID $usbid 
$usbdev [$ctrlf]"
-+            # autosuspend is deprecated
-+            echo $USB_TIMEOUT > $usbdev/power/autosuspend
-+            autof="autosuspend"
-         fi
--
--        exit 0
--    ) &
-+        echo_debug "usb" "udev_usb.$control$exc: $busdev ID $usbid $usbdev 
[$ctrlf $autof]"
-+    elif [ $chg -eq 1 ]; then
-+        # default: change control but not autosuspend_delay, i.e. keep kernel 
default setting
-+        echo_debug "usb" "udev_usb.$control$exc: $busdev ID $usbid $usbdev 
[$ctrlf]"
-+    else
-+        # we didn't change anything actually
-+        echo_debug "usb" "udev_usb.$control$exc: $busdev ID $usbid $usbdev"
-+    fi
- fi
- 
- exit 0
--- 
-1.9.1
-

Reply via email to