€•µ*Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ4/translations/zh_CN/firmware-guide/acpi/non-d0-probe”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ4/translations/zh_TW/firmware-guide/acpi/non-d0-probe”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ4/translations/it_IT/firmware-guide/acpi/non-d0-probe”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ4/translations/ja_JP/firmware-guide/acpi/non-d0-probe”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ4/translations/ko_KR/firmware-guide/acpi/non-d0-probe”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ4/translations/sp_SP/firmware-guide/acpi/non-d0-probe”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh£sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1h¡hhhžhhŸŒN/var/lib/git/docbuild/linux/Documentation/firmware-guide/acpi/non-d0-probe.rst”h KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ(Probing devices in other D states than 0”h]”hŒ(Probing devices in other D states than 0”…””}”(hh»hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hh¶hžhhŸh³h Kubhµ)”}”(hhh]”(hº)”}”(hŒ Introduction”h]”hŒ Introduction”…””}”(hhÌhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hhÉhžhhŸh³h KubhŒ paragraph”“”)”}”(hŒÃIn some cases it may be preferred to leave certain devices powered off for the entire system bootup if powering on these devices has adverse side effects, beyond just powering on the said device.”h]”hŒÃIn some cases it may be preferred to leave certain devices powered off for the entire system bootup if powering on these devices has adverse side effects, beyond just powering on the said device.”…””}”(hhÜhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K hhÉhžhubeh}”(h]”Œ introduction”ah ]”h"]”Œ introduction”ah$]”h&]”uh1h´hh¶hžhhŸh³h Kubhµ)”}”(hhh]”(hº)”}”(hŒ How it works”h]”hŒ How it works”…””}”(hhõhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hhòhžhhŸh³h KubhÛ)”}”(hXThe _DSC (Device State for Configuration) object that evaluates to an integer may be used to tell Linux the highest allowed D state for a device during probe. The support for _DSC requires support from the kernel bus type if the bus driver normally sets the device in D0 state for probe.”h]”hXThe _DSC (Device State for Configuration) object that evaluates to an integer may be used to tell Linux the highest allowed D state for a device during probe. The support for _DSC requires support from the kernel bus type if the bus driver normally sets the device in D0 state for probe.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h KhhòhžhubhÛ)”}”(hXThe downside of using _DSC is that as the device is not powered on, even if there's a problem with the device, the driver likely probes just fine but the first user will find out the device doesn't work, instead of a failure at probe time. This feature should thus be used sparingly.”h]”hXThe downside of using _DSC is that as the device is not powered on, even if there’s a problem with the device, the driver likely probes just fine but the first user will find out the device doesn’t work, instead of a failure at probe time. This feature should thus be used sparingly.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h Khhòhžhubhµ)”}”(hhh]”(hº)”}”(hŒI²C”h]”hŒI²C”…””}”(hj"hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjhžhhŸh³h KubhÛ)”}”(hXIf an I²C driver indicates its support for this by setting the I2C_DRV_ACPI_WAIVE_D0_PROBE flag in struct i2c_driver.flags field and the _DSC object evaluates to integer higher than the D state of the device, the device will not be powered on (put in D0 state) for probe.”h]”hXIf an I²C driver indicates its support for this by setting the I2C_DRV_ACPI_WAIVE_D0_PROBE flag in struct i2c_driver.flags field and the _DSC object evaluates to integer higher than the D state of the device, the device will not be powered on (put in D0 state) for probe.”…””}”(hj0hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h Khjhžhubeh}”(h]”Œi2c”ah ]”h"]”Œi²c”ah$]”h&]”uh1h´hhòhžhhŸh³h Kubhµ)”}”(hhh]”(hº)”}”(hŒD states”h]”hŒD states”…””}”(hjIhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjFhžhhŸh³h K$ubhÛ)”}”(hŒ‚The D states and thus also the allowed values for _DSC are listed below. Refer to [1] for more information on device power states.”h]”hŒ‚The D states and thus also the allowed values for _DSC are listed below. Refer to [1] for more information on device power states.”…””}”(hjWhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K&hjFhžhubhŒ literal_block”“”)”}”(hŒ{Number State Description 0 D0 Device fully powered on 1 D1 2 D2 3 D3hot 4 D3cold Off”h]”hŒ{Number State Description 0 D0 Device fully powered on 1 D1 2 D2 3 D3hot 4 D3cold Off”…””}”hjgsbah}”(h]”h ]”h"]”h$]”h&]”h±h²Œforce”‰Œlanguage”Œtext”Œhighlight_args”}”uh1jehŸh³h K)hjFhžhubeh}”(h]”Œd-states”ah ]”h"]”Œd states”ah$]”h&]”uh1h´hhòhžhhŸh³h K$ubeh}”(h]”Œ how-it-works”ah ]”h"]”Œ how it works”ah$]”h&]”uh1h´hh¶hžhhŸh³h Kubhµ)”}”(hhh]”(hº)”}”(hŒ References”h]”hŒ References”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjŠhžhhŸh³h K3ubhÛ)”}”(hŒ{[1] https://uefi.org/specifications/ACPI/6.4/02_Definition_of_Terms/Definition_of_Terms.html#device-power-state-definitions”h]”(hŒ[1] ”…””}”(hj›hžhhŸNh NubhŒ reference”“”)”}”(hŒwhttps://uefi.org/specifications/ACPI/6.4/02_Definition_of_Terms/Definition_of_Terms.html#device-power-state-definitions”h]”hŒwhttps://uefi.org/specifications/ACPI/6.4/02_Definition_of_Terms/Definition_of_Terms.html#device-power-state-definitions”…””}”(hj¥hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j§uh1j£hj›ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K5hjŠhžhubeh}”(h]”Œ references”ah ]”h"]”Œ references”ah$]”h&]”uh1h´hh¶hžhhŸh³h K3ubhµ)”}”(hhh]”(hº)”}”(hŒExample”h]”hŒExample”…””}”(hjÅhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjÂhžhhŸh³h K8ubhÛ)”}”(hŒâAn ASL example describing an ACPI device using _DSC object to tell Operating System the device should remain powered off during probe looks like this. Some objects not relevant from the example point of view have been omitted.”h]”hŒâAn ASL example describing an ACPI device using _DSC object to tell Operating System the device should remain powered off during probe looks like this. Some objects not relevant from the example point of view have been omitted.”…””}”(hjÓhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhŸh³h K:hjÂhžhubjf)”}”(hX Device (CAM0) { Name (_HID, "SONY319A") Name (_UID, Zero) Name (_CRS, ResourceTemplate () { I2cSerialBus(0x0020, ControllerInitiated, 0x00061A80, AddressingMode7Bit, "\\_SB.PCI0.I2C0", 0x00, ResourceConsumer) }) Method (_DSC, 0, NotSerialized) { Return (0x4) } }”h]”hX Device (CAM0) { Name (_HID, "SONY319A") Name (_UID, Zero) Name (_CRS, ResourceTemplate () { I2cSerialBus(0x0020, ControllerInitiated, 0x00061A80, AddressingMode7Bit, "\\_SB.PCI0.I2C0", 0x00, ResourceConsumer) }) Method (_DSC, 0, NotSerialized) { Return (0x4) } }”…””}”hjásbah}”(h]”h ]”h"]”h$]”h&]”h±h²ju‰jvŒtext”jx}”uh1jehŸh³h K>hjÂhžhubeh}”(h]”Œexample”ah ]”h"]”Œexample”ah$]”h&]”uh1h´hh¶hžhhŸh³h K8ubeh}”(h]”Œ(probing-devices-in-other-d-states-than-0”ah ]”h"]”Œ(probing devices in other d states than 0”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”j$Œ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Œfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œ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”‰Œ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”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jþjûhïhìj‡j„jCj@jj|j¿j¼jöjóuŒ nametypes”}”(jþ‰hï‰j‡‰jC‰j‰j¿‰jö‰uh}”(jûh¶hìhÉj„hòj@jj|jFj¼jŠjójÂ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”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.