summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.debugging6
-rwxr-xr-xpm/sleep.d/98-video-quirk-db-handler13
2 files changed, 15 insertions, 4 deletions
diff --git a/README.debugging b/README.debugging
index d9989b4..96d2638 100644
--- a/README.debugging
+++ b/README.debugging
@@ -38,6 +38,12 @@ End-user customization and debugging:
with '--help' as the first parameter as root. This will print out the
options that it supports and which hooks or modules handle those options.
+* To override the usual quirk filtering (for kernel modesetting, binary drivers,
+ and exotic hardware), pass --quirk-test along with any other quirks you want
+ to try. This make make your system crash in new and exciting ways by
+ conflicting with the kernel when suspending or resuming, but is very useful
+ for debugging. You have been warned.
+
Significant conceptual changes from pm-utils 0.99.x and earlier:
* Do not rely on the internals of hooks when configuring or customizing
diff --git a/pm/sleep.d/98-video-quirk-db-handler b/pm/sleep.d/98-video-quirk-db-handler
index 114cc74..ec8c892 100755
--- a/pm/sleep.d/98-video-quirk-db-handler
+++ b/pm/sleep.d/98-video-quirk-db-handler
@@ -346,7 +346,12 @@ case $1 in
# This logic can also be expressed using entries in the quirkdb,
# but I am too lazy to do that until a final quirk database is
# formalized.
- if using_kms; then
+ if has_parameter --quirk-test && has_video_parameters; then
+ # The user is explicitly testing video parameters.
+ # Use them without the usual filtering. This may cause the system
+ # to blow up, but they explicitly asked for it.
+ remove_parameters --quirk-test
+ elif using_kms; then
# Using kernel modesetting? No quirks, and do not change vts.
remove_parameters $possible_video_quirks
add_parameters --quirk-no-chvt
@@ -367,8 +372,8 @@ case $1 in
else
# Go ahead and get our quirks.
if has_video_parameters; then
- # command line video parameters override everything.
- # Honor them by doing nothing.
+ # Parameters from the command line take precedence
+ # over the database, so do not query it.
:
elif [[ $PM_QUIRKS ]]; then
# If we have $PM_QUIRKS. use it instead of the quirk database
@@ -419,7 +424,7 @@ case $1 in
QUIRKS=$(restorestate video_quirks);
write_last_known_working
elif has_parameter --store-quirks-as-lkw; then
- for x in $(get_paremeters); do
+ for x in $(get_parameters); do
for y in $possible_video_quirks; do
[[ $x = $y ]] && QUIRKS=" $QUIRKS $x"
done