€•Œ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/gpu/tegra”Œ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/gpu/tegra”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/it_IT/gpu/tegra”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/ja_JP/gpu/tegra”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/ko_KR/gpu/tegra”Œ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/gpu/tegra”Œ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/gpu/tegra”Œ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Œ-drm/tegra NVIDIA Tegra GPU and display driver”h]”hŒ-drm/tegra NVIDIA Tegra GPU and display driver”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³Œ7/var/lib/git/docbuild/linux/Documentation/gpu/tegra.rst”h´KubhŒ paragraph”“”)�”}”(hX+NVIDIA Tegra SoCs support a set of display, graphics and video functions via the host1x controller. host1x supplies command streams, gathered from a push buffer provided directly by the CPU, to its clients via channels. Software, or blocks amongst themselves, can use syncpoints for synchronization.”h]”hX+NVIDIA Tegra SoCs support a set of display, graphics and video functions via the host1x controller. host1x supplies command streams, gathered from a push buffer provided directly by the CPU, to its clients via channels. Software, or blocks amongst themselves, can use syncpoints for synchronization.”…”�”}”(hhÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)�”}”(hXUp until, but not including, Tegra124 (aka Tegra K1) the drm/tegra driver supports the built-in GPU, comprised of the gr2d and gr3d engines. Starting with Tegra124 the GPU is based on the NVIDIA desktop GPU architecture and supported by the drm/nouveau driver.”h]”hXUp until, but not including, Tegra124 (aka Tegra K1) the drm/tegra driver supports the built-in GPU, comprised of the gr2d and gr3d engines. Starting with Tegra124 the GPU is based on the NVIDIA desktop GPU architecture and supported by the drm/nouveau driver.”…”�”}”(hhÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hh·h²hubhÌ)�”}”(hŒ]The drm/tegra driver supports NVIDIA Tegra SoC generations since Tegra20. It has three parts:”h]”hŒ]The drm/tegra driver supports NVIDIA Tegra SoC generations since Tegra20. It has three parts:”…”�”}”(hhéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhŒ block_quote”“”)�”}”(hXD- A host1x driver that provides infrastructure and access to the host1x services. - A KMS driver that supports the display controllers as well as a number of outputs, such as RGB, HDMI, DSI, and DisplayPort. - A set of custom userspace IOCTLs that can be used to submit jobs to the GPU and video engines via host1x. ”h]”hŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒPA host1x driver that provides infrastructure and access to the host1x services. ”h]”hÌ)�”}”(hŒOA host1x driver that provides infrastructure and access to the host1x services.”h]”hŒOA host1x driver that provides infrastructure and access to the host1x services.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhÿubj)�”}”(hŒ|A KMS driver that supports the display controllers as well as a number of outputs, such as RGB, HDMI, DSI, and DisplayPort. ”h]”hÌ)�”}”(hŒ{A KMS driver that supports the display controllers as well as a number of outputs, such as RGB, HDMI, DSI, and DisplayPort.”h]”hŒ{A KMS driver that supports the display controllers as well as a number of outputs, such as RGB, HDMI, DSI, and DisplayPort.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhÿubj)�”}”(hŒjA set of custom userspace IOCTLs that can be used to submit jobs to the GPU and video engines via host1x. ”h]”hÌ)�”}”(hŒiA set of custom userspace IOCTLs that can be used to submit jobs to the GPU and video engines via host1x.”h]”hŒiA set of custom userspace IOCTLs that can be used to submit jobs to the GPU and video engines via host1x.”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhÿubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1hýh³hÊh´Khhùubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷h³hÊh´Khh·h²hubh¶)�”}”(hhh]”(h»)�”}”(hŒDriver Infrastructure”h]”hŒDriver Infrastructure”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjZh²hh³hÊh´KubhÌ)�”}”(hXDThe various host1x clients need to be bound together into a logical device in order to expose their functionality to users. The infrastructure that supports this is implemented in the host1x driver. When a driver is registered with the infrastructure it provides a list of compatible strings specifying the devices that it needs. The infrastructure creates a logical device and scan the device tree for matching device nodes, adding the required clients to a list. Drivers for individual clients register with the infrastructure as well and are added to the logical host1x device.”h]”hXDThe various host1x clients need to be bound together into a logical device in order to expose their functionality to users. The infrastructure that supports this is implemented in the host1x driver. When a driver is registered with the infrastructure it provides a list of compatible strings specifying the devices that it needs. The infrastructure creates a logical device and scan the device tree for matching device nodes, adding the required clients to a list. Drivers for individual clients register with the infrastructure as well and are added to the logical host1x device.”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KhjZh²hubhÌ)�”}”(hŒ×Once all clients are available, the infrastructure will initialize the logical device using a driver-provided function which will set up the bits specific to the subsystem and in turn initialize each of its clients.”h]”hŒ×Once all clients are available, the infrastructure will initialize the logical device using a driver-provided function which will set up the bits specific to the subsystem and in turn initialize each of its clients.”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K'hjZh²hubhÌ)�”}”(hŒçSimilarly, when one of the clients is unregistered, the infrastructure will destroy the logical device by calling back into the driver, which ensures that the subsystem specific bits are torn down and the clients destroyed in turn.”h]”hŒçSimilarly, when one of the clients is unregistered, the infrastructure will destroy the logical device by calling back into the driver, which ensures that the subsystem specific bits are torn down and the clients destroyed in turn.”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K+hjZh²hubh¶)�”}”(hhh]”(h»)�”}”(hŒHost1x Infrastructure Reference”h]”hŒHost1x Infrastructure Reference”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj•h²hh³hÊh´K0ubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œhost1x_bo_cache (C struct)”Œc.host1x_bo_cache”hNt”auh1j¦hj•h²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒhost1x_bo_cache”h]”hŒdesc_signature_line”“”)�”}”(hŒstruct host1x_bo_cache”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³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.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Œhost1x_bo_cache”h]”hŒ desc_sig_name”“”)�”}”(hjÀh]”hŒhost1x_bo_cache”…”�”}”(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´Khj¹h²hubhŒ desc_content”“”)�”}”(hhh]”hÌ)�”}”(hŒhost1x buffer object cache”h]”hŒhost1x buffer object cache”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K%hj!h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¹h²hh³jÙh´Kubeh}”(h]”h ]”(Œc”Œstruct”eh"]”h$]”h&]”Œdomain”j<Œobjtype”j=Œdesctype”j=Œnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1j·h²hhj•h³Nh´NubhŒ container”“”)�”}”(hŒÓ**Definition**:: struct host1x_bo_cache { struct list_head mappings; struct mutex lock; }; **Members** ``mappings`` list of mappings ``lock`` synchronizes accesses to the list of mappings”h]”(hÌ)�”}”(hŒ**Definition**::”h]”(hŒstrong”“”)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjMubhŒ:”…”�”}”(hjMh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K)hjIubhŒ literal_block”“”)�”}”(hŒQstruct host1x_bo_cache { struct list_head mappings; struct mutex lock; };”h]”hŒQstruct host1x_bo_cache { struct list_head mappings; struct mutex lock; };”…”�”}”hjnsbah}”(h]”h ]”h"]”h$]”h&]”j j uh1jlh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K+hjIubhÌ)�”}”(hŒ **Members**”h]”jR)�”}”(hjh]”hŒMembers”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K0hjIubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ``mappings`` list of mappings ”h]”(hŒterm”“”)�”}”(hŒ ``mappings``”h]”hŒliteral”“”)�”}”(hj¤h]”hŒmappings”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K'hjœubhŒ definition”“”)�”}”(hhh]”hÌ)�”}”(hŒlist of mappings”h]”hŒlist of mappings”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j»h´K'hj¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjœubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j»h´K'hj—ubj›)�”}”(hŒ6``lock`` synchronizes accesses to the list of mappings”h]”(j¡)�”}”(hŒ``lock``”h]”j§)�”}”(hjáh]”hŒlock”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjßubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K'hjÛubj½)�”}”(hhh]”hÌ)�”}”(hŒ-synchronizes accesses to the list of mappings”h]”hŒ-synchronizes accesses to the list of mappings”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”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•hjIubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj•h²hh³Nh´NubhÌ)�”}”(hŒ**Description**”h]”jR)�”}”(hj$h]”hŒ Description”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K+hj•h²hubhÌ)�”}”(hXNote that entries are not periodically evicted from this cache and instead need to be explicitly released. This is used primarily for DRM/KMS where the cache's reference is released when the last reference to a buffer object represented by a mapping in this cache is dropped.”h]”hXNote that entries are not periodically evicted from this cache and instead need to be explicitly released. This is used primarily for DRM/KMS where the cache’s reference is released when the last reference to a buffer object represented by a mapping in this cache is dropped.”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K(hj•h²hubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œhost1x_client_ops (C struct)”Œc.host1x_client_ops”hNt”auh1j¦hj•h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒhost1x_client_ops”h]”jÃ)�”}”(hŒstruct host1x_client_ops”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhj^h²hh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K0ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj^h²hh³joh´K0ubjì)�”}”(hŒhost1x_client_ops”h]”jò)�”}”(hj\h]”hŒhost1x_client_ops”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj~ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhj^h²hh³joh´K0ubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhjZh²hh³joh´K0ubah}”(h]”jUah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³joh´K0hjWh²hubj )�”}”(hhh]”hÌ)�”}”(hŒhost1x client operations”h]”hŒhost1x client operations”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K@hj¡h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjWh²hh³joh´K0ubeh}”(h]”h ]”(j<Œstruct”eh"]”h$]”h&]”jAj<jBj¼jCj¼jD‰jE‰jF‰uh1j·h²hhj•h³Nh´NubjH)�”}”(hXŒ**Definition**:: struct host1x_client_ops { int (*early_init)(struct host1x_client *client); int (*init)(struct host1x_client *client); int (*exit)(struct host1x_client *client); int (*late_exit)(struct host1x_client *client); int (*suspend)(struct host1x_client *client); int (*resume)(struct host1x_client *client); }; **Members** ``early_init`` host1x client early initialization code ``init`` host1x client initialization code ``exit`` host1x client tear down code ``late_exit`` host1x client late tear down code ``suspend`` host1x client suspend code ``resume`` host1x client resume code”h]”(hÌ)�”}”(hŒ**Definition**::”h]”(jR)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjÄubhŒ:”…”�”}”(hjÄh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KDhjÀubjm)�”}”(hXGstruct host1x_client_ops { int (*early_init)(struct host1x_client *client); int (*init)(struct host1x_client *client); int (*exit)(struct host1x_client *client); int (*late_exit)(struct host1x_client *client); int (*suspend)(struct host1x_client *client); int (*resume)(struct host1x_client *client); };”h]”hXGstruct host1x_client_ops { int (*early_init)(struct host1x_client *client); int (*init)(struct host1x_client *client); int (*exit)(struct host1x_client *client); int (*late_exit)(struct host1x_client *client); int (*suspend)(struct host1x_client *client); int (*resume)(struct host1x_client *client); };”…”�”}”hjásbah}”(h]”h ]”h"]”h$]”h&]”j j uh1jlh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KFhjÀubhÌ)�”}”(hŒ **Members**”h]”jR)�”}”(hjòh]”hŒMembers”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjðubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KOhjÀubj–)�”}”(hhh]”(j›)�”}”(hŒ7``early_init`` host1x client early initialization code ”h]”(j¡)�”}”(hŒ``early_init``”h]”j§)�”}”(hjh]”hŒ early_init”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KBhj ubj½)�”}”(hhh]”hÌ)�”}”(hŒ'host1x client early initialization code”h]”hŒ'host1x client early initialization code”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j&h´KBhj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j&h´KBhjubj›)�”}”(hŒ+``init`` host1x client initialization code ”h]”(j¡)�”}”(hŒ``init``”h]”j§)�”}”(hjJh]”hŒinit”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjHubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KChjDubj½)�”}”(hhh]”hÌ)�”}”(hŒ!host1x client initialization code”h]”hŒ!host1x client initialization code”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j_h´KChj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjDubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j_h´KChjubj›)�”}”(hŒ&``exit`` host1x client tear down code ”h]”(j¡)�”}”(hŒ``exit``”h]”j§)�”}”(hjƒh]”hŒexit”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KDhj}ubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x client tear down code”h]”hŒhost1x client tear down code”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j˜h´KDhj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j˜h´KDhjubj›)�”}”(hŒ0``late_exit`` host1x client late tear down code ”h]”(j¡)�”}”(hŒ ``late_exit``”h]”j§)�”}”(hj¼h]”hŒ late_exit”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjºubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KEhj¶ubj½)�”}”(hhh]”hÌ)�”}”(hŒ!host1x client late tear down code”h]”hŒ!host1x client late tear down code”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÑh´KEhjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj¶ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jÑh´KEhjubj›)�”}”(hŒ'``suspend`` host1x client suspend code ”h]”(j¡)�”}”(hŒ ``suspend``”h]”j§)�”}”(hjõh]”hŒsuspend”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjóubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KFhjïubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x client suspend code”h]”hŒhost1x client suspend code”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j h´KFhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjïubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j h´KFhjubj›)�”}”(hŒ$``resume`` host1x client resume code”h]”(j¡)�”}”(hŒ ``resume``”h]”j§)�”}”(hj.h]”hŒresume”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KFhj(ubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x client resume code”h]”hŒhost1x client resume code”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KGhjDubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jCh´KFhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j•hjÀubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj•h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œhost1x_client (C struct)”Œc.host1x_client”hNt”auh1j¦hj•h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ host1x_client”h]”jÃ)�”}”(hŒstruct host1x_client”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhj„h²hh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KMubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj„h²hh³j•h´KMubjì)�”}”(hŒ host1x_client”h]”jò)�”}”(hj‚h]”hŒ host1x_client”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj¤ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhj„h²hh³j•h´KMubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhj€h²hh³j•h´KMubah}”(h]”j{ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³j•h´KMhj}h²hubj )�”}”(hhh]”hÌ)�”}”(hŒhost1x client structure”h]”hŒhost1x client structure”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KRhjÇh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj}h²hh³j•h´KMubeh}”(h]”h ]”(j<Œstruct”eh"]”h$]”h&]”jAj<jBjâjCjâjD‰jE‰jF‰uh1j·h²hhj•h³Nh´NubjH)�”}”(hX›**Definition**:: struct host1x_client { struct list_head list; struct device *host; struct device *dev; struct iommu_group *group; const struct host1x_client_ops *ops; enum host1x_class class; struct host1x_channel *channel; struct host1x_syncpt **syncpts; unsigned int num_syncpts; struct host1x_client *parent; unsigned int usecount; struct mutex lock; struct host1x_bo_cache cache; }; **Members** ``list`` list node for the host1x client ``host`` pointer to struct device representing the host1x controller ``dev`` pointer to struct device backing this host1x client ``group`` IOMMU group that this client is a member of ``ops`` host1x client operations ``class`` host1x class represented by this client ``channel`` host1x channel associated with this client ``syncpts`` array of syncpoints requested for this client ``num_syncpts`` number of syncpoints requested for this client ``parent`` pointer to parent structure ``usecount`` reference count for this structure ``lock`` mutex for mutually exclusive concurrency ``cache`` host1x buffer object cache”h]”(hÌ)�”}”(hŒ**Definition**::”h]”(jR)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjêubhŒ:”…”�”}”(hjêh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KVhjæubjm)�”}”(hX¦struct host1x_client { struct list_head list; struct device *host; struct device *dev; struct iommu_group *group; const struct host1x_client_ops *ops; enum host1x_class class; struct host1x_channel *channel; struct host1x_syncpt **syncpts; unsigned int num_syncpts; struct host1x_client *parent; unsigned int usecount; struct mutex lock; struct host1x_bo_cache cache; };”h]”hX¦struct host1x_client { struct list_head list; struct device *host; struct device *dev; struct iommu_group *group; const struct host1x_client_ops *ops; enum host1x_class class; struct host1x_channel *channel; struct host1x_syncpt **syncpts; unsigned int num_syncpts; struct host1x_client *parent; unsigned int usecount; struct mutex lock; struct host1x_bo_cache cache; };”…”�”}”hjsbah}”(h]”h ]”h"]”h$]”h&]”j j uh1jlh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KXhjæubhÌ)�”}”(hŒ **Members**”h]”jR)�”}”(hjh]”hŒMembers”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´Khhjæubj–)�”}”(hhh]”(j›)�”}”(hŒ)``list`` list node for the host1x client ”h]”(j¡)�”}”(hŒ``list``”h]”j§)�”}”(hj7h]”hŒlist”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KThj1ubj½)�”}”(hhh]”hÌ)�”}”(hŒlist node for the host1x client”h]”hŒlist node for the host1x client”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jLh´KThjMubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jLh´KThj.ubj›)�”}”(hŒE``host`` pointer to struct device representing the host1x controller ”h]”(j¡)�”}”(hŒ``host``”h]”j§)�”}”(hjph]”hŒhost”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjnubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KUhjjubj½)�”}”(hhh]”hÌ)�”}”(hŒ;pointer to struct device representing the host1x controller”h]”hŒ;pointer to struct device representing the host1x controller”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j…h´KUhj†ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j…h´KUhj.ubj›)�”}”(hŒ<``dev`` pointer to struct device backing this host1x client ”h]”(j¡)�”}”(hŒ``dev``”h]”j§)�”}”(hj©h]”hŒdev”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KVhj£ubj½)�”}”(hhh]”hÌ)�”}”(hŒ3pointer to struct device backing this host1x client”h]”hŒ3pointer to struct device backing this host1x client”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j¾h´KVhj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj£ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j¾h´KVhj.ubj›)�”}”(hŒ6``group`` IOMMU group that this client is a member of ”h]”(j¡)�”}”(hŒ ``group``”h]”j§)�”}”(hjâh]”hŒgroup”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjàubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KWhjÜubj½)�”}”(hhh]”hÌ)�”}”(hŒ+IOMMU group that this client is a member of”h]”hŒ+IOMMU group that this client is a member of”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j÷h´KWhjøubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjÜubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j÷h´KWhj.ubj›)�”}”(hŒ!``ops`` host1x client operations ”h]”(j¡)�”}”(hŒ``ops``”h]”j§)�”}”(hjh]”hŒops”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KXhjubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x client operations”h]”hŒhost1x client operations”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j0h´KXhj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j0h´KXhj.ubj›)�”}”(hŒ2``class`` host1x class represented by this client ”h]”(j¡)�”}”(hŒ ``class``”h]”j§)�”}”(hjTh]”hŒclass”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjRubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KYhjNubj½)�”}”(hhh]”hÌ)�”}”(hŒ'host1x class represented by this client”h]”hŒ'host1x class represented by this client”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jih´KYhjjubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjNubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jih´KYhj.ubj›)�”}”(hŒ7``channel`` host1x channel associated with this client ”h]”(j¡)�”}”(hŒ ``channel``”h]”j§)�”}”(hj�h]”hŒchannel”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KZhj‡ubj½)�”}”(hhh]”hÌ)�”}”(hŒ*host1x channel associated with this client”h]”hŒ*host1x channel associated with this client”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j¢h´KZhj£ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj‡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j¢h´KZhj.ubj›)�”}”(hŒ:``syncpts`` array of syncpoints requested for this client ”h]”(j¡)�”}”(hŒ ``syncpts``”h]”j§)�”}”(hjÆh]”hŒsyncpts”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjÄubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K[hjÀubj½)�”}”(hhh]”hÌ)�”}”(hŒ-array of syncpoints requested for this client”h]”hŒ-array of syncpoints requested for this client”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÛh´K[hjÜubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjÀubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jÛh´K[hj.ubj›)�”}”(hŒ?``num_syncpts`` number of syncpoints requested for this client ”h]”(j¡)�”}”(hŒ``num_syncpts``”h]”j§)�”}”(hjÿh]”hŒ num_syncpts”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjýubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K\hjùubj½)�”}”(hhh]”hÌ)�”}”(hŒ.number of syncpoints requested for this client”h]”hŒ.number of syncpoints requested for this client”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jh´K\hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjùubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jh´K\hj.ubj›)�”}”(hŒ'``parent`` pointer to parent structure ”h]”(j¡)�”}”(hŒ ``parent``”h]”j§)�”}”(hj8h]”hŒparent”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K]hj2ubj½)�”}”(hhh]”hÌ)�”}”(hŒpointer to parent structure”h]”hŒpointer to parent structure”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jMh´K]hjNubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jMh´K]hj.ubj›)�”}”(hŒ0``usecount`` reference count for this structure ”h]”(j¡)�”}”(hŒ ``usecount``”h]”j§)�”}”(hjqh]”hŒusecount”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjoubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K^hjkubj½)�”}”(hhh]”hÌ)�”}”(hŒ"reference count for this structure”h]”hŒ"reference count for this structure”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j†h´K^hj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjkubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j†h´K^hj.ubj›)�”}”(hŒ2``lock`` mutex for mutually exclusive concurrency ”h]”(j¡)�”}”(hŒ``lock``”h]”j§)�”}”(hjªh]”hŒlock”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K_hj¤ubj½)�”}”(hhh]”hÌ)�”}”(hŒ(mutex for mutually exclusive concurrency”h]”hŒ(mutex for mutually exclusive concurrency”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j¿h´K_hjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j¿h´K_hj.ubj›)�”}”(hŒ$``cache`` host1x buffer object cache”h]”(j¡)�”}”(hŒ ``cache``”h]”j§)�”}”(hjãh]”hŒcache”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjáubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K_hjÝubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x buffer object cache”h]”hŒhost1x buffer object cache”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K`hjùubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjÝubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jøh´K_hj.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j•hjæubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj•h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œhost1x_bo_ops (C struct)”Œc.host1x_bo_ops”hNt”auh1j¦hj•h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ host1x_bo_ops”h]”jÃ)�”}”(hŒstruct host1x_bo_ops”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hj= h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhj9 h²hh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´KfubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjK h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj9 h²hh³jJ h´Kfubjì)�”}”(hŒ host1x_bo_ops”h]”jò)�”}”(hj7 h]”hŒ host1x_bo_ops”…”�”}”(hj] h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjY ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhj9 h²hh³jJ h´Kfubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhj5 h²hh³jJ h´Kfubah}”(h]”j0 ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³jJ h´Kfhj2 h²hubj )�”}”(hhh]”hÌ)�”}”(hŒ.operations implemented by a host1x_bo provider”h]”hŒ.operations implemented by a host1x_bo provider”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K“hj| h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj2 h²hh³jJ h´Kfubeh}”(h]”h ]”(j<Œstruct”eh"]”h$]”h&]”jAj<jBj— jCj— jD‰jE‰jF‰uh1j·h²hhj•h³Nh´NubjH)�”}”(hXH**Definition**:: struct host1x_bo_ops { struct host1x_bo *(*get)(struct host1x_bo *bo); void (*put)(struct host1x_bo *bo); struct host1x_bo_mapping *(*pin)(struct device *dev, struct host1x_bo *bo, enum dma_data_direction dir); void (*unpin)(struct host1x_bo_mapping *map); void *(*mmap)(struct host1x_bo *bo); void (*munmap)(struct host1x_bo *bo, void *addr); }; **Members** ``pin`` create a DMA mapping. Implementation must not touch the bo's refcount. ``unpin`` destroy a DMA mapping. Implementation must not touch the bo's refcount.”h]”(hÌ)�”}”(hŒ**Definition**::”h]”(jR)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj£ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjŸ ubhŒ:”…”�”}”(hjŸ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K—hj› ubjm)�”}”(hXrstruct host1x_bo_ops { struct host1x_bo *(*get)(struct host1x_bo *bo); void (*put)(struct host1x_bo *bo); struct host1x_bo_mapping *(*pin)(struct device *dev, struct host1x_bo *bo, enum dma_data_direction dir); void (*unpin)(struct host1x_bo_mapping *map); void *(*mmap)(struct host1x_bo *bo); void (*munmap)(struct host1x_bo *bo, void *addr); };”h]”hXrstruct host1x_bo_ops { struct host1x_bo *(*get)(struct host1x_bo *bo); void (*put)(struct host1x_bo *bo); struct host1x_bo_mapping *(*pin)(struct device *dev, struct host1x_bo *bo, enum dma_data_direction dir); void (*unpin)(struct host1x_bo_mapping *map); void *(*mmap)(struct host1x_bo *bo); void (*munmap)(struct host1x_bo *bo, void *addr); };”…”�”}”hj¼ sbah}”(h]”h ]”h"]”h$]”h&]”j j uh1jlh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K™hj› ubhÌ)�”}”(hŒ **Members**”h]”jR)�”}”(hjÍ h]”hŒMembers”…”�”}”(hjÏ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjË ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K¢hj› ubj–)�”}”(hhh]”(j›)�”}”(hŒO``pin`` create a DMA mapping. Implementation must not touch the bo's refcount. ”h]”(j¡)�”}”(hŒ``pin``”h]”j§)�”}”(hjì h]”hŒpin”…”�”}”(hjî h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjê ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K–hjæ ubj½)�”}”(hhh]”hÌ)�”}”(hŒFcreate a DMA mapping. Implementation must not touch the bo's refcount.”h]”hŒHcreate a DMA mapping. Implementation must not touch the bo’s refcount.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j h´K–hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjæ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j h´K–hjã ubj›)�”}”(hŒQ``unpin`` destroy a DMA mapping. Implementation must not touch the bo's refcount.”h]”(j¡)�”}”(hŒ ``unpin``”h]”j§)�”}”(hj% h]”hŒunpin”…”�”}”(hj' h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj# ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K–hj ubj½)�”}”(hhh]”hÌ)�”}”(hŒGdestroy a DMA mapping. Implementation must not touch the bo's refcount.”h]”hŒIdestroy a DMA mapping. Implementation must not touch the bo’s refcount.”…”�”}”(hj> h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K—hj; ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j: h´K–hjã ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j•hj› ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj•h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œhost1x_driver (C struct)”Œc.host1x_driver”hNt”auh1j¦hj•h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ host1x_driver”h]”jÃ)�”}”(hŒstruct host1x_driver”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhj{ h²hh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´K�ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj{ h²hh³jŒ h´K�ubjì)�”}”(hŒ host1x_driver”h]”jò)�”}”(hjy h]”hŒ host1x_driver”…”�”}”(hjŸ h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj› ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhj{ h²hh³jŒ h´K�ubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhjw h²hh³jŒ h´K�ubah}”(h]”jr ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³jŒ h´K�hjt h²hubj )�”}”(hhh]”hÌ)�”}”(hŒhost1x logical device driver”h]”hŒhost1x logical device driver”…”�”}”(hjÁ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´Mwhj¾ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjt h²hh³jŒ h´K�ubeh}”(h]”h ]”(j<Œstruct”eh"]”h$]”h&]”jAj<jBjÙ jCjÙ jD‰jE‰jF‰uh1j·h²hhj•h³Nh´NubjH)�”}”(hXŠ**Definition**:: struct host1x_driver { struct device_driver driver; const struct of_device_id *subdevs; struct list_head list; int (*probe)(struct host1x_device *device); void (*remove)(struct host1x_device *device); void (*shutdown)(struct host1x_device *device); }; **Members** ``driver`` core driver ``subdevs`` table of OF device IDs matching subdevices for this driver ``list`` list node for the driver ``probe`` called when the host1x logical device is probed ``remove`` called when the host1x logical device is removed ``shutdown`` called when the host1x logical device is shut down”h]”(hÌ)�”}”(hŒ**Definition**::”h]”(jR)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjå h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjá ubhŒ:”…”�”}”(hjá h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´M{hjÝ ubjm)�”}”(hXstruct host1x_driver { struct device_driver driver; const struct of_device_id *subdevs; struct list_head list; int (*probe)(struct host1x_device *device); void (*remove)(struct host1x_device *device); void (*shutdown)(struct host1x_device *device); };”h]”hXstruct host1x_driver { struct device_driver driver; const struct of_device_id *subdevs; struct list_head list; int (*probe)(struct host1x_device *device); void (*remove)(struct host1x_device *device); void (*shutdown)(struct host1x_device *device); };”…”�”}”hjþ sbah}”(h]”h ]”h"]”h$]”h&]”j j uh1jlh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´M}hjÝ ubhÌ)�”}”(hŒ **Members**”h]”jR)�”}”(hj h]”hŒMembers”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´M†hjÝ ubj–)�”}”(hhh]”(j›)�”}”(hŒ``driver`` core driver ”h]”(j¡)�”}”(hŒ ``driver``”h]”j§)�”}”(hj. h]”hŒdriver”…”�”}”(hj0 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj, ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´Myhj( ubj½)�”}”(hhh]”hÌ)�”}”(hŒ core driver”h]”hŒ core driver”…”�”}”(hjG h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jC h´MyhjD ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj( ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jC h´Myhj% ubj›)�”}”(hŒG``subdevs`` table of OF device IDs matching subdevices for this driver ”h]”(j¡)�”}”(hŒ ``subdevs``”h]”j§)�”}”(hjg h]”hŒsubdevs”…”�”}”(hji h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hje ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´Mzhja ubj½)�”}”(hhh]”hÌ)�”}”(hŒ:table of OF device IDs matching subdevices for this driver”h]”hŒ:table of OF device IDs matching subdevices for this driver”…”�”}”(hj€ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j| h´Mzhj} ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hja ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j| h´Mzhj% ubj›)�”}”(hŒ"``list`` list node for the driver ”h]”(j¡)�”}”(hŒ``list``”h]”j§)�”}”(hj  h]”hŒlist”…”�”}”(hj¢ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjž ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´M{hjš ubj½)�”}”(hhh]”hÌ)�”}”(hŒlist node for the driver”h]”hŒlist node for the driver”…”�”}”(hj¹ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jµ h´M{hj¶ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjš ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jµ h´M{hj% ubj›)�”}”(hŒ:``probe`` called when the host1x logical device is probed ”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³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´M|hjÓ ubj½)�”}”(hhh]”hÌ)�”}”(hŒ/called when the host1x logical device is probed”h]”hŒ/called when the host1x logical device is probed”…”�”}”(hjò h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jî h´M|hjï ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjÓ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jî h´M|hj% ubj›)�”}”(hŒ<``remove`` called when the host1x logical device is removed ”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³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´M}hj ubj½)�”}”(hhh]”hÌ)�”}”(hŒ0called when the host1x logical device is removed”h]”hŒ0called when the host1x logical device is removed”…”�”}”(hj+ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j' h´M}hj( ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j' h´M}hj% ubj›)�”}”(hŒ?``shutdown`` called when the host1x logical device is shut down”h]”(j¡)�”}”(hŒ ``shutdown``”h]”j§)�”}”(hjK h]”hŒshutdown”…”�”}”(hjM h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjI ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´M}hjE ubj½)�”}”(hhh]”hÌ)�”}”(hŒ2called when the host1x logical device is shut down”h]”hŒ2called when the host1x logical device is shut down”…”�”}”(hjd h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.h”h´M~hja ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjE ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j` h´M}hj% ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j•hjÝ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj•h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œhost1x_device_init (C function)”Œc.host1x_device_init”hNt”auh1j¦hj•h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ5int host1x_device_init (struct host1x_device *device)”h]”jÃ)�”}”(hŒ4int host1x_device_init(struct host1x_device *device)”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³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´K³ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj· h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj¡ h²hh³j¶ h´K³ubjì)�”}”(hŒhost1x_device_init”h]”jò)�”}”(hŒhost1x_device_init”h]”hŒhost1x_device_init”…”�”}”(hjÉ h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjÅ ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhj¡ h²hh³j¶ h´K³ubhŒdesc_parameterlist”“”)�”}”(hŒ(struct host1x_device *device)”h]”hŒdesc_parameter”“”)�”}”(hŒstruct host1x_device *device”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Œ host1x_device”h]”hŒ host1x_device”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”Œ identifier”Œ reftarget”j Œmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”j" Œ ASTIdentifier”“”)�”}”j jË sbŒc.host1x_device_init”†”asbuh1hhjå ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/ h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjå ubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hj? h²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1j= hjå ubjò)�”}”(hŒdevice”h]”hŒdevice”…”�”}”(hjN 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Ý hj¡ h²hh³j¶ h´K³ubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhj� h²hh³j¶ h´K³ubah}”(h]”j˜ ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³j¶ h´K³hjš h²hubj )�”}”(hhh]”hÌ)�”}”(hŒ"initialize a host1x logical device”h]”hŒ"initialize a host1x logical device”…”�”}”(hjx h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´K³hju h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjš h²hh³j¶ h´K³ubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBj� jCj� jD‰jE‰jF‰uh1j·h²hhj•h³Nh´NubjH)�”}”(hXÐ**Parameters** ``struct host1x_device *device`` host1x logical device **Description** The driver for the host1x logical device can call this during execution of its :c:type:`host1x_driver.probe ` implementation to initialize each of its clients. The client drivers access the subsystem specific driver data using the :c:type:`host1x_client.parent ` field and driver data associated with it (usually by calling dev_get_drvdata()).”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hjš h]”hŒ Parameters”…”�”}”(hjœ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj˜ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´K·hj” ubj–)�”}”(hhh]”j›)�”}”(hŒ7``struct host1x_device *device`` host1x logical device ”h]”(j¡)�”}”(hŒ ``struct host1x_device *device``”h]”j§)�”}”(hj¹ h]”hŒstruct host1x_device *device”…”�”}”(hj» h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj· ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´K´hj³ ubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x logical device”h]”hŒhost1x logical device”…”�”}”(hjÒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÎ h´K´hjÏ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj³ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jÎ h´K´hj° ubah}”(h]”h ]”h"]”h$]”h&]”uh1j•hj” ubhÌ)�”}”(hŒ**Description**”h]”jR)�”}”(hjô h]”hŒ Description”…”�”}”(hjö h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjò ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´K¶hj” ubhÌ)�”}”(hXuThe driver for the host1x logical device can call this during execution of its :c:type:`host1x_driver.probe ` implementation to initialize each of its clients. The client drivers access the subsystem specific driver data using the :c:type:`host1x_client.parent ` field and driver data associated with it (usually by calling dev_get_drvdata()).”h]”(hŒOThe driver for the host1x logical device can call this during execution of its ”…”�”}”(hj h²hh³Nh´Nubh)�”}”(hŒ-:c:type:`host1x_driver.probe `”h]”j§)�”}”(hjh]”hŒhost1x_driver.probe”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”(Œxref”j<Œc-type”eh"]”h$]”h&]”uh1j¦hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œ gpu/tegra”Œ refdomain”j<Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j! j$ )�”}”j' ]”sbŒ reftarget”Œ host1x_driver”uh1hh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Kµhj ubhŒz implementation to initialize each of its clients. The client drivers access the subsystem specific driver data using the ”…”�”}”(hj h²hh³Nh´Nubh)�”}”(hŒ.:c:type:`host1x_client.parent `”h]”j§)�”}”(hj>h]”hŒhost1x_client.parent”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”(j j<Œc-type”eh"]”h$]”h&]”uh1j¦hj<ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j,Œ refdomain”j<Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j! j2j5Œ host1x_client”uh1hh³j7h´Kµhj ubhŒQ field and driver data associated with it (usually by calling dev_get_drvdata()).”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j7h´Kµhj” ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj•h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œhost1x_device_exit (C function)”Œc.host1x_device_exit”hNt”auh1j¦hj•h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ5int host1x_device_exit (struct host1x_device *device)”h]”jÃ)�”}”(hŒ4int host1x_device_exit(struct host1x_device *device)”h]”(j¦ )�”}”(hŒint”h]”hŒint”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”j² ah"]”h$]”h&]”uh1j¥ hj�h²hh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´KñubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj�h²hh³j“h´Kñubjì)�”}”(hŒhost1x_device_exit”h]”jò)�”}”(hŒhost1x_device_exit”h]”hŒhost1x_device_exit”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj¢ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhj�h²hh³j“h´KñubjÞ )�”}”(hŒ(struct host1x_device *device)”h]”jä )�”}”(hŒstruct host1x_device *device”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Œ host1x_device”h]”hŒ host1x_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”Nj! j$ )�”}”j' ]”j* )�”}”j j¨sbŒc.host1x_device_exit”†”asbuh1hhj¾ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj¾ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hj¾ubjò)�”}”(hŒdevice”h]”hŒdevice”…”�”}”(hjh²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Ý hj�h²hh³j“h´Kñubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhj}h²hh³j“h´Kñubah}”(h]”jxah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³j“h´Kñhjzh²hubj )�”}”(hhh]”hÌ)�”}”(hŒ"uninitialize host1x logical device”h]”hŒ"uninitialize host1x logical device”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´KñhjBh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjzh²hh³j“h´Kñubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBj]jCj]jD‰jE‰jF‰uh1j·h²hhj•h³Nh´NubjH)�”}”(hXH**Parameters** ``struct host1x_device *device`` host1x logical device **Description** When the driver for a host1x logical device is unloaded, it can call this function to tear down each of its clients. Typically this is done after a subsystem-specific data structure is removed and the functionality can no longer be used.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hjgh]”hŒ Parameters”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjeubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Kõhjaubj–)�”}”(hhh]”j›)�”}”(hŒ7``struct host1x_device *device`` host1x logical device ”h]”(j¡)�”}”(hŒ ``struct host1x_device *device``”h]”j§)�”}”(hj†h]”hŒstruct host1x_device *device”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj„ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Kòhj€ubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x logical device”h]”hŒhost1x logical device”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j›h´Kòhjœubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj€ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j›h´Kòhj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j•hjaubhÌ)�”}”(hŒ**Description**”h]”jR)�”}”(hjÁh]”hŒ Description”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´KôhjaubhÌ)�”}”(hŒíWhen the driver for a host1x logical device is unloaded, it can call this function to tear down each of its clients. Typically this is done after a subsystem-specific data structure is removed and the functionality can no longer be used.”h]”hŒíWhen the driver for a host1x logical device is unloaded, it can call this function to tear down each of its clients. Typically this is done after a subsystem-specific data structure is removed and the functionality can no longer be used.”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Kóhjaubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj•h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œ(host1x_driver_register_full (C function)”Œc.host1x_driver_register_full”hNt”auh1j¦hj•h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒTint host1x_driver_register_full (struct host1x_driver *driver, struct module *owner)”h]”jÃ)�”}”(hŒSint host1x_driver_register_full(struct host1x_driver *driver, struct module *owner)”h]”(j¦ )�”}”(hŒint”h]”hŒint”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j² ah"]”h$]”h&]”uh1j¥ hjh²hh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M”ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjh²hh³jh´M”ubjì)�”}”(hŒhost1x_driver_register_full”h]”jò)�”}”(hŒhost1x_driver_register_full”h]”hŒhost1x_driver_register_full”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj#ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhjh²hh³jh´M”ubjÞ )�”}”(hŒ4(struct host1x_driver *driver, struct module *owner)”h]”(jä )�”}”(hŒstruct host1x_driver *driver”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(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?ubh)�”}”(hhh]”jò)�”}”(hŒ host1x_driver”h]”hŒ host1x_driver”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj^ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jcŒmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j j)sbŒc.host1x_driver_register_full”†”asbuh1hhj?ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj?ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hj?ubjò)�”}”(hŒdriver”h]”hŒdriver”…”�”}”(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Œstruct module *owner”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Œmodule”h]”hŒmodule”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjÐubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jÕŒmodname”NŒ classname”Nj! j$ )�”}”j' ]”j}Œc.host1x_driver_register_full”†”asbuh1hhj±ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj±ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”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´M”ubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhjþh²hh³jh´M”ubah}”(h]”jùah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³jh´M”hjûh²hubj )�”}”(hhh]”hÌ)�”}”(hŒregister a host1x driver”h]”hŒregister a host1x driver”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M”hj3h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjûh²hh³jh´M”ubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBjNjCjNjD‰jE‰jF‰uh1j·h²hhj•h³Nh´NubjH)�”}”(hX•**Parameters** ``struct host1x_driver *driver`` host1x driver ``struct module *owner`` owner module **Description** Drivers for host1x logical devices call this function to register a driver with the infrastructure. Note that since these drive logical devices, the registration of the driver actually triggers tho logical device creation. A logical device will be created for each host1x instance.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hjXh]”hŒ Parameters”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjVubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M˜hjRubj–)�”}”(hhh]”(j›)�”}”(hŒ/``struct host1x_driver *driver`` host1x driver ”h]”(j¡)�”}”(hŒ ``struct host1x_driver *driver``”h]”j§)�”}”(hjwh]”hŒstruct host1x_driver *driver”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjuubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M•hjqubj½)�”}”(hhh]”hÌ)�”}”(hŒ host1x driver”h]”hŒ host1x driver”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jŒh´M•hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjqubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jŒh´M•hjnubj›)�”}”(hŒ&``struct module *owner`` owner module ”h]”(j¡)�”}”(hŒ``struct module *owner``”h]”j§)�”}”(hj°h]”hŒstruct module *owner”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M–hjªubj½)�”}”(hhh]”hÌ)�”}”(hŒ owner module”h]”hŒ owner module”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÅh´M–hjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjªubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jÅh´M–hjnubeh}”(h]”h ]”h"]”h$]”h&]”uh1j•hjRubhÌ)�”}”(hŒ**Description**”h]”jR)�”}”(hjëh]”hŒ Description”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjéubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M˜hjRubhÌ)�”}”(hXDrivers for host1x logical devices call this function to register a driver with the infrastructure. Note that since these drive logical devices, the registration of the driver actually triggers tho logical device creation. A logical device will be created for each host1x instance.”h]”hXDrivers for host1x logical devices call this function to register a driver with the infrastructure. Note that since these drive logical devices, the registration of the driver actually triggers tho logical device creation. A logical device will be created for each host1x instance.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M—hjRubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj•h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œ%host1x_driver_unregister (C function)”Œc.host1x_driver_unregister”hNt”auh1j¦hj•h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒh´M·ubjì)�”}”(hŒhost1x_driver_unregister”h]”jò)�”}”(hŒhost1x_driver_unregister”h]”hŒhost1x_driver_unregister”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjMubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhj,h²hh³j>h´M·ubjÞ )�”}”(hŒ(struct host1x_driver *driver)”h]”jä )�”}”(hŒstruct host1x_driver *driver”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhjiubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjiubh)�”}”(hhh]”jò)�”}”(hŒ host1x_driver”h]”hŒ host1x_driver”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjˆubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j�Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j jSsbŒc.host1x_driver_unregister”†”asbuh1hhjiubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjiubj> )�”}”(hjA h]”hŒ*”…”�”}”(hj¹h²hh³Nh´Nubah•N}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjiubjò)�”}”(hŒdriver”h]”hŒdriver”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjiubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hjeubah}”(h]”h ]”h"]”h$]”h&]”j j uh1jÝ hj,h²hh³j>h´M·ubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhj(h²hh³j>h´M·ubah}”(h]”j#ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³j>h´M·hj%h²hubj )�”}”(hhh]”hÌ)�”}”(hŒunregister a host1x driver”h]”hŒunregister a host1x driver”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M·hjíh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj%h²hh³j>h´M·ubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBjjCjjD‰jE‰jF‰uh1j·h²hhj•h³Nh´NubjH)�”}”(hŒâ**Parameters** ``struct host1x_driver *driver`` host1x driver **Description** Unbinds the driver from each of the host1x logical devices that it is bound to, effectively removing the subsystem devices that they represent.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hjh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M»hj ubj–)�”}”(hhh]”j›)�”}”(hŒ/``struct host1x_driver *driver`` host1x driver ”h]”(j¡)�”}”(hŒ ``struct host1x_driver *driver``”h]”j§)�”}”(hj1h]”hŒstruct host1x_driver *driver”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M¸hj+ubj½)�”}”(hhh]”hÌ)�”}”(hŒ host1x driver”h]”hŒ host1x driver”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jFh´M¸hjGubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jFh´M¸hj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j•hj ubhÌ)�”}”(hŒ**Description**”h]”jR)�”}”(hjlh]”hŒ Description”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjjubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Mºhj ubhÌ)�”}”(hŒ�Unbinds the driver from each of the host1x logical devices that it is bound to, effectively removing the subsystem devices that they represent.”h]”hŒ�Unbinds the driver from each of the host1x logical devices that it is bound to, effectively removing the subsystem devices that they represent.”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M¹hj ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj•h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œ!__host1x_client_init (C function)”Œc.__host1x_client_init”hNt”auh1j¦hj•h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒTvoid __host1x_client_init (struct host1x_client *client, struct lock_class_key *key)”h]”jÃ)�”}”(hŒSvoid __host1x_client_init(struct host1x_client *client, struct lock_class_key *key)”h]”(j¦ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”j² ah"]”h$]”h&]”uh1j¥ hj­h²hh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MÑubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj­h²hh³j¿h´MÑubjì)�”}”(hŒ__host1x_client_init”h]”jò)�”}”(hŒ__host1x_client_init”h]”hŒ__host1x_client_init”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjÎubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhj­h²hh³j¿h´MÑubjÞ )�”}”(hŒ:(struct host1x_client *client, struct lock_class_key *key)”h]”(jä )�”}”(hŒstruct host1x_client *client”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Œ host1x_client”h]”hŒ host1x_client”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j jÔsbŒc.__host1x_client_init”†”asbuh1hhjêubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjêubj> )�”}”(hjA h]”hŒ*”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjêubjò)�”}”(hŒclient”h]”hŒclient”…”�”}”(hjGh²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 lock_class_key *key”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhj\ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj\ubh)�”}”(hhh]”jò)�”}”(hŒlock_class_key”h]”hŒlock_class_key”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj{ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j€Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j(Œc.__host1x_client_init”†”asbuh1hhj\ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj\ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hj\ubjò)�”}”(hŒkey”h]”hŒkey”…”�”}”(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Ý hj­h²hh³j¿h´MÑubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhj©h²hh³j¿h´MÑubah}”(h]”j¤ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³j¿h´MÑhj¦h²hubj )�”}”(hhh]”hÌ)�”}”(hŒinitialize a host1x client”h]”hŒinitialize a host1x client”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MÑhjÞh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¦h²hh³j¿h´MÑubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBjùjCjùjD‰jE‰jF‰uh1j·h²hhj•h³Nh´NubjH)�”}”(hŒ�**Parameters** ``struct host1x_client *client`` host1x client ``struct lock_class_key *key`` lock class key for the client-specific mutex”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hjh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MÕhjýubj–)�”}”(hhh]”(j›)�”}”(hŒ/``struct host1x_client *client`` host1x client ”h]”(j¡)�”}”(hŒ ``struct host1x_client *client``”h]”j§)�”}”(hj"h]”hŒstruct host1x_client *client”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MÒhjubj½)�”}”(hhh]”hÌ)�”}”(hŒ host1x client”h]”hŒ host1x client”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j7h´MÒhj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j7h´MÒhjubj›)�”}”(hŒK``struct lock_class_key *key`` lock class key for the client-specific mutex”h]”(j¡)�”}”(hŒ``struct lock_class_key *key``”h]”j§)�”}”(hj[h]”hŒstruct lock_class_key *key”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjYubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MÔhjUubj½)�”}”(hhh]”hÌ)�”}”(hŒ,lock class key for the client-specific mutex”h]”hŒ,lock class key for the client-specific mutex”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MÓhjqubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjUubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jph´MÔhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j•hjýubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj•h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œhost1x_client_exit (C function)”Œc.host1x_client_exit”hNt”auh1j¦hj•h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ6void host1x_client_exit (struct host1x_client *client)”h]”jÃ)�”}”(hŒ5void host1x_client_exit(struct host1x_client *client)”h]”(j¦ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”j² ah"]”h$]”h&]”uh1j¥ hj±h²hh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MßubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj±h²hh³jÃh´Mßubjì)�”}”(hŒhost1x_client_exit”h]”jò)�”}”(hŒhost1x_client_exit”h]”hŒhost1x_client_exit”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjÒubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhj±h²hh³jÃh´MßubjÞ )�”}”(hŒ(struct host1x_client *client)”h]”jä )�”}”(hŒstruct host1x_client *client”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Œ host1x_client”h]”hŒ host1x_client”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j jØsbŒc.host1x_client_exit”†”asbuh1hhjîubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjîubj> )�”}”(hjA h]”hŒ*”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjîubjò)�”}”(hŒclient”h]”hŒclient”…”�”}”(hjKh²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Ý hj±h²hh³jÃh´Mßubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhj­h²hh³jÃh´Mßubah}”(h]”j¨ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³jÃh´Mßhjªh²hubj )�”}”(hhh]”hÌ)�”}”(hŒuninitialize a host1x client”h]”hŒuninitialize a host1x client”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Mßhjrh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjªh²hh³jÃh´Mßubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBj�jCj�jD‰jE‰jF‰uh1j·h²hhj•h³Nh´NubjH)�”}”(hŒ@**Parameters** ``struct host1x_client *client`` host1x client”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hj—h]”hŒ Parameters”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Mãhj‘ubj–)�”}”(hhh]”j›)�”}”(hŒ.``struct host1x_client *client`` host1x client”h]”(j¡)�”}”(hŒ ``struct host1x_client *client``”h]”j§)�”}”(hj¶h]”hŒstruct host1x_client *client”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Måhj°ubj½)�”}”(hhh]”hÌ)�”}”(hŒ host1x client”h]”hŒ host1x client”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MàhjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jËh´Måhj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1j•hj‘ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj•h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œ%__host1x_client_register (C function)”Œc.__host1x_client_register”hNt”auh1j¦hj•h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ;int __host1x_client_register (struct host1x_client *client)”h]”jÃ)�”}”(hŒ:int __host1x_client_register(struct host1x_client *client)”h]”(j¦ )�”}”(hŒint”h]”hŒint”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j² ah"]”h$]”h&]”uh1j¥ hj h²hh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MéubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj h²hh³jh´Méubjì)�”}”(hŒ__host1x_client_register”h]”jò)�”}”(hŒ__host1x_client_register”h]”hŒ__host1x_client_register”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj-ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhj h²hh³jh´MéubjÞ )�”}”(hŒ(struct host1x_client *client)”h]”jä )�”}”(hŒstruct host1x_client *client”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhjIubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjIubh)�”}”(hhh]”jò)�”}”(hŒ host1x_client”h]”hŒ host1x_client”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjhubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jmŒmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j j3sbŒc.__host1x_client_register”†”asbuh1hhjIubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjIubj> )�”}”(hjA h]”hŒ*”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjIubjò)�”}”(hŒclient”h]”hŒclient”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjIubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hjEubah}”(h]”h ]”h"]”h$]”h&]”j j uh1jÝ hj h²hh³jh´Méubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhjh²hh³jh´Méubah}”(h]”jah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³jh´Méhjh²hubj )�”}”(hhh]”hÌ)�”}”(hŒregister a host1x client”h]”hŒregister a host1x client”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MéhjÍh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³jh´Méubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBjèjCjèjD‰jE‰jF‰uh1j·h²hhj•h³Nh´NubjH)�”}”(hX**Parameters** ``struct host1x_client *client`` host1x client **Description** Registers a host1x client with each host1x controller instance. Note that each client will only match their parent host1x controller and will only be associated with that instance. Once all clients have been registered with their parent host1x controller, the infrastructure will set up the logical device and call host1x_device_init(), which will in turn call each client's :c:type:`host1x_client_ops.init ` implementation.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hjòh]”hŒ Parameters”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjðubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Míhjìubj–)�”}”(hhh]”j›)�”}”(hŒ/``struct host1x_client *client`` host1x client ”h]”(j¡)�”}”(hŒ ``struct host1x_client *client``”h]”j§)�”}”(hjh]”hŒstruct host1x_client *client”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Mêhj ubj½)�”}”(hhh]”hÌ)�”}”(hŒ host1x client”h]”hŒ host1x client”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j&h´Mêhj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j&h´Mêhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j•hjìubhÌ)�”}”(hŒ**Description**”h]”jR)�”}”(hjLh]”hŒ Description”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjJubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MìhjìubhÌ)�”}”(hX»Registers a host1x client with each host1x controller instance. Note that each client will only match their parent host1x controller and will only be associated with that instance. Once all clients have been registered with their parent host1x controller, the infrastructure will set up the logical device and call host1x_device_init(), which will in turn call each client's :c:type:`host1x_client_ops.init ` implementation.”h]”(hXyRegisters a host1x client with each host1x controller instance. Note that each client will only match their parent host1x controller and will only be associated with that instance. Once all clients have been registered with their parent host1x controller, the infrastructure will set up the logical device and call host1x_device_init(), which will in turn call each client’s ”…”�”}”(hjbh²hh³Nh´Nubh)�”}”(hŒ4:c:type:`host1x_client_ops.init `”h]”j§)�”}”(hjlh]”hŒhost1x_client_ops.init”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”(j j<Œc-type”eh"]”h$]”h&]”uh1j¦hjjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j,Œ refdomain”j<Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j! j2j5Œhost1x_client_ops”uh1hh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MëhjbubhŒ implementation.”…”�”}”(hjbh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j‰h´Mëhjìubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj•h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œ%host1x_client_unregister (C function)”Œc.host1x_client_unregister”hNt”auh1j¦hj•h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ )�”}”(hjA h]”hŒ*”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjíubjò)�”}”(hŒclient”h]”hŒclient”…”�”}”(hjJh²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Ý hj°h²hh³jÂh´M ubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhj¬h²hh³jÂh´M ubah}”(h]”j§ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³jÂh´M hj©h²hubj )�”}”(hhh]”hÌ)�”}”(hŒunregister a host1x client”h]”hŒunregister a host1x client”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M hjqh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj©h²hh³jÂh´M ubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBjŒjCjŒjD‰jE‰jF‰uh1j·h²hhj•h³Nh´NubjH)�”}”(hŒ×**Parameters** ``struct host1x_client *client`` host1x client **Description** Removes a host1x client from its host1x controller instance. If a logical device has already been initialized, it will be torn down.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hj–h]”hŒ Parameters”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Mhj�ubj–)�”}”(hhh]”j›)�”}”(hŒ/``struct host1x_client *client`` host1x client ”h]”(j¡)�”}”(hŒ ``struct host1x_client *client``”h]”j§)�”}”(hjµh]”hŒstruct host1x_client *client”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Mhj¯ubj½)�”}”(hhh]”hÌ)�”}”(hŒ host1x client”h]”hŒ host1x client”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÊh´MhjËubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj¯ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jÊh´Mhj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1j•hj�ubhÌ)�”}”(hŒ**Description**”h]”jR)�”}”(hjðh]”hŒ Description”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjîubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Mhj�ubhÌ)�”}”(hŒ„Removes a host1x client from its host1x controller instance. If a logical device has already been initialized, it will be torn down.”h]”hŒ„Removes a host1x client from its host1x controller instance. If a logical device has already been initialized, it will be torn down.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Mhj�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj•h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œhost1x_bo_pin (C function)”Œc.host1x_bo_pin”hNt”auh1j¦hj•h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ�struct host1x_bo_mapping * host1x_bo_pin (struct device *dev, struct host1x_bo *bo, enum dma_data_direction dir, struct host1x_bo_cache *cache)”h]”jÃ)�”}”(hŒ�struct host1x_bo_mapping *host1x_bo_pin(struct device *dev, struct host1x_bo *bo, enum dma_data_direction dir, struct host1x_bo_cache *cache)”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhj1h²hh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M{ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj1h²hh³jBh´M{ubh)�”}”(hhh]”jò)�”}”(hŒhost1x_bo_mapping”h]”hŒhost1x_bo_mapping”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjQubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jVŒmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j Œ host1x_bo_pin”sbŒc.host1x_bo_pin”†”asbuh1hhj1h²hh³jBh´M{ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj1h²hh³jBh´M{ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hj1h²hh³jBh´M{ubjì)�”}”(hŒ host1x_bo_pin”h]”jò)�”}”(hjrh]”hŒ host1x_bo_pin”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj�ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhj1h²hh³jBh´M{ubjÞ )�”}”(hŒf(struct device *dev, struct host1x_bo *bo, enum dma_data_direction dir, struct host1x_bo_cache *cache)”h]”(jä )�”}”(hŒstruct device *dev”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”Nj! j$ )�”}”j' ]”jpŒc.host1x_bo_pin”†”asbuh1hhj«ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj«ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hj«ubjò)�”}”(hŒdev”h]”hŒdev”…”�”}”(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 host1x_bo *bo”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhjubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjubh)�”}”(hhh]”jò)�”}”(hŒ host1x_bo”h]”hŒ host1x_bo”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j?Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”jpŒc.host1x_bo_pin”†”asbuh1hhjubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjubjò)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hj§ubjä )�”}”(hŒenum dma_data_direction dir”h]”(jÉ)�”}”(hŒenum”h]”hŒenum”…”�”}”(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Œdma_data_direction”h]”hŒdma_data_direction”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj«ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j°Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”jpŒc.host1x_bo_pin”†”asbuh1hhj‹ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj‹ubjò)�”}”(hŒdir”h]”hŒdir”…”�”}”(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Œstruct host1x_bo_cache *cache”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hjóh²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)�”}”(hhh]”jò)�”}”(hŒhost1x_bo_cache”h]”hŒhost1x_bo_cache”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Nj! j$ )�”}”j' ]”jpŒc.host1x_bo_pin”†”asbuh1hhjïubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjïubj> )�”}”(hjA h]”hŒ*”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjïubjò)�”}”(hŒcache”h]”hŒcache”…”�”}”(hjJh²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Ý hj1h²hh³jBh´M{ubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhj-h²hh³jBh´M{ubah}”(h]”j(ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³jBh´M{hj*h²hubj )�”}”(hhh]”hÌ)�”}”(hŒ*Create a DMA mapping for the buffer object”h]”hŒ*Create a DMA mapping for the buffer object”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M{hjqh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj*h²hh³jBh´M{ubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBjŒjCjŒjD‰jE‰jF‰uh1j·h²hhj•h³Nh´NubjH)�”}”(hXr**Parameters** ``struct device *dev`` Device onto which DMA map to ``struct host1x_bo *bo`` Buffer object to map ``enum dma_data_direction dir`` DMA direction ``struct host1x_bo_cache *cache`` Cache in which to store mapping, or NULL **Description** Creates a DMA mapping pointing to **bo** for **dev**. The refcount of **bo** is incremented until host1x_bo_unpin is called. If **cache** is specified, the mapping is also stored in the cache and not released until **bo** is freed (refcount drops to zero). This improves performance when a buffer is pinned and unpinned frequently as in the case of display use.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hj–h]”hŒ Parameters”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Mhj�ubj–)�”}”(hhh]”(j›)�”}”(hŒ4``struct device *dev`` Device onto which DMA map to ”h]”(j¡)�”}”(hŒ``struct device *dev``”h]”j§)�”}”(hjµh]”hŒstruct device *dev”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M|hj¯ubj½)�”}”(hhh]”hÌ)�”}”(hŒDevice onto which DMA map to”h]”hŒDevice onto which DMA map to”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÊh´M|hjËubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj¯ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jÊh´M|hj¬ubj›)�”}”(hŒ.``struct host1x_bo *bo`` Buffer object to map ”h]”(j¡)�”}”(hŒ``struct host1x_bo *bo``”h]”j§)�”}”(hjîh]”hŒstruct host1x_bo *bo”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjìubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M}hjèubj½)�”}”(hhh]”hÌ)�”}”(hŒBuffer object to map”h]”hŒBuffer object to map”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jh´M}hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjèubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jh´M}hj¬ubj›)�”}”(hŒ.``enum dma_data_direction dir`` DMA direction ”h]”(j¡)�”}”(hŒ``enum dma_data_direction dir``”h]”j§)�”}”(hj'h]”hŒenum dma_data_direction dir”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M~hj!ubj½)�”}”(hhh]”hÌ)�”}”(hŒ DMA direction”h]”hŒ DMA direction”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j<h´M~hj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j<h´M~hj¬ubj›)�”}”(hŒK``struct host1x_bo_cache *cache`` Cache in which to store mapping, or NULL ”h]”(j¡)�”}”(hŒ!``struct host1x_bo_cache *cache``”h]”j§)�”}”(hj`h]”hŒstruct host1x_bo_cache *cache”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MhjZubj½)�”}”(hhh]”hÌ)�”}”(hŒ(Cache in which to store mapping, or NULL”h]”hŒ(Cache in which to store mapping, or NULL”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³juh´Mhjvubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjZubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³juh´Mhj¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j•hj�ubhÌ)�”}”(hŒ**Description**”h]”jR)�”}”(hj›h]”hŒ Description”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M�hj�ubhÌ)�”}”(hŒ|Creates a DMA mapping pointing to **bo** for **dev**. The refcount of **bo** is incremented until host1x_bo_unpin is called.”h]”(hŒ"Creates a DMA mapping pointing to ”…”�”}”(hj±h²hh³Nh´NubjR)�”}”(hŒ**bo**”h]”hŒbo”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj±ubhŒ for ”…”�”}”(hj±h²hh³Nh´NubjR)�”}”(hŒ**dev**”h]”hŒdev”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj±ubhŒ. The refcount of ”…”�”}”(hj±h²hh³Nh´NubjR)�”}”(hŒ**bo**”h]”hŒbo”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj±ubhŒ0 is incremented until host1x_bo_unpin is called.”…”�”}”(hj±h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´M€hj�ubhÌ)�”}”(hŒìIf **cache** is specified, the mapping is also stored in the cache and not released until **bo** is freed (refcount drops to zero). This improves performance when a buffer is pinned and unpinned frequently as in the case of display use.”h]”(hŒIf ”…”�”}”(hjöh²hh³Nh´NubjR)�”}”(hŒ **cache**”h]”hŒcache”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjöubhŒN is specified, the mapping is also stored in the cache and not released until ”…”�”}”(hjöh²hh³Nh´NubjR)�”}”(hŒ**bo**”h]”hŒbo”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjöubhŒŒ is freed (refcount drops to zero). This improves performance when a buffer is pinned and unpinned frequently as in the case of display use.”…”�”}”(hjöh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Mƒhj�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj•h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œhost1x_bo_unpin (C function)”Œc.host1x_bo_unpin”hNt”auh1j¦hj•h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ8void host1x_bo_unpin (struct host1x_bo_mapping *mapping)”h]”jÃ)�”}”(hŒ7void host1x_bo_unpin(struct host1x_bo_mapping *mapping)”h]”(j¦ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”j² ah"]”h$]”h&]”uh1j¥ hjEh²hh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MÎubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjEh²hh³jWh´MÎubjì)�”}”(hŒhost1x_bo_unpin”h]”jò)�”}”(hŒhost1x_bo_unpin”h]”hŒhost1x_bo_unpin”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjfubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhjEh²hh³jWh´MÎubjÞ )�”}”(hŒ#(struct host1x_bo_mapping *mapping)”h]”jä )�”}”(hŒ!struct host1x_bo_mapping *mapping”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Œhost1x_bo_mapping”h]”hŒhost1x_bo_mapping”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj¡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j¦Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j jlsbŒc.host1x_bo_unpin”†”asbuh1hhj‚ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj‚ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hj‚ubjò)�”}”(hŒmapping”h]”hŒmapping”…”�”}”(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Ý hjEh²hh³jWh´MÎubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhjAh²hh³jWh´MÎubah}”(h]”j<ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³jWh´MÎhj>h²hubj )�”}”(hhh]”hÌ)�”}”(hŒ5Release an established DMA mapping of a buffer object”h]”hŒ5Release an established DMA mapping of a buffer object”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MÎhjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj>h²hh³jWh´MÎubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBj!jCj!jD‰jE‰jF‰uh1j·h²hhj•h³Nh´NubjH)�”}”(hŒÇ**Parameters** ``struct host1x_bo_mapping *mapping`` Mapping to release **Description** Unmaps the given **mapping**, unless it is cached. Decreases the refcount on the underlying buffer object.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hj+h]”hŒ Parameters”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj)ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MÒhj%ubj–)�”}”(hhh]”j›)�”}”(hŒ9``struct host1x_bo_mapping *mapping`` Mapping to release ”h]”(j¡)�”}”(hŒ%``struct host1x_bo_mapping *mapping``”h]”j§)�”}”(hjJh]”hŒ!struct host1x_bo_mapping *mapping”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjHubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MÏhjDubj½)�”}”(hhh]”hÌ)�”}”(hŒMapping to release”h]”hŒMapping to release”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j_h´MÏhj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjDubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j_h´MÏhjAubah}”(h]”h ]”h"]”h$]”h&]”uh1j•hj%ubhÌ)�”}”(hŒ**Description**”h]”jR)�”}”(hj…h]”hŒ Description”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MÑhj%ubhÌ)�”}”(hŒjUnmaps the given **mapping**, unless it is cached. Decreases the refcount on the underlying buffer object.”h]”(hŒUnmaps the given ”…”�”}”(hj›h²hh³Nh´NubjR)�”}”(hŒ **mapping**”h]”hŒmapping”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj›ubhŒN, unless it is cached. Decreases the refcount on the underlying buffer object.”…”�”}”(hj›h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MÐhj%ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj•h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œ,host1x_bo_clear_cached_mappings (C function)”Œ!c.host1x_bo_clear_cached_mappings”hNt”auh1j¦hj•h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ;void host1x_bo_clear_cached_mappings (struct host1x_bo *bo)”h]”jÃ)�”}”(hŒ:void host1x_bo_clear_cached_mappings(struct host1x_bo *bo)”h]”(j¦ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”j² ah"]”h$]”h&]”uh1j¥ hjØh²hh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´MæubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjØh²hh³jêh´Mæubjì)�”}”(hŒhost1x_bo_clear_cached_mappings”h]”jò)�”}”(hŒhost1x_bo_clear_cached_mappings”h]”hŒhost1x_bo_clear_cached_mappings”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjùubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhjØh²hh³jêh´MæubjÞ )�”}”(hŒ(struct host1x_bo *bo)”h]”jä )�”}”(hŒstruct host1x_bo *bo”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Œ host1x_bo”h]”hŒ host1x_bo”…”�”}”(hj7 h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj4 ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j9 Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j jÿsbŒ!c.host1x_bo_clear_cached_mappings”†”asbuh1hhj ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjW h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hje h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hj ubjò)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjr 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Ý hjØh²hh³jêh´Mæubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhjÔh²hh³jêh´Mæubah}”(h]”jÏah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³jêh´MæhjÑh²hubj )�”}”(hhh]”hÌ)�”}”(hŒ+Remove all cached mappings pointing at a bo”h]”hŒ+Remove all cached mappings pointing at a bo”…”�”}”(hjœ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Mæhj™ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÑh²hh³jêh´Mæubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBj´ jCj´ jD‰jE‰jF‰uh1j·h²hhj•h³Nh´NubjH)�”}”(hX**Parameters** ``struct host1x_bo *bo`` Buffer object to release mappings of **Description** Drops references to any mappings pointing to **bo** left in any caches. This must be called by any host1x_bo implementers that may be pinned with caching enabled before freeing the bo.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hj¾ h]”hŒ Parameters”…”�”}”(hjÀ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj¼ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Mêhj¸ ubj–)�”}”(hhh]”j›)�”}”(hŒ>``struct host1x_bo *bo`` Buffer object to release mappings of ”h]”(j¡)�”}”(hŒ``struct host1x_bo *bo``”h]”j§)�”}”(hjÝ h]”hŒstruct host1x_bo *bo”…”�”}”(hjß h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjÛ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Mçhj× ubj½)�”}”(hhh]”hÌ)�”}”(hŒ$Buffer object to release mappings of”h]”hŒ$Buffer object to release mappings of”…”�”}”(hjö h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jò h´Mçhjó ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj× ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jò h´MçhjÔ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j•hj¸ ubhÌ)�”}”(hŒ**Description**”h]”jR)�”}”(hj!h]”hŒ Description”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Méhj¸ ubhÌ)�”}”(hŒ¸Drops references to any mappings pointing to **bo** left in any caches. This must be called by any host1x_bo implementers that may be pinned with caching enabled before freeing the bo.”h]”(hŒ-Drops references to any mappings pointing to ”…”�”}”(hj.!h²hh³Nh´NubjR)�”}”(hŒ**bo**”h]”hŒbo”…”�”}”(hj6!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj.!ubhŒ… left in any caches. This must be called by any host1x_bo implementers that may be pinned with caching enabled before freeing the bo.”…”�”}”(hj.!h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.c”h´Mèhj¸ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj•h²hh³Nh´Nubeh}”(h]”Œhost1x-infrastructure-reference”ah ]”h"]”Œhost1x infrastructure reference”ah$]”h&]”uh1hµhjZh²hh³hÊh´K0ubh¶)�”}”(hhh]”(h»)�”}”(hŒHost1x Syncpoint Reference”h]”hŒHost1x Syncpoint Reference”…”�”}”(hja!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj^!h²hh³hÊh´K8ubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œ host1x_syncpt_alloc (C function)”Œc.host1x_syncpt_alloc”hNt”auh1j¦hj^!h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒgstruct host1x_syncpt * host1x_syncpt_alloc (struct host1x *host, unsigned long flags, const char *name)”h]”jÃ)�”}”(hŒestruct host1x_syncpt *host1x_syncpt_alloc(struct host1x *host, unsigned long flags, const char *name)”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hjˆ!h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhj„!h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´K0ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–!h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj„!h²hh³j•!h´K0ubh)�”}”(hhh]”jò)�”}”(hŒ host1x_syncpt”h]”hŒ host1x_syncpt”…”�”}”(hj§!h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj¤!ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j©!Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j Œhost1x_syncpt_alloc”sbŒc.host1x_syncpt_alloc”†”asbuh1hhj„!h²hh³j•!h´K0ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÈ!h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj„!h²hh³j•!h´K0ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjÖ!h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hj„!h²hh³j•!h´K0ubjì)�”}”(hŒhost1x_syncpt_alloc”h]”jò)�”}”(hjÅ!h]”hŒhost1x_syncpt_alloc”…”�”}”(hjç!h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjã!ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhj„!h²hh³j•!h´K0ubjÞ )�”}”(hŒ<(struct host1x *host, unsigned long flags, const char *name)”h]”(jä )�”}”(hŒstruct host1x *host”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Œhost1x”h]”hŒhost1x”…”�”}”(hj "h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j""Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”jÃ!Œc.host1x_syncpt_alloc”†”asbuh1hhjþ!ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj>"h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjþ!ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjL"h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjþ!ubjò)�”}”(hŒhost”h]”hŒhost”…”�”}”(hjY"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Œunsigned long flags”h]”(j¦ )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjr"h²hh³Nh´Nubah}”(h]”h ]”j² ah"]”h$]”h&]”uh1j¥ hjn"ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj€"h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjn"ubj¦ )�”}”(hŒlong”h]”hŒlong”…”�”}”(hjŽ"h²hh³Nh´Nubah}”(h]”h ]”j² ah"]”h$]”h&]”uh1j¥ hjn"ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœ"h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjn"ubjò)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjª"h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjn"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hjú!ubjä )�”}”(hŒconst char *name”h]”(jÉ)�”}”(hŒconst”h]”hŒconst”…”�”}”(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¿"ubj¦ )�”}”(hŒchar”h]”hŒchar”…”�”}”(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¿"ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjû"h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hj¿"ubjò)�”}”(hŒname”h]”hŒname”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj¿"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hjú!ubeh}”(h]”h ]”h"]”h$]”h&]”j j uh1jÝ hj„!h²hh³j•!h´K0ubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhj€!h²hh³j•!h´K0ubah}”(h]”j{!ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³j•!h´K0hj}!h²hubj )�”}”(hhh]”hÌ)�”}”(hŒallocate a syncpoint”h]”hŒallocate a syncpoint”…”�”}”(hj2#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´K0hj/#h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj}!h²hh³j•!h´K0ubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBjJ#jCjJ#jD‰jE‰jF‰uh1j·h²hhj^!h³Nh´NubjH)�”}”(hX¹**Parameters** ``struct host1x *host`` host1x device data ``unsigned long flags`` bitfield of HOST1X_SYNCPT_* flags ``const char *name`` name for the syncpoint for use in debug prints **Description** Allocates a hardware syncpoint for the caller's use. The caller then has the sole authority to mutate the syncpoint's value until it is freed again. If no free syncpoints are available, or a NULL name was specified, returns NULL.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hjT#h]”hŒ Parameters”…”�”}”(hjV#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjR#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´K4hjN#ubj–)�”}”(hhh]”(j›)�”}”(hŒ+``struct host1x *host`` host1x device data ”h]”(j¡)�”}”(hŒ``struct host1x *host``”h]”j§)�”}”(hjs#h]”hŒstruct host1x *host”…”�”}”(hju#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjq#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´K1hjm#ubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x device data”h]”hŒhost1x device data”…”�”}”(hjŒ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jˆ#h´K1hj‰#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjm#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jˆ#h´K1hjj#ubj›)�”}”(hŒ:``unsigned long flags`` bitfield of HOST1X_SYNCPT_* flags ”h]”(j¡)�”}”(hŒ``unsigned long flags``”h]”j§)�”}”(hj¬#h]”hŒunsigned long flags”…”�”}”(hj®#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjª#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´K2hj¦#ubj½)�”}”(hhh]”hÌ)�”}”(hŒ!bitfield of HOST1X_SYNCPT_* flags”h]”hŒ!bitfield of HOST1X_SYNCPT_* flags”…”�”}”(hjÅ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÁ#h´K2hjÂ#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj¦#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jÁ#h´K2hjj#ubj›)�”}”(hŒD``const char *name`` name for the syncpoint for use in debug prints ”h]”(j¡)�”}”(hŒ``const char *name``”h]”j§)�”}”(hjå#h]”hŒconst char *name”…”�”}”(hjç#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjã#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´K3hjß#ubj½)�”}”(hhh]”hÌ)�”}”(hŒ.name for the syncpoint for use in debug prints”h]”hŒ.name for the syncpoint for use in debug prints”…”�”}”(hjþ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jú#h´K3hjû#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjß#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jú#h´K3hjj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j•hjN#ubhÌ)�”}”(hŒ**Description**”h]”jR)�”}”(hj $h]”hŒ Description”…”�”}”(hj"$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´K5hjN#ubhÌ)�”}”(hŒ”Allocates a hardware syncpoint for the caller's use. The caller then has the sole authority to mutate the syncpoint's value until it is freed again.”h]”hŒ˜Allocates a hardware syncpoint for the caller’s use. The caller then has the sole authority to mutate the syncpoint’s value until it is freed again.”…”�”}”(hj6$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´K4hjN#ubhÌ)�”}”(hŒPIf no free syncpoints are available, or a NULL name was specified, returns NULL.”h]”hŒPIf no free syncpoints are available, or a NULL name was specified, returns NULL.”…”�”}”(hjE$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´K7hjN#ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj^!h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œhost1x_syncpt_id (C function)”Œc.host1x_syncpt_id”hNt”auh1j¦hj^!h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ/u32 host1x_syncpt_id (struct host1x_syncpt *sp)”h]”jÃ)�”}”(hŒ.u32 host1x_syncpt_id(struct host1x_syncpt *sp)”h]”(h)�”}”(hhh]”jò)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjw$h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjt$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jy$Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j Œhost1x_syncpt_id”sbŒc.host1x_syncpt_id”†”asbuh1hhjp$h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´KnubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™$h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjp$h²hh³j˜$h´Knubjì)�”}”(hŒhost1x_syncpt_id”h]”jò)�”}”(hj•$h]”hŒhost1x_syncpt_id”…”�”}”(hj«$h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj§$ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhjp$h²hh³j˜$h´KnubjÞ )�”}”(hŒ(struct host1x_syncpt *sp)”h]”jä )�”}”(hŒstruct host1x_syncpt *sp”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Œ host1x_syncpt”h]”hŒ host1x_syncpt”…”�”}”(hjä$h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjá$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jæ$Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j“$Œc.host1x_syncpt_id”†”asbuh1hhjÂ$ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjÂ$ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjÂ$ubjò)�”}”(hŒsp”h]”hŒsp”…”�”}”(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Ý hjp$h²hh³j˜$h´Knubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhjl$h²hh³j˜$h´Knubah}”(h]”jg$ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³j˜$h´Knhji$h²hubj )�”}”(hhh]”hÌ)�”}”(hŒretrieve syncpoint ID”h]”hŒretrieve syncpoint ID”…”�”}”(hjG%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´KnhjD%h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhji$h²hh³j˜$h´Knubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBj_%jCj_%jD‰jE‰jF‰uh1j·h²hhj^!h³Nh´NubjH)�”}”(hX**Parameters** ``struct host1x_syncpt *sp`` host1x syncpoint **Description** Given a pointer to a struct host1x_syncpt, retrieves its ID. This ID is often used as a value to program into registers that control how hardware blocks interact with syncpoints.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hji%h]”hŒ Parameters”…”�”}”(hjk%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjg%ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Krhjc%ubj–)�”}”(hhh]”j›)�”}”(hŒ.``struct host1x_syncpt *sp`` host1x syncpoint ”h]”(j¡)�”}”(hŒ``struct host1x_syncpt *sp``”h]”j§)�”}”(hjˆ%h]”hŒstruct host1x_syncpt *sp”…”�”}”(hjŠ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj†%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Kohj‚%ubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x syncpoint”h]”hŒhost1x syncpoint”…”�”}”(hj¡%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j�%h´Kohjž%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj‚%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j�%h´Kohj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j•hjc%ubhÌ)�”}”(hŒ**Description**”h]”jR)�”}”(hjÃ%h]”hŒ Description”…”�”}”(hjÅ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjÁ%ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Kqhjc%ubhÌ)�”}”(hŒ²Given a pointer to a struct host1x_syncpt, retrieves its ID. This ID is often used as a value to program into registers that control how hardware blocks interact with syncpoints.”h]”hŒ²Given a pointer to a struct host1x_syncpt, retrieves its ID. This ID is often used as a value to program into registers that control how hardware blocks interact with syncpoints.”…”�”}”(hjÙ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Kphjc%ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj^!h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œ#host1x_syncpt_incr_max (C function)”Œc.host1x_syncpt_incr_max”hNt”auh1j¦hj^!h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ@u32 host1x_syncpt_incr_max (struct host1x_syncpt *sp, u32 incrs)”h]”jÃ)�”}”(hŒ?u32 host1x_syncpt_incr_max(struct host1x_syncpt *sp, u32 incrs)”h]”(h)�”}”(hhh]”jò)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj &h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj&ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j &Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j Œhost1x_syncpt_incr_max”sbŒc.host1x_syncpt_incr_max”†”asbuh1hhj&h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´K|ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj-&h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj&h²hh³j,&h´K|ubjì)�”}”(hŒhost1x_syncpt_incr_max”h]”jò)�”}”(hj)&h]”hŒhost1x_syncpt_incr_max”…”�”}”(hj?&h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj;&ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhj&h²hh³j,&h´K|ubjÞ )�”}”(hŒ%(struct host1x_syncpt *sp, u32 incrs)”h]”(jä )�”}”(hŒstruct host1x_syncpt *sp”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hjZ&h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhjV&ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjg&h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjV&ubh)�”}”(hhh]”jò)�”}”(hŒ host1x_syncpt”h]”hŒ host1x_syncpt”…”�”}”(hjx&h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhju&ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jz&Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j'&Œc.host1x_syncpt_incr_max”†”asbuh1hhjV&ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–&h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjV&ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hj¤&h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjV&ubjò)�”}”(hŒsp”h]”hŒsp”…”�”}”(hj±&h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjV&ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hjR&ubjä )�”}”(hŒ u32 incrs”h]”(h)�”}”(hhh]”jò)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjÍ&h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjÊ&ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jÏ&Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j'&Œc.host1x_syncpt_incr_max”†”asbuh1hhjÆ&ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjë&h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjÆ&ubjò)�”}”(hŒincrs”h]”hŒincrs”…”�”}”(hjù&h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjÆ&ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hjR&ubeh}”(h]”h ]”h"]”h$]”h&]”j j uh1jÝ hj&h²hh³j,&h´K|ubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhj&h²hh³j,&h´K|ubah}”(h]”jû%ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³j,&h´K|hjý%h²hubj )�”}”(hhh]”hÌ)�”}”(hŒ!update the value sent to hardware”h]”hŒ!update the value sent to hardware”…”�”}”(hj#'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´K|hj 'h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjý%h²hh³j,&h´K|ubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBj;'jCj;'jD‰jE‰jF‰uh1j·h²hhj^!h³Nh´NubjH)�”}”(hŒe**Parameters** ``struct host1x_syncpt *sp`` host1x syncpoint ``u32 incrs`` number of increments”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hjE'h]”hŒ Parameters”…”�”}”(hjG'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjC'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´K€hj?'ubj–)�”}”(hhh]”(j›)�”}”(hŒ.``struct host1x_syncpt *sp`` host1x syncpoint ”h]”(j¡)�”}”(hŒ``struct host1x_syncpt *sp``”h]”j§)�”}”(hjd'h]”hŒstruct host1x_syncpt *sp”…”�”}”(hjf'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjb'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´K}hj^'ubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x syncpoint”h]”hŒhost1x syncpoint”…”�”}”(hj}'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jy'h´K}hjz'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj^'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jy'h´K}hj['ubj›)�”}”(hŒ"``u32 incrs`` number of increments”h]”(j¡)�”}”(hŒ ``u32 incrs``”h]”j§)�”}”(hj�'h]”hŒ u32 incrs”…”�”}”(hjŸ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj›'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Khj—'ubj½)�”}”(hhh]”hÌ)�”}”(hŒnumber of increments”h]”hŒnumber of increments”…”�”}”(hj¶'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´K~hj³'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj—'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j²'h´Khj['ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j•hj?'ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj^!h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œhost1x_syncpt_incr (C function)”Œc.host1x_syncpt_incr”hNt”auh1j¦hj^!h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ1int host1x_syncpt_incr (struct host1x_syncpt *sp)”h]”jÃ)�”}”(hŒ0int host1x_syncpt_incr(struct host1x_syncpt *sp)”h]”(j¦ )�”}”(hŒint”h]”hŒint”…”�”}”(hj÷'h²hh³Nh´Nubah}”(h]”h ]”j² ah"]”h$]”h&]”uh1j¥ hjó'h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´KÑubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjó'h²hh³j(h´KÑubjì)�”}”(hŒhost1x_syncpt_incr”h]”jò)�”}”(hŒhost1x_syncpt_incr”h]”hŒhost1x_syncpt_incr”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj(ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhjó'h²hh³j(h´KÑubjÞ )�”}”(hŒ(struct host1x_syncpt *sp)”h]”jä )�”}”(hŒstruct host1x_syncpt *sp”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hj4(h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhj0(ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjA(h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj0(ubh)�”}”(hhh]”jò)�”}”(hŒ host1x_syncpt”h]”hŒ host1x_syncpt”…”�”}”(hjR(h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjO(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jT(Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j j(sbŒc.host1x_syncpt_incr”†”asbuh1hhj0(ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjr(h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj0(ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hj€(h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hj0(ubjò)�”}”(hŒsp”h]”hŒsp”…”�”}”(hj�(h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj0(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hj,(ubah}”(h]”h ]”h"]”h$]”h&]”j j uh1jÝ hjó'h²hh³j(h´KÑubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhjï'h²hh³j(h´KÑubah}”(h]”jê'ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³j(h´KÑhjì'h²hubj )�”}”(hhh]”hÌ)�”}”(hŒ2increment syncpoint value from CPU, updating cache”h]”hŒ2increment syncpoint value from CPU, updating cache”…”�”}”(hj·(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”• h´KÑhj´(h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjì'h²hh³j(h´KÑubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBjÏ(jCjÏ(jD‰jE‰jF‰uh1j·h²hhj^!h³Nh´NubjH)�”}”(hŒ?**Parameters** ``struct host1x_syncpt *sp`` host1x syncpoint”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hjÙ(h]”hŒ Parameters”…”�”}”(hjÛ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj×(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´KÕhjÓ(ubj–)�”}”(hhh]”j›)�”}”(hŒ-``struct host1x_syncpt *sp`` host1x syncpoint”h]”(j¡)�”}”(hŒ``struct host1x_syncpt *sp``”h]”j§)�”}”(hjø(h]”hŒstruct host1x_syncpt *sp”…”�”}”(hjú(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjö(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´K×hjò(ubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x syncpoint”h]”hŒhost1x syncpoint”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”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Ó(ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj^!h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œhost1x_syncpt_wait (C function)”Œc.host1x_syncpt_wait”hNt”auh1j¦hj^!h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒWint host1x_syncpt_wait (struct host1x_syncpt *sp, u32 thresh, long timeout, u32 *value)”h]”jÃ)�”}”(hŒVint host1x_syncpt_wait(struct host1x_syncpt *sp, u32 thresh, long timeout, u32 *value)”h]”(j¦ )�”}”(hŒint”h]”hŒint”…”�”}”(hjR)h²hh³Nh´Nubah}”(h]”h ]”j² ah"]”h$]”h&]”uh1j¥ hjN)h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´KÛubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hja)h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjN)h²hh³j`)h´KÛubjì)�”}”(hŒhost1x_syncpt_wait”h]”jò)�”}”(hŒhost1x_syncpt_wait”h]”hŒhost1x_syncpt_wait”…”�”}”(hjs)h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjo)ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhjN)h²hh³j`)h´KÛubjÞ )�”}”(hŒ@(struct host1x_syncpt *sp, u32 thresh, long timeout, u32 *value)”h]”(jä )�”}”(hŒstruct host1x_syncpt *sp”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Œ host1x_syncpt”h]”hŒ host1x_syncpt”…”�”}”(hj­)h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjª)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j¯)Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j ju)sbŒc.host1x_syncpt_wait”†”asbuh1hhj‹)ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍ)h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj‹)ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjÛ)h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hj‹)ubjò)�”}”(hŒsp”h]”hŒsp”…”�”}”(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Œ u32 thresh”h]”(h)�”}”(hhh]”jò)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj*ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j*Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”jÉ)Œc.host1x_syncpt_wait”†”asbuh1hhjý)ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"*h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjý)ubjò)�”}”(hŒthresh”h]”hŒthresh”…”�”}”(hj0*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Œ long timeout”h]”(j¦ )�”}”(hŒlong”h]”hŒlong”…”�”}”(hjI*h²hh³Nh´Nubah}”(h]”h ]”j² ah"]”h$]”h&]”uh1j¥ hjE*ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjW*h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjE*ubjò)�”}”(hŒtimeout”h]”hŒtimeout”…”�”}”(hje*h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjE*ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hj‡)ubjä )�”}”(hŒ u32 *value”h]”(h)�”}”(hhh]”jò)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj�*h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj~*ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jƒ*Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”jÉ)Œc.host1x_syncpt_wait”†”asbuh1hhjz*ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸ*h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjz*ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hj­*h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjz*ubjò)�”}”(hŒvalue”h]”hŒvalue”…”�”}”(hjº*h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjz*ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hj‡)ubeh}”(h]”h ]”h"]”h$]”h&]”j j uh1jÝ hjN)h²hh³j`)h´KÛubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhjJ)h²hh³j`)h´KÛubah}”(h]”jE)ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³j`)h´KÛhjG)h²hubj )�”}”(hhh]”hÌ)�”}”(hŒ+wait for a syncpoint to reach a given value”h]”hŒ+wait for a syncpoint to reach a given value”…”�”}”(hjä*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´KÛhjá*h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjG)h²hh³j`)h´KÛubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBjü*jCjü*jD‰jE‰jF‰uh1j·h²hhj^!h³Nh´NubjH)�”}”(hŒé**Parameters** ``struct host1x_syncpt *sp`` host1x syncpoint ``u32 thresh`` threshold ``long timeout`` maximum time to wait for the syncpoint to reach the given value ``u32 *value`` return location for the syncpoint value”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hj+h]”hŒ Parameters”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Kßhj+ubj–)�”}”(hhh]”(j›)�”}”(hŒ.``struct host1x_syncpt *sp`` host1x syncpoint ”h]”(j¡)�”}”(hŒ``struct host1x_syncpt *sp``”h]”j§)�”}”(hj%+h]”hŒstruct host1x_syncpt *sp”…”�”}”(hj'+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj#+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´KÜhj+ubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x syncpoint”h]”hŒhost1x syncpoint”…”�”}”(hj>+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j:+h´KÜhj;+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j:+h´KÜhj+ubj›)�”}”(hŒ``u32 thresh`` threshold ”h]”(j¡)�”}”(hŒ``u32 thresh``”h]”j§)�”}”(hj^+h]”hŒ u32 thresh”…”�”}”(hj`+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj\+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´KÝhjX+ubj½)�”}”(hhh]”hÌ)�”}”(hŒ threshold”h]”hŒ threshold”…”�”}”(hjw+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³js+h´KÝhjt+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjX+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³js+h´KÝhj+ubj›)�”}”(hŒQ``long timeout`` maximum time to wait for the syncpoint to reach the given value ”h]”(j¡)�”}”(hŒ``long timeout``”h]”j§)�”}”(hj—+h]”hŒ long timeout”…”�”}”(hj™+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj•+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´KÞhj‘+ubj½)�”}”(hhh]”hÌ)�”}”(hŒ?maximum time to wait for the syncpoint to reach the given value”h]”hŒ?maximum time to wait for the syncpoint to reach the given value”…”�”}”(hj°+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j¬+h´KÞhj­+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj‘+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j¬+h´KÞhj+ubj›)�”}”(hŒ6``u32 *value`` return location for the syncpoint value”h]”(j¡)�”}”(hŒ``u32 *value``”h]”j§)�”}”(hjÐ+h]”hŒ u32 *value”…”�”}”(hjÒ+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjÎ+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´KàhjÊ+ubj½)�”}”(hhh]”hÌ)�”}”(hŒ'return location for the syncpoint value”h]”hŒ'return location for the syncpoint value”…”�”}”(hjé+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Kßhjæ+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjÊ+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jå+h´Kàhj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j•hj+ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj^!h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œ"host1x_syncpt_request (C function)”Œc.host1x_syncpt_request”hNt”auh1j¦hj^!h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ`struct host1x_syncpt * host1x_syncpt_request (struct host1x_client *client, unsigned long flags)”h]”jÃ)�”}”(hŒ^struct host1x_syncpt *host1x_syncpt_request(struct host1x_client *client, unsigned long flags)”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hj*,h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhj&,h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MLubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8,h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj&,h²hh³j7,h´MLubh)�”}”(hhh]”jò)�”}”(hŒ host1x_syncpt”h]”hŒ host1x_syncpt”…”�”}”(hjI,h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjF,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jK,Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j Œhost1x_syncpt_request”sbŒc.host1x_syncpt_request”†”asbuh1hhj&,h²hh³j7,h´MLubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjj,h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj&,h²hh³j7,h´MLubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjx,h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hj&,h²hh³j7,h´MLubjì)�”}”(hŒhost1x_syncpt_request”h]”jò)�”}”(hjg,h]”hŒhost1x_syncpt_request”…”�”}”(hj‰,h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj…,ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhj&,h²hh³j7,h´MLubjÞ )�”}”(hŒ3(struct host1x_client *client, unsigned long flags)”h]”(jä )�”}”(hŒstruct host1x_client *client”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Œ host1x_client”h]”hŒ host1x_client”…”�”}”(hjÂ,h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj¿,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jÄ,Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”je,Œc.host1x_syncpt_request”†”asbuh1hhj ,ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjà,h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj ,ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjî,h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hj ,ubjò)�”}”(hŒclient”h]”hŒclient”…”�”}”(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Œunsigned long flags”h]”(j¦ )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(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-ubj¦ )�”}”(hŒlong”h]”hŒlong”…”�”}”(hj0-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-ubjò)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjL-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Ý hj&,h²hh³j7,h´MLubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhj",h²hh³j7,h´MLubah}”(h]”j,ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³j7,h´MLhj,h²hubj )�”}”(hhh]”hÌ)�”}”(hŒrequest a syncpoint”h]”hŒrequest a syncpoint”…”�”}”(hjv-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MLhjs-h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj,h²hh³j7,h´MLubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBjŽ-jCjŽ-jD‰jE‰jF‰uh1j·h²hhj^!h³Nh´NubjH)�”}”(hXŸ**Parameters** ``struct host1x_client *client`` client requesting the syncpoint ``unsigned long flags`` flags **Description** host1x client drivers can use this function to allocate a syncpoint for subsequent use. A syncpoint returned by this function will be reserved for use by the client exclusively. When no longer using a syncpoint, a host1x client driver needs to release it using host1x_syncpt_put().”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hj˜-h]”hŒ Parameters”…”�”}”(hjš-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj–-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MPhj’-ubj–)�”}”(hhh]”(j›)�”}”(hŒA``struct host1x_client *client`` client requesting the syncpoint ”h]”(j¡)�”}”(hŒ ``struct host1x_client *client``”h]”j§)�”}”(hj·-h]”hŒstruct host1x_client *client”…”�”}”(hj¹-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjµ-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MMhj±-ubj½)�”}”(hhh]”hÌ)�”}”(hŒclient requesting the syncpoint”h]”hŒclient requesting the syncpoint”…”�”}”(hjÐ-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÌ-h´MMhjÍ-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj±-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jÌ-h´MMhj®-ubj›)�”}”(hŒ``unsigned long flags`` flags ”h]”(j¡)�”}”(hŒ``unsigned long flags``”h]”j§)�”}”(hjð-h]”hŒunsigned long flags”…”�”}”(hjò-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjî-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MNhjê-ubj½)�”}”(hhh]”hÌ)�”}”(hŒflags”h]”hŒflags”…”�”}”(hj .h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j.h´MNhj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjê-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j.h´MNhj®-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j•hj’-ubhÌ)�”}”(hŒ**Description**”h]”jR)�”}”(hj+.h]”hŒ Description”…”�”}”(hj-.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj).ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MPhj’-ubhÌ)�”}”(hXhost1x client drivers can use this function to allocate a syncpoint for subsequent use. A syncpoint returned by this function will be reserved for use by the client exclusively. When no longer using a syncpoint, a host1x client driver needs to release it using host1x_syncpt_put().”h]”hXhost1x client drivers can use this function to allocate a syncpoint for subsequent use. A syncpoint returned by this function will be reserved for use by the client exclusively. When no longer using a syncpoint, a host1x client driver needs to release it using host1x_syncpt_put().”…”�”}”(hjA.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MOhj’-ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj^!h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œhost1x_syncpt_put (C function)”Œc.host1x_syncpt_put”hNt”auh1j¦hj^!h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ1void host1x_syncpt_put (struct host1x_syncpt *sp)”h]”jÃ)�”}”(hŒ0void host1x_syncpt_put(struct host1x_syncpt *sp)”h]”(j¦ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjp.h²hh³Nh´Nubah}”(h]”h ]”j² ah"]”h$]”h&]”uh1j¥ hjl.h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MpubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjl.h²hh³j~.h´Mpubjì)�”}”(hŒhost1x_syncpt_put”h]”jò)�”}”(hŒhost1x_syncpt_put”h]”hŒhost1x_syncpt_put”…”�”}”(hj‘.h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj�.ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhjl.h²hh³j~.h´MpubjÞ )�”}”(hŒ(struct host1x_syncpt *sp)”h]”jä )�”}”(hŒstruct host1x_syncpt *sp”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Œ host1x_syncpt”h]”hŒ host1x_syncpt”…”�”}”(hjË.h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjÈ.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jÍ.Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j j“.sbŒc.host1x_syncpt_put”†”asbuh1hhj©.ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjë.h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj©.ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjù.h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hj©.ubjò)�”}”(hŒsp”h]”hŒsp”…”�”}”(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Ý hjl.h²hh³j~.h´Mpubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhjh.h²hh³j~.h´Mpubah}”(h]”jc.ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³j~.h´Mphje.h²hubj )�”}”(hhh]”hÌ)�”}”(hŒfree a requested syncpoint”h]”hŒfree a requested syncpoint”…”�”}”(hj0/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Mphj-/h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhje.h²hh³j~.h´Mpubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBjH/jCjH/jD‰jE‰jF‰uh1j·h²hhj^!h³Nh´NubjH)�”}”(hŒé**Parameters** ``struct host1x_syncpt *sp`` host1x syncpoint **Description** Release a syncpoint previously allocated using host1x_syncpt_request(). A host1x client driver should call this when the syncpoint is no longer in use.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hjR/h]”hŒ Parameters”…”�”}”(hjT/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjP/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MthjL/ubj–)�”}”(hhh]”j›)�”}”(hŒ.``struct host1x_syncpt *sp`` host1x syncpoint ”h]”(j¡)�”}”(hŒ``struct host1x_syncpt *sp``”h]”j§)�”}”(hjq/h]”hŒstruct host1x_syncpt *sp”…”�”}”(hjs/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjo/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Mqhjk/ubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x syncpoint”h]”hŒhost1x syncpoint”…”�”}”(hjŠ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j†/h´Mqhj‡/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjk/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j†/h´Mqhjh/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j•hjL/ubhÌ)�”}”(hŒ**Description**”h]”jR)�”}”(hj¬/h]”hŒ Description”…”�”}”(hj®/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjª/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MshjL/ubhÌ)�”}”(hŒ—Release a syncpoint previously allocated using host1x_syncpt_request(). A host1x client driver should call this when the syncpoint is no longer in use.”h]”hŒ—Release a syncpoint previously allocated using host1x_syncpt_request(). A host1x client driver should call this when the syncpoint is no longer in use.”…”�”}”(hjÂ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MrhjL/ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj^!h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œ#host1x_syncpt_read_max (C function)”Œc.host1x_syncpt_read_max”hNt”auh1j¦hj^!h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ5u32 host1x_syncpt_read_max (struct host1x_syncpt *sp)”h]”jÃ)�”}”(hŒ4u32 host1x_syncpt_read_max(struct host1x_syncpt *sp)”h]”(h)�”}”(hhh]”jò)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjô/h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjñ/ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jö/Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j Œhost1x_syncpt_read_max”sbŒc.host1x_syncpt_read_max”†”asbuh1hhjí/h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MŠubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjí/h²hh³j0h´MŠubjì)�”}”(hŒhost1x_syncpt_read_max”h]”jò)�”}”(hj0h]”hŒhost1x_syncpt_read_max”…”�”}”(hj(0h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj$0ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhjí/h²hh³j0h´MŠubjÞ )�”}”(hŒ(struct host1x_syncpt *sp)”h]”jä )�”}”(hŒstruct host1x_syncpt *sp”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hjC0h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhj?0ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjP0h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj?0ubh)�”}”(hhh]”jò)�”}”(hŒ host1x_syncpt”h]”hŒ host1x_syncpt”…”�”}”(hja0h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj^0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jc0Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j0Œc.host1x_syncpt_read_max”†”asbuh1hhj?0ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj?0ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hj�0h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hj?0ubjò)�”}”(hŒsp”h]”hŒsp”…”�”}”(hjš0h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj?0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hj;0ubah}”(h]”h ]”h"]”h$]”h&]”j j uh1jÝ hjí/h²hh³j0h´MŠubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhjé/h²hh³j0h´MŠubah}”(h]”jä/ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³j0h´MŠhjæ/h²hubj )�”}”(hhh]”hÌ)�”}”(hŒread maximum syncpoint value”h]”hŒread maximum syncpoint value”…”�”}”(hjÄ0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MŠhjÁ0h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjæ/h²hh³j0h´MŠubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBjÜ0jCjÜ0jD‰jE‰jF‰uh1j·h²hhj^!h³Nh´NubjH)�”}”(hŒÊ**Parameters** ``struct host1x_syncpt *sp`` host1x syncpoint **Description** The maximum syncpoint value indicates how many operations there are in queue, either in channel or in a software thread.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hjæ0h]”hŒ Parameters”…”�”}”(hjè0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjä0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MŽhjà0ubj–)�”}”(hhh]”j›)�”}”(hŒ.``struct host1x_syncpt *sp`` host1x syncpoint ”h]”(j¡)�”}”(hŒ``struct host1x_syncpt *sp``”h]”j§)�”}”(hj1h]”hŒstruct host1x_syncpt *sp”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´M‹hjÿ0ubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x syncpoint”h]”hŒhost1x syncpoint”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j1h´M‹hj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjÿ0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j1h´M‹hjü0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j•hjà0ubhÌ)�”}”(hŒ**Description**”h]”jR)�”}”(hj@1h]”hŒ Description”…”�”}”(hjB1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj>1ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´M�hjà0ubhÌ)�”}”(hŒxThe maximum syncpoint value indicates how many operations there are in queue, either in channel or in a software thread.”h]”hŒxThe maximum syncpoint value indicates how many operations there are in queue, either in channel or in a software thread.”…”�”}”(hjV1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MŒhjà0ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj^!h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œ#host1x_syncpt_read_min (C function)”Œc.host1x_syncpt_read_min”hNt”auh1j¦hj^!h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ5u32 host1x_syncpt_read_min (struct host1x_syncpt *sp)”h]”jÃ)�”}”(hŒ4u32 host1x_syncpt_read_min(struct host1x_syncpt *sp)”h]”(h)�”}”(hhh]”jò)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjˆ1h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj…1ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jŠ1Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j Œhost1x_syncpt_read_min”sbŒc.host1x_syncpt_read_min”†”asbuh1hhj�1h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´M™ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjª1h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj�1h²hh³j©1h´M™ubjì)�”}”(hŒhost1x_syncpt_read_min”h]”jò)�”}”(hj¦1h]”hŒhost1x_syncpt_read_min”…”�”}”(hj¼1h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj¸1ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhj�1h²hh³j©1h´M™ubjÞ )�”}”(hŒ(struct host1x_syncpt *sp)”h]”jä )�”}”(hŒstruct host1x_syncpt *sp”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hj×1h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhjÓ1ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjä1h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjÓ1ubh)�”}”(hhh]”jò)�”}”(hŒ host1x_syncpt”h]”hŒ host1x_syncpt”…”�”}”(hjõ1h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjò1ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j÷1Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j¤1Œc.host1x_syncpt_read_min”†”asbuh1hhjÓ1ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjÓ1ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hj!2h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjÓ1ubjò)�”}”(hŒsp”h]”hŒsp”…”�”}”(hj.2h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjÓ1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hjÏ1ubah}”(h]”h ]”h"]”h$]”h&]”j j uh1jÝ hj�1h²hh³j©1h´M™ubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhj}1h²hh³j©1h´M™ubah}”(h]”jx1ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³j©1h´M™hjz1h²hubj )�”}”(hhh]”hÌ)�”}”(hŒread minimum syncpoint value”h]”hŒread minimum syncpoint value”…”�”}”(hjX2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´M™hjU2h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjz1h²hh³j©1h´M™ubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBjp2jCjp2jD‰jE‰jF‰uh1j·h²hhj^!h³Nh´NubjH)�”}”(hŒ¦**Parameters** ``struct host1x_syncpt *sp`` host1x syncpoint **Description** The minimum syncpoint value is a shadow of the current sync point value in hardware.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hjz2h]”hŒ Parameters”…”�”}”(hj|2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjx2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´M�hjt2ubj–)�”}”(hhh]”j›)�”}”(hŒ.``struct host1x_syncpt *sp`` host1x syncpoint ”h]”(j¡)�”}”(hŒ``struct host1x_syncpt *sp``”h]”j§)�”}”(hj™2h]”hŒstruct host1x_syncpt *sp”…”�”}”(hj›2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj—2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Mšhj“2ubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x syncpoint”h]”hŒhost1x syncpoint”…”�”}”(hj²2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j®2h´Mšhj¯2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj“2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j®2h´Mšhj�2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j•hjt2ubhÌ)�”}”(hŒ**Description**”h]”jR)�”}”(hjÔ2h]”hŒ Description”…”�”}”(hjÖ2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjÒ2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Mœhjt2ubhÌ)�”}”(hŒTThe minimum syncpoint value is a shadow of the current sync point value in hardware.”h]”hŒTThe minimum syncpoint value is a shadow of the current sync point value in hardware.”…”�”}”(hjê2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´M›hjt2ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj^!h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œhost1x_syncpt_read (C function)”Œc.host1x_syncpt_read”hNt”auh1j¦hj^!h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ1u32 host1x_syncpt_read (struct host1x_syncpt *sp)”h]”jÃ)�”}”(hŒ0u32 host1x_syncpt_read(struct host1x_syncpt *sp)”h]”(h)�”}”(hhh]”jò)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj3ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j3Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j Œhost1x_syncpt_read”sbŒc.host1x_syncpt_read”†”asbuh1hhj3h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´M¨ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj>3h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj3h²hh³j=3h´M¨ubjì)�”}”(hŒhost1x_syncpt_read”h]”jò)�”}”(hj:3h]”hŒhost1x_syncpt_read”…”�”}”(hjP3h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjL3ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhj3h²hh³j=3h´M¨ubjÞ )�”}”(hŒ(struct host1x_syncpt *sp)”h]”jä )�”}”(hŒstruct host1x_syncpt *sp”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hjk3h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhjg3ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjx3h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjg3ubh)�”}”(hhh]”jò)�”}”(hŒ host1x_syncpt”h]”hŒ host1x_syncpt”…”�”}”(hj‰3h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj†3ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j‹3Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j83Œc.host1x_syncpt_read”†”asbuh1hhjg3ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§3h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjg3ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjµ3h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjg3ubjò)�”}”(hŒsp”h]”hŒsp”…”�”}”(hjÂ3h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjg3ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hjc3ubah}”(h]”h ]”h"]”h$]”h&]”j j uh1jÝ hj3h²hh³j=3h´M¨ubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhj3h²hh³j=3h´M¨ubah}”(h]”j 3ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³j=3h´M¨hj3h²hubj )�”}”(hhh]”hÌ)�”}”(hŒ read the current syncpoint value”h]”hŒ read the current syncpoint value”…”�”}”(hjì3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´M¨hjé3h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj3h²hh³j=3h´M¨ubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBj4jCj4jD‰jE‰jF‰uh1j·h²hhj^!h³Nh´NubjH)�”}”(hŒ?**Parameters** ``struct host1x_syncpt *sp`` host1x syncpoint”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hj4h]”hŒ Parameters”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj 4ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´M¬hj4ubj–)�”}”(hhh]”j›)�”}”(hŒ-``struct host1x_syncpt *sp`` host1x syncpoint”h]”(j¡)�”}”(hŒ``struct host1x_syncpt *sp``”h]”j§)�”}”(hj-4h]”hŒstruct host1x_syncpt *sp”…”�”}”(hj/4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj+4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´M®hj'4ubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x syncpoint”h]”hŒhost1x syncpoint”…”�”}”(hjF4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´M©hjC4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj'4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jB4h´M®hj$4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j•hj4ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj^!h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œ$host1x_syncpt_get_by_id (C function)”Œc.host1x_syncpt_get_by_id”hNt”auh1j¦hj^!h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒUstruct host1x_syncpt * host1x_syncpt_get_by_id (struct host1x *host, unsigned int id)”h]”jÃ)�”}”(hŒSstruct host1x_syncpt *host1x_syncpt_get_by_id(struct host1x *host, unsigned int id)”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hj‡4h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhjƒ4h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MÁubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj•4h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjƒ4h²hh³j”4h´MÁubh)�”}”(hhh]”jò)�”}”(hŒ host1x_syncpt”h]”hŒ host1x_syncpt”…”�”}”(hj¦4h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj£4ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j¨4Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j Œhost1x_syncpt_get_by_id”sbŒc.host1x_syncpt_get_by_id”†”asbuh1hhjƒ4h²hh³j”4h´MÁubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÇ4h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjƒ4h²hh³j”4h´MÁubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjÕ4h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjƒ4h²hh³j”4h´MÁubjì)�”}”(hŒhost1x_syncpt_get_by_id”h]”jò)�”}”(hjÄ4h]”hŒhost1x_syncpt_get_by_id”…”�”}”(hjæ4h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjâ4ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhjƒ4h²hh³j”4h´MÁubjÞ )�”}”(hŒ&(struct host1x *host, unsigned int id)”h]”(jä )�”}”(hŒstruct host1x *host”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhjý4ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjý4ubh)�”}”(hhh]”jò)�”}”(hŒhost1x”h]”hŒhost1x”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj5ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j!5Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”jÂ4Œc.host1x_syncpt_get_by_id”†”asbuh1hhjý4ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=5h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjý4ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjK5h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjý4ubjò)�”}”(hŒhost”h]”hŒhost”…”�”}”(hjX5h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjý4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hjù4ubjä )�”}”(hŒunsigned int id”h]”(j¦ )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjq5h²hh³Nh´Nubah}”(h]”h ]”j² ah"]”h$]”h&]”uh1j¥ hjm5ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjm5ubj¦ )�”}”(hŒint”h]”hŒint”…”�”}”(hj�5h²hh³Nh´Nubah}”(h]”h ]”j² ah"]”h$]”h&]”uh1j¥ hjm5ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›5h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjm5ubjò)�”}”(hŒid”h]”hŒid”…”�”}”(hj©5h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjm5ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hjù4ubeh}”(h]”h ]”h"]”h$]”h&]”j j uh1jÝ hjƒ4h²hh³j”4h´MÁubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhj4h²hh³j”4h´MÁubah}”(h]”jz4ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³j”4h´MÁhj|4h²hubj )�”}”(hhh]”hÌ)�”}”(hŒobtain a syncpoint by ID”h]”hŒobtain a syncpoint by ID”…”�”}”(hjÓ5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MÁhjÐ5h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj|4h²hh³j”4h´MÁubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBjë5jCjë5jD‰jE‰jF‰uh1j·h²hhj^!h³Nh´NubjH)�”}”(hŒ_**Parameters** ``struct host1x *host`` host1x controller ``unsigned int id`` syncpoint ID”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hjõ5h]”hŒ Parameters”…”�”}”(hj÷5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjó5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MÅhjï5ubj–)�”}”(hhh]”(j›)�”}”(hŒ*``struct host1x *host`` host1x controller ”h]”(j¡)�”}”(hŒ``struct host1x *host``”h]”j§)�”}”(hj6h]”hŒstruct host1x *host”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MÂhj6ubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x controller”h]”hŒhost1x controller”…”�”}”(hj-6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j)6h´MÂhj*6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j)6h´MÂhj 6ubj›)�”}”(hŒ ``unsigned int id`` syncpoint ID”h]”(j¡)�”}”(hŒ``unsigned int id``”h]”j§)�”}”(hjM6h]”hŒunsigned int id”…”�”}”(hjO6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjK6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MÄhjG6ubj½)�”}”(hhh]”hÌ)�”}”(hŒ syncpoint ID”h]”hŒ syncpoint ID”…”�”}”(hjf6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MÃhjc6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjG6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jb6h´MÄhj 6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j•hjï5ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj^!h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œ*host1x_syncpt_get_by_id_noref (C function)”Œc.host1x_syncpt_get_by_id_noref”hNt”auh1j¦hj^!h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ[struct host1x_syncpt * host1x_syncpt_get_by_id_noref (struct host1x *host, unsigned int id)”h]”jÃ)�”}”(hŒYstruct host1x_syncpt *host1x_syncpt_get_by_id_noref(struct host1x *host, unsigned int id)”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hj§6h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhj£6h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MÓubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjµ6h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj£6h²hh³j´6h´MÓubh)�”}”(hhh]”jò)�”}”(hŒ host1x_syncpt”h]”hŒ host1x_syncpt”…”�”}”(hjÆ6h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjÃ6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jÈ6Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j Œhost1x_syncpt_get_by_id_noref”sbŒc.host1x_syncpt_get_by_id_noref”†”asbuh1hhj£6h²hh³j´6h´MÓubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjç6h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj£6h²hh³j´6h´MÓubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjõ6h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hj£6h²hh³j´6h´MÓubjì)�”}”(hŒhost1x_syncpt_get_by_id_noref”h]”jò)�”}”(hjä6h]”hŒhost1x_syncpt_get_by_id_noref”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj7ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhj£6h²hh³j´6h´MÓubjÞ )�”}”(hŒ&(struct host1x *host, unsigned int id)”h]”(jä )�”}”(hŒstruct host1x *host”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hj!7h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhj7ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.7h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj7ubh)�”}”(hhh]”jò)�”}”(hŒhost1x”h]”hŒhost1x”…”�”}”(hj?7h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj<7ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jA7Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”jâ6Œc.host1x_syncpt_get_by_id_noref”†”asbuh1hhj7ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]7h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj7ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjk7h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hj7ubjò)�”}”(hŒhost”h]”hŒhost”…”�”}”(hjx7h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj7ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hj7ubjä )�”}”(hŒunsigned int id”h]”(j¦ )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj‘7h²hh³Nh´Nubah}”(h]”h ]”j² ah"]”h$]”h&]”uh1j¥ hj�7ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸ7h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj�7ubj¦ )�”}”(hŒint”h]”hŒint”…”�”}”(hj­7h²hh³Nh´Nubah}”(h]”h ]”j² ah"]”h$]”h&]”uh1j¥ hj�7ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»7h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj�7ubjò)�”}”(hŒid”h]”hŒid”…”�”}”(hjÉ7h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj�7ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hj7ubeh}”(h]”h ]”h"]”h$]”h&]”j j uh1jÝ hj£6h²hh³j´6h´MÓubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhjŸ6h²hh³j´6h´MÓubah}”(h]”jš6ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³j´6h´MÓhjœ6h²hubj )�”}”(hhh]”hÌ)�”}”(hŒ9obtain a syncpoint by ID but don't increase the refcount.”h]”hŒ;obtain a syncpoint by ID but don’t increase the refcount.”…”�”}”(hjó7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MÓhjð7h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjœ6h²hh³j´6h´MÓubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBj 8jCj 8jD‰jE‰jF‰uh1j·h²hhj^!h³Nh´NubjH)�”}”(hŒ_**Parameters** ``struct host1x *host`` host1x controller ``unsigned int id`` syncpoint ID”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hj8h]”hŒ Parameters”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´M×hj8ubj–)�”}”(hhh]”(j›)�”}”(hŒ*``struct host1x *host`` host1x controller ”h]”(j¡)�”}”(hŒ``struct host1x *host``”h]”j§)�”}”(hj48h]”hŒstruct host1x *host”…”�”}”(hj68h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj28ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MÕhj.8ubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x controller”h]”hŒhost1x controller”…”�”}”(hjM8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jI8h´MÕhjJ8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj.8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jI8h´MÕhj+8ubj›)�”}”(hŒ ``unsigned int id`` syncpoint ID”h]”(j¡)�”}”(hŒ``unsigned int id``”h]”j§)�”}”(hjm8h]”hŒunsigned int id”…”�”}”(hjo8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjk8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´M×hjg8ubj½)�”}”(hhh]”hÌ)�”}”(hŒ syncpoint ID”h]”hŒ syncpoint ID”…”�”}”(hj†8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MÖhjƒ8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjg8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j‚8h´M×hj+8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j•hj8ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj^!h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œhost1x_syncpt_get (C function)”Œc.host1x_syncpt_get”hNt”auh1j¦hj^!h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒCstruct host1x_syncpt * host1x_syncpt_get (struct host1x_syncpt *sp)”h]”jÃ)�”}”(hŒAstruct host1x_syncpt *host1x_syncpt_get(struct host1x_syncpt *sp)”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hjÇ8h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhjÃ8h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MãubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÕ8h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjÃ8h²hh³jÔ8h´Mãubh)�”}”(hhh]”jò)�”}”(hŒ host1x_syncpt”h]”hŒ host1x_syncpt”…”�”}”(hjæ8h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjã8ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jè8Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j Œhost1x_syncpt_get”sbŒc.host1x_syncpt_get”†”asbuh1hhjÃ8h²hh³jÔ8h´MãubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjÃ8h²hh³jÔ8h´Mãubj> )�”}”(hjA h]”hŒ*”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjÃ8h²hh³jÔ8h´Mãubjì)�”}”(hŒhost1x_syncpt_get”h]”jò)�”}”(hj9h]”hŒhost1x_syncpt_get”…”�”}”(hj&9h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj"9ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhjÃ8h²hh³jÔ8h´MãubjÞ )�”}”(hŒ(struct host1x_syncpt *sp)”h]”jä )�”}”(hŒstruct host1x_syncpt *sp”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hjA9h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhj=9ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjN9h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj=9ubh)�”}”(hhh]”jò)�”}”(hŒ host1x_syncpt”h]”hŒ host1x_syncpt”…”�”}”(hj_9h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj\9ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”ja9Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j9Œc.host1x_syncpt_get”†”asbuh1hhj=9ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}9h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj=9ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hj‹9h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hj=9ubjò)�”}”(hŒsp”h]”hŒsp”…”�”}”(hj˜9h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj=9ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hj99ubah}”(h]”h ]”h"]”h$]”h&]”j j uh1jÝ hjÃ8h²hh³jÔ8h´Mãubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhj¿8h²hh³jÔ8h´Mãubah}”(h]”jº8ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³jÔ8h´Mãhj¼8h²hubj )�”}”(hhh]”hÌ)�”}”(hŒincrement syncpoint refcount”h]”hŒincrement syncpoint refcount”…”�”}”(hjÂ9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Mãhj¿9h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¼8h²hh³jÔ8h´Mãubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBjÚ9jCjÚ9jD‰jE‰jF‰uh1j·h²hhj^!h³Nh´NubjH)�”}”(hŒ8**Parameters** ``struct host1x_syncpt *sp`` syncpoint”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hjä9h]”hŒ Parameters”…”�”}”(hjæ9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjâ9ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MçhjÞ9ubj–)�”}”(hhh]”j›)�”}”(hŒ&``struct host1x_syncpt *sp`` syncpoint”h]”(j¡)�”}”(hŒ``struct host1x_syncpt *sp``”h]”j§)�”}”(hj:h]”hŒstruct host1x_syncpt *sp”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Méhjý9ubj½)�”}”(hhh]”hÌ)�”}”(hŒ syncpoint”h]”hŒ syncpoint”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Mähj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjý9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j:h´Méhjú9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j•hjÞ9ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj^!h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œ#host1x_syncpt_get_base (C function)”Œc.host1x_syncpt_get_base”hNt”auh1j¦hj^!h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒMstruct host1x_syncpt_base * host1x_syncpt_get_base (struct host1x_syncpt *sp)”h]”jÃ)�”}”(hŒKstruct host1x_syncpt_base *host1x_syncpt_get_base(struct host1x_syncpt *sp)”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hj]:h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhjY:h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MïubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjk:h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjY:h²hh³jj:h´Mïubh)�”}”(hhh]”jò)�”}”(hŒhost1x_syncpt_base”h]”hŒhost1x_syncpt_base”…”�”}”(hj|:h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjy:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j~:Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j Œhost1x_syncpt_get_base”sbŒc.host1x_syncpt_get_base”†”asbuh1hhjY:h²hh³jj:h´MïubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�:h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjY:h²hh³jj:h´Mïubj> )�”}”(hjA h]”hŒ*”…”�”}”(hj«:h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjY:h²hh³jj:h´Mïubjì)�”}”(hŒhost1x_syncpt_get_base”h]”jò)�”}”(hjš:h]”hŒhost1x_syncpt_get_base”…”�”}”(hj¼:h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj¸:ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhjY:h²hh³jj:h´MïubjÞ )�”}”(hŒ(struct host1x_syncpt *sp)”h]”jä )�”}”(hŒstruct host1x_syncpt *sp”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Œ host1x_syncpt”h]”hŒ host1x_syncpt”…”�”}”(hjõ:h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjò:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j÷:Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j˜:Œc.host1x_syncpt_get_base”†”asbuh1hhjÓ:ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjÓ:ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hj!;h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjÓ:ubjò)�”}”(hŒsp”h]”hŒsp”…”�”}”(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Ý hjY:h²hh³jj:h´Mïubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhjU:h²hh³jj:h´Mïubah}”(h]”jP:ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³jj:h´MïhjR:h²hubj )�”}”(hhh]”hÌ)�”}”(hŒ0obtain the wait base associated with a syncpoint”h]”hŒ0obtain the wait base associated with a syncpoint”…”�”}”(hjX;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MïhjU;h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjR:h²hh³jj:h´Mïubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBjp;jCjp;jD‰jE‰jF‰uh1j·h²hhj^!h³Nh´NubjH)�”}”(hŒ?**Parameters** ``struct host1x_syncpt *sp`` host1x syncpoint”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hjz;h]”hŒ Parameters”…”�”}”(hj|;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjx;ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Móhjt;ubj–)�”}”(hhh]”j›)�”}”(hŒ-``struct host1x_syncpt *sp`` host1x syncpoint”h]”(j¡)�”}”(hŒ``struct host1x_syncpt *sp``”h]”j§)�”}”(hj™;h]”hŒstruct host1x_syncpt *sp”…”�”}”(hj›;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj—;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Mõhj“;ubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x syncpoint”h]”hŒhost1x syncpoint”…”�”}”(hj²;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Mðhj¯;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj“;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j®;h´Mõhj�;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j•hjt;ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj^!h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œ"host1x_syncpt_base_id (C function)”Œc.host1x_syncpt_base_id”hNt”auh1j¦hj^!h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ;u32 host1x_syncpt_base_id (struct host1x_syncpt_base *base)”h]”jÃ)�”}”(hŒ:u32 host1x_syncpt_base_id(struct host1x_syncpt_base *base)”h]”(h)�”}”(hhh]”jò)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjö;h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjó;ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”jø;Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j Œhost1x_syncpt_base_id”sbŒc.host1x_syncpt_base_id”†”asbuh1hhjï;h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MùubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjï;h²hh³j<h´Mùubjì)�”}”(hŒhost1x_syncpt_base_id”h]”jò)�”}”(hj<h]”hŒhost1x_syncpt_base_id”…”�”}”(hj*<h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj&<ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhjï;h²hh³j<h´MùubjÞ )�”}”(hŒ!(struct host1x_syncpt_base *base)”h]”jä )�”}”(hŒstruct host1x_syncpt_base *base”h]”(jÉ)�”}”(hjÌh]”hŒstruct”…”�”}”(hjE<h²hh³Nh´Nubah}”(h]”h ]”jÕah"]”h$]”h&]”uh1jÈhjA<ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjR<h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjA<ubh)�”}”(hhh]”jò)�”}”(hŒhost1x_syncpt_base”h]”hŒhost1x_syncpt_base”…”�”}”(hjc<h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj`<ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”je<Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j<Œc.host1x_syncpt_base_id”†”asbuh1hhjA<ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�<h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjA<ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hj�<h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjA<ubjò)�”}”(hŒbase”h]”hŒbase”…”�”}”(hjœ<h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhjA<ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj j uh1jã hj=<ubah}”(h]”h ]”h"]”h$]”h&]”j j uh1jÝ hjï;h²hh³j<h´Mùubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhjë;h²hh³j<h´Mùubah}”(h]”jæ;ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³j<h´Mùhjè;h²hubj )�”}”(hhh]”hÌ)�”}”(hŒ(retrieve the ID of a syncpoint wait base”h]”hŒ(retrieve the ID of a syncpoint wait base”…”�”}”(hjÆ<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MùhjÃ<h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjè;h²hh³j<h´Mùubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBjÞ<jCjÞ<jD‰jE‰jF‰uh1j·h²hhj^!h³Nh´NubjH)�”}”(hŒP**Parameters** ``struct host1x_syncpt_base *base`` host1x syncpoint wait base”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hjè<h]”hŒ Parameters”…”�”}”(hjê<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhjæ<ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Mýhjâ<ubj–)�”}”(hhh]”j›)�”}”(hŒ>``struct host1x_syncpt_base *base`` host1x syncpoint wait base”h]”(j¡)�”}”(hŒ#``struct host1x_syncpt_base *base``”h]”j§)�”}”(hj=h]”hŒstruct host1x_syncpt_base *base”…”�”}”(hj =h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Mÿhj=ubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x syncpoint wait base”h]”hŒhost1x syncpoint wait base”…”�”}”(hj =h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Múhj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j=h´Mÿhjþ<ubah}”(h]”h ]”h"]”h$]”h&]”uh1j•hjâ<ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj^!h²hh³Nh´Nubj§)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j³Œ5host1x_syncpt_release_vblank_reservation (C function)”Œ*c.host1x_syncpt_release_vblank_reservation”hNt”auh1j¦hj^!h²hh³Nh´Nubj¸)�”}”(hhh]”(j½)�”}”(hŒ[void host1x_syncpt_release_vblank_reservation (struct host1x_client *client, u32 syncpt_id)”h]”jÃ)�”}”(hŒZvoid host1x_syncpt_release_vblank_reservation(struct host1x_client *client, u32 syncpt_id)”h]”(j¦ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hja=h²hh³Nh´Nubah}”(h]”h ]”j² ah"]”h$]”h&]”uh1j¥ hj]=h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´MubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjp=h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj]=h²hh³jo=h´Mubjì)�”}”(hŒ(host1x_syncpt_release_vblank_reservation”h]”jò)�”}”(hŒ(host1x_syncpt_release_vblank_reservation”h]”hŒ(host1x_syncpt_release_vblank_reservation”…”�”}”(hj‚=h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj~=ubah}”(h]”h ]”(jjeh"]”h$]”h&]”j j uh1jëhj]=h²hh³jo=h´MubjÞ )�”}”(hŒ-(struct host1x_client *client, u32 syncpt_id)”h]”(jä )�”}”(hŒstruct host1x_client *client”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Œ host1x_client”h]”hŒ host1x_client”…”�”}”(hj¼=h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj¹=ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j¾=Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”j* )�”}”j j„=sbŒ*c.host1x_syncpt_release_vblank_reservation”†”asbuh1hhjš=ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜ=h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhjš=ubj> )�”}”(hjA h]”hŒ*”…”�”}”(hjê=h²hh³Nh´Nubah}”(h]”h ]”jJ ah"]”h$]”h&]”uh1j= hjš=ubjò)�”}”(hŒclient”h]”hŒclient”…”�”}”(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Œ u32 syncpt_id”h]”(h)�”}”(hhh]”jò)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”jýah"]”h$]”h&]”uh1jñhj>ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j<Œreftype”j Œ reftarget”j>Œmodname”NŒ classname”Nj! j$ )�”}”j' ]”jØ=Œ*c.host1x_syncpt_release_vblank_reservation”†”asbuh1hhj >ubjÛ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1>h²hh³Nh´Nubah}”(h]”h ]”jçah"]”h$]”h&]”uh1jÚhj >ubjò)�”}”(hŒ syncpt_id”h]”hŒ syncpt_id”…”�”}”(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Ý hj]=h²hh³jo=h´Mubeh}”(h]”h ]”h"]”h$]”h&]”j j jˆuh1jÂjjhjY=h²hh³jo=h´Mubah}”(h]”jT=ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1j¼h³jo=h´MhjV=h²hubj )�”}”(hhh]”hÌ)�”}”(hŒ.Make VBLANK syncpoint available for allocation”h]”hŒ.Make VBLANK syncpoint available for allocation”…”�”}”(hji>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´Mhjf>h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjV=h²hh³jo=h´Mubeh}”(h]”h ]”(j<Œfunction”eh"]”h$]”h&]”jAj<jBj�>jCj�>jD‰jE‰jF‰uh1j·h²hhj^!h³Nh´NubjH)�”}”(hX�**Parameters** ``struct host1x_client *client`` host1x bus client ``u32 syncpt_id`` syncpoint ID to make available **Description** Makes VBLANK syncpoint available for allocatation if it was reserved at initialization time. This should be called by the display driver after it has ensured that any VBLANK increment programming configured by the boot chain has been disabled.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”jR)�”}”(hj‹>h]”hŒ Parameters”…”�”}”(hj�>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj‰>ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´M hj…>ubj–)�”}”(hhh]”(j›)�”}”(hŒ3``struct host1x_client *client`` host1x bus client ”h]”(j¡)�”}”(hŒ ``struct host1x_client *client``”h]”j§)�”}”(hjª>h]”hŒstruct host1x_client *client”…”�”}”(hj¬>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj¨>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´M hj¤>ubj½)�”}”(hhh]”hÌ)�”}”(hŒhost1x bus client”h]”hŒhost1x bus client”…”�”}”(hjÃ>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j¿>h´M hjÀ>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hj¤>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³j¿>h´M hj¡>ubj›)�”}”(hŒ1``u32 syncpt_id`` syncpoint ID to make available ”h]”(j¡)�”}”(hŒ``u32 syncpt_id``”h]”j§)�”}”(hjã>h]”hŒ u32 syncpt_id”…”�”}”(hjå>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjá>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´M hjÝ>ubj½)�”}”(hhh]”hÌ)�”}”(hŒsyncpoint ID to make available”h]”hŒsyncpoint ID to make available”…”�”}”(hjü>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jø>h´M hjù>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¼hjÝ>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jšh³jø>h´M hj¡>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j•hj…>ubhÌ)�”}”(hŒ**Description**”h]”jR)�”}”(hj?h]”hŒ Description”…”�”}”(hj ?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´M hj…>ubhÌ)�”}”(hŒöMakes VBLANK syncpoint available for allocatation if it was reserved at initialization time. This should be called by the display driver after it has ensured that any VBLANK increment programming configured by the boot chain has been disabled.”h]”hŒöMakes VBLANK syncpoint available for allocatation if it was reserved at initialization time. This should be called by the display driver after it has ensured that any VBLANK increment programming configured by the boot chain has been disabled.”…”�”}”(hj4?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.c”h´M hj…>ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jGhj^!h²hh³Nh´Nubeh}”(h]”Œhost1x-syncpoint-reference”ah ]”h"]”Œhost1x syncpoint reference”ah$]”h&]”uh1hµhjZh²hh³hÊh´K8ubeh}”(h]”Œdriver-infrastructure”ah ]”h"]”Œdriver infrastructure”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒ KMS driver”h]”hŒ KMS driver”…”�”}”(hj]?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjZ?h²hh³hÊh´K>ubhÌ)�”}”(hŒ×The display hardware has remained mostly backwards compatible over the various Tegra SoC generations, up until Tegra186 which introduces several changes that make it difficult to support with a parameterized driver.”•šCh]”hŒ×The display hardware has remained mostly backwards compatible over the various Tegra SoC generations, up until Tegra186 which introduces several changes that make it difficult to support with a parameterized driver.”…”�”}”(hjk?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K@hjZ?h²hubh¶)�”}”(hhh]”(h»)�”}”(hŒDisplay Controllers”h]”hŒDisplay Controllers”…”�”}”(hj|?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjy?h²hh³hÊh´KEubhÌ)�”}”(hXŒTegra SoCs have two display controllers, each of which can be associated with zero or more outputs. Outputs can also share a single display controller, but only if they run with compatible display timings. Two display controllers can also share a single framebuffer, allowing cloned configurations even if modes on two outputs don't match. A display controller is modelled as a CRTC in KMS terms.”h]”hXŽTegra SoCs have two display controllers, each of which can be associated with zero or more outputs. Outputs can also share a single display controller, but only if they run with compatible display timings. Two display controllers can also share a single framebuffer, allowing cloned configurations even if modes on two outputs don’t match. A display controller is modelled as a CRTC in KMS terms.”…”�”}”(hjŠ?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KGhjy?h²hubhÌ)�”}”(hŒøOn Tegra186, the number of display controllers has been increased to three. A display controller can no longer drive all of the outputs. While two of these controllers can drive both DSI outputs and both SOR outputs, the third cannot drive any DSI.”h]”hŒøOn Tegra186, the number of display controllers has been increased to three. A display controller can no longer drive all of the outputs. While two of these controllers can drive both DSI outputs and both SOR outputs, the third cannot drive any DSI.”…”�”}”(hj˜?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KNhjy?h²hubh¶)�”}”(hhh]”(h»)�”}”(hŒWindows”h]”hŒWindows”…”�”}”(hj©?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj¦?h²hh³hÊh´KTubhÌ)�”}”(hXçA display controller controls a set of windows that can be used to composite multiple buffers onto the screen. While it is possible to assign arbitrary Z ordering to individual windows (by programming the corresponding blending registers), this is currently not supported by the driver. Instead, it will assume a fixed Z ordering of the windows (window A is the root window, that is, the lowest, while windows B and C are overlaid on top of window A). The overlay windows support multiple pixel formats and can automatically convert from YUV to RGB at scanout time. This makes them useful for displaying video content. In KMS, each window is modelled as a plane. Each display controller has a hardware cursor that is exposed as a cursor plane.”h]”hXçA display controller controls a set of windows that can be used to composite multiple buffers onto the screen. While it is possible to assign arbitrary Z ordering to individual windows (by programming the corresponding blending registers), this is currently not supported by the driver. Instead, it will assume a fixed Z ordering of the windows (window A is the root window, that is, the lowest, while windows B and C are overlaid on top of window A). The overlay windows support multiple pixel formats and can automatically convert from YUV to RGB at scanout time. This makes them useful for displaying video content. In KMS, each window is modelled as a plane. Each display controller has a hardware cursor that is exposed as a cursor plane.”…”�”}”(hj·?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KVhj¦?h²hubeh}”(h]”Œwindows”ah ]”h"]”Œwindows”ah$]”h&]”uh1hµhjy?h²hh³hÊh´KTubeh}”(h]”Œdisplay-controllers”ah ]”h"]”Œdisplay controllers”ah$]”h&]”uh1hµhjZ?h²hh³hÊh´KEubh¶)�”}”(hhh]”(h»)�”}”(hŒOutputs”h]”hŒOutputs”…”�”}”(hjØ?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÕ?h²hh³hÊh´KbubhÌ)�”}”(hX6The type and number of supported outputs varies between Tegra SoC generations. All generations support at least HDMI. While earlier generations supported the very simple RGB interfaces (one per display controller), recent generations no longer do and instead provide standard interfaces such as DSI and eDP/DP.”h]”hX6The type and number of supported outputs varies between Tegra SoC generations. All generations support at least HDMI. While earlier generations supported the very simple RGB interfaces (one per display controller), recent generations no longer do and instead provide standard interfaces such as DSI and eDP/DP.”…”�”}”(hjæ?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KdhjÕ?h²hubhÌ)�”}”(hŒ;Outputs are modelled as a composite encoder/connector pair.”h]”hŒ;Outputs are modelled as a composite encoder/connector pair.”…”�”}”(hjô?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KihjÕ?h²hubh¶)�”}”(hhh]”(h»)�”}”(hŒRGB/LVDS”h]”hŒRGB/LVDS”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj@h²hh³hÊh´KlubhÌ)�”}”(hŒwThis interface is no longer available since Tegra124. It has been replaced by the more standard DSI and eDP interfaces.”h]”hŒwThis interface is no longer available since Tegra124. It has been replaced by the more standard DSI and eDP interfaces.”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Knhj@h²hubeh}”(h]”Œrgb-lvds”ah ]”h"]”Œrgb/lvds”ah$]”h&]”uh1hµhjÕ?h²hh³hÊh´Klubh¶)�”}”(hhh]”(h»)�”}”(hŒHDMI”h]”hŒHDMI”…”�”}”(hj,@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj)@h²hh³hÊh´KrubhÌ)�”}”(hŒáHDMI is supported on all Tegra SoCs. Starting with Tegra210, HDMI is provided by the versatile SOR output, which supports eDP, DP and HDMI. The SOR is able to support HDMI 2.0, though support for this is currently not merged.”h]”hŒáHDMI is supported on all Tegra SoCs. Starting with Tegra210, HDMI is provided by the versatile SOR output, which supports eDP, DP and HDMI. The SOR is able to support HDMI 2.0, though support for this is currently not merged.”…”�”}”(hj:@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kthj)@h²hubeh}”(h]”Œhdmi”ah ]”h"]”Œhdmi”ah$]”h&]”uh1hµhjÕ?h²hh³hÊh´Krubh¶)�”}”(hhh]”(h»)�”}”(hŒDSI”h]”hŒDSI”…”�”}”(hjS@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjP@h²hh³hÊh´KyubhÌ)�”}”(hXAlthough Tegra has supported DSI since Tegra30, the controller has changed in several ways in Tegra114. Since none of the publicly available development boards prior to Dalmore (Tegra114) have made use of DSI, only Tegra114 and later are supported by the drm/tegra driver.”h]”hXAlthough Tegra has supported DSI since Tegra30, the controller has changed in several ways in Tegra114. Since none of the publicly available development boards prior to Dalmore (Tegra114) have made use of DSI, only Tegra114 and later are supported by the drm/tegra driver.”…”�”}”(hja@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K{hjP@h²hubeh}”(h]”Œdsi”ah ]”h"]”Œdsi”ah$]”h&]”uh1hµhjÕ?h²hh³hÊh´Kyubh¶)�”}”(hhh]”(h»)�”}”(hŒeDP/DP”h]”hŒeDP/DP”…”�”}”(hjz@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjw@h²hh³hÊh´K�ubhÌ)�”}”(hŒãeDP was first introduced in Tegra124 where it was used to drive the display panel for notebook form factors. Tegra210 added support for full DisplayPort support, though this is currently not implemented in the drm/tegra driver.”h]”hŒãeDP was first introduced in Tegra124 where it was used to drive the display panel for notebook form factors. Tegra210 added support for full DisplayPort support, though this is currently not implemented in the drm/tegra driver.”…”�”}”(hjˆ@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kƒhjw@h²hubeh}”(h]”Œedp-dp”ah ]”h"]”Œedp/dp”ah$]”h&]”uh1hµhjÕ?h²hh³hÊh´K�ubeh}”(h]”Œoutputs”ah ]”h"]”Œoutputs”ah$]”h&]”uh1hµhjZ?h²hh³hÊh´Kbubeh}”(h]”Œ kms-driver”ah ]”h"]”Œ kms driver”ah$]”h&]”uh1hµhh·h²hh³hÊh´K>ubh¶)�”}”(hhh]”(h»)�”}”(hŒUserspace Interface”h]”hŒUserspace Interface”…”�”}”(hj±@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj®@h²hh³hÊh´KˆubhÌ)�”}”(hŒ£The userspace interface provided by drm/tegra allows applications to create GEM buffers, access and control syncpoints as well as submit command streams to host1x.”h]”hŒ£The userspace interface provided by drm/tegra allows applications to create GEM buffers, access and control syncpoints as well as submit command streams to host1x.”…”�”}”(hj¿@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KŠhj®@h²hubh¶)�”}”(hhh]”(h»)�”}”(hŒ GEM Buffers”h]”hŒ GEM Buffers”…”�”}”(hjÐ@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÍ@h²hh³hÊh´K�ubhÌ)�”}”(hŒÝThe ``DRM_IOCTL_TEGRA_GEM_CREATE`` IOCTL is used to create a GEM buffer object with Tegra-specific flags. This is useful for buffers that should be tiled, or that are to be scanned out upside down (useful for 3D content).”h]”(hŒThe ”…”�”}”(hjÞ@h²hh³Nh´Nubj§)�”}”(hŒ``DRM_IOCTL_TEGRA_GEM_CREATE``”h]”hŒDRM_IOCTL_TEGRA_GEM_CREATE”…”�”}”(hjæ@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjÞ@ubhŒ» IOCTL is used to create a GEM buffer object with Tegra-specific flags. This is useful for buffers that should be tiled, or that are to be scanned out upside down (useful for 3D content).”…”�”}”(hjÞ@h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K‘hjÍ@h²hubhÌ)�”}”(hŒ After a GEM buffer object has been created, its memory can be mapped by an application using the mmap offset returned by the ``DRM_IOCTL_TEGRA_GEM_MMAP`` IOCTL.”h]”(hŒ}After a GEM buffer object has been created, its memory can be mapped by an application using the mmap offset returned by the ”…”�”}”(hjþ@h²hh³Nh´Nubj§)�”}”(hŒ``DRM_IOCTL_TEGRA_GEM_MMAP``”h]”hŒDRM_IOCTL_TEGRA_GEM_MMAP”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjþ@ubhŒ IOCTL.”…”�”}”(hjþ@h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K•hjÍ@h²hubeh}”(h]”Œ gem-buffers”ah ]”h"]”Œ gem buffers”ah$]”h&]”uh1hµhj®@h²hh³hÊh´K�ubh¶)�”}”(hhh]”(h»)�”}”(hŒ Syncpoints”h]”hŒ Syncpoints”…”�”}”(hj)Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj&Ah²hh³hÊh´KšubhÌ)�”}”(hŒÀThe current value of a syncpoint can be obtained by executing the ``DRM_IOCTL_TEGRA_SYNCPT_READ`` IOCTL. Incrementing the syncpoint is achieved using the ``DRM_IOCTL_TEGRA_SYNCPT_INCR`` IOCTL.”h]”(hŒBThe current value of a syncpoint can be obtained by executing the ”…”�”}”(hj7Ah²hh³Nh´Nubj§)�”}”(hŒ``DRM_IOCTL_TEGRA_SYNCPT_READ``”h]”hŒDRM_IOCTL_TEGRA_SYNCPT_READ”…”�”}”(hj?Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj7AubhŒ9 IOCTL. Incrementing the syncpoint is achieved using the ”…”�”}”(hj7Ah²hh³Nh´Nubj§)�”}”(hŒ``DRM_IOCTL_TEGRA_SYNCPT_INCR``”h]”hŒDRM_IOCTL_TEGRA_SYNCPT_INCR”…”�”}”(hjQAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj7AubhŒ IOCTL.”…”�”}”(hj7Ah²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kœhj&Ah²hubhÌ)�”}”(hXUserspace can also request blocking on a syncpoint. To do so, it needs to execute the ``DRM_IOCTL_TEGRA_SYNCPT_WAIT`` IOCTL, specifying the value of the syncpoint to wait for. The kernel will release the application when the syncpoint reaches that value or after a specified timeout.”h]”(hŒVUserspace can also request blocking on a syncpoint. To do so, it needs to execute the ”…”�”}”(hjiAh²hh³Nh´Nubj§)�”}”(hŒ``DRM_IOCTL_TEGRA_SYNCPT_WAIT``”h]”hŒDRM_IOCTL_TEGRA_SYNCPT_WAIT”…”�”}”(hjqAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjiAubhŒ¦ IOCTL, specifying the value of the syncpoint to wait for. The kernel will release the application when the syncpoint reaches that value or after a specified timeout.”…”�”}”(hjiAh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hj&Ah²hubeh}”(h]”Œ syncpoints”ah ]”h"]”Œ syncpoints”ah$]”h&]”uh1hµhj®@h²hh³hÊh´Kšubh¶)�”}”(hhh]”(h»)�”}”(hŒCommand Stream Submission”h]”hŒCommand Stream Submission”…”�”}”(hj”Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj‘Ah²hh³hÊh´K¦ubhÌ)�”}”(hX§Before an application can submit command streams to host1x it needs to open a channel to an engine using the ``DRM_IOCTL_TEGRA_OPEN_CHANNEL`` IOCTL. Client IDs are used to identify the target of the channel. When a channel is no longer needed, it can be closed using the ``DRM_IOCTL_TEGRA_CLOSE_CHANNEL`` IOCTL. To retrieve the syncpoint associated with a channel, an application can use the ``DRM_IOCTL_TEGRA_GET_SYNCPT``.”h]”(hŒmBefore an application can submit command streams to host1x it needs to open a channel to an engine using the ”…”�”}”(hj¢Ah²hh³Nh´Nubj§)�”}”(hŒ ``DRM_IOCTL_TEGRA_OPEN_CHANNEL``”h]”hŒDRM_IOCTL_TEGRA_OPEN_CHANNEL”…”�”}”(hjªAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj¢AubhŒ‚ IOCTL. Client IDs are used to identify the target of the channel. When a channel is no longer needed, it can be closed using the ”…”�”}”(hj¢Ah²hh³Nh´Nubj§)�”}”(hŒ!``DRM_IOCTL_TEGRA_CLOSE_CHANNEL``”h]”hŒDRM_IOCTL_TEGRA_CLOSE_CHANNEL”…”�”}”(hj¼Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj¢AubhŒX IOCTL. To retrieve the syncpoint associated with a channel, an application can use the ”…”�”}”(hj¢Ah²hh³Nh´Nubj§)�”}”(hŒ``DRM_IOCTL_TEGRA_GET_SYNCPT``”h]”hŒDRM_IOCTL_TEGRA_GET_SYNCPT”…”�”}”(hjÎAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hj¢AubhŒ.”…”�”}”(hj¢Ah²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¨hj‘Ah²hubhÌ)�”}”(hX(After opening a channel, submitting command streams is easy. The application writes commands into the memory backing a GEM buffer object and passes these to the ``DRM_IOCTL_TEGRA_SUBMIT`` IOCTL along with various other parameters, such as the syncpoints or relocations used in the job submission.”h]”(hŒ¡After opening a channel, submitting command streams is easy. The application writes commands into the memory backing a GEM buffer object and passes these to the ”…”�”}”(hjæAh²hh³Nh´Nubj§)�”}”(hŒ``DRM_IOCTL_TEGRA_SUBMIT``”h]”hŒDRM_IOCTL_TEGRA_SUBMIT”…”�”}”(hjîAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦hjæAubhŒm IOCTL along with various other parameters, such as the syncpoints or relocations used in the job submission.”…”�”}”(hjæAh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¯hj‘Ah²hubeh}”(h]”Œcommand-stream-submission”ah ]”h"]”Œcommand stream submission”ah$]”h&]”uh1hµhj®@h²hh³hÊh´K¦ubeh}”(h]”Œuserspace-interface”ah ]”h"]”Œuserspace interface”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kˆubeh}”(h]”Œ-drm-tegra-nvidia-tegra-gpu-and-display-driver”ah ]”h"]”Œ-drm/tegra nvidia tegra gpu and display driver”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”jABŒ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”}”(jBjBjW?jT?j[!jX!jO?jL?j«@j¨@jÒ?jÏ?jÊ?jÇ?j£@j @j&@j#@jM@jJ@jt@jq@j›@j˜@jBjBj#Aj AjŽAj‹Aj BjBuŒ nametypes”}”(jB‰jW?‰j[!‰jO?‰j«@‰jÒ?‰jÊ?‰j£@‰j&@‰jM@‰jt@‰j›@‰jB‰j#A‰jŽA‰j B‰uh}”(jBh·jT?jZjX!j•jµj¾jUjZj{j€j0 j5 jr jw j˜ j� jxj}jùjþj#j(j¤j©j¨j­jjj§j¬j(j-j<jAjÏjÔjL?j^!j{!j€!jg$jl$jû%j&jê'jï'jE)jJ)j,j",jc.jh.jä/jé/jx1j}1j 3j3jz4j4jš6jŸ6jº8j¿8jP:jU:jæ;jë;jT=jY=j¨@jZ?jÏ?jy?jÇ?j¦?j @jÕ?j#@j@jJ@j)@jq@jP@j˜@jw@jBj®@j AjÍ@j‹Aj&AjBj‘AuŒ 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.