--- laptop-mode-tools-1.59/etc/laptop-mode/conf.d/runtime-pm.conf	2011-08-07 12:30:43.000000000 -0700
+++ laptop-mode-tools-1.59/etc/laptop-mode/conf.d/runtime-pm.conf	2012-10-17 16:45:20.311104691 -0700
@@ -25,3 +25,7 @@ CONTROL_RUNTIME_PM="auto"
 # Enable debug mode for this module
 # Set to 1 if you want to debug this module
 DEBUG=0
+
+# The list of devices that should not use Runtime Power Management by name.
+# Example: RUNTIME_PM_NAME_BLACKLIST="isl29018 cyapa"
+RUNTIME_PM_NAME_BLACKLIST=""
--- laptop-mode-tools-1.59/usr/share/laptop-mode-tools/modules/runtime-pm	2011-08-07 12:30:43.000000000 -0700
+++ laptop-mode-tools-1.59/usr/share/laptop-mode-tools/modules/runtime-pm	2012-10-17 16:39:27.467105016 -0700
@@ -3,12 +3,33 @@
 # Laptop mode tools module: Runtime Power Management
 #
 
+# Check whether a device is listed by name
+listed_by_name() {
+	device=$1
+	list=$2
+	for name in $list; do
+		grep -qi $name $device/name 2>/dev/null\
+		 && return 0
+	done
+	return 1
+}
+
+# Checks whether a device is blacklisted by name
+blacklisted() {
+	listed_by_name $1 "$RUNTIME_PM_NAME_BLACKLIST" || return 1
+	return 0
+}
 
 activate_runtime_suspend() {
 	for device in $1/*; do
 		if [ -f $device/power/control ]; then
-			echo "auto" > $device/power/control;
-			log "VERBOSE" "Setting Runtime PM auto for device $device"
+			if ! blacklisted $device; then
+ 				echo "auto" > $device/power/control;
+				log "VERBOSE" "Setting Runtime PM auto for device $device"
+			else
+  				echo "on" > $device/power/control;
+	  			log "VERBOSE" "Setting on for blacklisted device $device"
+			fi
 		else
 			log "VERBOSE" "$device does not support Runtime PM"
 		fi
