€•ô.Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”(hhŒparent”hubaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ)/translations/zh_CN/power/drivers-testing”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”(hhhh2ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/zh_TW/power/drivers-testing”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”(hhhhFubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/it_IT/power/drivers-testing”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”(hhhhZubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ja_JP/power/drivers-testing”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”(hhhhnubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ko_KR/power/drivers-testing”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”(hhhh‚ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/sp_SP/power/drivers-testing”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ4Testing suspend and resume support in device drivers”h]”hŒ4Testing suspend and resume support in device drivers”…””}”(hhªhh¨hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hh£hžhhŸŒC/var/lib/git/docbuild/linux/Documentation/power/drivers-testing.rst”h KubhŒ block_quote”“”)”}”(hhh]”hŒenumerated_list”“”)”}”(hhh]”hŒ list_item”“”)”}”(hŒ*2007 Rafael J. Wysocki , GPL ”h]”hŒ paragraph”“”)”}”(hŒ)2007 Rafael J. Wysocki , GPL”h]”(hŒ2007 Rafael J. Wysocki <”…””}”(hŒ2007 Rafael J. Wysocki <”hhÉhžhhŸNh NubhŒ reference”“”)”}”(hŒ rjw@sisk.pl”h]”hŒ rjw@sisk.pl”…””}”(hhhhÔhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:rjw@sisk.pl”uh1hÒhhÉubhŒ>, GPL”…””}”(hŒ>, GPL”hhÉhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h KhhÃubah}”(h]”h ]”h"]”h$]”h&]”uh1hÁhh¾ubah}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œ upperalpha”Œprefix”Œ(”Œsuffix”Œ)”Œstart”Kuh1h¼hh¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hh£hžhhŸNh Nubh¢)”}”(hhh]”(h§)”}”(hŒ1. Preparing the test system”h]”hŒ1. Preparing the test system”…””}”(hj hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjhžhhŸh¶h KubhÈ)”}”(hXåUnfortunately, to effectively test the support for the system-wide suspend and resume transitions in a driver, it is necessary to suspend and resume a fully functional system with this driver loaded. Moreover, that should be done several times, preferably several times in a row, and separately for hibernation (aka suspend to disk or STD) and suspend to RAM (STR), because each of these cases involves slightly different operations and different interactions with the machine's BIOS.”h]”hXçUnfortunately, to effectively test the support for the system-wide suspend and resume transitions in a driver, it is necessary to suspend and resume a fully functional system with this driver loaded. Moreover, that should be done several times, preferably several times in a row, and separately for hibernation (aka suspend to disk or STD) and suspend to RAM (STR), because each of these cases involves slightly different operations and different interactions with the machine’s BIOS.”…””}”(hjhjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h K hjhžhubhÈ)”}”(hX€Of course, for this purpose the test system has to be known to suspend and resume without the driver being tested. Thus, if possible, you should first resolve all suspend/resume-related problems in the test system before you start testing the new driver. Please see Documentation/power/basic-pm-debugging.rst for more information about the debugging of suspend/resume functionality.”h]”hX€Of course, for this purpose the test system has to be known to suspend and resume without the driver being tested. Thus, if possible, you should first resolve all suspend/resume-related problems in the test system before you start testing the new driver. Please see Documentation/power/basic-pm-debugging.rst for more information about the debugging of suspend/resume functionality.”…””}”(hj)hj'hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h Khjhžhubeh}”(h]”Œpreparing-the-test-system”ah ]”h"]”Œ1. preparing the test system”ah$]”h&]”uh1h¡hh£hžhhŸh¶h Kubh¢)”}”(hhh]”(h§)”}”(hŒ2. Testing the driver”h]”hŒ2. Testing the driver”…””}”(hjBhj@hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hj=hžhhŸh¶h KubhÈ)”}”(hŒ‚Once you have resolved the suspend/resume-related problems with your test system without the new driver, you are ready to test it:”h]”hŒ‚Once you have resolved the suspend/resume-related problems with your test system without the new driver, you are ready to test it:”…””}”(hjPhjNhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h Khj=hžhubh½)”}”(hhh]”(hÂ)”}”(hŒ‚Build the driver as a module, load it and try the test modes of hibernation (see: Documentation/power/basic-pm-debugging.rst, 1). ”h]”hÈ)”}”(hŒBuild the driver as a module, load it and try the test modes of hibernation (see: Documentation/power/basic-pm-debugging.rst, 1).”h]”hŒBuild the driver as a module, load it and try the test modes of hibernation (see: Documentation/power/basic-pm-debugging.rst, 1).”…””}”(hjehjchžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h Khj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÁhj\hžhhŸh¶h NubhÂ)”}”(hŒLoad the driver and attempt to hibernate in the "reboot", "shutdown" and "platform" modes (see: Documentation/power/basic-pm-debugging.rst, 1). ”h]”hÈ)”}”(hŒLoad the driver and attempt to hibernate in the "reboot", "shutdown" and "platform" modes (see: Documentation/power/basic-pm-debugging.rst, 1).”h]”hŒ›Load the driver and attempt to hibernate in the “rebootâ€, “shutdown†and “platform†modes (see: Documentation/power/basic-pm-debugging.rst, 1).”…””}”(hj}hj{hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h K!hjwubah}”(h]”h ]”h"]”h$]”h&]”uh1hÁhj\hžhhŸh¶h NubhÂ)”}”(hŒSCompile the driver directly into the kernel and try the test modes of hibernation. ”h]”hÈ)”}”(hŒRCompile the driver directly into the kernel and try the test modes of hibernation.”h]”hŒRCompile the driver directly into the kernel and try the test modes of hibernation.”…””}”(hj•hj“hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h K$hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÁhj\hžhhŸh¶h NubhÂ)”}”(hŒyAttempt to hibernate with the driver compiled directly into the kernel in the "reboot", "shutdown" and "platform" modes. ”h]”hÈ)”}”(hŒxAttempt to hibernate with the driver compiled directly into the kernel in the "reboot", "shutdown" and "platform" modes.”h]”hŒ„Attempt to hibernate with the driver compiled directly into the kernel in the “rebootâ€, “shutdown†and “platform†modes.”…””}”(hj­hj«hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h K'hj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÁhj\hžhhŸh¶h NubhÂ)”}”(hŒÃTry the test modes of suspend (see: Documentation/power/basic-pm-debugging.rst, 2). [As far as the STR tests are concerned, it should not matter whether or not the driver is built as a module.] ”h]”hÈ)”}”(hŒÂTry the test modes of suspend (see: Documentation/power/basic-pm-debugging.rst, 2). [As far as the STR tests are concerned, it should not matter whether or not the driver is built as a module.]”h]”hŒÂTry the test modes of suspend (see: Documentation/power/basic-pm-debugging.rst, 2). [As far as the STR tests are concerned, it should not matter whether or not the driver is built as a module.]”…””}”(hjÅhjÃhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h K*hj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÁhj\hžhhŸh¶h NubhÂ)”}”(hŒ|Attempt to suspend to RAM using the s2ram tool with the driver loaded (see: Documentation/power/basic-pm-debugging.rst, 2). ”h]”hÈ)”}”(hŒ{Attempt to suspend to RAM using the s2ram tool with the driver loaded (see: Documentation/power/basic-pm-debugging.rst, 2).”h]”hŒ{Attempt to suspend to RAM using the s2ram tool with the driver loaded (see: Documentation/power/basic-pm-debugging.rst, 2).”…””}”(hjÝhjÛhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h K/hj×ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÁhj\hžhhŸh¶h Nubeh}”(h]”h ]”h"]”h$]”h&]”hûŒ loweralpha”hýhhÿjuh1h¼hj=hžhhŸh¶h KubhÈ)”}”(hŒ»Each of the above tests should be repeated several times and the STD tests should be mixed with the STR tests. If any of them fails, the driver cannot be regarded as suspend/resume-safe.”h]”hŒ»Each of the above tests should be repeated several times and the STD tests should be mixed with the STR tests. If any of them fails, the driver cannot be regarded as suspend/resume-safe.”…””}”(hjøhjöhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h K2hj=hžhubeh}”(h]”Œtesting-the-driver”ah ]”h"]”Œ2. testing the driver”ah$]”h&]”uh1h¡hh£hžhhŸh¶h Kubeh}”(h]”Œ4testing-suspend-and-resume-support-in-device-drivers”ah ]”h"]”Œ4testing suspend and resume support in device drivers”ah$]”h&]”uh1h¡hhhžhhŸh¶h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h¶uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¦NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j7Œerror_encoding”ŒUTF-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h¶Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œ embed_images”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jjj:j7j juŒ nametypes”}”(jNj:Nj Nuh}”(jh£j7jjj=uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”hŒsystem_message”“”)”}”(hhh]”hÈ)”}”(hŒ:Enumerated list start value not ordinal-1: "C" (ordinal 3)”h]”hŒ>Enumerated list start value not ordinal-1: “C†(ordinal 3)”…””}”(hhhjŸhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhjœubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”h¶Œline”Kuh1jšhh¹ubaŒtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.