€• „Œ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”Œ+/translations/zh_CN/driver-api/pm/notifiers”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/zh_TW/driver-api/pm/notifiers”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/it_IT/driver-api/pm/notifiers”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/ja_JP/driver-api/pm/notifiers”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/ko_KR/driver-api/pm/notifiers”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/pt_BR/driver-api/pm/notifiers”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/sp_SP/driver-api/pm/notifiers”Œ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³ŒE/var/lib/git/docbuild/linux/Documentation/driver-api/pm/notifiers.rst”h´Kubh¶)�”}”(hŒ4This data file has been placed in the public domain.”h]”hŒ4This data file has been placed in the public domain.”…”�”}”hhÈsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hµhhh²hh³Œo/srv/docbuild/lib/venvs/build-kernel-docs/lib64/python3.9/site-packages/docutils/parsers/rst/include/isonum.txt”h´Kubh¶)�”}”(hŒ¸Derived from the Unicode character mappings available from . Processed by unicode2rstsubs.py, part of Docutils: .”h]”hŒ¸Derived from the Unicode character mappings available from . Processed by unicode2rstsubs.py, part of Docutils: .”…”�”}”hh×sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hµhhh²hh³hÖh´KubhŒsubstitution_definition”“”)�”}”(hŒ*.. |amp| unicode:: U+00026 .. AMPERSAND”h]”hŒ&”…”�”}”hhçsbah}”(h]”h ]”h"]”Œamp”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ+.. |apos| unicode:: U+00027 .. APOSTROPHE”h]”hŒ'”…”�”}”hhösbah}”(h]”h ]”h"]”Œapos”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ).. |ast| unicode:: U+0002A .. ASTERISK”h]”hŒ*”…”�”}”hjsbah}”(h]”h ]”h"]”Œast”ah$]”h&]”uh1håh³hÖh´K hhh²hubhæ)�”}”(hŒ+.. |brvbar| unicode:: U+000A6 .. BROKEN BAR”h]”hŒ¦”…”�”}”hjsbah}”(h]”h ]”h"]”Œbrvbar”ah$]”h&]”uh1håh³hÖh´K hhh²hubhæ)�”}”(hŒ0.. |bsol| unicode:: U+0005C .. REVERSE SOLIDUS”h]”hŒ\”…”�”}”hj#sbah}”(h]”h ]”h"]”Œbsol”ah$]”h&]”uh1håh³hÖh´K hhh²hubhæ)�”}”(hŒ*.. |cent| unicode:: U+000A2 .. CENT SIGN”h]”hŒ¢”…”�”}”hj2sbah}”(h]”h ]”h"]”Œcent”ah$]”h&]”uh1håh³hÖh´K hhh²hubhæ)�”}”(hŒ&.. |colon| unicode:: U+0003A .. COLON”h]”hŒ:”…”�”}”hjAsbah}”(h]”h ]”h"]”Œcolon”ah$]”h&]”uh1håh³hÖh´K hhh²hubhæ)�”}”(hŒ&.. |comma| unicode:: U+0002C .. COMMA”h]”hŒ,”…”�”}”hjPsbah}”(h]”h ]”h"]”Œcomma”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ... |commat| unicode:: U+00040 .. COMMERCIAL AT”h]”hŒ@”…”�”}”hj_sbah}”(h]”h ]”h"]”Œcommat”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ/.. |copy| unicode:: U+000A9 .. COPYRIGHT SIGN”h]”hŒ©”…”�”}”hjnsbah}”(h]”h ]”h"]”Œcopy”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ... |curren| unicode:: U+000A4 .. CURRENCY SIGN”h]”hŒ¤”…”�”}”hj}sbah}”(h]”h ]”h"]”Œcurren”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ0.. |darr| unicode:: U+02193 .. DOWNWARDS ARROW”h]”hŒ↓”…”�”}”hjŒsbah}”(h]”h ]”h"]”Œdarr”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ,.. |deg| unicode:: U+000B0 .. DEGREE SIGN”h]”hŒ°”…”�”}”hj›sbah}”(h]”h ]”h"]”Œdeg”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ... |divide| unicode:: U+000F7 .. DIVISION SIGN”h]”hŒ÷”…”�”}”hjªsbah}”(h]”h ]”h"]”Œdivide”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ,.. |dollar| unicode:: U+00024 .. DOLLAR SIGN”h]”hŒ$”…”�”}”hj¹sbah}”(h]”h ]”h"]”Œdollar”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ,.. |equals| unicode:: U+0003D .. EQUALS SIGN”h]”hŒ=”…”�”}”hjÈsbah}”(h]”h ]”h"]”Œequals”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ1.. |excl| unicode:: U+00021 .. EXCLAMATION MARK”h]”hŒ!”…”�”}”hj×sbah}”(h]”h ]”h"]”Œexcl”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ9.. |frac12| unicode:: U+000BD .. VULGAR FRACTION ONE HALF”h]”hŒ½”…”�”}”hjæsbah}”(h]”h ]”h"]”Œfrac12”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ<.. |frac14| unicode:: U+000BC .. VULGAR FRACTION ONE QUARTER”h]”hŒ¼”…”�”}”hjõsbah}”(h]”h ]”h"]”Œfrac14”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ;.. |frac18| unicode:: U+0215B .. VULGAR FRACTION ONE EIGHTH”h]”hŒâ…›”…”�”}”hjsbah}”(h]”h ]”h"]”Œfrac18”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ?.. |frac34| unicode:: U+000BE .. VULGAR FRACTION THREE QUARTERS”h]”hŒ¾”…”�”}”hjsbah}”(h]”h ]”h"]”Œfrac34”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ>.. |frac38| unicode:: U+0215C .. VULGAR FRACTION THREE EIGHTHS”h]”hŒâ…œ”…”�”}”hj"sbah}”(h]”h ]”h"]”Œfrac38”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ=.. |frac58| unicode:: U+0215D .. VULGAR FRACTION FIVE EIGHTHS”h]”hŒâ…�”…”�”}”hj1sbah}”(h]”h ]”h"]”Œfrac58”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ>.. |frac78| unicode:: U+0215E .. VULGAR FRACTION SEVEN EIGHTHS”h]”hŒâ…ž”…”�”}”hj@sbah}”(h]”h ]”h"]”Œfrac78”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ2.. |gt| unicode:: U+0003E .. GREATER-THAN SIGN”h]”hŒ>”…”�”}”hjOsbah}”(h]”h ]”h"]”Œgt”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ9.. |half| unicode:: U+000BD .. VULGAR FRACTION ONE HALF”h]”hŒ½”…”�”}”hj^sbah}”(h]”h ]”h"]”Œhalf”ah$]”h&]”uh1håh³hÖh´K hhh²hubhæ)�”}”(hŒ/.. |horbar| unicode:: U+02015 .. HORIZONTAL BAR”h]”hŒ―”…”�”}”hjmsbah}”(h]”h ]”h"]”Œhorbar”ah$]”h&]”uh1håh³hÖh´K!hhh²hubhæ)�”}”(hŒ'.. |hyphen| unicode:: U+02010 .. HYPHEN”h]”hŒâ€�”…”�”}”hj|sbah}”(h]”h ]”h"]”Œhyphen”ah$]”h&]”uh1håh³hÖh´K"hhh²hubhæ)�”}”(hŒ:.. |iexcl| unicode:: U+000A1 .. INVERTED EXCLAMATION MARK”h]”hŒ¡”…”�”}”hj‹sbah}”(h]”h ]”h"]”Œiexcl”ah$]”h&]”uh1håh³hÖh´K#hhh²hubhæ)�”}”(hŒ7.. |iquest| unicode:: U+000BF .. INVERTED QUESTION MARK”h]”hŒ¿”…”�”}”hjšsbah}”(h]”h ]”h"]”Œiquest”ah$]”h&]”uh1håh³hÖh´K$hhh²hubhæ)�”}”(hŒJ.. |laquo| unicode:: U+000AB .. LEFT-POINTING DOUBLE ANGLE QUOTATION MARK”h]”hŒ«”…”�”}”hj©sbah}”(h]”h ]”h"]”Œlaquo”ah$]”h&]”uh1håh³hÖh´K%hhh²hubhæ)�”}”(hŒ0.. |larr| unicode:: U+02190 .. LEFTWARDS ARROW”h]”hŒâ†�”…”�”}”hj¸sbah}”(h]”h ]”h"]”Œlarr”ah$]”h&]”uh1håh³hÖh´K&hhh²hubhæ)�”}”(hŒ3.. |lcub| unicode:: U+0007B .. LEFT CURLY BRACKET”h]”hŒ{”…”�”}”hjÇsbah}”(h]”h ]”h"]”Œlcub”ah$]”h&]”uh1håh³hÖh´K'hhh²hubhæ)�”}”(hŒ;.. |ldquo| unicode:: U+0201C .. LEFT DOUBLE QUOTATION MARK”h]”hŒ“”…”�”}”hjÖsbah}”(h]”h ]”h"]”Œldquo”ah$]”h&]”uh1håh³hÖh´K(hhh²hubhæ)�”}”(hŒ).. |lowbar| unicode:: U+0005F .. LOW LINE”h]”hŒ_”…”�”}”hjåsbah}”(h]”h ]”h"]”Œlowbar”ah$]”h&]”uh1håh³hÖh´K)hhh²hubhæ)�”}”(hŒ1.. |lpar| unicode:: U+00028 .. LEFT PARENTHESIS”h]”hŒ(”…”�”}”hjôsbah}”(h]”h ]”h"]”Œlpar”ah$]”h&]”uh1håh³hÖh´K*hhh²hubhæ)�”}”(hŒ4.. |lsqb| unicode:: U+0005B .. LEFT SQUARE BRACKET”h]”hŒ[”…”�”}”hjsbah}”(h]”h ]”h"]”Œlsqb”ah$]”h&]”uh1håh³hÖh´K+hhh²hubhæ)�”}”(hŒ;.. |lsquo| unicode:: U+02018 .. LEFT SINGLE QUOTATION MARK”h]”hŒ‘”…”�”}”hjsbah}”(h]”h ]”h"]”Œlsquo”ah$]”h&]”uh1håh³hÖh´K,hhh²hubhæ)�”}”(hŒ/.. |lt| unicode:: U+0003C .. LESS-THAN SIGN”h]”hŒ<”…”�”}”hj!sbah}”(h]”h ]”h"]”Œlt”ah$]”h&]”uh1håh³hÖh´K-hhh²hubhæ)�”}”(hŒ+.. |micro| unicode:: U+000B5 .. MICRO SIGN”h]”hŒµ”…”�”}”hj0sbah}”(h]”h ]”h"]”Œmicro”ah$]”h&]”uh1håh³hÖh´K.hhh²hubhæ)�”}”(hŒ+.. |middot| unicode:: U+000B7 .. MIDDLE DOT”h]”hŒ·”…”�”}”hj?sbah}”(h]”h ]”h"]”Œmiddot”ah$]”h&]”uh1håh³hÖh´K/hhh²hubhæ)�”}”(hŒ/.. |nbsp| unicode:: U+000A0 .. NO-BREAK SPACE”h]”hŒ ”…”�”}”hjNsbah}”(h]”h ]”h"]”Œnbsp”ah$]”h&]”uh1håh³hÖh´K0hhh²hubhæ)�”}”(hŒ).. |not| unicode:: U+000AC .. NOT SIGN”h]”hŒ¬”…”�”}”hj]sbah}”(h]”h ]”h"]”Œnot”ah$]”h&]”uh1håh³hÖh´K1hhh²hubhæ)�”}”(hŒ,.. |num| unicode:: U+00023 .. NUMBER SIGN”h]”hŒ#”…”�”}”hjlsbah}”(h]”h ]”h"]”Œnum”ah$]”h&]”uh1håh³hÖh´K2hhh²hubhæ)�”}”(hŒ).. |ohm| unicode:: U+02126 .. OHM SIGN”h]”hŒΩ”…”�”}”hj{sbah}”(h]”h ]”h"]”Œohm”ah$]”h&]”uh1håh³hÖh´K3hhh²hubhæ)�”}”(hŒ;.. |ordf| unicode:: U+000AA .. FEMININE ORDINAL INDICATOR”h]”hŒª”…”�”}”hjŠsbah}”(h]”h ]”h"]”Œordf”ah$]”h&]”uh1håh³hÖh´K4hhh²hubhæ)�”}”(hŒ<.. |ordm| unicode:: U+000BA .. MASCULINE ORDINAL INDICATOR”h]”hŒº”…”�”}”hj™sbah}”(h]”h ]”h"]”Œordm”ah$]”h&]”uh1håh³hÖh´K5hhh²hubhæ)�”}”(hŒ-.. |para| unicode:: U+000B6 .. PILCROW SIGN”h]”hŒ¶”…”�”}”hj¨sbah}”(h]”h ]”h"]”Œpara”ah$]”h&]”uh1håh³hÖh´K6hhh²hubhæ)�”}”(hŒ-.. |percnt| unicode:: U+00025 .. PERCENT SIGN”h]”hŒ%”…”�”}”hj·sbah}”(h]”h ]”h"]”Œpercnt”ah$]”h&]”uh1håh³hÖh´K7hhh²hubhæ)�”}”(hŒ*.. |period| unicode:: U+0002E .. FULL STOP”h]”hŒ.”…”�”}”hjÆsbah}”(h]”h ]”h"]”Œperiod”ah$]”h&]”uh1håh³hÖh´K8hhh²hubhæ)�”}”(hŒ*.. |plus| unicode:: U+0002B .. PLUS SIGN”h]”hŒ+”…”�”}”hjÕsbah}”(h]”h ]”h"]”Œplus”ah$]”h&]”uh1håh³hÖh´K9hhh²hubhæ)�”}”(hŒ0.. |plusmn| unicode:: U+000B1 .. PLUS-MINUS SIGN”h]”hŒ±”…”�”}”hjäsbah}”(h]”h ]”h"]”Œplusmn”ah$]”h&]”uh1håh³hÖh´K:hhh²hubhæ)�”}”(hŒ+.. |pound| unicode:: U+000A3 .. POUND SIGN”h]”hŒ£”…”�”}”hjósbah}”(h]”h ]”h"]”Œpound”ah$]”h&]”uh1håh³hÖh´K;hhh²hubhæ)�”}”(hŒ... |quest| unicode:: U+0003F .. QUESTION MARK”h]”hŒ?”…”�”}”hjsbah}”(h]”h ]”h"]”Œquest”ah$]”h&]”uh1håh³hÖh´Khhh²hubhæ)�”}”(hŒ1.. |rarr| unicode:: U+02192 .. RIGHTWARDS ARROW”h]”hŒ→”…”�”}”hj/sbah}”(h]”h ]”h"]”Œrarr”ah$]”h&]”uh1håh³hÖh´K?hhh²hubhæ)�”}”(hŒ4.. |rcub| unicode:: U+0007D .. RIGHT CURLY BRACKET”h]”hŒ}”…”�”}”hj>sbah}”(h]”h ]”h"]”Œrcub”ah$]”h&]”uh1håh³hÖh´K@hhh²hubhæ)�”}”(hŒ<.. |rdquo| unicode:: U+0201D .. RIGHT DOUBLE QUOTATION MARK”h]”hŒâ€�”…”�”}”hjMsbah}”(h]”h ]”h"]”Œrdquo”ah$]”h&]”uh1håh³hÖh´KAhhh²hubhæ)�”}”(hŒ0.. |reg| unicode:: U+000AE .. REGISTERED SIGN”h]”hŒ®”…”�”}”hj\sbah}”(h]”h ]”h"]”Œreg”ah$]”h&]”uh1håh³hÖh´KBhhh²hubhæ)�”}”(hŒ2.. |rpar| unicode:: U+00029 .. RIGHT PARENTHESIS”h]”hŒ)”…”�”}”hjksbah}”(h]”h ]”h"]”Œrpar”ah$]”h&]”uh1håh³hÖh´KChhh²hubhæ)�”}”(hŒ5.. |rsqb| unicode:: U+0005D .. RIGHT SQUARE BRACKET”h]”hŒ]”…”�”}”hjzsbah}”(h]”h ]”h"]”Œrsqb”ah$]”h&]”uh1håh³hÖh´KDhhh²hubhæ)�”}”(hŒ<.. |rsquo| unicode:: U+02019 .. RIGHT SINGLE QUOTATION MARK”h]”hŒ’”…”�”}”hj‰sbah}”(h]”h ]”h"]”Œrsquo”ah$]”h&]”uh1håh³hÖh´KEhhh²hubhæ)�”}”(hŒ-.. |sect| unicode:: U+000A7 .. SECTION SIGN”h]”hŒ§”…”�”}”hj˜sbah}”(h]”h ]”h"]”Œsect”ah$]”h&]”uh1håh³hÖh´KFhhh²hubhæ)�”}”(hŒ*.. |semi| unicode:: U+0003B .. SEMICOLON”h]”hŒ;”…”�”}”hj§sbah}”(h]”h ]”h"]”Œsemi”ah$]”h&]”uh1håh³hÖh´KGhhh²hubhæ)�”}”(hŒ,.. |shy| unicode:: U+000AD .. SOFT HYPHEN”h]”hŒ­”…”�”}”hj¶sbah}”(h]”h ]”h"]”Œshy”ah$]”h&]”uh1håh³hÖh´KHhhh²hubhæ)�”}”(hŒ(.. |sol| unicode:: U+0002F .. SOLIDUS”h]”hŒ/”…”�”}”hjÅsbah}”(h]”h ]”h"]”Œsol”ah$]”h&]”uh1håh³hÖh´KIhhh²hubhæ)�”}”(hŒ,.. |sung| unicode:: U+0266A .. EIGHTH NOTE”h]”hŒ♪”…”�”}”hjÔsbah}”(h]”h ]”h"]”Œsung”ah$]”h&]”uh1håh³hÖh´KJhhh²hubhæ)�”}”(hŒ0.. |sup1| unicode:: U+000B9 .. SUPERSCRIPT ONE”h]”hŒ¹”…”�”}”hjãsbah}”(h]”h ]”h"]”Œsup1”ah$]”h&]”uh1håh³hÖh´KKhhh²hubhæ)�”}”(hŒ0.. |sup2| unicode:: U+000B2 .. SUPERSCRIPT TWO”h]”hŒ²”…”�”}”hjòsbah}”(h]”h ]”h"]”Œsup2”ah$]”h&]”uh1håh³hÖh´KLhhh²hubhæ)�”}”(hŒ2.. |sup3| unicode:: U+000B3 .. SUPERSCRIPT THREE”h]”hŒ³”…”�”}”hjsbah}”(h]”h ]”h"]”Œsup3”ah$]”h&]”uh1håh³hÖh´KMhhh²hubhæ)�”}”(hŒ4.. |times| unicode:: U+000D7 .. MULTIPLICATION SIGN”h]”hŒ×”…”�”}”hjsbah}”(h]”h ]”h"]”Œtimes”ah$]”h&]”uh1håh³hÖh´KNhhh²hubhæ)�”}”(hŒ0.. |trade| unicode:: U+02122 .. TRADE MARK SIGN”h]”hŒâ„¢”…”�”}”hjsbah}”(h]”h ]”h"]”Œtrade”ah$]”h&]”uh1håh³hÖh´KOhhh²hubhæ)�”}”(hŒ... |uarr| unicode:: U+02191 .. UPWARDS ARROW”h]”hŒ↑”…”�”}”hj.sbah}”(h]”h ]”h"]”Œuarr”ah$]”h&]”uh1håh³hÖh´KPhhh²hubhæ)�”}”(hŒ... |verbar| unicode:: U+0007C .. VERTICAL LINE”h]”hŒ|”…”�”}”hj=sbah}”(h]”h ]”h"]”Œverbar”ah$]”h&]”uh1håh³hÖh´KQhhh²hubhæ)�”}”(hŒ*.. |yen| unicode:: U+000A5 .. YEN SIGN ”h]”hŒÂ¥”…”�”}”hjLsbah}”(h]”h ]”h"]”Œyen”ah$]”h&]”uh1håh³hÖh´KRhhh²hubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒSuspend/Hibernation Notifiers”h]”hŒSuspend/Hibernation Notifiers”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj]h²hh³hÇh´KubhŒ field_list”“”)�”}”(hhh]”(hŒfield”“”)�”}”(hhh]”(hŒ field_name”“”)�”}”(hŒ Copyright”h]”hŒ Copyright”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jzhjwh³hÇh´KubhŒ field_body”“”)�”}”(hŒ|copy| 2016 Intel Corporation ”h]”hŒ paragraph”“”)�”}”(hŒ|copy| 2016 Intel Corporation”h]”(hŒ©”…”�”}”(hj’h²hh³Nh´NubhŒ 2016 Intel Corporation”…”�”}”(hj’h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´KhjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1jŠhjwubeh}”(h]”h ]”h"]”h$]”h&]”uh1juh³hÇh´Khjrh²hubjv)�”}”(hhh]”(j{)�”}”(hŒAuthor”h]”hŒAuthor”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jzhj°h³hÇh´Kubj‹)�”}”(hŒ0Rafael J. Wysocki ”h]”j‘)�”}”(hŒ.Rafael J. Wysocki ”h]”(hŒRafael J. Wysocki <”…”�”}”(hjÅh²hh³Nh´NubhŒ reference”“”)�”}”(hŒrafael.j.wysocki@intel.com”h]”hŒrafael.j.wysocki@intel.com”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ!mailto:rafael.j.wysocki@intel.com”uh1jÍhjÅubhŒ>”…”�”}”(hjÅh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K hjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1jŠhj°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1juh³hÇh´K hjrh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jphj]h²hh³hÇh´Kubj‘)�”}”(hXOThere are some operations that subsystems or drivers may want to carry out before hibernation/suspend or after restore/resume, but they require the system to be fully functional, so the drivers' and subsystems' ``->suspend()`` and ``->resume()`` or even ``->prepare()`` and ``->complete()`` callbacks are not suitable for this purpose.”h]”(hŒ×There are some operations that subsystems or drivers may want to carry out before hibernation/suspend or after restore/resume, but they require the system to be fully functional, so the drivers’ and subsystems’ ”…”�”}”(hjûh²hh³Nh´NubhŒliteral”“”)�”}”(hŒ``->suspend()``”h]”hŒ ->suspend()”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjûubhŒ and ”…”�”}”(hjûh²hh³Nh´Nubj)�”}”(hŒ``->resume()``”h]”hŒ ->resume()”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjûubhŒ or even ”…”�”}”(hjûh²hh³Nh´Nubj)�”}”(hŒ``->prepare()``”h]”hŒ ->prepare()”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjûubhŒ and ”…”�”}”(hjûh²hh³Nh´Nubj)�”}”(hŒ``->complete()``”h]”hŒ ->complete()”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjûubhŒ- callbacks are not suitable for this purpose.”…”�”}”(hjûh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K hj]h²hubj‘)�”}”(hXÎFor example, device drivers may want to upload firmware to their devices after resume/restore, but they cannot do it by calling :c:func:`request_firmware()` from their ``->resume()`` or ``->complete()`` callback routines (user land processes are frozen at these points). The solution may be to load the firmware into memory before processes are frozen and upload it from there in the ``->resume()`` routine. A suspend/hibernation notifier may be used for that.”h]”(hŒ€For example, device drivers may want to upload firmware to their devices after resume/restore, but they cannot do it by calling ”…”�”}”(hjSh²hh³Nh´Nubh)�”}”(hŒ:c:func:`request_firmware()`”h]”j)�”}”(hj]h]”hŒrequest_firmware()”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œc”Œc-func”eh"]”h$]”h&]”uh1jhj[ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œdriver-api/pm/notifiers”Œ refdomain”jjŒreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰Œ reftarget”Œrequest_firmware”uh1hh³hÇh´KhjSubhŒ from their ”…”�”}”(hjSh²hh³Nh´Nubj)�”}”(hŒ``->resume()``”h]”hŒ ->resume()”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjSubhŒ or ”…”�”}”(hjSh²hh³Nh´Nubj)�”}”(hŒ``->complete()``”h]”hŒ ->complete()”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjSubhŒ· callback routines (user land processes are frozen at these points). The solution may be to load the firmware into memory before processes are frozen and upload it from there in the ”…”�”}”(hjSh²hh³Nh´Nubj)�”}”(hŒ``->resume()``”h]”hŒ ->resume()”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjSubhŒ? routine. A suspend/hibernation notifier may be used for that.”…”�”}”(hjSh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´Khj]h²hubj‘)�”}”(hŒ„Subsystems or drivers having such needs can register suspend notifiers that will be called upon the following events by the PM core:”h]”hŒ„Subsystems or drivers having such needs can register suspend notifiers that will be called upon the following events by the PM core:”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´Khj]h²hubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hX``PM_HIBERNATION_PREPARE`` The system is going to hibernate, tasks will be frozen immediately. This is different from ``PM_SUSPEND_PREPARE`` below, because in this case additional work is done between the notifiers and the invocation of PM callbacks for the "freeze" transition. ”h]”(hŒterm”“”)�”}”(hŒ``PM_HIBERNATION_PREPARE``”h]”j)�”}”(hjÛh]”hŒPM_HIBERNATION_PREPARE”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1j×h³hÇh´K!hjÓubhŒ definition”“”)�”}”(hhh]”j‘)�”}”(hŒûThe system is going to hibernate, tasks will be frozen immediately. This is different from ``PM_SUSPEND_PREPARE`` below, because in this case additional work is done between the notifiers and the invocation of PM callbacks for the "freeze" transition.”h]”(hŒ[The system is going to hibernate, tasks will be frozen immediately. This is different from ”…”�”}”(hjõh²hh³Nh´Nubj)�”}”(hŒ``PM_SUSPEND_PREPARE``”h]”hŒPM_SUSPEND_PREPARE”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjõubhŒŽ below, because in this case additional work is done between the notifiers and the invocation of PM callbacks for the “freezeâ€� transition.”…”�”}”(hjõh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´Khjòubah}”(h]”h ]”h"]”h$]”h&]”uh1jðhjÓubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³hÇh´K!hjÎubjÒ)�”}”(hŒÍ``PM_POST_HIBERNATION`` The system memory state has been restored from a hibernation image or an error occurred during hibernation. Device restore callbacks have been executed and tasks have been thawed. ”h]”(jØ)�”}”(hŒ``PM_POST_HIBERNATION``”h]”j)�”}”(hj'h]”hŒPM_POST_HIBERNATION”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j×h³hÇh´K&hj!ubjñ)�”}”(hhh]”j‘)�”}”(hŒ´The system memory state has been restored from a hibernation image or an error occurred during hibernation. Device restore callbacks have been executed and tasks have been thawed.”h]”hŒ´The system memory state has been restored from a hibernation image or an error occurred during hibernation. Device restore callbacks have been executed and tasks have been thawed.”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K$hj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jðhj!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³hÇh´K&hjÎh²hubjÒ)�”}”(hŒ«``PM_RESTORE_PREPARE`` The system is going to restore a hibernation image. If all goes well, the restored image kernel will issue a ``PM_POST_HIBERNATION`` notification. ”h]”(jØ)�”}”(hŒ``PM_RESTORE_PREPARE``”h]”j)�”}”(hj_h]”hŒPM_RESTORE_PREPARE”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1j×h³hÇh´K+hjYubjñ)�”}”(hhh]”j‘)�”}”(hŒ“The system is going to restore a hibernation image. If all goes well, the restored image kernel will issue a ``PM_POST_HIBERNATION`` notification.”h]”(hŒnThe system is going to restore a hibernation image. If all goes well, the restored image kernel will issue a ”…”�”}”(hjwh²hh³Nh´Nubj)�”}”(hŒ``PM_POST_HIBERNATION``”h]”hŒPM_POST_HIBERNATION”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjwubhŒ notification.”…”�”}”(hjwh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K)hjtubah}”(h]”h ]”h"]”h$]”h&]”uh1jðhjYubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³hÇh´K+hjÎh²hubjÒ)�”}”(hŒ�``PM_POST_RESTORE`` An error occurred during restore from hibernation. Device restore callbacks have been executed and tasks have been thawed. ”h]”(jØ)�”}”(hŒ``PM_POST_RESTORE``”h]”j)�”}”(hj©h]”hŒPM_POST_RESTORE”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j×h³hÇh´K/hj£ubjñ)�”}”(hhh]”j‘)�”}”(hŒ{An error occurred during restore from hibernation. Device restore callbacks have been executed and tasks have been thawed.”h]”hŒ{An error occurred during restore from hibernation. Device restore callbacks have been executed and tasks have been thawed.”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K.hj¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1jðhj£ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³hÇh´K/hjÎh²hubjÒ)�”}”(hŒ<``PM_SUSPEND_PREPARE`` The system is preparing for suspend. ”h]”(jØ)�”}”(hŒ``PM_SUSPEND_PREPARE``”h]”j)�”}”(hjáh]”hŒPM_SUSPEND_PREPARE”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjßubah}”(h]”h ]”h"]”h$]”h&]”uh1j×h³hÇh´K2hjÛubjñ)�”}”(hhh]”j‘)�”}”(hŒ$The system is preparing for suspend.”h]”hŒ$The system is preparing for suspend.”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K2hjöubah}”(h]”h ]”h"]”h$]”h&]”uh1jðhjÛubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³hÇh´K2hjÎh²hubjÒ)�”}”(hŒ�``PM_POST_SUSPEND`` The system has just resumed or an error occurred during suspend. Device resume callbacks have been executed and tasks have been thawed. ”h]”(jØ)�”}”(hŒ``PM_POST_SUSPEND``”h]”j)�”}”(hjh]”hŒPM_POST_SUSPEND”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j×h³hÇh´K6hjubjñ)�”}”(hhh]”j‘)�”}”(hŒˆThe system has just resumed or an error occurred during suspend. Device resume callbacks have been executed and tasks have been thawed.”h]”hŒˆThe system has just resumed or an error occurred during suspend. Device resume callbacks have been executed and tasks have been thawed.”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K5hj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jðhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³hÇh´K6hjÎh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÌhj]h²hh³hÇh´Nubj‘)�”}”(hŒïIt is generally assumed that whatever the notifiers do for ``PM_HIBERNATION_PREPARE``, should be undone for ``PM_POST_HIBERNATION``. Analogously, operations carried out for ``PM_SUSPEND_PREPARE`` should be reversed for ``PM_POST_SUSPEND``.”h]”(hŒ;It is generally assumed that whatever the notifiers do for ”…”�”}”(hjQh²hh³Nh´Nubj)�”}”(hŒ``PM_HIBERNATION_PREPARE``”h]”hŒPM_HIBERNATION_PREPARE”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjQubhŒ, should be undone for ”…”�”}”(hjQh²hh³Nh´Nubj)�”}”(hŒ``PM_POST_HIBERNATION``”h]”hŒPM_POST_HIBERNATION”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjQubhŒ*. Analogously, operations carried out for ”…”�”}”(hjQh²hh³Nh´Nubj)�”}”(hŒ``PM_SUSPEND_PREPARE``”h]”hŒPM_SUSPEND_PREPARE”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjQubhŒ should be reversed for ”…”�”}”(hjQh²hh³Nh´Nubj)�”}”(hŒ``PM_POST_SUSPEND``”h]”hŒPM_POST_SUSPEND”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjQubhŒ.”…”�”}”(hjQh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K8hj]h²hubj‘)�”}”(hŒõMoreover, if one of the notifiers fails for the ``PM_HIBERNATION_PREPARE`` or ``PM_SUSPEND_PREPARE`` event, the notifiers that have already succeeded for that event will be called for ``PM_POST_HIBERNATION`` or ``PM_POST_SUSPEND``, respectively.”h]”(hŒ0Moreover, if one of the notifiers fails for the ”…”�”}”(hj§h²hh³Nh´Nubj)�”}”(hŒ``PM_HIBERNATION_PREPARE``”h]”hŒPM_HIBERNATION_PREPARE”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj§ubhŒ or ”…”�”}”(hj§h²hh³Nh´Nubj)�”}”(hŒ``PM_SUSPEND_PREPARE``”h]”hŒPM_SUSPEND_PREPARE”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj§ubhŒT event, the notifiers that have already succeeded for that event will be called for ”…”�”}”(hj§h²hh³Nh´Nubj)�”}”(hŒ``PM_POST_HIBERNATION``”h]”hŒPM_POST_HIBERNATION”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj§ubhŒ or ”…”�”}”(hj§h²hh³Nh´Nubj)�”}”(hŒ``PM_POST_SUSPEND``”h]”hŒPM_POST_SUSPEND”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj§ubhŒ, respectively.”…”�”}”(hj§h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´K=hj]h²hubj‘)�”}”(hŒ­The hibernation and suspend notifiers are called with :c:data:`pm_mutex` held. They are defined in the usual way, but their last argument is meaningless (it is always NULL).”h]”(hŒ6The hibernation and suspend notifiers are called with ”…”�”}”(hjýh²hh³Nh´Nubh)�”}”(hŒ:c:data:`pm_mutex`”h]”j)�”}”(hj h]”hŒpm_mutex”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”(jijjŒc-data”eh"]”h$]”h&]”uh1jhj ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jvŒ refdomain”jjŒreftype”Œdata”Œ refexplicit”‰Œrefwarn”‰j|Œpm_mutex”uh1hh³hÇh´KBhjýubhŒe held. They are defined in the usual way, but their last argument is meaningless (it is always NULL).”…”�”}”(hjýh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´KBhj]h²hubj‘)�”}”(hXKTo register and/or unregister a suspend notifier use :c:func:`register_pm_notifier()` and :c:func:`unregister_pm_notifier()`, respectively (both defined in :file:`include/linux/suspend.h`). If you don't need to unregister the notifier, you can also use the :c:func:`pm_notifier()` macro defined in :file:`include/linux/suspend.h`.”h]”(hŒ5To register and/or unregister a suspend notifier use ”…”�”}”(hj. h²hh³Nh´Nubh)�”}”(hŒ :c:func:`register_pm_notifier()`”h]”j)�”}”(hj8 h]”hŒregister_pm_notifier()”…”�”}”(hj: h²hh³Nh´Nubah}”(h]”h ]”(jijjŒc-func”eh"]”h$]”h&]”uh1jhj6 ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jvŒ refdomain”jjŒreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰j|Œregister_pm_notifier”uh1hh³hÇh´KFhj. ubhŒ and ”…”�”}”(hj. h²hh³Nh´Nubh)�”}”(hŒ":c:func:`unregister_pm_notifier()`”h]”j)�”}”(hj[ h]”hŒunregister_pm_notifier()”…”�”}”(hj] h²hh³Nh´Nubah}”(h]”h ]”(jijjŒc-func”eh"]”h$]”h&]”uh1jhjY ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jvŒ refdomain”jjŒreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰j|Œunregister_pm_notifier”uh1hh³hÇh´KFhj. ubhŒ , respectively (both defined in ”…”�”}”(hj. h²hh³Nh´Nubj)�”}”(hŒ:file:`include/linux/suspend.h`”h]”hŒinclude/linux/suspend.h”…”�”}”(hj| h²hh³Nh´Nubah}”(h]”h ]”Œfile”ah"]”h$]”h&]”Œrole”Œfile”uh1jhj. ubhŒI). If you don’t need to unregister the notifier, you can also use the ”…”�”}”(hj. h²hh³Nh´Nubh)�”}”(hŒ:c:func:`pm_notifier()`”h]”j)�”}”(hj“ h]”hŒ pm_notifier()”…”�”}”(hj• h²hh³Nh´Nubah}”(h]”h ]”(jijjŒc-func”eh"]”h$]”h&]”uh1jhj‘ ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jvŒ refdomain”jjŒreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰j|Œ pm_notifier”uh1hh³hÇh´KFhj. ubhŒ macro defined in ”…”�”}”(hj. h²hh³Nh´Nubj)�”}”(hŒ:file:`include/linux/suspend.h`”h]”hŒinclude/linux/suspend.h”…”�”}”(hj´ h²hh³Nh´Nubah}”(h]”h ]”Œfile”ah"]”h$]”h&]”Œrole”Œfile”uh1jhj. ubhŒ.”…”�”}”(hj. h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�h³hÇh´KFhj]h²hubeh}”(h]”Œsuspend-hibernation-notifiers”ah ]”h"]”Œsuspend/hibernation notifiers”ah$]”h&]”uh1j[hhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(j`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”}”(hóhçjhöjjj jj/j#j>j2jMjAj\jPjkj_jzjnj‰j}j˜jŒj§j›j¶jªjÅj¹jÔjÈjãj×jòjæjjõjjjjj.j"j=j1jLj@j[jOjjj^jyjmjˆj|j—j‹j¦jšjµj©jÄj¸jÓjÇjâjÖjñjåjjôjjjjj-j!j<j0jKj?jZjNjij]jxjlj‡j{j–jŠj¥j™j´j¨jÃj·jÒjÆjájÕjðjäjÿjójjjjj,j j;j/jJj>jYjMjhj\jwjkj†jzj•j‰j¤j˜j³j§jÂj¶jÑjÅjàjÔjïjãjþjòj jjjj+jj:j.jIj=jXjLuŒsubstitution_names”}”(Œamp”hóŒapos”jŒast”jŒbrvbar”j Œbsol”j/Œcent”j>Œcolon”jMŒcomma”j\Œcommat”jkŒcopy”jzŒcurren”j‰Œdarr”j˜Œdeg”j§Œdivide”j¶Œdollar”jÅŒequals”jÔŒexcl”jãŒfrac12”jòŒfrac14”jŒfrac18”jŒfrac34”jŒfrac38”j.Œfrac58”j=Œfrac78”jLŒgt”j[Œhalf”jjŒhorbar”jyŒhyphen”jˆŒiexcl”j—Œiquest”j¦Œlaquo”jµŒlarr”jÄŒlcub”jÓŒldquo”jâŒlowbar”jñŒlpar”jŒlsqb”jŒlsquo”jŒlt”j-Œmicro”j<Œmiddot”jKŒnbsp”jZŒnot”jiŒnum”jxŒohm”j‡Œordf”j–Œordm”j¥Œpara”j´Œpercnt”jÃŒperiod”jÒŒplus”jáŒplusmn”jðŒpound”jÿŒquest”jŒquot”jŒraquo”j,Œrarr”j;Œrcub”jJŒrdquo”jYŒreg”jhŒrpar”jwŒrsqb”j†Œrsquo”j•Œsect”j¤Œsemi”j³Œshy”jÂŒsol”jÑŒsung”jàŒsup1”jïŒsup2”jþŒsup3”j Œtimes”jŒtrade”j+Œuarr”j:Œverbar”jIŒyen”jXuŒrefnames”}”Œrefids”}”Œnameids”}”jÔ jÑ sŒ nametypes”}”jÔ ‰sh}”jÑ j]sŒ 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”]”Œ)Documentation/driver-api/pm/notifiers.rst”(NNNNt”†”aŒ decoration”Nh²hub.