Skip to content

Commit

Permalink
tlp-rdw: support newer docks.
Browse files Browse the repository at this point in the history
  • Loading branch information
linrunner committed Jan 11, 2014
1 parent 6e8440a commit 1e9cc75
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 10 deletions.
9 changes: 7 additions & 2 deletions debian/changelog
Expand Up @@ -3,13 +3,18 @@ tlp (0.4.900-1) unstable; urgency=low
*** Development version ***

* Features
- tpacpi-bat: auto detection of all ThinkPad models
- tpacpi-bat: auto detection of all ThinkPad models (v2.1)
- tlp-stat: include newer models in tpacpi-bat suggestions
- tlp-rdw: support newer docks

* Bugfixes
- run-on-ac/bat: check if command exists

* Packaging
- Create symlinks instead of hardlinks for bluetooth/wifi/wwan,
run-on-ac/bat

-- Thomas Koch <linrunner@gmx.net> Sat, 04 Jan 2014 19:24:42 +0100
-- Thomas Koch <linrunner@gmx.net> Sat, 10 Jan 2014 14:28:42 +0100

tlp (0.4.1-1) unstable; urgency=low

Expand Down
36 changes: 30 additions & 6 deletions tlp-rdw-udev
Expand Up @@ -22,15 +22,37 @@ read_defaults
check_tlp_enabled || exit 0
add_sbin2path

# Get state
ddir=/sys/devices/platform/$1
type=$(cat $ddir/type)
docked=$(cat $ddir/docked)
# Get power state
get_power_state; onbat=$?

echo_debug "udev" "rdw_udev($*).$EVENT dev=$ddir type=$type docked=$docked onbat=$onbat"
# Get device/type
ddev=/sys$1
devtype=$2

case $EVENT in
case $devtype in
dock)
type=$(cat $ddev/type)
docked=$(cat $ddev/docked)
action=$EVENT

echo_debug "udev" "rdw_udev($2).$action dev=$ddev type=$type docked=$docked onbat=$onbat"
;;

usb_dock)
case $ACTION in
add) action="dock" ;;
remove) action="undock" ;;
esac

echo_debug "udev" "rdw_udev($2).$action dev=$ddev onbat=$onbat"
;;

*) exit 0 ;; # Unknown device type
esac

# TODO: locking for docks mit multiple usb devices matching the rules

case $action in
dock) # laptop was docked

# enable configured radios
Expand All @@ -56,6 +78,8 @@ case $EVENT in
[ -n "$dev" ] && device_off $dev
done
;;

*) ;; # unknown action -> do nothing
esac

exit 0
18 changes: 16 additions & 2 deletions tlp-rdw.rules
Expand Up @@ -3,5 +3,19 @@
# Copyright (c) 2014 Thomas Koch <linrunner at gmx.net>
# This software is licensed under the GPL v2 or later.

# handle dock/undock events
ACTION=="change", SUBSYSTEM=="platform", KERNEL=="dock.*", ATTR{type}=="dock_station", RUN+="/lib/udev/tlp-rdw-udev %k"
# --- Dock/undock events

# ThinkPad Advanced Mini Dock (and all older models), ThinkPad UltraBase
ACTION=="change", SUBSYSTEM=="platform", KERNEL=="dock.*", ATTR{type}=="dock_station", RUN+="/lib/udev/tlp-rdw-udev %p dock"

# ThinkPad Mini Dock Plus Series 3
ACTION=="add|remove", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="17ef/100a/*", RUN+="/lib/udev/tlp-rdw-udev %p usb_dock"

# ThinkPad Ultra Dock
ACTION=="add|remove", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="17ef/1010/*", RUN+="/lib/udev/tlp-rdw-udev %p usb_dock"

# ThinkPad Pro Dock
ACTION=="add|remove", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="17ef/1012/*", RUN+="/lib/udev/tlp-rdw-udev %p usb_dock"

# ThinkPad Basic Dock
# *** TODO: yet unknown ***

0 comments on commit 1e9cc75

Please sign in to comment.