diff options
-rw-r--r-- | README.debugging | 6 | ||||
-rwxr-xr-x | pm/sleep.d/98-video-quirk-db-handler | 13 |
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 |