€•¶+Œ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ŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ4/translations/pt_BR/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”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjh²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´Khjh²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.”…””}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khjh²hubhÉ)”}”(hhh]”(hÎ)”}”(hŒI²C”h]”hŒI²C”…””}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj3h²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.”…””}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khj3h²hubeh}”(h]”Œi2c”ah ]”h"]”Œi²c”ah$]”h&]”uh1hÈhjh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒD states”h]”hŒD states”…””}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjZh²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.”…””}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K&hjZh²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”…””}”hj{sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒforce”‰Œlanguage”Œtext”Œhighlight_args”}”uh1jyh³hÇh´K)hjZh²hubeh}”(h]”Œd-states”ah ]”h"]”Œd states”ah$]”h&]”uh1hÈhjh²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”…””}”(hj¡h²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²hubjz)”}”(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Æj‰‰jŠŒtext”jŒ}”uh1jyh³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”j8Œ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”}”(jjjjj›j˜jWjTj“jjÓjÐj juŒ nametypes”}”(j‰j‰j›‰jW‰j“‰jÓ‰j ‰uh}”(jhÊjhÝj˜jjTj3jjZjÐjžjjÖ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.