€•(Œ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/core-api/genericirq”Œ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/core-api/genericirq”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/it_IT/core-api/genericirq”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/ja_JP/core-api/genericirq”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/ko_KR/core-api/genericirq”Œ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/core-api/genericirq”Œ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/core-api/genericirq”Œ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Œ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&]”Œ xml:space”Œpreserve”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Œ*”…”�”}”hhösbah}”(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Œ\”…”�”}”hjsbah}”(h]”h ]”h"]”Œbsol”ah$]”h&]”uh1hÖh³hÇh´K hhh²hubh×)�”}”(hŒ*.. |cent| unicode:: U+000A2 .. CENT SIGN”h]”hŒ¢”…”�”}”hj#sbah}”(h]”h ]”h"]”Œcent”ah$]”h&]”uh1hÖh³hÇh´K hhh²hubh×)�”}”(hŒ&.. |colon| unicode:: U+0003A .. COLON”h]”hŒ:”…”�”}”hj2sbah}”(h]”h ]”h"]”Œcolon”ah$]”h&]”uh1hÖh³hÇh´K hhh²hubh×)�”}”(hŒ&.. |comma| unicode:: U+0002C .. COMMA”h]”hŒ,”…”�”}”hjAsbah}”(h]”h ]”h"]”Œcomma”ah$]”h&]”uh1hÖh³hÇh´Khhh²hubh×)�”}”(hŒ... |commat| unicode:: U+00040 .. COMMERCIAL AT”h]”hŒ@”…”�”}”hjPsbah}”(h]”h ]”h"]”Œcommat”ah$]”h&]”uh1hÖh³hÇh´Khhh²hubh×)�”}”(hŒ/.. |copy| unicode:: U+000A9 .. COPYRIGHT SIGN”h]”hŒ©”…”�”}”hj_sbah}”(h]”h ]”h"]”Œcopy”ah$]”h&]”uh1hÖh³hÇh´Khhh²hubh×)�”}”(hŒ... |curren| unicode:: U+000A4 .. CURRENCY SIGN”h]”hŒ¤”…”�”}”hjnsbah}”(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Œâ…›”…”�”}”hjõsbah}”(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Œâ…œ”…”�”}”hjsbah}”(h]”h ]”h"]”Œfrac38”ah$]”h&]”uh1hÖh³hÇh´Khhh²hubh×)�”}”(hŒ=.. |frac58| unicode:: U+0215D .. VULGAR FRACTION FIVE EIGHTHS”h]”hŒâ…�”…”�”}”hj"sbah}”(h]”h ]”h"]”Œfrac58”ah$]”h&]”uh1hÖh³hÇh´Khhh²hubh×)�”}”(hŒ>.. |frac78| unicode:: U+0215E .. VULGAR FRACTION SEVEN EIGHTHS”h]”hŒâ…ž”…”�”}”hj1sbah}”(h]”h ]”h"]”Œfrac78”ah$]”h&]”uh1hÖh³hÇh´Khhh²hubh×)�”}”(hŒ2.. |gt| unicode:: U+0003E .. GREATER-THAN SIGN”h]”hŒ>”…”�”}”hj@sbah}”(h]”h ]”h"]”Œgt”ah$]”h&]”uh1hÖh³hÇh´Khhh²hubh×)�”}”(hŒ9.. |half| unicode:: U+000BD .. VULGAR FRACTION ONE HALF”h]”hŒ½”…”�”}”hjOsbah}”(h]”h ]”h"]”Œhalf”ah$]”h&]”uh1hÖh³hÇh´K hhh²hubh×)�”}”(hŒ/.. |horbar| unicode:: U+02015 .. HORIZONTAL BAR”h]”hŒ―”…”�”}”hj^sbah}”(h]”h ]”h"]”Œhorbar”ah$]”h&]”uh1hÖh³hÇh´K!hhh²hubh×)�”}”(hŒ'.. |hyphen| unicode:: U+02010 .. HYPHEN”h]”hŒâ€�”…”�”}”hjmsbah}”(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Œ[”…”�”}”hjôsbah}”(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Œ<”…”�”}”hjsbah}”(h]”h ]”h"]”Œlt”ah$]”h&]”uh1hÖh³hÇh´K-hhh²hubh×)�”}”(hŒ+.. |micro| unicode:: U+000B5 .. MICRO SIGN”h]”hŒµ”…”�”}”hj!sbah}”(h]”h ]”h"]”Œmicro”ah$]”h&]”uh1hÖh³hÇh´K.hhh²hubh×)�”}”(hŒ+.. |middot| unicode:: U+000B7 .. MIDDLE DOT”h]”hŒ·”…”�”}”hj0sbah}”(h]”h ]”h"]”Œmiddot”ah$]”h&]”uh1hÖh³hÇh´K/hhh²hubh×)�”}”(hŒ/.. |nbsp| unicode:: U+000A0 .. NO-BREAK SPACE”h]”hŒ ”…”�”}”hj?sbah}”(h]”h ]”h"]”Œnbsp”ah$]”h&]”uh1hÖh³hÇh´K0hhh²hubh×)�”}”(hŒ).. |not| unicode:: U+000AC .. NOT SIGN”h]”hŒ¬”…”�”}”hjNsbah}”(h]”h ]”h"]”Œnot”ah$]”h&]”uh1hÖh³hÇh´K1hhh²hubh×)�”}”(hŒ,.. |num| unicode:: U+00023 .. NUMBER SIGN”h]”hŒ#”…”�”}”hj]sbah}”(h]”h ]”h"]”Œnum”ah$]”h&]”uh1hÖh³hÇh´K2hhh²hubh×)�”}”(hŒ).. |ohm| unicode:: U+02126 .. OHM SIGN”h]”hŒΩ”…”�”}”hjlsbah}”(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Œ?”…”�”}”hjósbah}”(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Œâ€�”…”�”}”hj>sbah}”(h]”h ]”h"]”Œrdquo”ah$]”h&]”uh1hÖh³hÇh´KAhhh²hubh×)�”}”(hŒ0.. |reg| unicode:: U+000AE .. REGISTERED SIGN”h]”hŒ®”…”�”}”hjMsbah}”(h]”h ]”h"]”Œreg”ah$]”h&]”uh1hÖh³hÇh´KBhhh²hubh×)�”}”(hŒ2.. |rpar| unicode:: U+00029 .. RIGHT PARENTHESIS”h]”hŒ)”…”�”}”hj\sbah}”(h]”h ]”h"]”Œrpar”ah$]”h&]”uh1hÖh³hÇh´KChhh²hubh×)�”}”(hŒ5.. |rsqb| unicode:: U+0005D .. RIGHT SQUARE BRACKET”h]”hŒ]”…”�”}”hjksbah}”(h]”h ]”h"]”Œrsqb”ah$]”h&]”uh1hÖh³hÇh´KDhhh²hubh×)�”}”(hŒ<.. |rsquo| unicode:: U+02019 .. RIGHT SINGLE QUOTATION MARK”h]”hŒ’”…”�”}”hjzsbah}”(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Œ³”…”�”}”hjòsbah}”(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Œ↑”…”�”}”hjsbah}”(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ŒÂ¥”…”�”}”hj=sbah}”(h]”h ]”h"]”Œyen”ah$]”h&]”uh1hÖh³hÇh´KRhhh²hubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒLinux generic IRQ handling”h]”hŒLinux generic IRQ handling”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjNh²hh³ŒA/var/lib/git/docbuild/linux/Documentation/core-api/genericirq.rst”h´KubhŒ field_list”“”)�”}”(hhh]”(hŒfield”“”)�”}”(hhh]”(hŒ field_name”“”)�”}”(hŒ Copyright”h]”hŒ Copyright”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhjih³jah´KubhŒ field_body”“”)�”}”(hŒ!|copy| 2005-2010: Thomas Gleixner”h]”hŒ paragraph”“”)�”}”(hj€h]”(hŒ©”…”�”}”(hj„h²hh³Nh´NubhŒ 2005-2010: Thomas Gleixner”…”�”}”(hj„h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Khj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hjiubeh}”(h]”h ]”h"]”h$]”h&]”uh1jgh³jah´Khjdh²hubjh)�”}”(hhh]”(jm)�”}”(hŒ Copyright”h]”hŒ Copyright”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jlhj¡h³jah´Kubj})�”}”(hŒ|copy| 2005-2006: Ingo Molnar ”h]”jƒ)�”}”(hŒ|copy| 2005-2006: Ingo Molnar”h]”(hŒ©”…”�”}”(hj¶h²hh³Nh´NubhŒ 2005-2006: Ingo Molnar”…”�”}”(hj¶h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Khj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj¡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jgh³jah´Khjdh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jbhjNh²hh³jah´KubjM)�”}”(hhh]”(jR)�”}”(hŒ Introduction”h]”hŒ Introduction”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjÚh²hh³jah´K ubjƒ)�”}”(hX±The generic interrupt handling layer is designed to provide a complete abstraction of interrupt handling for device drivers. It is able to handle all the different types of interrupt controller hardware. Device drivers use generic API functions to request, enable, disable and free interrupts. The drivers do not have to know anything about interrupt hardware details, so they can be used on different platforms without code changes.”h]”hX±The generic interrupt handling layer is designed to provide a complete abstraction of interrupt handling for device drivers. It is able to handle all the different types of interrupt controller hardware. Device drivers use generic API functions to request, enable, disable and free interrupts. The drivers do not have to know anything about interrupt hardware details, so they can be used on different platforms without code changes.”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K hjÚh²hubjƒ)�”}”(hŒ¨This documentation is provided to developers who want to implement an interrupt subsystem based for their architecture, with the help of the generic IRQ handling layer.”h]”hŒ¨This documentation is provided to developers who want to implement an interrupt subsystem based for their architecture, with the help of the generic IRQ handling layer.”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´KhjÚh²hubeh}”(h]”Œ introduction”ah ]”h"]”Œ introduction”ah$]”h&]”uh1jLhjNh²hh³jah´K ubjM)�”}”(hhh]”(jR)�”}”(hŒ Rationale”h]”hŒ Rationale”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjh²hh³jah´Kubjƒ)�”}”(hŒ—The original implementation of interrupt handling in Linux uses the __do_IRQ() super-handler, which is able to deal with every type of interrupt logic.”h]”hŒ—The original implementation of interrupt handling in Linux uses the __do_IRQ() super-handler, which is able to deal with every type of interrupt logic.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Khjh²hubjƒ)�”}”(hŒ·Originally, Russell King identified different types of handlers to build a quite universal set for the ARM interrupt handler implementation in Linux 2.5/2.6. He distinguished between:”h]”hŒ·Originally, Russell King identified different types of handlers to build a quite universal set for the ARM interrupt handler implementation in Linux 2.5/2.6. He distinguished between:”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K hjh²hubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒ Level type ”h]”jƒ)�”}”(hŒ Level type”h]”hŒ Level type”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K$hjCubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj>h²hh³jah´NubjB)�”}”(hŒ Edge type ”h]”jƒ)�”}”(hŒ Edge type”h]”hŒ Edge type”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K&hj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj>h²hh³jah´NubjB)�”}”(hŒ Simple type ”h]”jƒ)�”}”(hŒ Simple type”h]”hŒ Simple type”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K(hjsubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj>h²hh³jah´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1j<h³jah´K$hjh²hubjƒ)�”}”(hŒ5During the implementation we identified another type:”h]”hŒ5During the implementation we identified another type:”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K*hjh²hubj=)�”}”(hhh]”jB)�”}”(hŒFast EOI type ”h]”jƒ)�”}”(hŒ Fast EOI type”h]”hŒ Fast EOI type”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K,hj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj¡h²hh³jah´Nubah}”(h]”h ]”h"]”h$]”h&]”j‘j’uh1j<h³jah´K,hjh²hubjƒ)�”}”(hŒMIn the SMP world of the __do_IRQ() super-handler another type was identified:”h]”hŒMIn the SMP world of the __do_IRQ() super-handler another type was identified:”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K.hjh²hubj=)�”}”(hhh]”jB)�”}”(hŒ Per CPU type ”h]”jƒ)�”}”(hŒ Per CPU type”h]”hŒ Per CPU type”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K1hjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhjÐh²hh³jah´Nubah}”(h]”h ]”h"]”h$]”h&]”j‘j’uh1j<h³jah´K1hjh²hubjƒ)�”}”(hŒ÷This split implementation of high-level IRQ handlers allows us to optimize the flow of the interrupt handling for each specific interrupt type. This reduces complexity in that particular code path and allows the optimized handling of a given type.”h]”hŒ÷This split implementation of high-level IRQ handlers allows us to optimize the flow of the interrupt handling for each specific interrupt type. This reduces complexity in that particular code path and allows the optimized handling of a given type.”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K3hjh²hubjƒ)�”}”(hXÊThe original general IRQ implementation used hw_interrupt_type structures and their ``->ack``, ``->end`` [etc.] callbacks to differentiate the flow control in the super-handler. This leads to a mix of flow logic and low-level hardware logic, and it also leads to unnecessary code duplication: for example in i386, there is an ``ioapic_level_irq`` and an ``ioapic_edge_irq`` IRQ-type which share many of the low-level details but have different flow handling.”h]”(hŒTThe original general IRQ implementation used hw_interrupt_type structures and their ”…”�”}”(hjÿh²hh³Nh´NubhŒliteral”“”)�”}”(hŒ ``->ack``”h]”hŒ->ack”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÿubhŒ, ”…”�”}”(hjÿh²hh³Nh´Nubj)�”}”(hŒ ``->end``”h]”hŒ->end”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÿubhŒÞ [etc.] callbacks to differentiate the flow control in the super-handler. This leads to a mix of flow logic and low-level hardware logic, and it also leads to unnecessary code duplication: for example in i386, there is an ”…”�”}”(hjÿh²hh³Nh´Nubj)�”}”(hŒ``ioapic_level_irq``”h]”hŒioapic_level_irq”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÿubhŒ and an ”…”�”}”(hjÿh²hh³Nh´Nubj)�”}”(hŒ``ioapic_edge_irq``”h]”hŒioapic_edge_irq”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÿubhŒU IRQ-type which share many of the low-level details but have different flow handling.”…”�”}”(hjÿh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K8hjh²hubjƒ)�”}”(hŒ\A more natural abstraction is the clean separation of the 'irq flow' and the 'chip details'.”h]”hŒdA more natural abstraction is the clean separation of the ‘irq flow’ and the ‘chip details’.”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K@hjh²hubjƒ)�”}”(hX}Analysing a couple of architecture's IRQ subsystem implementations reveals that most of them can use a generic set of 'irq flow' methods and only need to add the chip-level specific code. The separation is also valuable for (sub)architectures which need specific quirks in the IRQ flow itself but not in the chip details - and thus provides a more transparent IRQ subsystem design.”h]”hXƒAnalysing a couple of architecture’s IRQ subsystem implementations reveals that most of them can use a generic set of ‘irq flow’ methods and only need to add the chip-level specific code. The separation is also valuable for (sub)architectures which need specific quirks in the IRQ flow itself but not in the chip details - and thus provides a more transparent IRQ subsystem design.”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´KChjh²hubjƒ)�”}”(hX%Each interrupt descriptor is assigned its own high-level flow handler, which is normally one of the generic implementations. (This high-level flow handler implementation also makes it simple to provide demultiplexing handlers which can be found in embedded platforms on various architectures.)”h]”hX%Each interrupt descriptor is assigned its own high-level flow handler, which is normally one of the generic implementations. (This high-level flow handler implementation also makes it simple to provide demultiplexing handlers which can be found in embedded platforms on various architectures.)”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´KJhjh²hubjƒ)�”}”(hXThe separation makes the generic interrupt handling layer more flexible and extensible. For example, an (sub)architecture can use a generic IRQ-flow implementation for 'level type' interrupts and add a (sub)architecture specific 'edge type' implementation.”h]”hXThe separation makes the generic interrupt handling layer more flexible and extensible. For example, an (sub)architecture can use a generic IRQ-flow implementation for ‘level type’ interrupts and add a (sub)architecture specific ‘edge type’ implementation.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´KPhjh²hubjƒ)�”}”(hXTo make the transition to the new model easier and prevent the breakage of existing implementations, the __do_IRQ() super-handler is still available. This leads to a kind of duality for the time being. Over time the new model should be used in more and more architectures, as it enables smaller and cleaner IRQ subsystems. It's deprecated for three years now and about to be removed.”h]”hX�To make the transition to the new model easier and prevent the breakage of existing implementations, the __do_IRQ() super-handler is still available. This leads to a kind of duality for the time being. Over time the new model should be used in more and more architectures, as it enables smaller and cleaner IRQ subsystems. It’s deprecated for three years now and about to be removed.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´KUhjh²hubeh}”(h]”Œ rationale”ah ]”h"]”Œ rationale”ah$]”h&]”uh1jLhjNh²hh³jah´KubjM)�”}”(hhh]”(jR)�”}”(hŒKnown Bugs And Assumptions”h]”hŒKnown Bugs And Assumptions”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj¥h²hh³jah´K]ubjƒ)�”}”(hŒNone (knock on wood).”h]”hŒNone (knock on wood).”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K_hj¥h²hubeh}”(h]”Œknown-bugs-and-assumptions”ah ]”h"]”Œknown bugs and assumptions”ah$]”h&]”uh1jLhjNh²hh³jah´K]ubjM)�”}”(hhh]”(jR)�”}”(hŒAbstraction layers”h]”hŒAbstraction layers”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjÌh²hh³jah´Kbubjƒ)�”}”(hŒAThere are three main levels of abstraction in the interrupt code:”h]”hŒAThere are three main levels of abstraction in the interrupt code:”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´KdhjÌh²hubhŒenumerated_list”“”)�”}”(hhh]”(jB)�”}”(hŒHigh-level driver API ”h]”jƒ)�”}”(hŒHigh-level driver API”h]”hŒHigh-level driver API”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Kfhjðubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhjíh²hh³jah´NubjB)�”}”(hŒHigh-level IRQ flow handlers ”h]”jƒ)�”}”(hŒHigh-level IRQ flow handlers”h]”hŒHigh-level IRQ flow handlers”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Khhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhjíh²hh³jah´NubjB)�”}”(hŒ"Chip-level hardware encapsulation ”h]”jƒ)�”}”(hŒ!Chip-level hardware encapsulation”h]”hŒ!Chip-level hardware encapsulation”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Kjhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhjíh²hh³jah´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1jëhjÌh²hh³jah´KfubjM)�”}”(hhh]”(jR)�”}”(hŒInterrupt control flow”h]”hŒInterrupt control flow”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjCh²hh³jah´Kmubjƒ)�”}”(hX“Each interrupt is described by an interrupt descriptor structure irq_desc. The interrupt is referenced by an 'unsigned int' numeric value which selects the corresponding interrupt description structure in the descriptor structures array. The descriptor structure contains status information and pointers to the interrupt flow method and the interrupt chip structure which are assigned to this interrupt.”h]”hX—Each interrupt is described by an interrupt descriptor structure irq_desc. The interrupt is referenced by an ‘unsigned int’ numeric value which selects the corresponding interrupt description structure in the descriptor structures array. The descriptor structure contains status information and pointers to the interrupt flow method and the interrupt chip structure which are assigned to this interrupt.”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´KohjCh²hubjƒ)�”}”(hX Whenever an interrupt triggers, the low-level architecture code calls into the generic interrupt code by calling desc->handle_irq(). This high-level IRQ handling function only uses desc->irq_data.chip primitives referenced by the assigned chip descriptor structure.”h]”hX Whenever an interrupt triggers, the low-level architecture code calls into the generic interrupt code by calling desc->handle_irq(). This high-level IRQ handling function only uses desc->irq_data.chip primitives referenced by the assigned chip descriptor structure.”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´KvhjCh²hubeh}”(h]”Œinterrupt-control-flow”ah ]”h"]”Œinterrupt control flow”ah$]”h&]”uh1jLhjÌh²hh³jah´KmubjM)�”}”(hhh]”(jR)�”}”(hŒHigh-level Driver API”h]”hŒHigh-level Driver API”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjxh²hh³jah´K|ubjƒ)�”}”(hŒ:The high-level Driver API consists of following functions:”h]”hŒ:The high-level Driver API consists of following functions:”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K~hjxh²hubj=)�”}”(hhh]”(jB)�”}”(hŒrequest_irq() ”h]”jƒ)�”}”(hŒ request_irq()”h]”hŒ request_irq()”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K€hjšubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj—h²hh³jah´NubjB)�”}”(hŒrequest_threaded_irq() ”h]”jƒ)�”}”(hŒrequest_threaded_irq()”h]”hŒrequest_threaded_irq()”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K‚hj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj—h²hh³jah´NubjB)�”}”(hŒ free_irq() ”h]”jƒ)�”}”(hŒ free_irq()”h]”hŒ free_irq()”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K„hjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj—h²hh³jah´NubjB)�”}”(hŒdisable_irq() ”h]”jƒ)�”}”(hŒ disable_irq()”h]”hŒ disable_irq()”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K†hjâubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj—h²hh³jah´NubjB)�”}”(hŒ enable_irq() ”h]”jƒ)�”}”(hŒ enable_irq()”h]”hŒ enable_irq()”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Kˆhjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj—h²hh³jah´NubjB)�”}”(hŒ disable_irq_nosync() (SMP only) ”h]”jƒ)�”}”(hŒdisable_irq_nosync() (SMP only)”h]”hŒdisable_irq_nosync() (SMP only)”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´KŠhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj—h²hh³jah´NubjB)�”}”(hŒsynchronize_irq() (SMP only) ”h]”jƒ)�”}”(hŒsynchronize_irq() (SMP only)”h]”hŒsynchronize_irq() (SMP only)”…”�”}”(hj. h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´KŒhj* ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj—h²hh³jah´NubjB)�”}”(hŒirq_set_irq_type() ”h]”jƒ)�”}”(hŒirq_set_irq_type()”h]”hŒirq_set_irq_type()”…”�”}”(hjF h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´KŽhjB ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj—h²hh³jah´NubjB)�”}”(hŒirq_set_irq_wake() ”h]”jƒ)�”}”(hŒirq_set_irq_wake()”h]”hŒirq_set_irq_wake()”…”�”}”(hj^ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K�hjZ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj—h²hh³jah´NubjB)�”}”(hŒirq_set_handler_data() ”h]”jƒ)�”}”(hŒirq_set_handler_data()”h]”hŒirq_set_handler_data()”…”�”}”(hjv h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K’hjr ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj—h²hh³jah´NubjB)�”}”(hŒirq_set_chip() ”h]”jƒ)�”}”(hŒirq_set_chip()”h]”hŒirq_set_chip()”…”�”}”(hjŽ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K”hjŠ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj—h²hh³jah´NubjB)�”}”(hŒirq_set_chip_data() ”h]”jƒ)�”}”(hŒirq_set_chip_data()”h]”hŒirq_set_chip_data()”…”�”}”(hj¦ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K–hj¢ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj—h²hh³jah´Nubeh}”(h]”h ]”h"]”h$]”h&]”j‘j’uh1j<h³jah´K€hjxh²hubjƒ)�”}”(hŒ9See the autogenerated function documentation for details.”h]”hŒ9See the autogenerated function documentation for details.”…”�”}”(hjÀ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K˜hjxh²hubeh}”(h]”Œhigh-level-driver-api”ah ]”h"]”Œhigh-level driver api”ah$]”h&]”uh1jLhjÌh²hh³jah´K|ubjM)�”}”(hhh]”(jR)�”}”(hŒHigh-level IRQ flow handlers”h]”hŒHigh-level IRQ flow handlers”…”�”}”(hjÙ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjÖ h²hh³jah´K›ubjƒ)�”}”(hŒAThe generic layer provides a set of pre-defined irq-flow methods:”h]”hŒAThe generic layer provides a set of pre-defined irq-flow methods:”…”�”}”(hjç h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K�hjÖ h²hubj=)�”}”(hhh]”(jB)�”}”(hŒhandle_level_irq() ”h]”jƒ)�”}”(hŒhandle_level_irq()”h]”hŒhandle_level_irq()”…”�”}”(hjü h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´KŸhjø ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhjõ h²hh³jah´NubjB)�”}”(hŒhandle_edge_irq() ”h]”jƒ)�”}”(hŒhandle_edge_irq()”h]”hŒhandle_edge_irq()”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K¡hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhjõ h²hh³jah´NubjB)�”}”(hŒhandle_fasteoi_irq() ”h]”jƒ)�”}”(hŒhandle_fasteoi_irq()”h]”hŒhandle_fasteoi_irq()”…”�”}”(hj, h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K£hj( ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhjõ h²hh³jah´NubjB)�”}”(hŒhandle_simple_irq() ”h]”jƒ)�”}”(hŒhandle_simple_irq()”h]”hŒhandle_simple_irq()”…”�”}”(hjD h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K¥hj@ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhjõ h²hh³jah´NubjB)�”}”(hŒhandle_percpu_irq() ”h]”jƒ)�”}”(hŒhandle_percpu_irq()”h]”hŒhandle_percpu_irq()”…”�”}”(hj\ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K§hjX ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhjõ h²hh³jah´NubjB)�”}”(hŒhandle_edge_eoi_irq() ”h]”jƒ)�”}”(hŒhandle_edge_eoi_irq()”h]”hŒhandle_edge_eoi_irq()”…”�”}”(hjt h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K©hjp ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhjõ h²hh³jah´NubjB)�”}”(hŒhandle_bad_irq() ”h]”jƒ)�”}”(hŒhandle_bad_irq()”h]”hŒhandle_bad_irq()”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K«hjˆ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhjõ h²hh³jah´Nubeh}”(h]”h ]”h"]”h$]”h&]”j‘j’uh1j<h³jah´KŸhjÖ h²hubjƒ)�”}”(hŒ·The interrupt flow handlers (either pre-defined or architecture specific) are assigned to specific interrupts by the architecture either during bootup or during device initialization.”h]”hŒ·The interrupt flow handlers (either pre-defined or architecture specific) are assigned to specific interrupts by the architecture either during bootup or during device initialization.”…”�”}”(hj¦ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K­hjÖ h²hubjM)�”}”(hhh]”(jR)�”}”(hŒDefault flow implementations”h]”hŒDefault flow implementations”…”�”}”(hj· h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj´ h²hh³jah´K²ubjM)�”}”(hhh]”(jR)�”}”(hŒHelper functions”h]”hŒHelper functions”…”�”}”(hjÈ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjÅ h²hh³jah´Kµubjƒ)�”}”(hŒ¥The helper functions call the chip primitives and are used by the default flow implementations. The following helper functions are implemented (simplified excerpt)::”h]”hŒ¤The helper functions call the chip primitives and are used by the default flow implementations. The following helper functions are implemented (simplified excerpt):”…”�”}”(hjÖ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K·hjÅ h²hubhŒ literal_block”“”)�”}”(hXèdefault_enable(struct irq_data *data) { desc->irq_data.chip->irq_unmask(data); } default_disable(struct irq_data *data) { if (!delay_disable(data)) desc->irq_data.chip->irq_mask(data); } default_ack(struct irq_data *data) { chip->irq_ack(data); } default_mask_ack(struct irq_data *data) { if (chip->irq_mask_ack) { chip->irq_mask_ack(data); } else { chip->irq_mask(data); chip->irq_ack(data); } } noop(struct irq_data *data) { }”h]”hXèdefault_enable(struct irq_data *data) { desc->irq_data.chip->irq_unmask(data); } default_disable(struct irq_data *data) { if (!delay_disable(data)) desc->irq_data.chip->irq_mask(data); } default_ack(struct irq_data *data) { chip->irq_ack(data); } default_mask_ack(struct irq_data *data) { if (chip->irq_mask_ack) { chip->irq_mask_ack(data); } else { chip->irq_mask(data); chip->irq_ack(data); } } noop(struct irq_data *data) { }”…”�”}”hjæ sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jä h³jah´K»hjÅ h²hubeh}”(h]”Œhelper-functions”ah ]”h"]”Œhelper functions”ah$]”h&]”uh1jLhj´ h²hh³jah´Kµubeh}”(h]”Œdefault-flow-implementations”ah ]”h"]”Œdefault flow implementations”ah$]”h&]”uh1jLhjÖ h²hh³jah´K²ubjM)�”}”(hhh]”(jR)�”}”(hŒ$Default flow handler implementations”h]”hŒ$Default flow handler implementations”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj h²hh³jah´KÜubjM)�”}”(hhh]”(jR)�”}”(hŒDefault Level IRQ flow handler”h]”hŒDefault Level IRQ flow handler”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj h²hh³jah´Kßubjƒ)�”}”(hŒRhandle_level_irq provides a generic implementation for level-triggered interrupts.”h]”hŒRhandle_level_irq provides a generic implementation for level-triggered interrupts.”…”�”}”(hj& h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Káhj h²hubjƒ)�”}”(hŒ@The following control flow is implemented (simplified excerpt)::”h]”hŒ?The following control flow is implemented (simplified excerpt):”…”�”}”(hj4 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Kähj h²hubjå )�”}”(hŒgdesc->irq_data.chip->irq_mask_ack(); handle_irq_event(desc->action); desc->irq_data.chip->irq_unmask();”h]”hŒgdesc->irq_data.chip->irq_mask_ack(); handle_irq_event(desc->action); desc->irq_data.chip->irq_unmask();”…”�”}”hjB sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jä h³jah´Kæhj h²hubeh}”(h]”Œdefault-level-irq-flow-handler”ah ]”h"]”Œdefault level irq flow handler”ah$]”h&]”uh1jLhj h²hh³jah´KßubjM)�”}”(hhh]”(jR)�”}”(hŒ!Default Fast EOI IRQ flow handler”h]”hŒ!Default Fast EOI IRQ flow handler”…”�”}”(hj[ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjX h²hh³jah´Kìubjƒ)�”}”(hŒvhandle_fasteoi_irq provides a generic implementation for interrupts, which only need an EOI at the end of the handler.”h]”hŒvhandle_fasteoi_irq provides a generic implementation for interrupts, which only need an EOI at the end of the handler.”…”�”}”(hji h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´KîhjX h²hubjƒ)�”}”(hŒ@The following control flow is implemented (simplified excerpt)::”h]”hŒ?The following control flow is implemented (simplified excerpt):”…”�”}”(hjw h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´KñhjX h²hubjå )�”}”(hŒ?handle_irq_event(desc->action); desc->irq_data.chip->irq_eoi();”h]”hŒ?handle_irq_event(desc->action); desc->irq_data.chip->irq_eoi();”…”�”}”hj… sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jä h³jah´KóhjX h²hubeh}”(h]”Œ!default-fast-eoi-irq-flow-handler”ah ]”h"]”Œ!default fast eoi irq flow handler”ah$]”h&]”uh1jLhj h²hh³jah´KìubjM)�”}”(hhh]”(jR)�”}”(hŒDefault Edge IRQ flow handler”h]”hŒDefault Edge IRQ flow handler”…”�”}”(hjž h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj› h²hh³jah´Køubjƒ)�”}”(hŒPhandle_edge_irq provides a generic implementation for edge-triggered interrupts.”h]”hŒPhandle_edge_irq provides a generic implementation for edge-triggered interrupts.”…”�”}”(hj¬ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Kúhj› h²hubjƒ)�”}”(hŒ@The following control flow is implemented (simplified excerpt)::”h]”hŒ?The following control flow is implemented (simplified excerpt):”…”�”}”(hjº h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Kýhj› h²hubjå )�”}”(hX€if (desc->status & running) { desc->irq_data.chip->irq_mask_ack(); desc->status |= pending | masked; return; } desc->irq_data.chip->irq_ack(); desc->status |= running; do { if (desc->status & masked) desc->irq_data.chip->irq_unmask(); desc->status &= ~pending; handle_irq_event(desc->action); } while (desc->status & pending); desc->status &= ~running;”h]”hX€if (desc->status & running) { desc->irq_data.chip->irq_mask_ack(); desc->status |= pending | masked; return; } desc->irq_data.chip->irq_ack(); desc->status |= running; do { if (desc->status & masked) desc->irq_data.chip->irq_unmask(); desc->status &= ~pending; handle_irq_event(desc->action); } while (desc->status & pending); desc->status &= ~running;”…”�”}”hjÈ sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jä h³jah´Kÿhj› h²hubeh}”(h]”Œdefault-edge-irq-flow-handler”ah ]”h"]”Œdefault edge irq flow handler”ah$]”h&]”uh1jLhj h²hh³jah´KøubjM)�”}”(hhh]”(jR)�”}”(hŒDefault simple IRQ flow handler”h]”hŒDefault simple IRQ flow handler”…”�”}”(hjá h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjÞ h²hh³jah´Mubjƒ)�”}”(hŒJhandle_simple_irq provides a generic implementation for simple interrupts.”h]”hŒJhandle_simple_irq provides a generic implementation for simple interrupts.”…”�”}”(hjï h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´MhjÞ h²hubhŒnote”“”)�”}”(hŒBThe simple flow handler does not call any handler/chip primitives.”h]”jƒ)�”}”(hj h]”hŒBThe simple flow handler does not call any handler/chip primitives.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Mhjÿ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jý hjÞ h²hh³jah´Nubjƒ)�”}”(hŒ@The following control flow is implemented (simplified excerpt)::”h]”hŒ?The following control flow is implemented (simplified excerpt):”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´MhjÞ h²hubjå )�”}”(hŒhandle_irq_event(desc->action);”h]”hŒhandle_irq_event(desc->action);”…”�”}”hj$ sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jä h³jah´MhjÞ h²hubeh}”(h]”Œdefault-simple-irq-flow-handler”ah ]”h"]”Œdefault simple irq flow handler”ah$]”h&]”uh1jLhj h²hh³jah´MubjM)�”}”(hhh]”(jR)�”}”(hŒDefault per CPU flow handler”h]”hŒDefault per CPU flow handler”…”�”}”(hj= h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj: h²hh³jah´Mubjƒ)�”}”(hŒKhandle_percpu_irq provides a generic implementation for per CPU interrupts.”h]”hŒKhandle_percpu_irq provides a generic implementation for per CPU interrupts.”…”�”}”(hjK h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´M!hj: h²hubjƒ)�”}”(hŒkPer CPU interrupts are only available on SMP and the handler provides a simplified version without locking.”h]”hŒkPer CPU interrupts are only available on SMP and the handler provides a simplified version without locking.”…”�”}”(hjY h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´M$hj: h²hubjƒ)�”}”(hŒ@The following control flow is implemented (simplified excerpt)::”h]”hŒ?The following control flow is implemented (simplified excerpt):”…”�”}”(hjg h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´M'hj: h²hubjå )�”}”(hŒ«if (desc->irq_data.chip->irq_ack) desc->irq_data.chip->irq_ack(); handle_irq_event(desc->action); if (desc->irq_data.chip->irq_eoi) desc->irq_data.chip->irq_eoi();”h]”hŒ«if (desc->irq_data.chip->irq_ack) desc->irq_data.chip->irq_ack(); handle_irq_event(desc->action); if (desc->irq_data.chip->irq_eoi) desc->irq_data.chip->irq_eoi();”…”�”}”hju sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jä h³jah´M)hj: h²hubeh}”(h]”Œdefault-per-cpu-flow-handler”ah ]”h"]”Œdefault per cpu flow handler”ah$]”h&]”uh1jLhj h²hh³jah´MubjM)�”}”(hhh]”(jR)�”}”(hŒEOI Edge IRQ flow handler”h]”hŒEOI Edge IRQ flow handler”…”�”}”(hjŽ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj‹ h²hh³jah´M1ubjƒ)�”}”(hŒ�handle_edge_eoi_irq provides an abnomination of the edge handler which is solely used to tame a badly wreckaged irq controller on powerpc/cell.”h]”hŒ�handle_edge_eoi_irq provides an abnomination of the edge handler which is solely used to tame a badly wreckaged irq controller on powerpc/cell.”…”�”}”(hjœ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´M3hj‹ h²hubeh}”(h]”Œeoi-edge-irq-flow-handler”ah ]”h"]”Œeoi edge irq flow handler”ah$]”h&]”uh1jLhj h²hh³jah´M1ubjM)�”}”(hhh]”(jR)�”}”(hŒBad IRQ flow handler”h]”hŒBad IRQ flow handler”…”�”}”(hjµ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj² h²hh³jah´M8ubjƒ)�”}”(hŒThandle_bad_irq is used for spurious interrupts which have no real handler assigned..”h]”hŒThandle_bad_irq is used for spurious interrupts which have no real handler assigned..”…”�”}”(hjà h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´M:hj² h²hubeh}”(h]”Œbad-irq-flow-handler”ah ]”h"]”Œbad irq flow handler”ah$]”h&]”uh1jLhj h²hh³jah´M8ubeh}”(h]”Œ$default-flow-handler-implementations”ah ]”h"]”Œ$default flow handler implementations”ah$]”h&]”uh1jLhjÖ h²hh³jah´KÜubjM)�”}”(hhh]”(jR)�”}”(hŒQuirks and optimizations”h]”hŒQuirks and optimizations”…”�”}”(hjä h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjá h²hh³jah´M>ubjƒ)�”}”(hŒþThe generic functions are intended for 'clean' architectures and chips, which have no platform-specific IRQ handling quirks. If an architecture needs to implement quirks on the 'flow' level then it can do so by overriding the high-level irq-flow handler.”h]”hXThe generic functions are intended for ‘clean’ architectures and chips, which have no platform-specific IRQ handling quirks. If an architecture needs to implement quirks on the ‘flow’ level then it can do so by overriding the high-level irq-flow handler.”…”�”}”(hjò h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´M@hjá h²hubeh}”(h]”Œquirks-and-optimizations”ah ]”h"]”Œquirks and optimizations”ah$]”h&]”uh1jLhjÖ h²hh³jah´M>ubjM)�”}”(hhh]”(jR)�”}”(hŒDelayed interrupt disable”h]”hŒDelayed interrupt disable”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj h²hh³jah´MFubjƒ)�”}”(hXÕThis per interrupt selectable feature, which was introduced by Russell King in the ARM interrupt implementation, does not mask an interrupt at the hardware level when disable_irq() is called. The interrupt is kept enabled and is masked in the flow handler when an interrupt event happens. This prevents losing edge interrupts on hardware which does not store an edge interrupt event while the interrupt is disabled at the hardware level. When an interrupt arrives while the IRQ_DISABLED flag is set, then the interrupt is masked at the hardware level and the IRQ_PENDING bit is set. When the interrupt is re-enabled by enable_irq() the pending bit is checked and if it is set, the interrupt is resent either via hardware or by a software resend mechanism. (It's necessary to enable CONFIG_HARDIRQS_SW_RESEND when you want to use the delayed interrupt disable feature and your hardware is not capable of retriggering an interrupt.) The delayed interrupt disable is not configurable.”h]”hX×This per interrupt selectable feature, which was introduced by Russell King in the ARM interrupt implementation, does not mask an interrupt at the hardware level when disable_irq() is called. The interrupt is kept enabled and is masked in the flow handler when an interrupt event happens. This prevents losing edge interrupts on hardware which does not store an edge interrupt event while the interrupt is disabled at the hardware level. When an interrupt arrives while the IRQ_DISABLED flag is set, then the interrupt is masked at the hardware level and the IRQ_PENDING bit is set. When the interrupt is re-enabled by enable_irq() the pending bit is checked and if it is set, the interrupt is resent either via hardware or by a software resend mechanism. (It’s necessary to enable CONFIG_HARDIRQS_SW_RESEND when you want to use the delayed interrupt disable feature and your hardware is not capable of retriggering an interrupt.) The delayed interrupt disable is not configurable.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´MHhj h²hubeh}”(h]”Œdelayed-interrupt-disable”ah ]”h"]”Œdelayed interrupt disable”ah$]”h&]”uh1jLhjÖ h²hh³jah´MFubeh}”(h]”Œhigh-level-irq-flow-handlers”ah ]”h"]”Œhigh-level irq flow handlers”ah$]”h&]”uh1jLhjÌh²hh³jah´K›ubjM)�”}”(hhh]”(jR)�”}”(hŒ!Chip-level hardware encapsulation”h]”hŒ!Chip-level hardware encapsulation”…”�”}”(hj: h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj7 h²hh³jah´MYubjƒ)�”}”(hŒ§The chip-level hardware descriptor structure :c:type:`irq_chip` contains all the direct chip relevant functions, which can be utilized by the irq flow implementations.”h]”(hŒ-The chip-level hardware descriptor structure ”…”�”}”(hjH h²hh³Nh´Nubh)�”}”(hŒ:c:type:`irq_chip`”h]”j)�”}”(hjR h]”hŒirq_chip”…”�”}”(hjT h²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œc”Œc-type”eh"]”h$]”h&]”uh1jhjP ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œcore-api/genericirq”Œ refdomain”j_ Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰Œ reftarget”Œirq_chip”uh1hh³jah´M[hjH ubhŒh contains all the direct chip relevant functions, which can be utilized by the irq flow implementations.”…”�”}”(hjH h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´M[hj7 h²hubj=)�”}”(hhh]”(jB)�”}”(hŒ ``irq_ack`` ”h]”jƒ)�”}”(hŒ ``irq_ack``”h]”j)�”}”(hj† h]”hŒirq_ack”…”�”}”(hjˆ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj„ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´M_hj€ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj} h²hh³jah´NubjB)�”}”(hŒ9``irq_mask_ack`` - Optional, recommended for performance ”h]”jƒ)�”}”(hŒ8``irq_mask_ack`` - Optional, recommended for performance”h]”(j)�”}”(hŒ``irq_mask_ack``”h]”hŒ irq_mask_ack”…”�”}”(hj© h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¥ ubhŒ( - Optional, recommended for performance”…”�”}”(hj¥ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Mahj¡ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj} h²hh³jah´NubjB)�”}”(hŒ ``irq_mask`` ”h]”jƒ)�”}”(hŒ ``irq_mask``”h]”j)�”}”(hjÍ h]”hŒirq_mask”…”�”}”(hjÏ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjË ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´MchjÇ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj} h²hh³jah´NubjB)�”}”(hŒ``irq_unmask`` ”h]”jƒ)�”}”(hŒ``irq_unmask``”h]”j)�”}”(hjî h]”hŒ irq_unmask”…”�”}”(hjð h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjì ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Mehjè ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj} h²hh³jah´NubjB)�”}”(hŒ7``irq_eoi`` - Optional, required for EOI flow handlers ”h]”jƒ)�”}”(hŒ6``irq_eoi`` - Optional, required for EOI flow handlers”h]”(j)�”}”(hŒ ``irq_eoi``”h]”hŒirq_eoi”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubhŒ+ - Optional, required for EOI flow handlers”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Mghj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj} h²hh³jah´NubjB)�”}”(hŒ``irq_retrigger`` - Optional ”h]”jƒ)�”}”(hŒ``irq_retrigger`` - Optional”h]”(j)�”}”(hŒ``irq_retrigger``”h]”hŒ irq_retrigger”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj3ubhŒ - Optional”…”�”}”(hj3h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Mihj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj} h²hh³jah´NubjB)�”}”(hŒ``irq_set_type`` - Optional ”h]”jƒ)�”}”(hŒ``irq_set_type`` - Optional”h]”(j)�”}”(hŒ``irq_set_type``”h]”hŒ irq_set_type”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjYubhŒ - Optional”…”�”}”(hjYh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´MkhjUubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj} h²hh³jah´NubjB)�”}”(hŒ``irq_set_wake`` - Optional ”h]”jƒ)�”}”(hŒ``irq_set_wake`` - Optional”h]”(j)�”}”(hŒ``irq_set_wake``”h]”hŒ irq_set_wake”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒ - Optional”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Mmhj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj} h²hh³jah´Nubeh}”(h]”h ]”h"]”h$]”h&]”j‘j’uh1j<h³jah´M_hj7 h²hubjƒ)�”}”(hŒÌThese primitives are strictly intended to mean what they say: ack means ACK, masking means masking of an IRQ line, etc. It is up to the flow handler(s) to use these basic units of low-level functionality.”h]”hŒÌThese primitives are strictly intended to mean what they say: ack means ACK, masking means masking of an IRQ line, etc. It is up to the flow handler(s) to use these basic units of low-level functionality.”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Mohj7 h²hubeh}”(h]”Œ!chip-level-hardware-encapsulation”ah ]”h"]”Œ!chip-level hardware encapsulation”ah$]”h&]”uh1jLhjÌh²hh³jah´MYubeh}”(h]”Œabstraction-layers”ah ]”h"]”Œabstraction layers”ah$]”h&]”uh1jLhjNh²hh³jah´KbubjM)�”}”(hhh]”(jR)�”}”(hŒ__do_IRQ entry point”h]”hŒ__do_IRQ entry point”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjÅh²hh³jah´Mtubjƒ)�”}”(hŒwThe original implementation __do_IRQ() was an alternative entry point for all types of interrupts. It no longer exists.”h]”hŒwThe original implementation __do_IRQ() was an alternative entry point for all types of interrupts. It no longer exists.”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´MvhjÅh²hubjƒ)�”}”(hŒÿThis handler turned out to be not suitable for all interrupt hardware and was therefore reimplemented with split functionality for edge/level/simple/percpu interrupts. This is not only a functional optimization. It also shortens code paths for interrupts.”h]”hŒÿThis handler turned out to be not suitable for all interrupt hardware and was therefore reimplemented with split functionality for edge/level/simple/percpu interrupts. This is not only a functional optimization. It also shortens code paths for interrupts.”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´MyhjÅh²hubeh}”(h]”Œdo-irq-entry-point”ah ]”h"]”Œ__do_irq entry point”ah$]”h&]”uh1jLhjNh²hh³jah´MtubjM)�”}”(hhh]”(jR)�”}”(hŒLocking on SMP”h]”hŒLocking on SMP”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjúh²hh³jah´Mubjƒ)�”}”(hŒ¢The locking of chip registers is up to the architecture that defines the chip primitives. The per-irq structure is protected via desc->lock, by the generic layer.”h]”hŒ¢The locking of chip registers is up to the architecture that defines the chip primitives. The per-irq structure is protected via desc->lock, by the generic layer.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´M�hjúh²hubeh}”(h]”Œlocking-on-smp”ah ]”h"]”Œlocking on smp”ah$]”h&]”uh1jLhjNh²hh³jah´MubjM)�”}”(hhh]”(jR)�”}”(hŒGeneric interrupt chip”h]”hŒGeneric interrupt chip”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj!h²hh³jah´M†ubjƒ)�”}”(hXTo avoid copies of identical implementations of IRQ chips the core provides a configurable generic interrupt chip implementation. Developers should check carefully whether the generic chip fits their needs before implementing the same functionality slightly differently themselves.”h]”hXTo avoid copies of identical implementations of IRQ chips the core provides a configurable generic interrupt chip implementation. Developers should check carefully whether the generic chip fits their needs before implementing the same functionality slightly differently themselves.”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´Mˆhj!h²hubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œirq_gc_noop (C function)”Œ c.irq_gc_noop”hNt”auh1j@hj!h²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒ%void irq_gc_noop (struct irq_data *d)”h]”hŒdesc_signature_line”“”)�”}”(hŒ$void irq_gc_noop(struct irq_data *d)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1jbhj^h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´KubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1jthj^h²hh³jsh´KubhŒ desc_name”“”)�”}”(hŒ irq_gc_noop”h]”hŒ desc_sig_name”“”)�”}”(hŒ irq_gc_noop”h]”hŒ irq_gc_noop”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1j‹hj‡ubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1j…hj^h²hh³jsh´KubhŒdesc_parameterlist”“”)�”}”(hŒ(struct irq_data *d)”h]”hŒdesc_parameter”“”)�”}”(hŒstruct irq_data *d”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1j°hj¬ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¬ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÏubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”Œ identifier”Œ reftarget”jÔŒmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”jíŒ ASTIdentifier”“”)�”}”jèj�sbŒ c.irq_gc_noop”†”asbuh1hhj¬ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¬ubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1jhj¬ubjŒ)�”}”(hŒd”h]”hŒd”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¬ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¦ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj^h²hh³jsh´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1j\Œsphinx_line_type”Œ declarator”hjXh²hh³jsh´Kubah}”(h]”jOah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jVh³jsh´KhjSh²hubhŒ desc_content”“”)�”}”(hhh]”jƒ)�”}”(hŒ NOOP function”h]”hŒ NOOP function”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´KhjJh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjSh²hh³jsh´Kubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”Œdomain”j_ Œobjtype”jeŒdesctype”jeŒnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1jQh²hhj!h³Nh´NubhŒ container”“”)�”}”(hŒ1**Parameters** ``struct irq_data *d`` irq_data”h]”(jƒ)�”}”(hŒ**Parameters**”h]”hŒstrong”“”)�”}”(hjwh]”hŒ Parameters”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjuubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´KhjqubhŒdefinition_list”“”)�”}”(hhh]”hŒdefinition_list_item”“”)�”}”(hŒ``struct irq_data *d`` irq_data”h]”(hŒterm”“”)�”}”(hŒ``struct irq_data *d``”h]”j)�”}”(hjžh]”hŒstruct irq_data *d”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjœubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Khj–ubhŒ definition”“”)�”}”(hhh]”jƒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Khj¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj–ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j³h´Khj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjqubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj!h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ$irq_gc_mask_disable_reg (C function)”Œc.irq_gc_mask_disable_reg”hNt”auh1j@hj!h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ1void irq_gc_mask_disable_reg (struct irq_data *d)”h]”j])�”}”(hŒ0void irq_gc_mask_disable_reg(struct irq_data *d)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjöh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Kubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjöh²hh³jh´Kubj†)�”}”(hŒirq_gc_mask_disable_reg”h]”jŒ)�”}”(hŒirq_gc_mask_disable_reg”h]”hŒirq_gc_mask_disable_reg”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjöh²hh³jh´Kubj¥)�”}”(hŒ(struct irq_data *d)”h]”j«)�”}”(hŒstruct irq_data *d”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj3ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj3ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjRubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jWŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjsbŒc.irq_gc_mask_disable_reg”†”asbuh1hhj3ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj3ubj )�”}”(hj h]”hŒ*”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj3ubjŒ)�”}”(hjh]”hŒd”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj3ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj/ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjöh²hh³jh´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjòh²hh³jh´Kubah}”(h]”jíah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jh´Khjïh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒMask chip via disable register”h]”hŒMask chip via disable register”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Khj¶h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjïh²hh³jh´Kubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjÑjkjÑjl‰jm‰jn‰uh1jQh²hhj!h³Nh´Nubjp)�”}”(hŒ‘**Parameters** ``struct irq_data *d`` irq_data **Description** Chip has separate enable/disable registers instead of a single mask register.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÛh]”hŒ Parameters”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K#hjÕubj�)�”}”(hhh]”j•)�”}”(hŒ ``struct irq_data *d`` irq_data ”h]”(j›)�”}”(hŒ``struct irq_data *d``”h]”j)�”}”(hjúh]”hŒstruct irq_data *d”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjøubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K hjôubjµ)�”}”(hhh]”jƒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jh´K hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjôubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jh´K hjñubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÕubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj5h]”hŒ Description”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K"hjÕubjƒ)�”}”(hŒMChip has separate enable/disable registers instead of a single mask register.”h]”hŒMChip has separate enable/disable registers instead of a single mask register.”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K!hjÕubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj!h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ irq_gc_mask_set_bit (C function)”Œc.irq_gc_mask_set_bit”hNt”auh1j@hj!h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ-void irq_gc_mask_set_bit (struct irq_data *d)”h]”j])�”}”(hŒ,void irq_gc_mask_set_bit(struct irq_data *d)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjvh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”• h´K2ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjvh²hh³jˆh´K2ubj†)�”}”(hŒirq_gc_mask_set_bit”h]”jŒ)�”}”(hŒirq_gc_mask_set_bit”h]”hŒirq_gc_mask_set_bit”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj—ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjvh²hh³jˆh´K2ubj¥)�”}”(hŒ(struct irq_data *d)”h]”j«)�”}”(hŒstruct irq_data *d”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj³ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj³ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÒubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j׌modname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj�sbŒc.irq_gc_mask_set_bit”†”asbuh1hhj³ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj³ubj )�”}”(hj h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj³ubjŒ)�”}”(hjh]”hŒd”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj³ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¯ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjvh²hh³jˆh´K2ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjrh²hh³jˆh´K2ubah}”(h]”jmah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jˆh´K2hjoh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ*Mask chip via setting bit in mask register”h]”hŒ*Mask chip via setting bit in mask register”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K2hj6h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjoh²hh³jˆh´K2ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjQjkjQjl‰jm‰jn‰uh1jQh²hhj!h³Nh´Nubjp)�”}”(hŒ¡**Parameters** ``struct irq_data *d`` irq_data **Description** Chip has a single mask register. Values of this register are cached and protected by gc->lock”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj[h]”hŒ Parameters”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjYubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K6hjUubj�)�”}”(hhh]”j•)�”}”(hŒ ``struct irq_data *d`` irq_data ”h]”(j›)�”}”(hŒ``struct irq_data *d``”h]”j)�”}”(hjzh]”hŒstruct irq_data *d”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjxubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K3hjtubjµ)�”}”(hhh]”jƒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j�h´K3hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjtubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j�h´K3hjqubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjUubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjµh]”hŒ Description”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K5hjUubjƒ)�”}”(hŒ]Chip has a single mask register. Values of this register are cached and protected by gc->lock”h]”hŒ]Chip has a single mask register. Values of this register are cached and protected by gc->lock”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K4hjUubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj!h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ irq_gc_mask_clr_bit (C function)”Œc.irq_gc_mask_clr_bit”hNt”auh1j@hj!h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ-void irq_gc_mask_clr_bit (struct irq_data *d)”h]”j])�”}”(hŒ,void irq_gc_mask_clr_bit(struct irq_data *d)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjöh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´KEubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjöh²hh³jh´KEubj†)�”}”(hŒirq_gc_mask_clr_bit”h]”jŒ)�”}”(hŒirq_gc_mask_clr_bit”h]”hŒirq_gc_mask_clr_bit”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjöh²hh³jh´KEubj¥)�”}”(hŒ(struct irq_data *d)”h]”j«)�”}”(hŒstruct irq_data *d”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj3ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj3ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjRubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jWŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjsbŒc.irq_gc_mask_clr_bit”†”asbuh1hhj3ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj3ubj )�”}”(hj h]”hŒ*”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj3ubjŒ)�”}”(hjh]”hŒd”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj3ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj/ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjöh²hh³jh´KEubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjòh²hh³jh´KEubah}”(h]”jíah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jh´KEhjïh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ+Mask chip via clearing bit in mask register”h]”hŒ+Mask chip via clearing bit in mask register”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´KEhj¶h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjïh²hh³jh´KEubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjÑjkjÑjl‰jm‰jn‰uh1jQh²hhj!h³Nh´Nubjp)�”}”(hŒ¡**Parameters** ``struct irq_data *d`` irq_data **Description** Chip has a single mask register. Values of this register are cached and protected by gc->lock”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÛh]”hŒ Parameters”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´KIhjÕubj�)�”}”(hhh]”j•)�”}”(hŒ ``struct irq_data *d`` irq_data ”h]”(j›)�”}”(hŒ``struct irq_data *d``”h]”j)�”}”(hjúh]”hŒstruct irq_data *d”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjøubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´KFhjôubjµ)�”}”(hhh]”jƒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jh´KFhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjôubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jh´KFhjñubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÕubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj5h]”hŒ Description”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´KHhjÕubjƒ)�”}”(hŒ]Chip has a single mask register. Values of this register are cached and protected by gc->lock”h]”hŒ]Chip has a single mask register. Values of this register are cached and protected by gc->lock”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´KGhjÕubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj!h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ%irq_gc_unmask_enable_reg (C function)”Œc.irq_gc_unmask_enable_reg”hNt”auh1j@hj!h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ2void irq_gc_unmask_enable_reg (struct irq_data *d)”h]”j])�”}”(hŒ1void irq_gc_unmask_enable_reg(struct irq_data *d)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjvh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´KXubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjvh²hh³jˆh´KXubj†)�”}”(hŒirq_gc_unmask_enable_reg”h]”jŒ)�”}”(hŒirq_gc_unmask_enable_reg”h]”hŒirq_gc_unmask_enable_reg”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj—ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjvh²hh³jˆh´KXubj¥)�”}”(hŒ(struct irq_data *d)”h]”j«)�”}”(hŒstruct irq_data *d”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj³ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj³ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÒubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j׌modname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj�sbŒc.irq_gc_unmask_enable_reg”†”asbuh1hhj³ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj³ubj )�”}”(hj h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj³ubjŒ)�”}”(hjh]”hŒd”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj³ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¯ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjvh²hh³jˆh´KXubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjrh²hh³jˆh´KXubah}”(h]”jmah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jˆh´KXhjoh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒUnmask chip via enable register”h]”hŒUnmask chip via enable register”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´KXhj6h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjoh²hh³jˆh´KXubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjQjkjQjl‰jm‰jn‰uh1jQh²hhj!h³Nh´Nubjp)�”}”(hŒ‘**Parameters** ``struct irq_data *d`` irq_data **Description** Chip has separate enable/disable registers instead of a single mask register.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj[h]”hŒ Parameters”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjYubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K\hjUubj�)�”}”(hhh]”j•)�”}”(hŒ ``struct irq_data *d`` irq_data ”h]”(j›)�”}”(hŒ``struct irq_data *d``”h]”j)�”}”(hjzh]”hŒstruct irq_data *d”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjxubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´KYhjtubjµ)�”}”(hhh]”jƒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j�h´KYhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjtubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j�h´KYhjqubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjUubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjµh]”hŒ Description”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K[hjUubjƒ)�”}”(hŒMChip has separate enable/disable registers instead of a single mask register.”h]”hŒMChip has separate enable/disable registers instead of a single mask register.”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´KZhjUubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj!h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_gc_ack_set_bit (C function)”Œc.irq_gc_ack_set_bit”hNt”auh1j@hj!h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ,void irq_gc_ack_set_bit (struct irq_data *d)”h]”j])�”}”(hŒ+void irq_gc_ack_set_bit(struct irq_data *d)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjöh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Kkubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjöh²hh³jh´Kkubj†)�”}”(hŒirq_gc_ack_set_bit”h]”jŒ)�”}”(hŒirq_gc_ack_set_bit”h]”hŒirq_gc_ack_set_bit”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjöh²hh³jh´Kkubj¥)�”}”(hŒ(struct irq_data *d)”h]”j«)�”}”(hŒstruct irq_data *d”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj3ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj3ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjRubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jWŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjsbŒc.irq_gc_ack_set_bit”†”asbuh1hhj3ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj3ubj )�”}”(hj h]”hŒ*”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj3ubjŒ)�”}”(hjh]”hŒd”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj3ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj/ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjöh²hh³jh´Kkubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjòh²hh³jh´Kkubah}”(h]”jíah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jh´Kkhjïh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ%Ack pending interrupt via setting bit”h]”hŒ%Ack pending interrupt via setting bit”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Kkhj¶h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjïh²hh³jh´Kkubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjÑjkjÑjl‰jm‰jn‰uh1jQh²hhj!h³Nh´Nubjp)�”}”(hŒ1**Parameters** ``struct irq_data *d`` irq_data”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÛh]”hŒ Parameters”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´KohjÕubj�)�”}”(hhh]”j•)�”}”(hŒ``struct irq_data *d`` irq_data”h]”(j›)�”}”(hŒ``struct irq_data *d``”h]”j)�”}”(hjúh]”hŒstruct irq_data *d”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjøubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Kqhjôubjµ)�”}”(hhh]”jƒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Klhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjôubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jh´Kqhjñubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÕubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj!h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ,irq_gc_mask_disable_and_ack_set (C function)”Œ!c.irq_gc_mask_disable_and_ack_set”hNt”auh1j@hj!h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ9void irq_gc_mask_disable_and_ack_set (struct irq_data *d)”h]”j])�”}”(hŒ8void irq_gc_mask_disable_and_ack_set(struct irq_data *d)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjPh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Kˆubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjPh²hh³jbh´Kˆubj†)�”}”(hŒirq_gc_mask_disable_and_ack_set”h]”jŒ)�”}”(hŒirq_gc_mask_disable_and_ack_set”h]”hŒirq_gc_mask_disable_and_ack_set”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjqubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjPh²hh³jbh´Kˆubj¥)�”}”(hŒ(struct irq_data *d)”h]”j«)�”}”(hŒstruct irq_data *d”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj�ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj�ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¬ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j±Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjwsbŒ!c.irq_gc_mask_disable_and_ack_set”†”asbuh1hhj�ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj�ubj )�”}”(hj h]”hŒ*”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj�ubjŒ)�”}”(hjh]”hŒd”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj‰ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjPh²hh³jbh´Kˆubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjLh²hh³jbh´Kˆubah}”(h]”jGah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jbh´KˆhjIh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒMask and ack pending interrupt”h]”hŒMask and ack pending interrupt”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Kˆhjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjIh²hh³jbh´Kˆubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj+jkj+jl‰jm‰jn‰uh1jQh²hhj!h³Nh´Nubjp)�”}”(hXœ**Parameters** ``struct irq_data *d`` irq_data **Description** This generic implementation of the irq_mask_ack method is for chips with separate enable/disable registers instead of a single mask register and where a pending interrupt is acknowledged by setting a bit. **Note** This is the only permutation currently used. Similar generic functions should be added here if other permutations are required.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj5h]”hŒ Parameters”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´KŒhj/ubj�)�”}”(hhh]”j•)�”}”(hŒ ``struct irq_data *d`` irq_data ”h]”(j›)�”}”(hŒ``struct irq_data *d``”h]”j)�”}”(hjTh]”hŒstruct irq_data *d”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjRubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K‰hjNubjµ)�”}”(hhh]”jƒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jih´K‰hjjubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjNubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jih´K‰hjKubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj/ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj�h]”hŒ Description”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K‹hj/ubjƒ)�”}”(hŒÌThis generic implementation of the irq_mask_ack method is for chips with separate enable/disable registers instead of a single mask register and where a pending interrupt is acknowledged by setting a bit.”h]”hŒÌThis generic implementation of the irq_mask_ack method is for chips with separate enable/disable registers instead of a single mask register and where a pending interrupt is acknowledged by setting a bit.”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´KŠhj/ubjƒ)�”}”(hŒ**Note**”h]”jz)�”}”(hj¶h]”hŒNote”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K�hj/ubjƒ)�”}”(hŒ€This is the only permutation currently used. Similar generic functions should be added here if other permutations are required.”h]”hŒ€This is the only permutation currently used. Similar generic functions should be added here if other permutations are required.”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K�hj/ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj!h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_gc_set_wake (C function)”Œc.irq_gc_set_wake”hNt”auh1j@hj!h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ9int irq_gc_set_wake (struct irq_data *d, unsigned int on)”h]”j])�”}”(hŒ8int irq_gc_set_wake(struct irq_data *d, unsigned int on)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj÷h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K¯ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj÷h²hh³j h´K¯ubj†)�”}”(hŒirq_gc_set_wake”h]”jŒ)�”}”(hŒirq_gc_set_wake”h]”hŒirq_gc_set_wake”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj÷h²hh³j h´K¯ubj¥)�”}”(hŒ%(struct irq_data *d, unsigned int on)”h]”(j«)�”}”(hŒstruct irq_data *d”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj4ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj4ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjSubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jXŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjsbŒc.irq_gc_set_wake”†”asbuh1hhj4ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj4ubj )�”}”(hj h]”hŒ*”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj4ubjŒ)�”}”(hjh]”hŒd”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj0ubj«)�”}”(hŒunsigned int on”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj¥ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¥ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj¥ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¥ubjŒ)�”}”(hŒon”h]”hŒon”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¥ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj0ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj÷h²hh³j h´K¯ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjóh²hh³j h´K¯ubah}”(h]”jîah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j h´K¯hjðh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ!Set/clr wake bit for an interrupt”h]”hŒ!Set/clr wake bit for an interrupt”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K¯hjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjðh²hh³j h´K¯ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj#jkj#jl‰jm‰jn‰uh1jQh²hhj!h³Nh´Nubjp)�”}”(hX(**Parameters** ``struct irq_data *d`` irq_data ``unsigned int on`` Indicates whether the wake bit should be set or cleared **Description** For chips where the wake from suspend functionality is not configured in a separate register and the wakeup active state is just stored in a bitmask.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj-h]”hŒ Parameters”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K³hj'ubj�)�”}”(hhh]”(j•)�”}”(hŒ ``struct irq_data *d`` irq_data ”h]”(j›)�”}”(hŒ``struct irq_data *d``”h]”j)�”}”(hjLh]”hŒstruct irq_data *d”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjJubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K°hjFubjµ)�”}”(hhh]”jƒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´K°hjbubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjFubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jah´K°hjCubj•)�”}”(hŒL``unsigned int on`` Indicates whether the wake bit should be set or cleared ”h]”(j›)�”}”(hŒ``unsigned int on``”h]”j)�”}”(hj…h]”hŒunsigned int on”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K±hjubjµ)�”}”(hhh]”jƒ)�”}”(hŒ7Indicates whether the wake bit should be set or cleared”h]”hŒ7Indicates whether the wake bit should be set or cleared”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jšh´K±hj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jšh´K±hjCubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj'ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjÀh]”hŒ Description”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K³hj'ubjƒ)�”}”(hŒ•For chips where the wake from suspend functionality is not configured in a separate register and the wakeup active state is just stored in a bitmask.”h]”hŒ•For chips where the wake from suspend functionality is not configured in a separate register and the wakeup active state is just stored in a bitmask.”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´K²hj'ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj!h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ#irq_alloc_generic_chip (C function)”Œc.irq_alloc_generic_chip”hNt”auh1j@hj!h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒšstruct irq_chip_generic * irq_alloc_generic_chip (const char *name, int num_ct, unsigned int irq_base, void __iomem *reg_base, irq_flow_handler_t handler)”h]”j])�”}”(hŒ˜struct irq_chip_generic *irq_alloc_generic_chip(const char *name, int num_ct, unsigned int irq_base, void __iomem *reg_base, irq_flow_handler_t handler)”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Kãubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjh²hh³jh´Kãubh)�”}”(hhh]”jŒ)�”}”(hŒirq_chip_generic”h]”hŒirq_chip_generic”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj!ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j&Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèŒirq_alloc_generic_chip”sbŒc.irq_alloc_generic_chip”†”asbuh1hhjh²hh³jh´Kãubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjh²hh³jh´Kãubj )�”}”(hj h]”hŒ*”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjh²hh³jh´Kãubj†)�”}”(hŒirq_alloc_generic_chip”h]”jŒ)�”}”(hjBh]”hŒirq_alloc_generic_chip”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj`ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjh²hh³jh´Kãubj¥)�”}”(hŒi(const char *name, int num_ct, unsigned int irq_base, void __iomem *reg_base, irq_flow_handler_t handler)”h]”(j«)�”}”(hŒconst char *name”h]”(j±)�”}”(hŒconst”h]”hŒconst”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj{ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj{ubjc)�”}”(hŒchar”h]”hŒchar”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj{ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj{ubj )�”}”(hj h]”hŒ*”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj{ubjŒ)�”}”(hŒname”h]”hŒname”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj{ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjwubj«)�”}”(hŒ int num_ct”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÙubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÙubjŒ)�”}”(hŒnum_ct”h]”hŒnum_ct”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÙubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjwubj«)�”}”(hŒunsigned int irq_base”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjubjŒ)�”}”(hŒirq_base”h]”hŒirq_base”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjwubj«)�”}”(hŒvoid __iomem *reg_base”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj_ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj_ubhŒ__iomem”…”�”}”(hj_h²hh³Nh´Nubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj_ubj )�”}”(hj h]”hŒ*”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj_ubjŒ)�”}”(hŒreg_base”h]”hŒreg_base”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj_ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjwubj«)�”}”(hŒirq_flow_handler_t handler”h]”(h)�”}”(hhh]”jŒ)�”}”(hŒirq_flow_handler_t”h]”hŒirq_flow_handler_t”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj·ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j¼Œmodname”NŒ classname”Njìjï)�”}”jò]”j@Œc.irq_alloc_generic_chip”†”asbuh1hhj³ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj³ubjŒ)�”}”(hŒhandler”h]”hŒhandler”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj³ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjwubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjh²hh³jh´Kãubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjýh²hh³jh´Kãubah}”(h]”jøah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jh´Kãhjúh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ)Allocate a generic chip and initialize it”h]”hŒ)Allocate a generic chip and initialize it”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Kãhj h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjúh²hh³jh´Kãubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj(jkj(jl‰jm‰jn‰uh1jQh²hhj!h³Nh´Nubjp)�”}”(hXÞ**Parameters** ``const char *name`` Name of the irq chip ``int num_ct`` Number of irq_chip_type instances associated with this ``unsigned int irq_base`` Interrupt base nr for this chip ``void __iomem *reg_base`` Register base address (virtual) ``irq_flow_handler_t handler`` Default flow handler associated with this chip **Description** Returns an initialized irq_chip_generic structure. The chip defaults to the primary (index 0) irq_chip_type and **handler**”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj2h]”hŒ Parameters”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Kçhj,ubj�)�”}”(hhh]”(j•)�”}”(hŒ*``const char *name`` Name of the irq chip ”h]”(j›)�”}”(hŒ``const char *name``”h]”j)�”}”(hjQh]”hŒconst char *name”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjOubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´KähjKubjµ)�”}”(hhh]”jƒ)�”}”(hŒName of the irq chip”h]”hŒName of the irq chip”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jfh´Kähjgubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjKubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jfh´KähjHubj•)�”}”(hŒF``int num_ct`` Number of irq_chip_type instances associated with this ”h]”(j›)�”}”(hŒ``int num_ct``”h]”j)�”}”(hjŠh]”hŒ int num_ct”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Kåhj„ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ6Number of irq_chip_type instances associated with this”h]”hŒ6Number of irq_chip_type instances associated with this”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jŸh´Kåhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj„ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jŸh´KåhjHubj•)�”}”(hŒ:``unsigned int irq_base`` Interrupt base nr for this chip ”h]”(j›)�”}”(hŒ``unsigned int irq_base``”h]”j)�”}”(hjÃh]”hŒunsigned int irq_base”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Kæhj½ubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt base nr for this chip”h]”hŒInterrupt base nr for this chip”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jØh´KæhjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj½ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jØh´KæhjHubj•)�”}”(hŒ;``void __iomem *reg_base`` Register base address (virtual) ”h]”(j›)�”}”(hŒ``void __iomem *reg_base``”h]”j)�”}”(hjüh]”hŒvoid __iomem *reg_base”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Kçhjöubjµ)�”}”(hhh]”jƒ)�”}”(hŒRegister base address (virtual)”h]”hŒRegister base address (virtual)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jh´Kçhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjöubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jh´KçhjHubj•)�”}”(hŒN``irq_flow_handler_t handler`` Default flow handler associated with this chip ”h]”(j›)�”}”(hŒ``irq_flow_handler_t handler``”h]”j)�”}”(hj5h]”hŒirq_flow_handler_t handler”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Kèhj/ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ.Default flow handler associated with this chip”h]”hŒ.Default flow handler associated with this chip”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jJh´KèhjKubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jJh´KèhjHubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj,ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjph]”hŒ Description”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjnubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Kêhj,ubjƒ)�”}”(hŒ{Returns an initialized irq_chip_generic structure. The chip defaults to the primary (index 0) irq_chip_type and **handler**”h]”(hŒpReturns an initialized irq_chip_generic structure. The chip defaults to the primary (index 0) irq_chip_type and ”…”�”}”(hj†h²hh³Nh´Nubjz)�”}”(hŒ **handler**”h]”hŒhandler”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj†ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Kéhj,ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj!h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ+irq_domain_alloc_generic_chips (C function)”Œ c.irq_domain_alloc_generic_chips”hNt”auh1j@hj!h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒjint irq_domain_alloc_generic_chips (struct irq_domain *d, const struct irq_domain_chip_generic_info *info)”h]”j])�”}”(hŒiint irq_domain_alloc_generic_chips(struct irq_domain *d, const struct irq_domain_chip_generic_info *info)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj¿h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Mubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¿h²hh³jÑh´Mubj†)�”}”(hŒirq_domain_alloc_generic_chips”h]”jŒ)�”}”(hŒirq_domain_alloc_generic_chips”h]”hŒirq_domain_alloc_generic_chips”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjàubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj¿h²hh³jÑh´Mubj¥)�”}”(hŒG(struct irq_domain *d, const struct irq_domain_chip_generic_info *info)”h]”(j«)�”}”(hŒstruct irq_domain *d”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjüubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjüubh)�”}”(hhh]”jŒ)�”}”(hŒ irq_domain”h]”hŒ irq_domain”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjæsbŒ c.irq_domain_alloc_generic_chips”†”asbuh1hhjüubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj> h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjüubj )�”}”(hj h]”hŒ*”…”�”}”(hjL h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjüubjŒ)�”}”(hjh]”hŒd”…”�”}”(hjY h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjüubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjøubj«)�”}”(hŒ/const struct irq_domain_chip_generic_info *info”h]”(j±)�”}”(hj�h]”hŒconst”…”�”}”(hjq h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjm ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~ h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjm ubj±)�”}”(hj´h]”hŒstruct”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjm ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™ h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjm ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_domain_chip_generic_info”h]”hŒirq_domain_chip_generic_info”…”�”}”(hjª h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj§ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j¬ Œmodname”NŒ classname”Njìjï)�”}”jò]”j: Œ c.irq_domain_alloc_generic_chips”†”asbuh1hhjm ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÈ h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjm ubj )�”}”(hj h]”hŒ*”…”�”}”(hjÖ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjm ubjŒ)�”}”(hŒinfo”h]”hŒinfo”…”�”}”(hjã h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjm ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjøubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj¿h²hh³jÑh´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj»h²hh³jÑh´Mubah}”(h]”j¶ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jÑh´Mhj¸h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ(Allocate generic chips for an irq domain”h]”hŒ(Allocate generic chips for an irq domain”…”�”}”(hj !h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Mhj !h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj¸h²hh³jÑh´Mubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj%!jkj%!jl‰jm‰jn‰uh1jQh²hhj!h³Nh´Nubjp)�”}”(hŒÛ**Parameters** ``struct irq_domain *d`` irq domain for which to allocate chips ``const struct irq_domain_chip_generic_info *info`` Generic chip information **Return** 0 on success, negative error code on failure”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj/!h]”hŒ Parameters”…”�”}”(hj1!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj-!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Mhj)!ubj�)�”}”(hhh]”(j•)�”}”(hŒ@``struct irq_domain *d`` irq domain for which to allocate chips ”h]”(j›)�”}”(hŒ``struct irq_domain *d``”h]”j)�”}”(hjN!h]”hŒstruct irq_domain *d”…”�”}”(hjP!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjL!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´MhjH!ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ&irq domain for which to allocate chips”h]”hŒ&irq domain for which to allocate chips”…”�”}”(hjg!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jc!h´Mhjd!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjH!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jc!h´MhjE!ubj•)�”}”(hŒM``const struct irq_domain_chip_generic_info *info`` Generic chip information ”h]”(j›)�”}”(hŒ3``const struct irq_domain_chip_generic_info *info``”h]”j)�”}”(hj‡!h]”hŒ/const struct irq_domain_chip_generic_info *info”…”�”}”(hj‰!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj…!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Mhj�!ubjµ)�”}”(hhh]”jƒ)�”}”(hŒGeneric chip information”h]”hŒGeneric chip information”…”�”}”(hj !h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jœ!h´Mhj�!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj�!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jœ!h´MhjE!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj)!ubjƒ)�”}”(hŒ **Return**”h]”jz)�”}”(hjÂ!h]”hŒReturn”…”�”}”(hjÄ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÀ!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Mhj)!ubjƒ)�”}”(hŒ,0 on success, negative error code on failure”h]”hŒ,0 on success, negative error code on failure”…”�”}”(hjØ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Mhj)!ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj!h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ,irq_domain_remove_generic_chips (C function)”Œ!c.irq_domain_remove_generic_chips”hNt”auh1j@hj!h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ;void irq_domain_remove_generic_chips (struct irq_domain *d)”h]”j])�”}”(hŒ:void irq_domain_remove_generic_chips(struct irq_domain *d)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj"h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Maubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj"h²hh³j"h´Maubj†)�”}”(hŒirq_domain_remove_generic_chips”h]”jŒ)�”}”(hŒirq_domain_remove_generic_chips”h]”hŒirq_domain_remove_generic_chips”…”�”}”(hj("h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj$"ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj"h²hh³j"h´Maubj¥)�”}”(hŒ(struct irq_domain *d)”h]”j«)�”}”(hŒstruct irq_domain *d”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjD"h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj@"ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQ"h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj@"ubh)�”}”(hhh]”jŒ)�”}”(hŒ irq_domain”h]”hŒ irq_domain”…”�”}”(hjb"h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj_"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jd"Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj*"sbŒ!c.irq_domain_remove_generic_chips”†”asbuh1hhj@"ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚"h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj@"ubj )�”}”(hj h]”hŒ*”…”�”}”(hj�"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj@"ubjŒ)�”}”(hjh]”hŒd”…”�”}”(hj�"h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj@"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj<"ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj"h²hh³j"h´Maubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjÿ!h²hh³j"h´Maubah}”(h]”jú!ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j"h´Mahjü!h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ'Remove generic chips from an irq domain”h]”hŒ'Remove generic chips from an irq domain”…”�”}”(hjÆ"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´MahjÃ"h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjü!h²hh³j"h´Maubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjÞ"jkjÞ"jl‰jm‰jn‰uh1jQh²hhj!h³Nh´Nubjp)�”}”(hŒ_**Parameters** ``struct irq_domain *d`` irq domain for which generic chips are to be removed”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjè"h]”hŒ Parameters”…”�”}”(hjê"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjæ"ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Mehjâ"ubj�)�”}”(hhh]”j•)�”}”(hŒM``struct irq_domain *d`` irq domain for which generic chips are to be removed”h]”(j›)�”}”(hŒ``struct irq_domain *d``”h]”j)�”}”(hj#h]”hŒstruct irq_domain *d”…”�”}”(hj #h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Mghj#ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ4irq domain for which generic chips are to be removed”h]”hŒ4irq domain for which generic chips are to be removed”…”�”}”(hj #h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Mbhj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j#h´Mghjþ"ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjâ"ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj!h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ-__irq_alloc_domain_generic_chips (C function)”Œ"c.__irq_alloc_domain_generic_chips”hNt”auh1j@hj!h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒÇint __irq_alloc_domain_generic_chips (struct irq_domain *d, int irqs_per_chip, int num_ct, const char *name, irq_flow_handler_t handler, unsigned int clr, unsigned int set, enum irq_gc_flags gcflags)”h]”j])�”}”(hŒÆint __irq_alloc_domain_generic_chips(struct irq_domain *d, int irqs_per_chip, int num_ct, const char *name, irq_flow_handler_t handler, unsigned int clr, unsigned int set, enum irq_gc_flags gcflags)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hja#h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj]#h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Mwubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjp#h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj]#h²hh³jo#h´Mwubj†)�”}”(hŒ __irq_alloc_domain_generic_chips”h]”jŒ)�”}”(hŒ __irq_alloc_domain_generic_chips”h]”hŒ __irq_alloc_domain_generic_chips”…”�”}”(hj‚#h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj~#ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj]#h²hh³jo#h´Mwubj¥)�”}”(hŒ¢(struct irq_domain *d, int irqs_per_chip, int num_ct, const char *name, irq_flow_handler_t handler, unsigned int clr, unsigned int set, enum irq_gc_flags gcflags)”h]”(j«)�”}”(hŒstruct irq_domain *d”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjž#h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjš#ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj«#h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjš#ubh)�”}”(hhh]”jŒ)�”}”(hŒ irq_domain”h]”hŒ irq_domain”…”�”}”(hj¼#h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¹#ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j¾#Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj„#sbŒ"c.__irq_alloc_domain_generic_chips”†”asbuh1hhjš#ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜ#h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjš#ubj )�”}”(hj h]”hŒ*”…”�”}”(hjê#h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjš#ubjŒ)�”}”(hjh]”hŒd”…”�”}”(hj÷#h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjš#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj–#ubj«)�”}”(hŒint irqs_per_chip”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj $ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj $ubjŒ)�”}”(hŒ irqs_per_chip”h]”hŒ irqs_per_chip”…”�”}”(hj+$h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj $ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj–#ubj«)�”}”(hŒ int num_ct”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjD$h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj@$ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjR$h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj@$ubjŒ)�”}”(hŒnum_ct”h]”hŒnum_ct”…”�”}”(hj`$h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj@$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj–#ubj«)�”}”(hŒconst char *name”h]”(j±)�”}”(hj�h]”hŒconst”…”�”}”(hjy$h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hju$ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj†$h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthju$ubjc)�”}”(hŒchar”h]”hŒchar”…”�”}”(hj”$h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhju$ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¢$h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthju$ubj )�”}”(hj h]”hŒ*”…”�”}”(hj°$h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhju$ubjŒ)�”}”(hŒname”h]”hŒname”…”�”}”(hj½$h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hju$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj–#ubj«)�”}”(hŒirq_flow_handler_t handler”h]”(h)�”}”(hhh]”jŒ)�”}”(hŒirq_flow_handler_t”h]”hŒirq_flow_handler_t”…”�”}”(hjÙ$h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÖ$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jÛ$Œmodname”NŒ classname”Njìjï)�”}”jò]”jØ#Œ"c.__irq_alloc_domain_generic_chips”†”asbuh1hhjÒ$ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj÷$h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÒ$ubjŒ)�”}”(hŒhandler”h]”hŒhandler”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÒ$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj–#ubj«)�”}”(hŒunsigned int clr”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj%ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,%h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj%ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj:%h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj%ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjH%h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj%ubjŒ)�”}”(hŒclr”h]”hŒclr”…”�”}”(hjV%h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj–#ubj«)�”}”(hŒunsigned int set”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjo%h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjk%ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}%h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjk%ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj‹%h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjk%ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™%h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjk%ubjŒ)�”}”(hŒset”h]”hŒset”…”�”}”(hj§%h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjk%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj–#ubj«)�”}”(hŒenum irq_gc_flags gcflags”h]”(j±)�”}”(hŒenum”h]”hŒenum”…”�”}”(hjÀ%h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj¼%ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎ%h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¼%ubh)�”}”(hhh]”jŒ)�”}”(hŒ irq_gc_flags”h]”hŒ irq_gc_flags”…”�”}”(hjß%h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÜ%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”já%Œmodname”NŒ classname”Njìjï)�”}”jò]”jØ#Œ"c.__irq_alloc_domain_generic_chips”†”asbuh1hhj¼%ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjý%h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¼%ubjŒ)�”}”(hŒgcflags”h]”hŒgcflags”…”�”}”(hj &h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¼%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj–#ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj]#h²hh³jo#h´Mwubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjY#h²hh³jo#h´Mwubah}”(h]”jT#ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jo#h´MwhjV#h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ(Allocate generic chips for an irq domain”h]”hŒ(Allocate generic chips for an irq domain”…”�”}”(hj5&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Mwhj2&h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjV#h²hh³jo#h´Mwubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjM&jkjM&jl‰jm‰jn‰uh1jQh²hhj!h³Nh´Nubjp)�”}”(hX,**Parameters** ``struct irq_domain *d`` irq domain for which to allocate chips ``int irqs_per_chip`` Number of interrupts each chip handles (max 32) ``int num_ct`` Number of irq_chip_type instances associated with this ``const char *name`` Name of the irq chip ``irq_flow_handler_t handler`` Default flow handler associated with these chips ``unsigned int clr`` IRQ_* bits to clear in the mapping function ``unsigned int set`` IRQ_* bits to set in the mapping function ``enum irq_gc_flags gcflags`` Generic chip specific setup flags”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjW&h]”hŒ Parameters”…”�”}”(hjY&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjU&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M{hjQ&ubj�)�”}”(hhh]”(j•)�”}”(hŒ@``struct irq_domain *d`` irq domain for which to allocate chips ”h]”(j›)�”}”(hŒ``struct irq_domain *d``”h]”j)�”}”(hjv&h]”hŒstruct irq_domain *d”…”�”}”(hjx&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjt&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Mxhjp&ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ&irq domain for which to allocate chips”h]”hŒ&irq domain for which to allocate chips”…”�”}”(hj�&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j‹&h´MxhjŒ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjp&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j‹&h´Mxhjm&ubj•)�”}”(hŒF``int irqs_per_chip`` Number of interrupts each chip handles (max 32) ”h]”(j›)�”}”(hŒ``int irqs_per_chip``”h]”j)�”}”(hj¯&h]”hŒint irqs_per_chip”…”�”}”(hj±&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj­&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Myhj©&ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ/Number of interrupts each chip handles (max 32)”h]”hŒ/Number of interrupts each chip handles (max 32)”…”�”}”(hjÈ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÄ&h´MyhjÅ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj©&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÄ&h´Myhjm&ubj•)�”}”(hŒF``int num_ct`` Number of irq_chip_type instances associated with this ”h]”(j›)�”}”(hŒ``int num_ct``”h]”j)�”}”(hjè&h]”hŒ int num_ct”…”�”}”(hjê&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjæ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Mzhjâ&ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ6Number of irq_chip_type instances associated with this”h]”hŒ6Number of irq_chip_type instances associated with this”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jý&h´Mzhjþ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjâ&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jý&h´Mzhjm&ubj•)�”}”(hŒ*``const char *name`` Name of the irq chip ”h]”(j›)�”}”(hŒ``const char *name``”h]”j)�”}”(hj!'h]”hŒconst char *name”…”�”}”(hj#'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M{hj'ubjµ)�”}”(hhh]”jƒ)�”}”(hŒName of the irq chip”h]”hŒName of the irq chip”…”�”}”(hj:'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j6'h´M{hj7'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j6'h´M{hjm&ubj•)�”}”(hŒP``irq_flow_handler_t handler`` Default flow handler associated with these chips ”h]”(j›)�”}”(hŒ``irq_flow_handler_t handler``”h]”j)�”}”(hjZ'h]”hŒirq_flow_handler_t handler”…”�”}”(hj\'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjX'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M|hjT'ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ0Default flow handler associated with these chips”h]”hŒ0Default flow handler associated with these chips”…”�”}”(hjs'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jo'h´M|hjp'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjT'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jo'h´M|hjm&ubj•)�”}”(hŒA``unsigned int clr`` IRQ_* bits to clear in the mapping function ”h]”(j›)�”}”(hŒ``unsigned int clr``”h]”j)�”}”(hj“'h]”hŒunsigned int clr”…”�”}”(hj•'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‘'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M}hj�'ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ+IRQ_* bits to clear in the mapping function”h]”hŒ+IRQ_* bits to clear in the mapping function”…”�”}”(hj¬'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j¨'h´M}hj©'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj�'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j¨'h´M}hjm&ubj•)�”}”(hŒ?``unsigned int set`` IRQ_* bits to set in the mapping function ”h]”(j›)�”}”(hŒ``unsigned int set``”h]”j)�”}”(hjÌ'h]”hŒunsigned int set”…”�”}”(hjÎ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÊ'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M~hjÆ'ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ)IRQ_* bits to set in the mapping function”h]”hŒ)IRQ_* bits to set in the mapping function”…”�”}”(hjå'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³já'h´M~hjâ'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÆ'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³já'h´M~hjm&ubj•)�”}”(hŒ?``enum irq_gc_flags gcflags`` Generic chip specific setup flags”h]”(j›)�”}”(hŒ``enum irq_gc_flags gcflags``”h]”j)�”}”(hj(h]”hŒenum irq_gc_flags gcflags”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M€hjÿ'ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ!Generic chip specific setup flags”h]”hŒ!Generic chip specific setup flags”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Mhj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÿ'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j(h´M€hjm&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjQ&ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj!h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ(irq_get_domain_generic_chip (C function)”Œc.irq_get_domain_generic_chip”hNt”auh1j@hj!h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒastruct irq_chip_generic * irq_get_domain_generic_chip (struct irq_domain *d, unsigned int hw_irq)”h]”j])�”}”(hŒ_struct irq_chip_generic *irq_get_domain_generic_chip(struct irq_domain *d, unsigned int hw_irq)”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj_(h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj[(h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M¤ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjm(h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj[(h²hh³jl(h´M¤ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_chip_generic”h]”hŒirq_chip_generic”…”�”}”(hj~(h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj{(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j€(Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèŒirq_get_domain_generic_chip”sbŒc.irq_get_domain_generic_chip”†”asbuh1hhj[(h²hh³jl(h´M¤ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸ(h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj[(h²hh³jl(h´M¤ubj )�”}”(hj h]”hŒ*”…”�”}”(hj­(h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj[(h²hh³jl(h´M¤ubj†)�”}”(hŒirq_get_domain_generic_chip”h]”jŒ)�”}”(hjœ(h]”hŒirq_get_domain_generic_chip”…”�”}”(hj¾(h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjº(ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj[(h²hh³jl(h´M¤ubj¥)�”}”(hŒ+(struct irq_domain *d, unsigned int hw_irq)”h]”(j«)�”}”(hŒstruct irq_domain *d”• h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjÙ(h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjÕ(ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæ(h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÕ(ubh)�”}”(hhh]”jŒ)�”}”(hŒ irq_domain”h]”hŒ irq_domain”…”�”}”(hj÷(h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjô(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jù(Œmodname”NŒ classname”Njìjï)�”}”jò]”jš(Œc.irq_get_domain_generic_chip”†”asbuh1hhjÕ(ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÕ(ubj )�”}”(hj h]”hŒ*”…”�”}”(hj#)h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÕ(ubjŒ)�”}”(hjh]”hŒd”…”�”}”(hj0)h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÕ(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjÑ(ubj«)�”}”(hŒunsigned int hw_irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjH)h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjD)ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjV)h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjD)ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjd)h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjD)ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjr)h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjD)ubjŒ)�”}”(hŒhw_irq”h]”hŒhw_irq”…”�”}”(hj€)h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjD)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjÑ(ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj[(h²hh³jl(h´M¤ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjW(h²hh³jl(h´M¤ubah}”(h]”jR(ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jl(h´M¤hjT(h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ-Get a pointer to the generic chip of a hw_irq”h]”hŒ-Get a pointer to the generic chip of a hw_irq”…”�”}”(hjª)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M¤hj§)h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjT(h²hh³jl(h´M¤ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjÂ)jkjÂ)jl‰jm‰jn‰uh1jQh²hhj!h³Nh´Nubjp)�”}”(hŒr**Parameters** ``struct irq_domain *d`` irq domain pointer ``unsigned int hw_irq`` Hardware interrupt number”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÌ)h]”hŒ Parameters”…”�”}”(hjÎ)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÊ)ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M¨hjÆ)ubj�)�”}”(hhh]”(j•)�”}”(hŒ,``struct irq_domain *d`` irq domain pointer ”h]”(j›)�”}”(hŒ``struct irq_domain *d``”h]”j)�”}”(hjë)h]”hŒstruct irq_domain *d”…”�”}”(hjí)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjé)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M¥hjå)ubjµ)�”}”(hhh]”jƒ)�”}”(hŒirq domain pointer”h]”hŒirq domain pointer”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j*h´M¥hj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjå)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j*h´M¥hjâ)ubj•)�”}”(hŒ1``unsigned int hw_irq`` Hardware interrupt number”h]”(j›)�”}”(hŒ``unsigned int hw_irq``”h]”j)�”}”(hj$*h]”hŒunsigned int hw_irq”…”�”}”(hj&*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj"*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M§hj*ubjµ)�”}”(hhh]”jƒ)�”}”(hŒHardware interrupt number”h]”hŒHardware interrupt number”…”�”}”(hj=*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M¦hj:*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j9*h´M§hjâ)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÆ)ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj!h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ#irq_setup_generic_chip (C function)”Œc.irq_setup_generic_chip”hNt”auh1j@hj!h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒvoid irq_setup_generic_chip (struct irq_chip_generic *gc, u32 msk, enum irq_gc_flags flags, unsigned int clr, unsigned int set)”h]”j])�”}”(hŒ~void irq_setup_generic_chip(struct irq_chip_generic *gc, u32 msk, enum irq_gc_flags flags, unsigned int clr, unsigned int set)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj~*h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjz*h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Mubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�*h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjz*h²hh³jŒ*h´Mubj†)�”}”(hŒirq_setup_generic_chip”h]”jŒ)�”}”(hŒirq_setup_generic_chip”h]”hŒirq_setup_generic_chip”…”�”}”(hjŸ*h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj›*ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjz*h²hh³jŒ*h´Mubj¥)�”}”(hŒc(struct irq_chip_generic *gc, u32 msk, enum irq_gc_flags flags, unsigned int clr, unsigned int set)”h]”(j«)�”}”(hŒstruct irq_chip_generic *gc”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj»*h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj·*ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÈ*h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj·*ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_chip_generic”h]”hŒirq_chip_generic”…”�”}”(hjÙ*h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÖ*ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jÛ*Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj¡*sbŒc.irq_setup_generic_chip”†”asbuh1hhj·*ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjù*h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj·*ubj )�”}”(hj h]”hŒ*”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj·*ubjŒ)�”}”(hŒgc”h]”hŒgc”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj·*ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj³*ubj«)�”}”(hŒu32 msk”h]”(h)�”}”(hhh]”jŒ)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj0+h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj-+ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j2+Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ*Œc.irq_setup_generic_chip”†”asbuh1hhj)+ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjN+h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj)+ubjŒ)�”}”(hŒmsk”h]”hŒmsk”…”�”}”(hj\+h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj)+ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj³*ubj«)�”}”(hŒenum irq_gc_flags flags”h]”(j±)�”}”(hjÂ%h]”hŒenum”…”�”}”(hju+h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjq+ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚+h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjq+ubh)�”}”(hhh]”jŒ)�”}”(hŒ irq_gc_flags”h]”hŒ irq_gc_flags”…”�”}”(hj“+h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj�+ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j•+Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ*Œc.irq_setup_generic_chip”†”asbuh1hhjq+ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj±+h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjq+ubjŒ)�”}”(hŒflags”h]”hŒflags”…”�”}”(hj¿+h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjq+ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj³*ubj«)�”}”(hŒunsigned int clr”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjØ+h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÔ+ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæ+h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÔ+ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjô+h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÔ+ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÔ+ubjŒ)�”}”(hŒclr”h]”hŒclr”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÔ+ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj³*ubj«)�”}”(hŒunsigned int set”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj),h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj%,ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7,h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj%,ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjE,h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj%,ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjS,h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj%,ubjŒ)�”}”(hŒset”h]”hŒset”…”�”}”(hja,h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj%,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj³*ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjz*h²hh³jŒ*h´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjv*h²hh³jŒ*h´Mubah}”(h]”jq*ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jŒ*h´Mhjs*h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ/Setup a range of interrupts with a generic chip”h]”hŒ/Setup a range of interrupts with a generic chip”…”�”}”(hj‹,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Mhjˆ,h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjs*h²hh³jŒ*h´Mubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj£,jkj£,jl‰jm‰jn‰uh1jQh²hhj!h³Nh´Nubjp)�”}”(hX×**Parameters** ``struct irq_chip_generic *gc`` Generic irq chip holding all data ``u32 msk`` Bitmask holding the irqs to initialize relative to gc->irq_base ``enum irq_gc_flags flags`` Flags for initialization ``unsigned int clr`` IRQ_* bits to clear ``unsigned int set`` IRQ_* bits to set **Description** Set up max. 32 interrupts starting from gc->irq_base. Note, this initializes all interrupts to the primary irq_chip_type and its associated handler.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj­,h]”hŒ Parameters”…”�”}”(hj¯,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj«,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M hj§,ubj�)�”}”(hhh]”(j•)�”}”(hŒB``struct irq_chip_generic *gc`` Generic irq chip holding all data ”h]”(j›)�”}”(hŒ``struct irq_chip_generic *gc``”h]”j)�”}”(hjÌ,h]”hŒstruct irq_chip_generic *gc”…”�”}”(hjÎ,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÊ,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´MhjÆ,ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ!Generic irq chip holding all data”h]”hŒ!Generic irq chip holding all data”…”�”}”(hjå,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³já,h´Mhjâ,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÆ,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³já,h´MhjÃ,ubj•)�”}”(hŒL``u32 msk`` Bitmask holding the irqs to initialize relative to gc->irq_base ”h]”(j›)�”}”(hŒ ``u32 msk``”h]”j)�”}”(hj-h]”hŒu32 msk”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M hjÿ,ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ?Bitmask holding the irqs to initialize relative to gc->irq_base”h]”hŒ?Bitmask holding the irqs to initialize relative to gc->irq_base”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j-h´M hj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÿ,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j-h´M hjÃ,ubj•)�”}”(hŒ5``enum irq_gc_flags flags`` Flags for initialization ”h]”(j›)�”}”(hŒ``enum irq_gc_flags flags``”h]”j)�”}”(hj>-h]”hŒenum irq_gc_flags flags”…”�”}”(hj@-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj<-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M hj8-ubjµ)�”}”(hhh]”jƒ)�”}”(hŒFlags for initialization”h]”hŒFlags for initialization”…”�”}”(hjW-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jS-h´M hjT-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj8-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jS-h´M hjÃ,ubj•)�”}”(hŒ)``unsigned int clr`` IRQ_* bits to clear ”h]”(j›)�”}”(hŒ``unsigned int clr``”h]”j)�”}”(hjw-h]”hŒunsigned int clr”…”�”}”(hjy-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhju-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M hjq-ubjµ)�”}”(hhh]”jƒ)�”}”(hŒIRQ_* bits to clear”h]”hŒIRQ_* bits to clear”…”�”}”(hj�-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jŒ-h´M hj�-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjq-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jŒ-h´M hjÃ,ubj•)�”}”(hŒ'``unsigned int set`` IRQ_* bits to set ”h]”(j›)�”}”(hŒ``unsigned int set``”h]”j)�”}”(hj°-h]”hŒunsigned int set”…”�”}”(hj²-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj®-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M hjª-ubjµ)�”}”(hhh]”jƒ)�”}”(hŒIRQ_* bits to set”h]”hŒIRQ_* bits to set”…”�”}”(hjÉ-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÅ-h´M hjÆ-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjª-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÅ-h´M hjÃ,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj§,ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjë-h]”hŒ Description”…”�”}”(hjí-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjé-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´Mhj§,ubjƒ)�”}”(hŒ”Set up max. 32 interrupts starting from gc->irq_base. Note, this initializes all interrupts to the primary irq_chip_type and its associated handler.”h]”hŒ”Set up max. 32 interrupts starting from gc->irq_base. Note, this initializes all interrupts to the primary irq_chip_type and its associated handler.”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M hj§,ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj!h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_setup_alt_chip (C function)”Œc.irq_setup_alt_chip”hNt”auh1j@hj!h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ>int irq_setup_alt_chip (struct irq_data *d, unsigned int type)”h]”j])�”}”(hŒ=int irq_setup_alt_chip(struct irq_data *d, unsigned int type)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj0.h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj,.h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M8ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj?.h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj,.h²hh³j>.h´M8ubj†)�”}”(hŒirq_setup_alt_chip”h]”jŒ)�”}”(hŒirq_setup_alt_chip”h]”hŒirq_setup_alt_chip”…”�”}”(hjQ.h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjM.ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj,.h²hh³j>.h´M8ubj¥)�”}”(hŒ'(struct irq_data *d, unsigned int type)”h]”(j«)�”}”(hŒstruct irq_data *d”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjm.h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hji.ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjz.h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthji.ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hj‹.h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjˆ.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j�.Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjS.sbŒc.irq_setup_alt_chip”†”asbuh1hhji.ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj«.h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthji.ubj )�”}”(hj h]”hŒ*”…”�”}”(hj¹.h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhji.ubjŒ)�”}”(hjh]”hŒd”…”�”}”(hjÆ.h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hji.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhje.ubj«)�”}”(hŒunsigned int type”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjÞ.h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÚ.ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjì.h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÚ.ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjú.h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÚ.ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÚ.ubjŒ)�”}”(hŒtype”h]”hŒtype”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÚ.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhje.ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj,.h²hh³j>.h´M8ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj(.h²hh³j>.h´M8ubah}”(h]”j#.ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j>.h´M8hj%.h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒSwitch to alternative chip”h]”hŒSwitch to alternative chip”…”�”}”(hj@/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M8hj=/h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj%.h²hh³j>.h´M8ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjX/jkjX/jl‰jm‰jn‰uh1jQh²hhj!h³Nh´Nubjp)�”}”(hŒÂ**Parameters** ``struct irq_data *d`` irq_data for this interrupt ``unsigned int type`` Flow type to be initialized **Description** Only to be called from chip->irq_set_type() callbacks.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjb/h]”hŒ Parameters”…”�”}”(hjd/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj`/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M<hj\/ubj�)�”}”(hhh]”(j•)�”}”(hŒ3``struct irq_data *d`` irq_data for this interrupt ”h]”(j›)�”}”(hŒ``struct irq_data *d``”h]”j)�”}”(hj�/h]”hŒstruct irq_data *d”…”�”}”(hjƒ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M9hj{/ubjµ)�”}”(hhh]”jƒ)�”}”(hŒirq_data for this interrupt”h]”hŒirq_data for this interrupt”…”�”}”(hjš/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j–/h´M9hj—/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj{/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j–/h´M9hjx/ubj•)�”}”(hŒ2``unsigned int type`` Flow type to be initialized ”h]”(j›)�”}”(hŒ``unsigned int type``”h]”j)�”}”(hjº/h]”hŒunsigned int type”…”�”}”(hj¼/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¸/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M:hj´/ubjµ)�”}”(hhh]”jƒ)�”}”(hŒFlow type to be initialized”h]”hŒFlow type to be initialized”…”�”}”(hjÓ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÏ/h´M:hjÐ/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj´/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÏ/h´M:hjx/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj\/ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjõ/h]”hŒ Description”…”�”}”(hj÷/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjó/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M<hj\/ubjƒ)�”}”(hŒ6Only to be called from chip->irq_set_type() callbacks.”h]”hŒ6Only to be called from chip->irq_set_type() callbacks.”…”�”}”(hj 0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´M;hj\/ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj!h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ$irq_remove_generic_chip (C function)”Œc.irq_remove_generic_chip”hNt”auh1j@hj!h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒgvoid irq_remove_generic_chip (struct irq_chip_generic *gc, u32 msk, unsigned int clr, unsigned int set)”h]”j])�”}”(hŒfvoid irq_remove_generic_chip(struct irq_chip_generic *gc, u32 msk, unsigned int clr, unsigned int set)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj:0h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj60h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´MPubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjI0h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj60h²hh³jH0h´MPubj†)�”}”(hŒirq_remove_generic_chip”h]”jŒ)�”}”(hŒirq_remove_generic_chip”h]”hŒirq_remove_generic_chip”…”�”}”(hj[0h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjW0ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj60h²hh³jH0h´MPubj¥)�”}”(hŒJ(struct irq_chip_generic *gc, u32 msk, unsigned int clr, unsigned int set)”h]”(j«)�”}”(hŒstruct irq_chip_generic *gc”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjw0h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjs0ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„0h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjs0ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_chip_generic”h]”hŒirq_chip_generic”…”�”}”(hj•0h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj’0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j—0Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj]0sbŒc.irq_remove_generic_chip”†”asbuh1hhjs0ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjµ0h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjs0ubj )�”}”(hj h]”hŒ*”…”�”}”(hjÃ0h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjs0ubjŒ)�”}”(hŒgc”h]”hŒgc”…”�”}”(hjÐ0h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjs0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjo0ubj«)�”}”(hŒu32 msk”h]”(h)�”}”(hhh]”jŒ)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjì0h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjé0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jî0Œmodname”NŒ classname”Njìjï)�”}”jò]”j±0Œc.irq_remove_generic_chip”†”asbuh1hhjå0ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj 1h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjå0ubjŒ)�”}”(hŒmsk”h]”hŒmsk”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjå0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjo0ubj«)�”}”(hŒunsigned int clr”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj11h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj-1ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj?1h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj-1ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjM1h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj-1ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj[1h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj-1ubjŒ)�”}”(hŒclr”h]”hŒclr”…”�”}”(hji1h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj-1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjo0ubj«)�”}”(hŒunsigned int set”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj‚1h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj~1ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�1h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj~1ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjž1h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj~1ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¬1h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj~1ubjŒ)�”}”(hŒset”h]”hŒset”…”�”}”(hjº1h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj~1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjo0ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj60h²hh³jH0h´MPubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj20h²hh³jH0h´MPubah}”(h]”j-0ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jH0h´MPhj/0h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ Remove a chip”h]”hŒ Remove a chip”…”�”}”(hjä1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´MPhjá1h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj/0h²hh³jH0h´MPubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjü1jkjü1jl‰jm‰jn‰uh1jQh²hhj!h³Nh´Nubjp)�”}”(hXA**Parameters** ``struct irq_chip_generic *gc`` Generic irq chip holding all data ``u32 msk`` Bitmask holding the irqs to initialize relative to gc->irq_base ``unsigned int clr`` IRQ_* bits to clear ``unsigned int set`` IRQ_* bits to set **Description** Remove up to 32 interrupts starting from gc->irq_base.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj2h]”hŒ Parameters”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´MThj2ubj�)�”}”(hhh]”(j•)�”}”(hŒB``struct irq_chip_generic *gc`` Generic irq chip holding all data ”h]”(j›)�”}”(hŒ``struct irq_chip_generic *gc``”h]”j)�”}”(hj%2h]”hŒstruct irq_chip_generic *gc”…”�”}”(hj'2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj#2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´MQhj2ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ!Generic irq chip holding all data”h]”hŒ!Generic irq chip holding all data”…”�”}”(hj>2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j:2h´MQhj;2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j:2h´MQhj2ubj•)�”}”(hŒL``u32 msk`` Bitmask holding the irqs to initialize relative to gc->irq_base ”h]”(j›)�”}”(hŒ ``u32 msk``”h]”j)�”}”(hj^2h]”hŒu32 msk”…”�”}”(hj`2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj\2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´MRhjX2ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ?Bitmask holding the irqs to initialize relative to gc->irq_base”h]”hŒ?Bitmask holding the irqs to initialize relative to gc->irq_base”…”�”}”(hjw2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³js2h´MRhjt2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjX2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³js2h´MRhj2ubj•)�”}”(hŒ)``unsigned int clr`` IRQ_* bits to clear ”h]”(j›)�”}”(hŒ``unsigned int clr``”h]”j)�”}”(hj—2h]”hŒunsigned int clr”…”�”}”(hj™2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj•2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´MShj‘2ubjµ)�”}”(hhh]”jƒ)�”}”(hŒIRQ_* bits to clear”h]”hŒIRQ_* bits to clear”…”�”}”(hj°2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j¬2h´MShj­2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj‘2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j¬2h´MShj2ubj•)�”}”(hŒ'``unsigned int set`` IRQ_* bits to set ”h]”(j›)�”}”(hŒ``unsigned int set``”h]”j)�”}”(hjÐ2h]”hŒunsigned int set”…”�”}”(hjÒ2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÎ2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´MThjÊ2ubjµ)�”}”(hhh]”jƒ)�”}”(hŒIRQ_* bits to set”h]”hŒIRQ_* bits to set”…”�”}”(hjé2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jå2h´MThjæ2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÊ2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jå2h´MThj2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj2ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj 3h]”hŒ Description”…”�”}”(hj 3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj 3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´MVhj2ubjƒ)�”}”(hŒ6Remove up to 32 interrupts starting from gc->irq_base.”h]”hŒ6Remove up to 32 interrupts starting from gc->irq_base.”…”�”}”(hj!3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:484: ./kernel/irq/generic-chip.c”h´MUhj2ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj!h²hh³Nh´Nubeh}”(h]”Œgeneric-interrupt-chip”ah ]”h"]”Œgeneric interrupt chip”ah$]”h&]”uh1jLhjNh²hh³jah´M†ubjM)�”}”(hhh]”(jR)�”}”(hŒ Structures”h]”hŒ Structures”…”�”}”(hjB3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj?3h²hh³jah´M’ubjƒ)�”}”(hŒpThis chapter contains the autogenerated documentation of the structures which are used in the generic IRQ layer.”h]”hŒpThis chapter contains the autogenerated documentation of the structures which are used in the generic IRQ layer.”…”�”}”(hjP3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´M”hj?3h²hubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_common_data (C struct)”Œc.irq_common_data”hNt”auh1j@hj?3h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒirq_common_data”h]”j])�”}”(hŒstruct irq_common_data”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjw3h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjs3h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Kubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…3h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjs3h²hh³j„3h´Kubj†)�”}”(hŒirq_common_data”h]”jŒ)�”}”(hjq3h]”hŒirq_common_data”…”�”}”(hj—3h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj“3ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjs3h²hh³j„3h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjo3h²hh³j„3h´Kubah}”(h]”jj3ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j„3h´Khjl3h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ#per irq data shared by all irqchips”h]”hŒ#per irq data shared by all irqchips”…”�”}”(hj¹3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Kˆhj¶3h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjl3h²hh³j„3h´Kubeh}”(h]”h ]”(j_ Œstruct”eh"]”h$]”h&]”jij_ jjjÑ3jkjÑ3jl‰jm‰jn‰uh1jQh²hhj?3h³Nh´Nubjp)�”}”(hXD**Definition**:: struct irq_common_data { unsigned int state_use_accessors; #ifdef CONFIG_NUMA; unsigned int node; #endif; void *handler_data; struct msi_desc *msi_desc; #ifdef CONFIG_SMP; cpumask_var_t affinity; #endif; #ifdef CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK; cpumask_var_t effective_affinity; #endif; #ifdef CONFIG_GENERIC_IRQ_IPI; unsigned int ipi_offset; #endif; }; **Members** ``state_use_accessors`` status information for irq chip functions. Use accessor functions to deal with it ``node`` node index useful for balancing ``handler_data`` per-IRQ data for the irq_chip methods ``msi_desc`` MSI descriptor ``affinity`` IRQ affinity on SMP. If this is an IPI related irq, then this is the mask of the CPUs to which an IPI can be sent. ``effective_affinity`` The effective IRQ affinity on SMP as some irq chips do not allow multi CPU destinations. A subset of **affinity**. ``ipi_offset`` Offset of first IPI target cpu in **affinity**. Optional.”h]”(jƒ)�”}”(hŒ**Definition**::”h]”(jz)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÝ3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÙ3ubhŒ:”…”�”}”(hjÙ3h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´KŒhjÕ3ubjå )�”}”(hX«struct irq_common_data { unsigned int state_use_accessors; #ifdef CONFIG_NUMA; unsigned int node; #endif; void *handler_data; struct msi_desc *msi_desc; #ifdef CONFIG_SMP; cpumask_var_t affinity; #endif; #ifdef CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK; cpumask_var_t effective_affinity; #endif; #ifdef CONFIG_GENERIC_IRQ_IPI; unsigned int ipi_offset; #endif; };”h]”hX«struct irq_common_data { unsigned int state_use_accessors; #ifdef CONFIG_NUMA; unsigned int node; #endif; void *handler_data; struct msi_desc *msi_desc; #ifdef CONFIG_SMP; cpumask_var_t affinity; #endif; #ifdef CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK; cpumask_var_t effective_affinity; #endif; #ifdef CONFIG_GENERIC_IRQ_IPI; unsigned int ipi_offset; #endif; };”…”�”}”hjö3sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jä h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´KŽhjÕ3ubjƒ)�”}”(hŒ **Members**”h]”jz)�”}”(hj4h]”hŒMembers”…”�”}”(hj 4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K hjÕ3ubj�)�”}”(hhh]”(j•)�”}”(hŒj``state_use_accessors`` status information for irq chip functions. Use accessor functions to deal with it ”h]”(j›)�”}”(hŒ``state_use_accessors``”h]”j)�”}”(hj&4h]”hŒstate_use_accessors”…”�”}”(hj(4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj$4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K‹hj 4ubjµ)�”}”(hhh]”jƒ)�”}”(hŒQstatus information for irq chip functions. Use accessor functions to deal with it”h]”hŒQstatus information for irq chip functions. Use accessor functions to deal with it”…”�”}”(hj?4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´KŠhj<4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj 4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j;4h´K‹hj4ubj•)�”}”(hŒ)``node`` node index useful for balancing ”h]”(j›)�”}”(hŒ``node``”h]”j)�”}”(hj`4h]”hŒnode”…”�”}”(hjb4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj^4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´KŒhjZ4ubjµ)�”}”(hhh]”jƒ)�”}”(hŒnode index useful for balancing”h]”hŒnode index useful for balancing”…”�”}”(hjy4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ju4h´KŒhjv4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjZ4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³ju4h´KŒhj4ubj•)�”}”(hŒ7``handler_data`` per-IRQ data for the irq_chip methods ”h]”(j›)�”}”(hŒ``handler_data``”h]”j)�”}”(hj™4h]”hŒ handler_data”…”�”}”(hj›4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj—4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K�hj“4ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ%per-IRQ data for the irq_chip methods”h]”hŒ%per-IRQ data for the irq_chip methods”…”�”}”(hj²4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j®4h´K�hj¯4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj“4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j®4h´K�hj4ubj•)�”}”(hŒ``msi_desc`` MSI descriptor ”h]”(j›)�”}”(hŒ ``msi_desc``”h]”j)�”}”(hjÒ4h]”hŒmsi_desc”…”�”}”(hjÔ4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÐ4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K”hjÌ4ubjµ)�”}”(hhh]”jƒ)�”}”(hŒMSI descriptor”h]”hŒMSI descriptor”…”�”}”(hjë4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jç4h´K”hjè4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÌ4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jç4h´K”hj4ubj•)�”}”(hŒ€``affinity`` IRQ affinity on SMP. If this is an IPI related irq, then this is the mask of the CPUs to which an IPI can be sent. ”h]”(j›)�”}”(hŒ ``affinity``”h]”j)�”}”(hj 5h]”hŒaffinity”…”�”}”(hj 5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj 5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K�hj5ubjµ)�”}”(hhh]”jƒ)�”}”(hŒrIRQ affinity on SMP. If this is an IPI related irq, then this is the mask of the CPUs to which an IPI can be sent.”h]”hŒrIRQ affinity on SMP. If this is an IPI related irq, then this is the mask of the CPUs to which an IPI can be sent.”…”�”}”(hj$5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´KŽhj!5ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j 5h´K�hj4ubj•)�”}”(hŒŠ``effective_affinity`` The effective IRQ affinity on SMP as some irq chips do not allow multi CPU destinations. A subset of **affinity**. ”h]”(j›)�”}”(hŒ``effective_affinity``”h]”j)�”}”(hjE5h]”hŒeffective_affinity”…”�”}”(hjG5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjC5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K“hj?5ubjµ)�”}”(hhh]”jƒ)�”}”(hŒrThe effective IRQ affinity on SMP as some irq chips do not allow multi CPU destinations. A subset of **affinity**.”h]”(hŒeThe effective IRQ affinity on SMP as some irq chips do not allow multi CPU destinations. A subset of ”…”�”}”(hj^5h²hh³Nh´Nubjz)�”}”(hŒ **affinity**”h]”hŒaffinity”…”�”}”(hjf5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj^5ubhŒ.”…”�”}”(hj^5h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K‘hj[5ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj?5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jZ5h´K“hj4ubj•)�”}”(hŒH``ipi_offset`` Offset of first IPI target cpu in **affinity**. Optional.”h]”(j›)�”}”(hŒ``ipi_offset``”h]”j)�”}”(hj‘5h]”hŒ ipi_offset”…”�”}”(hj“5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj�5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K”hj‹5ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ9Offset of first IPI target cpu in **affinity**. Optional.”h]”(hŒ"Offset of first IPI target cpu in ”…”�”}”(hjª5h²hh³Nh´Nubjz)�”}”(hŒ **affinity**”h]”hŒaffinity”…”�”}”(hj²5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjª5ubhŒ . Optional.”…”�”}”(hjª5h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K•hj§5ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj‹5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j¦5h´K”hj4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÕ3ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj?3h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_data (C struct)”Œ c.irq_data”hNt”auh1j@hj?3h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒirq_data”h]”j])�”}”(hŒstruct irq_data”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjý5h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjù5h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K›ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj 6h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjù5h²hh³j 6h´K›ubj†)�”}”(hŒirq_data”h]”jŒ)�”}”(hj÷5h]”hŒirq_data”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj6ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjù5h²hh³j 6h´K›ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjõ5h²hh³j 6h´K›ubah}”(h]”jð5ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j 6h´K›hjò5h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ/per irq chip data passed down to chip functions”h]”hŒ/per irq chip data passed down to chip functions”…”�”}”(hj?6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K©hj<6h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjò5h²hh³j 6h´K›ubeh}”(h]”h ]”(j_ Œstruct”eh"]”h$]”h&]”jij_ jjjW6jkjW6jl‰jm‰jn‰uh1jQh²hhj?3h³Nh´Nubjp)�”}”(hX±**Definition**:: struct irq_data { u32 mask; unsigned int irq; irq_hw_number_t hwirq; struct irq_common_data *common; struct irq_chip *chip; struct irq_domain *domain; #ifdef CONFIG_IRQ_DOMAIN_HIERARCHY; struct irq_data *parent_data; #endif; void *chip_data; }; **Members** ``mask`` precomputed bitmask for accessing the chip registers ``irq`` interrupt number ``hwirq`` hardware interrupt number, local to the interrupt domain ``common`` point to data shared by all irqchips ``chip`` low level interrupt hardware access ``domain`` Interrupt translation domain; responsible for mapping between hwirq number and linux irq number. ``parent_data`` pointer to parent struct irq_data to support hierarchy irq_domain ``chip_data`` platform-specific per-chip private data for the chip methods, to allow shared chip implementations”h]”(jƒ)�”}”(hŒ**Definition**::”h]”(jz)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjc6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj_6ubhŒ:”…”�”}”(hj_6h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K­hj[6ubjå )�”}”(hX6struct irq_data { u32 mask; unsigned int irq; irq_hw_number_t hwirq; struct irq_common_data *common; struct irq_chip *chip; struct irq_domain *domain; #ifdef CONFIG_IRQ_DOMAIN_HIERARCHY; struct irq_data *parent_data; #endif; void *chip_data; };”h]”hX6struct irq_data { u32 mask; unsigned int irq; irq_hw_number_t hwirq; struct irq_common_data *common; struct irq_chip *chip; struct irq_domain *domain; #ifdef CONFIG_IRQ_DOMAIN_HIERARCHY; struct irq_data *parent_data; #endif; void *chip_data; };”…”�”}”hj|6sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jä h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K¯hj[6ubjƒ)�”}”(hŒ **Members**”h]”jz)�”}”(hj�6h]”hŒMembers”…”�”}”(hj�6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj‹6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K¼hj[6ubj�)�”}”(hhh]”(j•)�”}”(hŒ>``mask`` precomputed bitmask for accessing the chip registers ”h]”(j›)�”}”(hŒ``mask``”h]”j)�”}”(hj¬6h]”hŒmask”…”�”}”(hj®6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjª6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K«hj¦6ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ4precomputed bitmask for accessing the chip registers”h]”hŒ4precomputed bitmask for accessing the chip registers”…”�”}”(hjÅ6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÁ6h´K«hjÂ6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¦6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÁ6h´K«hj£6ubj•)�”}”(hŒ``irq`` interrupt number ”h]”(j›)�”}”(hŒ``irq``”h]”j)�”}”(hjå6h]”hŒirq”…”�”}”(hjç6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjã6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K¬hjß6ubjµ)�”}”(hhh]”jƒ)�”}”(hŒinterrupt number”h]”hŒinterrupt number”…”�”}”(hjþ6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jú6h´K¬hjû6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjß6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jú6h´K¬hj£6ubj•)�”}”(hŒC``hwirq`` hardware interrupt number, local to the interrupt domain ”h]”(j›)�”}”(hŒ ``hwirq``”h]”j)�”}”(hj7h]”hŒhwirq”…”�”}”(hj 7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K­hj7ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ8hardware interrupt number, local to the interrupt domain”h]”hŒ8hardware interrupt number, local to the interrupt domain”…”�”}”(hj77h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j37h´K­hj47ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j37h´K­hj£6ubj•)�”}”(hŒ0``common`` point to data shared by all irqchips ”h]”(j›)�”}”(hŒ ``common``”h]”j)�”}”(hjW7h]”hŒcommon”…”�”}”(hjY7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjU7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K®hjQ7ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ$point to data shared by all irqchips”h]”hŒ$point to data shared by all irqchips”…”�”}”(hjp7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jl7h´K®hjm7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjQ7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jl7h´K®hj£6ubj•)�”}”(hŒ-``chip`` low level interrupt hardware access ”h]”(j›)�”}”(hŒ``chip``”h]”j)�”}”(hj�7h]”hŒchip”…”�”}”(hj’7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŽ7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K¯hjŠ7ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ#low level interrupt hardware access”h]”hŒ#low level interrupt hardware access”…”�”}”(hj©7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j¥7h´K¯hj¦7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjŠ7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j¥7h´K¯hj£6ubj•)�”}”(hŒl``domain`` Interrupt translation domain; responsible for mapping between hwirq number and linux irq number. ”h]”(j›)�”}”(hŒ ``domain``”h]”j)�”}”(hjÉ7h]”hŒdomain”…”�”}”(hjË7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÇ7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K±hjÃ7ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ`Interrupt translation domain; responsible for mapping between hwirq number and linux irq number.”h]”hŒ`Interrupt translation domain; responsible for mapping between hwirq number and linux irq number.”…”�”}”(hjâ7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K°hjß7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÃ7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÞ7h´K±hj£6ubj•)�”}”(hŒR``parent_data`` pointer to parent struct irq_data to support hierarchy irq_domain ”h]”(j›)�”}”(hŒ``parent_data``”h]”j)�”}”(hj8h]”hŒ parent_data”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K³hjý7ubjµ)�”}”(hhh]”jƒ)�”}”(hŒApointer to parent struct irq_data to support hierarchy irq_domain”h]”hŒApointer to parent struct irq_data to support hierarchy irq_domain”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K²hj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjý7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j8h´K³hj£6ubj•)�”}”(hŒp``chip_data`` platform-specific per-chip private data for the chip methods, to allow shared chip implementations”h]”(j›)�”}”(hŒ ``chip_data``”h]”j)�”}”(hj=8h]”hŒ chip_data”…”�”}”(hj?8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj;8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K´hj78ubjµ)�”}”(hhh]”jƒ)�”}”(hŒbplatform-specific per-chip private data for the chip methods, to allow shared chip implementations”h]”hŒbplatform-specific per-chip private data for the chip methods, to allow shared chip implementations”…”�”}”(hjV8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jR8h´K´hjS8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj78ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jR8h´K´hj£6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj[6ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj?3h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_chip (C struct)”Œ c.irq_chip”hNt”auh1j@hj?3h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒirq_chip”h]”j])�”}”(hŒstruct irq_chip”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj–8h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj’8h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´K»ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤8h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj’8h²hh³j£8h´K»ubj†)�”}”(hŒirq_chip”h]”jŒ)�”}”(hj�8h]”hŒirq_chip”…”�”}”(hj¶8h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj²8ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj’8h²hh³j£8h´K»ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjŽ8h²hh³j£8h´K»ubah}”(h]”j‰8ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j£8h´K»hj‹8h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ"hardware interrupt chip descriptor”h]”hŒ"hardware interrupt chip descriptor”…”�”}”(hjØ8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÁhjÕ8h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj‹8h²hh³j£8h´K»ubeh}”(h]”h ]”(j_ Œstruct”eh"]”h$]”h&]”jij_ jjjð8jkjð8jl‰jm‰jn‰uh1jQh²hhj?3h³Nh´Nubjp)�”}”(hXY**Definition**:: struct irq_chip { const char *name; unsigned int (*irq_startup)(struct irq_data *data); void (*irq_shutdown)(struct irq_data *data); void (*irq_enable)(struct irq_data *data); void (*irq_disable)(struct irq_data *data); void (*irq_ack)(struct irq_data *data); void (*irq_mask)(struct irq_data *data); void (*irq_mask_ack)(struct irq_data *data); void (*irq_unmask)(struct irq_data *data); void (*irq_eoi)(struct irq_data *data); int (*irq_set_affinity)(struct irq_data *data, const struct cpumask *dest, bool force); void (*irq_pre_redirect)(struct irq_data *data); int (*irq_retrigger)(struct irq_data *data); int (*irq_set_type)(struct irq_data *data, unsigned int flow_type); int (*irq_set_wake)(struct irq_data *data, unsigned int on); void (*irq_bus_lock)(struct irq_data *data); void (*irq_bus_sync_unlock)(struct irq_data *data); #ifdef CONFIG_DEPRECATED_IRQ_CPU_ONOFFLINE; void (*irq_cpu_online)(struct irq_data *data); void (*irq_cpu_offline)(struct irq_data *data); #endif; void (*irq_suspend)(struct irq_data *data); void (*irq_resume)(struct irq_data *data); void (*irq_pm_shutdown)(struct irq_data *data); void (*irq_calc_mask)(struct irq_data *data); void (*irq_print_chip)(struct irq_data *data, struct seq_file *p); int (*irq_request_resources)(struct irq_data *data); void (*irq_release_resources)(struct irq_data *data); void (*irq_compose_msi_msg)(struct irq_data *data, struct msi_msg *msg); void (*irq_write_msi_msg)(struct irq_data *data, struct msi_msg *msg); int (*irq_get_irqchip_state)(struct irq_data *data, enum irqchip_irq_state which, bool *state); int (*irq_set_irqchip_state)(struct irq_data *data, enum irqchip_irq_state which, bool state); int (*irq_set_vcpu_affinity)(struct irq_data *data, void *vcpu_info); void (*ipi_send_single)(struct irq_data *data, unsigned int cpu); void (*ipi_send_mask)(struct irq_data *data, const struct cpumask *dest); int (*irq_nmi_setup)(struct irq_data *data); void (*irq_nmi_teardown)(struct irq_data *data); void (*irq_force_complete_move)(struct irq_data *data); unsigned long flags; }; **Members** ``name`` name for /proc/interrupts ``irq_startup`` start up the interrupt (defaults to ->enable if NULL) ``irq_shutdown`` shut down the interrupt (defaults to ->disable if NULL) ``irq_enable`` enable the interrupt (defaults to chip->unmask if NULL) ``irq_disable`` disable the interrupt ``irq_ack`` start of a new interrupt ``irq_mask`` mask an interrupt source ``irq_mask_ack`` ack and mask an interrupt source ``irq_unmask`` unmask an interrupt source ``irq_eoi`` end of interrupt ``irq_set_affinity`` Set the CPU affinity on SMP machines. If the force argument is true, it tells the driver to unconditionally apply the affinity setting. Sanity checks against the supplied affinity mask are not required. This is used for CPU hotplug where the target CPU is not yet set in the cpu_online_mask. ``irq_pre_redirect`` Optional function to be invoked before redirecting an interrupt via irq_work. Called only on CONFIG_SMP. ``irq_retrigger`` resend an IRQ to the CPU ``irq_set_type`` set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ ``irq_set_wake`` enable/disable power-management wake-on of an IRQ ``irq_bus_lock`` function to lock access to slow bus (i2c) chips ``irq_bus_sync_unlock`` function to sync and unlock slow bus (i2c) chips ``irq_cpu_online`` configure an interrupt source for a secondary CPU ``irq_cpu_offline`` un-configure an interrupt source for a secondary CPU ``irq_suspend`` function called from core code on suspend once per chip, when one or more interrupts are installed ``irq_resume`` function called from core code on resume once per chip, when one ore more interrupts are installed ``irq_pm_shutdown`` function called from core code on shutdown once per chip ``irq_calc_mask`` Optional function to set irq_data.mask for special cases ``irq_print_chip`` optional to print special chip info in show_interrupts ``irq_request_resources`` optional to request resources before calling any other callback related to this irq ``irq_release_resources`` optional to release resources acquired with irq_request_resources ``irq_compose_msi_msg`` optional to compose message content for MSI ``irq_write_msi_msg`` optional to write message content for MSI ``irq_get_irqchip_state`` return the internal state of an interrupt ``irq_set_irqchip_state`` set the internal state of a interrupt ``irq_set_vcpu_affinity`` optional to target a vCPU in a virtual machine ``ipi_send_single`` send a single IPI to destination cpus ``ipi_send_mask`` send an IPI to destination cpus in cpumask ``irq_nmi_setup`` function called from core code before enabling an NMI ``irq_nmi_teardown`` function called from core code after disabling an NMI ``irq_force_complete_move`` optional function to force complete pending irq move ``flags`` chip specific flags”h]”(jƒ)�”}”(hŒ**Definition**::”h]”(jz)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjü8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjø8ubhŒ:”…”�”}”(hjø8h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÅhjô8ubjå )�”}”(hX§struct irq_chip { const char *name; unsigned int (*irq_startup)(struct irq_data *data); void (*irq_shutdown)(struct irq_data *data); void (*irq_enable)(struct irq_data *data); void (*irq_disable)(struct irq_data *data); void (*irq_ack)(struct irq_data *data); void (*irq_mask)(struct irq_data *data); void (*irq_mask_ack)(struct irq_data *data); void (*irq_unmask)(struct irq_data *data); void (*irq_eoi)(struct irq_data *data); int (*irq_set_affinity)(struct irq_data *data, const struct cpumask *dest, bool force); void (*irq_pre_redirect)(struct irq_data *data); int (*irq_retrigger)(struct irq_data *data); int (*irq_set_type)(struct irq_data *data, unsigned int flow_type); int (*irq_set_wake)(struct irq_data *data, unsigned int on); void (*irq_bus_lock)(struct irq_data *data); void (*irq_bus_sync_unlock)(struct irq_data *data); #ifdef CONFIG_DEPRECATED_IRQ_CPU_ONOFFLINE; void (*irq_cpu_online)(struct irq_data *data); void (*irq_cpu_offline)(struct irq_data *data); #endif; void (*irq_suspend)(struct irq_data *data); void (*irq_resume)(struct irq_data *data); void (*irq_pm_shutdown)(struct irq_data *data); void (*irq_calc_mask)(struct irq_data *data); void (*irq_print_chip)(struct irq_data *data, struct seq_file *p); int (*irq_request_resources)(struct irq_data *data); void (*irq_release_resources)(struct irq_data *data); void (*irq_compose_msi_msg)(struct irq_data *data, struct msi_msg *msg); void (*irq_write_msi_msg)(struct irq_data *data, struct msi_msg *msg); int (*irq_get_irqchip_state)(struct irq_data *data, enum irqchip_irq_state which, bool *state); int (*irq_set_irqchip_state)(struct irq_data *data, enum irqchip_irq_state which, bool state); int (*irq_set_vcpu_affinity)(struct irq_data *data, void *vcpu_info); void (*ipi_send_single)(struct irq_data *data, unsigned int cpu); void (*ipi_send_mask)(struct irq_data *data, const struct cpumask *dest); int (*irq_nmi_setup)(struct irq_data *data); void (*irq_nmi_teardown)(struct irq_data *data); void (*irq_force_complete_move)(struct irq_data *data); unsigned long flags; };”h]”hX§struct irq_chip { const char *name; unsigned int (*irq_startup)(struct irq_data *data); void (*irq_shutdown)(struct irq_data *data); void (*irq_enable)(struct irq_data *data); void (*irq_disable)(struct irq_data *data); void (*irq_ack)(struct irq_data *data); void (*irq_mask)(struct irq_data *data); void (*irq_mask_ack)(struct irq_data *data); void (*irq_unmask)(struct irq_data *data); void (*irq_eoi)(struct irq_data *data); int (*irq_set_affinity)(struct irq_data *data, const struct cpumask *dest, bool force); void (*irq_pre_redirect)(struct irq_data *data); int (*irq_retrigger)(struct irq_data *data); int (*irq_set_type)(struct irq_data *data, unsigned int flow_type); int (*irq_set_wake)(struct irq_data *data, unsigned int on); void (*irq_bus_lock)(struct irq_data *data); void (*irq_bus_sync_unlock)(struct irq_data *data); #ifdef CONFIG_DEPRECATED_IRQ_CPU_ONOFFLINE; void (*irq_cpu_online)(struct irq_data *data); void (*irq_cpu_offline)(struct irq_data *data); #endif; void (*irq_suspend)(struct irq_data *data); void (*irq_resume)(struct irq_data *data); void (*irq_pm_shutdown)(struct irq_data *data); void (*irq_calc_mask)(struct irq_data *data); void (*irq_print_chip)(struct irq_data *data, struct seq_file *p); int (*irq_request_resources)(struct irq_data *data); void (*irq_release_resources)(struct irq_data *data); void (*irq_compose_msi_msg)(struct irq_data *data, struct msi_msg *msg); void (*irq_write_msi_msg)(struct irq_data *data, struct msi_msg *msg); int (*irq_get_irqchip_state)(struct irq_data *data, enum irqchip_irq_state which, bool *state); int (*irq_set_irqchip_state)(struct irq_data *data, enum irqchip_irq_state which, bool state); int (*irq_set_vcpu_affinity)(struct irq_data *data, void *vcpu_info); void (*ipi_send_single)(struct irq_data *data, unsigned int cpu); void (*ipi_send_mask)(struct irq_data *data, const struct cpumask *dest); int (*irq_nmi_setup)(struct irq_data *data); void (*irq_nmi_teardown)(struct irq_data *data); void (*irq_force_complete_move)(struct irq_data *data); unsigned long flags; };”…”�”}”hj9sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jä h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÇhjô8ubjƒ)�”}”(hŒ **Members**”h]”jz)�”}”(hj&9h]”hŒMembers”…”�”}”(hj(9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj$9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mñhjô8ubj�)�”}”(hhh]”(j•)�”}”(hŒ#``name`` name for /proc/interrupts ”h]”(j›)�”}”(hŒ``name``”h]”j)�”}”(hjE9h]”hŒname”…”�”}”(hjG9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjC9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÄhj?9ubjµ)�”}”(hhh]”jƒ)�”}”(hŒname for /proc/interrupts”h]”hŒname for /proc/interrupts”…”�”}”(hj^9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jZ9h´MÄhj[9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj?9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jZ9h´MÄhj<9ubj•)�”}”(hŒF``irq_startup`` start up the interrupt (defaults to ->enable if NULL) ”h]”(j›)�”}”(hŒ``irq_startup``”h]”j)�”}”(hj~9h]”hŒ irq_startup”…”�”}”(hj€9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj|9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÅhjx9ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ5start up the interrupt (defaults to ->enable if NULL)”h]”hŒ5start up the interrupt (defaults to ->enable if NULL)”…”�”}”(hj—9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j“9h´MÅhj”9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjx9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j“9h´MÅhj<9ubj•)�”}”(hŒI``irq_shutdown`` shut down the interrupt (defaults to ->disable if NULL) ”h]”(j›)�”}”(hŒ``irq_shutdown``”h]”j)�”}”(hj·9h]”hŒ irq_shutdown”…”�”}”(hj¹9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjµ9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÆhj±9ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ7shut down the interrupt (defaults to ->disable if NULL)”h]”hŒ7shut down the interrupt (defaults to ->disable if NULL)”…”�”}”(hjÐ9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÌ9h´MÆhjÍ9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj±9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÌ9h´MÆhj<9ubj•)�”}”(hŒG``irq_enable`` enable the interrupt (defaults to chip->unmask if NULL) ”h]”(j›)�”}”(hŒ``irq_enable``”h]”j)�”}”(hjð9h]”hŒ irq_enable”…”�”}”(hjò9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjî9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÇhjê9ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ7enable the interrupt (defaults to chip->unmask if NULL)”h]”hŒ7enable the interrupt (defaults to chip->unmask if NULL)”…”�”}”(hj :h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j:h´MÇhj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjê9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j:h´MÇhj<9ubj•)�”}”(hŒ&``irq_disable`` disable the interrupt ”h]”(j›)�”}”(hŒ``irq_disable``”h]”j)�”}”(hj):h]”hŒ irq_disable”…”�”}”(hj+:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj':ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÈhj#:ubjµ)�”}”(hhh]”jƒ)�”}”(hŒdisable the interrupt”h]”hŒdisable the interrupt”…”�”}”(hjB:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j>:h´MÈhj?:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj#:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j>:h´MÈhj<9ubj•)�”}”(hŒ%``irq_ack`` start of a new interrupt ”h]”(j›)�”}”(hŒ ``irq_ack``”h]”j)�”}”(hjb:h]”hŒirq_ack”…”�”}”(hjd:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj`:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÉhj\:ubjµ)�”}”(hhh]”jƒ)�”}”(hŒstart of a new interrupt”h]”hŒstart of a new interrupt”…”�”}”(hj{:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jw:h´MÉhjx:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj\:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jw:h´MÉhj<9ubj•)�”}”(hŒ&``irq_mask`` mask an interrupt source ”h]”(j›)�”}”(hŒ ``irq_mask``”h]”j)�”}”(hj›:h]”hŒirq_mask”…”�”}”(hj�:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj™:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”•h´MÊhj•:ubjµ)�”}”(hhh]”jƒ)�”}”(hŒmask an interrupt source”h]”hŒmask an interrupt source”…”�”}”(hj´:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j°:h´MÊhj±:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj•:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j°:h´MÊhj<9ubj•)�”}”(hŒ2``irq_mask_ack`` ack and mask an interrupt source ”h]”(j›)�”}”(hŒ``irq_mask_ack``”h]”j)�”}”(hjÔ:h]”hŒ irq_mask_ack”…”�”}”(hjÖ:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÒ:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MËhjÎ:ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ ack and mask an interrupt source”h]”hŒ ack and mask an interrupt source”…”�”}”(hjí:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jé:h´MËhjê:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÎ:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jé:h´MËhj<9ubj•)�”}”(hŒ*``irq_unmask`` unmask an interrupt source ”h]”(j›)�”}”(hŒ``irq_unmask``”h]”j)�”}”(hj ;h]”hŒ irq_unmask”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÌhj;ubjµ)�”}”(hhh]”jƒ)�”}”(hŒunmask an interrupt source”h]”hŒunmask an interrupt source”…”�”}”(hj&;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j";h´MÌhj#;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j";h´MÌhj<9ubj•)�”}”(hŒ``irq_eoi`` end of interrupt ”h]”(j›)�”}”(hŒ ``irq_eoi``”h]”j)�”}”(hjF;h]”hŒirq_eoi”…”�”}”(hjH;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjD;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÍhj@;ubjµ)�”}”(hhh]”jƒ)�”}”(hŒend of interrupt”h]”hŒend of interrupt”…”�”}”(hj_;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j[;h´MÍhj\;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj@;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j[;h´MÍhj<9ubj•)�”}”(hX9``irq_set_affinity`` Set the CPU affinity on SMP machines. If the force argument is true, it tells the driver to unconditionally apply the affinity setting. Sanity checks against the supplied affinity mask are not required. This is used for CPU hotplug where the target CPU is not yet set in the cpu_online_mask. ”h]”(j›)�”}”(hŒ``irq_set_affinity``”h]”j)�”}”(hj;h]”hŒirq_set_affinity”…”�”}”(hj�;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj};ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÓhjy;ubjµ)�”}”(hhh]”jƒ)�”}”(hX#Set the CPU affinity on SMP machines. If the force argument is true, it tells the driver to unconditionally apply the affinity setting. Sanity checks against the supplied affinity mask are not required. This is used for CPU hotplug where the target CPU is not yet set in the cpu_online_mask.”h]”hX#Set the CPU affinity on SMP machines. If the force argument is true, it tells the driver to unconditionally apply the affinity setting. Sanity checks against the supplied affinity mask are not required. This is used for CPU hotplug where the target CPU is not yet set in the cpu_online_mask.”…”�”}”(hj˜;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÎhj•;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjy;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j”;h´MÓhj<9ubj•)�”}”(hŒ~``irq_pre_redirect`` Optional function to be invoked before redirecting an interrupt via irq_work. Called only on CONFIG_SMP. ”h]”(j›)�”}”(hŒ``irq_pre_redirect``”h]”j)�”}”(hj¹;h]”hŒirq_pre_redirect”…”�”}”(hj»;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj·;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÕhj³;ubjµ)�”}”(hhh]”jƒ)�”}”(hŒhOptional function to be invoked before redirecting an interrupt via irq_work. Called only on CONFIG_SMP.”h]”hŒhOptional function to be invoked before redirecting an interrupt via irq_work. Called only on CONFIG_SMP.”…”�”}”(hjÒ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÔhjÏ;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj³;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÎ;h´MÕhj<9ubj•)�”}”(hŒ+``irq_retrigger`` resend an IRQ to the CPU ”h]”(j›)�”}”(hŒ``irq_retrigger``”h]”j)�”}”(hjó;h]”hŒ irq_retrigger”…”�”}”(hjõ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjñ;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÖhjí;ubjµ)�”}”(hhh]”jƒ)�”}”(hŒresend an IRQ to the CPU”h]”hŒresend an IRQ to the CPU”…”�”}”(hj <h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j<h´MÖhj <ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjí;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j<h´MÖhj<9ubj•)�”}”(hŒC``irq_set_type`` set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ ”h]”(j›)�”}”(hŒ``irq_set_type``”h]”j)�”}”(hj,<h]”hŒ irq_set_type”…”�”}”(hj.<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj*<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´M×hj&<ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ1set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ”h]”hŒ1set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ”…”�”}”(hjE<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jA<h´M×hjB<ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj&<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jA<h´M×hj<9ubj•)�”}”(hŒC``irq_set_wake`` enable/disable power-management wake-on of an IRQ ”h]”(j›)�”}”(hŒ``irq_set_wake``”h]”j)�”}”(hje<h]”hŒ irq_set_wake”…”�”}”(hjg<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjc<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MØhj_<ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ1enable/disable power-management wake-on of an IRQ”h]”hŒ1enable/disable power-management wake-on of an IRQ”…”�”}”(hj~<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jz<h´MØhj{<ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj_<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jz<h´MØhj<9ubj•)�”}”(hŒA``irq_bus_lock`` function to lock access to slow bus (i2c) chips ”h]”(j›)�”}”(hŒ``irq_bus_lock``”h]”j)�”}”(hjž<h]”hŒ irq_bus_lock”…”�”}”(hj <h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjœ<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÙhj˜<ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ/function to lock access to slow bus (i2c) chips”h]”hŒ/function to lock access to slow bus (i2c) chips”…”�”}”(hj·<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j³<h´MÙhj´<ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj˜<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j³<h´MÙhj<9ubj•)�”}”(hŒI``irq_bus_sync_unlock`` function to sync and unlock slow bus (i2c) chips ”h]”(j›)�”}”(hŒ``irq_bus_sync_unlock``”h]”j)�”}”(hj×<h]”hŒirq_bus_sync_unlock”…”�”}”(hjÙ<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÕ<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÚhjÑ<ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ0function to sync and unlock slow bus (i2c) chips”h]”hŒ0function to sync and unlock slow bus (i2c) chips”…”�”}”(hjð<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jì<h´MÚhjí<ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÑ<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jì<h´MÚhj<9ubj•)�”}”(hŒE``irq_cpu_online`` configure an interrupt source for a secondary CPU ”h]”(j›)�”}”(hŒ``irq_cpu_online``”h]”j)�”}”(hj=h]”hŒirq_cpu_online”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÛhj =ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ1configure an interrupt source for a secondary CPU”h]”hŒ1configure an interrupt source for a secondary CPU”…”�”}”(hj)=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j%=h´MÛhj&=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj =ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j%=h´MÛhj<9ubj•)�”}”(hŒI``irq_cpu_offline`` un-configure an interrupt source for a secondary CPU ”h]”(j›)�”}”(hŒ``irq_cpu_offline``”h]”j)�”}”(hjI=h]”hŒirq_cpu_offline”…”�”}”(hjK=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjG=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÜhjC=ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ4un-configure an interrupt source for a secondary CPU”h]”hŒ4un-configure an interrupt source for a secondary CPU”…”�”}”(hjb=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j^=h´MÜhj_=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjC=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j^=h´MÜhj<9ubj•)�”}”(hŒs``irq_suspend`` function called from core code on suspend once per chip, when one or more interrupts are installed ”h]”(j›)�”}”(hŒ``irq_suspend``”h]”j)�”}”(hj‚=h]”hŒ irq_suspend”…”�”}”(hj„=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj€=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÞhj|=ubjµ)�”}”(hhh]”jƒ)�”}”(hŒbfunction called from core code on suspend once per chip, when one or more interrupts are installed”h]”hŒbfunction called from core code on suspend once per chip, when one or more interrupts are installed”…”�”}”(hj›=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÝhj˜=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj|=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j—=h´MÞhj<9ubj•)�”}”(hŒr``irq_resume`` function called from core code on resume once per chip, when one ore more interrupts are installed ”h]”(j›)�”}”(hŒ``irq_resume``”h]”j)�”}”(hj¼=h]”hŒ irq_resume”…”�”}”(hj¾=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjº=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Màhj¶=ubjµ)�”}”(hhh]”jƒ)�”}”(hŒbfunction called from core code on resume once per chip, when one ore more interrupts are installed”h]”hŒbfunction called from core code on resume once per chip, when one ore more interrupts are installed”…”�”}”(hjÕ=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MßhjÒ=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¶=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÑ=h´Màhj<9ubj•)�”}”(hŒM``irq_pm_shutdown`` function called from core code on shutdown once per chip ”h]”(j›)�”}”(hŒ``irq_pm_shutdown``”h]”j)�”}”(hjö=h]”hŒirq_pm_shutdown”…”�”}”(hjø=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjô=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Máhjð=ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ8function called from core code on shutdown once per chip”h]”hŒ8function called from core code on shutdown once per chip”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j >h´Máhj >ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjð=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j >h´Máhj<9ubj•)�”}”(hŒK``irq_calc_mask`` Optional function to set irq_data.mask for special cases ”h]”(j›)�”}”(hŒ``irq_calc_mask``”h]”j)�”}”(hj/>h]”hŒ irq_calc_mask”…”�”}”(hj1>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj->ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mâhj)>ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ8Optional function to set irq_data.mask for special cases”h]”hŒ8Optional function to set irq_data.mask for special cases”…”�”}”(hjH>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jD>h´MâhjE>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj)>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jD>h´Mâhj<9ubj•)�”}”(hŒJ``irq_print_chip`` optional to print special chip info in show_interrupts ”h]”(j›)�”}”(hŒ``irq_print_chip``”h]”j)�”}”(hjh>h]”hŒirq_print_chip”…”�”}”(hjj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjf>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mãhjb>ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ6optional to print special chip info in show_interrupts”h]”hŒ6optional to print special chip info in show_interrupts”…”�”}”(hj�>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j}>h´Mãhj~>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjb>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j}>h´Mãhj<9ubj•)�”}”(hŒn``irq_request_resources`` optional to request resources before calling any other callback related to this irq ”h]”(j›)�”}”(hŒ``irq_request_resources``”h]”j)�”}”(hj¡>h]”hŒirq_request_resources”…”�”}”(hj£>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŸ>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Måhj›>ubjµ)�”}”(hhh]”jƒ)�”}”(hŒSoptional to request resources before calling any other callback related to this irq”h]”hŒSoptional to request resources before calling any other callback related to this irq”…”�”}”(hjº>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mähj·>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj›>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j¶>h´Måhj<9ubj•)�”}”(hŒ\``irq_release_resources`` optional to release resources acquired with irq_request_resources ”h]”(j›)�”}”(hŒ``irq_release_resources``”h]”j)�”}”(hjÛ>h]”hŒirq_release_resources”…”�”}”(hjÝ>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÙ>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MçhjÕ>ubjµ)�”}”(hhh]”jƒ)�”}”(hŒAoptional to release resources acquired with irq_request_resources”h]”hŒAoptional to release resources acquired with irq_request_resources”…”�”}”(hjô>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mæhjñ>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÕ>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jð>h´Mçhj<9ubj•)�”}”(hŒD``irq_compose_msi_msg`` optional to compose message content for MSI ”h]”(j›)�”}”(hŒ``irq_compose_msi_msg``”h]”j)�”}”(hj?h]”hŒirq_compose_msi_msg”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mèhj?ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ+optional to compose message content for MSI”h]”hŒ+optional to compose message content for MSI”…”�”}”(hj.?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j*?h´Mèhj+?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j*?h´Mèhj<9ubj•)�”}”(hŒ@``irq_write_msi_msg`` optional to write message content for MSI ”h]”(j›)�”}”(hŒ``irq_write_msi_msg``”h]”j)�”}”(hjN?h]”hŒirq_write_msi_msg”…”�”}”(hjP?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjL?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MéhjH?ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ)optional to write message content for MSI”h]”hŒ)optional to write message content for MSI”…”�”}”(hjg?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jc?h´Méhjd?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjH?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jc?h´Méhj<9ubj•)�”}”(hŒD``irq_get_irqchip_state`` return the internal state of an interrupt ”h]”(j›)�”}”(hŒ``irq_get_irqchip_state``”h]”j)�”}”(hj‡?h]”hŒirq_get_irqchip_state”…”�”}”(hj‰?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj…?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mêhj�?ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ)return the internal state of an interrupt”h]”hŒ)return the internal state of an interrupt”…”�”}”(hj ?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jœ?h´Mêhj�?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj�?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jœ?h´Mêhj<9ubj•)�”}”(hŒ@``irq_set_irqchip_state`` set the internal state of a interrupt ”h]”(j›)�”}”(hŒ``irq_set_irqchip_state``”h]”j)�”}”(hjÀ?h]”hŒirq_set_irqchip_state”…”�”}”(hjÂ?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¾?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mëhjº?ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ%set the internal state of a interrupt”h]”hŒ%set the internal state of a interrupt”…”�”}”(hjÙ?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÕ?h´MëhjÖ?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjº?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÕ?h´Mëhj<9ubj•)�”}”(hŒI``irq_set_vcpu_affinity`` optional to target a vCPU in a virtual machine ”h]”(j›)�”}”(hŒ``irq_set_vcpu_affinity``”h]”j)�”}”(hjù?h]”hŒirq_set_vcpu_affinity”…”�”}”(hjû?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj÷?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mìhjó?ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ.optional to target a vCPU in a virtual machine”h]”hŒ.optional to target a vCPU in a virtual machine”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j@h´Mìhj@ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjó?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j@h´Mìhj<9ubj•)�”}”(hŒ:``ipi_send_single`` send a single IPI to destination cpus ”h]”(j›)�”}”(hŒ``ipi_send_single``”h]”j)�”}”(hj2@h]”hŒipi_send_single”…”�”}”(hj4@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj0@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Míhj,@ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ%send a single IPI to destination cpus”h]”hŒ%send a single IPI to destination cpus”…”�”}”(hjK@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jG@h´MíhjH@ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj,@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jG@h´Míhj<9ubj•)�”}”(hŒ=``ipi_send_mask`` send an IPI to destination cpus in cpumask ”h]”(j›)�”}”(hŒ``ipi_send_mask``”h]”j)�”}”(hjk@h]”hŒ ipi_send_mask”…”�”}”(hjm@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhji@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mîhje@ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ*send an IPI to destination cpus in cpumask”h]”hŒ*send an IPI to destination cpus in cpumask”…”�”}”(hj„@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j€@h´Mîhj�@ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hje@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j€@h´Mîhj<9ubj•)�”}”(hŒH``irq_nmi_setup`` function called from core code before enabling an NMI ”h]”(j›)�”}”(hŒ``irq_nmi_setup``”h]”j)�”}”(hj¤@h]”hŒ irq_nmi_setup”…”�”}”(hj¦@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¢@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mïhjž@ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ5function called from core code before enabling an NMI”h]”hŒ5function called from core code before enabling an NMI”…”�”}”(hj½@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j¹@h´Mïhjº@ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjž@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j¹@h´Mïhj<9ubj•)�”}”(hŒK``irq_nmi_teardown`` function called from core code after disabling an NMI ”h]”(j›)�”}”(hŒ``irq_nmi_teardown``”h]”j)�”}”(hjÝ@h]”hŒirq_nmi_teardown”…”�”}”(hjß@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÛ@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mðhj×@ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ5function called from core code after disabling an NMI”h]”hŒ5function called from core code after disabling an NMI”…”�”}”(hjö@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jò@h´Mðhjó@ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj×@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jò@h´Mðhj<9ubj•)�”}”(hŒQ``irq_force_complete_move`` optional function to force complete pending irq move ”h]”(j›)�”}”(hŒ``irq_force_complete_move``”h]”j)�”}”(hjAh]”hŒirq_force_complete_move”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjAubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MñhjAubjµ)�”}”(hhh]”jƒ)�”}”(hŒ4optional function to force complete pending irq move”h]”hŒ4optional function to force complete pending irq move”…”�”}”(hj/Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j+Ah´Mñhj,Aubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjAubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j+Ah´Mñhj<9ubj•)�”}”(hŒ``flags`` chip specific flags”h]”(j›)�”}”(hŒ ``flags``”h]”j)�”}”(hjOAh]”hŒflags”…”�”}”(hjQAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjMAubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MñhjIAubjµ)�”}”(hhh]”jƒ)�”}”(hŒchip specific flags”h]”hŒchip specific flags”…”�”}”(hjhAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MòhjeAubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjIAubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jdAh´Mñhj<9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjô8ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj?3h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_chip_regs (C struct)”Œc.irq_chip_regs”hNt”auh1j@hj?3h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ irq_chip_regs”h]”j])�”}”(hŒstruct irq_chip_regs”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj©Ah²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj¥Ah²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Møubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj·Ah²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¥Ah²hh³j¶Ah´Møubj†)�”}”(hŒ irq_chip_regs”h]”jŒ)�”}”(hj£Ah]”hŒ irq_chip_regs”…”�”}”(hjÉAh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÅAubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj¥Ah²hh³j¶Ah´Møubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj¡Ah²hh³j¶Ah´Møubah}”(h]”jœAah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j¶Ah´MøhjžAh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ#register offsets for struct irq_gci”h]”hŒ#register offsets for struct irq_gci”…”�”}”(hjëAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MÝhjèAh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjžAh²hh³j¶Ah´Møubeh}”(h]”h ]”(j_ Œstruct”eh"]”h$]”h&]”jij_ jjjBjkjBjl‰jm‰jn‰uh1jQh²hhj?3h³Nh´Nubjp)�”}”(hX9**Definition**:: struct irq_chip_regs { unsigned long enable; unsigned long disable; unsigned long mask; unsigned long ack; unsigned long eoi; unsigned long type; }; **Members** ``enable`` Enable register offset to reg_base ``disable`` Disable register offset to reg_base ``mask`` Mask register offset to reg_base ``ack`` Ack register offset to reg_base ``eoi`` Eoi register offset to reg_base ``type`` Type configuration register offset to reg_base”h]”(jƒ)�”}”(hŒ**Definition**::”h]”(jz)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj BubhŒ:”…”�”}”(hj Bh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MáhjBubjå )�”}”(hŒèstruct irq_chip_regs { unsigned long enable; unsigned long disable; unsigned long mask; unsigned long ack; unsigned long eoi; unsigned long type; };”h]”hŒèstruct irq_chip_regs { unsigned long enable; unsigned long disable; unsigned long mask; unsigned long ack; unsigned long eoi; unsigned long type; };”…”�”}”hj(Bsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jä h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MãhjBubjƒ)�”}”(hŒ **Members**”h]”jz)�”}”(hj9Bh]”hŒMembers”…”�”}”(hj;Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj7Bubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MìhjBubj�)�”}”(hhh]”(j•)�”}”(hŒ.``enable`` Enable register offset to reg_base ”h]”(j›)�”}”(hŒ ``enable``”h]”j)�”}”(hjXBh]”hŒenable”…”�”}”(hjZBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjVBubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MßhjRBubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Enable register offset to reg_base”h]”hŒ"Enable register offset to reg_base”…”�”}”(hjqBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jmBh´MßhjnBubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjRBubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jmBh´MßhjOBubj•)�”}”(hŒ0``disable`` Disable register offset to reg_base ”h]”(j›)�”}”(hŒ ``disable``”h]”j)�”}”(hj‘Bh]”hŒdisable”…”�”}”(hj“Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj�Bubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Màhj‹Bubjµ)�”}”(hhh]”jƒ)�”}”(hŒ#Disable register offset to reg_base”h]”hŒ#Disable register offset to reg_base”…”�”}”(hjªBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j¦Bh´Màhj§Bubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj‹Bubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j¦Bh´MàhjOBubj•)�”}”(hŒ*``mask`` Mask register offset to reg_base ”h]”(j›)�”}”(hŒ``mask``”h]”j)�”}”(hjÊBh]”hŒmask”…”�”}”(hjÌBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÈBubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MáhjÄBubjµ)�”}”(hhh]”jƒ)�”}”(hŒ Mask register offset to reg_base”h]”hŒ Mask register offset to reg_base”…”�”}”(hjãBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jßBh´MáhjàBubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÄBubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jßBh´MáhjOBubj•)�”}”(hŒ(``ack`` Ack register offset to reg_base ”h]”(j›)�”}”(hŒ``ack``”h]”j)�”}”(hjCh]”hŒack”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjCubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MâhjýBubjµ)�”}”(hhh]”jƒ)�”}”(hŒAck register offset to reg_base”h]”hŒAck register offset to reg_base”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jCh´MâhjCubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjýBubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jCh´MâhjOBubj•)�”}”(hŒ(``eoi`` Eoi register offset to reg_base ”h]”(j›)�”}”(hŒ``eoi``”h]”j)�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj:Cubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mãhj6Cubjµ)�”}”(hhh]”jƒ)�”}”(hŒEoi register offset to reg_base”h]”hŒEoi register offset to reg_base”…”�”}”(hjUCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jQCh´MãhjRCubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj6Cubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jQCh´MãhjOBubj•)�”}”(hŒ7``type`` Type configuration register offset to reg_base”h]”(j›)�”}”(hŒ``type``”h]”j)�”}”(hjuCh]”hŒtype”…”�”}”(hjwCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjsCubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MãhjoCubjµ)�”}”(hhh]”jƒ)�”}”(hŒ.Type configuration register offset to reg_base”h]”hŒ.Type configuration register offset to reg_base”…”�”}”(hjŽCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mähj‹Cubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjoCubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jŠCh´MãhjOBubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjBubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj?3h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_chip_type (C struct)”Œc.irq_chip_type”hNt”auh1j@hj?3h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ irq_chip_type”h]”j])�”}”(hŒstruct irq_chip_type”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjÏCh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjËCh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mêubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÝCh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjËCh²hh³jÜCh´Mêubj†)�”}”(hŒ irq_chip_type”h]”jŒ)�”}”(hjÉCh]”hŒ irq_chip_type”…”�”}”(hjïCh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjëCubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjËCh²hh³jÜCh´Mêubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjÇCh²hh³jÜCh´Mêubah}”(h]”jÂCah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jÜCh´MêhjÄCh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ/Generic interrupt chip instance for a flow type”h]”hŒ/Generic interrupt chip instance for a flow type”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MïhjDh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjÄCh²hh³jÜCh´Mêubeh}”(h]”h ]”(j_ Œstruct”eh"]”h$]”h&]”jij_ jjj)Djkj)Djl‰jm‰jn‰uh1jQh²hhj?3h³Nh´Nubjp)�”}”(hX.**Definition**:: struct irq_chip_type { struct irq_chip chip; struct irq_chip_regs regs; irq_flow_handler_t handler; u32 type; u32 mask_cache_priv; u32 *mask_cache; }; **Members** ``chip`` The real interrupt chip which provides the callbacks ``regs`` Register offsets for this chip ``handler`` Flow handler associated with this chip ``type`` Chip can handle these flow types ``mask_cache_priv`` Cached mask register private to the chip type ``mask_cache`` Pointer to cached mask register”h]”(jƒ)�”}”(hŒ**Definition**::”h]”(jz)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj5Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj1DubhŒ:”…”�”}”(hj1Dh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Móhj-Dubjå )�”}”(hŒ¹struct irq_chip_type { struct irq_chip chip; struct irq_chip_regs regs; irq_flow_handler_t handler; u32 type; u32 mask_cache_priv; u32 *mask_cache; };”h]”hŒ¹struct irq_chip_type { struct irq_chip chip; struct irq_chip_regs regs; irq_flow_handler_t handler; u32 type; u32 mask_cache_priv; u32 *mask_cache; };”…”�”}”hjNDsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jä h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mõhj-Dubjƒ)�”}”(hŒ **Members**”h]”jz)�”}”(hj_Dh]”hŒMembers”…”�”}”(hjaDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj]Dubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mþhj-Dubj�)�”}”(hhh]”(j•)�”}”(hŒ>``chip`` The real interrupt chip which provides the callbacks ”h]”(j›)�”}”(hŒ``chip``”h]”j)�”}”(hj~Dh]”hŒchip”…”�”}”(hj€Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj|Dubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MñhjxDubjµ)�”}”(hhh]”jƒ)�”}”(hŒ4The real interrupt chip which provides the callbacks”h]”hŒ4The real interrupt chip which provides the callbacks”…”�”}”(hj—Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j“Dh´Mñhj”Dubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjxDubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j“Dh´MñhjuDubj•)�”}”(hŒ(``regs`` Register offsets for this chip ”h]”(j›)�”}”(hŒ``regs``”h]”j)�”}”(hj·Dh]”hŒregs”…”�”}”(hj¹Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjµDubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mòhj±Dubjµ)�”}”(hhh]”jƒ)�”}”(hŒRegister offsets for this chip”h]”hŒRegister offsets for this chip”…”�”}”(hjÐDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÌDh´MòhjÍDubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj±Dubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÌDh´MòhjuDubj•)�”}”(hŒ3``handler`` Flow handler associated with this chip ”h]”(j›)�”}”(hŒ ``handler``”h]”j)�”}”(hjðDh]”hŒhandler”…”�”}”(hjòDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjîDubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MóhjêDubjµ)�”}”(hhh]”jƒ)�”}”(hŒ&Flow handler associated with this chip”h]”hŒ&Flow handler associated with this chip”…”�”}”(hj Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jEh´MóhjEubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjêDubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jEh´MóhjuDubj•)�”}”(hŒ*``type`` Chip can handle these flow types ”h]”(j›)�”}”(hŒ``type``”h]”j)�”}”(hj)Eh]”hŒtype”…”�”}”(hj+Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj'Eubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Môhj#Eubjµ)�”}”(hhh]”jƒ)�”}”(hŒ Chip can handle these flow types”h]”hŒ Chip can handle these flow types”…”�”}”(hjBEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j>Eh´Môhj?Eubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj#Eubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j>Eh´MôhjuDubj•)�”}”(hŒB``mask_cache_priv`` Cached mask register private to the chip type ”h]”(j›)�”}”(hŒ``mask_cache_priv``”h]”j)�”}”(hjbEh]”hŒmask_cache_priv”…”�”}”(hjdEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj`Eubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mõhj\Eubjµ)�”}”(hhh]”jƒ)�”}”(hŒ-Cached mask register private to the chip type”h]”hŒ-Cached mask register private to the chip type”…”�”}”(hj{Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jwEh´MõhjxEubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj\Eubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jwEh´MõhjuDubj•)�”}”(hŒ.``mask_cache`` Pointer to cached mask register”h]”(j›)�”}”(hŒ``mask_cache``”h]”j)�”}”(hj›Eh]”hŒ mask_cache”…”�”}”(hj�Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj™Eubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mõhj•Eubjµ)�”}”(hhh]”jƒ)�”}”(hŒPointer to cached mask register”h]”hŒPointer to cached mask register”…”�”}”(hj´Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Möhj±Eubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj•Eubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j°Eh´MõhjuDubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj-Dubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj?3h²hh³Nh´Nubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjÞEh]”hŒ Description”…”�”}”(hjàEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÜEubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mùhj?3h²hubjƒ)�”}”(hŒ’A irq_generic_chip can have several instances of irq_chip_type when it requires different functions and register offsets for different flow types.”h]”hŒ’A irq_generic_chip can have several instances of irq_chip_type when it requires different functions and register offsets for different flow types.”…”�”}”(hjôEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Möhj?3h²hubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_chip_generic (C struct)”Œc.irq_chip_generic”hNt”auh1j@hj?3h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒirq_chip_generic”h]”j])�”}”(hŒstruct irq_chip_generic”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjFh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mýubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj*Fh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjFh²hh³j)Fh´Mýubj†)�”}”(hŒirq_chip_generic”h]”jŒ)�”}”(hjFh]”hŒirq_chip_generic”…”�”}”(hjIubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mhj:Iubjµ)�”}”(hhh]”jƒ)�”}”(hŒ7Number of available irq_chip_type instances (usually 1)”h]”hŒ7Number of available irq_chip_type instances (usually 1)”…”�”}”(hjYIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jUIh´MhjVIubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj:Iubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jUIh´MhjÂFubj•)�”}”(hŒ8``private`` Private data for non generic chip callbacks ”h]”(j›)�”}”(hŒ ``private``”h]”j)�”}”(hjyIh]”hŒprivate”…”�”}”(hj{Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjwIubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MhjsIubjµ)�”}”(hhh]”jƒ)�”}”(hŒ+Private data for non generic chip callbacks”h]”hŒ+Private data for non generic chip callbacks”…”�”}”(hj’Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jŽIh´Mhj�Iubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjsIubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jŽIh´MhjÂFubj•)�”}”(hŒ6``installed`` bitfield to denote installed interrupts ”h]”(j›)�”}”(hŒ ``installed``”h]”j)�”}”(hj²Ih]”hŒ installed”…”�”}”(hj´Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj°Iubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mhj¬Iubjµ)�”}”(hhh]”jƒ)�”}”(hŒ'bitfield to denote installed interrupts”h]”hŒ'bitfield to denote installed interrupts”…”�”}”(hjËIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÇIh´MhjÈIubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¬Iubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÇIh´MhjÂFubj•)�”}”(hŒ0``unused`` bitfield to denote unused interrupts ”h]”(j›)�”}”(hŒ ``unused``”h]”j)�”}”(hjëIh]”hŒunused”…”�”}”(hjíIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjéIubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MhjåIubjµ)�”}”(hhh]”jƒ)�”}”(hŒ$bitfield to denote unused interrupts”h]”hŒ$bitfield to denote unused interrupts”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jJh´MhjJubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjåIubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jJh´MhjÂFubj•)�”}”(hŒ``domain`` irq domain pointer ”h]”(j›)�”}”(hŒ ``domain``”h]”j)�”}”(hj$Jh]”hŒdomain”…”�”}”(hj&Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj"Jubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MhjJubjµ)�”}”(hhh]”jƒ)�”}”(hŒirq domain pointer”h]”hŒirq domain pointer”…”�”}”(hj=Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j9Jh´Mhj:Jubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjJubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j9Jh´MhjÂFubj•)�”}”(hŒ2``list`` List head for keeping track of instances ”h]”(j›)�”}”(hŒ``list``”h]”j)�”}”(hj]Jh]”hŒlist”…”�”}”(hj_Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj[Jubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MhjWJubjµ)�”}”(hhh]”jƒ)�”}”(hŒ(List head for keeping track of instances”h]”hŒ(List head for keeping track of instances”…”�”}”(hjvJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jrJh´MhjsJubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjWJubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jrJh´MhjÂFubj•)�”}”(hŒ0``chip_types`` Array of interrupt irq_chip_types”h]”(j›)�”}”(hŒ``chip_types``”h]”j)�”}”(hj–Jh]”hŒ chip_types”…”�”}”(hj˜Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj”Jubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mhj�Jubjµ)�”}”(hhh]”jƒ)�”}”(hŒ!Array of interrupt irq_chip_types”h]”hŒ!Array of interrupt irq_chip_types”…”�”}”(hj¯Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mhj¬Jubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj�Jubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j«Jh´MhjÂFubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjzFubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj?3h²hh³Nh´Nubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjÙJh]”hŒ Description”…”�”}”(hjÛJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj×Jubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mhj?3h²hubjƒ)�”}”(hX-Note, that irq_chip_generic can have multiple irq_chip_type implementations which can be associated to a particular irq line of an irq_chip_generic instance. That allows to share and protect state in an irq_chip_generic instance when we need to implement different flow mechanisms (level/edge) for it.”h]”hX-Note, that irq_chip_generic can have multiple irq_chip_type implementations which can be associated to a particular irq line of an irq_chip_generic instance. That allows to share and protect state in an irq_chip_generic instance when we need to implement different flow mechanisms (level/edge) for it.”…”�”}”(hjïJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mhj?3h²hubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_gc_flags (C enum)”Œc.irq_gc_flags”hNt”auh1j@hj?3h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ irq_gc_flags”h]”j])�”}”(hŒenum irq_gc_flags”h]”(j±)�”}”(hjÂ%h]”hŒenum”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjKh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´M%ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%Kh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjKh²hh³j$Kh´M%ubj†)�”}”(hŒ irq_gc_flags”h]”jŒ)�”}”(hjKh]”hŒ irq_gc_flags”…”�”}”(hj7Kh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj3Kubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjKh²hh³j$Kh´M%ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjKh²hh³j$Kh´M%ubah}”(h]”j Kah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j$Kh´M%hj Kh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ*Initialization flags for generic irq chips”h]”hŒ*Initialization flags for generic irq chips”…”�”}”(hjYKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´M9hjVKh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj Kh²hh³j$Kh´M%ubeh}”(h]”h ]”(j_ Œenum”eh"]”h$]”h&]”jij_ jjjqKjkjqKjl‰jm‰jn‰uh1jQh²hhj?3h³Nh´Nubjp)�”}”(hXÀ**Constants** ``IRQ_GC_INIT_MASK_CACHE`` Initialize the mask_cache by reading mask reg ``IRQ_GC_INIT_NESTED_LOCK`` Set the lock class of the irqs to nested for irq chips which need to call irq_set_wake() on the parent irq. Usually GPIO implementations ``IRQ_GC_MASK_CACHE_PER_TYPE`` Mask cache is chip type private ``IRQ_GC_NO_MASK`` Do not calculate irq_data->mask ``IRQ_GC_BE_IO`` Use big-endian register accesses (default: LE)”h]”(jƒ)�”}”(hŒ **Constants**”h]”jz)�”}”(hj{Kh]”hŒ Constants”…”�”}”(hj}Kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjyKubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´M=hjuKubj�)�”}”(hhh]”(j•)�”}”(hŒI``IRQ_GC_INIT_MASK_CACHE`` Initialize the mask_cache by reading mask reg ”h]”(j›)�”}”(hŒ``IRQ_GC_INIT_MASK_CACHE``”h]”j)�”}”(hjšKh]”hŒIRQ_GC_INIT_MASK_CACHE”…”�”}”(hjœKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj˜Kubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´M@hj”Kubjµ)�”}”(hhh]”jƒ)�”}”(hŒ-Initialize the mask_cache by reading mask reg”h]”hŒ-Initialize the mask_cache by reading mask reg”…”�”}”(hj³Kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j¯Kh´M@hj°Kubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj”Kubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j¯Kh´M@hj‘Kubj•)�”}”(hŒ¥``IRQ_GC_INIT_NESTED_LOCK`` Set the lock class of the irqs to nested for irq chips which need to call irq_set_wake() on the parent irq. Usually GPIO implementations ”h]”(j›)�”}”(hŒ``IRQ_GC_INIT_NESTED_LOCK``”h]”j)�”}”(hjÓKh]”hŒIRQ_GC_INIT_NESTED_LOCK”…”�”}”(hjÕKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÑKubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MEhjÍKubjµ)�”}”(hhh]”jƒ)�”}”(hŒˆSet the lock class of the irqs to nested for irq chips which need to call irq_set_wake() on the parent irq. Usually GPIO implementations”h]”hŒˆSet the lock class of the irqs to nested for irq chips which need to call irq_set_wake() on the parent irq. Usually GPIO implementations”…”�”}”(hjìKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MChjéKubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÍKubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jèKh´MEhj‘Kubj•)�”}”(hŒ?``IRQ_GC_MASK_CACHE_PER_TYPE`` Mask cache is chip type private ”h]”(j›)�”}”(hŒ``IRQ_GC_MASK_CACHE_PER_TYPE``”h]”j)�”}”(hj Lh]”hŒIRQ_GC_MASK_CACHE_PER_TYPE”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj Lubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MHhjLubjµ)�”}”(hhh]”jƒ)�”}”(hŒMask cache is chip type private”h]”hŒMask cache is chip type private”…”�”}”(hj&Lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j"Lh´MHhj#Lubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjLubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j"Lh´MHhj‘Kubj•)�”}”(hŒ3``IRQ_GC_NO_MASK`` Do not calculate irq_data->mask ”h]”(j›)�”}”(hŒ``IRQ_GC_NO_MASK``”h]”j)�”}”(hjFLh]”hŒIRQ_GC_NO_MASK”…”�”}”(hjHLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjDLubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MKhj@Lubjµ)�”}”(hhh]”jƒ)�”}”(hŒDo not calculate irq_data->mask”h]”hŒDo not calculate irq_data->mask”…”�”}”(hj_Lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j[Lh´MKhj\Lubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj@Lubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j[Lh´MKhj‘Kubj•)�”}”(hŒ?``IRQ_GC_BE_IO`` Use big-endian register accesses (default: LE)”h]”(j›)�”}”(hŒ``IRQ_GC_BE_IO``”h]”j)�”}”(hjLh]”hŒ IRQ_GC_BE_IO”…”�”}”(hj�Lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj}Lubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MMhjyLubjµ)�”}”(hhh]”jƒ)�”}”(hŒ.Use big-endian register accesses (default: LE)”h]”hŒ.Use big-endian register accesses (default: LE)”…”�”}”(hj˜Lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MNhj•Lubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjyLubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j”Lh´MMhj‘Kubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjuKubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj?3h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ'irq_domain_chip_generic_info (C struct)”Œc.irq_domain_chip_generic_info”hNt”auh1j@hj?3h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒirq_domain_chip_generic_info”h]”j])�”}”(hŒ#struct irq_domain_chip_generic_info”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjÙLh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjÕLh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MSubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjçLh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÕLh²hh³jæLh´MSubj†)�”}”(hŒirq_domain_chip_generic_info”h]”jŒ)�”}”(hjÓLh]”hŒirq_domain_chip_generic_info”…”�”}”(hjùLh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjõLubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjÕLh²hh³jæLh´MSubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjÑLh²hh³jæLh´MSubah}”(h]”jÌLah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jæLh´MShjÎLh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ"Generic chip information structure”h]”hŒ"Generic chip information structure”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´M_hjMh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjÎLh²hh³jæLh´MSubeh}”(h]”h ]”(j_ Œstruct”eh"]”h$]”h&]”jij_ jjj3Mjkj3Mjl‰jm‰jn‰uh1jQh²h•hj?3h³Nh´Nubjp)�”}”(hXn**Definition**:: struct irq_domain_chip_generic_info { const char *name; irq_flow_handler_t handler; unsigned int irqs_per_chip; unsigned int num_ct; unsigned int irq_flags_to_clear; unsigned int irq_flags_to_set; enum irq_gc_flags gc_flags; int (*init)(struct irq_chip_generic *gc); void (*exit)(struct irq_chip_generic *gc); }; **Members** ``name`` Name of the generic interrupt chip ``handler`` Interrupt handler used by the generic interrupt chip ``irqs_per_chip`` Number of interrupts each chip handles (max 32) ``num_ct`` Number of irq_chip_type instances associated with each chip ``irq_flags_to_clear`` IRQ_* bits to clear in the mapping function ``irq_flags_to_set`` IRQ_* bits to set in the mapping function ``gc_flags`` Generic chip specific setup flags ``init`` Function called on each chip when they are created. Allow to do some additional chip initialisation. ``exit`` Function called on each chip when they are destroyed. Allow to do some chip cleanup operation.”h]”(jƒ)�”}”(hŒ**Definition**::”h]”(jz)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj?Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj;MubhŒ:”…”�”}”(hj;Mh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mchj7Mubjå )�”}”(hX›struct irq_domain_chip_generic_info { const char *name; irq_flow_handler_t handler; unsigned int irqs_per_chip; unsigned int num_ct; unsigned int irq_flags_to_clear; unsigned int irq_flags_to_set; enum irq_gc_flags gc_flags; int (*init)(struct irq_chip_generic *gc); void (*exit)(struct irq_chip_generic *gc); };”h]”hX›struct irq_domain_chip_generic_info { const char *name; irq_flow_handler_t handler; unsigned int irqs_per_chip; unsigned int num_ct; unsigned int irq_flags_to_clear; unsigned int irq_flags_to_set; enum irq_gc_flags gc_flags; int (*init)(struct irq_chip_generic *gc); void (*exit)(struct irq_chip_generic *gc); };”…”�”}”hjXMsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jä h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mehj7Mubjƒ)�”}”(hŒ **Members**”h]”jz)�”}”(hjiMh]”hŒMembers”…”�”}”(hjkMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjgMubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mqhj7Mubj�)�”}”(hhh]”(j•)�”}”(hŒ,``name`` Name of the generic interrupt chip ”h]”(j›)�”}”(hŒ``name``”h]”j)�”}”(hjˆMh]”hŒname”…”�”}”(hjŠMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj†Mubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mahj‚Mubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Name of the generic interrupt chip”h]”hŒ"Name of the generic interrupt chip”…”�”}”(hj¡Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j�Mh´MahjžMubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj‚Mubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j�Mh´MahjMubj•)�”}”(hŒA``handler`` Interrupt handler used by the generic interrupt chip ”h]”(j›)�”}”(hŒ ``handler``”h]”j)�”}”(hjÁMh]”hŒhandler”…”�”}”(hjÃMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¿Mubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mbhj»Mubjµ)�”}”(hhh]”jƒ)�”}”(hŒ4Interrupt handler used by the generic interrupt chip”h]”hŒ4Interrupt handler used by the generic interrupt chip”…”�”}”(hjÚMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÖMh´Mbhj×Mubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj»Mubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÖMh´MbhjMubj•)�”}”(hŒB``irqs_per_chip`` Number of interrupts each chip handles (max 32) ”h]”(j›)�”}”(hŒ``irqs_per_chip``”h]”j)�”}”(hjúMh]”hŒ irqs_per_chip”…”�”}”(hjüMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjøMubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MchjôMubjµ)�”}”(hhh]”jƒ)�”}”(hŒ/Number of interrupts each chip handles (max 32)”h]”hŒ/Number of interrupts each chip handles (max 32)”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jNh´MchjNubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjôMubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jNh´MchjMubj•)�”}”(hŒG``num_ct`` Number of irq_chip_type instances associated with each chip ”h]”(j›)�”}”(hŒ ``num_ct``”h]”j)�”}”(hj3Nh]”hŒnum_ct”…”�”}”(hj5Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj1Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mehj-Nubjµ)�”}”(hhh]”jƒ)�”}”(hŒ;Number of irq_chip_type instances associated with each chip”h]”hŒ;Number of irq_chip_type instances associated with each chip”…”�”}”(hjLNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MdhjINubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj-Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jHNh´MehjMubj•)�”}”(hŒC``irq_flags_to_clear`` IRQ_* bits to clear in the mapping function ”h]”(j›)�”}”(hŒ``irq_flags_to_clear``”h]”j)�”}”(hjmNh]”hŒirq_flags_to_clear”…”�”}”(hjoNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjkNubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MfhjgNubjµ)�”}”(hhh]”jƒ)�”}”(hŒ+IRQ_* bits to clear in the mapping function”h]”hŒ+IRQ_* bits to clear in the mapping function”…”�”}”(hj†Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j‚Nh´MfhjƒNubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjgNubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j‚Nh´MfhjMubj•)�”}”(hŒ?``irq_flags_to_set`` IRQ_* bits to set in the mapping function ”h]”(j›)�”}”(hŒ``irq_flags_to_set``”h]”j)�”}”(hj¦Nh]”hŒirq_flags_to_set”…”�”}”(hj¨Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¤Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mghj Nubjµ)�”}”(hhh]”jƒ)�”}”(hŒ)IRQ_* bits to set in the mapping function”h]”hŒ)IRQ_* bits to set in the mapping function”…”�”}”(hj¿Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j»Nh´Mghj¼Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j»Nh´MghjMubj•)�”}”(hŒ/``gc_flags`` Generic chip specific setup flags ”h]”(j›)�”}”(hŒ ``gc_flags``”h]”j)�”}”(hjßNh]”hŒgc_flags”…”�”}”(hjáNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÝNubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MhhjÙNubjµ)�”}”(hhh]”jƒ)�”}”(hŒ!Generic chip specific setup flags”h]”hŒ!Generic chip specific setup flags”…”�”}”(hjøNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jôNh´MhhjõNubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÙNubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jôNh´MhhjMubj•)�”}”(hŒn``init`` Function called on each chip when they are created. Allow to do some additional chip initialisation. ”h]”(j›)�”}”(hŒ``init``”h]”j)�”}”(hjOh]”hŒinit”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjOubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MjhjOubjµ)�”}”(hhh]”jƒ)�”}”(hŒdFunction called on each chip when they are created. Allow to do some additional chip initialisation.”h]”hŒdFunction called on each chip when they are created. Allow to do some additional chip initialisation.”…”�”}”(hj1Oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´Mihj.Oubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjOubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j-Oh´MjhjMubj•)�”}”(hŒg``exit`` Function called on each chip when they are destroyed. Allow to do some chip cleanup operation.”h]”(j›)�”}”(hŒ``exit``”h]”j)�”}”(hjROh]”hŒexit”…”�”}”(hjTOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjPOubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:493: ./include/linux/irq.h”h´MkhjLOubjµ)�”}”(hhh]”jƒ)�”}”(hŒ^Function called on each chip when they are destroyed. Allow to do some chip cleanup operation.”h]”hŒ^Function called on each chip when they are destroyed. Allow to do some chip cleanup operation.”…”�”}”(hjkOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jgOh´MkhjhOubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjLOubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jgOh´MkhjMubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj7Mubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj?3h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirqaction (C struct)”Œ c.irqaction”hNt”auh1j@hj?3h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ irqaction”h]”j])�”}”(hŒstruct irqaction”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj«Oh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj§Oh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´Kubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¹Oh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj§Oh²hh³j¸Oh´Kubj†)�”}”(hŒ irqaction”h]”jŒ)�”}”(hj¥Oh]”hŒ irqaction”…”�”}”(hjËOh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÇOubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj§Oh²hh³j¸Oh´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj£Oh²hh³j¸Oh´Kubah}”(h]”jžOah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j¸Oh´Khj Oh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒper interrupt action descriptor”h]”hŒper interrupt action descriptor”…”�”}”(hjíOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´KkhjêOh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj Oh²hh³j¸Oh´Kubeh}”(h]”h ]”(j_ Œstruct”eh"]”h$]”h&]”jij_ jjjPjkjPjl‰jm‰jn‰uh1jQh²hhj?3h³Nh´Nubjp)�”}”(hX8**Definition**:: struct irqaction { irq_handler_t handler; union { void *dev_id; void __percpu *percpu_dev_id; }; const struct cpumask *affinity; struct irqaction *next; irq_handler_t thread_fn; struct task_struct *thread; struct irqaction *secondary; unsigned int irq; unsigned int flags; unsigned long thread_flags; unsigned long thread_mask; const char *name; struct proc_dir_entry *dir; }; **Members** ``handler`` interrupt handler function ``{unnamed_union}`` anonymous ``dev_id`` cookie to identify the device ``percpu_dev_id`` cookie to identify the device ``affinity`` CPUs this irqaction is allowed to run on ``next`` pointer to the next irqaction for shared interrupts ``thread_fn`` interrupt handler function for threaded interrupts ``thread`` thread pointer for threaded interrupts ``secondary`` pointer to secondary irqaction (force threading) ``irq`` interrupt number ``flags`` flags (see IRQF_* above) ``thread_flags`` flags related to **thread** ``thread_mask`` bitmask for keeping track of **thread** activity ``name`` name of the device ``dir`` pointer to the proc/irq/NN/name entry”h]”(jƒ)�”}”(hŒ**Definition**::”h]”(jz)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj PubhŒ:”…”�”}”(hj Ph²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´Kohj Pubjå )�”}”(hXstruct irqaction { irq_handler_t handler; union { void *dev_id; void __percpu *percpu_dev_id; }; const struct cpumask *affinity; struct irqaction *next; irq_handler_t thread_fn; struct task_struct *thread; struct irqaction *secondary; unsigned int irq; unsigned int flags; unsigned long thread_flags; unsigned long thread_mask; const char *name; struct proc_dir_entry *dir; };”h]”hXstruct irqaction { irq_handler_t handler; union { void *dev_id; void __percpu *percpu_dev_id; }; const struct cpumask *affinity; struct irqaction *next; irq_handler_t thread_fn; struct task_struct *thread; struct irqaction *secondary; unsigned int irq; unsigned int flags; unsigned long thread_flags; unsigned long thread_mask; const char *name; struct proc_dir_entry *dir; };”…”�”}”hj*Psbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jä h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´Kqhj Pubjƒ)�”}”(hŒ **Members**”h]”jz)�”}”(hj;Ph]”hŒMembers”…”�”}”(hj=Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj9Pubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´K„hj Pubj�)�”}”(hhh]”(j•)�”}”(hŒ'``handler`` interrupt handler function ”h]”(j›)�”}”(hŒ ``handler``”h]”j)�”}”(hjZPh]”hŒhandler”…”�”}”(hj\Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjXPubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´KmhjTPubjµ)�”}”(hhh]”jƒ)�”}”(hŒinterrupt handler function”h]”hŒinterrupt handler function”…”�”}”(hjsPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³joPh´KmhjpPubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjTPubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³joPh´KmhjQPubj•)�”}”(hŒ``{unnamed_union}`` anonymous ”h]”(j›)�”}”(hŒ``{unnamed_union}``”h]”j)�”}”(hj“Ph]”hŒ{unnamed_union}”…”�”}”(hj•Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‘Pubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´Khj�Pubjµ)�”}”(hhh]”jƒ)�”}”(hŒ anonymous”h]”hŒ anonymous”…”�”}”(hj¬Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j¨Ph´Khj©Pubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj�Pubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j¨Ph´KhjQPubj•)�”}”(hŒ)``dev_id`` cookie to identify the device ”h]”(j›)�”}”(hŒ ``dev_id``”h]”j)�”}”(hjÌPh]”hŒdev_id”…”�”}”(hjÎPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÊPubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´KohjÆPubjµ)�”}”(hhh]”jƒ)�”}”(hŒcookie to identify the device”h]”hŒcookie to identify the device”…”�”}”(hjåPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jáPh´KohjâPubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÆPubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jáPh´KohjQPubj•)�”}”(hŒ0``percpu_dev_id`` cookie to identify the device ”h]”(j›)�”}”(hŒ``percpu_dev_id``”h]”j)�”}”(hjQh]”hŒ percpu_dev_id”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjQubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´KphjÿPubjµ)�”}”(hhh]”jƒ)�”}”(hŒcookie to identify the device”h]”hŒcookie to identify the device”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jQh´KphjQubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÿPubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jQh´KphjQPubj•)�”}”(hŒ6``affinity`` CPUs this irqaction is allowed to run on ”h]”(j›)�”}”(hŒ ``affinity``”h]”j)�”}”(hj>Qh]”hŒaffinity”…”�”}”(hj@Qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjCallback for calculating the number and size of interrupt sets”h]”hŒ>Callback for calculating the number and size of interrupt sets”…”�”}”(hj2[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´M#hj/[ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j.[h´M$hjZubj•)�”}”(hŒc``priv`` Private data for usage by **calc_sets**, usually a pointer to driver/device specific data.”h]”(j›)�”}”(hŒ``priv``”h]”j)�”}”(hjS[h]”hŒpriv”…”�”}”(hjU[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjQ[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´M%hjM[ubjµ)�”}”(hhh]”jƒ)�”}”(hŒZPrivate data for usage by **calc_sets**, usually a pointer to driver/device specific data.”h]”(hŒPrivate data for usage by ”…”�”}”(hjl[h²hh³Nh´Nubjz)�”}”(hŒ **calc_sets**”h]”hŒ calc_sets”…”�”}”(hjt[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjl[ubhŒ3, usually a pointer to driver/device specific data.”…”�”}”(hjl[h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jh[h´M%hji[ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjM[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jh[h´M%hjZubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj½Yubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj?3h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_affinity_desc (C struct)”Œc.irq_affinity_desc”hNt”auh1j@hj?3h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒirq_affinity_desc”h]”j])�”}”(hŒstruct irq_affinity_desc”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj¾[h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjº[h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´M,ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌ[h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjº[h²hh³jË[h´M,ubj†)�”}”(hŒirq_affinity_desc”h]”jŒ)�”}”(hj¸[h]”hŒirq_affinity_desc”…”�”}”(hjÞ[h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÚ[ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjº[h²hh³jË[h´M,ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj¶[h²hh³jË[h´M,ubah}”(h]”j±[ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jË[h´M,hj³[h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒInterrupt affinity descriptor”h]”hŒInterrupt affinity descriptor”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´M1hjý[h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj³[h²hh³jË[h´M,ubeh}”(h]”h ]”(j_ Œstruct”eh"]”h$]”h&]”jij_ jjj\jkj\jl‰jm‰jn‰uh1jQh²hhj?3h³Nh´Nubjp)�”}”(hŒñ**Definition**:: struct irq_affinity_desc { struct cpumask mask; unsigned int is_managed : 1; }; **Members** ``mask`` cpumask to hold the affinity assignment ``is_managed`` 1 if the interrupt is managed internally”h]”(jƒ)�”}”(hŒ**Definition**::”h]”(jz)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj$\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj \ubhŒ:”…”�”}”(hj \h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´M5hj\ubjå )�”}”(hŒ[struct irq_affinity_desc { struct cpumask mask; unsigned int is_managed : 1; };”h]”hŒ[struct irq_affinity_desc { struct cpumask mask; unsigned int is_managed : 1; };”…”�”}”hj=\sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jä h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´M7hj\ubjƒ)�”}”(hŒ **Members**”h]”jz)�”}”(hjN\h]”hŒMembers”…”�”}”(hjP\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjL\ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´M<hj\ubj�)�”}”(hhh]”(j•)�”}”(hŒ1``mask`` cpumask to hold the affinity assignment ”h]”(j›)�”}”(hŒ``mask``”h]”j)�”}”(hjm\h]”hŒmask”…”�”}”(hjo\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjk\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´M3hjg\ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ'cpumask to hold the affinity assignment”h]”hŒ'cpumask to hold the affinity assignment”…”�”}”(hj†\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j‚\h´M3hjƒ\ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjg\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j‚\h´M3hjd\ubj•)�”}”(hŒ7``is_managed`` 1 if the interrupt is managed internally”h]”(j›)�”}”(hŒ``is_managed``”h]”j)�”}”(hj¦\h]”hŒ is_managed”…”�”}”(hj¨\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¤\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´M3hj \ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ(1 if the interrupt is managed internally”h]”hŒ(1 if the interrupt is managed internally”…”�”}”(hj¿\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´M4hj¼\ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj \ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j»\h´M3hjd\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj\ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj?3h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ%irq_update_affinity_hint (C function)”Œc.irq_update_affinity_hint”hNt”auh1j@hj?3h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒHint irq_update_affinity_hint (unsigned int irq, const struct cpumask *m)”h]”j])�”}”(hŒGint irq_update_affinity_hint(unsigned int irq, const struct cpumask *m)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjü\h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´MHubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjü\h²hh³j]h´MHubj†)�”}”(hŒirq_update_affinity_hint”h]”jŒ)�”}”(hŒirq_update_affinity_hint”h]”hŒirq_update_affinity_hint”…”�”}”(hj!]h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj]ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjü\h²hh³j]h´MHubj¥)�”}”(hŒ+(unsigned int irq, const struct cpumask *m)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj=]h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj9]ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjK]h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj9]ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjY]h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj9]ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjg]h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj9]ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hju]h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj9]ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj5]ubj«)�”}”(hŒconst struct cpumask *m”h]”(j±)�”}”(hj�h]”hŒconst”…”�”}”(hjŽ]h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjŠ]ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›]h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjŠ]ubj±)�”}”(hj´h]”hŒstruct”…”�”}”(hj©]h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjŠ]ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶]h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjŠ]ubh)�”}”(hhh]”jŒ)�”}”(hŒcpumask”h]”hŒcpumask”…”�”}”(hjÇ]h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÄ]ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jÉ]Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj#]sbŒc.irq_update_affinity_hint”†”asbuh1hhjŠ]ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjç]h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjŠ]ubj )�”}”(hj h]”hŒ*”…”�”}”(hjõ]h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjŠ]ubjŒ)�”}”(hŒm”h]”hŒm”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjŠ]ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj5]ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjü\h²hh³j]h´MHubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjø\h²hh³j]h´MHubah}”(h]”jó\ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j]h´MHhjõ\h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒUpdate the affinity hint”h]”hŒUpdate the affinity hint”…”�”}”(hj,^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´MHhj)^h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjõ\h²hh³j]h´MHubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjD^jkjD^jl‰jm‰jn‰uh1jQh²hhj?3h³Nh´Nubjp)�”}”(hŒâ**Parameters** ``unsigned int irq`` Interrupt to update ``const struct cpumask *m`` cpumask pointer (NULL to clear the hint) **Description** Updates the affinity hint, but does not change the affinity of the interrupt.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjN^h]”hŒ Parameters”…”�”}”(hjP^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjL^ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´MLhjH^ubj�)�”}”(hhh]”(j•)�”}”(hŒ)``unsigned int irq`` Interrupt to update ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjm^h]”hŒunsigned int irq”…”�”}”(hjo^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjk^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´MIhjg^ubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt to update”h]”hŒInterrupt to update”…”�”}”(hj†^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j‚^h´MIhjƒ^ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjg^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j‚^h´MIhjd^ubj•)�”}”(hŒE``const struct cpumask *m`` cpumask pointer (NULL to clear the hint) ”h]”(j›)�”}”(hŒ``const struct cpumask *m``”h]”j)�”}”(hj¦^h]”hŒconst struct cpumask *m”…”�”}”(hj¨^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¤^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´MJhj ^ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ(cpumask pointer (NULL to clear the hint)”h]”hŒ(cpumask pointer (NULL to clear the hint)”…”�”}”(hj¿^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j»^h´MJhj¼^ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj ^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j»^h´MJhjd^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjH^ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjá^h]”hŒ Description”…”�”}”(hjã^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjß^ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´MLhjH^ubjƒ)�”}”(hŒMUpdates the affinity hint, but does not change the affinity of the interrupt.”h]”hŒMUpdates the affinity hint, but does not change the affinity of the interrupt.”…”�”}”(hj÷^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´MKhjH^ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj?3h²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ&irq_set_affinity_and_hint (C function)”Œc.irq_set_affinity_and_hint”hNt”auh1j@hj?3h²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒIint irq_set_affinity_and_hint (unsigned int irq, const struct cpumask *m)”h]”j])�”}”(hŒHint irq_set_affinity_and_hint(unsigned int irq, const struct cpumask *m)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj&_h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj"_h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´MUubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5_h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj"_h²hh³j4_h´MUubj†)�”}”(hŒirq_set_affinity_and_hint”h]”jŒ)�”}”(hŒirq_set_affinity_and_hint”h]”hŒirq_set_affinity_and_hint”…”�”}”(hjG_h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjC_ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj"_h²hh³j4_h´MUubj¥)�”}”(hŒ+(unsigned int irq, const struct cpumask *m)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjc_h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj__ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjq_h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj__ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj__ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�_h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj__ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hj›_h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj__ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj[_ubj«)�”}”(hŒconst struct cpumask *m”h]”(j±)�”}”(hj�h]”hŒconst”…”�”}”(hj´_h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj°_ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁ_h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj°_ubj±)�”}”(hj´h]”hŒstruct”…”�”}”(hjÏ_h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj°_ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜ_h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj°_ubh)�”}”(hhh]”jŒ)�”}”(hŒcpumask”h]”hŒcpumask”…”�”}”(hjí_h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjê_ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jï_Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjI_sbŒc.irq_set_affinity_and_hint”†”asbuh1hhj°_ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj `h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj°_ubj )�”}”(hj h]”hŒ*”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj°_ubjŒ)�”}”(hj^h]”hŒm”…”�”}”(hj(`h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj°_ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj[_ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj"_h²hh³j4_h´MUubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj_h²hh³j4_h´MUubah}”(h]”j_ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j4_h´MUhj_h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒHUpdate the affinity hint and apply the provided cpumask to the interrupt”h]”hŒHUpdate the affinity hint and apply the provided cpumask to the interrupt”…”�”}”(hjQ`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´MUhjN`h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj_h²hh³j4_h´MUubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjji`jkji`jl‰jm‰jn‰uh1jQh²hhj?3h³Nh´Nubjp)�”}”(hŒø**Parameters** ``unsigned int irq`` Interrupt to update ``const struct cpumask *m`` cpumask pointer (NULL to clear the hint) **Description** Updates the affinity hint and if **m** is not NULL it applies it as the affinity of that interrupt.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjs`h]”hŒ Parameters”…”�”}”(hju`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjq`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´MYhjm`ubj�)�”}”(hhh]”(j•)�”}”(hŒ)``unsigned int irq`` Interrupt to update ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hj’`h]”hŒunsigned int irq”…”�”}”(hj”`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”u•h1jhj�`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´MWhjŒ`ubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt to update”h]”hŒInterrupt to update”…”�”}”(hj«`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j§`h´MWhj¨`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjŒ`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j§`h´MWhj‰`ubj•)�”}”(hŒE``const struct cpumask *m`` cpumask pointer (NULL to clear the hint) ”h]”(j›)�”}”(hŒ``const struct cpumask *m``”h]”j)�”}”(hjË`h]”hŒconst struct cpumask *m”…”�”}”(hjÍ`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÉ`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´MXhjÅ`ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ(cpumask pointer (NULL to clear the hint)”h]”hŒ(cpumask pointer (NULL to clear the hint)”…”�”}”(hjä`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jà`h´MXhjá`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÅ`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jà`h´MXhj‰`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjm`ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjah]”hŒ Description”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjaubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´MZhjm`ubjƒ)�”}”(hŒcUpdates the affinity hint and if **m** is not NULL it applies it as the affinity of that interrupt.”h]”(hŒ!Updates the affinity hint and if ”…”�”}”(hjah²hh³Nh´Nubjz)�”}”(hŒ**m**”h]”hŒm”…”�”}”(hj$ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjaubhŒ= is not NULL it applies it as the affinity of that interrupt.”…”�”}”(hjah²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:496: ./include/linux/interrupt.h”h´MYhjm`ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj?3h²hh³Nh´Nubeh}”(h]”Œ structures”ah ]”h"]”Œ structures”ah$]”h&]”uh1jLhjNh²hh³jah´M’ubjM)�”}”(hhh]”(jR)�”}”(hŒPublic Functions Provided”h]”hŒPublic Functions Provided”…”�”}”(hjOah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjLah²hh³jah´Mžubjƒ)�”}”(hŒeThis chapter contains the autogenerated documentation of the kernel API functions which are exported.”h]”hŒeThis chapter contains the autogenerated documentation of the kernel API functions which are exported.”…”�”}”(hj]ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´M hjLah²hubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ synchronize_hardirq (C function)”Œc.synchronize_hardirq”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ+bool synchronize_hardirq (unsigned int irq)”h]”j])�”}”(hŒ*bool synchronize_hardirq(unsigned int irq)”h]”(jc)�”}”(hŒbool”h]”hŒbool”…”�”}”(hj„ah²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj€ah²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´KUubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“ah²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj€ah²hh³j’ah´KUubj†)�”}”(hŒsynchronize_hardirq”h]”jŒ)�”}”(hŒsynchronize_hardirq”h]”hŒsynchronize_hardirq”…”�”}”(hj¥ah²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¡aubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj€ah²hh³j’ah´KUubj¥)�”}”(hŒ(unsigned int irq)”h]”j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjÁah²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj½aubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏah²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj½aubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjÝah²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj½aubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjëah²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj½aubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjùah²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj½aubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¹aubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj€ah²hh³j’ah´KUubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj|ah²hh³j’ah´KUubah}”(h]”jwaah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j’ah´KUhjyah²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ2wait for pending hard IRQ handlers (on other CPUs)”h]”hŒ2wait for pending hard IRQ handlers (on other CPUs)”…”�”}”(hj#bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´KUhj bh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjyah²hh³j’ah´KUubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj;bjkj;bjl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX!**Parameters** ``unsigned int irq`` interrupt number to wait for **Description** This function waits for any pending hard IRQ handlers for this interrupt to complete before returning. If you use this function while holding a resource the IRQ handler may need you will deadlock. It does not take associated threaded handlers into account. Do not use this for shutdown scenarios where you must be sure that all parts (hardirq and threaded handler) have completed. This function may be called - with care - from IRQ context. It does not check whether there is an interrupt in flight at the hardware level, but not serviced yet, as this might deadlock when called with interrupts disabled and the target CPU of the interrupt is the current CPU. **Return** false if a threaded handler is active.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjEbh]”hŒ Parameters”…”�”}”(hjGbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjCbubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´KYhj?bubj�)�”}”(hhh]”j•)�”}”(hŒ2``unsigned int irq`` interrupt number to wait for ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjdbh]”hŒunsigned int irq”…”�”}”(hjfbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjbbubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´KVhj^bubjµ)�”}”(hhh]”jƒ)�”}”(hŒinterrupt number to wait for”h]”hŒinterrupt number to wait for”…”�”}”(hj}bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jybh´KVhjzbubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj^bubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jybh´KVhj[bubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj?bubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjŸbh]”hŒ Description”…”�”}”(hj¡bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj�bubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´KXhj?bubjƒ)�”}”(hXThis function waits for any pending hard IRQ handlers for this interrupt to complete before returning. If you use this function while holding a resource the IRQ handler may need you will deadlock. It does not take associated threaded handlers into account.”h]”hXThis function waits for any pending hard IRQ handlers for this interrupt to complete before returning. If you use this function while holding a resource the IRQ handler may need you will deadlock. It does not take associated threaded handlers into account.”…”�”}”(hjµbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´KWhj?bubjƒ)�”}”(hŒ{Do not use this for shutdown scenarios where you must be sure that all parts (hardirq and threaded handler) have completed.”h]”hŒ{Do not use this for shutdown scenarios where you must be sure that all parts (hardirq and threaded handler) have completed.”…”�”}”(hjÄbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´K\hj?bubjƒ)�”}”(hŒ;This function may be called - with care - from IRQ context.”h]”hŒ;This function may be called - with care - from IRQ context.”…”�”}”(hjÓbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´K`hj?bubjƒ)�”}”(hŒÚIt does not check whether there is an interrupt in flight at the hardware level, but not serviced yet, as this might deadlock when called with interrupts disabled and the target CPU of the interrupt is the current CPU.”h]”hŒÚIt does not check whether there is an interrupt in flight at the hardware level, but not serviced yet, as this might deadlock when called with interrupts disabled and the target CPU of the interrupt is the current CPU.”…”�”}”(hjâbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Kbhj?bubjƒ)�”}”(hŒ **Return**”h]”jz)�”}”(hjóbh]”hŒReturn”…”�”}”(hjõbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjñbubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Kghj?bubjƒ)�”}”(hŒ&false if a threaded handler is active.”h]”hŒ&false if a threaded handler is active.”…”�”}”(hj ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´K`hj?bubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒsynchronize_irq (C function)”Œc.synchronize_irq”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ'void synchronize_irq (unsigned int irq)”h]”j])�”}”(hŒ&void synchronize_irq(unsigned int irq)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj8ch²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj4ch²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Kƒubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjGch²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj4ch²hh³jFch´Kƒubj†)�”}”(hŒsynchronize_irq”h]”jŒ)�”}”(hŒsynchronize_irq”h]”hŒsynchronize_irq”…”�”}”(hjYch²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjUcubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj4ch²hh³jFch´Kƒubj¥)�”}”(hŒ(unsigned int irq)”h]”j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjuch²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjqcubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjƒch²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjqcubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj‘ch²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjqcubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸch²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjqcubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hj­ch²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjqcubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjmcubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj4ch²hh³jFch´Kƒubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj0ch²hh³jFch´Kƒubah}”(h]”j+cah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jFch´Kƒhj-ch²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ-wait for pending IRQ handlers (on other CPUs)”h]”hŒ-wait for pending IRQ handlers (on other CPUs)”…”�”}”(hj×ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´KƒhjÔch²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj-ch²hh³jFch´Kƒubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjïcjkjïcjl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX **Parameters** ``unsigned int irq`` interrupt number to wait for **Description** This function waits for any pending IRQ handlers for this interrupt to complete before returning. If you use this function while holding a resource the IRQ handler may need you will deadlock. Can only be called from preemptible code as it might sleep when an interrupt thread is associated to **irq**. It optionally makes sure (when the irq chip supports that method) that the interrupt is not pending in any CPU and waiting for service.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjùch]”hŒ Parameters”…”�”}”(hjûch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj÷cubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´K‡hjócubj�)�”}”(hhh]”j•)�”}”(hŒ2``unsigned int irq`` interrupt number to wait for ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjdh]”hŒunsigned int irq”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjdubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´K„hjdubjµ)�”}”(hhh]”jƒ)�”}”(hŒinterrupt number to wait for”h]”hŒinterrupt number to wait for”…”�”}”(hj1dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j-dh´K„hj.dubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjdubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j-dh´K„hjdubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjócubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjSdh]”hŒ Description”…”�”}”(hjUdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjQdubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´K†hjócubjƒ)�”}”(hŒ¿This function waits for any pending IRQ handlers for this interrupt to complete before returning. If you use this function while holding a resource the IRQ handler may need you will deadlock.”h]”hŒ¿This function waits for any pending IRQ handlers for this interrupt to complete before returning. If you use this function while holding a resource the IRQ handler may need you will deadlock.”…”�”}”(hjidh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´K…hjócubjƒ)�”}”(hŒmCan only be called from preemptible code as it might sleep when an interrupt thread is associated to **irq**.”h]”(hŒeCan only be called from preemptible code as it might sleep when an interrupt thread is associated to ”…”�”}”(hjxdh²hh³Nh´Nubjz)�”}”(hŒ**irq**”h]”hŒirq”…”�”}”(hj€dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjxdubhŒ.”…”�”}”(hjxdh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´K‰hjócubjƒ)�”}”(hŒ‡It optionally makes sure (when the irq chip supports that method) that the interrupt is not pending in any CPU and waiting for service.”h]”hŒ‡It optionally makes sure (when the irq chip supports that method) that the interrupt is not pending in any CPU and waiting for service.”…”�”}”(hj™dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´KŒhjócubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ!irq_can_set_affinity (C function)”Œc.irq_can_set_affinity”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ+int irq_can_set_affinity (unsigned int irq)”h]”j])�”}”(hŒ*int irq_can_set_affinity(unsigned int irq)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjÈdh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÄdh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´K¦ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj×dh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÄdh²hh³jÖdh´K¦ubj†)�”}”(hŒirq_can_set_affinity”h]”jŒ)�”}”(hŒirq_can_set_affinity”h]”hŒirq_can_set_affinity”…”�”}”(hjédh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjådubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjÄdh²hh³jÖdh´K¦ubj¥)�”}”(hŒ(unsigned int irq)”h]”j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjeubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjeubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj!eh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjeubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/eh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjeubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hj=eh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjeubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjýdubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjÄdh²hh³jÖdh´K¦ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjÀdh²hh³jÖdh´K¦ubah}”(h]”j»dah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jÖdh´K¦hj½dh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ/Check if the affinity of a given irq can be set”h]”hŒ/Check if the affinity of a given irq can be set”…”�”}”(hjgeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´K¦hjdeh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj½dh²hh³jÖdh´K¦ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjejkjejl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒ9**Parameters** ``unsigned int irq`` Interrupt to check”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj‰eh]”hŒ Parameters”…”�”}”(hj‹eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj‡eubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Kªhjƒeubj�)�”}”(hhh]”j•)�”}”(hŒ'``unsigned int irq`` Interrupt to check”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hj¨eh]”hŒunsigned int irq”…”�”}”(hjªeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¦eubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´K¬hj¢eubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt to check”h]”hŒInterrupt to check”…”�”}”(hjÁeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´K§hj¾eubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¢eubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j½eh´K¬hjŸeubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjƒeubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ%irq_can_set_affinity_usr (C function)”Œc.irq_can_set_affinity_usr”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ0bool irq_can_set_affinity_usr (unsigned int irq)”h]”j])�”}”(hŒ/bool irq_can_set_affinity_usr(unsigned int irq)”h]”(jc)�”}”(hj†ah]”hŒbool”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjþeh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´K±ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjþeh²hh³jfh´K±ubj†)�”}”(hŒirq_can_set_affinity_usr”h]”jŒ)�”}”(hŒirq_can_set_affinity_usr”h]”hŒirq_can_set_affinity_usr”…”�”}”(hj"fh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjfubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjþeh²hh³jfh´K±ubj¥)�”}”(hŒ(unsigned int irq)”h]”j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj>fh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj:fubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjLfh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj:fubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjZfh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj:fubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhfh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj:fubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjvfh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj:fubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj6fubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjþeh²hh³jfh´K±ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjúeh²hh³jfh´K±ubah}”(h]”jõeah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jfh´K±hj÷eh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ5Check if affinity of a irq can be set from user space”h]”hŒ5Check if affinity of a irq can be set from user space”…”�”}”(hj fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´K±hj�fh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj÷eh²hh³jfh´K±ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj¸fjkj¸fjl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒ¥**Parameters** ``unsigned int irq`` Interrupt to check **Description** Like irq_can_set_affinity() above, but additionally checks for the AFFINITY_MANAGED flag.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÂfh]”hŒ Parameters”…”�”}”(hjÄfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÀfubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Kµhj¼fubj�)�”}”(hhh]”j•)�”}”(hŒ(``unsigned int irq`` Interrupt to check ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjáfh]”hŒunsigned int irq”…”�”}”(hjãfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjßfubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´K²hjÛfubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt to check”h]”hŒInterrupt to check”…”�”}”(hjúfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jöfh´K²hj÷fubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÛfubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jöfh´K²hjØfubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj¼fubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjgh]”hŒ Description”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjgubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´K´hj¼fubjƒ)�”}”(hŒYLike irq_can_set_affinity() above, but additionally checks for the AFFINITY_MANAGED flag.”h]”hŒYLike irq_can_set_affinity() above, but additionally checks for the AFFINITY_MANAGED flag.”…”�”}”(hj2gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´K³hj¼fubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ$irq_set_thread_affinity (C function)”Œc.irq_set_thread_affinity”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ4void irq_set_thread_affinity (struct irq_desc *desc)”h]”j])�”}”(hŒ3void irq_set_thread_affinity(struct irq_desc *desc)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjagh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj]gh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´KÀubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjpgh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj]gh²hh³jogh´KÀubj†)�”}”(hŒirq_set_thread_affinity”h]”jŒ)�”}”(hŒirq_set_thread_affinity”h]”hŒirq_set_thread_affinity”…”�”}”(hj‚gh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj~gubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj]gh²hh³jogh´KÀubj¥)�”}”(hŒ(struct irq_desc *desc)”h]”j«)�”}”(hŒstruct irq_desc *desc”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjžgh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjšgubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj«gh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjšgubh)�”}”(hhh]”jŒ)�”}”(hŒirq_desc”h]”hŒirq_desc”…”�”}”(hj¼gh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¹gubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j¾gŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj„gsbŒc.irq_set_thread_affinity”†”asbuh1hhjšgubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜgh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjšgubj )�”}”(hj h]”hŒ*”…”�”}”(hjêgh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjšgubjŒ)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hj÷gh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjšgubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj–gubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj]gh²hh³jogh´KÀubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjYgh²hh³jogh´KÀubah}”(h]”jTgah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jogh´KÀhjVgh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ%Notify irq threads to adjust affinity”h]”hŒ%Notify irq threads to adjust affinity”…”�”}”(hj!hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´KÀhjhh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjVgh²hh³jogh´KÀubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj9hjkj9hjl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX<**Parameters** ``struct irq_desc *desc`` irq descriptor which has affinity changed **Description** Just set IRQTF_AFFINITY and delegate the affinity setting to the interrupt thread itself. We can not call set_cpus_allowed_ptr() here as we hold desc->lock and this code can be called from hard interrupt context.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjChh]”hŒ Parameters”…”�”}”(hjEhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjAhubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´KÄhj=hubj�)�”}”(hhh]”j•)�”}”(hŒD``struct irq_desc *desc`` irq descriptor which has affinity changed ”h]”(j›)�”}”(hŒ``struct irq_desc *desc``”h]”j)�”}”(hjbhh]”hŒstruct irq_desc *desc”…”�”}”(hjdhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj`hubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´KÁhj\hubjµ)�”}”(hhh]”jƒ)�”}”(hŒ)irq descriptor which has affinity changed”h]”hŒ)irq descriptor which has affinity changed”…”�”}”(hj{hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jwhh´KÁhjxhubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj\hubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jwhh´KÁhjYhubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj=hubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj�hh]”hŒ Description”…”�”}”(hjŸhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj›hubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´KÃhj=hubjƒ)�”}”(hŒÔJust set IRQTF_AFFINITY and delegate the affinity setting to the interrupt thread itself. We can not call set_cpus_allowed_ptr() here as we hold desc->lock and this code can be called from hard interrupt context.”h]”hŒÔJust set IRQTF_AFFINITY and delegate the affinity setting to the interrupt thread itself. We can not call set_cpus_allowed_ptr() here as we hold desc->lock and this code can be called from hard interrupt context.”…”�”}”(hj³hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´KÂhj=hubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ.irq_affinity_schedule_notify_work (C function)”Œ#c.irq_affinity_schedule_notify_work”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ>void irq_affinity_schedule_notify_work (struct irq_desc *desc)”h]”j])�”}”(hŒ=void irq_affinity_schedule_notify_work(struct irq_desc *desc)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjâhh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÞhh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mkubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñhh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÞhh²hh³jðhh´Mkubj†)�”}”(hŒ!irq_affinity_schedule_notify_work”h]”jŒ)�”}”(hŒ!irq_affinity_schedule_notify_work”h]”hŒ!irq_affinity_schedule_notify_work”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÿhubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjÞhh²hh³jðhh´Mkubj¥)�”}”(hŒ(struct irq_desc *desc)”h]”j«)�”}”(hŒstruct irq_desc *desc”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjiubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,ih²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjiubh)�”}”(hhh]”jŒ)�”}”(hŒirq_desc”h]”hŒirq_desc”…”�”}”(hj=ih²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj:iubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j?iŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjisbŒ#c.irq_affinity_schedule_notify_work”†”asbuh1hhjiubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]ih²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjiubj )�”}”(hj h]”hŒ*”…”�”}”(hjkih²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjiubjŒ)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hjxih²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjiubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjiubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjÞhh²hh³jðhh´Mkubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjÚhh²hh³jðhh´Mkubah}”(h]”jÕhah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jðhh´Mkhj×hh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ-Schedule work to notify about affinity change”h]”hŒ-Schedule work to notify about affinity change”…”�”}”(hj¢ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MkhjŸih²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj×hh²hh³jðhh´Mkubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjºijkjºijl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒW**Parameters** ``struct irq_desc *desc`` Interrupt descriptor whose affinity changed”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÄih]”hŒ Parameters”…”�”}”(hjÆih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÂiubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mohj¾iubj�)�”}”(hhh]”j•)�”}”(hŒE``struct irq_desc *desc`` Interrupt descriptor whose affinity changed”h]”(j›)�”}”(hŒ``struct irq_desc *desc``”h]”j)�”}”(hjãih]”hŒstruct irq_desc *desc”…”�”}”(hjåih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjáiubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MqhjÝiubjµ)�”}”(hhh]”jƒ)�”}”(hŒ+Interrupt descriptor whose affinity changed”h]”hŒ+Interrupt descriptor whose affinity changed”…”�”}”(hjüih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mlhjùiubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÝiubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jøih´MqhjÚiubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj¾iubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ%irq_update_affinity_desc (C function)”Œc.irq_update_affinity_desc”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒSint irq_update_affinity_desc (unsigned int irq, struct irq_affinity_desc *affinity)”h]”j])�”}”(hŒRint irq_update_affinity_desc(unsigned int irq, struct irq_affinity_desc *affinity)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj=jh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj9jh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M–ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjLjh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj9jh²hh³jKjh´M–ubj†)�”}”(hŒirq_update_affinity_desc”h]”jŒ)�”}”(hŒirq_update_affinity_desc”h]”hŒirq_update_affinity_desc”…”�”}”(hj^jh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjZjubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj9jh²hh³jKjh´M–ubj¥)�”}”(hŒ6(unsigned int irq, struct irq_affinity_desc *affinity)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjzjh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjvjubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjˆjh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjvjubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj–jh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjvjubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤jh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjvjubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hj²jh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjvjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjrjubj«)�”}”(hŒ"struct irq_affinity_desc *affinity”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjËjh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjÇjubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØjh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÇjubh)�”}”(hhh]”jŒ)�”}”(hŒirq_affinity_desc”h]”hŒirq_affinity_desc”…”�”}”(hjéjh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjæjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jëjŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj`jsbŒc.irq_update_affinity_desc”†”asbuh1hhjÇjubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj kh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÇjubj )�”}”(hj h]”hŒ*”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÇjubjŒ)�”}”(hŒaffinity”h]”hŒaffinity”…”�”}”(hj$kh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÇjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjrjubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj9jh²hh³jKjh´M–ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj5jh²hh³jKjh´M–ubah}”(h]”j0jah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jKjh´M–hj2jh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ+Update affinity management for an interrupt”h]”hŒ+Update affinity management for an interrupt”…”�”}”(hjNkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M–hjKkh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj2jh²hh³jKjh´M–ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjfkjkjfkjl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hXÓ**Parameters** ``unsigned int irq`` The interrupt number to update ``struct irq_affinity_desc *affinity`` Pointer to the affinity descriptor **Description** This interface can be used to configure the affinity management of interrupts which have been allocated already. There are certain limitations on when it may be used - attempts to use it for when the kernel is configured for generic IRQ reservation mode (in config GENERIC_IRQ_RESERVATION_MODE) will fail, as it may conflict with managed/non-managed interrupt accounting. In addition, attempts to use it on an interrupt which is already started or which has already been configured as managed will also fail, as these mean invalid init state or double init.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjpkh]”hŒ Parameters”…”�”}”(hjrkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjnkubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mšhjjkubj�)�”}”(hhh]”(j•)�”}”(hŒ4``unsigned int irq`` The interrupt number to update ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hj�kh]”hŒunsigned int irq”…”�”}”(hj‘kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj�kubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M—hj‰kubjµ)�”}”(hhh]”jƒ)�”}”(hŒThe interrupt number to update”h]”hŒThe interrupt number to update”…”�”}”(hj¨kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j¤kh´M—hj¥kubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj‰kubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j¤kh´M—hj†kubj•)�”}”(hŒJ``struct irq_affinity_desc *affinity`` Pointer to the affinity descriptor ”h]”(j›)�”}”(hŒ&``struct irq_affinity_desc *affinity``”h]”j)�”}”(hjÈkh]”hŒ"struct irq_affinity_desc *affinity”…”�”}”(hjÊkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÆkubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M˜hjÂkubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Pointer to the affinity descriptor”h]”hŒ"Pointer to the affinity descriptor”…”�”}”(hjákh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÝkh´M˜hjÞkubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÂkubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÝkh´M˜hj†kubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjjkubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjlh]”hŒ Description”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjlubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mšhjjkubjƒ)�”}”(hŒpThis interface can be used to configure the affinity management of interrupts which have been allocated already.”h]”hŒpThis interface can be used to configure the affinity management of interrupts which have been allocated already.”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M™hjjkubjƒ)�”}”(hX¼There are certain limitations on when it may be used - attempts to use it for when the kernel is configured for generic IRQ reservation mode (in config GENERIC_IRQ_RESERVATION_MODE) will fail, as it may conflict with managed/non-managed interrupt accounting. In addition, attempts to use it on an interrupt which is already started or which has already been configured as managed will also fail, as these mean invalid init state or double init.”h]”hX¼There are certain limitations on when it may be used - attempts to use it for when the kernel is configured for generic IRQ reservation mode (in config GENERIC_IRQ_RESERVATION_MODE) will fail, as it may conflict with managed/non-managed interrupt accounting. In addition, attempts to use it on an interrupt which is already started or which has already been configured as managed will also fail, as these mean invalid init state or double init.”…”�”}”(hj(lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mœhjjkubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_set_affinity (C function)”Œc.irq_set_affinity”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒFint irq_set_affinity (unsigned int irq, const struct cpumask *cpumask)”h]”j])�”}”(hŒEint irq_set_affinity(unsigned int irq, const struct cpumask *cpumask)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjWlh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjSlh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÜubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjflh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjSlh²hh³jelh´MÜubj†)�”}”(hŒirq_set_affinity”h]”jŒ)�”}”(hŒirq_set_affinity”h]”hŒirq_set_affinity”…”�”}”(hjxlh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjtlubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjSlh²hh³jelh´MÜubj¥)�”}”(hŒ1(unsigned int irq, const struct cpumask *cpumask)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj”lh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj�lubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¢lh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj�lubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj°lh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj�lubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¾lh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj�lubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjÌlh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj�lubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjŒlubj«)�”}”(hŒconst struct cpumask *cpumask”h]”(j±)�”}”(hj�h]”hŒconst”…”�”}”(hjålh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjálubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjòlh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjálubj±)�”}”(hj´h]”hŒstruct”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjálubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj mh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjálubh)�”}”(hhh]”jŒ)�”}”(hŒcpumask”h]”hŒcpumask”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjmubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j mŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjzlsbŒc.irq_set_affinity”†”asbuh1hhjálubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj>mh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjálubj )�”}”(hj h]”hŒ*”…”�”}”(hjLmh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjálubjŒ)�”}”(hŒcpumask”h]”hŒcpumask”…”�”}”(hjYmh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjálubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjŒlubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjSlh²hh³jelh´MÜubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjOlh²hh³jelh´MÜubah}”(h]”jJlah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jelh´MÜhjLlh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ#Set the irq affinity of a given irq”h]”hŒ#Set the irq affinity of a given irq”…”�”}”(hjƒmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÜhj€mh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjLlh²hh³jelh´MÜubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj›mjkj›mjl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒ¯**Parameters** ``unsigned int irq`` Interrupt to set affinity ``const struct cpumask *cpumask`` cpumask **Description** Fails if cpumask does not contain an online CPU”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj¥mh]”hŒ Parameters”…”�”}”(hj§mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj£mubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MàhjŸmubj�)�”}”(hhh]”(j•)�”}”(hŒ/``unsigned int irq`` Interrupt to set affinity ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjÄmh]”hŒunsigned int irq”…”�”}”(hjÆmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÂmubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÝhj¾mubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt to set affinity”h]”hŒInterrupt to set affinity”…”�”}”(hjÝmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÙmh´MÝhjÚmubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¾mubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÙmh´MÝhj»mubj•)�”}”(hŒ*``const struct cpumask *cpumask`` cpumask ”h]”(j›)�”}”(hŒ!``const struct cpumask *cpumask``”h]”j)�”}”(hjýmh]”hŒconst struct cpumask *cpumask”…”�”}”(hjÿmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjûmubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÞhj÷mubjµ)�”}”(hhh]”jƒ)�”}”(hŒcpumask”h]”hŒcpumask”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jnh´MÞhjnubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj÷mubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jnh´MÞhj»mubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjŸmubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj8nh]”hŒ Description”…”�”}”(hj:nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj6nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MàhjŸmubjƒ)�”}”(hŒ/Fails if cpumask does not contain an online CPU”h]”hŒ/Fails if cpumask does not contain an online CPU”…”�”}”(hjNnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MßhjŸmubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_force_affinity (C function)”Œc.irq_force_affinity”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒHint irq_force_affinity (unsigned int irq, const struct cpumask *cpumask)”h]”j])�”}”(hŒGint irq_force_affinity(unsigned int irq, const struct cpumask *cpumask)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj}nh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjynh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Méubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒnh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjynh²hh³j‹nh´Méubj†)�”}”(hŒirq_force_affinity”h]”jŒ)�”}”(hŒirq_force_affinity”h]”hŒirq_force_affinity”…”�”}”(hjžnh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjšnubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjynh²hh³j‹nh´Méubj¥)�”}”(hŒ1(unsigned int irq, const struct cpumask *cpumask)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjºnh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj¶nubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÈnh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¶nubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjÖnh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj¶nubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjänh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¶nubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjònh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¶nubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj²nubj«)�”}”(hŒconst struct cpumask *cpumask”h]”(j±)�”}”(hj�h]”hŒconst”…”�”}”(hj oh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjoubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjoubj±)�”}”(hj´h]”hŒstruct”…”�”}”(hj&oh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjoubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3oh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjoubh)�”}”(hhh]”jŒ)�”}”(hŒcpumask”h]”hŒcpumask”…”�”}”(hjDoh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjAoubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jFoŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj nsbŒc.irq_force_affinity”†”asbuh1hhjoubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjdoh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjoubj )�”}”(hj h]”hŒ*”…”�”}”(hjroh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjoubjŒ)�”}”(hŒcpumask”h]”hŒcpumask”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjoubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj²nubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjynh²hh³j‹nh´Méubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjunh²hh³j‹nh´Méubah}”(h]”jpnah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j‹nh´Méhjrnh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ%Force the irq affinity of a given irq”h]”hŒ%Force the irq affinity of a given irq”…”�”}”(hj©oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Méhj¦oh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjrnh²hh³j‹nh´Méubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjÁojkjÁojl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hXC**Parameters** ``unsigned int irq`` Interrupt to set affinity ``const struct cpumask *cpumask`` cpumask **Description** Same as irq_set_affinity, but without checking the mask against online cpus. Solely for low level cpu hotplug code, where we need to make per cpu interrupts affine before the cpu becomes online.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjËoh]”hŒ Parameters”…”�”}”(hjÍoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÉoubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MíhjÅoubj�)�”}”(hhh]”(j•)�”}”(hŒ/``unsigned int irq`` Interrupt to set affinity ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjêoh]”hŒunsigned int irq”…”�”}”(hjìoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjèoubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mêhjäoubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt to set affinity”h]”hŒInterrupt to set affinity”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÿoh´Mêhjpubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjäoubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÿoh´Mêhjáoubj•)�”}”(hŒ*``const struct cpumask *cpumask`` cpumask ”h]”(j›)�”}”(hŒ!``const struct cpumask *cpumask``”h]”j)�”}”(hj#ph]”hŒconst struct cpumask *cpumask”…”�”}”(hj%ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj!pubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mëhjpubjµ)�”}”(hhh]”jƒ)�”}”(hŒcpumask”h]”hŒcpumask”…”�”}”(hj IOMMU -> irq_set_vcpu_affinity().”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÓsh]”hŒ Parameters”…”�”}”(hjÕsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÑsubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M‡hjÍsubj�)�”}”(hhh]”(j•)�”}”(hŒ6``unsigned int irq`` interrupt number to set affinity ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjòsh]”hŒunsigned int irq”…”�”}”(hjôsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjðsubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M„hjìsubjµ)�”}”(hhh]”jƒ)�”}”(hŒ interrupt number to set affinity”h]”hŒ interrupt number to set affinity”…”�”}”(hj th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jth´M„hjtubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjìsubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jth´M„hjésubj•)�”}”(hŒv``void *vcpu_info`` vCPU specific data or pointer to a percpu array of vCPU specific data for percpu_devid interrupts ”h]”(j›)�”}”(hŒ``void *vcpu_info``”h]”j)�”}”(hj+th]”hŒvoid *vcpu_info”…”�”}”(hj-th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj)tubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M†hj%tubjµ)�”}”(hhh]”jƒ)�”}”(hŒavCPU specific data or pointer to a percpu array of vCPU specific data for percpu_devid interrupts”h]”hŒavCPU specific data or pointer to a percpu array of vCPU specific data for percpu_devid interrupts”…”�”}”(hjDth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M…hjAtubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj%tubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j@th´M†hjésubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÍsubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjgth]”hŒ Description”…”�”}”(hjith²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjetubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MˆhjÍsubjƒ)�”}”(hŒÖThis function uses the vCPU specific data to set the vCPU affinity for an irq. The vCPU specific data is passed from outside, such as KVM. One example code path is as below: KVM -> IOMMU -> irq_set_vcpu_affinity().”h]”hŒÖThis function uses the vCPU specific data to set the vCPU affinity for an irq. The vCPU specific data is passed from outside, such as KVM. One example code path is as below: KVM -> IOMMU -> irq_set_vcpu_affinity().”…”�”}”(hj}th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M‡hjÍsubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒdisable_irq_nosync (C function)”Œc.disable_irq_nosync”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(•hhh]”(jW)�”}”(hŒ*void disable_irq_nosync (unsigned int irq)”h]”j])�”}”(hŒ)void disable_irq_nosync(unsigned int irq)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¬th²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj¨th²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M´ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»th²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¨th²hh³jºth´M´ubj†)�”}”(hŒdisable_irq_nosync”h]”jŒ)�”}”(hŒdisable_irq_nosync”h]”hŒdisable_irq_nosync”…”�”}”(hjÍth²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÉtubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj¨th²hh³jºth´M´ubj¥)�”}”(hŒ(unsigned int irq)”h]”j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjéth²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjåtubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj÷th²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjåtubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjåtubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjåtubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hj!uh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjåtubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjátubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj¨th²hh³jºth´M´ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj¤th²hh³jºth´M´ubah}”(h]”jŸtah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jºth´M´hj¡th²hubjI)�”}”(hhh]”jƒ)�”}”(hŒdisable an irq without waiting”h]”hŒdisable an irq without waiting”…”�”}”(hjKuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M´hjHuh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj¡th²hh³jºth´M´ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjcujkjcujl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX>**Parameters** ``unsigned int irq`` Interrupt to disable **Description** Disable the selected interrupt line. Disables and Enables are nested. Unlike disable_irq(), this function does not ensure existing instances of the IRQ handler have completed before returning. This function may be called from IRQ context.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjmuh]”hŒ Parameters”…”�”}”(hjouh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjkuubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M¸hjguubj�)�”}”(hhh]”j•)�”}”(hŒ*``unsigned int irq`` Interrupt to disable ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjŒuh]”hŒunsigned int irq”…”�”}”(hjŽuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŠuubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mµhj†uubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt to disable”h]”hŒInterrupt to disable”…”�”}”(hj¥uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j¡uh´Mµhj¢uubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj†uubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j¡uh´Mµhjƒuubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjguubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjÇuh]”hŒ Description”…”�”}”(hjÉuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÅuubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M·hjguubjƒ)�”}”(hŒÁDisable the selected interrupt line. Disables and Enables are nested. Unlike disable_irq(), this function does not ensure existing instances of the IRQ handler have completed before returning.”h]”hŒÁDisable the selected interrupt line. Disables and Enables are nested. Unlike disable_irq(), this function does not ensure existing instances of the IRQ handler have completed before returning.”…”�”}”(hjÝuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M¶hjguubjƒ)�”}”(hŒ-This function may be called from IRQ context.”h]”hŒ-This function may be called from IRQ context.”…”�”}”(hjìuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M»hjguubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒdisable_irq (C function)”Œ c.disable_irq”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ#void disable_irq (unsigned int irq)”h]”j])�”}”(hŒ"void disable_irq(unsigned int irq)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjvh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÅubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj*vh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjvh²hh³j)vh´MÅubj†)�”}”(hŒ disable_irq”h]”jŒ)�”}”(hŒ disable_irq”h]”hŒ disable_irq”…”�”}”(hjzh]”hŒunsigned int irq”…”�”}”(hj@zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjirq_data.chip->bus_lock and desc->chip->bus_sync_unlock are NULL !”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjŽ{h]”hŒ Parameters”…”�”}”(hj�{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjŒ{ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M'hjˆ{ubj�)�”}”(hhh]”j•)�”}”(hŒ)``unsigned int irq`` Interrupt to enable ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hj­{h]”hŒunsigned int irq”…”�”}”(hj¯{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj«{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M$hj§{ubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt to enable”h]”hŒInterrupt to enable”…”�”}”(hjÆ{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÂ{h´M$hjÃ{ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj§{ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÂ{h´M$hj¤{ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjˆ{ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjè{h]”hŒ Description”…”�”}”(hjê{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjæ{ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M&hjˆ{ubjƒ)�”}”(hŒ‹Undoes the effect of one call to disable_irq(). If this matches the last disable, processing of interrupts on this IRQ line is re-enabled.”h]”hŒ‹Undoes the effect of one call to disable_irq(). If this matches the last disable, processing of interrupts on this IRQ line is re-enabled.”…”�”}”(hjþ{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M%hjˆ{ubjƒ)�”}”(hŒThis function may be called from IRQ context only when desc->irq_data.chip->bus_lock and desc->chip->bus_sync_unlock are NULL !”h]”hŒThis function may be called from IRQ context only when desc->irq_data.chip->bus_lock and desc->chip->bus_sync_unlock are NULL !”…”�”}”(hj |h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M(hjˆ{ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒenable_nmi (C function)”Œ c.enable_nmi”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ"void enable_nmi (unsigned int irq)”h]”j])�”}”(hŒ!void enable_nmi(unsigned int irq)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj<|h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj8|h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M9ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjK|h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj8|h²hh³jJ|h´M9ubj†)�”}”(hŒ enable_nmi”h]”jŒ)�”}”(hŒ enable_nmi”h]”hŒ enable_nmi”…”�”}”(hj]|h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjY|ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj8|h²hh³jJ|h´M9ubj¥)�”}”(hŒ(unsigned int irq)”h]”j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjy|h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhju|ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‡|h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthju|ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj•|h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhju|ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£|h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthju|ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hj±|h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hju|ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjq|ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj8|h²hh³jJ|h´M9ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj4|h²hh³jJ|h´M9ubah}”(h]”j/|ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jJ|h´M9hj1|h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒenable handling of an nmi”h]”hŒenable handling of an nmi”…”�”}”(hjÛ|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M9hjØ|h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj1|h²hh³jJ|h´M9ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjó|jkjó|jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX**Parameters** ``unsigned int irq`` Interrupt to enable **Description** The interrupt to enable must have been requested through request_nmi. Undoes the effect of one call to disable_nmi(). If this matches the last disable, processing of interrupts on this IRQ line is re-enabled.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjý|h]”hŒ Parameters”…”�”}”(hjÿ|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjû|ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M=hj÷|ubj�)�”}”(hhh]”j•)�”}”(hŒ)``unsigned int irq`` Interrupt to enable ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hj}h]”hŒunsigned int irq”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M:hj}ubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt to enable”h]”hŒInterrupt to enable”…”�”}”(hj5}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j1}h´M:hj2}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j1}h´M:hj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj÷|ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjW}h]”hŒ Description”…”�”}”(hjY}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjU}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M<hj÷|ubjƒ)�”}”(hŒÐThe interrupt to enable must have been requested through request_nmi. Undoes the effect of one call to disable_nmi(). If this matches the last disable, processing of interrupts on this IRQ line is re-enabled.”h]”hŒÐThe interrupt to enable must have been requested through request_nmi. Undoes the effect of one call to disable_nmi(). If this matches the last disable, processing of interrupts on this IRQ line is re-enabled.”…”�”}”(hjm}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M;hj÷|ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_set_irq_wake (C function)”Œc.irq_set_irq_wake”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ8int irq_set_irq_wake (unsigned int irq, unsigned int on)”h]”j])�”}”(hŒ7int irq_set_irq_wake(unsigned int irq, unsigned int on)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjœ}h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj˜}h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MTubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj«}h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj˜}h²hh³jª}h´MTubj†)�”}”(hŒirq_set_irq_wake”h]”jŒ)�”}”(hŒirq_set_irq_wake”h]”hŒirq_set_irq_wake”…”�”}”(hj½}h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¹}ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj˜}h²hh³jª}h´MTubj¥)�”}”(hŒ#(unsigned int irq, unsigned int on)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjÙ}h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÕ}ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjç}h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÕ}ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjõ}h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÕ}ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÕ}ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÕ}ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjÑ}ubj«)�”}”(hŒunsigned int on”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj*~h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj&~ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8~h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj&~ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjF~h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj&~ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjT~h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj&~ubjŒ)�”}”(hŒon”h]”hŒon”…”�”}”(hjb~h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj&~ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjÑ}ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj˜}h²hh³jª}h´MTubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj”}h²hh³jª}h´MTubah}”(h]”j�}ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jª}h´MThj‘}h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ#control irq power management wakeup”h]”hŒ#control irq power management wakeup”…”�”}”(hjŒ~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MThj‰~h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj‘}h²hh³jª}h´MTubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj¤~jkj¤~jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX¯**Parameters** ``unsigned int irq`` interrupt to control ``unsigned int on`` enable/disable power management wakeup **Description** Enable/disable power management wakeup mode, which is disabled by default. Enables and disables must match, just as they match for non-wakeup mode support. Wakeup mode lets this IRQ wake the system from sleep states like "suspend to RAM". **Note** irq enable/disable state is completely orthogonal to the enable/disable state of irq wake. An irq can be disabled with disable_irq() and still wake the system as long as the irq has wake enabled. If this does not hold, then the underlying irq chip and the related driver need to be investigated.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj®~h]”hŒ Parameters”…”�”}”(hj°~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj¬~ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MXhj¨~ubj�)�”}”(hhh]”(j•)�”}”(hŒ*``unsigned int irq`` interrupt to control ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjÍ~h]”hŒunsigned int irq”…”�”}”(hjÏ~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjË~ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MUhjÇ~ubjµ)�”}”(hhh]”jƒ)�”}”(hŒinterrupt to control”h]”hŒinterrupt to control”…”�”}”(hjæ~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jâ~h´MUhjã~ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÇ~ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jâ~h´MUhjÄ~ubj•)�”}”(hŒ;``unsigned int on`` enable/disable power management wakeup ”h]”(j›)�”}”(hŒ``unsigned int on``”h]”j)�”}”(hjh]”hŒunsigned int on”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MVhjubjµ)�”}”(hhh]”jƒ)�”}”(hŒ&enable/disable power management wakeup”h]”hŒ&enable/disable power management wakeup”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jh´MVhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jh´MVhjÄ~ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj¨~ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjAh]”hŒ Description”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MXhj¨~ubjƒ)�”}”(hŒœEnable/disable power management wakeup mode, which is disabled by default. Enables and disables must match, just as they match for non-wakeup mode support.”h]”hŒœEnable/disable power management wakeup mode, which is disabled by default. Enables and disables must match, just as they match for non-wakeup mode support.”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MWhj¨~ubjƒ)�”}”(hŒRWakeup mode lets this IRQ wake the system from sleep states like "suspend to RAM".”h]”hŒVWakeup mode lets this IRQ wake the system from sleep states like “suspend to RAMâ€�.”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M[hj¨~ubjƒ)�”}”(hŒ**Note**”h]”jz)�”}”(hjwh]”hŒNote”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjuubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M^hj¨~ubjƒ)�”}”(hX'irq enable/disable state is completely orthogonal to the enable/disable state of irq wake. An irq can be disabled with disable_irq() and still wake the system as long as the irq has wake enabled. If this does not hold, then the underlying irq chip and the related driver need to be investigated.”h]”hX'irq enable/disable state is completely orthogonal to the enable/disable state of irq wake. An irq can be disabled with disable_irq() and still wake the system as long as the irq has wake enabled. If this does not hold, then the underlying irq chip and the related driver need to be investigated.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M_hj¨~ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_wake_thread (C function)”Œc.irq_wake_thread”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ5void irq_wake_thread (unsigned int irq, void *dev_id)”h]”j])�”}”(hŒ4void irq_wake_thread(unsigned int irq, void *dev_id)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj¸h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¸h²hh³jÊh´M ubj†)�”}”(hŒirq_wake_thread”h]”jŒ)�”}”(hŒirq_wake_thread”h]”hŒirq_wake_thread”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÙubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj¸h²hh³jÊh´M ubj¥)�”}”(hŒ (unsigned int irq, void *dev_id)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjõubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjõubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjõubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#€h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjõubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hj1€h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjõubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjñubj«)�”}”(hŒ void *dev_id”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjJ€h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjF€ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjX€h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjF€ubj )�”}”(hj h]”hŒ*”…”�”}”(hjf€h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjF€ubjŒ)�”}”(hŒdev_id”h]”hŒdev_id”…”�”}”(hjs€h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjF€ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjñubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj¸h²hh³jÊh´M ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj´h²hh³jÊh´M ubah}”(h]”j¯ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jÊh´M hj±h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ7wake the irq thread for the action identified by dev_id”h]”hŒ7wake the irq thread for the action identified by dev_id”…”�”}”(hj�€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M hjš€h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj±h²hh³jÊh´M ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjµ€jkjµ€jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒ~**Parameters** ``unsigned int irq`` Interrupt line ``void *dev_id`` Device identity for which the thread should be woken”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj¿€h]”hŒ Parameters”…”�”}”(hjÁ€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj½€ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mhj¹€ubj�)�”}”(hhh]”(j•)�”}”(hŒ$``unsigned int irq`` Interrupt line ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjÞ€h]”hŒunsigned int irq”…”�”}”(hjà€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÜ€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M hjØ€ubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt line”h]”hŒInterrupt line”…”�”}”(hj÷€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jó€h´M hjô€ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjØ€ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jó€h´M hjÕ€ubj•)�”}”(hŒE``void *dev_id`` Device identity for which the thread should be woken”h]”(j›)�”}”(hŒ``void *dev_id``”h]”j)�”}”(hj�h]”hŒ void *dev_id”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M hj�ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ4Device identity for which the thread should be woken”h]”hŒ4Device identity for which the thread should be woken”…”�”}”(hj0�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M hj-�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j,�h´M hjÕ€ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj¹€ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒfree_irq (C function)”Œ c.free_irq”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ6const void * free_irq (unsigned int irq, void *dev_id)”h]”j])�”}”(hŒ4const void *free_irq(unsigned int irq, void *dev_id)”h]”(j±)�”}”(hj�h]”hŒconst”…”�”}”(hjq�h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjm�h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÉubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjm�h²hh³j~�h´MÉubjc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj��h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjm�h²hh³j~�h´MÉubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›�h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjm�h²hh³j~�h´MÉubj )�”}”(hj h]”hŒ*”…”�”}”(hj©�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjm�h²hh³j~�h´MÉubj†)�”}”(hŒfree_irq”h]”jŒ)�”}”(hŒfree_irq”h]”hŒfree_irq”…”�”}”(hjº�h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¶�ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjm�h²hh³j~�h´MÉubj¥)�”}”(hŒ (unsigned int irq, void *dev_id)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjÖ�h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÒ�ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjä�h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÒ�ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjò�h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÒ�ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÒ�ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÒ�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjÎ�ubj«)�”}”(hŒ void *dev_id”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj'‚h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj#‚ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5‚h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj#‚ubj )�”}”(hj h]”hŒ*”…”�”}”(hjC‚h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj#‚ubjŒ)�”}”(hŒdev_id”h]”hŒdev_id”…”�”}”(hjP‚h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj#‚ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjÎ�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjm�h²hh³j~�h´MÉubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hji�h²hh³j~�h´MÉubah}”(h]”jd�ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j~�h´MÉhjf�h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ,free an interrupt allocated with request_irq”h]”hŒ,free an interrupt allocated with request_irq”…”�”}”(hjz‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÉhjw‚h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjf�h²hh³j~�h´MÉubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj’‚jkj’‚jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX9**Parameters** ``unsigned int irq`` Interrupt line to free ``void *dev_id`` Device identity to free **Description** Remove an interrupt handler. The handler is removed and if the interrupt line is no longer in use by any driver it is disabled. On a shared IRQ the caller must ensure the interrupt is disabled on the card it drives before calling this function. The function does not return until any executing interrupts for this IRQ have completed. This function must not be called from interrupt context. Returns the devname argument passed to request_irq.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjœ‚h]”hŒ Parameters”…”�”}”(hjž‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjš‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÍhj–‚ubj�)�”}”(hhh]”(j•)�”}”(hŒ,``unsigned int irq`` Interrupt line to free ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hj»‚h]”hŒunsigned int irq”…”�”}”(hj½‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¹‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÊhjµ‚ubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt line to free”h]”hŒInterrupt line to free”…”�”}”(hjÔ‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jЂh´MÊhjÑ‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjµ‚ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jЂh´MÊhj²‚ubj•)�”}”(hŒ)``void *dev_id`` Device identity to free ”h]”(j›)�”}”(hŒ``void *dev_id``”h]”j)�”}”(hjô‚h]”hŒ void *dev_id”…”�”}”(hjö‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjò‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MËhjî‚ubjµ)�”}”(hhh]”jƒ)�”}”(hŒDevice identity to free”h]”hŒDevice identity to free”…”�”}”(hj ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j ƒh´MËhj ƒubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjî‚ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j ƒh´MËhj²‚ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj–‚ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj/ƒh]”hŒ Description”…”�”}”(hj1ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj-ƒubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÍhj–‚ubjƒ)�”}”(hXNRemove an interrupt handler. The handler is removed and if the interrupt line is no longer in use by any driver it is disabled. On a shared IRQ the caller must ensure the interrupt is disabled on the card it drives before calling this function. The function does not return until any executing interrupts for this IRQ have completed.”h]”hXNRemove an interrupt handler. The handler is removed and if the interrupt line is no longer in use by any driver it is disabled. On a shared IRQ the caller must ensure the interrupt is disabled on the card it drives before calling this function. The function does not return until any executing interrupts for this IRQ have completed.”…”�”}”(hjEƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÌhj–‚ubjƒ)�”}”(hŒ8This function must not be called from interrupt context.”h]”hŒ8This function must not be called from interrupt context.”…”�”}”(hjTƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÒhj–‚ubjƒ)�”}”(hŒ3Returns the devname argument passed to request_irq.”h]”hŒ3Returns the devname argument passed to request_irq.”…”�”}”(hjcƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÔhj–‚ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ!request_threaded_irq (C function)”Œc.request_threaded_irq”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ–int request_threaded_irq (unsigned int irq, irq_handler_t handler, irq_handler_t thread_fn, unsigned long irqflags, const char *devname, void *dev_id)”h]”j])�”}”(hŒ•int request_threaded_irq(unsigned int irq, irq_handler_t handler, irq_handler_t thread_fn, unsigned long irqflags, const char *devname, void *dev_id)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj’ƒh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjŽƒh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M%ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡ƒh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjŽƒh²hh³j ƒh´M%ubj†)�”}”(hŒrequest_threaded_irq”h]”jŒ)�”}”(hŒrequest_threaded_irq”h]”hŒrequest_threaded_irq”…”�”}”(hj³ƒh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¯ƒubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjŽƒh²hh³j ƒh´M%ubj¥)�”}”(hŒ}(unsigned int irq, irq_handler_t handler, irq_handler_t thread_fn, unsigned long irqflags, const char *devname, void *dev_id)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjσh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj˃ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj݃h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj˃ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjëƒh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj˃ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjùƒh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj˃ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj˃ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjǃubj«)�”}”(hŒirq_handler_t handler”h]”(h)�”}”(hhh]”jŒ)�”}”(hŒ irq_handler_t”h]”hŒ irq_handler_t”…”�”}”(hj#„h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj „ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j%„Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjµƒsbŒc.request_threaded_irq”†”asbuh1hhj„ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjC„h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj„ubjŒ)�”}”(hŒhandler”h]”hŒhandler”…”�”}”(hjQ„h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj„ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjǃubj«)�”}”(hŒirq_handler_t thread_fn”h]”(h)�”}”(hhh]”jŒ)�”}”(hŒ irq_handler_t”h]”hŒ irq_handler_t”…”�”}”(hjm„h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjj„ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jo„Œmodname”NŒ classname”Njìjï)�”}”jò]”j?„Œc.request_threaded_irq”†”asbuh1hhjf„ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹„h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjf„ubjŒ)�”}”(hŒ thread_fn”h]”hŒ thread_fn”…”�”}”(hj™„h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjf„ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjǃubj«)�”}”(hŒunsigned long irqflags”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj²„h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj®„ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀ„h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj®„ubjc)�”}”(hŒlong”h]”hŒlong”…”�”}”(hj΄h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj®„ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜ„h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj®„ubjŒ)�”}”(hŒirqflags”h]”hŒirqflags”…”�”}”(hjê„h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj®„ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjǃubj«)�”}”(hŒconst char *devname”h]”(j±)�”}”(hj�h]”hŒconst”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjÿ„ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÿ„ubjc)�”}”(hŒchar”h]”hŒchar”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÿ„ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,…h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÿ„ubj )�”}”(hj h]”hŒ*”…”�”}”(hj:…h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÿ„ubjŒ)�”}”(hŒdevname”h]”hŒdevname”…”�”}”(hjG…h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÿ„ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjǃubj«)�”}”(hŒ void *dev_id”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj`…h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj\…ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjn…h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj\…ubj )�”}”(hj h]”hŒ*”…”�”}”(hj|…h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj\…ubjŒ)�”}”(hŒdev_id”h]”hŒdev_id”…”�”}”(hj‰…h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj\…ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjǃubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjŽƒh²hh³j ƒh´M%ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjŠƒh²hh³j ƒh´M%ubah}”(h]”j…ƒah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j ƒh´M%hj‡ƒh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒallocate an interrupt line”h]”hŒallocate an interrupt line”…”�”}”(hj³…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M%hj°…h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj‡ƒh²hh³j ƒh´M%ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjË…jkjË…jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX.**Parameters** ``unsigned int irq`` Interrupt line to allocate ``irq_handler_t handler`` Function to be called when the IRQ occurs. Primary handler for threaded interrupts. If handler is NULL and thread_fn != NULL the default primary handler is installed. ``irq_handler_t thread_fn`` Function called from the irq handler thread If NULL, no irq thread is created ``unsigned long irqflags`` Interrupt type flags ``const char *devname`` An ascii name for the claiming device ``void *dev_id`` A cookie passed back to the handler function **Description** This call allocates interrupt resources and enables the interrupt line and IRQ handling. From the point this call is made your handler function may be invoked. Since your handler function must clear any interrupt the board raises, you must take care both to initialise your hardware and to set up the interrupt handler in the right order. If you want to set up a threaded irq handler for your device then you need to supply **handler** and **thread_fn**. **handler** is still called in hard interrupt context and has to check whether the interrupt originates from the device. If yes it needs to disable the interrupt on the device and return IRQ_WAKE_THREAD which will wake up the handler thread and run **thread_fn**. This split handler design is necessary to support shared interrupts. **dev_id** must be globally unique. Normally the address of the device data structure is used as the cookie. Since the handler receives this value it makes sense to use it. If your interrupt is shared you must pass a non NULL dev_id as this is required when freeing the interrupt. Flags: IRQF_SHARED Interrupt is shared IRQF_TRIGGER_* Specify active edge(s) or level IRQF_ONESHOT Run thread_fn with interrupt line masked”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÕ…h]”hŒ Parameters”…”�”}”(hj×…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÓ…ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M)hjÏ…ubj�)�”}”(hhh]”(j•)�”}”(hŒ0``unsigned int irq`` Interrupt line to allocate ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjô…h]”hŒunsigned int irq”…”�”}”(hjö…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjò…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M&hjî…ubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt line to allocate”h]”hŒInterrupt line to allocate”…”�”}”(hj †h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j †h´M&hj †ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjî…ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j †h´M&hjë…ubj•)�”}”(hŒÁ``irq_handler_t handler`` Function to be called when the IRQ occurs. Primary handler for threaded interrupts. If handler is NULL and thread_fn != NULL the default primary handler is installed. ”h]”(j›)�”}”(hŒ``irq_handler_t handler``”h]”j)�”}”(hj-†h]”hŒirq_handler_t handler”…”�”}”(hj/†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj+†ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M*hj'†ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ¦Function to be called when the IRQ occurs. Primary handler for threaded interrupts. If handler is NULL and thread_fn != NULL the default primary handler is installed.”h]”hŒ¦Function to be called when the IRQ occurs. Primary handler for threaded interrupts. If handler is NULL and thread_fn != NULL the default primary handler is installed.”…”�”}”(hjF†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M'hjC†ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj'†ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jB†h´M*hjë…ubj•)�”}”(hŒj``irq_handler_t thread_fn`` Function called from the irq handler thread If NULL, no irq thread is created ”h]”(j›)�”}”(hŒ``irq_handler_t thread_fn``”h]”j)�”}”(hjg†h]”hŒirq_handler_t thread_fn”…”�”}”(hji†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhje†ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M,hja†ubjµ)�”}”(hhh]”jƒ)�”}”(hŒMFunction called from the irq handler thread If NULL, no irq thread is created”h]”hŒMFunction called from the irq handler thread If NULL, no irq thread is created”…”�”}”(hj€†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M+hj}†ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hja†ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j|†h´M,hjë…ubj•)�”}”(hŒ0``unsigned long irqflags`` Interrupt type flags ”h]”(j›)�”}”(hŒ``unsigned long irqflags``”h]”j)�”}”(hj¡†h]”hŒunsigned long irqflags”…”�”}”(hj£†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŸ†ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M-hj›†ubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt type flags”h]”hŒInterrupt type flags”…”�”}”(hjº†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j¶†h´M-hj·†ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj›†ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j¶†h´M-hjë…ubj•)�”}”(hŒ>``const char *devname`` An ascii name for the claiming device ”h]”(j›)�”}”(hŒ``const char *devname``”h]”j)�”}”(hjÚ†h]”hŒconst char *devname”…”�”}”(hj܆h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj؆ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M.hjÔ†ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ%An ascii name for the claiming device”h]”hŒ%An ascii name for the claiming device”…”�”}”(hjó†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jï†h´M.hjð†ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÔ†ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jï†h´M.hjë…ubj•)�”}”(hŒ>``void *dev_id`` A cookie passed back to the handler function ”h]”(j›)�”}”(hŒ``void *dev_id``”h]”j)�”}”(hj‡h]”hŒ void *dev_id”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M/hj ‡ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ,A cookie passed back to the handler function”h]”hŒ,A cookie passed back to the handler function”…”�”}”(hj,‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j(‡h´M/hj)‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj ‡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j(‡h´M/hjë…ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÏ…ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjN‡h]”hŒ Description”…”�”}”(hjP‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjL‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M1hjÏ…ubjƒ)�”}”(hXRThis call allocates interrupt resources and enables the interrupt line and IRQ handling. From the point this call is made your handler function may be invoked. Since your handler function must clear any interrupt the board raises, you must take care both to initialise your hardware and to set up the interrupt handler in the right order.”h]”hXRThis call allocates interrupt resources and enables the interrupt line and IRQ handling. From the point this call is made your handler function may be invoked. Since your handler function must clear any interrupt the board raises, you must take care both to initialise your hardware and to set up the interrupt handler in the right order.”…”�”}”(hjd‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M0hjÏ…ubjƒ)�”}”(hXÀIf you want to set up a threaded irq handler for your device then you need to supply **handler** and **thread_fn**. **handler** is still called in hard interrupt context and has to check whether the interrupt originates from the device. If yes it needs to disable the interrupt on the device and return IRQ_WAKE_THREAD which will wake up the handler thread and run **thread_fn**. This split handler design is necessary to support shared interrupts.”h]”(hŒUIf you want to set up a threaded irq handler for your device then you need to supply ”…”�”}”(hjs‡h²hh³Nh´Nubjz)�”}”(hŒ **handler**”h]”hŒhandler”…”�”}”(hj{‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjs‡ubhŒ and ”…”�”}”(hjs‡h²hh³Nh´Nubjz)�”}”(hŒ **thread_fn**”h]”hŒ thread_fn”…”�”}”(hj�‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjs‡ubhŒ. ”…”�”}”(hjs‡h²hh³Nh´Nubjz)�”}”(hŒ **handler**”h]”hŒhandler”…”�”}”(hjŸ‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjs‡ubhŒî is still called in hard interrupt context and has to check whether the interrupt originates from the device. If yes it needs to disable the interrupt on the device and return IRQ_WAKE_THREAD which will wake up the handler thread and run ”…”�”}”(hjs‡h²hh³Nh´Nubjz)�”}”(hŒ **thread_fn**”h]”hŒ thread_fn”…”�”}”(hj±‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjs‡ubhŒF. This split handler design is necessary to support shared interrupts.”…”�”}”(hjs‡h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M6hjÏ…ubjƒ)�”}”(hŒ¬**dev_id** must be globally unique. Normally the address of the device data structure is used as the cookie. Since the handler receives this value it makes sense to use it.”h]”(jz)�”}”(hŒ **dev_id**”h]”hŒdev_id”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjʇubhŒ¢ must be globally unique. Normally the address of the device data structure is used as the cookie. Since the handler receives this value it makes sense to use it.”…”�”•-}”(hjʇh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M>hjÏ…ubjƒ)�”}”(hŒkIf your interrupt is shared you must pass a non NULL dev_id as this is required when freeing the interrupt.”h]”hŒkIf your interrupt is shared you must pass a non NULL dev_id as this is required when freeing the interrupt.”…”�”}”(hjç‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MBhjÏ…ubjƒ)�”}”(hŒFlags:”h]”hŒFlags:”…”�”}”(hjö‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MEhjÏ…ubhŒ block_quote”“”)�”}”(hŒ¤IRQF_SHARED Interrupt is shared IRQF_TRIGGER_* Specify active edge(s) or level IRQF_ONESHOT Run thread_fn with interrupt line masked”h]”jƒ)�”}”(hŒ¤IRQF_SHARED Interrupt is shared IRQF_TRIGGER_* Specify active edge(s) or level IRQF_ONESHOT Run thread_fn with interrupt line masked”h]”hŒ¤IRQF_SHARED Interrupt is shared IRQF_TRIGGER_* Specify active edge(s) or level IRQF_ONESHOT Run thread_fn with interrupt line masked”…”�”}”(hj ˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MGhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jˆh³jˆh´MGhjÏ…ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ$request_any_context_irq (C function)”Œc.request_any_context_irq”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒzint request_any_context_irq (unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev_id)”h]”j])�”}”(hŒyint request_any_context_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev_id)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj@ˆh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj<ˆh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M¨ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjOˆh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj<ˆh²hh³jNˆh´M¨ubj†)�”}”(hŒrequest_any_context_irq”h]”jŒ)�”}”(hŒrequest_any_context_irq”h]”hŒrequest_any_context_irq”…”�”}”(hjaˆh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj]ˆubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj<ˆh²hh³jNˆh´M¨ubj¥)�”}”(hŒ^(unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev_id)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj}ˆh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjyˆubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹ˆh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjyˆubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj™ˆh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjyˆubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§ˆh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjyˆubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjµˆh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjyˆubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjuˆubj«)�”}”(hŒirq_handler_t handler”h]”(h)�”}”(hhh]”jŒ)�”}”(hŒ irq_handler_t”h]”hŒ irq_handler_t”…”�”}”(hjшh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjΈubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jÓˆŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjcˆsbŒc.request_any_context_irq”†”asbuh1hhjʈubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñˆh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjʈubjŒ)�”}”(hŒhandler”h]”hŒhandler”…”�”}”(hjÿˆh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjʈubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjuˆubj«)�”}”(hŒunsigned long flags”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj‰ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&‰h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj‰ubjc)�”}”(hŒlong”h]”hŒlong”…”�”}”(hj4‰h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj‰ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjB‰h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj‰ubjŒ)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjP‰h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj‰ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjuˆubj«)�”}”(hŒconst char *name”h]”(j±)�”}”(hj�h]”hŒconst”…”�”}”(hji‰h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hje‰ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjv‰h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthje‰ubjc)�”}”(hŒchar”h]”hŒchar”…”�”}”(hj„‰h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhje‰ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’‰h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthje‰ubj )�”}”(hj h]”hŒ*”…”�”}”(hj ‰h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhje‰ubjŒ)�”}”(hŒname”h]”hŒname”…”�”}”(hj­‰h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hje‰ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjuˆubj«)�”}”(hŒ void *dev_id”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjƉh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj‰ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔ‰h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj‰ubj )�”}”(hj h]”hŒ*”…”�”}”(hjâ‰h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj‰ubjŒ)�”}”(hŒdev_id”h]”hŒdev_id”…”�”}”(hjï‰h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj‰ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjuˆubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj<ˆh²hh³jNˆh´M¨ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj8ˆh²hh³jNˆh´M¨ubah}”(h]”j3ˆah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jNˆh´M¨hj5ˆh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒallocate an interrupt line”h]”hŒallocate an interrupt line”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M¨hjŠh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj5ˆh²hh³jNˆh´M¨ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj1Šjkj1Šjl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX˜**Parameters** ``unsigned int irq`` Interrupt line to allocate ``irq_handler_t handler`` Function to be called when the IRQ occurs. Threaded handler for threaded interrupts. ``unsigned long flags`` Interrupt type flags ``const char *name`` An ascii name for the claiming device ``void *dev_id`` A cookie passed back to the handler function **Description** This call allocates interrupt resources and enables the interrupt line and IRQ handling. It selects either a hardirq or threaded handling method depending on the context. **Return** On failure, it returns a negative value. On success, it returns either IRQC_IS_HARDIRQ or IRQC_IS_NESTED.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj;Šh]”hŒ Parameters”…”�”}”(hj=Šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj9Šubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M¬hj5Šubj�)�”}”(hhh]”(j•)�”}”(hŒ0``unsigned int irq`` Interrupt line to allocate ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjZŠh]”hŒunsigned int irq”…”�”}”(hj\Šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjXŠubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M©hjTŠubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt line to allocate”h]”hŒInterrupt line to allocate”…”�”}”(hjsŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³joŠh´M©hjpŠubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjTŠubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³joŠh´M©hjQŠubj•)�”}”(hŒo``irq_handler_t handler`` Function to be called when the IRQ occurs. Threaded handler for threaded interrupts. ”h]”(j›)�”}”(hŒ``irq_handler_t handler``”h]”j)�”}”(hj“Šh]”hŒirq_handler_t handler”…”�”}”(hj•Šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‘Šubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M«hj�Šubjµ)�”}”(hhh]”jƒ)�”}”(hŒTFunction to be called when the IRQ occurs. Threaded handler for threaded interrupts.”h]”hŒTFunction to be called when the IRQ occurs. Threaded handler for threaded interrupts.”…”�”}”(hj¬Šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mªhj©Šubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj�Šubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j¨Šh´M«hjQŠubj•)�”}”(hŒ-``unsigned long flags`` Interrupt type flags ”h]”(j›)�”}”(hŒ``unsigned long flags``”h]”j)�”}”(hjÍŠh]”hŒunsigned long flags”…”�”}”(hjÏŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjËŠubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M¬hjÇŠubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt type flags”h]”hŒInterrupt type flags”…”�”}”(hjæŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jâŠh´M¬hjãŠubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÇŠubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jâŠh´M¬hjQŠubj•)�”}”(hŒ;``const char *name`` An ascii name for the claiming device ”h]”(j›)�”}”(hŒ``const char *name``”h]”j)�”}”(hj‹h]”hŒconst char *name”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M­hj‹ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ%An ascii name for the claiming device”h]”hŒ%An ascii name for the claiming device”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j‹h´M­hj‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j‹h´M­hjQŠubj•)�”}”(hŒ>``void *dev_id`` A cookie passed back to the handler function ”h]”(j›)�”}”(hŒ``void *dev_id``”h]”j)�”}”(hj?‹h]”hŒ void *dev_id”…”�”}”(hjA‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj=‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M®hj9‹ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ,A cookie passed back to the handler function”h]”hŒ,A cookie passed back to the handler function”…”�”}”(hjX‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jT‹h´M®hjU‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj9‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jT‹h´M®hjQŠubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj5Šubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjz‹h]”hŒ Description”…”�”}”(hj|‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjx‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M°hj5Šubjƒ)�”}”(hŒªThis call allocates interrupt resources and enables the interrupt line and IRQ handling. It selects either a hardirq or threaded handling method depending on the context.”h]”hŒªThis call allocates interrupt resources and enables the interrupt line and IRQ handling. It selects either a hardirq or threaded handling method depending on the context.”…”�”}”(hj�‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M¯hj5Šubjƒ)�”}”(hŒ **Return**”h]”jz)�”}”(hj¡‹h]”hŒReturn”…”�”}”(hj£‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjŸ‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M³hj5Šubjƒ)�”}”(hŒiOn failure, it returns a negative value. On success, it returns either IRQC_IS_HARDIRQ or IRQC_IS_NESTED.”h]”hŒiOn failure, it returns a negative value. On success, it returns either IRQC_IS_HARDIRQ or IRQC_IS_NESTED.”…”�”}”(hj·‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M´hj5Šubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒrequest_nmi (C function)”Œ c.request_nmi”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒqint request_nmi (unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *name, void *dev_id)”h]”j])�”}”(hŒpint request_nmi(unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *name, void *dev_id)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjæ‹h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjâ‹h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÐubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõ‹h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjâ‹h²hh³jô‹h´MÐubj†)�”}”(hŒ request_nmi”h]”jŒ)�”}”(hŒ request_nmi”h]”hŒ request_nmi”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjŒubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjâ‹h²hh³jô‹h´MÐubj¥)�”}”(hŒa(unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *name, void *dev_id)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj#Œh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjŒubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1Œh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjŒubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj?Œh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjŒubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjMŒh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjŒubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hj[Œh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjŒubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjŒubj«)�”}”(hŒirq_handler_t handler”h]”(h)�”}”(hhh]”jŒ)�”}”(hŒ irq_handler_t”h]”hŒ irq_handler_t”…”�”}”(hjwŒh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjtŒubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jyŒŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj ŒsbŒ c.request_nmi”†”asbuh1hhjpŒubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—Œh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjpŒubjŒ)�”}”(hŒhandler”h]”hŒhandler”…”�”}”(hj¥Œh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjpŒubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjŒubj«)�”}”(hŒunsigned long irqflags”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj¾Œh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjºŒubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌŒh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjºŒubjc)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjÚŒh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjºŒubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjèŒh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjºŒubjŒ)�”}”(hŒirqflags”h]”hŒirqflags”…”�”}”(hjöŒh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjºŒubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjŒubj«)�”}”(hŒconst char *name”h]”(j±)�”}”(hj�h]”hŒconst”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj �ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj �ubjc)�”}”(hŒchar”h]”hŒchar”…”�”}”(hj*�h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj �ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8�h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj �ubj )�”}”(hj h]”hŒ*”…”�”}”(hjF�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj �ubjŒ)�”}”(hŒname”h]”hŒname”…”�”}”(hjS�h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj �ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjŒubj«)�”}”(hŒ void *dev_id”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjl�h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjh�ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjz�h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjh�ubj )�”}”(hj h]”hŒ*”…”�”}”(hjˆ�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjh�ubjŒ)�”}”(hŒdev_id”h]”hŒdev_id”…”�”}”(hj•�h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjh�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjŒubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjâ‹h²hh³jô‹h´MÐubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjÞ‹h²hh³jô‹h´MÐubah}”(h]”jÙ‹ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jô‹h´MÐhjÛ‹h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ+allocate an interrupt line for NMI delivery”h]”hŒ+allocate an interrupt line for NMI delivery”…”�”}”(hj¿�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÐhj¼�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjÛ‹h²hh³jô‹h´MÐubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj×�jkj×�jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hXè**Parameters** ``unsigned int irq`` Interrupt line to allocate ``irq_handler_t handler`` Function to be called when the IRQ occurs. Threaded handler for threaded interrupts. ``unsigned long irqflags`` Interrupt type flags ``const char *name`` An ascii name for the claiming device ``void *dev_id`` A cookie passed back to the handler function **Description** This call allocates interrupt resources and enables the interrupt line and IRQ handling. It sets up the IRQ line to be handled as an NMI. An interrupt line delivering NMIs cannot be shared and IRQ handling cannot be threaded. Interrupt lines requested for NMI delivering must produce per cpu interrupts and have auto enabling setting disabled. **dev_id** must be globally unique. Normally the address of the device data structure is used as the cookie. Since the handler receives this value it makes sense to use it. If the interrupt line cannot be used to deliver NMIs, function will fail and return a negative value.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjá�h]”hŒ Parameters”…”�”}”(hjã�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjß�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÔhjÛ�ubj�)�”}”(hhh]”(j•)�”}”(hŒ0``unsigned int irq`` Interrupt line to allocate ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjŽh]”hŒunsigned int irq”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjþ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÑhjú�ubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt line to allocate”h]”hŒInterrupt line to allocate”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jŽh´MÑhjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjú�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jŽh´MÑhj÷�ubj•)�”}”(hŒo``irq_handler_t handler`` Function to be called when the IRQ occurs. Threaded handler for threaded interrupts. ”h]”(j›)�”}”(hŒ``irq_handler_t handler``”h]”j)�”}”(hj9Žh]”hŒirq_handler_t handler”…”�”}”(hj;Žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj7Žubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÓhj3Žubjµ)�”}”(hhh]”jƒ)�”}”(hŒTFunction to be called when the IRQ occurs. Threaded handler for threaded interrupts.”h]”hŒTFunction to be called when the IRQ occurs. Threaded handler for threaded interrupts.”…”�”}”(hjRŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÒhjOŽubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj3Žubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jNŽh´MÓhj÷�ubj•)�”}”(hŒ0``unsigned long irqflags`` Interrupt type flags ”h]”(j›)�”}”(hŒ``unsigned long irqflags``”h]”j)�”}”(hjsŽh]”hŒunsigned long irqflags”…”�”}”(hjuŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjqŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÔhjmŽubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt type flags”h]”hŒInterrupt type flags”…”�”}”(hjŒŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jˆŽh´MÔhj‰Žubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjmŽubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jˆŽh´MÔhj÷�ubj•)�”}”(hŒ;``const char *name`` An ascii name for the claiming device ”h]”(j›)�”}”(hŒ``const char *name``”h]”j)�”}”(hj¬Žh]”hŒconst char *name”…”�”}”(hj®Žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjªŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÕhj¦Žubjµ)�”}”(hhh]”jƒ)�”}”(hŒ%An ascii name for the claiming device”h]”hŒ%An ascii name for the claiming device”…”�”}”(hjÅŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÁŽh´MÕhjÂŽubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¦Žubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÁŽh´MÕhj÷�ubj•)�”}”(hŒ>``void *dev_id`` A cookie passed back to the handler function ”h]”(j›)�”}”(hŒ``void *dev_id``”h]”j)�”}”(hjåŽh]”hŒ void *dev_id”…”�”}”(hjçŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjãŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÖhjߎubjµ)�”}”(hhh]”jƒ)�”}”(hŒ,A cookie passed back to the handler function”h]”hŒ,A cookie passed back to the handler function”…”�”}”(hjþŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³júŽh´MÖhjûŽubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjߎubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³júŽh´MÖhj÷�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÛ�ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj �h]”hŒ Description”…”�”}”(hj"�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MØhjÛ�ubjƒ)�”}”(hŒ‰This call allocates interrupt resources and enables the interrupt line and IRQ handling. It sets up the IRQ line to be handled as an NMI.”h]”hŒ‰This call allocates interrupt resources and enables the interrupt line and IRQ handling. It sets up the IRQ line to be handled as an NMI.”…”�”}”(hj6�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M×hjÛ�ubjƒ)�”}”(hŒWAn interrupt line delivering NMIs cannot be shared and IRQ handling cannot be threaded.”h]”hŒWAn interrupt line delivering NMIs cannot be shared and IRQ handling cannot be threaded.”…”�”}”(hjE�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÚhjÛ�ubjƒ)�”}”(hŒuInterrupt lines requested for NMI delivering must produce per cpu interrupts and have auto enabling setting disabled.”h]”hŒuInterrupt lines requested for NMI delivering must produce per cpu interrupts and have auto enabling setting disabled.”…”�”}”(hjT�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÝhjÛ�ubjƒ)�”}”(hŒ¬**dev_id** must be globally unique. Normally the address of the device data structure is used as the cookie. Since the handler receives this value it makes sense to use it.”h]”(jz)�”}”(hŒ **dev_id**”h]”hŒdev_id”…”�”}”(hjg�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjc�ubhŒ¢ must be globally unique. Normally the address of the device data structure is used as the cookie. Since the handler receives this value it makes sense to use it.”…”�”}”(hjc�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MàhjÛ�ubjƒ)�”}”(hŒeIf the interrupt line cannot be used to deliver NMIs, function will fail and return a negative value.”h]”hŒeIf the interrupt line cannot be used to deliver NMIs, function will fail and return a negative value.”…”�”}”(hj€�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MähjÛ�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ"irq_percpu_is_enabled (C function)”Œc.irq_percpu_is_enabled”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ-bool irq_percpu_is_enabled (unsigned int irq)”h]”j])�”}”(hŒ,bool irq_percpu_is_enabled(unsigned int irq)”h]”(jc)�”}”(hj†ah]”hŒbool”…”�”}”(hj¯�h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj«�h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MH ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj½�h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj«�h²hh³j¼�h´MH ubj†)�”}”(hŒirq_percpu_is_enabled”h]”jŒ)�”}”(hŒirq_percpu_is_enabled”h]”hŒirq_percpu_is_enabled”…”�”}”(hjÏ�h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjË�ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj«�h²hh³j¼�h´MH ubj¥)�”}”(hŒ(unsigned int irq)”h]”j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjë�h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjç�ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjù�h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjç�ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjç�ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjç�ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hj#�h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjç�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjã�ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj«�h²hh³j¼�h´MH ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj§�h²hh³j¼�h´MH ubah}”(h]”j¢�ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j¼�h´MH hj¤�h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ(Check whether the per cpu irq is enabled”h]”hŒ(Check whether the per cpu irq is enabled”…”�”}”(hjM�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MH hjJ�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj¤�h²hh³j¼�h´MH ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjje�jkje�jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒÈ**Parameters** ``unsigned int irq`` Linux irq number to check for **Description** Must be called from a non migratable context. Returns the enable state of a per cpu interrupt on the current cpu.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjo�h]”hŒ Parameters”…”�”}”(hjq�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjm�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´ML hji�ubj�)�”}”(hhh]”j•)�”}”(hŒ3``unsigned int irq`` Linux irq number to check for ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjŽ�h]”hŒunsigned int irq”…”�”}”(hj��h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŒ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MI hjˆ�ubjµ)�”}”(hhh]”jƒ)�”}”(hŒLinux irq number to check for”h]”hŒLinux irq number to check for”…”�”}”(hj§�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j£�h´MI hj¤�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjˆ�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j£�h´MI hj…�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hji�ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjÉ�h]”hŒ Description”…”�”}”(hjË�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÇ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MK hji�ubjƒ)�”}”(hŒqMust be called from a non migratable context. Returns the enable state of a per cpu interrupt on the current cpu.”h]”hŒqMust be called from a non migratable context. Returns the enable state of a per cpu interrupt on the current cpu.”…”�”}”(hjß�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MJ hji�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒfree_percpu_irq (C function)”Œc.free_percpu_irq”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ>void free_percpu_irq (unsigned int irq, void __percpu *dev_id)”h]”j])�”}”(hŒ=void free_percpu_irq(unsigned int irq, void __percpu *dev_id)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj ‘h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M– ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj ‘h²hh³j‘h´M– ubj†)�”}”(hŒfree_percpu_irq”h]”jŒ)�”}”(hŒfree_percpu_irq”h]”hŒfree_percpu_irq”…”�”}”(hj/‘h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj+‘ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj ‘h²hh³j‘h´M– ubj¥)�”}”(hŒ)(unsigned int irq, void __percpu *dev_id)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjK‘h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjG‘ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjY‘h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjG‘ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjg‘h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjG‘ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hju‘h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjG‘ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjƒ‘h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjG‘ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjC‘ubj«)�”}”(hŒvoid __percpu *dev_id”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjœ‘h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj˜‘ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjª‘h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj˜‘ubhŒ__percpu”…”�”}”(hj˜‘h²hh³Nh´Nubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼‘h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj˜‘ubj )�”}”(hj h]”hŒ*”…”�”}”(hjÊ‘h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj˜‘ubjŒ)�”}”(hŒdev_id”h]”hŒdev_id”…”�”}”(hjבh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj˜‘ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjC‘ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj ‘h²hh³j‘h´M– ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj‘h²hh³j‘h´M– ubah}”(h]”j‘ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j‘h´M– hj‘h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ3free an interrupt allocated with request_percpu_irq”h]”hŒ3free an interrupt allocated with request_percpu_irq”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M– hjþ‘h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj‘h²hh³j‘h´M– ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj’jkj’jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX¶**Parameters** ``unsigned int irq`` Interrupt line to free ``void __percpu *dev_id`` Device identity to free **Description** Remove a percpu interrupt handler. The handler is removed, but the interrupt line is not disabled. This must be done on each CPU before calling this function. The function does not return until any executing interrupts for this IRQ have completed. This function must not be called from interrupt context.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj#’h]”hŒ Parameters”…”�”}”(hj%’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj!’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mš hj’ubj�)�”}”(hhh]”(j•)�”}”(hŒ,``unsigned int irq`` Interrupt line to free ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjB’h]”hŒunsigned int irq”…”�”}”(hjD’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj@’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M— hj<’ubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt line to free”h]”hŒInterrupt line to free”…”�”}”(hj[’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jW’h´M— hjX’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj<’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jW’h´M— hj9’ubj•)�”}”(hŒ2``void __percpu *dev_id`` Device identity to free ”h]”(j›)�”}”(hŒ``void __percpu *dev_id``”h]”j)�”}”(hj{’h]”hŒvoid __percpu *dev_id”…”�”}”(hj}’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjy’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M˜ hju’ubjµ)�”}”(hhh]”jƒ)�”}”(hŒDevice identity to free”h]”hŒDevice identity to free”…”�”}”(hj”’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j�’h´M˜ hj‘’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hju’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j�’h´M˜ hj9’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj’ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj¶’h]”hŒ Description”…”�”}”(hj¸’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj´’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mš hj’ubjƒ)�”}”(hŒ÷Remove a percpu interrupt handler. The handler is removed, but the interrupt line is not disabled. This must be done on each CPU before calling this function. The function does not return until any executing interrupts for this IRQ have completed.”h]”hŒ÷Remove a percpu interrupt handler. The handler is removed, but the interrupt line is not disabled. This must be done on each CPU before calling this function. The function does not return until any executing interrupts for this IRQ have completed.”…”�”}”(hjÌ’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M™ hj’ubjƒ)�”}”(hŒ8This function must not be called from interrupt context.”h]”hŒ8This function must not be called from interrupt context.”…”�”}”(hjÛ’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mž hj’ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ(request_percpu_irq_affinity (C function)”Œc.request_percpu_irq_affinity”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ�int request_percpu_irq_affinity (unsigned int irq, irq_handler_t handler, const char *devname, const cpumask_t *affinity, void __percpu *dev_id)”h]”j])�”}”(hŒ�int request_percpu_irq_affinity(unsigned int irq, irq_handler_t handler, const char *devname, const cpumask_t *affinity, void __percpu *dev_id)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj “h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj“h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÛ ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj“h²hh³j“h´MÛ ubj†)�”}”(hŒrequest_percpu_irq_affinity”h]”jŒ)�”}”(hŒrequest_percpu_irq_affinity”h]”hŒrequest_percpu_irq_affinity”…”�”}”(hj+“h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj'“ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj“h²hh³j“h´MÛ ubj¥)�”}”(hŒp(unsigned int irq, irq_handler_t handler, const char *devname, const cpumask_t *affinity, void __percpu *dev_id)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjG“h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjC“ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjU“h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjC“ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjc“h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjC“ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjq“h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjC“ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjC“ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj?“ubj«)�”}”(hŒirq_handler_t handler”h]”(h)�”}”(hhh]”jŒ)�”}”(hŒ irq_handler_t”h]”hŒ irq_handler_t”…”�”}”(hj›“h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj˜“ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j�“Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj-“sbŒc.request_percpu_irq_affinity”†”asbuh1hhj”“ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»“h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj”“ubjŒ)�”}”(hŒhandler”h]”hŒhandler”…”�”}”(hjÉ“h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj”“ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj?“ubj«)�”}”(hŒconst char *devname”h]”(j±)�”}”(hj�h]”hŒconst”…”�”}”(hjâ“h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjÞ“ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjï“h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÞ“ubjc)�”}”(hŒchar”h]”hŒchar”…”�”}”(hjý“h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÞ“ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ”h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÞ“ubj )�”}”(hj h]”hŒ*”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÞ“ubjŒ)�”}”(hŒdevname”h]”hŒdevname”…”�”}”(hj&”h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÞ“ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj?“ubj«)�”}”(hŒconst cpumask_t *affinity”h]”(j±)�”}”(hj�h]”hŒconst”…”�”}”(hj?”h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj;”ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjL”h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj;”ubh)�”}”(hhh]”jŒ)�”}”(hŒ cpumask_t”h]”hŒ cpumask_t”…”�”}”(hj]”h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjZ”ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j_”Œmodname”NŒ classname”Njìjï)�”}”jò]”j·“Œc.request_percpu_irq_affinity”†”asbuh1hhj;”ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{”h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj;”ubj )�”}”(hj h]”hŒ*”…”�”}”(hj‰”h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj;”ubjŒ)�”}”(hŒaffinity”h]”hŒaffinity”…”�”}”(hj–”h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj;”ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj?“ubj«)�”}”(hŒvoid __percpu *dev_id”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¯”h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj«”ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj½”h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj«”ubhŒ__percpu”…”�”}”(hj«”h²hh³Nh´Nubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏ”h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj«”ubj )�”}”(hj h]”hŒ*”…”�”}”(hjÝ”h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj«”ubjŒ)�”}”(hŒdev_id”h]”hŒdev_id”…”�”}”(hjê”h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj«”ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj?“ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj“h²hh³j“h´MÛ ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj“h²hh³j“h´MÛ ubah}”(h]”jý’ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j“h´MÛ hjÿ’h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ allocate a percpu interrupt line”h]”hŒ allocate a percpu interrupt line”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÛ hj•h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjÿ’h²hh³j“h´MÛ ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj,•jkj,•jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hXä**Parameters** ``unsigned int irq`` Interrupt line to allocate ``irq_handler_t handler`` Function to be called when the IRQ occurs. ``const char *devname`` An ascii name for the claiming device ``const cpumask_t *affinity`` A cpumask describing the target CPUs for this interrupt ``void __percpu *dev_id`` A percpu cookie passed back to the handler function **Description** This call allocates interrupt resources, but doesn't enable the interrupt on any CPU, as all percpu-devid interrupts are flagged with IRQ_NOAUTOEN. It has to be done on each CPU using enable_percpu_irq(). **dev_id** must be globally unique. It is a per-cpu variable, and the handler gets called with the interrupted CPU's instance of that variable.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj6•h]”hŒ Parameters”…”�”}”(hj8•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj4•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mß hj0•ubj�)�”}”(hhh]”(j•)�”}”(hŒ0``unsigned int irq`` Interrupt line to allocate ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjU•h]”hŒunsigned int irq”…”�”}”(hjW•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjS•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÜ hjO•ubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt line to allocate”h]”hŒInterrupt line to allocate”…”�”}”(hjn•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jj•h´MÜ hjk•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjO•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jj•h´MÜ hjL•ubj•)�”}”(hŒE``irq_handler_t handler`` Function to be called when the IRQ occurs. ”h]”(j›)�”}”(hŒ``irq_handler_t handler``”h]”j)�”}”(hjŽ•h]”hŒirq_handler_t handler”…”�”}”(hj�•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŒ•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÝ hjˆ•ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ*Function to be called when the IRQ occurs.”h]”hŒ*Function to be called when the IRQ occurs.”…”�”}”(hj§•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j£•h´MÝ hj¤•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjˆ•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j£•h´MÝ hjL•ubj•)�”}”(hŒ>``const char *devname`` An ascii name for the claiming device ”h]”(j›)�”}”(hŒ``const char *devname``”h]”j)�”}”(hjÇ•h]”hŒconst char *devname”…”�”}”(hjÉ•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÅ•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÞ hjÁ•ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ%An ascii name for the claiming device”h]”hŒ%An ascii name for the claiming device”…”�”}”(hjà•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÜ•h´MÞ hjÝ•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÁ•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÜ•h´MÞ hjL•ubj•)�”}”(hŒV``const cpumask_t *affinity`` A cpumask describing the target CPUs for this interrupt ”h]”(j›)�”}”(hŒ``const cpumask_t *affinity``”h]”j)�”}”(hj–h]”hŒconst cpumask_t *affinity”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjþ•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mß hjú•ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ7A cpumask describing the target CPUs for this interrupt”h]”hŒ7A cpumask describing the target CPUs for this interrupt”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j–h´Mß hj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjú•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j–h´Mß hjL•ubj•)�”}”(hŒN``void __percpu *dev_id`` A percpu cookie passed back to the handler function ”h]”(j›)�”}”(hŒ``void __percpu *dev_id``”h]”j)�”}”(hj9–h]”hŒvoid __percpu *dev_id”…”�”}”(hj;–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj7–ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mà hj3–ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ3A percpu cookie passed back to the handler function”h]”hŒ3A percpu cookie passed back to the handler function”…”�”}”(hjR–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jN–h´Mà hjO–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj3–ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jN–h´Mà hjL•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj0•ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjt–h]”hŒ Description”…”�”}”(hjv–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjr–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mâ hj0•ubjƒ)�”}”(hŒÌThis call allocates interrupt resources, but doesn't enable the interrupt on any CPU, as all percpu-devid interrupts are flagged with IRQ_NOAUTOEN. It has to be done on each CPU using enable_percpu_irq().”h]”hŒÎThis call allocates interrupt resources, but doesn’t enable the interrupt on any CPU, as all percpu-devid interrupts are flagged with IRQ_NOAUTOEN. It has to be done on each CPU using enable_percpu_irq().”…”�”}”(hjŠ–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Má hj0•ubjƒ)�”}”(hŒ�**dev_id** must be globally unique. It is a per-cpu variable, and the handler gets called with the interrupted CPU's instance of that variable.”h]”(jz)�”}”(hŒ **dev_id**”h]”hŒdev_id”…”�”}”(hj�–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj™–ubhŒ‡ must be globally unique. It is a per-cpu variable, and the handler gets called with the interrupted CPU’s instance of that variable.”…”�”}”(hj™–h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Må hj0•ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒrequest_percpu_nmi (C function)”Œc.request_percpu_nmi”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ‰int request_percpu_nmi (unsigned int irq, irq_handler_t handler, const char *name, const struct cpumask *affinity, void __percpu *dev_id)”h]”j])�”}”(hŒˆint request_percpu_nmi(unsigned int irq, irq_handler_t handler, const char *name, const struct cpumask *affinity, void __percpu *dev_id)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjÖ–h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÒ–h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjå–h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÒ–h²hh³jä–h´M ubj†)�”}”(hŒrequest_percpu_nmi”h]”jŒ)�”}”(hŒrequest_percpu_nmi”h]”hŒrequest_percpu_nmi”…”�”}”(hj÷–h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjó–ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjÒ–h²hh³jä–h´M ubj¥)�”}”(hŒr(unsigned int irq, irq_handler_t handler, const char *name, const struct cpumask *affinity, void __percpu *dev_id)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj—ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!—h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj—ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj/—h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj—ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=—h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj—ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjK—h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj—ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj —ubj«)�”}”(hŒirq_handler_t handler”h]”(h)�”}”(hhh]”jŒ)�”}”(hŒ irq_handler_t”h]”hŒ irq_handler_t”…”�”}”(hjg—h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjd—ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”ji—Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjù–sbŒc.request_percpu_nmi”†”asbuh1hhj`—ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‡—h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj`—ubjŒ)�”}”(hŒhandler”h]”hŒhandler”…”�”}”(hj•—h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj`—ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj —ubj«)�”}”(hŒconst char *name”h]”(j±)�”}”(hj�h]”hŒconst”…”�”}”(hj®—h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjª—ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»—h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjª—ubjc)�”}”(hŒchar”h]”hŒchar”…”�”}”(hjÉ—h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjª—ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj×—h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjª—ubj )�”}”(hj h]”hŒ*”…”�”}”(hjå—h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjª—ubjŒ)�”}”(hŒname”h]”hŒname”…”�”}”(hjò—h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjª—ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj —ubj«)�”}”(hŒconst struct cpumask *affinity”h]”(j±)�”}”(hj�h]”hŒconst”…”�”}”(hj ˜h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj˜ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj˜ubj±)�”}”(hj´h]”hŒstruct”…”�”}”(hj&˜h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj˜ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3˜h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj˜ubh)�”}”(hhh]”jŒ)�”}”(hŒcpumask”h]”hŒcpumask”…”�”}”(hjD˜h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjA˜ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jF˜Œmodname”NŒ classname”Njìjï)�”}”jò]”jƒ—Œc.request_percpu_nmi”†”asbuh1hhj˜ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjb˜h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj˜ubj )�”}”(hj h]”hŒ*”…”�”}”(hjp˜h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj˜ubjŒ)�”}”(hŒaffinity”h]”hŒaffinity”…”�”}”(hj}˜h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj˜ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj —ubj«)�”}”(hŒvoid __percpu *dev_id”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj–˜h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj’˜ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤˜h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj’˜ubhŒ__percpu”…”�”}”(hj’˜h²hh³Nh´Nubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶˜h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj’˜ubj )�”}”(hj h]”hŒ*”…”�”}”(hjĘh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj’˜ubjŒ)�”}”(hŒdev_id”h]”hŒdev_id”…”�”}”(hjјh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj’˜ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj —ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjÒ–h²hh³jä–h´M ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjΖh²hh³jä–h´M ubah}”(h]”jÉ–ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jä–h´M hjË–h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ1allocate a percpu interrupt line for NMI delivery”h]”hŒ1allocate a percpu interrupt line for NMI delivery”…”�”}”(hjû˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M hjø˜h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjË–h²hh³jä–h´M ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj™jkj™jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX¡**Parameters** ``unsigned int irq`` Interrupt line to allocate ``irq_handler_t handler`` Function to be called when the IRQ occurs. ``const char *name`` An ascii name for the claiming device ``const struct cpumask *affinity`` A cpumask describing the target CPUs for this interrupt ``void __percpu *dev_id`` A percpu cookie passed back to the handler function **Description** This call allocates interrupt resources for a per CPU NMI. Per CPU NMIs have to be setup on each CPU by calling prepare_percpu_nmi() before being enabled on the same CPU by using enable_percpu_nmi(). **dev_id** must be globally unique. It is a per-cpu variable, and the handler gets called with the interrupted CPU's instance of that variable. Interrupt lines requested for NMI delivering should have auto enabling setting disabled. If the interrupt line cannot be used to deliver NMIs, function will fail returning a negative value.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj™h]”hŒ Parameters”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M hj™ubj�)�”}”(hhh]”(j•)�”}”(hŒ0``unsigned int irq`` Interrupt line to allocate ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hj<™h]”hŒunsigned int irq”…”�”}”(hj>™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj:™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M hj6™ubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt line to allocate”h]”hŒInterrupt line to allocate”…”�”}”(hjU™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jQ™h´M hjR™ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj6™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jQ™h´M hj3™ubj•)�”}”(hŒE``irq_handler_t handler`` Function to be called when the IRQ occurs. ”h]”(j›)�”}”(hŒ``irq_handler_t handler``”h]”j)�”}”(hju™h]”hŒirq_handler_t handler”…”�”}”(hjw™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjs™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M hjo™ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ*Function to be called when the IRQ occurs.”h]”hŒ*Function to be called when the IRQ occurs.”…”�”}”(hjŽ™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jŠ™h´M hj‹™ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjo™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jŠ™h´M hj3™ubj•)�”}”(hŒ;``const char *name`` An ascii name for the claiming device ”h]”(j›)�”}”(hŒ``const char *name``”h]”j)�”}”(hj®™h]”hŒconst char *name”…”�”}”(hj°™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¬™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M hj¨™ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ%An ascii name for the claiming device”h]”hŒ%An ascii name for the claiming device”…”�”}”(hjÇ™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÙh´M hjÄ™ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¨™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÙh´M hj3™ubj•)�”}”(hŒ[``const struct cpumask *affinity`` A cpumask describing the target CPUs for this interrupt ”h]”(j›)�”}”(hŒ"``const struct cpumask *affinity``”h]”j)�”}”(hjç™h]”hŒconst struct cpumask *affinity”…”�”}”(hjé™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjå™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M hjá™ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ7A cpumask describing the target CPUs for this interrupt”h]”hŒ7A cpumask describing the target CPUs for this interrupt”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jü™h´M hjý™ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjá™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jü™h´M hj3™ubj•)�”}”(hŒN``void __percpu *dev_id`` A percpu cookie passed back to the handler function ”h]”(j›)�”}”(hŒ``void __percpu *dev_id``”h]”j)�”}”(hj šh]”hŒvoid __percpu *dev_id”…”�”}”(hj"šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjšubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M hjšubjµ)�”}”(hhh]”jƒ)�”}”(hŒ3A percpu cookie passed back to the handler function”h]”hŒ3A percpu cookie passed back to the handler function”…”�”}”(hj9šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j5šh´M hj6šubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjšubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j5šh´M hj3™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj™ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj[šh]”hŒ Description”…”�”}”(hj]šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjYšubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M hj™ubjƒ)�”}”(hŒÇThis call allocates interrupt resources for a per CPU NMI. Per CPU NMIs have to be setup on each CPU by calling prepare_percpu_nmi() before being enabled on the same CPU by using enable_percpu_nmi().”h]”hŒÇThis call allocates interrupt resources for a per CPU NMI. Per CPU NMIs have to be setup on each CPU by calling prepare_percpu_nmi() before being enabled on the same CPU by using enable_percpu_nmi().”…”�”}”(hjqšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M hj™ubjƒ)�”}”(hŒ�**dev_id** must be globally unique. It is a per-cpu variable, and the handler gets called with the interrupted CPU's instance of that variable.”h]”(jz)�”}”(hŒ **dev_id**”h]”hŒdev_id”…”�”}”(hj„šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj€šubhŒ‡ must be globally unique. It is a per-cpu variable, and the handler gets called with the interrupted CPU’s instance of that variable.”…”�”}”(hj€šh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M hj™ubjƒ)�”}”(hŒXInterrupt lines requested for NMI delivering should have auto enabling setting disabled.”h]”hŒXInterrupt lines requested for NMI delivering should have auto enabling setting disabled.”…”�”}”(hj�šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M hj™ubjƒ)�”}”(hŒdIf the interrupt line cannot be used to deliver NMIs, function will fail returning a negative value.”h]”hŒdIf the interrupt line cannot be used to deliver NMIs, function will fail returning a negative value.”…”�”}”(hj¬šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M hj™ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒprepare_percpu_nmi (C function)”Œc.prepare_percpu_nmi”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ)int prepare_percpu_nmi (unsigned int irq)”h]”j])�”}”(hŒ(int prepare_percpu_nmi(unsigned int irq)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjÛšh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjךh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MU ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjêšh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjךh²hh³jéšh´MU ubj†)�”}”(hŒprepare_percpu_nmi”h]”jŒ)�”}”(hŒprepare_percpu_nmi”h]”hŒprepare_percpu_nmi”…”�”}”(hjüšh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjøšubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjךh²hh³jéšh´MU ubj¥)�”}”(hŒ(unsigned int irq)”h]”j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj›ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&›h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj›ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj4›h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj›ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjB›h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj›ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjP›h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj›ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj›ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjךh²hh³jéšh´MU ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjÓšh²hh³jéšh´MU ubah}”(h]”jΚah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jéšh´MU hjКh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ)performs CPU local setup for NMI delivery”h]”hŒ)performs CPU local setup for NMI delivery”…”�”}”(hjz›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MU hjw›h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjКh²hh³jéšh´MU ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj’›jkj’›jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX¢**Parameters** ``unsigned int irq`` Interrupt line to prepare for NMI delivery **Description** This call prepares an interrupt line to deliver NMI on the current CPU, before that interrupt line gets enabled with enable_percpu_nmi(). As a CPU local operation, this should be called from non-preemptible context. If the interrupt line cannot be used to deliver NMIs, function will fail returning a negative value.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjœ›h]”hŒ Parameters”…”�”}”(hjž›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjš›ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MY hj–›ubj�)�”}”(hhh]”j•)�”}”(hŒ@``unsigned int irq`` Interrupt line to prepare for NMI delivery ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hj»›h]”hŒunsigned int irq”…”�”}”(hj½›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¹›ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MV hjµ›ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ*Interrupt line to prepare for NMI delivery”h]”hŒ*Interrupt line to prepare for NMI delivery”…”�”}”(hjÔ›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jЛh´MV hjÑ›ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjµ›ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jЛh´MV hj²›ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj–›ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjö›h]”hŒ Description”…”�”}”(hjø›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjô›ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MX hj–›ubjƒ)�”}”(hŒ‰This call prepares an interrupt line to deliver NMI on the current CPU, before that interrupt line gets enabled with enable_percpu_nmi().”h]”hŒ‰This call prepares an interrupt line to deliver NMI on the current CPU, before that interrupt line gets enabled with enable_percpu_nmi().”…”�”}”(hj œh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MW hj–›ubjƒ)�”}”(hŒMAs a CPU local operation, this should be called from non-preemptible context.”h]”hŒMAs a CPU local operation, this should be called from non-preemptible context.”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MZ hj–›ubjƒ)�”}”(hŒdIf the interrupt line cannot be used to deliver NMIs, function will fail returning a negative value.”h]”hŒdIf the interrupt line cannot be used to deliver NMIs, function will fail returning a negative value.”…”�”}”(hj*œh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”•?h´M] hj–›ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ teardown_percpu_nmi (C function)”Œc.teardown_percpu_nmi”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ+void teardown_percpu_nmi (unsigned int irq)”h]”j])�”}”(hŒ*void teardown_percpu_nmi(unsigned int irq)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjYœh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjUœh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mt ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhœh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjUœh²hh³jgœh´Mt ubj†)�”}”(hŒteardown_percpu_nmi”h]”jŒ)�”}”(hŒteardown_percpu_nmi”h]”hŒteardown_percpu_nmi”…”�”}”(hjzœh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjvœubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjUœh²hh³jgœh´Mt ubj¥)�”}”(hŒ(unsigned int irq)”h]”j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj–œh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj’œubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤œh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj’œubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj²œh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj’œubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀœh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj’œubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjΜh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj’œubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjŽœubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjUœh²hh³jgœh´Mt ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjQœh²hh³jgœh´Mt ubah}”(h]”jLœah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jgœh´Mt hjNœh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒundoes NMI setup of IRQ line”h]”hŒundoes NMI setup of IRQ line”…”�”}”(hjøœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mt hjõœh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjNœh²hh³jgœh´Mt ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj�jkj�jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX<**Parameters** ``unsigned int irq`` Interrupt line from which CPU local NMI configuration should be removed **Description** This call undoes the setup done by prepare_percpu_nmi(). IRQ line should not be enabled for the current CPU. As a CPU local operation, this should be called from non-preemptible context.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj�h]”hŒ Parameters”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mx hj�ubj�)�”}”(hhh]”j•)�”}”(hŒ]``unsigned int irq`` Interrupt line from which CPU local NMI configuration should be removed ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hj9�h]”hŒunsigned int irq”…”�”}”(hj;�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj7�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mu hj3�ubjµ)�”}”(hhh]”jƒ)�”}”(hŒGInterrupt line from which CPU local NMI configuration should be removed”h]”hŒGInterrupt line from which CPU local NMI configuration should be removed”…”�”}”(hjR�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jN�h´Mu hjO�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj3�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jN�h´Mu hj0�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj�ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjt�h]”hŒ Description”…”�”}”(hjv�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjr�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mw hj�ubjƒ)�”}”(hŒ8This call undoes the setup done by prepare_percpu_nmi().”h]”hŒ8This call undoes the setup done by prepare_percpu_nmi().”…”�”}”(hjŠ�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mv hj�ubjƒ)�”}”(hŒ�IRQ line should not be enabled for the current CPU. As a CPU local operation, this should be called from non-preemptible context.”h]”hŒ�IRQ line should not be enabled for the current CPU. As a CPU local operation, this should be called from non-preemptible context.”…”�”}”(hj™�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mx hj�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ"irq_get_irqchip_state (C function)”Œc.irq_get_irqchip_state”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒWint irq_get_irqchip_state (unsigned int irq, enum irqchip_irq_state which, bool *state)”h]”j])�”}”(hŒVint irq_get_irqchip_state(unsigned int irq, enum irqchip_irq_state which, bool *state)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjÈ�h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÄ�h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mœ ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj×�h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÄ�h²hh³jÖ�h´Mœ ubj†)�”}”(hŒirq_get_irqchip_state”h]”jŒ)�”}”(hŒirq_get_irqchip_state”h]”hŒirq_get_irqchip_state”…”�”}”(hjé�h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjå�ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjÄ�h²hh³jÖ�h´Mœ ubj¥)�”}”(hŒ=(unsigned int irq, enum irqchip_irq_state which, bool *state)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjžubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjžubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj!žh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjžubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/žh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjžubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hj=žh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjžubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjý�ubj«)�”}”(hŒenum irqchip_irq_state which”h]”(j±)�”}”(hjÂ%h]”hŒenum”…”�”}”(hjVžh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjRžubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjcžh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjRžubh)�”}”(hhh]”jŒ)�”}”(hŒirqchip_irq_state”h]”hŒirqchip_irq_state”…”�”}”(hjtžh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjqžubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jvžŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjë�sbŒc.irq_get_irqchip_state”†”asbuh1hhjRžubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj”žh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjRžubjŒ)�”}”(hŒwhich”h]”hŒwhich”…”�”}”(hj¢žh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjRžubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjý�ubj«)�”}”(hŒ bool *state”h]”(jc)�”}”(hj†ah]”hŒbool”…”�”}”(hj»žh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj·žubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÈžh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj·žubj )�”}”(hj h]”hŒ*”…”�”}”(hjÖžh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj·žubjŒ)�”}”(hŒstate”h]”hŒstate”…”�”}”(hjãžh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj·žubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjý�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjÄ�h²hh³jÖ�h´Mœ ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjÀ�h²hh³jÖ�h´Mœ ubah}”(h]”j»�ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jÖ�h´Mœ hj½�h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ)returns the irqchip state of a interrupt.”h]”hŒ)returns the irqchip state of a interrupt.”…”�”}”(hj Ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mœ hj Ÿh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj½�h²hh³jÖ�h´Mœ ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj%Ÿjkj%Ÿjl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hXó**Parameters** ``unsigned int irq`` Interrupt line that is forwarded to a VM ``enum irqchip_irq_state which`` One of IRQCHIP_STATE_* the caller wants to know about ``bool *state`` a pointer to a boolean where the state is to be stored **Description** This call snapshots the internal irqchip state of an interrupt, returning into **state** the bit corresponding to stage **which** This function should be called with preemption disabled if the interrupt controller has per-cpu registers.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj/Ÿh]”hŒ Parameters”…”�”}”(hj1Ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj-Ÿubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M  hj)Ÿubj�)�”}”(hhh]”(j•)�”}”(hŒ>``unsigned int irq`` Interrupt line that is forwarded to a VM ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjNŸh]”hŒunsigned int irq”…”�”}”(hjPŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjLŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M� hjHŸubjµ)�”}”(hhh]”jƒ)�”}”(hŒ(Interrupt line that is forwarded to a VM”h]”hŒ(Interrupt line that is forwarded to a VM”…”�”}”(hjgŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jcŸh´M� hjdŸubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjHŸubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jcŸh´M� hjEŸubj•)�”}”(hŒW``enum irqchip_irq_state which`` One of IRQCHIP_STATE_* the caller wants to know about ”h]”(j›)�”}”(hŒ ``enum irqchip_irq_state which``”h]”j)�”}”(hj‡Ÿh]”hŒenum irqchip_irq_state which”…”�”}”(hj‰Ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj…Ÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mž hj�Ÿubjµ)�”}”(hhh]”jƒ)�”}”(hŒ5One of IRQCHIP_STATE_* the caller wants to know about”h]”hŒ5One of IRQCHIP_STATE_* the caller wants to know about”…”�”}”(hj Ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jœŸh´Mž hj�Ÿubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj�Ÿubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jœŸh´Mž hjEŸubj•)�”}”(hŒG``bool *state`` a pointer to a boolean where the state is to be stored ”h]”(j›)�”}”(hŒ``bool *state``”h]”j)�”}”(hjÀŸh]”hŒ bool *state”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¾Ÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MŸ hjºŸubjµ)�”}”(hhh]”jƒ)�”}”(hŒ6a pointer to a boolean where the state is to be stored”h]”hŒ6a pointer to a boolean where the state is to be stored”…”�”}”(hjÙŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÕŸh´MŸ hjÖŸubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjºŸubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÕŸh´MŸ hjEŸubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj)Ÿubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjûŸh]”hŒ Description”…”�”}”(hjýŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjùŸubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M¡ hj)Ÿubjƒ)�”}”(hŒ�This call snapshots the internal irqchip state of an interrupt, returning into **state** the bit corresponding to stage **which**”h]”(hŒOThis call snapshots the internal irqchip state of an interrupt, returning into ”…”�”}”(hj h²hh³Nh´Nubjz)�”}”(hŒ **state**”h]”hŒstate”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj ubhŒ the bit corresponding to stage ”…”�”}”(hj h²hh³Nh´Nubjz)�”}”(hŒ **which**”h]”hŒwhich”…”�”}”(hj+ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M  hj)Ÿubjƒ)�”}”(hŒjThis function should be called with preemption disabled if the interrupt controller has per-cpu registers.”h]”hŒjThis function should be called with preemption disabled if the interrupt controller has per-cpu registers.”…”�”}”(hj@ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M£ hj)Ÿubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ"irq_set_irqchip_state (C function)”Œc.irq_set_irqchip_state”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒTint irq_set_irqchip_state (unsigned int irq, enum irqchip_irq_state which, bool val)”h]”j])�”}”(hŒSint irq_set_irqchip_state(unsigned int irq, enum irqchip_irq_state which, bool val)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjo h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjk h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M³ ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~ h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjk h²hh³j} h´M³ ubj†)�”}”(hŒirq_set_irqchip_state”h]”jŒ)�”}”(hŒirq_set_irqchip_state”h]”hŒirq_set_irqchip_state”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjŒ ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjk h²hh³j} h´M³ ubj¥)�”}”(hŒ:(unsigned int irq, enum irqchip_irq_state which, bool val)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj¬ h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj¨ ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjº h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¨ ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjÈ h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj¨ ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖ h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¨ ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjä h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¨ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¤ ubj«)�”}”(hŒenum irqchip_irq_state which”h]”(j±)�”}”(hjÂ%h]”hŒenum”…”�”}”(hjý h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjù ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ¡h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjù ubh)�”}”(hhh]”jŒ)�”}”(hŒirqchip_irq_state”h]”hŒirqchip_irq_state”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j¡Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj’ sbŒc.irq_set_irqchip_state”†”asbuh1hhjù ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;¡h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjù ubjŒ)�”}”(hŒwhich”h]”hŒwhich”…”�”}”(hjI¡h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjù ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¤ ubj«)�”}”(hŒbool val”h]”(jc)�”}”(hj†ah]”hŒbool”…”�”}”(hjb¡h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj^¡ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjo¡h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj^¡ubjŒ)�”}”(hŒval”h]”hŒval”…”�”}”(hj}¡h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj^¡ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¤ ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjk h²hh³j} h´M³ ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjg h²hh³j} h´M³ ubah}”(h]”jb ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j} h´M³ hjd h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ'set the state of a forwarded interrupt.”h]”hŒ'set the state of a forwarded interrupt.”…”�”}”(hj§¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M³ hj¤¡h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjd h²hh³j} h´M³ ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj¿¡jkj¿¡jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX¯**Parameters** ``unsigned int irq`` Interrupt line that is forwarded to a VM ``enum irqchip_irq_state which`` State to be restored (one of IRQCHIP_STATE_*) ``bool val`` Value corresponding to **which** **Description** This call sets the internal irqchip state of an interrupt, depending on the value of **which**. This function should be called with migration disabled if the interrupt controller has per-cpu registers.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÉ¡h]”hŒ Parameters”…”�”}”(hjË¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÇ¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M· hjáubj�)�”}”(hhh]”(j•)�”}”(hŒ>``unsigned int irq`` Interrupt line that is forwarded to a VM ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjè¡h]”hŒunsigned int irq”…”�”}”(hjê¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjæ¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M´ hjâ¡ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ(Interrupt line that is forwarded to a VM”h]”hŒ(Interrupt line that is forwarded to a VM”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jý¡h´M´ hjþ¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjâ¡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jý¡h´M´ hjß¡ubj•)�”}”(hŒO``enum irqchip_irq_state which`` State to be restored (one of IRQCHIP_STATE_*) ”h]”(j›)�”}”(hŒ ``enum irqchip_irq_state which``”h]”j)�”}”(hj!¢h]”hŒenum irqchip_irq_state which”…”�”}”(hj#¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mµ hj¢ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ-State to be restored (one of IRQCHIP_STATE_*)”h]”hŒ-State to be restored (one of IRQCHIP_STATE_*)”…”�”}”(hj:¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j6¢h´Mµ hj7¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¢ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j6¢h´Mµ hjß¡ubj•)�”}”(hŒ.``bool val`` Value corresponding to **which** ”h]”(j›)�”}”(hŒ ``bool val``”h]”j)�”}”(hjZ¢h]”hŒbool val”…”�”}”(hj\¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjX¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M¶ hjT¢ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ Value corresponding to **which**”h]”(hŒValue corresponding to ”…”�”}”(hjs¢h²hh³Nh´Nubjz)�”}”(hŒ **which**”h]”hŒwhich”…”�”}”(hj{¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjs¢ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jo¢h´M¶ hjp¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjT¢ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jo¢h´M¶ hjß¡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjáubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj£¢h]”hŒ Description”…”�”}”(hj¥¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj¡¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M¸ hjáubjƒ)�”}”(hŒ_This call sets the internal irqchip state of an interrupt, depending on the value of **which**.”h]”(hŒUThis call sets the internal irqchip state of an interrupt, depending on the value of ”…”�”}”(hj¹¢h²hh³Nh´Nubjz)�”}”(hŒ **which**”h]”hŒwhich”…”�”}”(hjÁ¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj¹¢ubhŒ.”…”�”}”(hj¹¢h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´M· hjáubjƒ)�”}”(hŒiThis function should be called with migration disabled if the interrupt controller has per-cpu registers.”h]”hŒiThis function should be called with migration disabled if the interrupt controller has per-cpu registers.”…”�”}”(hjÚ¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mº hjáubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_has_action (C function)”Œc.irq_has_action”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ&bool irq_has_action (unsigned int irq)”h]”j])�”}”(hŒ%bool irq_has_action(unsigned int irq)”h]”(jc)�”}”(hj†ah]”hŒbool”…”�”}”(hj £h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj£h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MØ ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj£h²hh³j£h´MØ ubj†)�”}”(hŒirq_has_action”h]”jŒ)�”}”(hŒirq_has_action”h]”hŒirq_has_action”…”�”}”(hj)£h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj%£ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj£h²hh³j£h´MØ ubj¥)�”}”(hŒ(unsigned int irq)”h]”j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjE£h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjA£ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjS£h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjA£ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hja£h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjA£ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjo£h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjA£ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hj}£h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjA£ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj=£ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj£h²hh³j£h´MØ ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj£h²hh³j£h´MØ ubah}”(h]”jü¢ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j£h´MØ hjþ¢h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ'Check whether an interrupt is requested”h]”hŒ'Check whether an interrupt is requested”…”�”}”(hj§£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MØ hj¤£h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjþ¢h²hh³j£h´MØ ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj¿£jkj¿£jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒh**Parameters** ``unsigned int irq`` The linux irq number **Return** A snapshot of the current state”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÉ£h]”hŒ Parameters”…”�”}”(hjË£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÇ£ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÜ hjãubj�)�”}”(hhh]”j•)�”}”(hŒ*``unsigned int irq`` The linux irq number ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjè£h]”hŒunsigned int irq”…”�”}”(hjê£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjæ£ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÙ hjâ£ubjµ)�”}”(hhh]”jƒ)�”}”(hŒThe linux irq number”h]”hŒThe linux irq number”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jý£h´MÙ hjþ£ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjâ£ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jý£h´MÙ hjߣubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjãubjƒ)�”}”(hŒ **Return**”h]”jz)�”}”(hj#¤h]”hŒReturn”…”�”}”(hj%¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj!¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÛ hjãubjƒ)�”}”(hŒA snapshot of the current state”h]”hŒA snapshot of the current state”…”�”}”(hj9¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´MÛ hjãubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ!irq_check_status_bit (C function)”Œc.irq_check_status_bit”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒBbool irq_check_status_bit (unsigned int irq, unsigned int bitmask)”h]”j])�”}”(hŒAbool irq_check_status_bit(unsigned int irq, unsigned int bitmask)”h]”(jc)�”}”(hj†ah]”hŒbool”…”�”}”(hjh¤h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjd¤h²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mé ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjv¤h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjd¤h²hh³ju¤h´Mé ubj†)�”}”(hŒirq_check_status_bit”h]”jŒ)�”}”(hŒirq_check_status_bit”h]”hŒirq_check_status_bit”…”�”}”(hjˆ¤h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj„¤ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjd¤h²hh³ju¤h´Mé ubj¥)�”}”(hŒ((unsigned int irq, unsigned int bitmask)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj¤¤h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj ¤ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj²¤h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj ¤ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjÀ¤h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj ¤ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjΤh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj ¤ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjܤh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj ¤ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjœ¤ubj«)�”}”(hŒunsigned int bitmask”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjõ¤h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjñ¤ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjñ¤ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjñ¤ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjñ¤ubjŒ)�”}”(hŒbitmask”h]”hŒbitmask”…”�”}”(hj-¥h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjñ¤ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjœ¤ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjd¤h²hh³ju¤h´Mé ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj`¤h²hh³ju¤h´Mé ubah}”(h]”j[¤ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³ju¤h´Mé hj]¤h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ7Check whether bits in the irq descriptor status are set”h]”hŒ7Check whether bits in the irq descriptor status are set”…”�”}”(hjW¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mé hjT¥h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj]¤h²hh³ju¤h´Mé ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjo¥jkjo¥jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒª**Parameters** ``unsigned int irq`` The linux irq number ``unsigned int bitmask`` The bitmask to evaluate **Return** True if one of the bits in **bitmask** is set”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjy¥h]”hŒ Parameters”…”�”}”(hj{¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjw¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mí hjs¥ubj�)�”}”(hhh]”(j•)�”}”(hŒ*``unsigned int irq`` The linux irq number ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hj˜¥h]”hŒunsigned int irq”…”�”}”(hjš¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj–¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mê hj’¥ubjµ)�”}”(hhh]”jƒ)�”}”(hŒThe linux irq number”h]”hŒThe linux irq number”…”�”}”(hj±¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j­¥h´Mê hj®¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj’¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j­¥h´Mê hj�¥ubj•)�”}”(hŒ1``unsigned int bitmask`` The bitmask to evaluate ”h]”(j›)�”}”(hŒ``unsigned int bitmask``”h]”j)�”}”(hjÑ¥h]”hŒunsigned int bitmask”…”�”}”(hjÓ¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÏ¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Më hjË¥ubjµ)�”}”(hhh]”jƒ)�”}”(hŒThe bitmask to evaluate”h]”hŒThe bitmask to evaluate”…”�”}”(hjê¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jæ¥h´Më hjç¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjË¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jæ¥h´Më hj�¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjs¥ubjƒ)�”}”(hŒ **Return**”h]”jz)�”}”(hj ¦h]”hŒReturn”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj ¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mí hjs¥ubjƒ)�”}”(hŒ-True if one of the bits in **bitmask** is set”h]”(hŒTrue if one of the bits in ”…”�”}”(hj"¦h²hh³Nh´Nubjz)�”}”(hŒ **bitmask**”h]”hŒbitmask”…”�”}”(hj*¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj"¦ubhŒ is set”…”�”}”(hj"¦h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:505: ./kernel/irq/manage.c”h´Mí hjs¥ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_set_chip (C function)”Œc.irq_set_chip”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ@int irq_set_chip (unsigned int irq, const struct irq_chip *chip)”h]”j])�”}”(hŒ?int irq_set_chip(unsigned int irq, const struct irq_chip *chip)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjc¦h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj_¦h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´K'ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjr¦h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj_¦h²hh³jq¦h´K'ubj†)�”}”(hŒ irq_set_chip”h]”jŒ)�”}”(hŒ irq_set_chip”h]”hŒ irq_set_chip”…”�”}”(hj„¦h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj€¦ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj_¦h²hh³jq¦h´K'ubj¥)�”}”(hŒ/(unsigned int irq, const struct irq_chip *chip)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj ¦h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjœ¦ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®¦h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjœ¦ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj¼¦h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjœ¦ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjʦh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjœ¦ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjئh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjœ¦ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj˜¦ubj«)�”}”(hŒconst struct irq_chip *chip”h]”(j±)�”}”(hj�h]”hŒconst”…”�”}”(hjñ¦h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjí¦ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþ¦h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjí¦ubj±)�”}”(hj´h]”hŒstruct”…”�”}”(hj §h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjí¦ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjí¦ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_chip”h]”hŒirq_chip”…”�”}”(hj*§h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj'§ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j,§Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj†¦sbŒc.irq_set_chip”†”asbuh1hhjí¦ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJ§h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjí¦ubj )�”}”(hj h]”hŒ*”…”�”}”(hjX§h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjí¦ubjŒ)�”}”(hŒchip”h]”hŒchip”…”�”}”(hje§h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjí¦ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj˜¦ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj_¦h²hh³jq¦h´K'ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj[¦h²hh³jq¦h´K'ubah}”(h]”jV¦ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jq¦h´K'hjX¦h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒset the irq chip for an irq”h]”hŒset the irq chip for an irq”…”�”}”(hj�§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´K'hjŒ§h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjX¦h²hh³jq¦h´K'ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj§§jkj§§jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒ~**Parameters** ``unsigned int irq`` irq number ``const struct irq_chip *chip`` pointer to irq chip description structure”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj±§h]”hŒ Parameters”…”�”}”(hj³§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj¯§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´K+hj«§ubj�)�”}”(hhh]”(j•)�”}”(hŒ ``unsigned int irq`` irq number ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjЧh]”hŒunsigned int irq”…”�”}”(hjÒ§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjΧubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´K(hjʧubjµ)�”}”(hhh]”jƒ)�”}”(hŒ irq number”h]”hŒ irq number”…”�”}”(hjé§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jå§h´K(hjæ§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjʧubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jå§h´K(hjǧubj•)�”}”(hŒI``const struct irq_chip *chip`` pointer to irq chip description structure”h]”(j›)�”}”(hŒ``const struct irq_chip *chip``”h]”j)�”}”(hj ¨h]”hŒconst struct irq_chip *chip”…”�”}”(hj ¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´K*hj¨ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ)pointer to irq chip description structure”h]”hŒ)pointer to irq chip description structure”…”�”}”(hj"¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´K)hj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¨ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j¨h´K*hjǧubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj«§ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_set_irq_type (C function)”Œc.irq_set_irq_type”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ:int irq_set_irq_type (unsigned int irq, unsigned int type)”h]”j])�”}”(hŒ9int irq_set_irq_type(unsigned int irq, unsigned int type)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjc¨h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj_¨h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´K=ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjr¨h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj_¨h²hh³jq¨h´K=ubj†)�”}”(hŒirq_set_irq_type”h]”jŒ)�”}”(hŒirq_set_irq_type”h]”hŒirq_set_irq_type”…”�”}”(hj„¨h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj€¨ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj_¨h²hh³jq¨h´K=ubj¥)�”}”(hŒ%(unsigned int irq, unsigned int type)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj ¨h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjœ¨ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®¨h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjœ¨ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj¼¨h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjœ¨ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjʨh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjœ¨ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjبh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjœ¨ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj˜¨ubj«)�”}”(hŒunsigned int type”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjñ¨h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjí¨ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÿ¨h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjí¨ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj ©h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjí¨ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjí¨ubjŒ)�”}”(hŒtype”h]”hŒtype”…”�”}”(hj)©h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjí¨ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj˜¨ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj_¨h²hh³jq¨h´K=ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj[¨h²hh³jq¨h´K=ubah}”(h]”jV¨ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jq¨h´K=hjX¨h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ#set the irq trigger type for an irq”h]”hŒ#set the irq trigger type for an irq”…”�”}”(hjS©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´K=hjP©h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjX¨h²hh³jq¨h´K=ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjk©jkjk©jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒ‚**Parameters** ``unsigned int irq`` irq number ``unsigned int type`` IRQ_TYPE_{LEVEL,EDGE}_* value - see include/linux/irq.h”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hju©h]”hŒ Parameters”…”�”}”(hjw©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjs©ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´KAhjo©ubj�)�”}”(hhh]”(j•)�”}”(hŒ ``unsigned int irq`` irq number ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hj”©h]”hŒunsigned int irq”…”�”}”(hj–©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj’©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´K>hjŽ©ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ irq number”h]”hŒ irq number”…”�”}”(hj­©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j©©h´K>hjª©ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjŽ©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j©©h´K>hj‹©ubj•)�”}”(hŒM``unsigned int type`` IRQ_TYPE_{LEVEL,EDGE}_* value - see include/linux/irq.h”h]”(j›)�”}”(hŒ``unsigned int type``”h]”j)�”}”(hjÍ©h]”hŒunsigned int type”…”�”}”(hjÏ©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjË©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´K@hjÇ©ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ7IRQ_TYPE_{LEVEL,EDGE}_* value - see include/linux/irq.h”h]”hŒ7IRQ_TYPE_{LEVEL,EDGE}_* value - see include/linux/irq.h”…”�”}”(hjæ©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´K?hjã©ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÇ©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jâ©h´K@hj‹©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjo©ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ!irq_set_handler_data (C function)”Œc.irq_set_handler_data”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ7int irq_set_handler_data (unsigned int irq, void *data)”h]”j])�”}”(hŒ6int irq_set_handler_data(unsigned int irq, void *data)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj'ªh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj#ªh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´KJubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj6ªh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj#ªh²hh³j5ªh´KJubj†)�”}”(hŒirq_set_handler_data”h]”jŒ)�”}”(hŒirq_set_handler_data”h]”hŒirq_set_handler_data”…”�”}”(hjHªh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjDªubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj#ªh²hh³j5ªh´KJubj¥)�”}”(hŒ(unsigned int irq, void *data)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjdªh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj`ªubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjrªh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj`ªubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj€ªh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj`ªubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽªh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj`ªubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjœªh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj`ªubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj\ªubj«)�”}”(hŒ void *data”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjµªh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj±ªubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj±ªubj )�”}”(hj h]”hŒ*”…”�”}”(hjѪh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj±ªubjŒ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjÞªh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj±ªubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj\ªubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj#ªh²hh³j5ªh´KJubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjªh²hh³j5ªh´KJubah}”(h]”jªah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j5ªh´KJhjªh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒset irq handler data for an irq”h]”hŒset irq handler data for an irq”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´KJhj«h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjªh²hh³j5ªh´KJubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj «jkj «jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒ®**Parameters** ``unsigned int irq`` Interrupt number ``void *data`` Pointer to interrupt specific data **Description** Set the hardware irq controller data for an irq”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj*«h]”hŒ Parameters”…”�”}”(hj,«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj(«ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´KNhj$«ubj�)�”}”(hhh]”(j•)�”}”(hŒ&``unsigned int irq`` Interrupt number ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjI«h]”hŒunsigned int irq”…”�”}”(hjK«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjG«ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´KKhjC«ubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt number”h]”hŒInterrupt number”…”�”}”(hjb«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j^«h´KKhj_«ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjC«ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j^«h´KKhj@«ubj•)�”}”(hŒ2``void *data`` Pointer to interrupt specific data ”h]”(j›)�”}”(hŒ``void *data``”h]”j)�”}”(hj‚«h]”hŒ void *data”…”�”}”(hj„«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj€«ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´KLhj|«ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Pointer to interrupt specific data”h]”hŒ"Pointer to interrupt specific data”…”�”}”(hj›«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j—«h´KLhj˜«ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj|«ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j—«h´KLhj@«ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj$«ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj½«h]”hŒ Description”…”�”}”(hj¿«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj»«ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´KNhj$«ubjƒ)�”}”(hŒ/Set the hardware irq controller data for an irq”h]”hŒ/Set the hardware irq controller data for an irq”…”�”}”(hjÓ«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´KMhj$«ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_set_chip_data (C function)”Œc.irq_set_chip_data”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ4int irq_set_chip_data (unsigned int irq, void *data)”h]”j])�”}”(hŒ3int irq_set_chip_data(unsigned int irq, void *data)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjþ«h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Kzubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjþ«h²hh³j¬h´Kzubj†)�”}”(hŒirq_set_chip_data”h]”jŒ)�”}”(hŒirq_set_chip_data”h]”hŒirq_set_chip_data”…”�”}”(hj#¬h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¬ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjþ«h²hh³j¬h´Kzubj¥)�”}”(hŒ(unsigned int irq, void *data)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj?¬h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj;¬ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjM¬h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj;¬ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj[¬h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj;¬ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hji¬h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj;¬ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjw¬h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj;¬ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj7¬ubj«)�”}”(hŒ void *data”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj�¬h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjŒ¬ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjž¬h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjŒ¬ubj )�”}”(hj h]”hŒ*”…”�”}”(hj¬¬h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjŒ¬ubjŒ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj¹¬h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjŒ¬ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj7¬ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjþ«h²hh³j¬h´Kzubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjú«h²hh³j¬h´Kzubah}”(h]”jõ«ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j¬h´Kzhj÷«h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒset irq chip data for an irq”h]”hŒset irq chip data for an irq”…”�”}”(hjã¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Kzhjà¬h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj÷«h²hh³j¬h´Kzubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjû¬jkjû¬jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒ£**Parameters** ``unsigned int irq`` Interrupt number ``void *data`` Pointer to chip specific data **Description** Set the hardware irq chip data for an irq”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj­h]”hŒ Parameters”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´K~hjÿ¬ubj�)�”}”(hhh]”(j•)�”}”(hŒ&``unsigned int irq`` Interrupt number ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hj$­h]”hŒunsigned int irq”…”�”}”(hj&­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj"­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´K{hj­ubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt number”h]”hŒInterrupt number”…”�”}”(hj=­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j9­h´K{hj:­ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j9­h´K{hj­ubj•)�”}”(hŒ-``void *data`` Pointer to chip specific data ”h]”(j›)�”}”(hŒ``void *data``”h]”j)�”}”(hj]­h]”hŒ void *data”…”�”}”(hj_­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj[­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´K|hjW­ubjµ)�”}”(hhh]”jƒ)�”}”(hŒPointer to chip specific data”h]”hŒPointer to chip specific data”…”�”}”(hjv­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jr­h´K|hjs­ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjW­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jr­h´K|hj­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÿ¬ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj˜­h]”hŒ Description”…”�”}”(hjš­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj–­ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´K~hjÿ¬ubjƒ)�”}”(hŒ)Set the hardware irq chip data for an irq”h]”hŒ)Set the hardware irq chip data for an irq”…”�”}”(hj®­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´K}hjÿ¬ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒhandle_nested_irq (C function)”Œc.handle_nested_irq”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ)void handle_nested_irq (unsigned int irq)”h]”j])�”}”(hŒ(void handle_nested_irq(unsigned int irq)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÝ­h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÙ­h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M8ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjì­h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÙ­h²hh³jë­h´M8ubj†)�”}”(hŒhandle_nested_irq”h]”jŒ)�”}”(hŒhandle_nested_irq”h]”hŒhandle_nested_irq”…”�”}”(hjþ­h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjú­ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjÙ­h²hh³jë­h´M8ubj¥)�”}”(hŒ(unsigned int irq)”h]”j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj®ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(®h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj®ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj6®h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj®ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjD®h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj®ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjR®h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj®ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj®ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjÙ­h²hh³jë­h´M8ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjÕ­h²hh³jë­h´M8ubah}”(h]”jЭah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jë­h´M8hjÒ­h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ%Handle a nested irq from a irq thread”h]”hŒ%Handle a nested irq from a irq thread”…”�”}”(hj|®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M8hjy®h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjÒ­h²hh³jë­h´M8ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj”®jkj”®jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒÖ**Parameters** ``unsigned int irq`` the interrupt number **Description** Handle interrupts which are nested into a threaded interrupt handler. The handler function is called inside the calling threads context.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjž®h]”hŒ Parameters”…”�”}”(hj ®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjœ®ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M<hj˜®ubj�)�”}”(hhh]”j•)�”}”(hŒ*``unsigned int irq`` the interrupt number ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hj½®h]”hŒunsigned int irq”…”�”}”(hj¿®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj»®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M9hj·®ubjµ)�”}”(hhh]”jƒ)�”}”(hŒthe interrupt number”h]”hŒthe interrupt number”…”�”}”(hjÖ®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÒ®h´M9hjÓ®ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj·®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÒ®h´M9hj´®ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj˜®ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjø®h]”hŒ Description”…”�”}”(hjú®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjö®ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M;hj˜®ubjƒ)�”}”(hŒˆHandle interrupts which are nested into a threaded interrupt handler. The handler function is called inside the calling threads context.”h]”hŒˆHandle interrupts which are nested into a threaded interrupt handler. The handler function is called inside the calling threads context.”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M:hj˜®ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒhandle_simple_irq (C function)”Œc.handle_simple_irq”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ.void handle_simple_irq (struct irq_desc *desc)”h]”j])�”}”(hŒ-void handle_simple_irq(struct irq_desc *desc)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj=¯h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj9¯h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M\ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjL¯h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj9¯h²hh³jK¯h´M\ubj†)�”}”(hŒhandle_simple_irq”h]”jŒ)�”}”(hŒhandle_simple_irq”h]”hŒhandle_simple_irq”…”�”}”(hj^¯h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjZ¯ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj9¯h²hh³jK¯h´M\ubj¥)�”}”(hŒ(struct irq_desc *desc)”h]”j«)�”}”(hŒstruct irq_desc *desc”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjz¯h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjv¯ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‡¯h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjv¯ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_desc”h]”hŒirq_desc”…”�”}”(hj˜¯h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj•¯ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jš¯Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj`¯sbŒc.handle_simple_irq”†”asbuh1hhjv¯ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¸¯h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjv¯ubj )�”}”(hj h]”hŒ*”…”�”}”(hjƯh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjv¯ubjŒ)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hjÓ¯h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjv¯ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjr¯ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj9¯h²hh³jK¯h´M\ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj5¯h²hh³jK¯h´M\ubah}”(h]”j0¯ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jK¯h´M\hj2¯h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ!Simple and software-decoded IRQs.”h]”hŒ!Simple and software-decoded IRQs.”…”�”}”(hjý¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M\hjú¯h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj2¯h²hh³jK¯h´M\ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj°jkj°jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hXb**Parameters** ``struct irq_desc *desc`` the interrupt description structure for this irq **Description** Simple interrupts are either sent from a demultiplexing interrupt handler or come from hardware, where no interrupt hardware control is necessary. **Note** The caller is expected to handle the ack, clear, mask and unmask issues if necessary.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj°h]”hŒ Parameters”…”�”}”(hj!°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M`hj°ubj�)�”}”(hhh]”j•)�”}”(hŒK``struct irq_desc *desc`` the interrupt description structure for this irq ”h]”(j›)�”}”(hŒ``struct irq_desc *desc``”h]”j)�”}”(hj>°h]”hŒstruct irq_desc *desc”…”�”}”(hj@°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj<°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M]hj8°ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ0the interrupt description structure for this irq”h]”hŒ0the interrupt description structure for this irq”…”�”}”(hjW°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jS°h´M]hjT°ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj8°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jS°h´M]hj5°ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj°ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjy°h]”hŒ Description”…”�”}”(hj{°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjw°ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M_hj°ubjƒ)�”}”(hŒ’Simple interrupts are either sent from a demultiplexing interrupt handler or come from hardware, where no interrupt hardware control is necessary.”h]”hŒ’Simple interrupts are either sent from a demultiplexing interrupt handler or come from hardware, where no interrupt hardware control is necessary.”…”�”}”(hj�°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M^hj°ubjƒ)�”}”(hŒ**Note**”h]”jz)�”}”(hj °h]”hŒNote”…”�”}”(hj¢°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjž°ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mbhj°ubjƒ)�”}”(hŒUThe caller is expected to handle the ack, clear, mask and unmask issues if necessary.”h]”hŒUThe caller is expected to handle the ack, clear, mask and unmask issues if necessary.”…”�”}”(hj¶°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mchj°ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ!handle_untracked_irq (C function)”Œc.handle_untracked_irq”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ1void handle_untracked_irq (struct irq_desc *desc)”h]”j])�”}”(hŒ0void handle_untracked_irq(struct irq_desc *desc)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjå°h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjá°h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Myubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjô°h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjá°h²hh³jó°h´Myubj†)�”}”(hŒhandle_untracked_irq”h]”jŒ)�”}”(hŒhandle_untracked_irq”h]”hŒhandle_untracked_irq”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj±ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjá°h²hh³jó°h´Myubj¥)�”}”(hŒ(struct irq_desc *desc)”h]”j«)�”}”(hŒstruct irq_desc *desc”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj"±h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj±ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/±h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj±ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_desc”h]”hŒirq_desc”…”�”}”(hj@±h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj=±ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jB±Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj±sbŒc.handle_untracked_irq”†”asbuh1hhj±ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`±h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj±ubj )�”}”(hj h]”hŒ*”…”�”}”(hjn±h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj±ubjŒ)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hj{±h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj±ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj±ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjá°h²hh³jó°h´Myubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjݰh²hh³jó°h´Myubah}”(h]”jذah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jó°h´MyhjÚ°h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ!Simple and software-decoded IRQs.”h]”hŒ!Simple and software-decoded IRQs.”…”�”}”(hj¥±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Myhj¢±h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjÚ°h²hh³jó°h´Myubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj½±jkj½±jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX**Parameters** ``struct irq_desc *desc`` the interrupt description structure for this irq **Description** Untracked interrupts are sent from a demultiplexing interrupt handler when the demultiplexer does not know which device it its multiplexed irq domain generated the interrupt. IRQ's handled through here are not subjected to stats tracking, randomness, or spurious interrupt detection. **Note** Like handle_simple_irq, the caller is expected to handle the ack, clear, mask and unmask issues if necessary.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjDZh]”hŒ Parameters”…”�”}”(hjɱh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjűubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M}hjÁ±ubj�)�”}”(hhh]”j•)�”}”(hŒK``struct irq_desc *desc`` the interrupt description structure for this irq ”h]”(j›)�”}”(hŒ``struct irq_desc *desc``”h]”j)�”}”(hjæ±h]”hŒstruct irq_desc *desc”…”�”}”(hjè±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjä±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mzhjà±ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ0the interrupt description structure for this irq”h]”hŒ0the interrupt description structure for this irq”…”�”}”(hjÿ±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jû±h´Mzhjü±ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjà±ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jû±h´Mzhjݱubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÁ±ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj!²h]”hŒ Description”…”�”}”(hj#²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M|hjÁ±ubjƒ)�”}”(hXUntracked interrupts are sent from a demultiplexing interrupt handler when the demultiplexer does not know which device it its multiplexed irq domain generated the interrupt. IRQ's handled through here are not subjected to stats tracking, randomness, or spurious interrupt detection.”h]”hXUntracked interrupts are sent from a demultiplexing interrupt handler when the demultiplexer does not know which device it its multiplexed irq domain generated the interrupt. IRQ’s handled through here are not subjected to stats tracking, randomness, or spurious interrupt detection.”…”�”•}”(hj7²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M{hjÁ±ubjƒ)�”}”(hŒ**Note**”h]”jz)�”}”(hjH²h]”hŒNote”…”�”}”(hjJ²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjF²ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M�hjÁ±ubjƒ)�”}”(hŒmLike handle_simple_irq, the caller is expected to handle the ack, clear, mask and unmask issues if necessary.”h]”hŒmLike handle_simple_irq, the caller is expected to handle the ack, clear, mask and unmask issues if necessary.”…”�”}”(hj^²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M‚hjÁ±ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒhandle_level_irq (C function)”Œc.handle_level_irq”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ-void handle_level_irq (struct irq_desc *desc)”h]”j])�”}”(hŒ,void handle_level_irq(struct irq_desc *desc)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj�²h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj‰²h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M©ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœ²h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj‰²h²hh³j›²h´M©ubj†)�”}”(hŒhandle_level_irq”h]”jŒ)�”}”(hŒhandle_level_irq”h]”hŒhandle_level_irq”…”�”}”(hj®²h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjª²ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj‰²h²hh³j›²h´M©ubj¥)�”}”(hŒ(struct irq_desc *desc)”h]”j«)�”}”(hŒstruct irq_desc *desc”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjʲh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjƲubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjײh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjƲubh)�”}”(hhh]”jŒ)�”}”(hŒirq_desc”h]”hŒirq_desc”…”�”}”(hjè²h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjå²ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j게modname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj°²sbŒc.handle_level_irq”†”asbuh1hhjƲubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjƲubj )�”}”(hj h]”hŒ*”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjƲubjŒ)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hj#³h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjƲubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj²ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj‰²h²hh³j›²h´M©ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj…²h²hh³j›²h´M©ubah}”(h]”j€²ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j›²h´M©hj‚²h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒLevel type irq handler”h]”hŒLevel type irq handler”…”�”}”(hjM³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M©hjJ³h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj‚²h²hh³j›²h´M©ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjje³jkje³jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX\**Parameters** ``struct irq_desc *desc`` the interrupt description structure for this irq **Description** Level type interrupts are active as long as the hardware line has the active level. This may require to mask the interrupt and unmask it after the associated handler has acknowledged the device, so the interrupt line is back to inactive.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjo³h]”hŒ Parameters”…”�”}”(hjq³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjm³ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M­hji³ubj�)�”}”(hhh]”j•)�”}”(hŒK``struct irq_desc *desc`` the interrupt description structure for this irq ”h]”(j›)�”}”(hŒ``struct irq_desc *desc``”h]”j)�”}”(hj޳h]”hŒstruct irq_desc *desc”…”�”}”(hj�³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŒ³ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mªhjˆ³ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ0the interrupt description structure for this irq”h]”hŒ0the interrupt description structure for this irq”…”�”}”(hj§³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j£³h´Mªhj¤³ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjˆ³ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j£³h´Mªhj…³ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hji³ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjɳh]”hŒ Description”…”�”}”(hj˳h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjdzubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M¬hji³ubjƒ)�”}”(hŒíLevel type interrupts are active as long as the hardware line has the active level. This may require to mask the interrupt and unmask it after the associated handler has acknowledged the device, so the interrupt line is back to inactive.”h]”hŒíLevel type interrupts are active as long as the hardware line has the active level. This may require to mask the interrupt and unmask it after the associated handler has acknowledged the device, so the interrupt line is back to inactive.”…”�”}”(hjß³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M«hji³ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒhandle_fasteoi_irq (C function)”Œc.handle_fasteoi_irq”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ/void handle_fasteoi_irq (struct irq_desc *desc)”h]”j])�”}”(hŒ.void handle_fasteoi_irq(struct irq_desc *desc)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj ´h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÜubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj ´h²hh³j´h´MÜubj†)�”}”(hŒhandle_fasteoi_irq”h]”jŒ)�”}”(hŒhandle_fasteoi_irq”h]”hŒhandle_fasteoi_irq”…”�”}”(hj/´h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj+´ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj ´h²hh³j´h´MÜubj¥)�”}”(hŒ(struct irq_desc *desc)”h]”j«)�”}”(hŒstruct irq_desc *desc”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjK´h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjG´ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjX´h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjG´ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_desc”h]”hŒirq_desc”…”�”}”(hji´h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjf´ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jk´Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj1´sbŒc.handle_fasteoi_irq”†”asbuh1hhjG´ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‰´h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjG´ubj )�”}”(hj h]”hŒ*”…”�”}”(hj—´h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjG´ubjŒ)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hj¤´h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjG´ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjC´ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj ´h²hh³j´h´MÜubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj´h²hh³j´h´MÜubah}”(h]”j´ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j´h´MÜhj´h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ'irq handler for transparent controllers”h]”hŒ'irq handler for transparent controllers”…”�”}”(hjδh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÜhjË´h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj´h²hh³j´h´MÜubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjæ´jkjæ´jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hXN**Parameters** ``struct irq_desc *desc`` the interrupt description structure for this irq **Description** Only a single callback will be issued to the chip: an ->eoi() call when the interrupt has been serviced. This enables support for modern forms of interrupt handlers, which handle the flow details in hardware, transparently.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjð´h]”hŒ Parameters”…”�”}”(hjò´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjî´ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Màhjê´ubj�)�”}”(hhh]”j•)�”}”(hŒK``struct irq_desc *desc`` the interrupt description structure for this irq ”h]”(j›)�”}”(hŒ``struct irq_desc *desc``”h]”j)�”}”(hjµh]”hŒstruct irq_desc *desc”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj µubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÝhj µubjµ)�”}”(hhh]”jƒ)�”}”(hŒ0the interrupt description structure for this irq”h]”hŒ0the interrupt description structure for this irq”…”�”}”(hj(µh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j$µh´MÝhj%µubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj µubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j$µh´MÝhjµubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjê´ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjJµh]”hŒ Description”…”�”}”(hjLµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjHµubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mßhjê´ubjƒ)�”}”(hŒßOnly a single callback will be issued to the chip: an ->eoi() call when the interrupt has been serviced. This enables support for modern forms of interrupt handlers, which handle the flow details in hardware, transparently.”h]”hŒßOnly a single callback will be issued to the chip: an ->eoi() call when the interrupt has been serviced. This enables support for modern forms of interrupt handlers, which handle the flow details in hardware, transparently.”…”�”}”(hj`µh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÞhjê´ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒhandle_fasteoi_nmi (C function)”Œc.handle_fasteoi_nmi”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ/void handle_fasteoi_nmi (struct irq_desc *desc)”h]”j])�”}”(hŒ.void handle_fasteoi_nmi(struct irq_desc *desc)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj�µh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj‹µh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjžµh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj‹µh²hh³j�µh´M ubj†)�”}”(hŒhandle_fasteoi_nmi”h]”jŒ)�”}”(hŒhandle_fasteoi_nmi”h]”hŒhandle_fasteoi_nmi”…”�”}”(hj°µh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¬µubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj‹µh²hh³j�µh´M ubj¥)�”}”(hŒ(struct irq_desc *desc)”h]”j«)�”}”(hŒstruct irq_desc *desc”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj̵h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjȵubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙµh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjȵubh)�”}”(hhh]”jŒ)�”}”(hŒirq_desc”h]”hŒirq_desc”…”�”}”(hjêµh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjçµubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j쵌modname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj²µsbŒc.handle_fasteoi_nmi”†”asbuh1hhjȵubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ¶h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjȵubj )�”}”(hj h]”hŒ*”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjȵubjŒ)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hj%¶h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjȵubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjĵubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj‹µh²hh³j�µh´M ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj‡µh²hh³j�µh´M ubah}”(h]”j‚µah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j�µh´M hj„µh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ#irq handler for NMI interrupt lines”h]”hŒ#irq handler for NMI interrupt lines”…”�”}”(hjO¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M hjL¶h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj„µh²hh³j�µh´M ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjg¶jkjg¶jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX·**Parameters** ``struct irq_desc *desc`` the interrupt description structure for this irq **Description** A simple NMI-safe handler, considering the restrictions from request_nmi. Only a single callback will be issued to the chip: an ->eoi() call when the interrupt has been serviced. This enables support for modern forms of interrupt handlers, which handle the flow details in hardware, transparently.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjq¶h]”hŒ Parameters”…”�”}”(hjs¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjo¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mhjk¶ubj�)�”}”(hhh]”j•)�”}”(hŒK``struct irq_desc *desc`` the interrupt description structure for this irq ”h]”(j›)�”}”(hŒ``struct irq_desc *desc``”h]”j)�”}”(hj�¶h]”hŒstruct irq_desc *desc”…”�”}”(hj’¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj޶ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mhjжubjµ)�”}”(hhh]”jƒ)�”}”(hŒ0the interrupt description structure for this irq”h]”hŒ0the interrupt description structure for this irq”…”�”}”(hj©¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j¥¶h´Mhj¦¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjжubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j¥¶h´Mhj‡¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjk¶ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj˶h]”hŒ Description”…”�”}”(hjͶh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjɶubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mhjk¶ubjˆ)�”}”(hX*A simple NMI-safe handler, considering the restrictions from request_nmi. Only a single callback will be issued to the chip: an ->eoi() call when the interrupt has been serviced. This enables support for modern forms of interrupt handlers, which handle the flow details in hardware, transparently.”h]”(jƒ)�”}”(hŒIA simple NMI-safe handler, considering the restrictions from request_nmi.”h]”hŒIA simple NMI-safe handler, considering the restrictions from request_nmi.”…”�”}”(hjå¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mhjá¶ubjƒ)�”}”(hŒßOnly a single callback will be issued to the chip: an ->eoi() call when the interrupt has been serviced. This enables support for modern forms of interrupt handlers, which handle the flow details in hardware, transparently.”h]”hŒßOnly a single callback will be issued to the chip: an ->eoi() call when the interrupt has been serviced. This enables support for modern forms of interrupt handlers, which handle the flow details in hardware, transparently.”…”�”}”(hjô¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mhjá¶ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆh³jó¶h´Mhjk¶ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒhandle_edge_irq (C function)”Œc.handle_edge_irq”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ,void handle_edge_irq (struct irq_desc *desc)”h]”j])�”}”(hŒ+void handle_edge_irq(struct irq_desc *desc)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj)·h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj%·h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M.ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8·h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj%·h²hh³j7·h´M.ubj†)�”}”(hŒhandle_edge_irq”h]”jŒ)�”}”(hŒhandle_edge_irq”h]”hŒhandle_edge_irq”…”�”}”(hjJ·h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjF·ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj%·h²hh³j7·h´M.ubj¥)�”}”(hŒ(struct irq_desc *desc)”h]”j«)�”}”(hŒstruct irq_desc *desc”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjf·h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjb·ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjs·h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjb·ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_desc”h]”hŒirq_desc”…”�”}”(hj„·h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj�·ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j†·Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjL·sbŒc.handle_edge_irq”†”asbuh1hhjb·ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤·h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjb·ubj )�”}”(hj h]”hŒ*”…”�”}”(hj²·h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjb·ubjŒ)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hj¿·h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjb·ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj^·ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj%·h²hh³j7·h´M.ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj!·h²hh³j7·h´M.ubah}”(h]”j·ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j7·h´M.hj·h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒedge type IRQ handler”h]”hŒedge type IRQ handler”…”�”}”(hjé·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M.hjæ·h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj·h²hh³j7·h´M.ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj¸jkj¸jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hXÑ**Parameters** ``struct irq_desc *desc`` the interrupt description structure for this irq **Description** Interrupt occurs on the falling and/or rising edge of a hardware signal. The occurrence is latched into the irq controller hardware and must be acked in order to be reenabled. After the ack another interrupt can happen on the same source even before the first one is handled by the associated event handler. If this happens it might be necessary to disable (mask) the interrupt depending on the controller hardware. This requires to reenable the interrupt inside of the loop which handles the interrupts which have arrived while the handler was running. If all pending interrupts are handled, the loop is left.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj ¸h]”hŒ Parameters”…”�”}”(hj ¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj ¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M2hj¸ubj�)�”}”(hhh]”j•)�”}”(hŒK``struct irq_desc *desc`` the interrupt description structure for this irq ”h]”(j›)�”}”(hŒ``struct irq_desc *desc``”h]”j)�”}”(hj*¸h]”hŒstruct irq_desc *desc”…”�”}”(hj,¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj(¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M/hj$¸ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ0the interrupt description structure for this irq”h]”hŒ0the interrupt description structure for this irq”…”�”}”(hjC¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j?¸h´M/hj@¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj$¸ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j?¸h´M/hj!¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj¸ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hje¸h]”hŒ Description”…”�”}”(hjg¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjc¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M1hj¸ubjƒ)�”}”(hXbInterrupt occurs on the falling and/or rising edge of a hardware signal. The occurrence is latched into the irq controller hardware and must be acked in order to be reenabled. After the ack another interrupt can happen on the same source even before the first one is handled by the associated event handler. If this happens it might be necessary to disable (mask) the interrupt depending on the controller hardware. This requires to reenable the interrupt inside of the loop which handles the interrupts which have arrived while the handler was running. If all pending interrupts are handled, the loop is left.”h]”hXbInterrupt occurs on the falling and/or rising edge of a hardware signal. The occurrence is latched into the irq controller hardware and must be acked in order to be reenabled. After the ack another interrupt can happen on the same source even before the first one is handled by the associated event handler. If this happens it might be necessary to disable (mask) the interrupt depending on the controller hardware. This requires to reenable the interrupt inside of the loop which handles the interrupts which have arrived while the handler was running. If all pending interrupts are handled, the loop is left.”…”�”}”(hj{¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M0hj¸ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ#handle_fasteoi_ack_irq (C function)”Œc.handle_fasteoi_ack_irq”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ3void handle_fasteoi_ack_irq (struct irq_desc *desc)”h]”j])�”}”(hŒ2void handle_fasteoi_ack_irq(struct irq_desc *desc)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjª¸h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj¦¸h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Muubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¹¸h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¦¸h²hh³j¸¸h´Muubj†)�”}”(hŒhandle_fasteoi_ack_irq”h]”jŒ)�”}”(hŒhandle_fasteoi_ack_irq”h]”hŒhandle_fasteoi_ack_irq”…”�”}”(hj˸h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjǸubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj¦¸h²hh³j¸¸h´Muubj¥)�”}”(hŒ(struct irq_desc *desc)”h]”j«)�”}”(hŒstruct irq_desc *desc”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjç¸h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjã¸ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjô¸h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjã¸ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_desc”h]”hŒirq_desc”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¹ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j¹Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj͸sbŒc.handle_fasteoi_ack_irq”†”asbuh1hhjã¸ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%¹h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjã¸ubj )�”}”(hj h]”hŒ*”…”�”}”(hj3¹h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjã¸ubjŒ)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hj@¹h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjã¸ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj߸ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj¦¸h²hh³j¸¸h´Muubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj¢¸h²hh³j¸¸h´Muubah}”(h]”j�¸ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j¸¸h´MuhjŸ¸h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒAirq handler for edge hierarchy stacked on transparent controllers”h]”hŒAirq handler for edge hierarchy stacked on transparent controllers”…”�”}”(hjj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Muhjg¹h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjŸ¸h²hh³j¸¸h´Muubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj‚¹jkj‚¹jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒë**Parameters** ``struct irq_desc *desc`` the interrupt description structure for this irq **Description** Like handle_fasteoi_irq(), but for use with hierarchy where the irq_chip also needs to have its ->irq_ack() function called.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjŒ¹h]”hŒ Parameters”…”�”}”(hj޹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjйubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Myhj†¹ubj�)�”}”(hhh]”j•)�”}”(hŒK``struct irq_desc *desc`` the interrupt description structure for this irq ”h]”(j›)�”}”(hŒ``struct irq_desc *desc``”h]”j)�”}”(hj«¹h]”hŒstruct irq_desc *desc”…”�”}”(hj­¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj©¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mxhj¥¹ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ0the interrupt description structure for this irq”h]”hŒ0the interrupt description structure for this irq”…”�”}”(hjĹh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÀ¹h´MxhjÁ¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¥¹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÀ¹h´Mxhj¢¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj†¹ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjæ¹h]”hŒ Description”…”�”}”(hjè¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjä¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mzhj†¹ubjƒ)�”}”(hŒ|Like handle_fasteoi_irq(), but for use with hierarchy where the irq_chip also needs to have its ->irq_ack() function called.”h]”hŒ|Like handle_fasteoi_irq(), but for use with hierarchy where the irq_chip also needs to have its ->irq_ack() function called.”…”�”}”(hjü¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Myhj†¹ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ$handle_fasteoi_mask_irq (C function)”Œc.handle_fasteoi_mask_irq”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ4void handle_fasteoi_mask_irq (struct irq_desc *desc)”h]”j])�”}”(hŒ3void handle_fasteoi_mask_irq(struct irq_desc *desc)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj+ºh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj'ºh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M›ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:ºh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj'ºh²hh³j9ºh´M›ubj†)�”}”(hŒhandle_fasteoi_mask_irq”h]”jŒ)�”}”(hŒhandle_fasteoi_mask_irq”h]”hŒhandle_fasteoi_mask_irq”…”�”}”(hjLºh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjHºubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj'ºh²hh³j9ºh´M›ubj¥)�”}”(hŒ(struct irq_desc *desc)”h]”j«)�”}”(hŒstruct irq_desc *desc”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjhºh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjdºubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjuºh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjdºubh)�”}”(hhh]”jŒ)�”}”(hŒirq_desc”h]”hŒirq_desc”…”�”}”(hj†ºh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjƒºubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jˆºŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjNºsbŒc.handle_fasteoi_mask_irq”†”asbuh1hhjdºubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦ºh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjdºubj )�”}”(hj h]”hŒ*”…”�”}”(hj´ºh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjdºubjŒ)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hjÁºh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjdºubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj`ºubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj'ºh²hh³j9ºh´M›ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj#ºh²hh³j9ºh´M›ubah}”(h]”jºah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j9ºh´M›hj ºh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒBirq handler for level hierarchy stacked on transparent controllers”h]”hŒBirq handler for level hierarchy stacked on transparent controllers”…”�”}”(hjëºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M›hjèºh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj ºh²hh³j9ºh´M›ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj»jkj»jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒð**Parameters** ``struct irq_desc *desc`` the interrupt description structure for this irq **Description** Like handle_fasteoi_irq(), but for use with hierarchy where the irq_chip also needs to have its ->irq_mask_ack() function called.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj »h]”hŒ Parameters”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj »ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MŸhj»ubj�)�”}”(hhh]”j•)�”}”(hŒK``struct irq_desc *desc`` the interrupt description structure for this irq ”h]”(j›)�”}”(hŒ``struct irq_desc *desc``”h]”j)�”}”(hj,»h]”hŒstruct irq_desc *desc”…”�”}”(hj.»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj*»ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mžhj&»ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ0the interrupt description structure for this irq”h]”hŒ0the interrupt description structure for this irq”…”�”}”(hjE»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jA»h´MžhjB»ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj&»ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jA»h´Mžhj#»ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj»ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjg»h]”hŒ Description”…”�”}”(hji»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhje»ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M hj»ubjƒ)�”}”(hŒ�Like handle_fasteoi_irq(), but for use with hierarchy where the irq_chip also needs to have its ->irq_mask_ack() function called.”h]”hŒ�Like handle_fasteoi_irq(), but for use with hierarchy where the irq_chip also needs to have its ->irq_mask_ack() function called.”…”�”}”(hj}»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MŸhj»ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ&irq_chip_set_parent_state (C function)”Œc.irq_chip_set_parent_state”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ]int irq_chip_set_parent_state (struct irq_data *data, enum irqchip_irq_state which, bool val)”h]”j])�”}”(hŒ\int irq_chip_set_parent_state(struct irq_data *data, enum irqchip_irq_state which, bool val)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj¬»h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj¨»h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÃubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»»h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¨»h²hh³jº»h´MÃubj†)�”}”(hŒirq_chip_set_parent_state”h]”jŒ)�”}”(hŒirq_chip_set_parent_state”h]”hŒirq_chip_set_parent_state”…”�”}”(hjÍ»h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÉ»ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj¨»h²hh³jº»h´MÃubj¥)�”}”(hŒ?(struct irq_data *data, enum irqchip_irq_state which, bool val)”h]”(j«)�”}”(hŒstruct irq_data *data”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjé»h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjå»ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjö»h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjå»ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¼ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j ¼Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjÏ»sbŒc.irq_chip_set_parent_state”†”asbuh1hhjå»ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'¼h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjå»ubj )�”}”(hj h]”hŒ*”…”�”}”(hj5¼h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjå»ubjŒ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjB¼h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjå»ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjá»ubj«)�”}”(hŒenum irqchip_irq_state which”h]”(j±)�”}”(hjÂ%h]”hŒenum”…”�”}”(hj[¼h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjW¼ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh¼h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjW¼ubh)�”}”(hhh]”jŒ)�”}”(hŒirqchip_irq_state”h]”hŒirqchip_irq_state”…”�”}”(hjy¼h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjv¼ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j{¼Œmodname”NŒ classname”Njìjï)�”}”jò]”j#¼Œc.irq_chip_set_parent_state”†”asbuh1hhjW¼ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—¼h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjW¼ubjŒ)�”}”(hŒwhich”h]”hŒwhich”…”�”}”(hj¥¼h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjW¼ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjá»ubj«)�”}”(hŒbool val”h]”(jc)�”}”(hj†ah]”hŒbool”…”�”}”(hj¾¼h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjº¼ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˼h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjº¼ubjŒ)�”}”(hŒval”h]”hŒval”…”�”}”(hjÙ¼h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjº¼ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjá»ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj¨»h²hh³jº»h´MÃubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj¤»h²hh³jº»h´MÃubah}”(h]”jŸ»ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jº»h´MÃhj¡»h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ$set the state of a parent interrupt.”h]”hŒ$set the state of a parent interrupt.”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÃhj½h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj¡»h²hh³jº»h´MÃubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj½jkj½jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX)**Parameters** ``struct irq_data *data`` Pointer to interrupt specific data ``enum irqchip_irq_state which`` State to be restored (one of IRQCHIP_STATE_*) ``bool val`` Value corresponding to **which** **Description** Conditional success, if the underlying irqchip does not implement it.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj%½h]”hŒ Parameters”…”�”}”(hj'½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj#½ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÇhj½ubj�)�”}”(hhh]”(j•)�”}”(hŒ=``struct irq_data *data`` Pointer to interrupt specific data ”h]”(j›)�”}”(hŒ``struct irq_data *data``”h]”j)�”}”(hjD½h]”hŒstruct irq_data *data”…”�”}”(hjF½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjB½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÅhj>½ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Pointer to interrupt specific data”h]”hŒ"Pointer to interrupt specific data”…”�”}”(hj]½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jY½h´MÅhjZ½ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj>½ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jY½h´MÅhj;½ubj•)�”}”(hŒO``enum irqchip_irq_state which`` State to be restored (one of IRQCHIP_STATE_*) ”h]”(j›)�”}”(hŒ ``enum irqchip_irq_state which``”h]”j)�”}”(hj}½h]”hŒenum irqchip_irq_state which”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj{½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÆhjw½ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ-State to be restored (one of IRQCHIP_STATE_*)”h]”hŒ-State to be restored (one of IRQCHIP_STATE_*)”…”�”}”(hj–½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j’½h´MÆhj“½ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjw½ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j’½h´MÆhj;½ubj•)�”}”(hŒ.``bool val`` Value corresponding to **which** ”h]”(j›)�”}”(hŒ ``bool val``”h]”j)�”}”(hj¶½h]”hŒbool val”…”�”}”(hj¸½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj´½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÇhj°½ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ Value corresponding to **which**”h]”(hŒValue corresponding to ”…”�”}”(hjϽh²hh³Nh´Nubjz)�”}”(hŒ **which**”h]”hŒwhich”…”�”}”(hj×½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjϽubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j˽h´MÇhj̽ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj°½ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j˽h´MÇhj;½ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj½ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjÿ½h]”hŒ Description”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjý½ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÉhj½ubjƒ)�”}”(hŒEConditional success, if the underlying irqchip does not implement it.”h]”hŒEConditional success, if the underlying irqchip does not implement it.”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÈhj½ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ&irq_chip_get_parent_state (C function)”Œc.irq_chip_get_parent_state”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ`int irq_chip_get_parent_state (struct irq_data *data, enum irqchip_irq_state which, bool *state)”h]”j])�”}”(hŒ_int irq_chip_get_parent_state(struct irq_data *data, enum irqchip_irq_state which, bool *state)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjD¾h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj@¾h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÙubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjS¾h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj@¾h²hh³jR¾h´MÙubj†)�”}”(hŒirq_chip_get_parent_state”h]”jŒ)�”}”(hŒirq_chip_get_parent_state”h]”hŒirq_chip_get_parent_state”…”�”}”(hje¾h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hja¾ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj@¾h²hh³jR¾h´MÙubj¥)�”}”(hŒB(struct irq_data *data, enum irqchip_irq_state which, bool *state)”h]”(j«)�”}”(hŒstruct irq_data *data”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj�¾h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj}¾ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj޾h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj}¾ubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjŸ¾h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjœ¾ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j¡¾Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjg¾sbŒc.irq_chip_get_parent_state”†”asbuh1hhj}¾ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¿¾h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj}¾ubj )�”}”(hj h]”hŒ*”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj}¾ubjŒ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjÚ¾h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj}¾ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjy¾ubj«)�”}”(hŒenum irqchip_irq_state which”h]”(j±)�”}”(hjÂ%h]”hŒenum”…”�”}”(hjó¾h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjï¾ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjï¾ubh)�”}”(hhh]”jŒ)�”}”(hŒirqchip_irq_state”h]”hŒirqchip_irq_state”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¿ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j¿Œmodname”NŒ classname”Njìjï)�”}”jò]”j»¾Œc.irq_chip_get_parent_state”†”asbuh1hhjï¾ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/¿h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjï¾ubjŒ)�”}”(hŒwhich”h]”hŒwhich”…”�”}”(hj=¿h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjï¾ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjy¾ubj«)�”}”(hŒ bool *state”h]”(jc)�”}”(hj†ah]”hŒbool”…”�”}”(hjV¿h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjR¿ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjc¿h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjR¿ubj )�”}”(hj h]”hŒ*”…”�”}”(hjq¿h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjR¿ubjŒ)�”}”(hŒstate”h]”hŒstate”…”�”}”(hj~¿h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjR¿ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjy¾ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj@¾h²hh³jR¾h´MÙubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj<¾h²hh³jR¾h´MÙubah}”(h]”j7¾ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jR¾h´MÙhj9¾h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ$get the state of a parent interrupt.”h]”hŒ$get the state of a parent interrupt.”…”�”}”(hj¨¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÙhj¥¿h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj9¾h²hh³jR¾h´MÙubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjÀ¿jkjÀ¿jl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hXD**Parameters** ``struct irq_data *data`` Pointer to interrupt specific data ``enum irqchip_irq_state which`` one of IRQCHIP_STATE_* the caller wants to know ``bool *state`` a pointer to a boolean where the state is to be stored **Description** Conditional success, if the underlying irqchip does not implement it.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÊ¿h]”hŒ Parameters”…”�”}”(hjÌ¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÈ¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÝhjÄ¿ubj�)�”}”(hhh]”(j•)�”}”(hŒ=``struct irq_data *data`` Pointer to interrupt specific data ”h]”(j›)�”}”(hŒ``struct irq_data *data``”h]”j)�”}”(hjé¿h]”hŒstruct irq_data *data”…”�”}”(hjë¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjç¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÛhjã¿ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Pointer to interrupt specific data”h]”hŒ"Pointer to interrupt specific data”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jþ¿h´MÛhjÿ¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjã¿ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jþ¿h´MÛhjà¿ubj•)�”}”(hŒQ``enum irqchip_irq_state which`` one of IRQCHIP_STATE_* the caller wants to know ”h]”(j›)�”}”(hŒ ``enum irqchip_irq_state which``”h]”j)�”}”(hj"Àh]”hŒenum irqchip_irq_state which”…”�”}”(hj$Àh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj Àubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÜhjÀubjµ)�”}”(hhh]”jƒ)�”}”(hŒ/one of IRQCHIP_STATE_* the caller wants to know”h]”hŒ/one of IRQCHIP_STATE_* the caller wants to know”…”�”}”(hj;Àh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j7Àh´MÜhj8Àubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÀubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j7Àh´MÜhjà¿ubj•)�”}”(hŒG``bool *state`` a pointer to a boolean where the state is to be stored ”h]”(j›)�”}”(hŒ``bool *state``”h]”j)�”}”(hj[Àh]”hŒ bool *state”…”�”}”(hj]Àh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjYÀubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÝhjUÀubjµ)�”}”(hhh]”jƒ)�”}”(hŒ6a pointer to a boolean where the state is to be stored”h]”hŒ6a pointer to a boolean where the state is to be stored”…”�”}”(hjtÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jpÀh´MÝhjqÀubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjUÀubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jpÀh´MÝhjà¿ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÄ¿ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj–Àh]”hŒ Description”…”�”}”(hj˜Àh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj”Àubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MßhjÄ¿ubjƒ)�”}”(hŒEConditional success, if the underlying irqchip does not implement it.”h]”hŒEConditional success, if the underlying irqchip does not implement it.”…”�”}”(hj¬Àh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÞhjÄ¿ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ%irq_chip_shutdown_parent (C function)”Œc.irq_chip_shutdown_parent”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ5void irq_chip_shutdown_parent (struct irq_data *data)”h]”j])�”}”(hŒ4void irq_chip_shutdown_parent(struct irq_data *data)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÛÀh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj×Àh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mïubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjêÀh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj×Àh²hh³jéÀh´Mïubj†)�”}”(hŒirq_chip_shutdown_parent”h]”jŒ)�”}”(hŒirq_chip_shutdown_parent”h]”hŒirq_chip_shutdown_parent”…”�”}”(hjüÀh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjøÀubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj×Àh²hh³jéÀh´Mïubj¥)�”}”(hŒ(struct irq_data *data)”h]”j«)�”}”(hŒstruct irq_data *data”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjÁubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%Áh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÁubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hj6Áh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj3Áubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j8ÁŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjþÀsbŒc.irq_chip_shutdown_parent”†”asbuh1hhjÁubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjVÁh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÁubj )�”}”(hj h]”hŒ*”…”�”}”(hjdÁh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÁubjŒ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjqÁh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÁubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjÁubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj×Àh²hh³jéÀh´Mïubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjÓÀh²hh³jéÀh´Mïubah}”(h]”jÎÀah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jéÀh´MïhjÐÀh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒShutdown the parent interrupt”h]”hŒShutdown the parent interrupt”…”�”}”(hj›Áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mïhj˜Áh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjÐÀh²hh³jéÀh´Mïubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj³Ájkj³Ájl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒË**Parameters** ``struct irq_data *data`` Pointer to interrupt specific data **Description** Invokes the irq_shutdown() callback of the parent if available or falls back to irq_chip_disable_parent().”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj½Áh]”hŒ Parameters”…”�”}”(hj¿Áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj»Áubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Móhj·Áubj�)�”}”(hhh]”j•)�”}”(hŒ=``struct irq_data *data`` Pointer to interrupt specific data ”h]”(j›)�”}”(hŒ``struct irq_data *data``”h]”j)�”}”(hjÜÁh]”hŒstruct irq_data *data”…”�”}”(hjÞÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÚÁubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MðhjÖÁubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Pointer to interrupt specific data”h]”hŒ"Pointer to interrupt specific data”…”�”}”(hjõÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jñÁh´MðhjòÁubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÖÁubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jñÁh´MðhjÓÁubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj·Áubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjÂh]”hŒ Description”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mòhj·Áubjƒ)�”}”(hŒjInvokes the irq_shutdown() callback of the parent if available or falls back to irq_chip_disable_parent().”h]”hŒjInvokes the irq_shutdown() callback of the parent if available or falls back to irq_chip_disable_parent().”…”�”}”(hj-Âh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mñhj·Áubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ$irq_chip_startup_parent (C function)”Œc.irq_chip_startup_parent”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒhj!Éubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÉubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j Éh´MChjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjæÈubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ%irq_chip_mask_ack_parent (C function)”Œc.irq_chip_mask_ack_parent”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ5void irq_chip_mask_ack_parent (struct irq_data *data)”h]”j])�”}”(hŒ4void irq_chip_mask_ack_parent(struct irq_data *data)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjeÉh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjaÉh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MHubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjtÉh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjaÉh²hh³jsÉh´MHubj†)�”}”(hŒirq_chip_mask_ack_parent”h]”jŒ)�”}”(hŒirq_chip_mask_ack_parent”h]”hŒirq_chip_mask_ack_parent”…”�”}”(hj†Éh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj‚Éubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjaÉh²hh³jsÉh´MHubj¥)�”}”(hŒ(struct irq_data *data)”h]”j«)�”}”(hŒstruct irq_data *data”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj¢Éh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjžÉubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¯Éh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjžÉubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjÀÉh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj½Éubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jÂÉŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjˆÉsbŒc.irq_chip_mask_ack_parent”†”asbuh1hhjžÉubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjàÉh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjžÉubj )�”}”(hj h]”hŒ*”…”�”}”(hjîÉh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjžÉubjŒ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjûÉh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjžÉubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjšÉubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjaÉh²hh³jsÉh´MHubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj]Éh²hh³jsÉh´MHubah}”(h]”jXÉah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jsÉh´MHhjZÉh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ)Mask and acknowledge the parent interrupt”h]”hŒ)Mask and acknowledge the parent interrupt”…”�”}”(hj%Êh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MHhj"Êh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjZÉh²hh³jsÉh´MHubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj=Êjkj=Êjl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒN**Parameters** ``struct irq_data *data`` Pointer to interrupt specific data”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjGÊh]”hŒ Parameters”…”�”}”(hjIÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjEÊubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MLhjAÊubj�)�”}”(hhh]”j•)�”}”(hŒ<``struct irq_data *data`` Pointer to interrupt specific data”h]”(j›)�”}”(hŒ``struct irq_data *data``”h]”j)�”}”(hjfÊh]”hŒstruct irq_data *data”…”�”}”(hjhÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjdÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MNhj`Êubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Pointer to interrupt specific data”h]”hŒ"Pointer to interrupt specific data”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MIhj|Êubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj`Êubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j{Êh´MNhj]Êubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjAÊubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ#irq_chip_unmask_parent (C function)”Œc.irq_chip_unmask_parent”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ3void irq_chip_unmask_parent (struct irq_data *data)”h]”j])�”}”(hŒ2void irq_chip_unmask_parent(struct irq_data *data)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÀÊh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj¼Êh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MSubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏÊh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¼Êh²hh³jÎÊh´MSubj†)�”}”(hŒirq_chip_unmask_parent”h]”jŒ)�”}”(hŒirq_chip_unmask_parent”h]”hŒirq_chip_unmask_parent”…”�”}”(hjáÊh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÝÊubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj¼Êh²hh³jÎÊh´MSubj¥)�”}”(hŒ(struct irq_data *data)”h]”j«)�”}”(hŒstruct irq_data *data”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjýÊh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjùÊubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj Ëh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjùÊubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjËubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jËŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjãÊsbŒc.irq_chip_unmask_parent”†”asbuh1hhjùÊubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;Ëh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjùÊubj )�”}”(hj h]”hŒ*”…”�”}”(hjIËh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjùÊubjŒ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjVËh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjùÊubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjõÊubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj¼Êh²hh³jÎÊh´MSubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj¸Êh²hh³jÎÊh´MSubah}”(h]”j³Êah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jÎÊh´MShjµÊh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒUnmask the parent interrupt”h]”hŒUnmask the parent interrupt”…”�”}”(hj€Ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MShj}Ëh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjµÊh²hh³jÎÊh´MSubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj˜Ëjkj˜Ëjl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒN**Parameters** ``struct irq_data *data`` Pointer to interrupt specific data”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj¢Ëh]”hŒ Parameters”…”�”}”(hj¤Ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj Ëubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MWhjœËubj�)�”}”(hhh]”j•)�”}”(hŒ<``struct irq_data *data`` Pointer to interrupt specific data”h]”(j›)�”}”(hŒ``struct irq_data *data``”h]”j)�”}”(hjÁËh]”hŒstruct irq_data *data”…”�”}”(hjÃËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¿Ëubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MYhj»Ëubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Pointer to interrupt specific data”h]”hŒ"Pointer to interrupt specific data”…”�”}”(hjÚËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MThj×Ëubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj»Ëubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÖËh´MYhj¸Ëubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjœËubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ irq_chip_eoi_parent (C function)”Œc.irq_chip_eoi_parent”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ0void irq_chip_eoi_parent (struct irq_data *data)”h]”j])�”}”(hŒ/void irq_chip_eoi_parent(struct irq_data *data)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÌh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M^ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj*Ìh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÌh²hh³j)Ìh´M^ubj†)�”}”(hŒirq_chip_eoi_parent”h]”jŒ)�”}”(hŒirq_chip_eoi_parent”h]”hŒirq_chip_eoi_parent”…”�”}”(hj<Ìh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj8Ìubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjÌh²hh³j)Ìh´M^ubj¥)�”}”(hŒ(struct irq_data *data)”h]”j«)�”}”(hŒstruct irq_data *data”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjXÌh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjTÌubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjeÌh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjTÌubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjvÌh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjsÌubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jxÌŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj>ÌsbŒc.irq_chip_eoi_parent”†”asbuh1hhjTÌubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–Ìh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjTÌubj )�”}”(hj h]”hŒ*”…”�”}”(hj¤Ìh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjTÌubjŒ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj±Ìh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjTÌubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjPÌubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjÌh²hh³j)Ìh´M^ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjÌh²hh³j)Ìh´M^ubah}”(h]”jÌah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j)Ìh´M^hjÌh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ"Invoke EOI on the parent interrupt”h]”hŒ"Invoke EOI on the parent interrupt”…”�”}”(hjÛÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M^hjØÌh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjÌh²hh³j)Ìh´M^ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjóÌjkjóÌjl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒN**Parameters** ``struct irq_data *data`` Pointer to interrupt specific data”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjýÌh]”hŒ Parameters”…”�”}”(hjÿÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjûÌubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mbhj÷Ìubj�)�”}”(hhh]”j•)�”}”(hŒ<``struct irq_data *data`` Pointer to interrupt specific data”h]”(j›)�”}”(hŒ``struct irq_data *data``”h]”j)�”}”(hjÍh]”hŒstruct irq_data *data”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MdhjÍubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Pointer to interrupt specific data”h]”hŒ"Pointer to interrupt specific data”…”�”}”(hj5Íh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M_hj2Íubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÍubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j1Íh´MdhjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj÷Ìubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ)irq_chip_set_affinity_parent (C function)”Œc.irq_chip_set_affinity_parent”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ`int irq_chip_set_affinity_parent (struct irq_data *data, const struct cpumask *dest, bool force)”h]”j])�”}”(hŒ_int irq_chip_set_affinity_parent(struct irq_data *data, const struct cpumask *dest, bool force)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjvÍh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjrÍh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Miubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…Íh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjrÍh²hh³j„Íh´Miubj†)�”}”(hŒirq_chip_set_affinity_parent”h]”jŒ)�”}”(hŒirq_chip_set_affinity_parent”h]”hŒirq_chip_set_affinity_parent”…”�”}”(hj—Íh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj“Íubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjrÍh²hh³j„Íh´Miubj¥)�”}”(hŒ?(struct irq_data *data, const struct cpumask *dest, bool force)”h]”(j«)�”}”(hŒstruct irq_data *data”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj³Íh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj¯Íubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀÍh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¯Íubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjÑÍh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÎÍubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jÓÍŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj™ÍsbŒc.irq_chip_set_affinity_parent”†”asbuh1hhj¯Íubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñÍh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¯Íubj )�”}”(hj h]”hŒ*”…”�”}”(hjÿÍh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¯ÍubjŒ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj Îh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¯Íubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj«Íubj«)�”}”(hŒconst struct cpumask *dest”h]”(j±)�”}”(hj�h]”hŒconst”…”�”}”(hj%Îh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj!Îubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2Îh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj!Îubj±)�”}”(hj´h]”hŒstruct”…”�”}”(hj@Îh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj!Îubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjMÎh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj!Îubh)�”}”(hhh]”jŒ)�”}”(hŒcpumask”h]”hŒcpumask”…”�”}”(hj^Îh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj[Îubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j`ÎŒmodname”NŒ classname”Njìjï)�”}”jò]”jíÍŒc.irq_chip_set_affinity_parent”†”asbuh1hhj!Îubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|Îh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj!Îubj )�”}”(hj h]”hŒ*”…”�”}”(hjŠÎh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj!ÎubjŒ)�”}”(hŒdest”h]”hŒdest”…”�”}”(hj—Îh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj!Îubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj«Íubj«)�”}”(hŒ bool force”h]”(jc)�”}”(hj†ah]”hŒbool”…”�”}”(hj°Îh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj¬Îubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj½Îh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¬ÎubjŒ)�”}”(hŒforce”h]”hŒforce”…”�”}”(hjËÎh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¬Îubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj«Íubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjrÍh²hh³j„Íh´Miubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjnÍh²hh³j„Íh´Miubah}”(h]”jiÍah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j„Íh´MihjkÍh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ$Set affinity on the parent interrupt”h]”hŒ$Set affinity on the parent interrupt”…”�”}”(hjõÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MihjòÎh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjkÍh²hh³j„Íh´Miubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj Ïjkj Ïjl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hX **Parameters** ``struct irq_data *data`` Pointer to interrupt specific data ``const struct cpumask *dest`` The affinity mask to set ``bool force`` Flag to enforce setting (disable online checks) **Description** Conditional, as the underlying parent chip might not implement it.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÏh]”hŒ Parameters”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MmhjÏubj�)�”}”(hhh]”(j•)�”}”(hŒ=``struct irq_data *data`` Pointer to interrupt specific data ”h]”(j›)�”}”(hŒ``struct irq_data *data``”h]”j)�”}”(hj6Ïh]”hŒstruct irq_data *data”…”�”}”(hj8Ïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj4Ïubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mjhj0Ïubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Pointer to interrupt specific data”h]”hŒ"Pointer to interrupt specific data”…”�”}”(hjOÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jKÏh´MjhjLÏubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj0Ïubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jKÏh´Mjhj-Ïubj•)�”}”(hŒ8``const struct cpumask *dest`` The affinity mask to set ”h]”(j›)�”}”(hŒ``const struct cpumask *dest``”h]”j)�”}”(hjoÏh]”hŒconst struct cpumask *dest”…”�”}”(hjqÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjmÏubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MkhjiÏubjµ)�”}”(hhh]”jƒ)�”}”(hŒThe affinity mask to set”h]”hŒThe affinity mask to set”…”�”}”(hjˆÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j„Ïh´Mkhj…Ïubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjiÏubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j„Ïh´Mkhj-Ïubj•)�”}”(hŒ?``bool force`` Flag to enforce setting (disable online checks) ”h]”(j›)�”}”(hŒ``bool force``”h]”j)�”}”(hj¨Ïh]”hŒ bool force”…”�”}”(hjªÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¦Ïubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´Mlhj¢Ïubjµ)�”}”(hhh]”jƒ)�”}”(hŒ/Flag to enforce setting (disable online checks)”h]”hŒ/Flag to enforce setting (disable online checks)”…”�”}”(hjÁÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j½Ïh´Mlhj¾Ïubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¢Ïubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j½Ïh´Mlhj-Ïubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÏubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjãÏh]”hŒ Description”…”�”}”(hjåÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjáÏubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MnhjÏubjƒ)�”}”(hŒBConditional, as the underlying parent chip might not implement it.”h]”hŒBConditional, as the underlying parent chip might not implement it.”…”�”}”(hjùÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MmhjÏubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ%irq_chip_set_type_parent (C function)”Œc.irq_chip_set_type_parent”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒGint irq_chip_set_type_parent (struct irq_data *data, unsigned int type)”h]”j])�”}”(hŒFint irq_chip_set_type_parent(struct irq_data *data, unsigned int type)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj(Ðh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj$Ðh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M|ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7Ðh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj$Ðh²hh³j6Ðh´M|ubj†)�”}”(hŒirq_chip_set_type_parent”h]”jŒ)�”}”(hŒirq_chip_set_type_parent”h]”hŒirq_chip_set_type_parent”…”�”}”(hjIÐh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjEÐubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj$Ðh²hh³j6Ðh´M|ubj¥)�”}”(hŒ*(struct irq_data *data, unsigned int type)”h]”(j«)�”}”(hŒstruct irq_data *data”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjeÐh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjaÐubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjrÐh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjaÐubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjƒÐh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj€Ðubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j…ÐŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjKÐsbŒc.irq_chip_set_type_parent”†”asbuh1hhjaÐubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£Ðh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjaÐubj )�”}”(hj h]”hŒ*”…”�”}”(hj±Ðh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjaÐubjŒ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj¾Ðh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjaÐubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj]Ðubj«)�”}”(hŒunsigned int type”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj×Ðh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÓÐubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjåÐh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÓÐubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjóÐh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÓÐubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÓÐubjŒ)�”}”(hŒtype”h]”hŒtype”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÓÐubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj]Ðubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj$Ðh²hh³j6Ðh´M|ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj Ðh²hh³j6Ðh´M|ubah}”(h]”jÐah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j6Ðh´M|hjÐh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ$Set IRQ type on the parent interrupt”h]”hŒ$Set IRQ type on the parent interrupt”…”�”}”(hj9Ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M|hj6Ñh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjÐh²hh³j6Ðh´M|ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjQÑjkjQÑjl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒô**Parameters** ``struct irq_data *data`` Pointer to interrupt specific data ``unsigned int type`` IRQ_TYPE_{LEVEL,EDGE}_* value - see include/linux/irq.h **Description** Conditional, as the underlying parent chip might not implement it.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj[Ñh]”hŒ Parameters”…”�”}”(hj]Ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjYÑubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M€hjUÑubj�)�”}”(hhh]”(j•)�”}”(hŒ=``struct irq_data *data`` Pointer to interrupt specific data ”h]”(j›)�”}”(hŒ``struct irq_data *data``”h]”j)�”}”(hjzÑh]”hŒstruct irq_data *data”…”�”}”(hj|Ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjxÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M}hjtÑubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Pointer to interrupt specific data”h]”hŒ"Pointer to interrupt specific data”…”�”}”(hj“Ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j�Ñh´M}hj�Ñubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjtÑubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j�Ñh´M}hjqÑubj•)�”}”(hŒN``unsigned int type`` IRQ_TYPE_{LEVEL,EDGE}_* value - see include/linux/irq.h ”h]”(j›)�”}”(hŒ``unsigned int type``”h]”j)�”}”(hj³Ñh]”hŒunsigned int type”…”�”}”(hjµÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj±Ñubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M~hj­Ñubjµ)�”}”(hhh]”jƒ)�”}”(hŒ7IRQ_TYPE_{LEVEL,EDGE}_* value - see include/linux/irq.h”h]”hŒ7IRQ_TYPE_{LEVEL,EDGE}_* value - see include/linux/irq.h”…”�”}”(hjÌÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÈÑh´M~hjÉÑubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj­Ñubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÈÑh´M~hjqÑubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjUÑubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjîÑh]”hŒ Description”…”�”}”(hjðÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjìÑubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M€hjUÑubjƒ)�”}”(hŒBConditional, as the underlying parent chip might not implement it.”h]”hŒBConditional, as the underlying parent chip might not implement it.”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MhjUÑubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ)irq_chip_retrigger_hierarchy (C function)”Œc.irq_chip_retrigger_hierarchy”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ8int irq_chip_retrigger_hierarchy (struct irq_data *data)”h]”j])�”}”(hŒ7int irq_chip_retrigger_hierarchy(struct irq_data *data)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj3Òh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj/Òh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MŽubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBÒh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj/Òh²hh³jAÒh´MŽubj†)�”}”(hŒirq_chip_retrigger_hierarchy”h]”jŒ)�”}”(hŒirq_chip_retrigger_hierarchy”h]”hŒirq_chip_retrigger_hierarchy”…”�”}”(hjTÒh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjPÒubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj/Òh²hh³jAÒh´MŽubj¥)�”}”(hŒ(struct irq_data *data)”h]”j«)�”}”(hŒstruct irq_data *data”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjpÒh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjlÒubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}Òh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjlÒubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjŽÒh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj‹Òubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j�ÒŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjVÒsbŒc.irq_chip_retrigger_hierarchy”†”asbuh1hhjlÒubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®Òh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjlÒubj )�”}”(hj h]”hŒ*”…”�”}”(hj¼Òh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjlÒubjŒ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjÉÒh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjlÒubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjhÒubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj/Òh²hh³jAÒh´MŽubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj+Òh²hh³jAÒh´MŽubah}”(h]”j&Òah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jAÒh´MŽhj(Òh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ"Retrigger an interrupt in hardware”h]”hŒ"Retrigger an interrupt in hardware”…”�”}”(hjóÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MŽhjðÒh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj(Òh²hh³jAÒh´MŽubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj Ójkj Ójl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒÛ**Parameters** ``struct irq_data *data`` Pointer to interrupt specific data **Description** Iterate through the domain hierarchy of the interrupt and check whether a hw retrigger function exists. If yes, invoke it.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÓh]”hŒ Parameters”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M’hjÓubj�)�”}”(hhh]”j•)�”}”(hŒ=``struct irq_data *data`` Pointer to interrupt specific data ”h]”(j›)�”}”(hŒ``struct irq_data *data``”h]”j)�”}”(hj4Óh]”hŒstruct irq_data *data”…”�”}”(hj6Óh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj2Óubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M�hj.Óubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Pointer to interrupt specific data”h]”hŒ"Pointer to interrupt specific data”…”�”}”(hjMÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jIÓh´M�hjJÓubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj.Óubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jIÓh´M�hj+Óubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÓubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjoÓh]”hŒ Description”…”�”}”(hjqÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjmÓubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M‘hjÓubjƒ)�”}”(hŒzIterate through the domain hierarchy of the interrupt and check whether a hw retrigger function exists. If yes, invoke it.”h]”hŒzIterate through the domain hierarchy of the interrupt and check whether a hw retrigger function exists. If yes, invoke it.”…”�”}”(hj…Óh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M�hjÓubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ.irq_chip_set_vcpu_affinity_parent (C function)”Œ#c.irq_chip_set_vcpu_affinity_parent”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒNint irq_chip_set_vcpu_affinity_parent (struct irq_data *data, void *vcpu_info)”h]”j])�”}”(hŒMint irq_chip_set_vcpu_affinity_parent(struct irq_data *data, void *vcpu_info)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj´Óh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj°Óh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MŸubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÃÓh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj°Óh²hh³jÂÓh´MŸubj†)�”}”(hŒ!irq_chip_set_vcpu_affinity_parent”h]”jŒ)�”}”(hŒ!irq_chip_set_vcpu_affinity_parent”h]”hŒ!irq_chip_set_vcpu_affinity_parent”…”�”}”(hjÕÓh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÑÓubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj°Óh²hh³jÂÓh´MŸubj¥)�”}”(hŒ((struct irq_data *data, void *vcpu_info)”h]”(j«)�”}”(hŒstruct irq_data *data”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjñÓh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjíÓubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþÓh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjíÓubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj Ôubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jÔŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj×ÓsbŒ#c.irq_chip_set_vcpu_affinity_parent”†”asbuh1hhjíÓubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/Ôh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjíÓubj )�”}”(hj h]”hŒ*”…”�”}”(hj=Ôh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjíÓubjŒ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjJÔh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjíÓubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjéÓubj«)�”}”(hŒvoid *vcpu_info”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjcÔh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj_Ôubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjqÔh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj_Ôubj )�”}”(hj h]”hŒ*”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj_ÔubjŒ)�”}”(hŒ vcpu_info”h]”hŒ vcpu_info”…”�”}”(hjŒÔh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj_Ôubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjéÓubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj°Óh²hh³jÂÓh´MŸubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj¬Óh²hh³jÂÓh´MŸubah}”(h]”j§Óah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jÂÓh´MŸhj©Óh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ)Set vcpu affinity on the parent interrupt”h]”hŒ)Set vcpu affinity on the parent interrupt”…”�”}”(hj¶Ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MŸhj³Ôh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj©Óh²hh³jÂÓh´MŸubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjÎÔjkjÎÔjl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒƒ**Parameters** ``struct irq_data *data`` Pointer to interrupt specific data ``void *vcpu_info`` The vcpu affinity information”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjØÔh]”hŒ Parameters”…”�”}”(hjÚÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÖÔubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M£hjÒÔubj�)�”}”(hhh]”(j•)�”}”(hŒ=``struct irq_data *data`` Pointer to interrupt specific data ”h]”(j›)�”}”(hŒ``struct irq_data *data``”h]”j)�”}”(hj÷Ôh]”hŒstruct irq_data *data”…”�”}”(hjùÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjõÔubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M hjñÔubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Pointer to interrupt specific data”h]”hŒ"Pointer to interrupt specific data”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j Õh´M hj Õubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjñÔubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j Õh´M hjîÔubj•)�”}”(hŒ1``void *vcpu_info`` The vcpu affinity information”h]”(j›)�”}”(hŒ``void *vcpu_info``”h]”j)�”}”(hj0Õh]”hŒvoid *vcpu_info”…”�”}”(hj2Õh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj.Õubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M¢hj*Õubjµ)�”}”(hhh]”jƒ)�”}”(hŒThe vcpu affinity information”h]”hŒThe vcpu affinity information”…”�”}”(hjIÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M¡hjFÕubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj*Õubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jEÕh´M¢hjîÔubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÒÔubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ%irq_chip_set_wake_parent (C function)”Œc.irq_chip_set_wake_parent”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒEint irq_chip_set_wake_parent (struct irq_data *data, unsigned int on)”h]”j])�”}”(hŒDint irq_chip_set_wake_parent(struct irq_data *data, unsigned int on)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjŠÕh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj†Õh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M­ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™Õh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj†Õh²hh³j˜Õh´M­ubj†)�”}”(hŒirq_chip_set_wake_parent”h]”jŒ)�”}”(hŒirq_chip_set_wake_parent”h]”hŒirq_chip_set_wake_parent”…”�”}”(hj«Õh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj§Õubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj†Õh²hh³j˜Õh´M­ubj¥)�”}”(hŒ((struct irq_data *data, unsigned int on)”h]”(j«)�”}”(hŒstruct irq_data *data”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjÇÕh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjÃÕubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔÕh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÃÕubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjåÕh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjâÕubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jçÕŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj­ÕsbŒc.irq_chip_set_wake_parent”†”asbuh1hhjÃÕubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÃÕubj )�”}”(hj h]”hŒ*”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÃÕubjŒ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj Öh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÃÕubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¿Õubj«)�”}”(hŒunsigned int on”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj9Öh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj5Öubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjGÖh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj5Öubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjUÖh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj5Öubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjcÖh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj5ÖubjŒ)�”}”(hŒon”h]”hŒon”…”�”}”(hjqÖh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj5Öubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¿Õubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj†Õh²hh³j˜Õh´M­ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj‚Õh²hh³j˜Õh´M­ubah}”(h]”j}Õah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j˜Õh´M­hjÕh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ)Set/reset wake-up on the parent interrupt”h]”hŒ)Set/reset wake-up on the parent interrupt”…”�”}”(hj›Öh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M­hj˜Öh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjÕh²hh³j˜Õh´M­ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj³Öjkj³Öjl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒõ**Parameters** ``struct irq_data *data`` Pointer to interrupt specific data ``unsigned int on`` Whether to set or reset the wake-up capability of this irq **Description** Conditional, as the underlying parent chip might not implement it.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj½Öh]”hŒ Parameters”…”�”}”(hj¿Öh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj»Öubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M±hj·Öubj�)�”}”(hhh]”(j•)�”}”(hŒ=``struct irq_data *data`` Pointer to interrupt specific data ”h]”(j›)�”}”(hŒ``struct irq_data *data``”h]”j)�”}”(hjÜÖh]”hŒstruct irq_data *data”…”�”}”(hjÞÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÚÖubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M®hjÖÖubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Pointer to interrupt specific data”h]”hŒ"Pointer to interrupt specific data”…”�”}”(hjõÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jñÖh´M®hjòÖubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÖÖubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jñÖh´M®hjÓÖubj•)�”}”(hŒO``unsigned int on`` Whether to set or reset the wake-up capability of this irq ”h]”(j›)�”}”(hŒ``unsigned int on``”h]”j)�”}”(hj×h]”hŒunsigned int on”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj×ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M¯hj×ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ:Whether to set or reset the wake-up capability of this irq”h]”hŒ:Whether to set or reset the wake-up capability of this irq”…”�”}”(hj.×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j*×h´M¯hj+×ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj×ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j*×h´M¯hjÓÖubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj·Öubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjP×h]”hŒ Description”…”�”}”(hjR×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjN×ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M±hj·Öubjƒ)�”}”(hŒBConditional, as the underlying parent chip might not implement it.”h]”hŒBConditional, as the underlying parent chip might not implement it.”…”�”}”(hjf×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´M°hj·Öubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ.irq_chip_request_resources_parent (C function)”Œ#c.irq_chip_request_resources_parent”hNt”auh1j@hjLah²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ=int irq_chip_request_resources_parent (struct irq_data *data)”h]”j])�”}”(hŒvoid irq_chip_release_resources_parent (struct irq_data *data)”h]”j])�”}”(hŒ=void irq_chip_release_resources_parent(struct irq_data *data)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjðØh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjìØh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÒubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÿØh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjìØh²hh³jþØh´MÒubj†)�”}”(hŒ!irq_chip_release_resources_parent”h]”jŒ)�”}”(hŒ!irq_chip_release_resources_parent”h]”hŒ!irq_chip_release_resources_parent”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj Ùubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjìØh²hh³jþØh´MÒubj¥)�”}”(hŒ(struct irq_data *data)”h]”j«)�”}”(hŒstruct irq_data *data”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj-Ùh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj)Ùubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:Ùh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj)Ùubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjKÙh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjHÙubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jMÙŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjÙsbŒ#c.irq_chip_release_resources_parent”†”asbuh1hhj)Ùubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjkÙh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj)Ùubj )�”}”(hj h]”hŒ*”…”�”}”(hjyÙh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj)ÙubjŒ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj†Ùh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj)Ùubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj%Ùubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjìØh²hh³jþØh´MÒubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjèØh²hh³jþØh´MÒubah}”(h]”jãØah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jþØh´MÒhjåØh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ)Release resources on the parent interrupt”h]”hŒ)Release resources on the parent interrupt”…”�”}”(hj°Ùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÒhj­Ùh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjåØh²hh³jþØh´MÒubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjÈÙjkjÈÙjl‰jm‰jn‰uh1jQh²hhjLah³Nh´Nubjp)�”}”(hŒN**Parameters** ``struct irq_data *data`` Pointer to interrupt specific data”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÒÙh]”hŒ Parameters”…”�”}”(hjÔÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÐÙubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÖhjÌÙubj�)�”}”(hhh]”j•)�”}”(hŒ<``struct irq_data *data`` Pointer to interrupt specific data”h]”(j›)�”}”(hŒ``struct irq_data *data``”h]”j)�”}”(hjñÙh]”hŒstruct irq_data *data”…”�”}”(hjóÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjïÙubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MØhjëÙubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Pointer to interrupt specific data”h]”hŒ"Pointer to interrupt specific data”…”�”}”(hj Úh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:507: ./kernel/irq/chip.c”h´MÓhjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjëÙubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÚh´MØhjèÙubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÌÙubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johjLah²hh³Nh´Nubeh}”(h]”Œpublic-functions-provided”ah ]”h"]”Œpublic functions provided”ah$]”h&]”uh1jLhjNh²hh³jah´MžubjM)�”}”(hhh]”(jR)�”}”(hŒInternal Functions Provided”h]”hŒInternal Functions Provided”…”�”}”(hj=Úh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj:Úh²hh³jah´M©ubjƒ)�”}”(hŒPThis chapter contains the autogenerated documentation of the internal functions.”h]”hŒPThis chapter contains the autogenerated documentation of the internal functions.”…”�”}”(hjKÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´M«hj:Úh²hubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_get_nr_irqs (C function)”Œc.irq_get_nr_irqs”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ#unsigned int irq_get_nr_irqs (void)”h]”j])�”}”(hŒ"unsigned int irq_get_nr_irqs(void)”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjrÚh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjnÚh²hh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´K“ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�Úh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjnÚh²hh³j€Úh´K“ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj�Úh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjnÚh²hh³j€Úh´K“ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�Úh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjnÚh²hh³j€Úh´K“ubj†)�”}”(hŒirq_get_nr_irqs”h]”jŒ)�”}”(hŒirq_get_nr_irqs”h]”hŒirq_get_nr_irqs”…”�”}”(hj¯Úh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj«Úubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjnÚh²hh³j€Úh´K“ubj¥)�”}”(hŒ(void)”h]”j«)�”}”(hŒvoid”h]”jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjËÚh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÇÚubah}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjÃÚubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjnÚh²hh³j€Úh´K“ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjjÚh²hh³j€Úh´K“ubah}”(h]”jeÚah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j€Úh´K“hjgÚh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ-Number of interrupts supported by the system.”h]”hŒ-Number of interrupts supported by the system.”…”�”}”(hjõÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´K“hjòÚh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjgÚh²hh³j€Úh´K“ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj Ûjkj Ûjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hŒ'**Parameters** ``void`` no arguments”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÛh]”hŒ Parameters”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÛubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´K—hjÛubj�)�”}”(hhh]”j•)�”}”(hŒ``void`` no arguments”h]”(j›)�”}”(hŒ``void``”h]”j)�”}”(hj6Ûh]”hŒvoid”…”�”}”(hj8Ûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj4Ûubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´K™hj0Ûubjµ)�”}”(hhh]”jƒ)�”}”(hŒ no arguments”h]”hŒ no arguments”…”�”}”(hjOÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´KhjLÛubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj0Ûubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jKÛh´K™hj-Ûubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÛubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_set_nr_irqs (C function)”Œc.irq_set_nr_irqs”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ.unsigned int irq_set_nr_irqs (unsigned int nr)”h]”j])�”}”(hŒ-unsigned int irq_set_nr_irqs(unsigned int nr)”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj�Ûh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjŒÛh²hh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Kœubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸÛh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjŒÛh²hh³jžÛh´Kœubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj­Ûh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjŒÛh²hh³jžÛh´Kœubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»Ûh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjŒÛh²hh³jžÛh´Kœubj†)�”}”(hŒirq_set_nr_irqs”h]”jŒ)�”}”(hŒirq_set_nr_irqs”h]”hŒirq_set_nr_irqs”…”�”}”(hjÍÛh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÉÛubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjŒÛh²hh³jžÛh´Kœubj¥)�”}”(hŒ(unsigned int nr)”h]”j«)�”}”(hŒunsigned int nr”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjéÛh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjåÛubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj÷Ûh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjåÛubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjåÛubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjåÛubjŒ)�”}”(hŒnr”h]”hŒnr”…”�”}”(hj!Üh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjåÛubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjáÛubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjŒÛh²hh³jžÛh´Kœubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjˆÛh²hh³jžÛh´Kœubah}”(h]”jƒÛah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jžÛh´Kœhj…Ûh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ5Set the number of interrupts supported by the system.”h]”hŒ5Set the number of interrupts supported by the system.”…”�”}”(hjKÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´KœhjHÜh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj…Ûh²hh³jžÛh´Kœubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjcÜjkjcÜjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hŒT**Parameters** ``unsigned int nr`` New number of interrupts. **Return** **nr**.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjmÜh]”hŒ Parameters”…”�”}”(hjoÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjkÜubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´K hjgÜubj�)�”}”(hhh]”j•)�”}”(hŒ.``unsigned int nr`` New number of interrupts. ”h]”(j›)�”}”(hŒ``unsigned int nr``”h]”j)�”}”(hjŒÜh]”hŒunsigned int nr”…”�”}”(hjŽÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŠÜubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´K�hj†Üubjµ)�”}”(hhh]”jƒ)�”}”(hŒNew number of interrupts.”h]”hŒNew number of interrupts.”…”�”}”(hj¥Üh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j¡Üh´K�hj¢Üubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj†Üubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j¡Üh´K�hjƒÜubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjgÜubjƒ)�”}”(hŒ **Return**”h]”jz)�”}”(hjÇÜh]”hŒReturn”…”�”}”(hjÉÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÅÜubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´KŸhjgÜubjƒ)�”}”(hŒ**nr**.”h]”(jz)�”}”(hŒ**nr**”h]”hŒnr”…”�”}”(hjáÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÝÜubhŒ.”…”�”}”(hjÝÜh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´KŸhjgÜubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒgeneric_handle_irq (C function)”Œc.generic_handle_irq”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ)int generic_handle_irq (unsigned int irq)”h]”j])�”}”(hŒ(int generic_handle_irq(unsigned int irq)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÝh²hh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M¬ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)Ýh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÝh²hh³j(Ýh´M¬ubj†)�”}”(hŒgeneric_handle_irq”h]”jŒ)�”}”(hŒgeneric_handle_irq”h]”hŒgeneric_handle_irq”…”�”}”(hj;Ýh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj7Ýubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjÝh²hh³j(Ýh´M¬ubj¥)�”}”(hŒ(unsigned int irq)”h]”j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjWÝh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjSÝubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjeÝh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjSÝubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjsÝh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjSÝubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�Ýh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjSÝubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hj�Ýh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjSÝubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjOÝubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjÝh²hh³j(Ýh´M¬ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjÝh²hh³j(Ýh´M¬ubah}”(h]”j Ýah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j(Ýh´M¬hjÝh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ'Invoke the handler for a particular irq”h]”hŒ'Invoke the handler for a particular irq”…”�”}”(hj¹Ýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”•h´M¬hj¶Ýh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjÝh²hh³j(Ýh´M¬ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjÑÝjkjÑÝjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hŒö**Parameters** ``unsigned int irq`` The irq number to handle **Return** 0 on success, or -EINVAL if conversion has failed **Description** This function must be called from an IRQ context with irq regs initialized.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÛÝh]”hŒ Parameters”…”�”}”(hjÝÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÙÝubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M°hjÕÝubj�)�”}”(hhh]”j•)�”}”(hŒ.``unsigned int irq`` The irq number to handle ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjúÝh]”hŒunsigned int irq”…”�”}”(hjüÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjøÝubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M­hjôÝubjµ)�”}”(hhh]”jƒ)�”}”(hŒThe irq number to handle”h]”hŒThe irq number to handle”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÞh´M­hjÞubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjôÝubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÞh´M­hjñÝubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÕÝubjƒ)�”}”(hŒ **Return**”h]”jz)�”}”(hj5Þh]”hŒReturn”…”�”}”(hj7Þh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj3Þubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M¯hjÕÝubjƒ)�”}”(hŒ10 on success, or -EINVAL if conversion has failed”h]”hŒ10 on success, or -EINVAL if conversion has failed”…”�”}”(hjKÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M¯hjÕÝubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj\Þh]”hŒ Description”…”�”}”(hj^Þh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjZÞubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M±hjÕÝubjˆ)�”}”(hŒKThis function must be called from an IRQ context with irq regs initialized.”h]”jƒ)�”}”(hŒKThis function must be called from an IRQ context with irq regs initialized.”h]”hŒKThis function must be called from an IRQ context with irq regs initialized.”…”�”}”(hjvÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M°hjrÞubah}”(h]”h ]”h"]”h$]”h&]”uh1jˆh³j„Þh´M°hjÕÝubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ$generic_handle_irq_safe (C function)”Œc.generic_handle_irq_safe”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ.int generic_handle_irq_safe (unsigned int irq)”h]”j])�”}”(hŒ-int generic_handle_irq_safe(unsigned int irq)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj«Þh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj§Þh²hh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M»ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjºÞh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj§Þh²hh³j¹Þh´M»ubj†)�”}”(hŒgeneric_handle_irq_safe”h]”jŒ)�”}”(hŒgeneric_handle_irq_safe”h]”hŒgeneric_handle_irq_safe”…”�”}”(hjÌÞh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÈÞubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj§Þh²hh³j¹Þh´M»ubj¥)�”}”(hŒ(unsigned int irq)”h]”j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjèÞh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjäÞubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjöÞh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjäÞubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjäÞubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjäÞubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hj ßh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjäÞubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjàÞubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj§Þh²hh³j¹Þh´M»ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj£Þh²hh³j¹Þh´M»ubah}”(h]”jžÞah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j¹Þh´M»hj Þh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ9Invoke the handler for a particular irq from any context.”h]”hŒ9Invoke the handler for a particular irq from any context.”…”�”}”(hjJßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M»hjGßh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj Þh²hh³j¹Þh´M»ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjbßjkjbßjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hX?**Parameters** ``unsigned int irq`` The irq number to handle **Return** 0 on success, a negative value on error. **Description** This function can be called from any context (IRQ or process context). It will report an error if not invoked from IRQ context and the irq has been marked to enforce IRQ-context only.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjlßh]”hŒ Parameters”…”�”}”(hjnßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjjßubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M¿hjfßubj�)�”}”(hhh]”j•)�”}”(hŒ.``unsigned int irq`` The irq number to handle ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hj‹ßh]”hŒunsigned int irq”…”�”}”(hj�ßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‰ßubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M½hj…ßubjµ)�”}”(hhh]”jƒ)�”}”(hŒThe irq number to handle”h]”hŒThe irq number to handle”…”�”}”(hj¤ßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j ßh´M½hj¡ßubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj…ßubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j ßh´M½hj‚ßubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjfßubjƒ)�”}”(hŒ **Return**”h]”jz)�”}”(hjÆßh]”hŒReturn”…”�”}”(hjÈßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÄßubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M¿hjfßubjƒ)�”}”(hŒ(0 on success, a negative value on error.”h]”hŒ(0 on success, a negative value on error.”…”�”}”(hjÜßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M¿hjfßubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjíßh]”hŒ Description”…”�”}”(hjïßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjëßubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MÁhjfßubjƒ)�”}”(hŒ·This function can be called from any context (IRQ or process context). It will report an error if not invoked from IRQ context and the irq has been marked to enforce IRQ-context only.”h]”hŒ·This function can be called from any context (IRQ or process context). It will report an error if not invoked from IRQ context and the irq has been marked to enforce IRQ-context only.”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MÀhjfßubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ&generic_handle_domain_irq (C function)”Œc.generic_handle_domain_irq”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒPint generic_handle_domain_irq (struct irq_domain *domain, irq_hw_number_t hwirq)”h]”j])�”}”(hŒOint generic_handle_domain_irq(struct irq_domain *domain, irq_hw_number_t hwirq)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj2àh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj.àh²hh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MÓubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjAàh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj.àh²hh³j@àh´MÓubj†)�”}”(hŒgeneric_handle_domain_irq”h]”jŒ)�”}”(hŒgeneric_handle_domain_irq”h]”hŒgeneric_handle_domain_irq”…”�”}”(hjSàh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjOàubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj.àh²hh³j@àh´MÓubj¥)�”}”(hŒ2(struct irq_domain *domain, irq_hw_number_t hwirq)”h]”(j«)�”}”(hŒstruct irq_domain *domain”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjoàh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjkàubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|àh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjkàubh)�”}”(hhh]”jŒ)�”}”(hŒ irq_domain”h]”hŒ irq_domain”…”�”}”(hj�àh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjŠàubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j�àŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjUàsbŒc.generic_handle_domain_irq”†”asbuh1hhjkàubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj­àh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjkàubj )�”}”(hj h]”hŒ*”…”�”}”(hj»àh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjkàubjŒ)�”}”(hŒdomain”h]”hŒdomain”…”�”}”(hjÈàh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjkàubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjgàubj«)�”}”(hŒirq_hw_number_t hwirq”h]”(h)�”}”(hhh]”jŒ)�”}”(hŒirq_hw_number_t”h]”hŒirq_hw_number_t”…”�”}”(hjäàh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjáàubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jæàŒmodname”NŒ classname”Njìjï)�”}”jò]”j©àŒc.generic_handle_domain_irq”†”asbuh1hhjÝàubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÝàubjŒ)�”}”(hŒhwirq”h]”hŒhwirq”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÝàubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjgàubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj.àh²hh³j@àh´MÓubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj*àh²hh³j@àh´MÓubah}”(h]”j%àah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j@àh´MÓhj'àh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ6Invoke the handler for a HW irq belonging to a domain.”h]”hŒ6Invoke the handler for a HW irq belonging to a domain.”…”�”}”(hj:áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MÓhj7áh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj'àh²hh³j@àh´MÓubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjRájkjRájl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hXX**Parameters** ``struct irq_domain *domain`` The domain where to perform the lookup ``irq_hw_number_t hwirq`` The HW irq number to convert to a logical one **Return** 0 on success, or -EINVAL if conversion has failed **Description** This function must be called from an IRQ context with irq regs initialized.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj\áh]”hŒ Parameters”…”�”}”(hj^áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjZáubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M×hjVáubj�)�”}”(hhh]”(j•)�”}”(hŒE``struct irq_domain *domain`` The domain where to perform the lookup ”h]”(j›)�”}”(hŒ``struct irq_domain *domain``”h]”j)�”}”(hj{áh]”hŒstruct irq_domain *domain”…”�”}”(hj}áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjyáubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MÕhjuáubjµ)�”}”(hhh]”jƒ)�”}”(hŒ&The domain where to perform the lookup”h]”hŒ&The domain where to perform the lookup”…”�”}”(hj”áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j�áh´MÕhj‘áubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjuáubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j�áh´MÕhjráubj•)�”}”(hŒH``irq_hw_number_t hwirq`` The HW irq number to convert to a logical one ”h]”(j›)�”}”(hŒ``irq_hw_number_t hwirq``”h]”j)�”}”(hj´áh]”hŒirq_hw_number_t hwirq”…”�”}”(hj¶áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj²áubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MÖhj®áubjµ)�”}”(hhh]”jƒ)�”}”(hŒ-The HW irq number to convert to a logical one”h]”hŒ-The HW irq number to convert to a logical one”…”�”}”(hjÍáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÉáh´MÖhjÊáubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj®áubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÉáh´MÖhjráubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjVáubjƒ)�”}”(hŒ **Return**”h]”jz)�”}”(hjïáh]”hŒReturn”…”�”}”(hjñáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjíáubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MØhjVáubjƒ)�”}”(hŒ10 on success, or -EINVAL if conversion has failed”h]”hŒ10 on success, or -EINVAL if conversion has failed”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MØhjVáubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjâh]”hŒ Description”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjâubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MÚhjVáubjˆ)�”}”(hŒKThis function must be called from an IRQ context with irq regs initialized.”h]”jƒ)�”}”(hŒKThis function must be called from an IRQ context with irq regs initialized.”h]”hŒKThis function must be called from an IRQ context with irq regs initialized.”…”�”}”(hj0âh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MÙhj,âubah}”(h]”h ]”h"]”h$]”h&]”uh1jˆh³j>âh´MÙhjVáubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ&generic_handle_domain_nmi (C function)”Œc.generic_handle_domain_nmi”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒPint generic_handle_domain_nmi (struct irq_domain *domain, irq_hw_number_t hwirq)”h]”j])�”}”(hŒOint generic_handle_domain_nmi(struct irq_domain *domain, irq_hw_number_t hwirq)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjeâh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjaâh²hh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Müubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjtâh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjaâh²hh³jsâh´Müubj†)�”}”(hŒgeneric_handle_domain_nmi”h]”jŒ)�”}”(hŒgeneric_handle_domain_nmi”h]”hŒgeneric_handle_domain_nmi”…”�”}”(hj†âh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj‚âubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjaâh²hh³jsâh´Müubj¥)�”}”(hŒ2(struct irq_domain *domain, irq_hw_number_t hwirq)”h]”(j«)�”}”(hŒstruct irq_domain *domain”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj¢âh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjžâubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¯âh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjžâubh)�”}”(hhh]”jŒ)�”}”(hŒ irq_domain”h]”hŒ irq_domain”…”�”}”(hjÀâh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj½âubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jÂâŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjˆâsbŒc.generic_handle_domain_nmi”†”asbuh1hhjžâubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjàâh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjžâubj )�”}”(hj h]”hŒ*”…”�”}”(hjîâh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjžâubjŒ)�”}”(hŒdomain”h]”hŒdomain”…”�”}”(hjûâh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjžâubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjšâubj«)�”}”(hŒirq_hw_number_t hwirq”h]”(h)�”}”(hhh]”jŒ)�”}”(hŒirq_hw_number_t”h]”hŒirq_hw_number_t”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjãubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jãŒmodname”NŒ classname”Njìjï)�”}”jò]”jÜâŒc.generic_handle_domain_nmi”†”asbuh1hhjãubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5ãh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjãubjŒ)�”}”(hŒhwirq”h]”hŒhwirq”…”�”}”(hjCãh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjãubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjšâubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjaâh²hh³jsâh´Müubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj]âh²hh³jsâh´Müubah}”(h]”jXâah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jsâh´MühjZâh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ6Invoke the handler for a HW nmi belonging to a domain.”h]”hŒ6Invoke the handler for a HW nmi belonging to a domain.”…”�”}”(hjmãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mühjjãh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjZâh²hh³jsâh´Müubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj…ãjkj…ãjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hXX**Parameters** ``struct irq_domain *domain`` The domain where to perform the lookup ``irq_hw_number_t hwirq`` The HW irq number to convert to a logical one **Return** 0 on success, or -EINVAL if conversion has failed **Description** This function must be called from an NMI context with irq regs initialized.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj�ãh]”hŒ Parameters”…”�”}”(hj‘ãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj�ãubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mhj‰ãubj�)�”}”(hhh]”(j•)�”}”(hŒE``struct irq_domain *domain`` The domain where to perform the lookup ”h]”(j›)�”}”(hŒ``struct irq_domain *domain``”h]”j)�”}”(hj®ãh]”hŒstruct irq_domain *domain”…”�”}”(hj°ãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¬ãubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mþhj¨ãubjµ)�”}”(hhh]”jƒ)�”}”(hŒ&The domain where to perform the lookup”h]”hŒ&The domain where to perform the lookup”…”�”}”(hjÇãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÃãh´MþhjÄãubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¨ãubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÃãh´Mþhj¥ãubj•)�”}”(hŒH``irq_hw_number_t hwirq`` The HW irq number to convert to a logical one ”h]”(j›)�”}”(hŒ``irq_hw_number_t hwirq``”h]”j)�”}”(hjçãh]”hŒirq_hw_number_t hwirq”…”�”}”(hjéãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjåãubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mÿhjáãubjµ)�”}”(hhh]”jƒ)�”}”(hŒ-The HW irq number to convert to a logical one”h]”hŒ-The HW irq number to convert to a logical one”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jüãh´Mÿhjýãubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjáãubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jüãh´Mÿhj¥ãubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj‰ãubjƒ)�”}”(hŒ **Return**”h]”jz)�”}”(hj"äh]”hŒReturn”…”�”}”(hj$äh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj äubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mhj‰ãubjƒ)�”}”(hŒ10 on success, or -EINVAL if conversion has failed”h]”hŒ10 on success, or -EINVAL if conversion has failed”…”�”}”(hj8äh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mhj‰ãubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjIäh]”hŒ Description”…”�”}”(hjKäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjGäubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mhj‰ãubjˆ)�”}”(hŒKThis function must be called from an NMI context with irq regs initialized.”h]”jƒ)�”}”(hŒKThis function must be called from an NMI context with irq regs initialized.”h]”hŒKThis function must be called from an NMI context with irq regs initialized.”…”�”}”(hjcäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mhj_äubah}”(h]”h ]”h"]”h$]”h&]”uh1jˆh³jqäh´Mhj‰ãubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ,generic_handle_demux_domain_irq (C function)”Œ!c.generic_handle_demux_domain_irq”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒWbool generic_handle_demux_domain_irq (struct irq_domain *domain, irq_hw_number_t hwirq)”h]”j])�”}”(hŒVbool generic_handle_demux_domain_irq(struct irq_domain *domain, irq_hw_number_t hwirq)”h]”(jc)�”}”(hj†ah]”hŒbool”…”�”}”(hj˜äh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj”äh²hh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MCubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦äh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj”äh²hh³j¥äh´MCubj†)�”}”(hŒgeneric_handle_demux_domain_irq”h]”jŒ)�”}”(hŒgeneric_handle_demux_domain_irq”h]”hŒgeneric_handle_demux_domain_irq”…”�”}”(hj¸äh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj´äubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj”äh²hh³j¥äh´MCubj¥)�”}”(hŒ2(struct irq_domain *domain, irq_hw_number_t hwirq)”h]”(j«)�”}”(hŒstruct irq_domain *domain”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjÔäh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjÐäubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjáäh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÐäubh)�”}”(hhh]”jŒ)�”}”(hŒ irq_domain”h]”hŒ irq_domain”…”�”}”(hjòäh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjïäubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jôäŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjºäsbŒ!c.generic_handle_demux_domain_irq”†”asbuh1hhjÐäubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÐäubj )�”}”(hj h]”hŒ*”…”�”}”(hj åh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÐäubjŒ)�”}”(hŒdomain”h]”hŒdomain”…”�”}”(hj-åh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÐäubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjÌäubj«)�”}”(hŒirq_hw_number_t hwirq”h]”(h)�”}”(hhh]”jŒ)�”}”(hŒirq_hw_number_t”h]”hŒirq_hw_number_t”…”�”}”(hjIåh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjFåubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jKåŒmodname”NŒ classname”Njìjï)�”}”jò]”jåŒ!c.generic_handle_demux_domain_irq”†”asbuh1hhjBåubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjgåh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjBåubjŒ)�”}”(hŒhwirq”h]”hŒhwirq”…”�”}”(hjuåh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjBåubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjÌäubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj”äh²hh³j¥äh´MCubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj�äh²hh³j¥äh´MCubah}”(h]”j‹äah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j¥äh´MChj�äh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒGInvoke the handler for a hardware interrupt of a demultiplexing domain.”h]”hŒGInvoke the handler for a hardware interrupt of a demultiplexing domain.”…”�”}”(hjŸåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MChjœåh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj�äh²hh³j¥äh´MCubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj·åjkj·åjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hŒé**Parameters** ``struct irq_domain *domain`` The domain where to perform the lookup ``irq_hw_number_t hwirq`` The hardware interrupt number to convert to a logical one **Return** True on success, or false if lookup has failed”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÁåh]”hŒ Parameters”…”�”}”(hjÃåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj¿åubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MGhj»åubj�)�”}”(hhh]”(j•)�”}”(hŒE``struct irq_domain *domain`` The domain where to perform the lookup ”h]”(j›)�”}”(hŒ``struct irq_domain *domain``”h]”j)�”}”(hjàåh]”hŒstruct irq_domain *domain”…”�”}”(hjâåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÞåubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MEhjÚåubjµ)�”}”(hhh]”jƒ)�”}”(hŒ&The domain where to perform the lookup”h]”hŒ&The domain where to perform the lookup”…”�”}”(hjùåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jõåh´MEhjöåubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÚåubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jõåh´MEhj×åubj•)�”}”(hŒT``irq_hw_number_t hwirq`` The hardware interrupt number to convert to a logical one ”h]”(j›)�”}”(hŒ``irq_hw_number_t hwirq``”h]”j)�”}”(hjæh]”hŒirq_hw_number_t hwirq”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjæubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MFhjæubjµ)�”}”(hhh]”jƒ)�”}”(hŒ9The hardware interrupt number to convert to a logical one”h]”hŒ9The hardware interrupt number to convert to a logical one”…”�”}”(hj2æh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j.æh´MFhj/æubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjæubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j.æh´MFhj×åubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj»åubjƒ)�”}”(hŒ **Return**”h]”jz)�”}”(hjTæh]”hŒReturn”…”�”}”(hjVæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjRæubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MHhj»åubjƒ)�”}”(hŒ.True on success, or false if lookup has failed”h]”hŒ.True on success, or false if lookup has failed”…”�”}”(hjjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MHhj»åubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_free_descs (C function)”Œc.irq_free_descs”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ9void irq_free_descs (unsigned int from, unsigned int cnt)”h]”j])�”}”(hŒ8void irq_free_descs(unsigned int from, unsigned int cnt)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj™æh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj•æh²hh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M]ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨æh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj•æh²hh³j§æh´M]ubj†)�”}”(hŒirq_free_descs”h]”jŒ)�”}”(hŒirq_free_descs”h]”hŒirq_free_descs”…”�”}”(hjºæh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¶æubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj•æh²hh³j§æh´M]ubj¥)�”}”(hŒ%(unsigned int from, unsigned int cnt)”h]”(j«)�”}”(hŒunsigned int from”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjÖæh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÒæubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjäæh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÒæubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjòæh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÒæubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÒæubjŒ)�”}”(hŒfrom”h]”hŒfrom”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÒæubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjÎæubj«)�”}”(hŒunsigned int cnt”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj'çh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj#çubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5çh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj#çubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjCçh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj#çubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQçh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj#çubjŒ)�”}”(hŒcnt”h]”hŒcnt”…”�”}”(hj_çh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj#çubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjÎæubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj•æh²hh³j§æh´M]ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj‘æh²hh³j§æh´M]ubah}”(h]”jŒæah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j§æh´M]hjŽæh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒfree irq descriptors”h]”hŒfree irq descriptors”…”�”}”(hj‰çh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M]hj†çh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjŽæh²hh³j§æh´M]ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj¡çjkj¡çjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hŒ|**Parameters** ``unsigned int from`` Start of descriptor range ``unsigned int cnt`` Number of consecutive irqs to free”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj«çh]”hŒ Parameters”…”�”}”(hj­çh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj©çubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mahj¥çubj�)�”}”(hhh]”(j•)�”}”(hŒ0``unsigned int from`` Start of descriptor range ”h]”(j›)�”}”(hŒ``unsigned int from``”h]”j)�”}”(hjÊçh]”hŒunsigned int from”…”�”}”(hjÌçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÈçubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M^hjÄçubjµ)�”}”(hhh]”jƒ)�”}”(hŒStart of descriptor range”h]”hŒStart of descriptor range”…”�”}”(hjãçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jßçh´M^hjàçubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÄçubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jßçh´M^hjÁçubj•)�”}”(hŒ7``unsigned int cnt`` Number of consecutive irqs to free”h]”(j›)�”}”(hŒ``unsigned int cnt``”h]”j)�”}”(hjèh]”hŒunsigned int cnt”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjèubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M`hjýçubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Number of consecutive irqs to free”h]”hŒ"Number of consecutive irqs to free”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M_hjèubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjýçubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jèh´M`hjÁçubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj¥çubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ__irq_alloc_descs (C function)”Œc.__irq_alloc_descs”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ”int __ref __irq_alloc_descs (int irq, unsigned int from, unsigned int cnt, int node, struct module *owner, const struct irq_affinity_desc *affinity)”h]”j])�”}”(hŒ“int __ref __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node, struct module *owner, const struct irq_affinity_desc *affinity)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj]èh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjYèh²hh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Moubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjlèh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjYèh²hh³jkèh´MoubhŒ__ref”…”�”}”(hjYèh²hh³Nh´Nubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~èh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjYèh²hh³jkèh´Moubj†)�”}”(hŒ__irq_alloc_descs”h]”jŒ)�”}”(hŒ__irq_alloc_descs”h]”hŒ__irq_alloc_descs”…”�”}”(hj�èh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjŒèubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjYèh²hh³jkèh´Moubj¥)�”}”(hŒx(int irq, unsigned int from, unsigned int cnt, int node, struct module *owner, const struct irq_affinity_desc *affinity)”h]”(j«)�”}”(hŒint irq”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj¬èh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj¨èubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjºèh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¨èubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjÈèh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¨èubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¤èubj«)�”}”(hŒunsigned int from”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjáèh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÝèubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjïèh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÝèubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjýèh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÝèubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj éh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÝèubjŒ)�”}”(hŒfrom”h]”hŒfrom”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÝèubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¤èubj«)�”}”(hŒunsigned int cnt”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj2éh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj.éubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@éh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj.éubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjNéh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj.éubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\éh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj.éubjŒ)�”}”(hŒcnt”h]”hŒcnt”…”�”}”(hjjéh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj.éubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¤èubj«)�”}”(hŒint node”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjƒéh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjéubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‘éh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjéubjŒ)�”}”(hŒnode”h]”hŒnode”…”�”}”(hjŸéh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjéubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¤èubj«)�”}”(hŒstruct module *owner”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj¸éh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj´éubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÅéh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj´éubh)�”}”(hhh]”jŒ)�”}”(hŒmodule”h]”hŒmodule”…”�”}”(hjÖéh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÓéubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jØéŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj’èsbŒc.__irq_alloc_descs”†”asbuh1hhj´éubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjöéh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj´éubj )�”}”(hj h]”hŒ*”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj´éubjŒ)�”}”(hŒowner”h]”hŒowner”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj´éubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¤èubj«)�”}”(hŒ(const struct irq_affinity_desc *affinity”h]”(j±)�”}”(hj�h]”hŒconst”…”�”}”(hj*êh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj&êubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7êh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj&êubj±)�”}”(hj´h]”hŒstruct”…”�”}”(hjEêh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj&êubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjRêh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj&êubh)�”}”(hhh]”jŒ)�”}”(hŒirq_affinity_desc”h]”hŒirq_affinity_desc”…”�”}”(hjcêh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj`êubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jeêŒmodname”NŒ classname”Njìjï)�”}”jò]”jòéŒc.__irq_alloc_descs”†”asbuh1hhj&êubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�êh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj&êubj )�”}”(hj h]”hŒ*”…”�”}”(hj�êh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj&êubjŒ)�”}”(hŒaffinity”h]”hŒaffinity”…”�”}”(hjœêh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj&êubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¤èubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjYèh²hh³jkèh´Moubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjUèh²hh³jkèh´Moubah}”(h]”jPèah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jkèh´MohjRèh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ2allocate and initialize a range of irq descriptors”h]”hŒ2allocate and initialize a range of irq descriptors”…”�”}”(hjÆêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MohjÃêh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjRèh²hh³jkèh´Moubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjÞêjkjÞêjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hXZ**Parameters** ``int irq`` Allocate for specific irq number if irq >= 0 ``unsigned int from`` Start the search from this irq number ``unsigned int cnt`` Number of consecutive irqs to allocate. ``int node`` Preferred node on which the irq descriptor should be allocated ``struct module *owner`` Owning module (can be NULL) ``const struct irq_affinity_desc *affinity`` Optional pointer to an affinity mask array of size **cnt** which hints where the irq descriptors should be allocated and which default affinities to use **Description** Returns the first irq number or error code”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjèêh]”hŒ Parameters”…”�”}”(hjêêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjæêubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mshjâêubj�)�”}”(hhh]”(j•)�”}”(hŒ9``int irq`` Allocate for specific irq number if irq >= 0 ”h]”(j›)�”}”(hŒ ``int irq``”h]”j)�”}”(hjëh]”hŒint irq”…”�”}”(hj ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjëubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mphjëubjµ)�”}”(hhh]”jƒ)�”}”(hŒ,Allocate for specific irq number if irq >= 0”h]”hŒ,Allocate for specific irq number if irq >= 0”…”�”}”(hj ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jëh´Mphjëubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjëubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jëh´Mphjþêubj•)�”}”(hŒ<``unsigned int from`` Start the search from this irq number ”h]”(j›)�”}”(hŒ``unsigned int from``”h]”j)�”}”(hj@ëh]”hŒunsigned int from”…”�”}”(hjBëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj>ëubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mqhj:ëubjµ)�”}”(hhh]”jƒ)�”}”(hŒ%Start the search from this irq number”h]”hŒ%Start the search from this irq number”…”�”}”(hjYëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jUëh´MqhjVëubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj:ëubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jUëh´Mqhjþêubj•)�”}”(hŒ=``unsigned int cnt`` Number of consecutive irqs to allocate. ”h]”(j›)�”}”(hŒ``unsigned int cnt``”h]”j)�”}”(hjyëh]”hŒunsigned int cnt”…”�”}”(hj{ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjwëubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mrhjsëubjµ)�”}”(hhh]”jƒ)�”}”(hŒ'Number of consecutive irqs to allocate.”h]”hŒ'Number of consecutive irqs to allocate.”…”�”}”(hj’ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jŽëh´Mrhj�ëubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjsëubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jŽëh´Mrhjþêubj•)�”}”(hŒL``int node`` Preferred node on which the irq descriptor should be allocated ”h]”(j›)�”}”(hŒ ``int node``”h]”j)�”}”(hj²ëh]”hŒint node”…”�”}”(hj´ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj°ëubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mshj¬ëubjµ)�”}”(hhh]”jƒ)�”}”(hŒ>Preferred node on which the irq descriptor should be allocated”h]”hŒ>Preferred node on which the irq descriptor should be allocated”…”�”}”(hjËëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÇëh´MshjÈëubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¬ëubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÇëh´Mshjþêubj•)�”}”(hŒ5``struct module *owner`` Owning module (can be NULL) ”h]”(j›)�”}”(hŒ``struct module *owner``”h]”j)�”}”(hjëëh]”hŒstruct module *owner”…”�”}”(hjíëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjéëubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mthjåëubjµ)�”}”(hhh]”jƒ)�”}”(hŒOwning module (can be NULL)”h]”hŒOwning module (can be NULL)”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jìh´Mthjìubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjåëubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jìh´Mthjþêubj•)�”}”(hŒÆ``const struct irq_affinity_desc *affinity`` Optional pointer to an affinity mask array of size **cnt** which hints where the irq descriptors should be allocated and which default affinities to use ”h]”(j›)�”}”(hŒ,``const struct irq_affinity_desc *affinity``”h]”j)�”}”(hj$ìh]”hŒ(const struct irq_affinity_desc *affinity”…”�”}”(hj&ìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj"ìubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mwhjìubjµ)�”}”(hhh]”jƒ)�”}”(hŒ˜Optional pointer to an affinity mask array of size **cnt** which hints where the irq descriptors should be allocated and which default affinities to use”h]”(hŒ3Optional pointer to an affinity mask array of size ”…”�”}”(hj=ìh²hh³Nh´Nubjz)�”}”(hŒ**cnt**”h]”hŒcnt”…”�”}”(hjEìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj=ìubhŒ^ which hints where the irq descriptors should be allocated and which default affinities to use”…”�”}”(hj=ìh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Muhj:ìubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjìubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j9ìh´Mwhjþêubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjâêubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjrìh]”hŒ Description”…”�”}”(hjtìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjpìubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Myhjâêubjƒ)�”}”(hŒ*Returns the first irq number or error code”h]”hŒ*Returns the first irq number or error code”…”�”}”(hjˆìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mxhjâêubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_get_next_irq (C function)”Œc.irq_get_next_irq”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ3unsigned int irq_get_next_irq (unsigned int offset)”h]”j])�”}”(hŒ2unsigned int irq_get_next_irq(unsigned int offset)”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj·ìh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj³ìh²hh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MŸubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÆìh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj³ìh²hh³jÅìh´MŸubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjÔìh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj³ìh²hh³jÅìh´MŸubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâìh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj³ìh²hh³jÅìh´MŸubj†)�”}”(hŒirq_get_next_irq”h]”jŒ)�”}”(hŒirq_get_next_irq”h]”hŒirq_get_next_irq”…”�”}”(hjôìh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjðìubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj³ìh²hh³jÅìh´MŸubj¥)�”}”(hŒ(unsigned int offset)”h]”j«)�”}”(hŒunsigned int offset”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj íubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj íubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj,íh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj íubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:íh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj íubjŒ)�”}”(hŒoffset”h]”hŒoffset”…”�”}”(hjHíh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj íubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjíubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj³ìh²hh³jÅìh´MŸubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj¯ìh²hh³jÅìh´MŸubah}”(h]”jªìah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jÅìh´MŸhj¬ìh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒget next allocated irq number”h]”hŒget next allocated irq number”…”�”}”(hjríh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´MŸhjoíh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj¬ìh²hh³jÅìh´MŸubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjŠíjkjŠíjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hŒ�**Parameters** ``unsigned int offset`` where to start the search **Description** Returns next irq number after offset or total_nr_irqs if none is found.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj”íh]”hŒ Parameters”…”�”}”(hj–íh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj’íubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M£hjŽíubj�)�”}”(hhh]”j•)�”}”(hŒ2``unsigned int offset`` where to start the search ”h]”(j›)�”}”(hŒ``unsigned int offset``”h]”j)�”}”(hj³íh]”hŒunsigned int offset”…”�”}”(hjµíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj±íubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M hj­íubjµ)�”}”(hhh]”jƒ)�”}”(hŒwhere to start the search”h]”hŒwhere to start the search”…”�”}”(hjÌíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÈíh´M hjÉíubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj­íubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÈíh´M hjªíubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjŽíubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjîíh]”hŒ Description”…”�”}”(hjðíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjìíubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M¢hjŽíubjƒ)�”}”(hŒGReturns next irq number after offset or total_nr_irqs if none is found.”h]”hŒGReturns next irq number after offset or total_nr_irqs if none is found.”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M¡hjŽíubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒkstat_irqs_cpu (C function)”Œc.kstat_irqs_cpu”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ7unsigned int kstat_irqs_cpu (unsigned int irq, int cpu)”h]”j])�”}”(hŒ6unsigned int kstat_irqs_cpu(unsigned int irq, int cpu)”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj3îh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj/îh²hh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mãubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBîh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj/îh²hh³jAîh´Mãubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjPîh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj/îh²hh³jAîh´Mãubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^îh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj/îh²hh³jAîh´Mãubj†)�”}”(hŒkstat_irqs_cpu”h]”jŒ)�”}”(hŒkstat_irqs_cpu”h]”hŒkstat_irqs_cpu”…”�”}”(hjpîh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjlîubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj/îh²hh³jAîh´Mãubj¥)�”}”(hŒ(unsigned int irq, int cpu)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjŒîh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjˆîubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjšîh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjˆîubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj¨îh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjˆîubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶îh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjˆîubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjÄîh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjˆîubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj„îubj«)�”}”(hŒint cpu”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjÝîh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÙîubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjëîh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÙîubjŒ)�”}”(hŒcpu”h]”hŒcpu”…”�”}”(hjùîh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÙîubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj„îubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj/îh²hh³jAîh´Mãubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj+îh²hh³jAîh´Mãubah}”(h]”j&îah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jAîh´Mãhj(îh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ,Get the statistics for an interrupt on a cpu”h]”hŒ,Get the statistics for an interrupt on a cpu”…”�”}”(hj#ïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mãhj ïh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj(îh²hh³jAîh´Mãubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj;ïjkj;ïjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hŒù**Parameters** ``unsigned int irq`` The interrupt number ``int cpu`` The cpu number **Description** Returns the sum of interrupt counts on **cpu** since boot for **irq**. The caller must ensure that the interrupt is not removed concurrently.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjEïh]”hŒ Parameters”…”�”}”(hjGïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjCïubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mçhj?ïubj�)�”}”(hhh]”(j•)�”}”(hŒ*``unsigned int irq`` The interrupt number ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hjdïh]”hŒunsigned int irq”…”�”}”(hjfïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjbïubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mähj^ïubjµ)�”}”(hhh]”jƒ)�”}”(hŒThe interrupt number”h]”hŒThe interrupt number”…”�”}”(hj}ïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jyïh´Mähjzïubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj^ïubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jyïh´Mähj[ïubj•)�”}”(hŒ``int cpu`` The cpu number ”h]”(j›)�”}”(hŒ ``int cpu``”h]”j)�”}”(hj�ïh]”hŒint cpu”…”�”}”(hjŸïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj›ïubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Måhj—ïubjµ)�”}”(hhh]”jƒ)�”}”(hŒThe cpu number”h]”hŒThe cpu number”…”�”}”(hj¶ïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j²ïh´Måhj³ïubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj—ïubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j²ïh´Måhj[ïubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hj?ïubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjØïh]”hŒ Description”…”�”}”(hjÚïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÖïubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mçhj?ïubjƒ)�”}”(hŒ�Returns the sum of interrupt counts on **cpu** since boot for **irq**. The caller must ensure that the interrupt is not removed concurrently.”h]”(hŒ'Returns the sum of interrupt counts on ”…”�”}”(hjîïh²hh³Nh´Nubjz)�”}”(hŒ**cpu**”h]”hŒcpu”…”�”}”(hjöïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjîïubhŒ since boot for ”…”�”}”(hjîïh²hh³Nh´Nubjz)�”}”(hŒ**irq**”h]”hŒirq”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjîïubhŒH. The caller must ensure that the interrupt is not removed concurrently.”…”�”}”(hjîïh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´Mæhj?ïubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒkstat_irqs_usr (C function)”Œc.kstat_irqs_usr”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ.unsigned int kstat_irqs_usr (unsigned int irq)”h]”j])�”}”(hŒ-unsigned int kstat_irqs_usr(unsigned int irq)”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjAðh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj=ðh²hh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M!ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjPðh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj=ðh²hh³jOðh´M!ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj^ðh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj=ðh²hh³jOðh´M!ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjlðh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj=ðh²hh³jOðh´M!ubj†)�”}”(hŒkstat_irqs_usr”h]”jŒ)�”}”(hŒkstat_irqs_usr”h]”hŒkstat_irqs_usr”…”�”}”(hj~ðh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjzðubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj=ðh²hh³jOðh´M!ubj¥)�”}”(hŒ(unsigned int irq)”h]”j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjšðh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj–ðubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨ðh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj–ðubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj¶ðh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj–ðubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÄðh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj–ðubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjÒðh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj–ðubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj’ðubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj=ðh²hh³jOðh´M!ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj9ðh²hh³jOðh´M!ubah}”(h]”j4ðah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jOðh´M!hj6ðh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ7Get the statistics for an interrupt from thread context”h]”hŒ7Get the statistics for an interrupt from thread context”…”�”}”(hjüðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M!hjùðh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj6ðh²hh³jOðh´M!ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjñjkjñjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hX>**Parameters** ``unsigned int irq`` The interrupt number **Description** Returns the sum of interrupt counts on all cpus since boot for **irq**. It uses rcu to protect the access since a concurrent removal of an interrupt descriptor is observing an rcu grace period before delayed_free_desc()/irq_kobj_release().”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjñh]”hŒ Parameters”…”�”}”(hj ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjñubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M%hjñubj�)�”}”(hhh]”j•)�”}”(hŒ*``unsigned int irq`` The interrupt number ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hj=ñh]”hŒunsigned int irq”…”�”}”(hj?ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj;ñubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M"hj7ñubjµ)�”}”(hhh]”jƒ)�”}”(hŒThe interrupt number”h]”hŒThe interrupt number”…”�”}”(hjVñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jRñh´M"hjSñubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj7ñubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jRñh´M"hj4ñubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjñubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjxñh]”hŒ Description”…”�”}”(hjzñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjvñubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M$hjñubjƒ)�”}”(hŒGReturns the sum of interrupt counts on all cpus since boot for **irq**.”h]”(hŒ?Returns the sum of interrupt counts on all cpus since boot for ”…”�”}”(hjŽñh²hh³Nh´Nubjz)�”}”(hŒ**irq**”h]”hŒirq”…”�”}”(hj–ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjŽñubhŒ.”…”�”}”(hjŽñh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M#hjñubjƒ)�”}”(hŒ§It uses rcu to protect the access since a concurrent removal of an interrupt descriptor is observing an rcu grace period before delayed_free_desc()/irq_kobj_release().”h]”hŒ§It uses rcu to protect the access since a concurrent removal of an interrupt descriptor is observing an rcu grace period before delayed_free_desc()/irq_kobj_release().”…”�”}”(hj¯ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒY/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:516: ./kernel/irq/irqdesc.c”h´M%hjñubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒhandle_bad_irq (C function)”Œc.handle_bad_irq”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ+void handle_bad_irq (struct irq_desc *desc)”h]”j])�”}”(hŒ*void handle_bad_irq(struct irq_desc *desc)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÞñh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÚñh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:518: ./kernel/irq/handle.c”h´Kubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjíñh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÚñh²hh³jìñh´Kubj†)�”}”(hŒhandle_bad_irq”h]”jŒ)�”}”(hŒhandle_bad_irq”h]”hŒhandle_bad_irq”…”�”}”(hjÿñh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjûñubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjÚñh²hh³jìñh´Kubj¥)�”}”(hŒ(struct irq_desc *desc)”h]”j«)�”}”(hŒstruct irq_desc *desc”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjòubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(òh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjòubh)�”}”(hhh]”jŒ)�”}”(hŒirq_desc”h]”hŒirq_desc”…”�”}”(hj9òh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj6òubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j;òŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjòsbŒc.handle_bad_irq”†”asbuh1hhjòubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjYòh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjòubj )�”}”(hj h]”hŒ*”…”�”}”(hjgòh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjòubjŒ)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hjtòh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjòubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjòubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjÚñh²hh³jìñh´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjÖñh²hh³jìñh´Kubah}”(h]”jÑñah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jìñh´KhjÓñh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ"handle spurious and unhandled irqs”h]”hŒ"handle spurious and unhandled irqs”…”�”}”(hjžòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:518: ./kernel/irq/handle.c”h´Khj›òh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjÓñh²hh³jìñh´Kubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj¶òjkj¶òjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hŒŸ**Parameters** ``struct irq_desc *desc`` description of the interrupt **Description** Handles spurious and unhandled IRQ's. It also prints a debugmessage.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÀòh]”hŒ Parameters”…”�”}”(hjÂòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj¾òubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:518: ./kernel/irq/handle.c”h´K hjºòubj�)�”}”(hhh]”j•)�”}”(hŒ7``struct irq_desc *desc`` description of the interrupt ”h]”(j›)�”}”(hŒ``struct irq_desc *desc``”h]”j)�”}”(hjßòh]”hŒstruct irq_desc *desc”…”�”}”(hjáòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÝòubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:518: ./kernel/irq/handle.c”h´KhjÙòubjµ)�”}”(hhh]”jƒ)�”}”(hŒdescription of the interrupt”h]”hŒdescription of the interrupt”…”�”}”(hjøòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jôòh´Khjõòubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÙòubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jôòh´KhjÖòubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjºòubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjóh]”hŒ Description”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjóubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:518: ./kernel/irq/handle.c”h´Khjºòubjƒ)�”}”(hŒDHandles spurious and unhandled IRQ's. It also prints a debugmessage.”h]”hŒFHandles spurious and unhandled IRQ’s. It also prints a debugmessage.”…”�”}”(hj0óh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:518: ./kernel/irq/handle.c”h´Khjºòubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ$generic_handle_arch_irq (C function)”Œc.generic_handle_arch_irq”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ;void noinstr generic_handle_arch_irq (struct pt_regs *regs)”h]”j])�”}”(hŒ:void noinstr generic_handle_arch_irq(struct pt_regs *regs)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj_óh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj[óh²hh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:518: ./kernel/irq/handle.c”•ýúh´Mubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjnóh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj[óh²hh³jmóh´MubhŒnoinstr”…”�”}”(hj[óh²hh³Nh´Nubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj€óh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj[óh²hh³jmóh´Mubj†)�”}”(hŒgeneric_handle_arch_irq”h]”jŒ)�”}”(hŒgeneric_handle_arch_irq”h]”hŒgeneric_handle_arch_irq”…”�”}”(hj’óh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjŽóubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj[óh²hh³jmóh´Mubj¥)�”}”(hŒ(struct pt_regs *regs)”h]”j«)�”}”(hŒstruct pt_regs *regs”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj®óh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjªóubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»óh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjªóubh)�”}”(hhh]”jŒ)�”}”(hŒpt_regs”h]”hŒpt_regs”…”�”}”(hjÌóh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÉóubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jÎóŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj”ósbŒc.generic_handle_arch_irq”†”asbuh1hhjªóubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjìóh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjªóubj )�”}”(hj h]”hŒ*”…”�”}”(hjúóh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjªóubjŒ)�”}”(hŒregs”h]”hŒregs”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjªóubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¦óubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj[óh²hh³jmóh´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjWóh²hh³jmóh´Mubah}”(h]”jRóah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jmóh´MhjTóh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒJroot irq handler for architectures which do no entry accounting themselves”h]”hŒJroot irq handler for architectures which do no entry accounting themselves”…”�”}”(hj1ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:518: ./kernel/irq/handle.c”h´Mhj.ôh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjTóh²hh³jmóh´Mubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjIôjkjIôjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hŒ`**Parameters** ``struct pt_regs *regs`` Register file coming from the low-level handling code”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjSôh]”hŒ Parameters”…”�”}”(hjUôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjQôubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:518: ./kernel/irq/handle.c”h´MhjMôubj�)�”}”(hhh]”j•)�”}”(hŒN``struct pt_regs *regs`` Register file coming from the low-level handling code”h]”(j›)�”}”(hŒ``struct pt_regs *regs``”h]”j)�”}”(hjrôh]”hŒstruct pt_regs *regs”…”�”}”(hjtôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjpôubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:518: ./kernel/irq/handle.c”h´Mhjlôubjµ)�”}”(hhh]”jƒ)�”}”(hŒ5Register file coming from the low-level handling code”h]”hŒ5Register file coming from the low-level handling code”…”�”}”(hj‹ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒX/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:518: ./kernel/irq/handle.c”h´Mhjˆôubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjlôubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j‡ôh´Mhjiôubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjMôubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ!irq_set_msi_desc_off (C function)”Œc.irq_set_msi_desc_off”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒaint irq_set_msi_desc_off (unsigned int irq_base, unsigned int irq_offset, struct msi_desc *entry)”h]”j])�”}”(hŒ`int irq_set_msi_desc_off(unsigned int irq_base, unsigned int irq_offset, struct msi_desc *entry)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hjÌôh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjÈôh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´K[ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÛôh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÈôh²hh³jÚôh´K[ubj†)�”}”(hŒirq_set_msi_desc_off”h]”jŒ)�”}”(hŒirq_set_msi_desc_off”h]”hŒirq_set_msi_desc_off”…”�”}”(hjíôh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjéôubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjÈôh²hh³jÚôh´K[ubj¥)�”}”(hŒH(unsigned int irq_base, unsigned int irq_offset, struct msi_desc *entry)”h]”(j«)�”}”(hŒunsigned int irq_base”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj õh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjõubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjõubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hj%õh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjõubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3õh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjõubjŒ)�”}”(hŒirq_base”h]”hŒirq_base”…”�”}”(hjAõh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjõubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjõubj«)�”}”(hŒunsigned int irq_offset”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjZõh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjVõubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhõh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjVõubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjvõh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjVõubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„õh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjVõubjŒ)�”}”(hŒ irq_offset”h]”hŒ irq_offset”…”�”}”(hj’õh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjVõubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjõubj«)�”}”(hŒstruct msi_desc *entry”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj«õh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj§õubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¸õh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj§õubh)�”}”(hhh]”jŒ)�”}”(hŒmsi_desc”h]”hŒmsi_desc”…”�”}”(hjÉõh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÆõubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jËõŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjïôsbŒc.irq_set_msi_desc_off”†”asbuh1hhj§õubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjéõh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj§õubj )�”}”(hj h]”hŒ*”…”�”}”(hj÷õh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj§õubjŒ)�”}”(hŒentry”h]”hŒentry”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj§õubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjõubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjÈôh²hh³jÚôh´K[ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjÄôh²hh³jÚôh´K[ubah}”(h]”j¿ôah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jÚôh´K[hjÁôh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ,set MSI descriptor data for an irq at offset”h]”hŒ,set MSI descriptor data for an irq at offset”…”�”}”(hj.öh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´K[hj+öh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjÁôh²hh³jÚôh´K[ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjFöjkjFöjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hŒù**Parameters** ``unsigned int irq_base`` Interrupt number base ``unsigned int irq_offset`` Interrupt number offset ``struct msi_desc *entry`` Pointer to MSI descriptor data **Description** Set the MSI descriptor entry for an irq at offset”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjPöh]”hŒ Parameters”…”�”}”(hjRöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjNöubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´K_hjJöubj�)�”}”(hhh]”(j•)�”}”(hŒ0``unsigned int irq_base`` Interrupt number base ”h]”(j›)�”}”(hŒ``unsigned int irq_base``”h]”j)�”}”(hjoöh]”hŒunsigned int irq_base”…”�”}”(hjqöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjmöubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´K\hjiöubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt number base”h]”hŒInterrupt number base”…”�”}”(hjˆöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j„öh´K\hj…öubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjiöubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j„öh´K\hjföubj•)�”}”(hŒ4``unsigned int irq_offset`` Interrupt number offset ”h]”(j›)�”}”(hŒ``unsigned int irq_offset``”h]”j)�”}”(hj¨öh]”hŒunsigned int irq_offset”…”�”}”(hjªöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¦öubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´K]hj¢öubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt number offset”h]”hŒInterrupt number offset”…”�”}”(hjÁöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j½öh´K]hj¾öubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¢öubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j½öh´K]hjföubj•)�”}”(hŒ:``struct msi_desc *entry`` Pointer to MSI descriptor data ”h]”(j›)�”}”(hŒ``struct msi_desc *entry``”h]”j)�”}”(hjáöh]”hŒstruct msi_desc *entry”…”�”}”(hjãöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjßöubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´K^hjÛöubjµ)�”}”(hhh]”jƒ)�”}”(hŒPointer to MSI descriptor data”h]”hŒPointer to MSI descriptor data”…”�”}”(hjúöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jööh´K^hj÷öubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÛöubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jööh´K^hjföubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjJöubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj÷h]”hŒ Description”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´K`hjJöubjƒ)�”}”(hŒ1Set the MSI descriptor entry for an irq at offset”h]”hŒ1Set the MSI descriptor entry for an irq at offset”…”�”}”(hj2÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´K_hjJöubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_set_msi_desc (C function)”Œc.irq_set_msi_desc”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ?int irq_set_msi_desc (unsigned int irq, struct msi_desc *entry)”h]”j])�”}”(hŒ>int irq_set_msi_desc(unsigned int irq, struct msi_desc *entry)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hja÷h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj]÷h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Knubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjp÷h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj]÷h²hh³jo÷h´Knubj†)�”}”(hŒirq_set_msi_desc”h]”jŒ)�”}”(hŒirq_set_msi_desc”h]”hŒirq_set_msi_desc”…”�”}”(hj‚÷h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj~÷ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj]÷h²hh³jo÷h´Knubj¥)�”}”(hŒ*(unsigned int irq, struct msi_desc *entry)”h]”(j«)�”}”(hŒunsigned int irq”h]”(jc)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjž÷h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjš÷ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¬÷h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjš÷ubjc)�”}”(hŒint”h]”hŒint”…”�”}”(hjº÷h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjš÷ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÈ÷h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjš÷ubjŒ)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjÖ÷h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjš÷ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj–÷ubj«)�”}”(hŒstruct msi_desc *entry”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjï÷h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjë÷ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjü÷h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjë÷ubh)�”}”(hhh]”jŒ)�”}”(hŒmsi_desc”h]”hŒmsi_desc”…”�”}”(hj øh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj øubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jøŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj„÷sbŒc.irq_set_msi_desc”†”asbuh1hhjë÷ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj-øh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjë÷ubj )�”}”(hj h]”hŒ*”…”�”}”(hj;øh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjë÷ubjŒ)�”}”(hŒentry”h]”hŒentry”…”�”}”(hjHøh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjë÷ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj–÷ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj]÷h²hh³jo÷h´Knubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjY÷h²hh³jo÷h´Knubah}”(h]”jT÷ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jo÷h´KnhjV÷h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ"set MSI descriptor data for an irq”h]”hŒ"set MSI descriptor data for an irq”…”�”}”(hjrøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Knhjoøh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjV÷h²hh³jo÷h´Knubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjŠøjkjŠøjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hŒ®**Parameters** ``unsigned int irq`` Interrupt number ``struct msi_desc *entry`` Pointer to MSI descriptor data **Description** Set the MSI descriptor entry for an irq”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj”øh]”hŒ Parameters”…”�”}”(hj–øh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj’øubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´KrhjŽøubj�)�”}”(hhh]”(j•)�”}”(hŒ&``unsigned int irq`` Interrupt number ”h]”(j›)�”}”(hŒ``unsigned int irq``”h]”j)�”}”(hj³øh]”hŒunsigned int irq”…”�”}”(hjµøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj±øubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Kohj­øubjµ)�”}”(hhh]”jƒ)�”}”(hŒInterrupt number”h]”hŒInterrupt number”…”�”}”(hjÌøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÈøh´KohjÉøubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj­øubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÈøh´Kohjªøubj•)�”}”(hŒ:``struct msi_desc *entry`` Pointer to MSI descriptor data ”h]”(j›)�”}”(hŒ``struct msi_desc *entry``”h]”j)�”}”(hjìøh]”hŒstruct msi_desc *entry”…”�”}”(hjîøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjêøubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Kphjæøubjµ)�”}”(hhh]”jƒ)�”}”(hŒPointer to MSI descriptor data”h]”hŒPointer to MSI descriptor data”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jùh´Kphjùubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjæøubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jùh´Kphjªøubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjŽøubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj'ùh]”hŒ Description”…”�”}”(hj)ùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj%ùubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´KrhjŽøubjƒ)�”}”(hŒ'Set the MSI descriptor entry for an irq”h]”hŒ'Set the MSI descriptor entry for an irq”…”�”}”(hj=ùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´KqhjŽøubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_disable (C function)”Œ c.irq_disable”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ(void irq_disable (struct irq_desc *desc)”h]”j])�”}”(hŒ'void irq_disable(struct irq_desc *desc)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjlùh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjhùh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Mzubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{ùh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjhùh²hh³jzùh´Mzubj†)�”}”(hŒ irq_disable”h]”jŒ)�”}”(hŒ irq_disable”h]”hŒ irq_disable”…”�”}”(hj�ùh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj‰ùubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjhùh²hh³jzùh´Mzubj¥)�”}”(hŒ(struct irq_desc *desc)”h]”j«)�”}”(hŒstruct irq_desc *desc”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj©ùh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj¥ùubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶ùh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¥ùubh)�”}”(hhh]”jŒ)�”}”(hŒirq_desc”h]”hŒirq_desc”…”�”}”(hjÇùh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÄùubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jÉùŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj�ùsbŒ c.irq_disable”†”asbuh1hhj¥ùubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjçùh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¥ùubj )�”}”(hj h]”hŒ*”…”�”}”(hjõùh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¥ùubjŒ)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¥ùubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¡ùubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjhùh²hh³jzùh´Mzubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjdùh²hh³jzùh´Mzubah}”(h]”j_ùah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jzùh´Mzhjaùh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒMark interrupt disabled”h]”hŒMark interrupt disabled”…”�”}”(hj,úh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Mzhj)úh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjaùh²hh³jzùh´Mzubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjDújkjDújl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hXe**Parameters** ``struct irq_desc *desc`` irq descriptor which should be disabled **Description** If the chip does not implement the irq_disable callback, we use a lazy disable approach. That means we mark the interrupt disabled, but leave the hardware unmasked. That's an optimization because we avoid the hardware access for the common case where no interrupt happens after we marked it disabled. If an interrupt happens, then the interrupt flow handler masks the line at the hardware level and marks it pending. If the interrupt chip does not implement the irq_disable callback, a driver can disable the lazy approach for a particular irq line by calling 'irq_set_status_flags(irq, IRQ_DISABLE_UNLAZY)'. This can be used for devices which cannot disable the interrupt at the device level under certain circumstances and have to use disable_irq[_nosync] instead.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjNúh]”hŒ Parameters”…”�”}”(hjPúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjLúubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M~hjHúubj�)�”}”(hhh]”j•)�”}”(hŒB``struct irq_desc *desc`` irq descriptor which should be disabled ”h]”(j›)�”}”(hŒ``struct irq_desc *desc``”h]”j)�”}”(hjmúh]”hŒstruct irq_desc *desc”…”�”}”(hjoúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjkúubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M{hjgúubjµ)�”}”(hhh]”jƒ)�”}”(hŒ'irq descriptor which should be disabled”h]”hŒ'irq descriptor which should be disabled”…”�”}”(hj†úh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³j‚úh´M{hjƒúubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjgúubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³j‚úh´M{hjdúubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjHúubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj¨úh]”hŒ Description”…”�”}”(hjªúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj¦úubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M}hjHúubjƒ)�”}”(hX If the chip does not implement the irq_disable callback, we use a lazy disable approach. That means we mark the interrupt disabled, but leave the hardware unmasked. That's an optimization because we avoid the hardware access for the common case where no interrupt happens after we marked it disabled. If an interrupt happens, then the interrupt flow handler masks the line at the hardware level and marks it pending.”h]”hX¢If the chip does not implement the irq_disable callback, we use a lazy disable approach. That means we mark the interrupt disabled, but leave the hardware unmasked. That’s an optimization because we avoid the hardware access for the common case where no interrupt happens after we marked it disabled. If an interrupt happens, then the interrupt flow handler masks the line at the hardware level and marks it pending.”…”�”}”(hj¾úh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M|hjHúubjƒ)�”}”(hX]If the interrupt chip does not implement the irq_disable callback, a driver can disable the lazy approach for a particular irq line by calling 'irq_set_status_flags(irq, IRQ_DISABLE_UNLAZY)'. This can be used for devices which cannot disable the interrupt at the device level under certain circumstances and have to use disable_irq[_nosync] instead.”h]”hXaIf the interrupt chip does not implement the irq_disable callback, a driver can disable the lazy approach for a particular irq line by calling ‘irq_set_status_flags(irq, IRQ_DISABLE_UNLAZY)’. This can be used for devices which cannot disable the interrupt at the device level under certain circumstances and have to use disable_irq[_nosync] instead.”…”�”}”(hjÍúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M…hjHúubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒhandle_percpu_irq (C function)”Œc.handle_percpu_irq”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ.void handle_percpu_irq (struct irq_desc *desc)”h]”j])�”}”(hŒ-void handle_percpu_irq(struct irq_desc *desc)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjüúh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjøúh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Mbubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ûh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjøúh²hh³j ûh´Mbubj†)�”}”(hŒhandle_percpu_irq”h]”jŒ)�”}”(hŒhandle_percpu_irq”h]”hŒhandle_percpu_irq”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjûubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjøúh²hh³j ûh´Mbubj¥)�”}”(hŒ(struct irq_desc *desc)”h]”j«)�”}”(hŒstruct irq_desc *desc”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj9ûh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj5ûubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjFûh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj5ûubh)�”}”(hhh]”jŒ)�”}”(hŒirq_desc”h]”hŒirq_desc”…”�”}”(hjWûh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjTûubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jYûŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjûsbŒc.handle_percpu_irq”†”asbuh1hhj5ûubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwûh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj5ûubj )�”}”(hj h]”hŒ*”…”�”}”(hj…ûh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj5ûubjŒ)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hj’ûh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj5ûubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj1ûubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjøúh²hh³j ûh´Mbubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjôúh²hh³j ûh´Mbubah}”(h]”jïúah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j ûh´Mbhjñúh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒPer CPU local irq handler”h]”hŒPer CPU local irq handler”…”�”}”(hj¼ûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Mbhj¹ûh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjñúh²hh³j ûh´Mbubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjÔûjkjÔûjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hŒ³**Parameters** ``struct irq_desc *desc`` the interrupt description structure for this irq **Description** Per CPU interrupts on SMP machines without locking requirements”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÞûh]”hŒ Parameters”…”�”}”(hjàûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÜûubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´MfhjØûubj�)�”}”(hhh]”j•)�”}”(hŒK``struct irq_desc *desc`` the interrupt description structure for this irq ”h]”(j›)�”}”(hŒ``struct irq_desc *desc``”h]”j)�”}”(hjýûh]”hŒstruct irq_desc *desc”…”�”}”(hjÿûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjûûubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Mchj÷ûubjµ)�”}”(hhh]”jƒ)�”}”(hŒ0the interrupt description structure for this irq”h]”hŒ0the interrupt description structure for this irq”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jüh´Mchjüubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj÷ûubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jüh´Mchjôûubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjØûubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj8üh]”hŒ Description”…”�”}”(hj:üh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj6üubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´MehjØûubjˆ)�”}”(hŒ?Per CPU interrupts on SMP machines without locking requirements”h]”jƒ)�”}”(hjPüh]”hŒ?Per CPU interrupts on SMP machines without locking requirements”…”�”}”(hjRüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´MdhjNüubah}”(h]”h ]”h"]”h$]”h&]”uh1jˆh³j_üh´MdhjØûubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ$handle_percpu_devid_irq (C function)”Œc.handle_percpu_devid_irq”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ4void handle_percpu_devid_irq (struct irq_desc *desc)”h]”j])�”}”(hŒ3void handle_percpu_devid_irq(struct irq_desc *desc)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj†üh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj‚üh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M{ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj•üh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj‚üh²hh³j”üh´M{ubj†)�”}”(hŒhandle_percpu_devid_irq”h]”jŒ)�”}”(hŒhandle_percpu_devid_irq”h]”hŒhandle_percpu_devid_irq”…”�”}”(hj§üh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj£üubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj‚üh²hh³j”üh´M{ubj¥)�”}”(hŒ(struct irq_desc *desc)”h]”j«)�”}”(hŒstruct irq_desc *desc”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjÃüh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj¿üubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐüh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¿üubh)�”}”(hhh]”jŒ)�”}”(hŒirq_desc”h]”hŒirq_desc”…”�”}”(hjáüh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÞüubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jãüŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj©üsbŒc.handle_percpu_devid_irq”†”asbuh1hhj¿üubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¿üubj )�”}”(hj h]”hŒ*”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¿üubjŒ)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¿üubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj»üubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj‚üh²hh³j”üh´M{ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj~üh²hh³j”üh´M{ubah}”(h]”jyüah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j”üh´M{hj{üh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ.Per CPU local irq handler with per cpu dev ids”h]”hŒ.Per CPU local irq handler with per cpu dev ids”…”�”}”(hjFýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M{hjCýh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj{üh²hh³j”üh´M{ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj^ýjkj^ýjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hXÈ**Parameters** ``struct irq_desc *desc`` the interrupt description structure for this irq **Description** Per CPU interrupts on SMP machines without locking requirements. Same as handle_percpu_irq() above but with the following extras: action->percpu_dev_id is a pointer to percpu variables which contain the real device id for the cpu on which this handler is called. May be used for NMI interrupt lines, and so may be called in IRQ or NMI context.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjhýh]”hŒ Parameters”…”�”}”(hjjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjfýubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Mhjbýubj�)�”}”(hhh]”j•)�”}”(hŒK``struct irq_desc *desc`` the interrupt description structure for this irq ”h]”(j›)�”}”(hŒ``struct irq_desc *desc``”h]”j)�”}”(hj‡ýh]”hŒstruct irq_desc *desc”…”�”}”(hj‰ýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj…ýubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M|hj�ýubjµ)�”}”(hhh]”jƒ)�”}”(hŒ0the interrupt description structure for this irq”h]”hŒ0the interrupt description structure for this irq”…”�”}”(hj ýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jœýh´M|hj�ýubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj�ýubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jœýh´M|hj~ýubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjbýubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjÂýh]”hŒ Description”…”�”}”(hjÄýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÀýubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M~hjbýubjƒ)�”}”(hŒ�Per CPU interrupts on SMP machines without locking requirements. Same as handle_percpu_irq() above but with the following extras:”h]”hŒ�Per CPU interrupts on SMP machines without locking requirements. Same as handle_percpu_irq() above but with the following extras:”…”�”}”(hjØýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M}hjbýubjƒ)�”}”(hŒ„action->percpu_dev_id is a pointer to percpu variables which contain the real device id for the cpu on which this handler is called.”h]”hŒ„action->percpu_dev_id is a pointer to percpu variables which contain the real device id for the cpu on which this handler is called.”…”�”}”(hjçýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M€hjbýubjƒ)�”}”(hŒPMay be used for NMI interrupt lines, and so may be called in IRQ or NMI context.”h]”hŒPMay be used for NMI interrupt lines, and so may be called in IRQ or NMI context.”…”�”}”(hjöýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M„hjbýubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_cpu_online (C function)”Œc.irq_cpu_online”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒvoid irq_cpu_online (void)”h]”j])�”}”(hŒvoid irq_cpu_online(void)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj%þh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj!þh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M=ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj4þh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj!þh²hh³j3þh´M=ubj†)�”}”(hŒirq_cpu_online”h]”jŒ)�”}”(hŒirq_cpu_online”h]”hŒirq_cpu_online”…”�”}”(hjFþh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjBþubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj!þh²hh³j3þh´M=ubj¥)�”}”(hŒ(void)”h]”j«)�”}”(hŒvoid”h]”jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjbþh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj^þubah}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjZþubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj!þh²hh³j3þh´M=ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjþh²hh³j3þh´M=ubah}”(h]”jþah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j3þh´M=hjþh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ$Invoke all irq_cpu_online functions.”h]”hŒ$Invoke all irq_cpu_online functions.”…”�”}”(hjŒþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M=hj‰þh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjþh²hh³j3þh´M=ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj¤þjkj¤þjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hŒ‹**Parameters** ``void`` no arguments **Description** Iterate through all irqs and invoke the chip.irq_cpu_online() for each.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj®þh]”hŒ Parameters”…”�”}”(hj°þh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj¬þubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´MAhj¨þubj�)�”}”(hhh]”j•)�”}”(hŒ``void`` no arguments ”h]”(j›)�”}”(hŒ``void``”h]”j)�”}”(hjÍþh]”hŒvoid”…”�”}”(hjÏþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjËþubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´KhjÇþubjµ)�”}”(hhh]”jƒ)�”}”(hŒ no arguments”h]”hŒ no arguments”…”�”}”(hjæþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jâþh´Khjãþubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÇþubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jâþh´KhjÄþubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj¨þubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjÿh]”hŒ Description”…”�”}”(hj ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Khj¨þubjˆ)�”}”(hŒGIterate through all irqs and invoke the chip.irq_cpu_online() for each.”h]”jƒ)�”}”(hŒGIterate through all irqs and invoke the chip.irq_cpu_online() for each.”h]”hŒGIterate through all irqs and invoke the chip.irq_cpu_online() for each.”…”�”}”(hj"ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M>hjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jˆh³j0ÿh´M>hj¨þubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_cpu_offline (C function)”Œc.irq_cpu_offline”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒvoid irq_cpu_offline (void)”h]”j])�”}”(hŒvoid irq_cpu_offline(void)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjWÿh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhjSÿh²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´MWubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjfÿh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjSÿh²hh³jeÿh´MWubj†)�”}”(hŒirq_cpu_offline”h]”jŒ)�”}”(hŒirq_cpu_offline”h]”hŒirq_cpu_offline”…”�”}”(hjxÿh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjtÿubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hjSÿh²hh³jeÿh´MWubj¥)�”}”(hŒ(void)”h]”j«)�”}”(hŒvoid”h]”jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj”ÿh²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj�ÿubah}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjŒÿubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hjSÿh²hh³jeÿh´MWubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hjOÿh²hh³jeÿh´MWubah}”(h]”jJÿah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jeÿh´MWhjLÿh²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ%Invoke all irq_cpu_offline functions.”h]”hŒ%Invoke all irq_cpu_offline functions.”…”�”}”(hj¾ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´MWhj»ÿh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhjLÿh²hh³jeÿh´MWubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjÖÿjkjÖÿjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hŒŒ**Parameters** ``void`` no arguments **Description** Iterate through all irqs and invoke the chip.irq_cpu_offline() for each.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjàÿh]”hŒ Parameters”…”�”}”(hjâÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÞÿubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M[hjÚÿubj�)�”}”(hhh]”j•)�”}”(hŒ``void`` no arguments ”h]”(j›)�”}”(hŒ``void``”h]”j)�”}”(hjÿÿh]”hŒvoid”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjýÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Khjùÿubjµ)�”}”(hhh]”jƒ)�”}”(hŒ no arguments”h]”hŒ no arguments”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjùÿubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jh´Khjöÿubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÚÿubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hj:h]”hŒ Description”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´KhjÚÿubjˆ)�”}”(hŒHIterate through all irqs and invoke the chip.irq_cpu_offline() for each.”h]”jƒ)�”}”(hŒHIterate through all irqs and invoke the chip.irq_cpu_offline() for each.”h]”hŒHIterate through all irqs and invoke the chip.irq_cpu_offline() for each.”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´MXhjPubah}”(h]”h ]”h"]”h$]”h&]”uh1jˆh³jbh´MXhjÚÿubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒ%irq_chip_compose_msi_msg (C function)”Œc.irq_chip_compose_msi_msg”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒIint irq_chip_compose_msi_msg (struct irq_data *data, struct msi_msg *msg)”h]”j])�”}”(hŒHint irq_chip_compose_msi_msg(struct irq_data *data, struct msi_msg *msg)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj…h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Mìubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj…h²hh³j—h´Mìubj†)�”}”(hŒirq_chip_compose_msi_msg”h]”jŒ)�”}”(hŒirq_chip_compose_msi_msg”h]”hŒirq_chip_compose_msi_msg”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¦ubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj…h²hh³j—h´Mìubj¥)�”}”(hŒ,(struct irq_data *data, struct msi_msg *msg)”h]”(j«)�”}”(hŒstruct irq_data *data”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjÂubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÂubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjáubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jæŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèj¬sbŒc.irq_chip_compose_msi_msg”†”asbuh1hhjÂubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjÂubj )�”}”(hj h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÂubjŒ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÂubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¾ubj«)�”}”(hŒstruct msi_msg *msg”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj4ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj4ubh)�”}”(hhh]”jŒ)�”}”(hŒmsi_msg”h]”hŒmsi_msg”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjSubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jXŒmodname”NŒ classname”Njìjï)�”}”jò]”jŒc.irq_chip_compose_msi_msg”†”asbuh1hhj4ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj4ubj )�”}”(hj h]”hŒ*”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj4ubjŒ)�”}”(hŒmsg”h]”hŒmsg”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhj¾ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj…h²hh³j—h´Mìubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj�h²hh³j—h´Mìubah}”(h]”j|ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³j—h´Mìhj~h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ"Compose msi message for a irq chip”h]”hŒ"Compose msi message for a irq chip”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Mìhj¶h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj~h²hh³j—h´Mìubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjjÑjkjÑjl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hX:**Parameters** ``struct irq_data *data`` Pointer to interrupt specific data ``struct msi_msg *msg`` Pointer to the MSI message **Description** For hierarchical domains we find the first chip in the hierarchy which implements the irq_compose_msi_msg callback. For non hierarchical we use the top level chip.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjÛh]”hŒ Parameters”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´MðhjÕubj�)�”}”(hhh]”(j•)�”}”(hŒ=``struct irq_data *data`` Pointer to interrupt specific data ”h]”(j›)�”}”(hŒ``struct irq_data *data``”h]”j)�”}”(hjúh]”hŒstruct irq_data *data”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjøubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Míhjôubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Pointer to interrupt specific data”h]”hŒ"Pointer to interrupt specific data”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jh´Míhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjôubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jh´Míhjñubj•)�”}”(hŒ3``struct msi_msg *msg`` Pointer to the MSI message ”h]”(j›)�”}”(hŒ``struct msi_msg *msg``”h]”j)�”}”(hj3h]”hŒstruct msi_msg *msg”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Mîhj-ubjµ)�”}”(hhh]”jƒ)�”}”(hŒPointer to the MSI message”h]”hŒPointer to the MSI message”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jHh´MîhjIubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jHh´Mîhjñubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÕubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjnh]”hŒ Description”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjlubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´MðhjÕubjƒ)�”}”(hŒ£For hierarchical domains we find the first chip in the hierarchy which implements the irq_compose_msi_msg callback. For non hierarchical we use the top level chip.”h]”hŒ£For hierarchical domains we find the first chip in the hierarchy which implements the irq_compose_msi_msg callback. For non hierarchical we use the top level chip.”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´MïhjÕubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_chip_pm_get (C function)”Œc.irq_chip_pm_get”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ+int irq_chip_pm_get (struct irq_data *data)”h]”j])�”}”(hŒ*int irq_chip_pm_get(struct irq_data *data)”h]”(jc)�”}”(hŒint”h]”hŒint”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj¯h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M ubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj¯h²hh³jÁh´M ubj†)�”}”(hŒirq_chip_pm_get”h]”jŒ)�”}”(hŒirq_chip_pm_get”h]”hŒirq_chip_pm_get”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÐubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj¯h²hh³jÁh´M ubj¥)�”}”(hŒ(struct irq_data *data)”h]”j«)�”}”(hŒstruct irq_data *data”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjìubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjìubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”jŒmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjÖsbŒc.irq_chip_pm_get”†”asbuh1hhjìubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjìubj )�”}”(hj h]”hŒ*”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjìubjŒ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjìubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjèubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj¯h²hh³jÁh´M ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj«h²hh³jÁh´M ubah}”(h]”j¦ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jÁh´M hj¨h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒEnable power for an IRQ chip”h]”hŒEnable power for an IRQ chip”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M hjph²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj¨h²hh³jÁh´M ubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj‹jkj‹jl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hŒ­**Parameters** ``struct irq_data *data`` Pointer to interrupt specific data **Description** Enable the power to the IRQ chip referenced by the interrupt data structure.”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hj•h]”hŒ Parameters”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Mhj�ubj�)�”}”(hhh]”j•)�”}”(hŒ=``struct irq_data *data`` Pointer to interrupt specific data ”h]”(j›)�”}”(hŒ``struct irq_data *data``”h]”j)�”}”(hj´h]”hŒstruct irq_data *data”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Mhj®ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Pointer to interrupt specific data”h]”hŒ"Pointer to interrupt specific data”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jÉh´MhjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jÉh´Mhj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj�ubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjïh]”hŒ Description”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjíubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Mhj�ubjƒ)�”}”(hŒLEnable the power to the IRQ chip referenced by the interrupt data structure.”h]”hŒLEnable the power to the IRQ chip referenced by the interrupt data structure.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Mhj�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´NubjA)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jMŒirq_chip_pm_put (C function)”Œc.irq_chip_pm_put”hNt”auh1j@hj:Úh²hh³Nh´NubjR)�”}”(hhh]”(jW)�”}”(hŒ,void irq_chip_pm_put (struct irq_data *data)”h]”j])�”}”(hŒ+void irq_chip_pm_put(struct irq_data *data)”h]”(jc)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”joah"]”h$]”h&]”uh1jbhj0h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Mubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthj0h²hh³jBh´Mubj†)�”}”(hŒirq_chip_pm_put”h]”jŒ)�”}”(hŒirq_chip_pm_put”h]”hŒirq_chip_pm_put”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjQubah}”(h]”h ]”(jŸj eh"]”h$]”h&]”hÅhÆuh1j…hj0h²hh³jBh´Mubj¥)�”}”(hŒ(struct irq_data *data)”h]”j«)�”}”(hŒstruct irq_data *data”h]”(j±)�”}”(hj´h]”hŒstruct”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjmubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjmubh)�”}”(hhh]”jŒ)�”}”(hŒirq_data”h]”hŒirq_data”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjŒubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j_ Œreftype”jèŒ reftarget”j‘Œmodname”NŒ classname”Njìjï)�”}”jò]”jõ)�”}”jèjWsbŒc.irq_chip_pm_put”†”asbuh1hhjmubju)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”j�ah"]”h$]”h&]”uh1jthjmubj )�”}”(hj h]”hŒ*”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjmubjŒ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjmubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jªhjiubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j¤hj0h²hh³jBh´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj:ˆuh1j\j;j<hj,h²hh³jBh´Mubah}”(h]”j'ah ]”(j@jAeh"]”h$]”h&]”jEˆjF)jGhuh1jVh³jBh´Mhj)h²hubjI)�”}”(hhh]”jƒ)�”}”(hŒ"Drop a PM reference on an IRQ chip”h]”hŒ"Drop a PM reference on an IRQ chip”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´Mhjñh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jHhj)h²hh³jBh´Mubeh}”(h]”h ]”(j_ Œfunction”eh"]”h$]”h&]”jij_ jjj jkj jl‰jm‰jn‰uh1jQh²hhj:Úh³Nh´Nubjp)�”}”(hX»**Parameters** ``struct irq_data *data`` Pointer to interrupt specific data **Description** Drop a power management reference, acquired via irq_chip_pm_get(), on the IRQ chip represented by the interrupt data structure. Note that this will not disable power to the IRQ chip until this function has been called for all IRQs that have called irq_chip_pm_get() and it may not disable power at all (if user space prevents that, for example).”h]”(jƒ)�”}”(hŒ**Parameters**”h]”jz)�”}”(hjh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M#hjubj�)�”}”(hhh]”j•)�”}”(hŒ=``struct irq_data *data`` Pointer to interrupt specific data ”h]”(j›)�”}”(hŒ``struct irq_data *data``”h]”j)�”}”(hj5h]”hŒstruct irq_data *data”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jšh³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M hj/ubjµ)�”}”(hhh]”jƒ)�”}”(hŒ"Pointer to interrupt specific data”h]”hŒ"Pointer to interrupt specific data”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jJh´M hjKubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j”h³jJh´M hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjubjƒ)�”}”(hŒ**Description**”h]”jz)�”}”(hjph]”hŒ Description”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jyhjnubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M"hjubjƒ)�”}”(hŒDrop a power management reference, acquired via irq_chip_pm_get(), on the IRQ chip represented by the interrupt data structure.”h]”hŒDrop a power management reference, acquired via irq_chip_pm_get(), on the IRQ chip represented by the interrupt data structure.”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M!hjubjƒ)�”}”(hŒÙNote that this will not disable power to the IRQ chip until this function has been called for all IRQs that have called irq_chip_pm_get() and it may not disable power at all (if user space prevents that, for example).”h]”hŒÙNote that this will not disable power to the IRQ chip until this function has been called for all IRQs that have called irq_chip_pm_get() and it may not disable power at all (if user space prevents that, for example).”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³ŒV/var/lib/git/docbuild/linux/Documentation/core-api/genericirq:520: ./kernel/irq/chip.c”h´M$hjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1johj:Úh²hh³Nh´Nubeh}”(h]”Œinternal-functions-provided”ah ]”h"]”Œinternal functions provided”ah$]”h&]”uh1jLhjNh²hh³jah´M©ubjM)�”}”(hhh]”(jR)�”}”(hŒCredits”h]”hŒCredits”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj³h²hh³jah´M¶ubjƒ)�”}”(hŒ7The following people have contributed to this document:”h]”hŒ7The following people have contributed to this document:”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´M¸hj³h²hubjì)�”}”(hhh]”(jB)�”}”(hŒ Thomas Gleixner tglx@kernel.org ”h]”jƒ)�”}”(hŒThomas Gleixner tglx@kernel.org”h]”(hŒThomas Gleixner ”…”�”}”(hjÙh²hh³Nh´NubhŒ reference”“”)�”}”(hŒtglx@kernel.org”h]”hŒtglx@kernel.org”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:tglx@kernel.org”uh1jáhjÙubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´MºhjÕubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhjÒh²hh³jah´NubjB)�”}”(hŒIngo Molnar mingo@elte.hu”h]”jƒ)�”}”(hjh]”(hŒ Ingo Molnar ”…”�”}”(hjh²hh³Nh´Nubjâ)�”}”(hŒ mingo@elte.hu”h]”hŒ mingo@elte.hu”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:mingo@elte.hu”uh1jáhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j‚h³jah´M¼hjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhjÒh²hh³jah´Nubeh}”(h]”h ]”h"]”h$]”h&]”j>j?j@hjAjBuh1jëhj³h²hh³jah´Mºubeh}”(h]”Œcredits”ah ]”h"]”Œcredits”ah$]”h&]”uh1jLhjNh²hh³jah´M¶ubeh}”(h]”Œlinux-generic-irq-handling”ah ]”h"]”Œlinux generic irq handling”ah$]”h&]”uh1jLhhh²hh³jah´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”jauh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(jQNŒ 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”jaŒ _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Ø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=uŒsubstitution_names”}”(Œamp”häŒapos”hóŒast”jŒbrvbar”jŒbsol”j Œcent”j/Œcolon”j>Œcomma”jMŒcommat”j\Œcopy”jkŒcurren”jzŒ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”j=Œgt”jLŒhalf”j[Œhorbar”jjŒhyphen”jyŒ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”j<Œnbsp”jKŒnot”jZŒnum”jiŒohm”jxŒ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”j;Œrdquo”jJŒreg”jYŒrpar”jhŒrsqb”jwŒ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”j:Œyen”jIuŒrefnames”}”Œrefids”}”Œnameids”}”(j9j6j j j¢jŸjÉjÆjÂj¿jujrjÓ jÐ j4 j1 j jþ jù jö jÞ jÛ jU jR j˜ j• jÛ jØ j7 j4 jˆ j… j¯ j¬ jÖ jÓ j j j, j) jºj·j÷jôjjj<3j93jIajFaj7Új4Új°j­j1j.uŒ nametypes”}”(j9‰j ‰j¢‰jɉj‰ju‰jÓ ‰j4 ‰j ‰jù ‰jÞ ‰jU ‰j˜ ‰jÛ ‰j7 ‰jˆ ‰j¯ ‰jÖ ‰j ‰j, ‰jº‰j÷‰j‰j<3‰jIa‰j7Ú‰j°‰j1‰uh}”(j6jNj jÚjŸjjÆj¥j¿jÌjrjCjÐ jxj1 jÖ jþ j´ jö jÅ jÛ j jR j j• jX jØ j› j4 jÞ j… j: j¬ j‹ jÓ j² j já j) j j·j7 jôjÅjjúj93j!jOjXjíjòjmjrjíjòjmjrjíjòjGjLjîjójøjýj¶j»jú!jÿ!jT#jY#jR(jW(jq*jv*j#.j(.j-0j20jFaj?3jj3jo3jð5jõ5j‰8jŽ8jœAj¡AjÂCjÇCjFjFj KjKjÌLjÑLjžOj£OjåSjêSjdWjiWjRYjWYj±[j¶[jó\jø\j_j_j4ÚjLajwaj|aj+cj0cj»djÀdjõejúejTgjYgjÕhjÚhj0jj5jjJljOljpnjunj¥pjªpjÃrjÈrjŸtj¤tjvjvjžwj£wjQyjVyjÀzjÅzj/|j4|j�}j”}j¯j´jd�ji�j…ƒjŠƒj3ˆj8ˆjÙ‹jÞ‹j¢�j§�j‘j‘jý’j“jÉ–jΖjΚjÓšjLœjQœj»�jÀ�jb jg jü¢j£j[¤j`¤jV¦j[¦jV¨j[¨jªjªjõ«jú«jЭjÕ­j0¯j5¯jذjݰj€²j…²j´j´j‚µj‡µj·j!·j�¸j¢¸jºj#ºjŸ»j¤»j7¾j<¾jÎÀjÓÀjOÂjTÂjìÃjñÃjGÅjLÅj¢Æj§ÆjýÇjÈjXÉj]Éj³Êj¸ÊjÌjÌjiÍjnÍjÐj Ðj&Òj+Òj§Ój¬Ój}Õj‚Õjˆ×j�×jãØjèØj­j:ÚjeÚjjÚjƒÛjˆÛj ÝjÝjžÞj£Þj%àj*àjXâj]âj‹äj�äjŒæj‘æjPèjUèjªìj¯ìj&îj+îj4ðj9ðjÑñjÖñjRójWój¿ôjÄôjT÷jY÷j_ùjdùjïújôújyüj~üjþjþjJÿjOÿj|j�j¦j«j'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”]”Œ%Documentation/core-api/genericirq.rst”(NNNNt”†”aŒ decoration”Nh²hub.