€•ð’Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ//translations/zh_CN/driver-api/fpga/fpga-bridge”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ//translations/zh_TW/driver-api/fpga/fpga-bridge”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ//translations/it_IT/driver-api/fpga/fpga-bridge”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ//translations/ja_JP/driver-api/fpga/fpga-bridge”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ//translations/ko_KR/driver-api/fpga/fpga-bridge”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ//translations/pt_BR/driver-api/fpga/fpga-bridge”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ//translations/sp_SP/driver-api/fpga/fpga-bridge”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ FPGA Bridge”h]”hŒ FPGA Bridge”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒI/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge.rst”h´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒ"API to implement a new FPGA bridge”h]”hŒ"API to implement a new FPGA bridge”…”�”}”(hhÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhhËh²hh³hÊh´KubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒ.struct fpga_bridge - The FPGA Bridge structure”h]”hŒ paragraph”“”)�”}”(hhåh]”hŒ.struct fpga_bridge - The FPGA Bridge structure”…”�”}”(hhéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³hÊh´Khhãubah}”(h]”h ]”h"]”h$]”h&]”uh1háhhÞh²hh³hÊh´Nubhâ)�”}”(hŒ4struct fpga_bridge_ops - Low level Bridge driver ops”h]”hè)�”}”(hhþh]”hŒ4struct fpga_bridge_ops - Low level Bridge driver ops”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³hÊh´Khhüubah}”(h]”h ]”h"]”h$]”h&]”uh1háhhÞh²hh³hÊh´Nubhâ)�”}”(hŒ7__fpga_bridge_register() - Create and register a bridge”h]”hè)�”}”(hjh]”hŒ7__fpga_bridge_register() - Create and register a bridge”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³hÊh´K hjubah}”(h]”h ]”h"]”h$]”h&]”uh1háhhÞh²hh³hÊh´Nubhâ)�”}”(hŒ/fpga_bridge_unregister() - Unregister a bridge ”h]”hè)�”}”(hŒ.fpga_bridge_unregister() - Unregister a bridge”h]”hŒ.fpga_bridge_unregister() - Unregister a bridge”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³hÊh´K hj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1háhhÞh²hh³hÊh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1hÜh³hÊh´KhhËh²hubhè)�”}”(hŒvThe helper macro ``fpga_bridge_register()`` automatically sets the module that registers the FPGA bridge as the owner.”h]”(hŒThe helper macro ”…”�”}”(hjJh²hh³Nh´NubhŒliteral”“”)�”}”(hŒ``fpga_bridge_register()``”h]”hŒfpga_bridge_register()”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jRhjJubhŒK automatically sets the module that registers the FPGA bridge as the owner.”…”�”}”(hjJh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hçh³hÊh´K hhËh²hubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œfpga_bridge (C struct)”Œ c.fpga_bridge”hNt”auh1jlhhËh²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒ fpga_bridge”h]”hŒdesc_signature_line”“”)�”}”(hŒstruct fpga_bridge”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1jŽhjŠh²hh³Œl/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:15: ./include/linux/fpga/fpga-bridge.h”h´KubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j hjŠh²hh³jŸh´KubhŒ desc_name”“”)�”}”(hŒ fpga_bridge”h]”hŒ desc_sig_name”“”)�”}”(hj†h]”hŒ fpga_bridge”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1j·hj³ubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”Œ xml:space”Œpreserve”uh1j±hjŠh²hh³jŸh´Kubeh}”(h]”h ]”h"]”h$]”h&]”jÏjÐŒ add_permalink”ˆuh1jˆŒsphinx_line_type”Œ declarator”hj„h²hh³jŸh´Kubah}”(h]”j{ah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1j‚h³jŸh´Khjh²hubhŒ desc_content”“”)�”}”(hhh]”hè)�”}”(hŒFPGA bridge structure”h]”hŒFPGA bridge structure”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³Œl/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:15: ./include/linux/fpga/fpga-bridge.h”h´K+hjçh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jåhjh²hh³jŸh´Kubeh}”(h]”h ]”(Œc”Œstruct”eh"]”h$]”h&]”Œdomain”jŒobjtype”jŒdesctype”jŒnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1j}h²hhhËh³Nh´NubhŒ container”“”)�”}”(hX**Definition**:: struct fpga_bridge { const char *name; struct device dev; struct mutex mutex; const struct fpga_bridge_ops *br_ops; struct module *br_ops_owner; struct fpga_image_info *info; struct list_head node; void *priv; }; **Members** ``name`` name of low level FPGA bridge ``dev`` FPGA bridge device ``mutex`` enforces exclusive reference to bridge ``br_ops`` pointer to struct of FPGA bridge ops ``br_ops_owner`` module containing the br_ops ``info`` fpga image specific information ``node`` FPGA bridge list node ``priv`` low level driver private date”h]”(hè)�”}”(hŒ**Definition**::”h]”(hŒstrong”“”)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒ:”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hçh³Œl/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:15: ./include/linux/fpga/fpga-bridge.h”h´K/hjubhŒ literal_block”“”)�”}”(hŒôstruct fpga_bridge { const char *name; struct device dev; struct mutex mutex; const struct fpga_bridge_ops *br_ops; struct module *br_ops_owner; struct fpga_image_info *info; struct list_head node; void *priv; };”h]”hŒôstruct fpga_bridge { const char *name; struct device dev; struct mutex mutex; const struct fpga_bridge_ops *br_ops; struct module *br_ops_owner; struct fpga_image_info *info; struct list_head node; void *priv; };”…”�”}”hj4sbah}”(h]”h ]”h"]”h$]”h&]”jÏjÐuh1j2h³Œl/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:15: ./include/linux/fpga/fpga-bridge.h”h´K1hjubhè)�”}”(hŒ **Members**”h]”j)�”}”(hjEh]”hŒMembers”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjCubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³Œl/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:15: ./include/linux/fpga/fpga-bridge.h”h´KŒ__fpga_bridge_register”sbŒc.__fpga_bridge_register”†”asbuh1hhjh²hh³jh´MBubj¡)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”j­ah"]”h$]”h&]”uh1j hjh²hh³jh´MBubhŒdesc_sig_punctuation”“”)�”}”(hjIh]”hŒ*”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1j_hjh²hh³jh´MBubj²)�”}”(hŒ__fpga_bridge_register”h]”j¸)�”}”(hjNh]”hŒ__fpga_bridge_register”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j·hjoubah}”(h]”h ]”(jÊjËeh"]”h$]”h&]”jÏjÐuh1j±hjh²hh³jh´MBubhŒdesc_parameterlist”“”)�”}”(hŒq(struct device *parent, const char *name, const struct fpga_bridge_ops *br_ops, void *priv, struct module *owner)”h]”(hŒdesc_parameter”“”)�”}”(hŒstruct device *parent”h]”(j�)�”}”(hj’h]”hŒstruct”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”j›ah"]”h$]”h&]”uh1jŽhjŽubj¡)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”j­ah"]”h$]”h&]”uh1j hjŽubh)�”}”(hhh]”j¸)�”}”(hŒdevice”h]”hŒdevice”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j·hj­ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j>Œ reftarget”j²Œmodname”NŒ classname”NjBjE)�”}”jH]”jLŒc.__fpga_bridge_register”†”asbuh1hhjŽubj¡)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”j­ah"]”h$]”h&]”uh1j hjŽubj`)�”}”(hjIh]”hŒ*”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”jkah"]”h$]”h&]”uh1j_hjŽubj¸)�”}”(hŒparent”h]”hŒparent”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j·hjŽubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÏjÐuh1jŒhjˆubj�)�”}”(hŒconst char *name”h]”(j�)�”}”(hŒconst”h]”hŒconst”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j›ah"]”h$]”h&]”uh1jŽhjþubj¡)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j­ah"]”h$]”h&]”uh1j hjþubhŒdesc_sig_keyword_type”“”)�”}”(hŒchar”h]”hŒchar”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1jhjþubj¡)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”j­ah"]”h$]”h&]”uh1j hjþubj`)�”}”(hjIh]”hŒ*”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”jkah"]”h$]”h&]”uh1j_hjþubj¸)�”}”(hŒname”h]”hŒname”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j·hjþubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÏjÐuh1jŒhjˆubj�)�”}”(hŒ$const struct fpga_bridge_ops *br_ops”h]”(j�)�”}”(hjh]”hŒconst”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”j›ah"]”h$]”h&]”uh1jŽhj_ubj¡)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”j­ah"]”h$]”h&]”uh1j hj_ubj�)�”}”(hj’h]”hŒstruct”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”j›ah"]”h$]”h&]”uh1jŽhj_ubj¡)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”j­ah"]”h$]”h&]”uh1j hj_ubh)�”}”(hhh]”j¸)�”}”(hŒfpga_bridge_ops”h]”hŒfpga_bridge_ops”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j·hj™ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j>Œ reftarget”jžŒmodname”NŒ classname”NjBjE)�”}”jH]”jLŒc.__fpga_bridge_register”†”asbuh1hhj_ubj¡)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”j­ah"]”h$]”h&]”uh1j hj_ubj`)�”}”(hjIh]”hŒ*”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”jkah"]”h$]”h&]”uh1j_hj_ubj¸)�”}”(hŒbr_ops”h]”hŒbr_ops”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j·hj_ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÏjÐuh1jŒhjˆubj�)�”}”(hŒ void *priv”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1jhjêubj¡)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”j­ah"]”h$]”h&]”uh1j hjêubj`)�”}”(hjIh]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jkah"]”h$]”h&]”uh1j_hjêubj¸)�”}”(hŒpriv”h]”hŒpriv”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j·hjêubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÏjÐuh1jŒhjˆubj�)�”}”(hŒstruct module *owner”h]”(j�)�”}”(hj’h]”hŒstruct”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”j›ah"]”h$]”h&]”uh1jŽhj,ubj¡)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”j­ah"]”h$]”h&]”uh1j hj,ubh)�”}”(hhh]”j¸)�”}”(hŒmodule”h]”hŒmodule”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j·hjKubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j>Œ reftarget”jPŒmodname”NŒ classname”NjBjE)�”}”jH]”jLŒc.__fpga_bridge_register”†”asbuh1hhj,ubj¡)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”j­ah"]”h$]”h&]”uh1j hj,ubj`)�”}”(hjIh]”hŒ*”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”jkah"]”h$]”h&]”uh1j_hj,ubj¸)�”}”(hŒowner”h]”hŒowner”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j·hj,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÏjÐuh1jŒhjˆubeh}”(h]”h ]”h"]”h$]”h&]”jÏjÐuh1j†hjh²hh³jh´MBubeh}”(h]”h ]”h"]”h$]”h&]”jÏjÐj׈uh1jˆjØjÙhjh²hh³jh´MBubah}”(h]”jüah ]”(jÝjÞeh"]”h$]”h&]”jâˆjã)jähuh1j‚h³jh´MBhjþh²hubjæ)�”}”(hhh]”hè)�”}”(hŒ)create and register an FPGA Bridge device”h]”hŒ)create and register an FPGA Bridge device”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:21: ./drivers/fpga/fpga-bridge.c”h´MBhj®h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jåhjþh²hh³jh´MBubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jjjjÉj jÉj ‰j ‰j ‰uh1j}h²hhhËh³Nh´Nubj)�”}”(hXd**Parameters** ``struct device *parent`` FPGA bridge device from pdev ``const char *name`` FPGA bridge name ``const struct fpga_bridge_ops *br_ops`` pointer to structure of fpga bridge ops ``void *priv`` FPGA bridge private data ``struct module *owner`` owner module containing the br_ops **Return** struct fpga_bridge pointer or ERR_PTR()”h]”(hè)�”}”(hŒ**Parameters**”h]”j)�”}”(hjÓh]”hŒ Parameters”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:21: ./drivers/fpga/fpga-bridge.c”h´MFhjÍubj\)�”}”(hhh]”(ja)�”}”(hŒ7``struct device *parent`` FPGA bridge device from pdev ”h]”(jg)�”}”(hŒ``struct device *parent``”h]”jS)�”}”(hjòh]”hŒstruct device *parent”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jRhjðubah}”(h]”h ]”h"]”h$]”h&]”uh1jfh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:21: ./drivers/fpga/fpga-bridge.c”h´MChjìubj�)�”}”(hhh]”hè)�”}”(hŒFPGA bridge device from pdev”h]”hŒFPGA bridge device from pdev”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³j h´MChj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hjìubeh}”(h]”h ]”h"]”h$]”h&]”uh1j`h³j h´MChjéubja)�”}”(hŒ&``const char *name`` FPGA bridge name ”h]”(jg)�”}”(hŒ``const char *name``”h]”jS)�”}”(hj+ h]”hŒconst char *name”…”�”}”(hj- h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jRhj) ubah}”(h]”h ]”h"]”h$]”h&]”uh1jfh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:21: ./drivers/fpga/fpga-bridge.c”h´MDhj% ubj�)�”}”(hhh]”hè)�”}”(hŒFPGA bridge name”h]”hŒFPGA bridge name”…”�”}”(hjD h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³j@ h´MDhjA ubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hj% ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j`h³j@ h´MDhjéubja)�”}”(hŒQ``const struct fpga_bridge_ops *br_ops`` pointer to structure of fpga bridge ops ”h]”(jg)�”}”(hŒ(``const struct fpga_bridge_ops *br_ops``”h]”jS)�”}”(hjd h]”hŒ$const struct fpga_bridge_ops *br_ops”…”�”}”(hjf h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jRhjb ubah}”(h]”h ]”h"]”h$]”h&]”uh1jfh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:21: ./drivers/fpga/fpga-bridge.c”h´MEhj^ ubj�)�”}”(hhh]”hè)�”}”(hŒ'pointer to structure of fpga bridge ops”h]”hŒ'pointer to structure of fpga bridge ops”…”�”}”(hj} h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³jy h´MEhjz ubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hj^ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j`h³jy h´MEhjéubja)�”}”(hŒ(``void *priv`` FPGA bridge private data ”h]”(jg)�”}”(hŒ``void *priv``”h]”jS)�”}”(hj� h]”hŒ void *priv”…”�”}”(hjŸ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jRhj› ubah}”(h]”h ]”h"]”h$]”h&]”uh1jfh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:21: ./drivers/fpga/fpga-bridge.c”h´MFhj— ubj�)�”}”(hhh]”hè)�”}”(hŒFPGA bridge private data”h]”hŒFPGA bridge private data”…”�”}”(hj¶ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³j² h´MFhj³ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hj— ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j`h³j² h´MFhjéubja)�”}”(hŒ<``struct module *owner`` owner module containing the br_ops ”h]”(jg)�”}”(hŒ``struct module *owner``”h]”jS)�”}”(hjÖ h]”hŒstruct module *owner”…”�”}”(hjØ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jRhjÔ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jfh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:21: ./drivers/fpga/fpga-bridge.c”h´MGhjÐ ubj�)�”}”(hhh]”hè)�”}”(hŒ"owner module containing the br_ops”h]”hŒ"owner module containing the br_ops”…”�”}”(hjï h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³jë h´MGhjì ubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hjÐ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j`h³jë h´MGhjéubeh}”(h]”h ]”h"]”h$]”h&]”uh1j[hjÍubhè)�”}”(hŒ **Return**”h]”j)�”}”(hj h]”hŒReturn”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:21: ./drivers/fpga/fpga-bridge.c”h´MIhjÍubhè)�”}”(hŒ'struct fpga_bridge pointer or ERR_PTR()”h]”hŒ'struct fpga_bridge pointer or ERR_PTR()”…”�”}”(hj' h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:21: ./drivers/fpga/fpga-bridge.c”h´MIhjÍubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j hhËh²hh³Nh´Nubjm)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jyŒ#fpga_bridge_unregister (C function)”Œc.fpga_bridge_unregister”hNt”auh1jlhhËh²hh³Nh´Nubj~)�”}”(hhh]”(jƒ)�”}”(hŒ8void fpga_bridge_unregister (struct fpga_bridge *bridge)”h]”j‰)�”}”(hŒ7void fpga_bridge_unregister(struct fpga_bridge *bridge)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjV h²hh³Nh´Nubah}”(h]”h ]”j+ah"]”h$]”h&]”uh1jhjR h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:24: ./drivers/fpga/fpga-bridge.c”h´M�ubj¡)�”}”(hŒ ”h]”hŒ ”…”�”}”(hje h²hh³Nh´Nubah}”(h]”h ]”j­ah"]”h$]”h&]”uh1j hjR h²hh³jd h´M�ubj²)�”}”(hŒfpga_bridge_unregister”h]”j¸)�”}”(hŒfpga_bridge_unregister”h]”hŒfpga_bridge_unregister”…”�”}”(hjw h²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j·hjs ubah}”(h]”h ]”(jÊjËeh"]”h$]”h&]”jÏjÐuh1j±hjR h²hh³jd h´M�ubj‡)�”}”(hŒ(struct fpga_bridge *bridge)”h]”j�)�”}”(hŒstruct fpga_bridge *bridge”h]”(j�)�”}”(hj’h]”hŒstruct”…”�”}”(hj“ h²hh³Nh´Nubah}”(h]”h ]”j›ah"]”h$]”h&]”uh1jŽhj� ubj¡)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj  h²hh³Nh´Nubah}”(h]”h ]”j­ah"]”h$]”h&]”uh1j hj� ubh)�”}”(hhh]”j¸)�”}”(hŒ fpga_bridge”h]”hŒ fpga_bridge”…”�”}”(hj± h²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j·hj® ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”j>Œ reftarget”j³ Œmodname”NŒ classname”NjBjE)�”}”jH]”jK)�”}”j>jy sbŒc.fpga_bridge_unregister”†”asbuh1hhj� ubj¡)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑ h²hh³Nh´Nubah}”(h]”h ]”j­ah"]”h$]”h&]”uh1j hj� ubj`)�”}”(hjIh]”hŒ*”…”�”}”(hjß h²hh³Nh´Nubah}”(h]”h ]”jkah"]”h$]”h&]”uh1j_hj� ubj¸)�”}”(hŒbridge”h]”hŒbridge”…”�”}”(hjì h²hh³Nh´Nubah}”(h]”h ]”jÃah"]”h$]”h&]”uh1j·hj� ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjÏjÐuh1jŒhj‹ ubah}”(h]”h ]”h"]”h$]”h&]”jÏjÐuh1j†hjR h²hh³jd h´M�ubeh}”(h]”h ]”h"]”h$]”h&]”jÏjÐj׈uh1jˆjØjÙhjN h²hh³jd h´M�ubah}”(h]”jI ah ]”(jÝjÞeh"]”h$]”h&]”jâˆjã)jähuh1j‚h³jd h´M�hjK h²hubjæ)�”}”(hhh]”hè)�”}”(hŒunregister an FPGA bridge”h]”hŒunregister an FPGA bridge”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:24: ./drivers/fpga/fpga-bridge.c”h´M�hj h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jåhjK h²hh³jd h´M�ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”jjjj. j j. j ‰j ‰j ‰uh1j}h²hhhËh³Nh´Nubj)�”}”(hŒ£**Parameters** ``struct fpga_bridge *bridge`` FPGA bridge struct **Description** This function is intended for use in an FPGA bridge driver's remove function.”h]”(hè)�”}”(hŒ**Parameters**”h]”j)�”}”(hj8 h]”hŒ Parameters”…”�”}”(hj: h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj6 ubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:24: ./drivers/fpga/fpga-bridge.c”h´M‘hj2 ubj\)�”}”(hhh]”ja)�”}”(hŒ2``struct fpga_bridge *bridge`` FPGA bridge struct ”h]”(jg)�”}”(hŒ``struct fpga_bridge *bridge``”h]”jS)�”}”(hjW h]”hŒstruct fpga_bridge *bridge”…”�”}”(hjY h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jRhjU ubah}”(h]”h ]”h"]”h$]”h&]”uh1jfh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:24: ./drivers/fpga/fpga-bridge.c”h´M�hjQ ubj�)�”}”(hhh]”hè)�”}”(hŒFPGA bridge struct”h]”hŒFPGA bridge struct”…”�”}”(hjp h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³jl h´M�hjm ubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hjQ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j`h³jl h´M�hjN ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj2 ubhè)�”}”(hŒ**Description**”h]”j)�”}”(hj’ h]”hŒ Description”…”�”}”(hj” h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:24: ./drivers/fpga/fpga-bridge.c”h´M‘hj2 ubhè)�”}”(hŒMThis function is intended for use in an FPGA bridge driver's remove function.”h]”hŒOThis function is intended for use in an FPGA bridge driver’s remove function.”…”�”}”(hj¨ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/fpga/fpga-bridge:24: ./drivers/fpga/fpga-bridge.c”h´M�hj2 ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j hhËh²hh³Nh´Nubeh}”(h]”Œ"api-to-implement-a-new-fpga-bridge”ah ]”h"]”Œ"api to implement a new fpga bridge”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubeh}”(h]”Œ fpga-bridge”ah ]”h"]”Œ fpga bridge”ah$]”h&]”uh1hµhhh²hh³hÊh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÊuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hºNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jñ Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÊŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jË jÈ jà jÀ uŒ nametypes”}”(jË ‰jà ‰uh}”(jÈ h·jÀ hËj{j„jHjMjüjjI jN 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.