€•HŒsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ4/translations/zh_CN/driver-api/i3c/device-driver-api”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ4/translations/zh_TW/driver-api/i3c/device-driver-api”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ4/translations/it_IT/driver-api/i3c/device-driver-api”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ4/translations/ja_JP/driver-api/i3c/device-driver-api”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ4/translations/ko_KR/driver-api/i3c/device-driver-api”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ4/translations/pt_BR/driver-api/i3c/device-driver-api”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ4/translations/sp_SP/driver-api/i3c/device-driver-api”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒN/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒI3C device driver API”h]”hŒI3C device driver API”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œi3c_error_code (C enum)”Œc.i3c_error_code”hNt”auh1hÝhhÊh²hh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒi3c_error_code”h]”hŒdesc_signature_line”“”)�”}”(hŒenum i3c_error_code”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒenum”h]”hŒenum”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1jhhüh²hh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1jhhüh²hh³jh´KubhŒ desc_name”“”)�”}”(hŒi3c_error_code”h]”hŒ desc_sig_name”“”)�”}”(hhøh]”hŒi3c_error_code”…”�”}”(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#hhüh²hh³jh´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1húŒsphinx_line_type”Œ declarator”hhöh²hh³jh´Kubah}”(h]”hìah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1hôh³jh´Khhñh²hubhŒ desc_content”“”)�”}”(hhh]”hŒ paragraph”“”)�”}”(hŒI3C error codes”h]”hŒI3C error codes”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KhjWh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhhñh²hh³jh´Kubeh}”(h]”h ]”(Œc”Œenum”eh"]”h$]”h&]”Œdomain”jtŒobjtype”juŒdesctype”juŒnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1hïh²hhhÊh³hîh´NubhŒ container”“”)�”}”(hŒ¹**Constants** ``I3C_ERROR_UNKNOWN`` unknown error, usually means the error is not I3C related ``I3C_ERROR_M0`` M0 error ``I3C_ERROR_M1`` M1 error ``I3C_ERROR_M2`` M2 error”h]”(j[)�”}”(hŒ **Constants**”h]”hŒstrong”“”)�”}”(hj‡h]”hŒ Constants”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Khj�ubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒP``I3C_ERROR_UNKNOWN`` unknown error, usually means the error is not I3C related ”h]”(hŒterm”“”)�”}”(hŒ``I3C_ERROR_UNKNOWN``”h]”hŒliteral”“”)�”}”(hj®h]”hŒI3C_ERROR_UNKNOWN”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Khj¦ubhŒ definition”“”)�”}”(hhh]”j[)�”}”(hŒ9unknown error, usually means the error is not I3C related”h]”hŒ9unknown error, usually means the error is not I3C related”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KhjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj¦ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jÅh´Khj¡ubj¥)�”}”(hŒ``I3C_ERROR_M0`` M0 error ”h]”(j«)�”}”(hŒ``I3C_ERROR_M0``”h]”j±)�”}”(hjìh]”hŒ I3C_ERROR_M0”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjêubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KhjæubjÇ)�”}”(hhh]”j[)�”}”(hŒM0 error”h]”hŒM0 error”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjæubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jh´Khj¡ubj¥)�”}”(hŒ``I3C_ERROR_M1`` M1 error ”h]”(j«)�”}”(hŒ``I3C_ERROR_M1``”h]”j±)�”}”(hj%h]”hŒ I3C_ERROR_M1”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K!hjubjÇ)�”}”(hhh]”j[)�”}”(hŒM1 error”h]”hŒM1 error”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³j:h´K!hj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j:h´K!hj¡ubj¥)�”}”(hŒ``I3C_ERROR_M2`` M2 error”h]”(j«)�”}”(hŒ``I3C_ERROR_M2``”h]”j±)�”}”(hj^h]”hŒ I3C_ERROR_M2”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K#hjXubjÇ)�”}”(hhh]”j[)�”}”(hŒM2 error”h]”hŒM2 error”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K$hjtubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjXubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jsh´K#hj¡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³hîh´Nubj[)�”}”(hŒ**Description**”h]”jŠ)�”}”(hj¡h]”hŒ Description”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K&hhÊh²hubj[)�”}”(hXGThese are the standard error codes as defined by the I3C specification. When -EIO is returned by the i3c_device_do_i3c_xfers() or i3c_device_send_hdr_cmds() one can check the error code in :c:type:`struct_i3c_xfer.err ` or :c:type:`struct i3c_hdr_cmd `.err to get a better idea of what went wrong.”h]”(hŒ½These are the standard error codes as defined by the I3C specification. When -EIO is returned by the i3c_device_do_i3c_xfers() or i3c_device_send_hdr_cmds() one can check the error code in ”…”�”}”(hj·h²hh³Nh´Nubh)�”}”(hŒ/:c:type:`struct_i3c_xfer.err `”h]”j±)�”}”(hjÁh]”hŒstruct_i3c_xfer.err”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”(Œxref”jtŒc-type”eh"]”h$]”h&]”uh1j°hj¿ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œ driver-api/i3c/device-driver-api”Œ refdomain”jtŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰Œ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”sbŒ reftarget”Œstruct_i3c_xfer”uh1hh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Khj·ubhŒ or ”…”�”}”(hj·h²hh³Nh´Nubh)�”}”(hŒ*:c:type:`struct i3c_hdr_cmd `”h]”j±)�”}”(hjðh]”hŒstruct i3c_hdr_cmd”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”(jÍjtŒc-type”eh"]”h$]”h&]”uh1j°hjîubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jÙŒ refdomain”jtŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jßjãjçŒ i3c_hdr_cmd”uh1hh³jéh´Khj·ubhŒ-.err to get a better idea of what went wrong.”…”�”}”(hj·h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jéh´KhhÊh²hubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒi3c_xfer_mode (C enum)”Œc.i3c_xfer_mode”hNt”auh1hÝhhÊh²hh³hîh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒ i3c_xfer_mode”h]”hû)�”}”(hŒenum i3c_xfer_mode”h]”(j)�”}”(hjh]”hŒenum”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhj,h²hh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K#ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj,h²hh³j=h´K#ubj$)�”}”(hŒ i3c_xfer_mode”h]”j*)�”}”(hj*h]”hŒ i3c_xfer_mode”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjLubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hj,h²hh³j=h´K#ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhj(h²hh³j=h´K#ubah}”(h]”j#ah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³j=h´K#hj%h²hubjV)�”}”(hhh]”j[)�”}”(hŒI3C xfer mode ids”h]”hŒI3C xfer mode ids”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K*hjoh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhj%h²hh³j=h´K#ubeh}”(h]”h ]”(jtŒenum”eh"]”h$]”h&]”jyjtjzjŠj{jŠj|‰j}‰j~‰uh1hïh²hhhÊh³hîh´Nubj€)�”}”(hŒˆ**Constants** ``I3C_HDR_DDR`` DDR mode ``I3C_HDR_TSP`` TSP mode ``I3C_HDR_TSL`` TSL mode ``I3C_SDR`` SDR mode (NOT HDR mode)”h]”(j[)�”}”(hŒ **Constants**”h]”jŠ)�”}”(hj”h]”hŒ Constants”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K.hjŽubj )�”}”(hhh]”(j¥)�”}”(hŒ``I3C_HDR_DDR`` DDR mode ”h]”(j«)�”}”(hŒ``I3C_HDR_DDR``”h]”j±)�”}”(hj³h]”hŒ I3C_HDR_DDR”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K1hj­ubjÇ)�”}”(hhh]”j[)�”}”(hŒDDR mode”h]”hŒDDR mode”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jÈh´K1hjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jÈh´K1hjªubj¥)�”}”(hŒ``I3C_HDR_TSP`` TSP mode ”h]”(j«)�”}”(hŒ``I3C_HDR_TSP``”h]”j±)�”}”(hjìh]”hŒ I3C_HDR_TSP”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjêubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K4hjæubjÇ)�”}”(hhh]”j[)�”}”(hŒTSP mode”h]”hŒTSP mode”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jh´K4hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjæubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jh´K4hjªubj¥)�”}”(hŒ``I3C_HDR_TSL`` TSL mode ”h]”(j«)�”}”(hŒ``I3C_HDR_TSL``”h]”j±)�”}”(hj%h]”hŒ I3C_HDR_TSL”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K7hjubjÇ)�”}”(hhh]”j[)�”}”(hŒTSL mode”h]”hŒTSL mode”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³j:h´K7hj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j:h´K7hjªubj¥)�”}”(hŒ#``I3C_SDR`` SDR mode (NOT HDR mode)”h]”(j«)�”}”(hŒ ``I3C_SDR``”h]”j±)�”}”(hj^h]”hŒI3C_SDR”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K9hjXubjÇ)�”}”(hhh]”j[)�”}”(hŒSDR mode (NOT HDR mode)”h]”hŒSDR mode (NOT HDR mode)”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K:hjtubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjXubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jsh´K9hjªubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjŽubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³hîh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒi3c_xfer (C struct)”Œ c.i3c_xfer”hNt”auh1hÝhhÊh²hh³hîh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒi3c_xfer”h]”hû)�”}”(hŒstruct i3c_xfer”h]”(j)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhj´h²hh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K?ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj´h²hh³jÆh´K?ubj$)�”}”(hŒi3c_xfer”h]”j*)�”}”(hj²h]”hŒi3c_xfer”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjÕubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hj´h²hh³jÆh´K?ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhj°h²hh³jÆh´K?ubah}”(h]”j«ah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³jÆh´K?hj­h²hubjV)�”}”(hhh]”j[)�”}”(hŒI3C data transfer”h]”hŒI3C data transfer”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K:hjøh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhj­h²hh³jÆh´K?ubeh}”(h]”h ]”(jtŒstruct”eh"]”h$]”h&]”jyjtjzjj{jj|‰j}‰j~‰uh1hïh²hhhÊh³hîh´Nubj€)�”}”(hXö**Definition**:: struct i3c_xfer { union { u8 rnw; u8 cmd; }; u16 len; u16 actual_len; union { void *in; const void *out; } data; enum i3c_error_code err; }; **Members** ``{unnamed_union}`` anonymous ``rnw`` encodes the transfer direction. true for a read, false for a write ``cmd`` Read/Write command in HDR mode, read: 0x80 - 0xff, write: 0x00 - 0x7f ``len`` transfer length in bytes of the transfer ``actual_len`` actual length in bytes are transferred by the controller ``data`` input/output buffer ``data.in`` input buffer. Must point to a DMA-able buffer ``data.out`` output buffer. Must point to a DMA-able buffer ``err`` I3C error code”h]”(j[)�”}”(hŒ**Definition**::”h]”(jŠ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjubhŒ:”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K>hjubhŒ literal_block”“”)�”}”(hŒÈstruct i3c_xfer { union { u8 rnw; u8 cmd; }; u16 len; u16 actual_len; union { void *in; const void *out; } data; enum i3c_error_code err; };”h]”hŒÈstruct i3c_xfer { union { u8 rnw; u8 cmd; }; u16 len; u16 actual_len; union { void *in; const void *out; } data; enum i3c_error_code err; };”…”�”}”hj:sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j8h³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K@hjubj[)�”}”(hŒ **Members**”h]”jŠ)�”}”(hjKh]”hŒMembers”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjIubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KNhjubj )�”}”(hhh]”(j¥)�”}”(hŒ``{unnamed_union}`` anonymous ”h]”(j«)�”}”(hŒ``{unnamed_union}``”h]”j±)�”}”(hjjh]”hŒ{unnamed_union}”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjhubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KhjdubjÇ)�”}”(hhh]”j[)�”}”(hŒ anonymous”h]”hŒ anonymous”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jh´Khj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjdubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jh´Khjaubj¥)�”}”(hŒK``rnw`` encodes the transfer direction. true for a read, false for a write ”h]”(j«)�”}”(hŒ``rnw``”h]”j±)�”}”(hj£h]”hŒrnw”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KhjubjÇ)�”}”(hhh]”j[)�”}”(hŒ(transfer length in bytes of the transfer”h]”hŒ(transfer length in bytes of the transfer”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³j*h´K>hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j*h´K>hjaubj¥)�”}”(hŒH``actual_len`` actual length in bytes are transferred by the controller ”h]”(j«)�”}”(hŒ``actual_len``”h]”j±)�”}”(hjNh]”hŒ actual_len”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjLubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K?hjHubjÇ)�”}”(hhh]”j[)�”}”(hŒ8actual length in bytes are transferred by the controller”h]”hŒ8actual length in bytes are transferred by the controller”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jch´K?hjdubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjHubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jch´K?hjaubj¥)�”}”(hŒ``data`` input/output buffer ”h]”(j«)�”}”(hŒ``data``”h]”j±)�”}”(hj‡h]”hŒdata”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K@hj�ubjÇ)�”}”(hhh]”j[)�”}”(hŒinput/output buffer”h]”hŒinput/output buffer”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jœh´K@hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jœh´K@hjaubj¥)�”}”(hŒ:``data.in`` input buffer. Must point to a DMA-able buffer ”h]”(j«)�”}”(hŒ ``data.in``”h]”j±)�”}”(hjÀh]”hŒdata.in”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KAhjºubjÇ)�”}”(hhh]”j[)�”}”(hŒ-input buffer. Must point to a DMA-able buffer”h]”hŒ-input buffer. Must point to a DMA-able buffer”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jÕh´KAhjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjºubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jÕh´KAhjaubj¥)�”}”(hŒ<``data.out`` output buffer. Must point to a DMA-able buffer ”h]”(j«)�”}”(hŒ ``data.out``”h]”j±)�”}”(hjùh]”hŒdata.out”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KBhjóubjÇ)�”}”(hhh]”j[)�”}”(hŒ.output buffer. Must point to a DMA-able buffer”h]”hŒ.output buffer. Must point to a DMA-able buffer”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jh´KBhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjóubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jh´KBhjaubj¥)�”}”(hŒ``err`` I3C error code”h]”(j«)�”}”(hŒ``err``”h]”j±)�”}”(hj2h]”hŒerr”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KBhj,ubjÇ)�”}”(hhh]”j[)�”}”(hŒI3C error code”h]”hŒI3C error code”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KChjHubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jGh´KBhjaubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³hîh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒi3c_dcr (C enum)”Œ c.i3c_dcr”hNt”auh1hÝhhÊh²hh³hîh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒi3c_dcr”h]”hû)�”}”(hŒ enum i3c_dcr”h]”(j)�”}”(hjh]”hŒenum”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjˆh²hh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KIubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjˆh²hh³j™h´KIubj$)�”}”(hŒi3c_dcr”h]”j*)�”}”(hj†h]”hŒi3c_dcr”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj¨ubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hjˆh²hh³j™h´KIubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhj„h²hh³j™h´KIubah}”(h]”jah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³j™h´KIhj�h²hubjV)�”}”(hhh]”j[)�”}”(hŒI3C DCR values”h]”hŒI3C DCR values”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KShjËh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhj�h²hh³j™h´KIubeh}”(h]”h ]”(jtŒenum”eh"]”h$]”h&]”jyjtjzjæj{jæj|‰j}‰j~‰uh1hïh²hhhÊh³hîh´Nubj€)�”}”(hŒ>**Constants** ``I3C_DCR_GENERIC_DEVICE`` generic I3C device”h]”(j[)�”}”(hŒ **Constants**”h]”jŠ)�”}”(hjðh]”hŒ Constants”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjîubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KWhjêubj )�”}”(hhh]”j¥)�”}”(hŒ-``I3C_DCR_GENERIC_DEVICE`` generic I3C device”h]”(j«)�”}”(hŒ``I3C_DCR_GENERIC_DEVICE``”h]”j±)�”}”(hjh]”hŒI3C_DCR_GENERIC_DEVICE”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KYhj ubjÇ)�”}”(hhh]”j[)�”}”(hŒgeneric I3C device”h]”hŒgeneric I3C device”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KZhj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j$h´KYhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjêubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³hîh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒi3c_device_info (C struct)”Œc.i3c_device_info”hNt”auh1hÝhhÊh²hh³hîh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒi3c_device_info”h]”hû)�”}”(hŒstruct i3c_device_info”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjeh²hh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K_ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjeh²hh³jvh´K_ubj$)�”}”(hŒi3c_device_info”h]”j*)�”}”(hjch]”hŒi3c_device_info”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj…ubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hjeh²hh³jvh´K_ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhjah²hh³jvh´K_ubah}”(h]”j\ah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³jvh´K_hj^h²hubjV)�”}”(hhh]”j[)�”}”(hŒI3C device information”h]”hŒI3C device information”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Klhj¨h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhj^h²hh³jvh´K_ubeh}”(h]”h ]”(jtŒstruct”eh"]”h$]”h&]”jyjtjzjÃj{jÃj|‰j}‰j~‰uh1hïh²hhhÊh³hîh´Nubj€)�”}”(hXM**Definition**:: struct i3c_device_info { u64 pid; u8 bcr; u8 dcr; u8 static_addr; u8 dyn_addr; u8 hdr_cap; u8 max_read_ds; u8 max_write_ds; u8 max_ibi_len; u32 max_read_turnaround; u16 max_read_len; u16 max_write_len; }; **Members** ``pid`` Provisioned ID ``bcr`` Bus Characteristic Register ``dcr`` Device Characteristic Register ``static_addr`` static/I2C address ``dyn_addr`` dynamic address ``hdr_cap`` supported HDR modes ``max_read_ds`` max read speed information ``max_write_ds`` max write speed information ``max_ibi_len`` max IBI payload length ``max_read_turnaround`` max read turn-around time in micro-seconds ``max_read_len`` max private SDR read length in bytes ``max_write_len`` max private SDR write length in bytes”h]”(j[)�”}”(hŒ**Definition**::”h]”(jŠ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjËubhŒ:”…”�”}”(hjËh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KphjÇubj9)�”}”(hŒüstruct i3c_device_info { u64 pid; u8 bcr; u8 dcr; u8 static_addr; u8 dyn_addr; u8 hdr_cap; u8 max_read_ds; u8 max_write_ds; u8 max_ibi_len; u32 max_read_turnaround; u16 max_read_len; u16 max_write_len; };”h]”hŒüstruct i3c_device_info { u64 pid; u8 bcr; u8 dcr; u8 static_addr; u8 dyn_addr; u8 hdr_cap; u8 max_read_ds; u8 max_write_ds; u8 max_ibi_len; u32 max_read_turnaround; u16 max_read_len; u16 max_write_len; };”…”�”}”hjèsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j8h³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KrhjÇubj[)�”}”(hŒ **Members**”h]”jŠ)�”}”(hjùh]”hŒMembers”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K�hjÇubj )�”}”(hhh]”(j¥)�”}”(hŒ``pid`` Provisioned ID ”h]”(j«)�”}”(hŒ``pid``”h]”j±)�”}”(hj h]”hŒpid”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Knhj ubjÇ)�”}”(hhh]”j[)�”}”(hŒProvisioned ID”h]”hŒProvisioned ID”…”�”}”(hj1 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³j- h´Knhj. ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j- h´Knhj ubj¥)�”}”(hŒ$``bcr`` Bus Characteristic Register ”h]”(j«)�”}”(hŒ``bcr``”h]”j±)�”}”(hjQ h]”hŒbcr”…”�”}”(hjS h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjO ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KohjK ubjÇ)�”}”(hhh]”j[)�”}”(hŒBus Characteristic Register”h]”hŒBus Characteristic Register”…”�”}”(hjj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jf h´Kohjg ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjK ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jf h´Kohj ubj¥)�”}”(hŒ'``dcr`` Device Characteristic Register ”h]”(j«)�”}”(hŒ``dcr``”h]”j±)�”}”(hjŠ h]”hŒdcr”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjˆ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kphj„ ubjÇ)�”}”(hhh]”j[)�”}”(hŒDevice Characteristic Register”h]”hŒDevice Characteristic Register”…”�”}”(hj£ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jŸ h´Kphj  ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj„ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jŸ h´Kphj ubj¥)�”}”(hŒ#``static_addr`` static/I2C address ”h]”(j«)�”}”(hŒ``static_addr``”h]”j±)�”}”(hjà h]”hŒ static_addr”…”�”}”(hjÅ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjÁ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kqhj½ ubjÇ)�”}”(hhh]”j[)�”}”(hŒstatic/I2C address”h]”hŒstatic/I2C address”…”�”}”(hjÜ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jØ h´KqhjÙ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj½ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jØ h´Kqhj ubj¥)�”}”(hŒ``dyn_addr`` dynamic address ”h]”(j«)�”}”(hŒ ``dyn_addr``”h]”j±)�”}”(hjü h]”hŒdyn_addr”…”�”}”(hjþ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjú ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Krhjö ubjÇ)�”}”(hhh]”j[)�”}”(hŒdynamic address”h]”hŒdynamic address”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³j h´Krhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjö ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j h´Krhj ubj¥)�”}”(hŒ ``hdr_cap`` supported HDR modes ”h]”(j«)�”}”(hŒ ``hdr_cap``”h]”j±)�”}”(hj5 h]”hŒhdr_cap”…”�”}”(hj7 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj3 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kshj/ ubjÇ)�”}”(hhh]”j[)�”}”(hŒsupported HDR modes”h]”hŒsupported HDR modes”…”�”}”(hjN h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jJ h´KshjK ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj/ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jJ h´Kshj ubj¥)�”}”(hŒ+``max_read_ds`` max read speed information ”h]”(j«)�”}”(hŒ``max_read_ds``”h]”j±)�”}”(hjn h]”hŒ max_read_ds”…”�”}”(hjp h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjl ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kthjh ubjÇ)�”}”(hhh]”j[)�”}”(hŒmax read speed information”h]”hŒmax read speed information”…”�”}”(hj‡ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jƒ h´Kthj„ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjh ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jƒ h´Kthj ubj¥)�”}”(hŒ-``max_write_ds`` max write speed information ”h]”(j«)�”}”(hŒ``max_write_ds``”h]”j±)�”}”(hj§ h]”hŒ max_write_ds”…”�”}”(hj© h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj¥ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kuhj¡ ubjÇ)�”}”(hhh]”j[)�”}”(hŒmax write speed information”h]”hŒmax write speed information”…”�”}”(hjÀ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³j¼ h´Kuhj½ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj¡ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j¼ h´Kuhj ubj¥)�”}”(hŒ'``max_ibi_len`` max IBI payload length ”h]”(j«)�”}”(hŒ``max_ibi_len``”h]”j±)�”}”(hjà h]”hŒ max_ibi_len”…”�”}”(hjâ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjÞ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KvhjÚ ubjÇ)�”}”(hhh]”j[)�”}”(hŒmax IBI payload length”h]”hŒmax IBI payload length”…”�”}”(hjù h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jõ h´Kvhjö ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÚ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jõ h´Kvhj ubj¥)�”}”(hŒC``max_read_turnaround`` max read turn-around time in micro-seconds ”h]”(j«)�”}”(hŒ``max_read_turnaround``”h]”j±)�”}”(hj h]”hŒmax_read_turnaround”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kwhj ubjÇ)�”}”(hhh]”j[)�”}”(hŒ*max read turn-around time in micro-seconds”h]”hŒ*max read turn-around time in micro-seconds”…”�”}”(hj2 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³j. h´Kwhj/ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j. h´Kwhj ubj¥)�”}”(hŒ6``max_read_len`` max private SDR read length in bytes ”h]”(j«)�”}”(hŒ``max_read_len``”h]”j±)�”}”(hjR h]”hŒ max_read_len”…”�”}”(hjT h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjP ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KxhjL ubjÇ)�”}”(hhh]”j[)�”}”(hŒ$max private SDR read length in bytes”h]”hŒ$max private SDR read length in bytes”…”�”}”(hjk h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jg h´Kxhjh ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjL ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jg h´Kxhj ubj¥)�”}”(hŒ7``max_write_len`` max private SDR write length in bytes”h]”(j«)�”}”(hŒ``max_write_len``”h]”j±)�”}”(hj‹ h]”hŒ max_write_len”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj‰ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kxhj… ubjÇ)�”}”(hhh]”j[)�”}”(hŒ%max private SDR write length in bytes”h]”hŒ%max private SDR write length in bytes”…”�”}”(hj¤ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kyhj¡ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj… ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j  h´Kxhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjÇubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³hîh´Nubj[)�”}”(hŒ**Description**”h]”jŠ)�”}”(hjÎ h]”hŒ Description”…”�”}”(hjÐ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjÌ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K|hhÊh²hubj[)�”}”(hX-These are all basic information that should be advertised by an I3C device. Some of them are optional depending on the device type and device capabilities. For each I3C slave attached to a master with i3c_master_add_i3c_dev_locked(), the core will send the relevant CCC command to retrieve these data.”h]”hX-These are all basic information that should be advertised by an I3C device. Some of them are optional depending on the device type and device capabilities. For each I3C slave attached to a master with i3c_master_add_i3c_dev_locked(), the core will send the relevant CCC command to retrieve these data.”…”�”}”(hjä h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KyhhÊh²hubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒi3c_driver (C struct)”Œ c.i3c_driver”hNt”auh1hÝhhÊh²hh³hîh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒ i3c_driver”h]”hû)�”}”(hŒstruct i3c_driver”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhj h²hh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kƒubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj h²hh³j h´Kƒubj$)�”}”(hŒ i3c_driver”h]”j*)�”}”(hj h]”hŒ i3c_driver”…”�”}”(hj, h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj( ubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hj h²hh³j h´Kƒubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhj h²hh³j h´Kƒubah}”(h]”jÿ ah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³j h´Kƒhj h²hubjV)�”}”(hhh]”j[)�”}”(hŒI3C device driver”h]”hŒI3C device driver”…”�”}”(hjN h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K´hjK h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhj h²hh³j h´Kƒubeh}”(h]”h ]”(jtŒstruct”eh"]”h$]”h&]”jyjtjzjf j{jf j|‰j}‰j~‰uh1hïh²hhhÊh³hîh´Nubj€)�”}”(hXÍ**Definition**:: struct i3c_driver { struct device_driver driver; int (*probe)(struct i3c_device *dev); void (*remove)(struct i3c_device *dev); const struct i3c_device_id *id_table; }; **Members** ``driver`` inherit from device_driver ``probe`` I3C device probe method ``remove`` I3C device remove method ``id_table`` I3C device match table. Will be used by the framework to decide which device to bind to this driver”h]”(j[)�”}”(hŒ**Definition**::”h]”(jŠ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjr h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjn ubhŒ:”…”�”}”(hjn h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K¸hjj ubj9)�”}”(hŒ·struct i3c_driver { struct device_driver driver; int (*probe)(struct i3c_device *dev); void (*remove)(struct i3c_device *dev); const struct i3c_device_id *id_table; };”h]”hŒ·struct i3c_driver { struct device_driver driver; int (*probe)(struct i3c_device *dev); void (*remove)(struct i3c_device *dev); const struct i3c_device_id *id_table; };”…”�”}”hj‹ sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j8h³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kºhjj ubj[)�”}”(hŒ **Members**”h]”jŠ)�”}”(hjœ h]”hŒMembers”…”�”}”(hjž h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjš ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KÁhjj ubj )�”}”(hhh]”(j¥)�”}”(hŒ&``driver`` inherit from device_driver ”h]”(j«)�”}”(hŒ ``driver``”h]”j±)�”}”(hj» h]”hŒdriver”…”�”}”(hj½ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj¹ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K¶hjµ ubjÇ)�”}”(hhh]”j[)�”}”(hŒinherit from device_driver”h]”hŒinherit from device_driver”…”�”}”(hjÔ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³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Œ"``probe`` I3C device probe method ”h]”(j«)�”}”(hŒ ``probe``”h]”j±)�”}”(hjô h]”hŒprobe”…”�”}”(hjö h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjò ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K·hjî ubjÇ)�”}”(hhh]”j[)�”}”(hŒI3C device probe method”h]”hŒI3C device probe method”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³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Œ$``remove`` I3C device remove method ”h]”(j«)�”}”(hŒ ``remove``”h]”j±)�”}”(hj- h]”hŒremove”…”�”}”(hj/ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj+ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K¸hj' ubjÇ)�”}”(hhh]”j[)�”}”(hŒI3C device remove method”h]”hŒI3C device remove method”…”�”}”(hjF h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jB h´K¸hjC ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj' ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jB h´K¸hj² ubj¥)�”}”(hŒp``id_table`` I3C device match table. Will be used by the framework to decide which device to bind to this driver”h]”(j«)�”}”(hŒ ``id_table``”h]”j±)�”}”(hjf h]”hŒid_table”…”�”}”(hjh h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjd ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K¹hj` ubjÇ)�”}”(hhh]”j[)�”}”(hŒcI3C device match table. Will be used by the framework to decide which device to bind to this driver”h]”hŒcI3C device match table. Will be used by the framework to decide which device to bind to this driver”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³j{ 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Ÿhjj ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³hîh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒdev_to_i3cdev (C macro)”Œc.dev_to_i3cdev”hNt”auh1hÝhhÊh²hh³hîh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒ dev_to_i3cdev”h]”hû)�”}”(hŒ dev_to_i3cdev”h]”j$)�”}”(hŒ dev_to_i3cdev”h]”j*)�”}”(hj¹ h]”hŒ dev_to_i3cdev”…”�”}”(hjà h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj¿ ubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hj» h²hh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KÇubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhj· h²hh³jÖ h´KÇubah}”(h]”j² ah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³jÖ h´KÇhj´ h²hubjV)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jUhj´ h²hh³jÖ h´KÇubeh}”(h]”h ]”(jtŒmacro”eh"]”h$]”h&]”jyjtjzjï j{jï j|‰j}‰j~‰uh1hïh²hhhÊh³hîh´Nubj[)�”}”(hŒ``dev_to_i3cdev (__dev)``”h]”j±)�”}”(hjõ h]”hŒdev_to_i3cdev (__dev)”…”�”}”(hj÷ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjó ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KÉhhÊh²hubhŒ block_quote”“”)�”}”(hŒ*Returns the I3C device containing **dev** ”h]”j[)�”}”(hŒ)Returns the I3C device containing **dev**”h]”(hŒ"Returns the I3C device containing ”…”�”}”(hjh²hh³Nh´NubjŠ)�”}”(hŒ**dev**”h]”hŒdev”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KÇhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j-h´KÇhhÊh²hubj€)�”}”(hŒY**Parameters** ``__dev`` device object **Return** a pointer to an I3C device object.”h]”(j[)�”}”(hŒ**Parameters**”h]”jŠ)�”}”(hj:h]”hŒ Parameters”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KËhj4ubj )�”}”(hhh]”j¥)�”}”(hŒ``__dev`` device object ”h]”(j«)�”}”(hŒ ``__dev``”h]”j±)�”}”(hjYh]”hŒ__dev”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KÈhjSubjÇ)�”}”(hhh]”j[)�”}”(hŒ device object”h]”hŒ device object”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jnh´KÈhjoubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjSubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jnh´KÈhjPubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj4ubj[)�”}”(hŒ **Return**”h]”jŠ)�”}”(hj”h]”hŒReturn”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KÊhj4ubj[)�”}”(hŒ"a pointer to an I3C device object.”h]”hŒ"a pointer to an I3C device object.”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KÊhj4ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³hîh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒmodule_i3c_driver (C macro)”Œc.module_i3c_driver”hNt”auh1hÝhhÊh²hh³hîh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒmodule_i3c_driver”h]”hû)�”}”(hŒmodule_i3c_driver”h]”j$)�”}”(hŒmodule_i3c_driver”h]”j*)�”}”(hjÓh]”hŒmodule_i3c_driver”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjÙubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hjÕh²hh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kéubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhjÑh²hh³jðh´Kéubah}”(h]”jÌah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³jðh´KéhjÎh²hubjV)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jUhjÎh²hh³jðh´Kéubeh}”(h]”h ]”(jtŒmacro”eh"]”h$]”h&]”jyjtjzj j{j j|‰j}‰j~‰uh1hïh²hhhÊh³hîh´Nubj[)�”}”(hŒ``module_i3c_driver (__drv)``”h]”j±)�”}”(hjh]”hŒmodule_i3c_driver (__drv)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´KëhhÊh²hubj )�”}”(hŒ*Register a module providing an I3C driver ”h]”j[)�”}”(hŒ)Register a module providing an I3C driver”h]”hŒ)Register a module providing an I3C driver”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kéhj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j7h´KéhhÊh²hubj€)�”}”(hŒè**Parameters** ``__drv`` the I3C driver to register **Description** Provide generic init/exit functions that simply register/unregister an I3C driver. Should be used by any driver that does not require extra init/cleanup steps.”h]”(j[)�”}”(hŒ**Parameters**”h]”jŠ)�”}”(hjDh]”hŒ Parameters”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjBubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kíhj>ubj )�”}”(hhh]”j¥)�”}”(hŒ%``__drv`` the I3C driver to register ”h]”(j«)�”}”(hŒ ``__drv``”h]”j±)�”}”(hjch]”hŒ__drv”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjaubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kêhj]ubjÇ)�”}”(hhh]”j[)�”}”(hŒthe I3C driver to register”h]”hŒthe I3C driver to register”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jxh´Kêhjyubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj]ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jxh´KêhjZubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj>ubj[)�”}”(hŒ**Description**”h]”jŠ)�”}”(hjžh]”hŒ Description”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjœubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kìhj>ubj[)�”}”(hŒŸProvide generic init/exit functions that simply register/unregister an I3C driver. Should be used by any driver that does not require extra init/cleanup steps.”h]”hŒŸProvide generic init/exit functions that simply register/unregister an I3C driver. Should be used by any driver that does not require extra init/cleanup steps.”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Këhj>ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³hîh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒ$i3c_i2c_driver_register (C function)”Œc.i3c_i2c_driver_register”hNt”auh1hÝhhÊh²hh³hîh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒRint i3c_i2c_driver_register (struct i3c_driver *i3cdrv, struct i2c_driver *i2cdrv)”h]”hû)�”}”(hŒQint i3c_i2c_driver_register(struct i3c_driver *i3cdrv, struct i2c_driver *i2cdrv)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒint”h]”hŒint”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1jãhjßh²hh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kôubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjßh²hh³jôh´Kôubj$)�”}”(hŒi3c_i2c_driver_register”h]”j*)�”}”(hŒi3c_i2c_driver_register”h]”hŒi3c_i2c_driver_register”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hjßh²hh³jôh´KôubhŒdesc_parameterlist”“”)�”}”(hŒ6(struct i3c_driver *i3cdrv, struct i2c_driver *i2cdrv)”h]”(hŒdesc_parameter”“”)�”}”(hŒstruct i3c_driver *i3cdrv”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhj#ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj#ubh)�”}”(hhh]”j*)�”}”(hŒ i3c_driver”h]”hŒ i3c_driver”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjBubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”Œ identifier”Œ reftarget”jGŒmodname”NŒ classname”Njßjâ)�”}”jå]”jàŒ ASTIdentifier”“”)�”}”j[j sbŒc.i3c_i2c_driver_register”†”asbuh1hhj#ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj#ubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1jvhj#ubj*)�”}”(hŒi3cdrv”h]”hŒi3cdrv”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hjubj")�”}”(hŒstruct i2c_driver *i2cdrv”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjœubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjœubh)�”}”(hhh]”j*)�”}”(hŒ i2c_driver”h]”hŒ i2c_driver”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj»ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”jÀŒmodname”NŒ classname”Njßjâ)�”}”jå]”jdŒc.i3c_i2c_driver_register”†”asbuh1hhjœubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjœubjw)�”}”(hjzh]”hŒ*”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhjœubj*)�”}”(hŒi2cdrv”h]”hŒi2cdrv”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjœubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hjubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jhjßh²hh³jôh´Kôubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhjÛh²hh³jôh´Kôubah}”(h]”jÖah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³jôh´KôhjØh²hubjV)�”}”(hhh]”j[)�”}”(hŒ!Register an i2c and an i3c driver”h]”hŒ!Register an i2c and an i3c driver”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kôhjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhjØh²hh³jôh´Kôubeh}”(h]”h ]”(jtŒfunction”eh"]”h$]”h&]”jyjtjzj9j{j9j|‰j}‰j~‰uh1hïh²hhhÊh³hîh´Nubj€)�”}”(hXí**Parameters** ``struct i3c_driver *i3cdrv`` the I3C driver to register ``struct i2c_driver *i2cdrv`` the I2C driver to register **Description** This function registers both **i2cdev** and **i3cdev**, and fails if one of these registrations fails. This is mainly useful for devices that support both I2C and I3C modes. Note that when CONFIG_I3C is not enabled, this function only registers the I2C driver. **Return** 0 if both registrations succeeds, a negative error code otherwise.”h]”(j[)�”}”(hŒ**Parameters**”h]”jŠ)�”}”(hjCh]”hŒ Parameters”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjAubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Køhj=ubj )�”}”(hhh]”(j¥)�”}”(hŒ9``struct i3c_driver *i3cdrv`` the I3C driver to register ”h]”(j«)�”}”(hŒ``struct i3c_driver *i3cdrv``”h]”j±)�”}”(hjbh]”hŒstruct i3c_driver *i3cdrv”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kõhj\ubjÇ)�”}”(hhh]”j[)�”}”(hŒthe I3C driver to register”h]”hŒthe I3C driver to register”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jwh´Kõhjxubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jwh´KõhjYubj¥)�”}”(hŒ9``struct i2c_driver *i2cdrv`` the I2C driver to register ”h]”(j«)�”}”(hŒ``struct i2c_driver *i2cdrv``”h]”j±)�”}”(hj›h]”hŒstruct i2c_driver *i2cdrv”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Köhj•ubjÇ)�”}”(hhh]”j[)�”}”(hŒthe I2C driver to register”h]”hŒthe I2C driver to register”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³j°h´Köhj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j°h´KöhjYubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj=ubj[)�”}”(hŒ**Description**”h]”jŠ)�”}”(hjÖh]”hŒ Description”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Køhj=ubj[)�”}”(hXThis function registers both **i2cdev** and **i3cdev**, and fails if one of these registrations fails. This is mainly useful for devices that support both I2C and I3C modes. Note that when CONFIG_I3C is not enabled, this function only registers the I2C driver.”h]”(hŒThis function registers both ”…”�”}”(hjìh²hh³Nh´NubjŠ)�”}”(hŒ **i2cdev**”h]”hŒi2cdev”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjìubhŒ and ”…”�”}”(hjìh²hh³Nh´NubjŠ)�”}”(hŒ **i3cdev**”h]”hŒi3cdev”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjìubhŒÎ, and fails if one of these registrations fails. This is mainly useful for devices that support both I2C and I3C modes. Note that when CONFIG_I3C is not enabled, this function only registers the I2C driver.”…”�”}”(hjìh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´K÷hj=ubj[)�”}”(hŒ **Return**”h]”jŠ)�”}”(hj!h]”hŒReturn”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kýhj=ubj[)�”}”(hŒB0 if both registrations succeeds, a negative error code otherwise.”h]”hŒB0 if both registrations succeeds, a negative error code otherwise.”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Kþhj=ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³hîh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒ&i3c_i2c_driver_unregister (C function)”Œc.i3c_i2c_driver_unregister”hNt”auh1hÝhhÊh²hh³hîh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒUvoid i3c_i2c_driver_unregister (struct i3c_driver *i3cdrv, struct i2c_driver *i2cdrv)”h]”hû)�”}”(hŒTvoid i3c_i2c_driver_unregister(struct i3c_driver *i3cdrv, struct i2c_driver *i2cdrv)”h]”(jä)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”jðah"]”h$]”h&]”uh1jãhjbh²hh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Mubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjbh²hh³jth´Mubj$)�”}”(hŒi3c_i2c_driver_unregister”h]”j*)�”}”(hŒi3c_i2c_driver_unregister”h]”hŒi3c_i2c_driver_unregister”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjƒubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hjbh²hh³jth´Mubj)�”}”(hŒ6(struct i3c_driver *i3cdrv, struct i2c_driver *i2cdrv)”h]”(j")�”}”(hŒstruct i3c_driver *i3cdrv”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjŸubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjŸubh)�”}”(hhh]”j*)�”}”(hŒ i3c_driver”h]”hŒ i3c_driver”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj¾ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”jÃŒmodname”NŒ classname”Njßjâ)�”}”jå]”jc)�”}”j[j‰sbŒc.i3c_i2c_driver_unregister”†”asbuh1hhjŸubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjŸubjw)�”}”(hjzh]”hŒ*”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhjŸubj*)�”}”(hŒi3cdrv”h]”hŒi3cdrv”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjŸubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hj›ubj")�”}”(hŒstruct i2c_driver *i2cdrv”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjubh)�”}”(hhh]”j*)�”}”(hŒ i2c_driver”h]”hŒ i2c_driver”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”j5Œmodname”NŒ classname”Njßjâ)�”}”jå]”jÝŒc.i3c_i2c_driver_unregister”†”asbuh1hhjubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjubjw)�”}”(hjzh]”hŒ*”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhjubj*)�”}”(hŒi2cdrv”h]”hŒi2cdrv”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hj›ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jhjbh²hh³jth´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhj^h²hh³jth´Mubah}”(h]”jYah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³jth´Mhj[h²hubjV)�”}”(hhh]”j[)�”}”(hŒ#Unregister an i2c and an i3c driver”h]”hŒ#Unregister an i2c and an i3c driver”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Mhj“h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhj[h²hh³jth´Mubeh}”(h]”h ]”(jtŒfunction”eh"]”h$]”h&]”jyjtjzj®j{j®j|‰j}‰j~‰uh1hïh²hhhÊh³hîh´Nubj€)�”}”(hX+**Parameters** ``struct i3c_driver *i3cdrv`` the I3C driver to register ``struct i2c_driver *i2cdrv`` the I2C driver to register **Description** This function unregisters both **i3cdrv** and **i2cdrv**. Note that when CONFIG_I3C is not enabled, this function only unregisters the **i2cdrv**.”h]”(j[)�”}”(hŒ**Parameters**”h]”jŠ)�”}”(hj¸h]”hŒ Parameters”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Mhj²ubj )�”}”(hhh]”(j¥)�”}”(hŒ9``struct i3c_driver *i3cdrv`` the I3C driver to register ”h]”(j«)�”}”(hŒ``struct i3c_driver *i3cdrv``”h]”j±)�”}”(hj×h]”hŒstruct i3c_driver *i3cdrv”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjÕubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´MhjÑubjÇ)�”}”(hhh]”j[)�”}”(hŒthe I3C driver to register”h]”hŒthe I3C driver to register”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jìh´Mhjíubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÑubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jìh´MhjÎubj¥)�”}”(hŒ9``struct i2c_driver *i2cdrv`` the I2C driver to register ”h]”(j«)�”}”(hŒ``struct i2c_driver *i2cdrv``”h]”j±)�”}”(hjh]”hŒstruct i2c_driver *i2cdrv”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Mhj ubjÇ)�”}”(hhh]”j[)�”}”(hŒthe I2C driver to register”h]”hŒthe I2C driver to register”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³j%h´Mhj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j%h´MhjÎubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj²ubj[)�”}”(hŒ**Description**”h]”jŠ)�”}”(hjKh]”hŒ Description”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjIubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”•mh´Mhj²ubj[)�”}”(hŒ’This function unregisters both **i3cdrv** and **i2cdrv**. Note that when CONFIG_I3C is not enabled, this function only unregisters the **i2cdrv**.”h]”(hŒThis function unregisters both ”…”�”}”(hjah²hh³Nh´NubjŠ)�”}”(hŒ **i3cdrv**”h]”hŒi3cdrv”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjaubhŒ and ”…”�”}”(hjah²hh³Nh´NubjŠ)�”}”(hŒ **i2cdrv**”h]”hŒi2cdrv”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjaubhŒO. Note that when CONFIG_I3C is not enabled, this function only unregisters the ”…”�”}”(hjah²hh³Nh´NubjŠ)�”}”(hŒ **i2cdrv**”h]”hŒi2cdrv”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjaubhŒ.”…”�”}”(hjah²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´Mhj²ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³hîh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒmodule_i3c_i2c_driver (C macro)”Œc.module_i3c_i2c_driver”hNt”auh1hÝhhÊh²hh³hîh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒmodule_i3c_i2c_driver”h]”hû)�”}”(hŒmodule_i3c_i2c_driver”h]”j$)�”}”(hŒmodule_i3c_i2c_driver”h]”j*)�”}”(hjÀh]”hŒmodule_i3c_i2c_driver”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjÆubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hjÂh²hh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´M#ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhj¾h²hh³jÝh´M#ubah}”(h]”j¹ah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³jÝh´M#hj»h²hubjV)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jUhj»h²hh³jÝh´M#ubeh}”(h]”h ]”(jtŒmacro”eh"]”h$]”h&]”jyjtjzjöj{jöj|‰j}‰j~‰uh1hïh²hhhÊh³hîh´Nubj[)�”}”(hŒ.``module_i3c_i2c_driver (__i3cdrv, __i2cdrv)``”h]”j±)�”}”(hjüh]”hŒ*module_i3c_i2c_driver (__i3cdrv, __i2cdrv)”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´M%hhÊh²hubj )�”}”(hŒ5Register a module providing an I3C and an I2C driver ”h]”j[)�”}”(hŒ4Register a module providing an I3C and an I2C driver”h]”hŒ4Register a module providing an I3C and an I2C driver”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´M#hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j$h´M#hhÊh²hubj€)�”}”(hXŽ**Parameters** ``__i3cdrv`` the I3C driver to register ``__i2cdrv`` the I2C driver to register **Description** Provide generic init/exit functions that simply register/unregister an I3C and an I2C driver. This macro can be used even if CONFIG_I3C is disabled, in this case, only the I2C driver will be registered. Should be used by any driver that does not require extra init/cleanup steps.”h]”(j[)�”}”(hŒ**Parameters**”h]”jŠ)�”}”(hj1h]”hŒ Parameters”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´M'hj+ubj )�”}”(hhh]”(j¥)�”}”(hŒ(``__i3cdrv`` the I3C driver to register ”h]”(j«)�”}”(hŒ ``__i3cdrv``”h]”j±)�”}”(hjPh]”hŒ__i3cdrv”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjNubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´M%hjJubjÇ)�”}”(hhh]”j[)�”}”(hŒthe I3C driver to register”h]”hŒthe I3C driver to register”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jeh´M%hjfubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjJubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jeh´M%hjGubj¥)�”}”(hŒ(``__i2cdrv`` the I2C driver to register ”h]”(j«)�”}”(hŒ ``__i2cdrv``”h]”j±)�”}”(hj‰h]”hŒ__i2cdrv”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´M&hjƒubjÇ)�”}”(hhh]”j[)�”}”(hŒthe I2C driver to register”h]”hŒthe I2C driver to register”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jžh´M&hjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jžh´M&hjGubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj+ubj[)�”}”(hŒ**Description**”h]”jŠ)�”}”(hjÄh]”hŒ Description”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´M(hj+ubj[)�”}”(hXProvide generic init/exit functions that simply register/unregister an I3C and an I2C driver. This macro can be used even if CONFIG_I3C is disabled, in this case, only the I2C driver will be registered. Should be used by any driver that does not require extra init/cleanup steps.”h]”hXProvide generic init/exit functions that simply register/unregister an I3C and an I2C driver. This macro can be used even if CONFIG_I3C is disabled, in this case, only the I2C driver will be registered. Should be used by any driver that does not require extra init/cleanup steps.”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´M'hj+ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³hîh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒi3c_ibi_setup (C struct)”Œc.i3c_ibi_setup”hNt”auh1hÝhhÊh²hh³hîh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒ i3c_ibi_setup”h]”hû)�”}”(hŒstruct i3c_ibi_setup”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjh²hh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´M0ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjh²hh³jh´M0ubj$)�”}”(hŒ i3c_ibi_setup”h]”j*)�”}”(hjh]”hŒ i3c_ibi_setup”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj%ubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hjh²hh³jh´M0ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhjh²hh³jh´M0ubah}”(h]”jüah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³jh´M0hjþh²hubjV)�”}”(hhh]”j[)�”}”(hŒIBI setup object”h]”hŒIBI setup object”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´MPhjHh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhjþh²hh³jh´M0ubeh}”(h]”h ]”(jtŒstruct”eh"]”h$]”h&]”jyjtjzjcj{jcj|‰j}‰j~‰uh1hïh²hhhÊh³hîh´Nubj€)�”}”(hXZ**Definition**:: struct i3c_ibi_setup { unsigned int max_payload_len; unsigned int num_slots; void (*handler)(struct i3c_device *dev, const struct i3c_ibi_payload *payload); }; **Members** ``max_payload_len`` maximum length of the payload associated to an IBI. If one IBI appears to have a payload that is bigger than this number, the IBI will be rejected. ``num_slots`` number of pre-allocated IBI slots. This should be chosen so that the system never runs out of IBI slots, otherwise you'll lose IBIs. ``handler`` IBI handler, every time an IBI is received. This handler is called in a workqueue context. It is allowed to sleep and send new messages on the bus, though it's recommended to keep the processing done there as fast as possible to avoid delaying processing of other queued on the same workqueue.”h]”(j[)�”}”(hŒ**Definition**::”h]”(jŠ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjkubhŒ:”…”�”}”(hjkh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´MThjgubj9)�”}”(hŒ«struct i3c_ibi_setup { unsigned int max_payload_len; unsigned int num_slots; void (*handler)(struct i3c_device *dev, const struct i3c_ibi_payload *payload); };”h]”hŒ«struct i3c_ibi_setup { unsigned int max_payload_len; unsigned int num_slots; void (*handler)(struct i3c_device *dev, const struct i3c_ibi_payload *payload); };”…”�”}”hjˆsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j8h³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´MVhjgubj[)�”}”(hŒ **Members**”h]”jŠ)�”}”(hj™h]”hŒMembers”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´M\hjgubj )�”}”(hhh]”(j¥)�”}”(hŒ¨``max_payload_len`` maximum length of the payload associated to an IBI. If one IBI appears to have a payload that is bigger than this number, the IBI will be rejected. ”h]”(j«)�”}”(hŒ``max_payload_len``”h]”j±)�”}”(hj¸h]”hŒmax_payload_len”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´MThj²ubjÇ)�”}”(hhh]”j[)�”}”(hŒ“maximum length of the payload associated to an IBI. If one IBI appears to have a payload that is bigger than this number, the IBI will be rejected.”h]”hŒ“maximum length of the payload associated to an IBI. If one IBI appears to have a payload that is bigger than this number, the IBI will be rejected.”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´MRhjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj²ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jÍh´MThj¯ubj¥)�”}”(hŒ“``num_slots`` number of pre-allocated IBI slots. This should be chosen so that the system never runs out of IBI slots, otherwise you'll lose IBIs. ”h]”(j«)�”}”(hŒ ``num_slots``”h]”j±)�”}”(hjòh]”hŒ num_slots”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjðubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´MWhjìubjÇ)�”}”(hhh]”j[)�”}”(hŒ„number of pre-allocated IBI slots. This should be chosen so that the system never runs out of IBI slots, otherwise you'll lose IBIs.”h]”hŒ†number of pre-allocated IBI slots. This should be chosen so that the system never runs out of IBI slots, otherwise you’ll lose IBIs.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´MUhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjìubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jh´MWhj¯ubj¥)�”}”(hX1``handler`` IBI handler, every time an IBI is received. This handler is called in a workqueue context. It is allowed to sleep and send new messages on the bus, though it's recommended to keep the processing done there as fast as possible to avoid delaying processing of other queued on the same workqueue.”h]”(j«)�”}”(hŒ ``handler``”h]”j±)�”}”(hj,h]”hŒhandler”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´M[hj&ubjÇ)�”}”(hhh]”j[)�”}”(hX%IBI handler, every time an IBI is received. This handler is called in a workqueue context. It is allowed to sleep and send new messages on the bus, though it's recommended to keep the processing done there as fast as possible to avoid delaying processing of other queued on the same workqueue.”h]”hX'IBI handler, every time an IBI is received. This handler is called in a workqueue context. It is allowed to sleep and send new messages on the bus, though it’s recommended to keep the processing done there as fast as possible to avoid delaying processing of other queued on the same workqueue.”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´MXhjBubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jAh´M[hj¯ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjgubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³hîh´Nubj[)�”}”(hŒ**Description**”h]”jŠ)�”}”(hjoh]”hŒ Description”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjmubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´M_hhÊh²hubj[)�”}”(hŒñTemporary structure used to pass information to i3c_device_request_ibi(). This object can be allocated on the stack since i3c_device_request_ibi() copies every bit of information and do not use it after i3c_device_request_ibi() has returned.”h]”hŒñTemporary structure used to pass information to i3c_device_request_ibi(). This object can be allocated on the stack since i3c_device_request_ibi() copies every bit of information and do not use it after i3c_device_request_ibi() has returned.”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œj/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:7: ./include/linux/i3c/device.h”h´M\hhÊh²hubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒ i3c_device_do_xfers (C function)”Œc.i3c_device_do_xfers”hNt”auh1hÝhhÊh²hh³Nh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒmint i3c_device_do_xfers (struct i3c_device *dev, struct i3c_xfer *xfers, int nxfers, enum i3c_xfer_mode mode)”h]”hû)�”}”(hŒlint i3c_device_do_xfers(struct i3c_device *dev, struct i3c_xfer *xfers, int nxfers, enum i3c_xfer_mode mode)”h]”(jä)�”}”(hŒint”h]”hŒint”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”jðah"]”h$]”h&]”uh1jãhj©h²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Kubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj©h²hh³j»h´Kubj$)�”}”(hŒi3c_device_do_xfers”h]”j*)�”}”(hŒi3c_device_do_xfers”h]”hŒi3c_device_do_xfers”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjÊubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hj©h²hh³j»h´Kubj)�”}”(hŒU(struct i3c_device *dev, struct i3c_xfer *xfers, int nxfers, enum i3c_xfer_mode mode)”h]”(j")�”}”(hŒstruct i3c_device *dev”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjæubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjæubh)�”}”(hhh]”j*)�”}”(hŒ i3c_device”h]”hŒ i3c_device”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”j Œmodname”NŒ classname”Njßjâ)�”}”jå]”jc)�”}”j[jÐsbŒc.i3c_device_do_xfers”†”asbuh1hhjæubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjæubjw)�”}”(hjzh]”hŒ*”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhjæubj*)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjæubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hjâubj")�”}”(hŒstruct i3c_xfer *xfers”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjXubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjXubh)�”}”(hhh]”j*)�”}”(hŒi3c_xfer”h]”hŒi3c_xfer”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjwubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”j|Œmodname”NŒ classname”Njßjâ)�”}”jå]”j$Œc.i3c_device_do_xfers”†”asbuh1hhjXubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjXubjw)�”}”(hjzh]”hŒ*”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhjXubj*)�”}”(hŒxfers”h]”hŒxfers”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjXubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hjâubj")�”}”(hŒ int nxfers”h]”(jä)�”}”(hŒint”h]”hŒint”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”jðah"]”h$]”h&]”uh1jãhjÈubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÈubj*)�”}”(hŒnxfers”h]”hŒnxfers”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjÈubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hjâubj")�”}”(hŒenum i3c_xfer_mode mode”h]”(j)�”}”(hjh]”hŒenum”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjýubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjýubh)�”}”(hhh]”j*)�”}”(hŒ i3c_xfer_mode”h]”hŒ i3c_xfer_mode”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”j!Œmodname”NŒ classname”Njßjâ)�”}”jå]”j$Œc.i3c_device_do_xfers”†”asbuh1hhjýubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjýubj*)�”}”(hŒmode”h]”hŒmode”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjýubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hjâubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jhj©h²hh³j»h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhj¥h²hh³j»h´Kubah}”(h]”j ah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³j»h´Khj¢h²hubjV)�”}”(hhh]”j[)�”}”(hŒ.do I3C transfers directed to a specific device”h]”hŒ.do I3C transfers directed to a specific device”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Khjrh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhj¢h²hh³j»h´Kubeh}”(h]”h ]”(jtŒfunction”eh"]”h$]”h&]”jyjtjzj�j{j�j|‰j}‰j~‰uh1hïh²hhhÊh³Nh´Nubj€)�”}”(hX›**Parameters** ``struct i3c_device *dev`` device with which the transfers should be done ``struct i3c_xfer *xfers`` array of transfers ``int nxfers`` number of transfers ``enum i3c_xfer_mode mode`` transfer mode **Description** Initiate one or several private SDR transfers with **dev**. This function can sleep and thus cannot be called in atomic context. **Return** * 0 in case of success, a negative error core otherwise. * -EAGAIN: controller lost address arbitration. Target (IBI, HJ or controller role request) win the bus. Client driver needs to resend the 'xfers' some time later. See I3C spec ver 1.1.1 09-Jun-2021. Section: 5.1.2.2.3.”h]”(j[)�”}”(hŒ**Parameters**”h]”jŠ)�”}”(hj—h]”hŒ Parameters”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Khj‘ubj )�”}”(hhh]”(j¥)�”}”(hŒJ``struct i3c_device *dev`` device with which the transfers should be done ”h]”(j«)�”}”(hŒ``struct i3c_device *dev``”h]”j±)�”}”(hj¶h]”hŒstruct i3c_device *dev”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Khj°ubjÇ)�”}”(hhh]”j[)�”}”(hŒ.device with which the transfers should be done”h]”hŒ.device with which the transfers should be done”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jËh´KhjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jËh´Khj­ubj¥)�”}”(hŒ.``struct i3c_xfer *xfers`` array of transfers ”h]”(j«)�”}”(hŒ``struct i3c_xfer *xfers``”h]”j±)�”}”(hjïh]”hŒstruct i3c_xfer *xfers”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjíubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´KhjéubjÇ)�”}”(hhh]”j[)�”}”(hŒarray of transfers”h]”hŒarray of transfers”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjéubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jh´Khj­ubj¥)�”}”(hŒ#``int nxfers`` number of transfers ”h]”(j«)�”}”(hŒ``int nxfers``”h]”j±)�”}”(hj(h]”hŒ int nxfers”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Khj"ubjÇ)�”}”(hhh]”j[)�”}”(hŒnumber of transfers”h]”hŒnumber of transfers”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³j=h´Khj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j=h´Khj­ubj¥)�”}”(hŒ*``enum i3c_xfer_mode mode`` transfer mode ”h]”(j«)�”}”(hŒ``enum i3c_xfer_mode mode``”h]”j±)�”}”(hjah]”hŒenum i3c_xfer_mode mode”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Khj[ubjÇ)�”}”(hhh]”j[)�”}”(hŒ transfer mode”h]”hŒ transfer mode”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jvh´Khjwubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jvh´Khj­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj‘ubj[)�”}”(hŒ**Description**”h]”jŠ)�”}”(hjœh]”hŒ Description”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjšubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Khj‘ubj[)�”}”(hŒ;Initiate one or several private SDR transfers with **dev**.”h]”(hŒ3Initiate one or several private SDR transfers with ”…”�”}”(hj²h²hh³Nh´NubjŠ)�”}”(hŒ**dev**”h]”hŒdev”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj²ubhŒ.”…”�”}”(hj²h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Khj‘ubj[)�”}”(hŒDThis function can sleep and thus cannot be called in atomic context.”h]”hŒDThis function can sleep and thus cannot be called in atomic context.”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Khj‘ubj[)�”}”(hŒ **Return**”h]”jŠ)�”}”(hjäh]”hŒReturn”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjâubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Khj‘ubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒ60 in case of success, a negative error core otherwise.”h]”j[)�”}”(hjh]”hŒ60 in case of success, a negative error core otherwise.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjüubj)�”}”(hŒÙ-EAGAIN: controller lost address arbitration. Target (IBI, HJ or controller role request) win the bus. Client driver needs to resend the 'xfers' some time later. See I3C spec ver 1.1.1 09-Jun-2021. Section: 5.1.2.2.3.”h]”j[)�”}”(hŒÙ-EAGAIN: controller lost address arbitration. Target (IBI, HJ or controller role request) win the bus. Client driver needs to resend the 'xfers' some time later. See I3C spec ver 1.1.1 09-Jun-2021. Section: 5.1.2.2.3.”h]”hŒÝ-EAGAIN: controller lost address arbitration. Target (IBI, HJ or controller role request) win the bus. Client driver needs to resend the ‘xfers’ some time later. See I3C spec ver 1.1.1 09-Jun-2021. Section: 5.1.2.2.3.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjüubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”jzuh1júh³jh´Khj‘ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³Nh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒ"i3c_device_do_setdasa (C function)”Œc.i3c_device_do_setdasa”hNt”auh1hÝhhÊh²hh³Nh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒ2int i3c_device_do_setdasa (struct i3c_device *dev)”h]”hû)�”}”(hŒ1int i3c_device_do_setdasa(struct i3c_device *dev)”h]”(jä)�”}”(hŒint”h]”hŒint”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”jðah"]”h$]”h&]”uh1jãhjUh²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K@ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjUh²hh³jgh´K@ubj$)�”}”(hŒi3c_device_do_setdasa”h]”j*)�”}”(hŒi3c_device_do_setdasa”h]”hŒi3c_device_do_setdasa”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjvubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hjUh²hh³jgh´K@ubj)�”}”(hŒ(struct i3c_device *dev)”h]”j")�”}”(hŒstruct i3c_device *dev”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhj’ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj’ubh)�”}”(hhh]”j*)�”}”(hŒ i3c_device”h]”hŒ i3c_device”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj±ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”j¶Œmodname”NŒ classname”Njßjâ)�”}”jå]”jc)�”}”j[j|sbŒc.i3c_device_do_setdasa”†”asbuh1hhj’ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj’ubjw)�”}”(hjzh]”hŒ*”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhj’ubj*)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj’ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hjŽubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jhjUh²hh³jgh´K@ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhjQh²hh³jgh´K@ubah}”(h]”jLah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³jgh´K@hjNh²hubjV)�”}”(hhh]”j[)�”}”(hŒ6do I3C dynamic address assignement with static address”h]”hŒ6do I3C dynamic address assignement with static address”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K@hjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhjNh²hh³jgh´K@ubeh}”(h]”h ]”(jtŒfunction”eh"]”h$]”h&]”jyjtjzj1j{j1j|‰j}‰j~‰uh1hïh²hhhÊh³Nh´Nubj€)�”}”(hŒ™**Parameters** ``struct i3c_device *dev`` device with which the DAA should be done **Return** 0 in case of success, a negative error core otherwise.”h]”(j[)�”}”(hŒ**Parameters**”h]”jŠ)�”}”(hj;h]”hŒ Parameters”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´KDhj5ubj )�”}”(hhh]”j¥)�”}”(hŒD``struct i3c_device *dev`` device with which the DAA should be done ”h]”(j«)�”}”(hŒ``struct i3c_device *dev``”h]”j±)�”}”(hjZh]”hŒstruct i3c_device *dev”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´KChjTubjÇ)�”}”(hhh]”j[)�”}”(hŒ(device with which the DAA should be done”h]”hŒ(device with which the DAA should be done”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³joh´KChjpubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjTubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³joh´KChjQubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj5ubj[)�”}”(hŒ **Return**”h]”jŠ)�”}”(hj•h]”hŒReturn”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´KEhj5ubj[)�”}”(hŒ60 in case of success, a negative error core otherwise.”h]”hŒ60 in case of success, a negative error core otherwise.”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´KEhj5ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³Nh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒ i3c_device_get_info (C function)”Œc.i3c_device_get_info”hNt”auh1hÝhhÊh²hh³Nh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒUvoid i3c_device_get_info (const struct i3c_device *dev, struct i3c_device_info *info)”h]”hû)�”}”(hŒTvoid i3c_device_get_info(const struct i3c_device *dev, struct i3c_device_info *info)”h]”(jä)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”jðah"]”h$]”h&]”uh1jãhjÖh²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´KZubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÖh²hh³jèh´KZubj$)�”}”(hŒi3c_device_get_info”h]”j*)�”}”(hŒi3c_device_get_info”h]”hŒi3c_device_get_info”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj÷ubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hjÖh²hh³jèh´KZubj)�”}”(hŒ<(const struct i3c_device *dev, struct i3c_device_info *info)”h]”(j")�”}”(hŒconst struct i3c_device *dev”h]”(j)�”}”(hŒconst”h]”hŒconst”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjubj)�”}”(hjºh]”hŒstruct”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjubh)�”}”(hhh]”j*)�”}”(hŒ i3c_device”h]”hŒ i3c_device”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjNubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”jSŒmodname”NŒ classname”Njßjâ)�”}”jå]”jc)�”}”j[jýsbŒc.i3c_device_get_info”†”asbuh1hhjubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjubjw)�”}”(hjzh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhjubj*)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hjubj")�”}”(hŒstruct i3c_device_info *info”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhj¡ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¡ubh)�”}”(hhh]”j*)�”}”(hŒi3c_device_info”h]”hŒi3c_device_info”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjÀubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”jÅŒmodname”NŒ classname”Njßjâ)�”}”jå]”jmŒc.i3c_device_get_info”†”asbuh1hhj¡ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¡ubjw)�”}”(hjzh]”hŒ*”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhj¡ubj*)�”}”(hŒinfo”h]”hŒinfo”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj¡ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hjubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jhjÖh²hh³jèh´KZubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhjÒh²hh³jèh´KZubah}”(h]”jÍah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³jèh´KZhjÏh²hubjV)�”}”(hhh]”j[)�”}”(hŒget I3C device information”h]”hŒget I3C device information”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´KZhj#h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhjÏh²hh³jèh´KZubeh}”(h]”h ]”(jtŒfunction”eh"]”h$]”h&]”jyjtjzj>j{j>j|‰j}‰j~‰uh1hïh²hhhÊh³Nh´Nubj€)�”}”(hŒ¿**Parameters** ``const struct i3c_device *dev`` device we want information on ``struct i3c_device_info *info`` the information object to fill in **Description** Retrieve I3C dev info.”h]”(j[)�”}”(hŒ**Parameters**”h]”jŠ)�”}”(hjHh]”hŒ Parameters”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjFubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K^hjBubj )�”}”(hhh]”(j¥)�”}”(hŒ?``const struct i3c_device *dev`` device we want information on ”h]”(j«)�”}”(hŒ ``const struct i3c_device *dev``”h]”j±)�”}”(hjgh]”hŒconst struct i3c_device *dev”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjeubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K\hjaubjÇ)�”}”(hhh]”j[)�”}”(hŒdevice we want information on”h]”hŒdevice we want information on”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³j|h´K\hj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjaubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j|h´K\hj^ubj¥)�”}”(hŒC``struct i3c_device_info *info`` the information object to fill in ”h]”(j«)�”}”(hŒ ``struct i3c_device_info *info``”h]”j±)�”}”(hj h]”hŒstruct i3c_device_info *info”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjžubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K]hjšubjÇ)�”}”(hhh]”j[)�”}”(hŒ!the information object to fill in”h]”hŒ!the information object to fill in”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jµ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ŸhjBubj[)�”}”(hŒ**Description**”h]”jŠ)�”}”(hjÛh]”hŒ Description”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K_hjBubj[)�”}”(hŒRetrieve I3C dev info.”h]”hŒRetrieve I3C dev info.”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K^hjBubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³Nh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒ#i3c_device_disable_ibi (C function)”Œc.i3c_device_disable_ibi”hNt”auh1hÝhhÊh²hh³Nh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒ3int i3c_device_disable_ibi (struct i3c_device *dev)”h]”hû)�”}”(hŒ2int i3c_device_disable_ibi(struct i3c_device *dev)”h]”(jä)�”}”(hŒint”h]”hŒint”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jðah"]”h$]”h&]”uh1jãhjh²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Knubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjh²hh³j.h´Knubj$)�”}”(hŒi3c_device_disable_ibi”h]”j*)�”}”(hŒi3c_device_disable_ibi”h]”hŒi3c_device_disable_ibi”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj=ubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hjh²hh³j.h´Knubj)�”}”(hŒ(struct i3c_device *dev)”h]”j")�”}”(hŒstruct i3c_device *dev”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjYubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjYubh)�”}”(hhh]”j*)�”}”(hŒ i3c_device”h]”hŒ i3c_device”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjxubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”j}Œmodname”NŒ classname”Njßjâ)�”}”jå]”jc)�”}”j[jCsbŒc.i3c_device_disable_ibi”†”asbuh1hhjYubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjYubjw)�”}”(hjzh]”hŒ*”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhjYubj*)�”}”(hŒdev”h]”hŒdev”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjYubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hjUubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jhjh²hh³j.h´Knubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhjh²hh³j.h´Knubah}”(h]”jah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³j.h´Knhjh²hubjV)�”}”(hhh]”j[)�”}”(hŒ*Disable IBIs coming from a specific device”h]”hŒ*Disable IBIs coming from a specific device”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´KnhjÝh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhjh²hh³j.h´Knubeh}”(h]”h ]”(jtŒfunction”eh"]”h$]”h&]”jyjtjzjøj{jøj|‰j}‰j~‰uh1hïh²hhhÊh³Nh´Nubj€)�”}”(hX**Parameters** ``struct i3c_device *dev`` device on which IBIs should be disabled **Description** This function disable IBIs coming from a specific device and wait for all pending IBIs to be processed. **Return** 0 in case of success, a negative error core otherwise.”h]”(j[)�”}”(hŒ**Parameters**”h]”jŠ)�”}”(hj h]”hŒ Parameters”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Krhjüubj )�”}”(hhh]”j¥)�”}”(hŒC``struct i3c_device *dev`` device on which IBIs should be disabled ”h]”(j«)�”}”(hŒ``struct i3c_device *dev``”h]”j±)�”}”(hj! h]”hŒstruct i3c_device *dev”…”�”}”(hj# h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Kohj ubjÇ)�”}”(hhh]”j[)�”}”(hŒ'device on which IBIs should be disabled”h]”hŒ'device on which IBIs should be disabled”…”�”}”(hj: h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³j6 h´Kohj7 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j6 h´Kohj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjüubj[)�”}”(hŒ**Description**”h]”jŠ)�”}”(hj\ h]”hŒ Description”…”�”}”(hj^ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjZ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Kqhjüubj[)�”}”(hŒgThis function disable IBIs coming from a specific device and wait for all pending IBIs to be processed.”h]”hŒgThis function disable IBIs coming from a specific device and wait for all pending IBIs to be processed.”…”�”}”(hjr h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Kphjüubj[)�”}”(hŒ **Return**”h]”jŠ)�”}”(hjƒ h]”hŒReturn”…”�”}”(hj… h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Kshjüubj[)�”}”(hŒ60 in case of success, a negative error core otherwise.”h]”hŒ60 in case of success, a negative error core otherwise.”…”�”}”(hj™ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Kthjüubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³Nh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒ"i3c_device_enable_ibi (C function)”Œc.i3c_device_enable_ibi”hNt”auh1hÝhhÊh²hh³Nh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒ2int i3c_device_enable_ibi (struct i3c_device *dev)”h]”hû)�”}”(hŒ1int i3c_device_enable_ibi(struct i3c_device *dev)”h]”(jä)�”}”(hŒint”h]”hŒint”…”�”}”(hjÈ h²hh³Nh´Nubah}”(h]”h ]”jðah"]”h$]”h&]”uh1jãhjÄ h²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K’ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj× h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÄ h²hh³jÖ h´K’ubj$)�”}”(hŒi3c_device_enable_ibi”h]”j*)�”}”(hŒi3c_device_enable_ibi”h]”hŒi3c_device_enable_ibi”…”�”}”(hjé h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjå ubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hjÄ h²hh³jÖ h´K’ubj)�”}”(hŒ(struct i3c_device *dev)”h]”j")�”}”(hŒstruct i3c_device *dev”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhj!ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj!ubh)�”}”(hhh]”j*)�”}”(hŒ i3c_device”h]”hŒ i3c_device”…”�”}”(hj#!h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj !ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”j%!Œmodname”NŒ classname”Njßjâ)�”}”jå]”jc)�”}”j[jë sbŒc.i3c_device_enable_ibi”†”asbuh1hhj!ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjC!h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj!ubjw)�”}”(hjzh]”hŒ*”…”�”}”(hjQ!h²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhj!ubj*)�”}”(hŒdev”h]”hŒdev”…”�”}”(hj^!h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj!ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hjý ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jhjÄ h²hh³jÖ h´K’ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhjÀ h²hh³jÖ h´K’ubah}”(h]”j» ah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³jÖ h´K’hj½ h²hubjV)�”}”(hhh]”j[)�”}”(hŒ)Enable IBIs coming from a specific device”h]”hŒ)Enable IBIs coming from a specific device”…”�”}”(hjˆ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K’hj…!h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhj½ h²hh³jÖ h´K’ubeh}”(h]”h ]”(jtŒfunction”eh"]”h$]”h&]”jyjtjzj !j{j !j|‰j}‰j~‰uh1hïh²hhhÊh³Nh´Nubj€)�”}”(hX¿**Parameters** ``struct i3c_device *dev`` device on which IBIs should be enabled **Description** This function enable IBIs coming from a specific device and wait for all pending IBIs to be processed. This should be called on a device where i3c_device_request_ibi() has succeeded. Note that IBIs from this device might be received before this function returns to its caller. **Return** 0 in case of success, a negative error core otherwise.”h]”(j[)�”}”(hŒ**Parameters**”h]”jŠ)�”}”(hjª!h]”hŒ Parameters”…”�”}”(hj¬!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj¨!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K–hj¤!ubj )�”}”(hhh]”j¥)�”}”(hŒB``struct i3c_device *dev`` device on which IBIs should be enabled ”h]”(j«)�”}”(hŒ``struct i3c_device *dev``”h]”j±)�”}”(hjÉ!h]”hŒstruct i3c_device *dev”…”�”}”(hjË!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjÇ!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K“hjÃ!ubjÇ)�”}”(hhh]”j[)�”}”(hŒ&device on which IBIs should be enabled”h]”hŒ&device on which IBIs should be enabled”…”�”}”(hjâ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³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Ÿhj¤!ubj[)�”}”(hŒ**Description**”h]”jŠ)�”}”(hj"h]”hŒ Description”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K•hj¤!ubj[)�”}”(hŒ¶This function enable IBIs coming from a specific device and wait for all pending IBIs to be processed. This should be called on a device where i3c_device_request_ibi() has succeeded.”h]”hŒ¶This function enable IBIs coming from a specific device and wait for all pending IBIs to be processed. This should be called on a device where i3c_device_request_ibi() has succeeded.”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K”hj¤!ubj[)�”}”(hŒ]Note that IBIs from this device might be received before this function returns to its caller.”h]”hŒ]Note that IBIs from this device might be received before this function returns to its caller.”…”�”}”(hj)"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K˜hj¤!ubj[)�”}”(hŒ **Return**”h]”jŠ)�”}”(hj:"h]”hŒReturn”…”�”}”(hj<"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj8"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K›hj¤!ubj[)�”}”(hŒ60 in case of success, a negative error core otherwise.”h]”hŒ60 in case of success, a negative error core otherwise.”…”�”}”(hjP"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Kœhj¤!ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³Nh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒ#i3c_device_request_ibi (C function)”Œc.i3c_device_request_ibi”hNt”auh1hÝhhÊh²hh³Nh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒTint i3c_device_request_ibi (struct i3c_device *dev, const struct i3c_ibi_setup *req)”h]”hû)�”}”(hŒSint i3c_device_request_ibi(struct i3c_device *dev, const struct i3c_ibi_setup *req)”h]”(jä)�”}”(hŒint”h]”hŒint”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jðah"]”h$]”h&]”uh1jãhj{"h²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K¸ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽ"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj{"h²hh³j�"h´K¸ubj$)�”}”(hŒi3c_device_request_ibi”h]”j*)�”}”(hŒi3c_device_request_ibi”h]”hŒi3c_device_request_ibi”…”�”}”(hj "h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjœ"ubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hj{"h²hh³j�"h´K¸ubj)�”}”(hŒ9(struct i3c_device *dev, const struct i3c_ibi_setup *req)”h]”(j")�”}”(hŒstruct i3c_device *dev”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hj¼"h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhj¸"ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉ"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¸"ubh)�”}”(hhh]”j*)�”}”(hŒ i3c_device”h]”hŒ i3c_device”…”�”}”(hjÚ"h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj×"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”jÜ"Œmodname”NŒ classname”Njßjâ)�”}”jå]”jc)�”}”j[j¢"sbŒc.i3c_device_request_ibi”†”asbuh1hhj¸"ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjú"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¸"ubjw)�”}”(hjzh]”hŒ*”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhj¸"ubj*)�”}”(hŒdev”h]”hŒdev”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj¸"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hj´"ubj")�”}”(hŒconst struct i3c_ibi_setup *req”h]”(j)�”}”(hjh]”hŒconst”…”�”}”(hj.#h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhj*#ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;#h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj*#ubj)�”}”(hjºh]”hŒstruct”…”�”}”(hjI#h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhj*#ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjV#h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj*#ubh)�”}”(hhh]”j*)�”}”(hŒ i3c_ibi_setup”h]”hŒ i3c_ibi_setup”…”�”}”(hjg#h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjd#ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”ji#Œmodname”NŒ classname”Njßjâ)�”}”jå]”jö"Œc.i3c_device_request_ibi”†”asbuh1hhj*#ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…#h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj*#ubjw)�”}”(hjzh]”hŒ*”…”�”}”(hj“#h²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhj*#ubj*)�”}”(hŒreq”h]”hŒreq”…”�”}”(hj #h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj*#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hj´"ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jhj{"h²hh³j�"h´K¸ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhjw"h²hh³j�"h´K¸ubah}”(h]”jr"ah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³j�"h´K¸hjt"h²hubjV)�”}”(hhh]”j[)�”}”(hŒRequest an IBI”h]”hŒRequest an IBI”…”�”}”(hjÊ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K¸hjÇ#h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhjt"h²hh³j�"h´K¸ubeh}”(h]”h ]”(jtŒfunction”eh"]”h$]”h&]”jyjtjzjâ#j{jâ#j|‰j}‰j~‰uh1hïh²hhhÊh³Nh´Nubj€)�”}”(hX³**Parameters** ``struct i3c_device *dev`` device for which we should enable IBIs ``const struct i3c_ibi_setup *req`` setup requested for this IBI **Description** This function is responsible for pre-allocating all resources needed to process IBIs coming from **dev**. When this function returns, the IBI is not enabled until i3c_device_enable_ibi() is called. **Return** 0 in case of success, a negative error core otherwise.”h]”(j[)�”}”(hŒ**Parameters**”h]”jŠ)�”}”(hjì#h]”hŒ Parameters”…”�”}”(hjî#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjê#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K¼hjæ#ubj )�”}”(hhh]”(j¥)�”}”(hŒB``struct i3c_device *dev`` device for which we should enable IBIs ”h]”(j«)�”}”(hŒ``struct i3c_device *dev``”h]”j±)�”}”(hj $h]”hŒstruct i3c_device *dev”…”�”}”(hj $h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj $ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K¹hj$ubjÇ)�”}”(hhh]”j[)�”}”(hŒ&device for which we should enable IBIs”h]”hŒ&device for which we should enable IBIs”…”�”}”(hj$$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³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ŒA``const struct i3c_ibi_setup *req`` setup requested for this IBI ”h]”(j«)�”}”(hŒ#``const struct i3c_ibi_setup *req``”h]”j±)�”}”(hjD$h]”hŒconst struct i3c_ibi_setup *req”…”�”}”(hjF$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjB$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Kºhj>$ubjÇ)�”}”(hhh]”j[)�”}”(hŒsetup requested for this IBI”h]”hŒsetup requested for this IBI”…”�”}”(hj]$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jY$h´KºhjZ$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj>$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jY$h´Kºhj$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjæ#ubj[)�”}”(hŒ**Description**”h]”jŠ)�”}”(hj$h]”hŒ Description”…”�”}”(hj�$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj}$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K¼hjæ#ubj[)�”}”(hŒÅThis function is responsible for pre-allocating all resources needed to process IBIs coming from **dev**. When this function returns, the IBI is not enabled until i3c_device_enable_ibi() is called.”h]”(hŒaThis function is responsible for pre-allocating all resources needed to process IBIs coming from ”…”�”}”(hj•$h²hh³Nh´NubjŠ)�”}”(hŒ**dev**”h]”hŒdev”…”�”}”(hj�$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj•$ubhŒ]. When this function returns, the IBI is not enabled until i3c_device_enable_ibi() is called.”…”�”}”(hj•$h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K»hjæ#ubj[)�”}”(hŒ **Return**”h]”jŠ)�”}”(hj¸$h]”hŒReturn”…”�”}”(hjº$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj¶$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´K¿hjæ#ubj[)�”}”(hŒ60 in case of success, a negative error core otherwise.”h]”hŒ60 in case of success, a negative error core otherwise.”…”�”}”(hjÎ$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´KÀhjæ#ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³Nh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒ i3c_device_free_ibi (C function)”Œc.i3c_device_free_ibi”hNt”auh1hÝhhÊh²hh³Nh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒ1void i3c_device_free_ibi (struct i3c_device *dev)”h]”hû)�”}”(hŒ0void i3c_device_free_ibi(struct i3c_device *dev)”h]”(jä)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjý$h²hh³Nh´Nubah}”(h]”h ]”jðah"]”h$]”h&]”uh1jãhjù$h²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Káubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj %h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjù$h²hh³j %h´Káubj$)�”}”(hŒi3c_device_free_ibi”h]”j*)�”}”(hŒi3c_device_free_ibi”h]”hŒi3c_device_free_ibi”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj%ubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hjù$h²hh³j %h´Káubj)�”}”(hŒ(struct i3c_device *dev)”h]”j")�”}”(hŒstruct i3c_device *dev”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hj:%h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhj6%ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjG%h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj6%ubh)�”}”(hhh]”j*)�”}”(hŒ i3c_device”h]”hŒ i3c_device”…”�”}”(hjX%h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjU%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”jZ%Œmodname”NŒ classname”Njßjâ)�”}”jå]”jc)�”}”j[j %sbŒc.i3c_device_free_ibi”†”asbuh1hhj6%ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjx%h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj6%ubjw)�”}”(hjzh]”hŒ*”…”�”}”(hj†%h²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhj6%ubj*)�”}”(hŒdev”h]”hŒdev”…”�”}”(hj“%h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj6%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hj2%ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jhjù$h²hh³j %h´Káubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhjõ$h²hh³j %h´Káubah}”(h]”jð$ah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³j %h´Káhjò$h²hubjV)�”}”(hhh]”j[)�”}”(hŒ*Free all resources needed for IBI handling”h]”hŒ*Free all resources needed for IBI handling”…”�”}”(hj½%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Káhjº%h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhjò$h²hh³j %h´Káubeh}”(h]”h ]”(jtŒfunction”eh"]”h$]”h&]”jyjtjzjÕ%j{jÕ%j|‰j}‰j~‰uh1hïh²hhhÊh³Nh´Nubj€)�”}”(hX#**Parameters** ``struct i3c_device *dev`` device on which you want to release IBI resources **Description** This function is responsible for de-allocating resources previously allocated by i3c_device_request_ibi(). It should be called after disabling IBIs with i3c_device_disable_ibi().”h]”(j[)�”}”(hŒ**Parameters**”h]”jŠ)�”}”(hjß%h]”hŒ Parameters”…”�”}”(hjá%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjÝ%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´KåhjÙ%ubj )�”}”(hhh]”j¥)�”}”(hŒM``struct i3c_device *dev`` device on which you want to release IBI resources ”h]”(j«)�”}”(hŒ``struct i3c_device *dev``”h]”j±)�”}”(hjþ%h]”hŒstruct i3c_device *dev”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjü%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Kâhjø%ubjÇ)�”}”(hhh]”j[)�”}”(hŒ1device on which you want to release IBI resources”h]”hŒ1device on which you want to release IBI resources”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³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ŸhjÙ%ubj[)�”}”(hŒ**Description**”h]”jŠ)�”}”(hj9&h]”hŒ Description”…”�”}”(hj;&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj7&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´KähjÙ%ubj[)�”}”(hŒ²This function is responsible for de-allocating resources previously allocated by i3c_device_request_ibi(). It should be called after disabling IBIs with i3c_device_disable_ibi().”h]”hŒ²This function is responsible for de-allocating resources previously allocated by i3c_device_request_ibi(). It should be called after disabling IBIs with i3c_device_disable_ibi().”…”�”}”(hjO&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´KãhjÙ%ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³Nh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒi3cdev_to_dev (C function)”Œc.i3cdev_to_dev”hNt”auh1hÝhhÊh²hh³Nh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒ9struct device * i3cdev_to_dev (struct i3c_device *i3cdev)”h]”hû)�”}”(hŒ7struct device *i3cdev_to_dev(struct i3c_device *i3cdev)”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hj~&h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjz&h²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Kõubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒ&h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjz&h²hh³j‹&h´Kõubh)�”}”(hhh]”j*)�”}”(hŒdevice”h]”hŒdevice”…”�”}”(hj�&h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjš&ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”jŸ&Œmodname”NŒ classname”Njßjâ)�”}”jå]”jc)�”}”j[Œ i3cdev_to_dev”sbŒc.i3cdev_to_dev”†”asbuh1hhjz&h²hh³j‹&h´Kõubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¾&h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjz&h²hh³j‹&h´Kõubjw)�”}”(hjzh]”hŒ*”…”�”}”(hjÌ&h²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhjz&h²hh³j‹&h´Kõubj$)�”}”(hŒ i3cdev_to_dev”h]”j*)�”}”(hj»&h]”hŒ i3cdev_to_dev”…”�”}”(hjÝ&h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjÙ&ubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hjz&h²hh³j‹&h´Kõubj)�”}”(hŒ(struct i3c_device *i3cdev)”h]”j")�”}”(hŒstruct i3c_device *i3cdev”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hjø&h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjô&ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjô&ubh)�”}”(hhh]”j*)�”}”(hŒ i3c_device”h]”hŒ i3c_device”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj'ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”j'Œmodname”NŒ classname”Njßjâ)�”}”jå]”j¹&Œc.i3cdev_to_dev”†”asbuh1hhjô&ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj4'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjô&ubjw)�”}”(hjzh]”hŒ*”…”�”}”(hjB'h²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhjô&ubj*)�”}”(hŒi3cdev”h]”hŒi3cdev”…”�”}”(hjO'h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjô&ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hjð&ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jhjz&h²hh³j‹&h´Kõubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhjv&h²hh³j‹&h´Kõubah}”(h]”jq&ah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³j‹&h´Kõhjs&h²hubjV)�”}”(hhh]”j[)�”}”(hŒ)Returns the device embedded in **i3cdev**”h]”(hŒReturns the device embedded in ”…”�”}”(hjy'h²hh³Nh´NubjŠ)�”}”(hŒ **i3cdev**”h]”hŒi3cdev”…”�”}”(hj�'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjy'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Kõhjv'h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhjs&h²hh³j‹&h´Kõubeh}”(h]”h ]”(jtŒfunction”eh"]”h$]”h&]”jyjtjzjŸ'j{jŸ'j|‰j}‰j~‰uh1hïh²hhhÊh³Nh´Nubj€)�”}”(hŒe**Parameters** ``struct i3c_device *i3cdev`` I3C device **Return** a pointer to a device object.”h]”(j[)�”}”(hŒ**Parameters**”h]”jŠ)�”}”(hj©'h]”hŒ Parameters”…”�”}”(hj«'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj§'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Kùhj£'ubj )�”}”(hhh]”j¥)�”}”(hŒ)``struct i3c_device *i3cdev`` I3C device ”h]”(j«)�”}”(hŒ``struct i3c_device *i3cdev``”h]”j±)�”}”(hjÈ'h]”hŒstruct i3c_device *i3cdev”…”�”}”(hjÊ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjÆ'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´KöhjÂ'ubjÇ)�”}”(hhh]”j[)�”}”(hŒ I3C device”h]”hŒ I3C device”…”�”}”(hjá'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³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Ÿhj£'ubj[)�”}”(hŒ **Return**”h]”jŠ)�”}”(hj(h]”hŒReturn”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Køhj£'ubj[)�”}”(hŒa pointer to a device object.”h]”hŒa pointer to a device object.”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Køhj£'ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³Nh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒ i3c_device_match_id (C function)”Œc.i3c_device_match_id”hNt”auh1hÝhhÊh²hh³Nh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒrconst struct i3c_device_id * i3c_device_match_id (struct i3c_device *i3cdev, const struct i3c_device_id *id_table)”•1dh]”hû)�”}”(hŒpconst struct i3c_device_id *i3c_device_match_id(struct i3c_device *i3cdev, const struct i3c_device_id *id_table)”h]”(j)�”}”(hjh]”hŒconst”…”�”}”(hjH(h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjD(h²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Mubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjV(h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjD(h²hh³jU(h´Mubj)�”}”(hjºh]”hŒstruct”…”�”}”(hjd(h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjD(h²hh³jU(h´Mubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjq(h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjD(h²hh³jU(h´Mubh)�”}”(hhh]”j*)�”}”(hŒ i3c_device_id”h]”hŒ i3c_device_id”…”�”}”(hj‚(h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”j„(Œmodname”NŒ classname”Njßjâ)�”}”jå]”jc)�”}”j[Œi3c_device_match_id”sbŒc.i3c_device_match_id”†”asbuh1hhjD(h²hh³jU(h´Mubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£(h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjD(h²hh³jU(h´Mubjw)�”}”(hjzh]”hŒ*”…”�”}”(hj±(h²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhjD(h²hh³jU(h´Mubj$)�”}”(hŒi3c_device_match_id”h]”j*)�”}”(hj (h]”hŒi3c_device_match_id”…”�”}”(hjÂ(h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj¾(ubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hjD(h²hh³jU(h´Mubj)�”}”(hŒA(struct i3c_device *i3cdev, const struct i3c_device_id *id_table)”h]”(j")�”}”(hŒstruct i3c_device *i3cdev”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hjÝ(h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjÙ(ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjê(h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÙ(ubh)�”}”(hhh]”j*)�”}”(hŒ i3c_device”h]”hŒ i3c_device”…”�”}”(hjû(h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjø(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”jý(Œmodname”NŒ classname”Njßjâ)�”}”jå]”jž(Œc.i3c_device_match_id”†”asbuh1hhjÙ(ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÙ(ubjw)�”}”(hjzh]”hŒ*”…”�”}”(hj')h²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhjÙ(ubj*)�”}”(hŒi3cdev”h]”hŒi3cdev”…”�”}”(hj4)h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjÙ(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hjÕ(ubj")�”}”(hŒ$const struct i3c_device_id *id_table”h]”(j)�”}”(hjh]”hŒconst”…”�”}”(hjM)h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjI)ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjZ)h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjI)ubj)�”}”(hjºh]”hŒstruct”…”�”}”(hjh)h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhjI)ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hju)h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjI)ubh)�”}”(hhh]”j*)�”}”(hŒ i3c_device_id”h]”hŒ i3c_device_id”…”�”}”(hj†)h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjƒ)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”jˆ)Œmodname”NŒ classname”Njßjâ)�”}”jå]”jž(Œc.i3c_device_match_id”†”asbuh1hhjI)ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤)h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjI)ubjw)�”}”(hjzh]”hŒ*”…”�”}”(hj²)h²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhjI)ubj*)�”}”(hŒid_table”h]”hŒid_table”…”�”}”(hj¿)h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjI)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hjÕ(ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jhjD(h²hh³jU(h´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhj@(h²hh³jU(h´Mubah}”(h]”j;(ah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³jU(h´Mhj=(h²hubjV)�”}”(hhh]”j[)�”}”(hŒ3Returns the i3c_device_id entry matching **i3cdev**”h]”(hŒ)Returns the i3c_device_id entry matching ”…”�”}”(hjé)h²hh³Nh´NubjŠ)�”}”(hŒ **i3cdev**”h]”hŒi3cdev”…”�”}”(hjñ)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjé)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Mhjæ)h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhj=(h²hh³jU(h´Mubeh}”(h]”h ]”(jtŒfunction”eh"]”h$]”h&]”jyjtjzj*j{j*j|‰j}‰j~‰uh1hïh²hhhÊh³Nh´Nubj€)�”}”(hŒÌ**Parameters** ``struct i3c_device *i3cdev`` I3C device ``const struct i3c_device_id *id_table`` I3C device match table **Return** a pointer to an i3c_device_id object or NULL if there's no match.”h]”(j[)�”}”(hŒ**Parameters**”h]”jŠ)�”}”(hj*h]”hŒ Parameters”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Mhj*ubj )�”}”(hhh]”(j¥)�”}”(hŒ)``struct i3c_device *i3cdev`` I3C device ”h]”(j«)�”}”(hŒ``struct i3c_device *i3cdev``”h]”j±)�”}”(hj8*h]”hŒstruct i3c_device *i3cdev”…”�”}”(hj:*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj6*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Mhj2*ubjÇ)�”}”(hhh]”j[)�”}”(hŒ I3C device”h]”hŒ I3C device”…”�”}”(hjQ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jM*h´MhjN*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj2*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jM*h´Mhj/*ubj¥)�”}”(hŒ@``const struct i3c_device_id *id_table`` I3C device match table ”h]”(j«)�”}”(hŒ(``const struct i3c_device_id *id_table``”h]”j±)�”}”(hjq*h]”hŒ$const struct i3c_device_id *id_table”…”�”}”(hjs*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjo*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Mhjk*ubjÇ)�”}”(hhh]”j[)�”}”(hŒI3C device match table”h]”hŒI3C device match table”…”�”}”(hjŠ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³j†*h´Mhj‡*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjk*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j†*h´Mhj/*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŸhj*ubj[)�”}”(hŒ **Return**”h]”jŠ)�”}”(hj¬*h]”hŒReturn”…”�”}”(hj®*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjª*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Mhj*ubj[)�”}”(hŒAa pointer to an i3c_device_id object or NULL if there's no match.”h]”hŒCa pointer to an i3c_device_id object or NULL if there’s no match.”…”�”}”(hjÂ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´Mhj*ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³Nh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒ/i3c_device_get_supported_xfer_mode (C function)”Œ$c.i3c_device_get_supported_xfer_mode”hNt”auh1hÝhhÊh²hh³Nh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒ?u32 i3c_device_get_supported_xfer_mode (struct i3c_device *dev)”h]”hû)�”}”(hŒ>u32 i3c_device_get_supported_xfer_mode(struct i3c_device *dev)”h]”(h)�”}”(hhh]”j*)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjô*h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjñ*ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”jö*Œmodname”NŒ classname”Njßjâ)�”}”jå]”jc)�”}”j[Œ"i3c_device_get_supported_xfer_mode”sbŒ$c.i3c_device_get_supported_xfer_mode”†”asbuh1hhjí*h²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´M0ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjí*h²hh³j+h´M0ubj$)�”}”(hŒ"i3c_device_get_supported_xfer_mode”h]”j*)�”}”(hj+h]”hŒ"i3c_device_get_supported_xfer_mode”…”�”}”(hj(+h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj$+ubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hjí*h²hh³j+h´M0ubj)�”}”(hŒ(struct i3c_device *dev)”h]”j")�”}”(hŒstruct i3c_device *dev”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hjC+h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhj?+ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjP+h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj?+ubh)�”}”(hhh]”j*)�”}”(hŒ i3c_device”h]”hŒ i3c_device”…”�”}”(hja+h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj^+ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”jc+Œmodname”NŒ classname”Njßjâ)�”}”jå]”j+Œ$c.i3c_device_get_supported_xfer_mode”†”asbuh1hhj?+ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj?+ubjw)�”}”(hjzh]”hŒ*”…”�”}”(hj�+h²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhj?+ubj*)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjš+h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj?+ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hj;+ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jhjí*h²hh³j+h´M0ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhjé*h²hh³j+h´M0ubah}”(h]”jä*ah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³j+h´M0hjæ*h²hubjV)�”}”(hhh]”j[)�”}”(hŒCReturns the supported transfer mode by connected master controller.”h]”hŒCReturns the supported transfer mode by connected master controller.”…”�”}”(hjÄ+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´M0hjÁ+h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhjæ*h²hh³j+h´M0ubeh}”(h]”h ]”(jtŒfunction”eh"]”h$]”h&]”jyjtjzjÜ+j{jÜ+j|‰j}‰j~‰uh1hïh²hhhÊh³Nh´Nubj€)�”}”(hŒœ**Parameters** ``struct i3c_device *dev`` I3C device **Return** a bit mask, which supported transfer mode, bit position is defined at enum i3c_hdr_mode”h]”(j[)�”}”(hŒ**Parameters**”h]”jŠ)�”}”(hjæ+h]”hŒ Parameters”…”�”}”(hjè+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjä+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´M4hjà+ubj )�”}”(hhh]”j¥)�”}”(hŒ&``struct i3c_device *dev`` I3C device ”h]”(j«)�”}”(hŒ``struct i3c_device *dev``”h]”j±)�”}”(hj,h]”hŒstruct i3c_device *dev”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´M2hjÿ+ubjÇ)�”}”(hhh]”j[)�”}”(hŒ I3C device”h]”hŒ I3C device”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³j,h´M2hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÿ+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j,h´M2hjü+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjà+ubj[)�”}”(hŒ **Return**”h]”jŠ)�”}”(hj@,h]”hŒReturn”…”�”}”(hjB,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj>,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´M4hjà+ubj[)�”}”(hŒWa bit mask, which supported transfer mode, bit position is defined at enum i3c_hdr_mode”h]”hŒWa bit mask, which supported transfer mode, bit position is defined at enum i3c_hdr_mode”…”�”}”(hjV,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´M4hjà+ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³Nh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒ+i3c_driver_register_with_owner (C function)”Œ c.i3c_driver_register_with_owner”hNt”auh1hÝhhÊh²hh³Nh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒQint i3c_driver_register_with_owner (struct i3c_driver *drv, struct module *owner)”h]”hû)�”}”(hŒPint i3c_driver_register_with_owner(struct i3c_driver *drv, struct module *owner)”h]”(jä)�”}”(hŒint”h]”hŒint”…”�”}”(hj…,h²hh³Nh´Nubah}”(h]”h ]”jðah"]”h$]”h&]”uh1jãhj�,h²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´M>ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj”,h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj�,h²hh³j“,h´M>ubj$)�”}”(hŒi3c_driver_register_with_owner”h]”j*)�”}”(hŒi3c_driver_register_with_owner”h]”hŒi3c_driver_register_with_owner”…”�”}”(hj¦,h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj¢,ubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hj�,h²hh³j“,h´M>ubj)�”}”(hŒ.(struct i3c_driver *drv, struct module *owner)”h]”(j")�”}”(hŒstruct i3c_driver *drv”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hjÂ,h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhj¾,ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏ,h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¾,ubh)�”}”(hhh]”j*)�”}”(hŒ i3c_driver”h]”hŒ i3c_driver”…”�”}”(hjà,h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjÝ,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”jâ,Œmodname”NŒ classname”Njßjâ)�”}”jå]”jc)�”}”j[j¨,sbŒ c.i3c_driver_register_with_owner”†”asbuh1hhj¾,ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¾,ubjw)�”}”(hjzh]”hŒ*”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhj¾,ubj*)�”}”(hŒdrv”h]”hŒdrv”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”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”…”�”}”(hj4-h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhj0-ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjA-h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj0-ubh)�”}”(hhh]”j*)�”}”(hŒmodule”h]”hŒmodule”…”�”}”(hjR-h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hjO-ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”jT-Œmodname”NŒ classname”Njßjâ)�”}”jå]”jü,Œ c.i3c_driver_register_with_owner”†”asbuh1hhj0-ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjp-h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj0-ubjw)�”}”(hjzh]”hŒ*”…”�”}”(hj~-h²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhj0-ubj*)�”}”(hŒowner”h]”hŒowner”…”�”}”(hj‹-h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj0-ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hjº,ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jhj�,h²hh³j“,h´M>ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhj},h²hh³j“,h´M>ubah}”(h]”jx,ah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³j“,h´M>hjz,h²hubjV)�”}”(hhh]”j[)�”}”(hŒregister an I3C device driver”h]”hŒregister an I3C device driver”…”�”}”(hjµ-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´M>hj²-h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhjz,h²hh³j“,h´M>ubeh}”(h]”h ]”(jtŒfunction”eh"]”h$]”h&]”jyjtjzjÍ-j{jÍ-j|‰j}‰j~‰uh1hïh²hhhÊh³Nh´Nubj€)�”}”(hŒì**Parameters** ``struct i3c_driver *drv`` driver to register ``struct module *owner`` module that owns this driver **Description** Register **drv** to the core. **Return** 0 in case of success, a negative error core otherwise.”h]”(j[)�”}”(hŒ**Parameters**”h]”jŠ)�”}”(hj×-h]”hŒ Parameters”…”�”}”(hjÙ-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjÕ-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´MBhjÑ-ubj )�”}”(hhh]”(j¥)�”}”(hŒ.``struct i3c_driver *drv`` driver to register ”h]”(j«)�”}”(hŒ``struct i3c_driver *drv``”h]”j±)�”}”(hjö-h]”hŒstruct i3c_driver *drv”…”�”}”(hjø-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjô-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´M@hjð-ubjÇ)�”}”(hhh]”j[)�”}”(hŒdriver to register”h]”hŒdriver to register”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³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Œ6``struct module *owner`` module that owns this driver ”h]”(j«)�”}”(hŒ``struct module *owner``”h]”j±)�”}”(hj/.h]”hŒstruct module *owner”…”�”}”(hj1.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hj-.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´MAhj).ubjÇ)�”}”(hhh]”j[)�”}”(hŒmodule that owns this driver”h]”hŒmodule that owns this driver”…”�”}”(hjH.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³jD.h´MAhjE.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj).ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³jD.h´MAhjí-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŸhjÑ-ubj[)�”}”(hŒ**Description**”h]”jŠ)�”}”(hjj.h]”hŒ Description”…”�”}”(hjl.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjh.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´MChjÑ-ubj[)�”}”(hŒRegister **drv** to the core.”h]”(hŒ Register ”…”�”}”(hj€.h²hh³Nh´NubjŠ)�”}”(hŒ**drv**”h]”hŒdrv”…”�”}”(hjˆ.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj€.ubhŒ to the core.”…”�”}”(hj€.h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´MBhjÑ-ubj[)�”}”(hŒ **Return**”h]”jŠ)�”}”(hj£.h]”hŒReturn”…”�”}”(hj¥.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj¡.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´MDhjÑ-ubj[)�”}”(hŒ60 in case of success, a negative error core otherwise.”h]”hŒ60 in case of success, a negative error core otherwise.”…”�”}”(hj¹.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´MEhjÑ-ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³Nh´NubhÞ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hêŒ"i3c_driver_unregister (C function)”Œc.i3c_driver_unregister”hNt”auh1hÝhhÊh²hh³Nh´Nubhð)�”}”(hhh]”(hõ)�”}”(hŒ3void i3c_driver_unregister (struct i3c_driver *drv)”h]”hû)�”}”(hŒ2void i3c_driver_unregister(struct i3c_driver *drv)”h]”(jä)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjè.h²hh³Nh´Nubah}”(h]”h ]”jðah"]”h$]”h&]”uh1jãhjä.h²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´MVubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj÷.h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjä.h²hh³jö.h´MVubj$)�”}”(hŒi3c_driver_unregister”h]”j*)�”}”(hŒi3c_driver_unregister”h]”hŒi3c_driver_unregister”…”�”}”(hj /h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj/ubah}”(h]”h ]”(j<j=eh"]”h$]”h&]”hÅhÆuh1j#hjä.h²hh³jö.h´MVubj)�”}”(hŒ(struct i3c_driver *drv)”h]”j")�”}”(hŒstruct i3c_driver *drv”h]”(j)�”}”(hjºh]”hŒstruct”…”�”}”(hj%/h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1jhj!/ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2/h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj!/ubh)�”}”(hhh]”j*)�”}”(hŒ i3c_driver”h]”hŒ i3c_driver”…”�”}”(hjC/h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj@/ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jtŒreftype”j[Œ reftarget”jE/Œmodname”NŒ classname”Njßjâ)�”}”jå]”jc)�”}”j[j /sbŒc.i3c_driver_unregister”†”asbuh1hhj!/ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjc/h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj!/ubjw)�”}”(hjzh]”hŒ*”…”�”}”(hjq/h²hh³Nh´Nubah}”(h]”h ]”jƒah"]”h$]”h&]”uh1jvhj!/ubj*)�”}”(hŒdrv”h]”hŒdrv”…”�”}”(hj~/h²hh³Nh´Nubah}”(h]”h ]”j5ah"]”h$]”h&]”uh1j)hj!/ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j!hj/ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jhjä.h²hh³jö.h´MVubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjGˆuh1hújHjIhjà.h²hh³jö.h´MVubah}”(h]”jÛ.ah ]”(jMjNeh"]”h$]”h&]”jRˆjS)jThuh1hôh³jö.h´MVhjÝ.h²hubjV)�”}”(hhh]”j[)�”}”(hŒunregister an I3C device driver”h]”hŒunregister an I3C device driver”…”�”}”(hj¨/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´MVhj¥/h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jUhjÝ.h²hh³jö.h´MVubeh}”(h]”h ]”(jtŒfunction”eh"]”h$]”h&]”jyjtjzjÀ/j{jÀ/j|‰j}‰j~‰uh1hïh²hhhÊh³Nh´Nubj€)�”}”(hŒg**Parameters** ``struct i3c_driver *drv`` driver to unregister **Description** Unregister **drv**.”h]”(j[)�”}”(hŒ**Parameters**”h]”jŠ)�”}”(hjÊ/h]”hŒ Parameters”…”�”}”(hjÌ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hjÈ/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´MZhjÄ/ubj )�”}”(hhh]”j¥)�”}”(hŒ0``struct i3c_driver *drv`` driver to unregister ”h]”(j«)�”}”(hŒ``struct i3c_driver *drv``”h]”j±)�”}”(hjé/h]”hŒstruct i3c_driver *drv”…”�”}”(hjë/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j°hjç/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jªh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´MXhjã/ubjÇ)�”}”(hhh]”j[)�”}”(hŒdriver to unregister”h]”hŒdriver to unregister”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³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]”jŠ)�”}”(hj$0h]”hŒ Description”…”�”}”(hj&0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj"0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´MZhjÄ/ubj[)�”}”(hŒUnregister **drv**.”h]”(hŒ Unregister ”…”�”}”(hj:0h²hh³Nh´NubjŠ)�”}”(hŒ**drv**”h]”hŒdrv”…”�”}”(hjB0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‰hj:0ubhŒ.”…”�”}”(hj:0h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jZh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/i3c/device-driver-api:9: ./drivers/i3c/device.c”h´MYhjÄ/ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhhÊh²hh³Nh´Nubeh}”(h]”Œi3c-device-driver-api”ah ]”h"]”Œi3c device driver api”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j�0Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”jg0jd0sŒ nametypes”}”jg0‰sh}”(jd0hÊhìhöj#j(j«j°jj„j\jajÿ j j² j· jÌjÑjÖjÛjYj^j¹j¾jüjj j¥jLjQjÍjÒjjj» jÀ jr"jw"jð$jõ$jq&jv&j;(j@(jä*jé*jx,j},jÛ.jà.uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.