sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget/translations/zh_CN/gpu/tegramodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget/translations/zh_TW/gpu/tegramodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget/translations/it_IT/gpu/tegramodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget/translations/ja_JP/gpu/tegramodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget/translations/ko_KR/gpu/tegramodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget/translations/sp_SP/gpu/tegramodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(h-drm/tegra NVIDIA Tegra GPU and display driverh]h-drm/tegra NVIDIA Tegra GPU and display driver}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhh7/var/lib/git/docbuild/linux/Documentation/gpu/tegra.rsthKubh 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.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(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.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(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:}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh 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)}(hPA host1x driver that provides infrastructure and access to the host1x services. h]h)}(hOA host1x driver that provides infrastructure and access to the host1x services.h]hOA host1x driver that provides infrastructure and access to the host1x services.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhubh)}(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 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhhubh)}(hjA set of custom userspace IOCTLs that can be used to submit jobs to the GPU and video engines via host1x. h]h)}(hiA set of custom userspace IOCTLs that can be used to submit jobs to the GPU and video engines via host1x.h]hiA set of custom userspace IOCTLs that can be used to submit jobs to the GPU and video engines via host1x.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]bullet-uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(hDriver Infrastructureh]hDriver Infrastructure}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhhhhhKubh)}(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.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjFhhubh)}(hOnce 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]hOnce 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.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hjFhhubh)}(hSimilarly, 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]hSimilarly, 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.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hjFhhubh)}(hhh](h)}(hHost1x Infrastructure Referenceh]hHost1x Infrastructure Reference}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK0ubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlehost1x_bo_cache (C struct)c.host1x_bo_cachehNtauh1jhjhhhNhNubhdesc)}(hhh](hdesc_signature)}(hhost1x_bo_cacheh]hdesc_signature_line)}(hstruct host1x_bo_cacheh](hdesc_sig_keyword)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjhhhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhKubh desc_name)}(hhost1x_bo_cacheh]h desc_sig_name)}(hjh]hhost1x_bo_cache}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jj add_permalinkuh1jsphinx_line_type declaratorhjhhhjhKubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhjhKhjhhubh desc_content)}(hhh]h)}(hhost1x buffer object cacheh]hhost1x buffer object cache}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhK%hj hhubah}(h]h ]h"]h$]h&]uh1j hjhhhjhKubeh}(h]h ](cstructeh"]h$]h&]domainj(objtypej)desctypej)noindex noindexentrynocontentsentryuh1jhhhjhNhNubh 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 mappingsh](h)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj9ubh:}(hj9hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhK)hj5ubh literal_block)}(hQstruct host1x_bo_cache { struct list_head mappings; struct mutex lock; };h]hQstruct host1x_bo_cache { struct list_head mappings; struct mutex lock; };}hjZsbah}(h]h ]h"]h$]h&]jjuh1jXhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhK+hj5ubh)}(h **Members**h]j>)}(hjkh]hMembers}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjiubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhK0hj5ubhdefinition_list)}(hhh](hdefinition_list_item)}(h``mappings`` list of mappings h](hterm)}(h ``mappings``h]hliteral)}(hjh]hmappings}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhK'hjubh definition)}(hhh]h)}(hlist of mappingsh]hlist of mappings}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK'hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK'hjubj)}(h6``lock`` synchronizes accesses to the list of mappingsh](j)}(h``lock``h]j)}(hjh]hlock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhK'hjubj)}(hhh]h)}(h-synchronizes accesses to the list of mappingsh]h-synchronizes accesses to the list of mappings}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhK(hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK'hjubeh}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubh)}(h**Description**h]j>)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhK+hjhhubh)}(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&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhK)hjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jhost1x_client_ops (C struct)c.host1x_client_opshNtauh1jhjhhhNhNubj)}(hhh](j)}(hhost1x_client_opsh]j)}(hstruct host1x_client_opsh](j)}(hjh]hstruct}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJhhhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhK1ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJhhhj[hK1ubj)}(hhost1x_client_opsh]j)}(hjHh]hhost1x_client_ops}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjJhhhj[hK1ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjFhhhj[hK1ubah}(h]jAah ](jjeh"]h$]h&]jj )j huh1jhj[hK1hjChhubj )}(hhh]h)}(hhost1x client operationsh]hhost1x client operations}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhK@hjhhubah}(h]h ]h"]h$]h&]uh1j hjChhhj[hK1ubeh}(h]h ](j(structeh"]h$]h&]j-j(j.jj/jj0j1j2uh1jhhhjhNhNubj4)}(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 codeh](h)}(h**Definition**::h](j>)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKDhjubjY)}(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); };}hjsbah}(h]h ]h"]h$]h&]jjuh1jXhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKFhjubh)}(h **Members**h]j>)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKOhjubj)}(hhh](j)}(h7``early_init`` host1x client early initialization code h](j)}(h``early_init``h]j)}(hjh]h early_init}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKBhjubj)}(hhh]h)}(h'host1x client early initialization codeh]h'host1x client early initialization code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKBhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKBhjubj)}(h+``init`` host1x client initialization code h](j)}(h``init``h]j)}(hj6h]hinit}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKChj0ubj)}(hhh]h)}(h!host1x client initialization codeh]h!host1x client initialization code}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhKChjLubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhjKhKChjubj)}(h&``exit`` host1x client tear down code h](j)}(h``exit``h]j)}(hjoh]hexit}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKDhjiubj)}(hhh]h)}(hhost1x client tear down codeh]hhost1x client tear down code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKDhjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjhKDhjubj)}(h0``late_exit`` host1x client late tear down code h](j)}(h ``late_exit``h]j)}(hjh]h late_exit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKEhjubj)}(hhh]h)}(h!host1x client late tear down codeh]h!host1x client late tear down code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKEhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKEhjubj)}(h'``suspend`` host1x client suspend code h](j)}(h ``suspend``h]j)}(hjh]hsuspend}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKFhjubj)}(hhh]h)}(hhost1x client suspend codeh]hhost1x client suspend code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKFhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKFhjubj)}(h$``resume`` host1x client resume codeh](j)}(h ``resume``h]j)}(hjh]hresume}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKFhjubj)}(hhh]h)}(hhost1x client resume codeh]hhost1x client resume code}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKGhj0ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj/hKFhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jhost1x_client (C struct)c.host1x_clienthNtauh1jhjhhhNhNubj)}(hhh](j)}(h host1x_clienth]j)}(hstruct host1x_clienth](j)}(hjh]hstruct}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjphhhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjphhhjhKMubj)}(h host1x_clienth]j)}(hjnh]h host1x_client}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjphhhjhKMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjlhhhjhKMubah}(h]jgah ](jjeh"]h$]h&]jj )j huh1jhjhKMhjihhubj )}(hhh]h)}(hhost1x client structureh]hhost1x client structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKRhjhhubah}(h]h ]h"]h$]h&]uh1j hjihhhjhKMubeh}(h]h ](j(structeh"]h$]h&]j-j(j.jj/jj0j1j2uh1jhhhjhNhNubj4)}(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 cacheh](h)}(h**Definition**::h](j>)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKVhjubjY)}(hXstruct 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]hXstruct 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&]jjuh1jXhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKXhjubh)}(h **Members**h]j>)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKhhjubj)}(hhh](j)}(h)``list`` list node for the host1x client h](j)}(h``list``h]j)}(hj#h]hlist}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKThjubj)}(hhh]h)}(hlist node for the host1x clienth]hlist node for the host1x client}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hKThj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj8hKThjubj)}(hE``host`` pointer to struct device representing the host1x controller h](j)}(h``host``h]j)}(hj\h]hhost}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKUhjVubj)}(hhh]h)}(h;pointer to struct device representing the host1x controllerh]h;pointer to struct device representing the host1x controller}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhKUhjrubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjqhKUhjubj)}(h<``dev`` pointer to struct device backing this host1x client h](j)}(h``dev``h]j)}(hjh]hdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKVhjubj)}(hhh]h)}(h3pointer to struct device backing this host1x clienth]h3pointer to struct device backing this host1x client}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKVhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKVhjubj)}(h6``group`` IOMMU group that this client is a member of h](j)}(h ``group``h]j)}(hjh]hgroup}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKWhjubj)}(hhh]h)}(h+IOMMU group that this client is a member ofh]h+IOMMU group that this client is a member of}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKWhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKWhjubj)}(h!``ops`` host1x client operations h](j)}(h``ops``h]j)}(hjh]hops}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKXhjubj)}(hhh]h)}(hhost1x client operationsh]hhost1x client operations}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKXhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKXhjubj)}(h2``class`` host1x class represented by this client h](j)}(h ``class``h]j)}(hj@h]hclass}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKYhj:ubj)}(hhh]h)}(h'host1x class represented by this clienth]h'host1x class represented by this client}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhKYhjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhKYhjubj)}(h7``channel`` host1x channel associated with this client h](j)}(h ``channel``h]j)}(hjyh]hchannel}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKZhjsubj)}(hhh]h)}(h*host1x channel associated with this clienth]h*host1x channel associated with this client}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKZhjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjhKZhjubj)}(h:``syncpts`` array of syncpoints requested for this client h](j)}(h ``syncpts``h]j)}(hjh]hsyncpts}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhK[hjubj)}(hhh]h)}(h-array of syncpoints requested for this clienth]h-array of syncpoints requested for this client}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK[hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK[hjubj)}(h?``num_syncpts`` number of syncpoints requested for this client h](j)}(h``num_syncpts``h]j)}(hjh]h num_syncpts}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhK\hjubj)}(hhh]h)}(h.number of syncpoints requested for this clienth]h.number of syncpoints requested for this client}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK\hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK\hjubj)}(h'``parent`` pointer to parent structure h](j)}(h ``parent``h]j)}(hj$h]hparent}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhK]hjubj)}(hhh]h)}(hpointer to parent structureh]hpointer to parent structure}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hK]hj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj9hK]hjubj)}(h0``usecount`` reference count for this structure h](j)}(h ``usecount``h]j)}(hj]h]husecount}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhK^hjWubj)}(hhh]h)}(h"reference count for this structureh]h"reference count for this structure}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrhK^hjsubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjrhK^hjubj)}(h2``lock`` mutex for mutually exclusive concurrency h](j)}(h``lock``h]j)}(hjh]hlock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhK_hjubj)}(hhh]h)}(h(mutex for mutually exclusive concurrencyh]h(mutex for mutually exclusive concurrency}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK_hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK_hjubj)}(h$``cache`` host1x buffer object cacheh](j)}(h ``cache``h]j)}(hjh]hcache}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhK_hjubj)}(hhh]h)}(hhost1x buffer object cacheh]hhost1x buffer object cache}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhK`hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK_hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jhost1x_driver (C struct)c.host1x_driverhNtauh1jhjhhhNhNubj)}(hhh](j)}(h host1x_driverh]j)}(hstruct host1x_driverh](j)}(hjh]hstruct}(hj) hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj% hhhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhKfubj)}(h h]h }(hj7 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj% hhhj6 hKfubj)}(h host1x_driverh]j)}(hj# h]h host1x_driver}(hjI hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj% hhhj6 hKfubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj! hhhj6 hKfubah}(h]j ah ](jjeh"]h$]h&]jj )j huh1jhj6 hKfhj hhubj )}(hhh]h)}(hhost1x logical device driverh]hhost1x logical device driver}(hjk hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhMphjh hhubah}(h]h ]h"]h$]h&]uh1j hj hhhj6 hKfubeh}(h]h ](j(structeh"]h$]h&]j-j(j.j j/j j0j1j2uh1jhhhjhNhNubj4)}(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); int (*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 downh](h)}(h**Definition**::h](j>)}(h**Definition**h]h Definition}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj ubh:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhMthj ubjY)}(hXstruct host1x_driver { struct device_driver driver; const struct of_device_id *subdevs; struct list_head list; int (*probe)(struct host1x_device *device); int (*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); int (*remove)(struct host1x_device *device); void (*shutdown)(struct host1x_device *device); };}hj sbah}(h]h ]h"]h$]h&]jjuh1jXhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhMvhj ubh)}(h **Members**h]j>)}(hj h]hMembers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj ubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhMhj ubj)}(hhh](j)}(h``driver`` core driver h](j)}(h ``driver``h]j)}(hj h]hdriver}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhMrhj ubj)}(hhh]h)}(h core driverh]h core driver}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMrhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMrhj ubj)}(hG``subdevs`` table of OF device IDs matching subdevices for this driver h](j)}(h ``subdevs``h]j)}(hj h]hsubdevs}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhMshj ubj)}(hhh]h)}(h:table of OF device IDs matching subdevices for this driverh]h:table of OF device IDs matching subdevices for this driver}(hj* hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj& hMshj' ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj& hMshj ubj)}(h"``list`` list node for the driver h](j)}(h``list``h]j)}(hjJ h]hlist}(hjL hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjH ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhMthjD ubj)}(hhh]h)}(hlist node for the driverh]hlist node for the driver}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_ hMthj` ubah}(h]h ]h"]h$]h&]uh1jhjD ubeh}(h]h ]h"]h$]h&]uh1jhj_ hMthj ubj)}(h:``probe`` called when the host1x logical device is probed h](j)}(h ``probe``h]j)}(hj h]hprobe}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhMuhj} ubj)}(hhh]h)}(h/called when the host1x logical device is probedh]h/called when the host1x logical device is probed}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMuhj ubah}(h]h ]h"]h$]h&]uh1jhj} ubeh}(h]h ]h"]h$]h&]uh1jhj hMuhj ubj)}(h<``remove`` called when the host1x logical device is removed h](j)}(h ``remove``h]j)}(hj h]hremove}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhMvhj ubj)}(hhh]h)}(h0called when the host1x logical device is removedh]h0called when the host1x logical device is removed}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMvhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMvhj ubj)}(h?``shutdown`` called when the host1x logical device is shut downh](j)}(h ``shutdown``h]j)}(hj h]hshutdown}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhMvhj ubj)}(hhh]h)}(h2called when the host1x logical device is shut downh]h2called when the host1x logical device is shut down}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/gpu/tegra:50: ./include/linux/host1x.hhMwhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMvhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jhost1x_device_init (C function)c.host1x_device_inithNtauh1jhjhhhNhNubj)}(hhh](j)}(h5int host1x_device_init (struct host1x_device *device)h]j)}(h4int host1x_device_init(struct host1x_device *device)h](hdesc_sig_keyword_type)}(hinth]hint}(hjQ hhhNhNubah}(h]h ]ktah"]h$]h&]uh1jO hjK hhhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chKubj)}(h h]h }(hja hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjK hhhj` hKubj)}(hhost1x_device_inith]j)}(hhost1x_device_inith]hhost1x_device_init}(hjs hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjo ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjK hhhj` hKubhdesc_parameterlist)}(h(struct host1x_device *device)h]hdesc_parameter)}(hstruct host1x_device *deviceh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(h host1x_deviceh]h host1x_device}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj(reftype identifier reftargetj modnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}j ju sbc.host1x_device_initasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubhdesc_sig_punctuation)}(h*h]h*}(hj hhhNhNubah}(h]h ]pah"]h$]h&]uh1j hj ubj)}(hdeviceh]hdevice}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj ubah}(h]h ]h"]h$]h&]jjuh1j hjK hhhj` hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjG hhhj` hKubah}(h]jB ah ](jjeh"]h$]h&]jj )j huh1jhj` hKhjD hhubj )}(hhh]h)}(h"initialize a host1x logical deviceh]h"initialize a host1x logical device}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chKhj hhubah}(h]h ]h"]h$]h&]uh1j hjD hhhj` hKubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.j: j/j: j0j1j2uh1jhhhjhNhNubj4)}(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]j>)}(hjD h]h Parameters}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjB ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chKhj> ubj)}(hhh]j)}(h7``struct host1x_device *device`` host1x logical device h](j)}(h ``struct host1x_device *device``h]j)}(hjc h]hstruct host1x_device *device}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chKhj] ubj)}(hhh]h)}(hhost1x logical deviceh]hhost1x logical device}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjx hKhjy ubah}(h]h ]h"]h$]h&]uh1jhj] ubeh}(h]h ]h"]h$]h&]uh1jhjx hKhjZ ubah}(h]h ]h"]h$]h&]uh1jhj> ubh)}(h**Description**h]j>)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chKhj> 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](hOThe driver for the host1x logical device can call this during execution of its }(hj hhhNhNubh)}(h-:c:type:`host1x_driver.probe `h]j)}(hj h]hhost1x_driver.probe}(hj hhhNhNubah}(h]h ](xrefj(c-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdoc gpu/tegra refdomainj(reftypetype refexplicitrefwarnj j )}j ]sb reftarget host1x_driveruh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chKhj ubhz implementation to initialize each of its clients. The client drivers access the subsystem specific driver data using the }(hj hhhNhNubh)}(h.:c:type:`host1x_client.parent `h]j)}(hj h]hhost1x_client.parent}(hj hhhNhNubah}(h]h ](j j(c-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj refdomainj(reftypetype refexplicitrefwarnj j j host1x_clientuh1hhj hKhj ubhQ field and driver data associated with it (usually by calling dev_get_drvdata()).}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hKhj> ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jhost1x_device_exit (C function)c.host1x_device_exithNtauh1jhjhhhNhNubj)}(hhh](j)}(h5int host1x_device_exit (struct host1x_device *device)h]j)}(h4int host1x_device_exit(struct host1x_device *device)h](jP )}(hinth]hint}(hj/ hhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hj+ hhhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chKubj)}(h h]h }(hj> hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ hhhj= hKubj)}(hhost1x_device_exith]j)}(hhost1x_device_exith]hhost1x_device_exit}(hjP hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjL ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj+ hhhj= hKubj )}(h(struct host1x_device *device)h]j )}(hstruct host1x_device *deviceh](j)}(hjh]hstruct}(hjl hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjh ubj)}(h h]h }(hjy hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjh ubh)}(hhh]j)}(h host1x_deviceh]h host1x_device}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj modnameN classnameNj j )}j ]j )}j jR sbc.host1x_device_exitasbuh1hhjh ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjh ubj )}(hj h]h*}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjh ubj)}(hdeviceh]hdevice}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjh ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hjd ubah}(h]h ]h"]h$]h&]jjuh1j hj+ hhhj= hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj' hhhj= hKubah}(h]j" ah ](jjeh"]h$]h&]jj )j huh1jhj= hKhj$ hhubj )}(hhh]h)}(h"uninitialize host1x logical deviceh]h"uninitialize host1x logical device}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chKhj hhubah}(h]h ]h"]h$]h&]uh1j hj$ hhhj= hKubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.jj/jj0j1j2uh1jhhhjhNhNubj4)}(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]j>)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chKhj ubj)}(hhh]j)}(h7``struct host1x_device *device`` host1x logical device h](j)}(h ``struct host1x_device *device``h]j)}(hj0h]hstruct host1x_device *device}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chKhj*ubj)}(hhh]h)}(hhost1x logical deviceh]hhost1x logical device}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhKhjFubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjEhKhj'ubah}(h]h ]h"]h$]h&]uh1jhj ubh)}(h**Description**h]j>)}(hjkh]h Description}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjiubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chKhj ubh)}(hWhen 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]hWhen 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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(host1x_driver_register_full (C function)c.host1x_driver_register_fullhNtauh1jhjhhhNhNubj)}(hhh](j)}(hTint host1x_driver_register_full (struct host1x_driver *driver, struct module *owner)h]j)}(hSint host1x_driver_register_full(struct host1x_driver *driver, struct module *owner)h](jP )}(hinth]hint}(hjhhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hjhhhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(hhost1x_driver_register_fullh]j)}(hhost1x_driver_register_fullh]hhost1x_driver_register_full}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhMubj )}(h4(struct host1x_driver *driver, struct module *owner)h](j )}(hstruct host1x_driver *driverh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h host1x_driverh]h host1x_driver}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj modnameN classnameNj j )}j ]j )}j jsbc.host1x_driver_register_fullasbuh1hhjubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hj9hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hdriverh]hdriver}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j hjubj )}(hstruct module *ownerh](j)}(hjh]hstruct}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubh)}(hhh]j)}(hmoduleh]hmodule}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetjmodnameN classnameNj j )}j ]j'c.host1x_driver_register_fullasbuh1hhj[ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj[ubj)}(hownerh]howner}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hjubeh}(h]h ]h"]h$]h&]jjuh1j hjhhhjhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj )j huh1jhjhMhjhhubj )}(hhh]h)}(hregister a host1x driverh]hregister a host1x driver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjhhubah}(h]h ]h"]h$]h&]uh1j hjhhhjhMubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.jj/jj0j1j2uh1jhhhjhNhNubj4)}(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]j>)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjubj)}(hhh](j)}(h/``struct host1x_driver *driver`` host1x driver h](j)}(h ``struct host1x_driver *driver``h]j)}(hj!h]hstruct host1x_driver *driver}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjubj)}(hhh]h)}(h host1x driverh]h host1x driver}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hMhj7ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj6hMhjubj)}(h&``struct module *owner`` owner module h](j)}(h``struct module *owner``h]j)}(hjZh]hstruct module *owner}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjTubj)}(hhh]h)}(h owner moduleh]h owner module}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohMhjpubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjohMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j>)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%host1x_driver_unregister (C function)c.host1x_driver_unregisterhNtauh1jhjhhhNhNubj)}(hhh](j)}(h)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjubj)}(hhh]j)}(h/``struct host1x_driver *driver`` host1x driver h](j)}(h ``struct host1x_driver *driver``h]j)}(hjh]hstruct host1x_driver *driver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjubj)}(hhh]h)}(h host1x driverh]h host1x driver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j>)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjubh)}(hUnbinds the driver from each of the host1x logical devices that it is bound to, effectively removing the subsystem devices that they represent.h]hUnbinds the driver from each of the host1x logical devices that it is bound to, effectively removing the subsystem devices that they represent.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!__host1x_client_init (C function)c.__host1x_client_inithNtauh1jhjhhhNhNubj)}(hhh](j)}(hTvoid __host1x_client_init (struct host1x_client *client, struct lock_class_key *key)h]j)}(hSvoid __host1x_client_init(struct host1x_client *client, struct lock_class_key *key)h](jP )}(hvoidh]hvoid}(hj[hhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hjWhhhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWhhhjihMubj)}(h__host1x_client_inith]j)}(h__host1x_client_inith]h__host1x_client_init}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubah}(h]h ](jjeh"]h$]h&]jjuh1jhjWhhhjihMubj )}(h:(struct host1x_client *client, struct lock_class_key *key)h](j )}(hstruct host1x_client *clienth](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h host1x_clienth]h host1x_client}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetjmodnameN classnameNj j )}j ]j )}j j~sbc.__host1x_client_initasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hclienth]hclient}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j hjubj )}(hstruct lock_class_key *keyh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hlock_class_keyh]hlock_class_key}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj*modnameN classnameNj j )}j ]jc.__host1x_client_initasbuh1hhjubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hjThhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hkeyh]hkey}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j hjubeh}(h]h ]h"]h$]h&]jjuh1j hjWhhhjihMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjShhhjihMubah}(h]jNah ](jjeh"]h$]h&]jj )j huh1jhjihMhjPhhubj )}(hhh]h)}(hinitialize a host1x clienth]hinitialize a host1x client}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjhhubah}(h]h ]h"]h$]h&]uh1j hjPhhhjihMubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.jj/jj0j1j2uh1jhhhjhNhNubj4)}(h**Parameters** ``struct host1x_client *client`` host1x client ``struct lock_class_key *key`` lock class key for the client-specific mutexh](h)}(h**Parameters**h]j>)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjubj)}(hhh](j)}(h/``struct host1x_client *client`` host1x client h](j)}(h ``struct host1x_client *client``h]j)}(hjh]hstruct host1x_client *client}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjubj)}(hhh]h)}(h host1x clienth]h host1x client}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hK``struct lock_class_key *key`` lock class key for the client-specific mutexh](j)}(h``struct lock_class_key *key``h]j)}(hjh]hstruct lock_class_key *key}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjubj)}(hhh]h)}(h,lock class key for the client-specific mutexh]h,lock class key for the client-specific mutex}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jhost1x_client_exit (C function)c.host1x_client_exithNtauh1jhjhhhNhNubj)}(hhh](j)}(h6void host1x_client_exit (struct host1x_client *client)h]j)}(h5void host1x_client_exit(struct host1x_client *client)h](jP )}(hvoidh]hvoid}(hj_hhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hj[hhhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[hhhjmhMubj)}(hhost1x_client_exith]j)}(hhost1x_client_exith]hhost1x_client_exit}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj[hhhjmhMubj )}(h(struct host1x_client *client)h]j )}(hstruct host1x_client *clienth](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h host1x_clienth]h host1x_client}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetjmodnameN classnameNj j )}j ]j )}j jsbc.host1x_client_exitasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hclienth]hclient}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j hjubah}(h]h ]h"]h$]h&]jjuh1j hj[hhhjmhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjWhhhjmhMubah}(h]jRah ](jjeh"]h$]h&]jj )j huh1jhjmhMhjThhubj )}(hhh]h)}(huninitialize a host1x clienth]huninitialize a host1x client}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjhhubah}(h]h ]h"]h$]h&]uh1j hjThhhjmhMubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.j7j/j7j0j1j2uh1jhhhjhNhNubj4)}(h@**Parameters** ``struct host1x_client *client`` host1x clienth](h)}(h**Parameters**h]j>)}(hjAh]h Parameters}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj?ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhj;ubj)}(hhh]j)}(h.``struct host1x_client *client`` host1x clienth](j)}(h ``struct host1x_client *client``h]j)}(hj`h]hstruct host1x_client *client}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjZubj)}(hhh]h)}(h host1x clienth]h host1x client}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjvubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjuhMhjWubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%__host1x_client_register (C function)c.__host1x_client_registerhNtauh1jhjhhhNhNubj)}(hhh](j)}(h;int __host1x_client_register (struct host1x_client *client)h]j)}(h:int __host1x_client_register(struct host1x_client *client)h](jP )}(hinth]hint}(hjhhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hjhhhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(h__host1x_client_registerh]j)}(h__host1x_client_registerh]h__host1x_client_register}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhMubj )}(h(struct host1x_client *client)h]j )}(hstruct host1x_client *clienth](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h host1x_clienth]h host1x_client}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetjmodnameN classnameNj j )}j ]j )}j jsbc.__host1x_client_registerasbuh1hhjubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hjChhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hclienth]hclient}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j hjubah}(h]h ]h"]h$]h&]jjuh1j hjhhhjhMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj )j huh1jhjhMhjhhubj )}(hhh]h)}(hregister a host1x clienth]hregister a host1x client}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjwhhubah}(h]h ]h"]h$]h&]uh1j hjhhhjhMubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.jj/jj0j1j2uh1jhhhjhNhNubj4)}(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]j>)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjubj)}(hhh]j)}(h/``struct host1x_client *client`` host1x client h](j)}(h ``struct host1x_client *client``h]j)}(hjh]hstruct host1x_client *client}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjubj)}(hhh]h)}(h host1x clienth]h host1x client}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j>)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjubh)}(hXRegisters 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 }(hj hhhNhNubh)}(h4:c:type:`host1x_client_ops.init `h]j)}(hjh]hhost1x_client_ops.init}(hjhhhNhNubah}(h]h ](j j(c-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainj(reftypetype refexplicitrefwarnj j j host1x_client_opsuh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhj ubh implementation.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj3hMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%host1x_client_unregister (C function)c.host1x_client_unregisterhNtauh1jhjhhhNhNubj)}(hhh](j)}(h)}(hj@h]h Parameters}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj>ubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chM hj:ubj)}(hhh]j)}(h/``struct host1x_client *client`` host1x client h](j)}(h ``struct host1x_client *client``h]j)}(hj_h]hstruct host1x_client *client}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chMhjYubj)}(hhh]h)}(h host1x clienth]h host1x client}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthMhjuubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjthMhjVubah}(h]h ]h"]h$]h&]uh1jhj:ubh)}(h**Description**h]j>)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chM hj:ubh)}(hRemoves a host1x client from its host1x controller instance. If a logical device has already been initialized, it will be torn down.h]hRemoves a host1x client from its host1x controller instance. If a logical device has already been initialized, it will be torn down.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhR/var/lib/git/docbuild/linux/Documentation/gpu/tegra:52: ./drivers/gpu/host1x/bus.chM hj:ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubeh}(h]host1x-infrastructure-referenceah ]h"]host1x infrastructure referenceah$]h&]uh1hhjFhhhhhK0ubh)}(hhh](h)}(hHost1x Syncpoint Referenceh]hHost1x Syncpoint Reference}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK8ubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j host1x_syncpt_alloc (C function)c.host1x_syncpt_allochNtauh1jhjhhhNhNubj)}(hhh](j)}(hgstruct host1x_syncpt * host1x_syncpt_alloc (struct host1x *host, unsigned long flags, const char *name)h]j)}(hestruct host1x_syncpt *host1x_syncpt_alloc(struct host1x *host, unsigned long flags, const char *name)h](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chK:ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK:ubh)}(hhh]j)}(h host1x_syncpth]h host1x_syncpt}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetjmodnameN classnameNj j )}j ]j )}j host1x_syncpt_allocsbc.host1x_syncpt_allocasbuh1hhjhhhjhK:ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK:ubj )}(hj h]h*}(hjFhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjhhhjhK:ubj)}(hhost1x_syncpt_alloch]j)}(hj5h]hhost1x_syncpt_alloc}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhK:ubj )}(h<(struct host1x *host, unsigned long flags, const char *name)h](j )}(hstruct host1x *hosth](j)}(hjh]hstruct}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubh)}(hhh]j)}(hhost1xh]hhost1x}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetjmodnameN classnameNj j )}j ]j3c.host1x_syncpt_allocasbuh1hhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjnubj)}(hhosth]hhost}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]noemphjjuh1j hjjubj )}(hunsigned long flagsh](jP )}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjP )}(hlongh]hlong}(hjhhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hflagsh]hflags}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j hjjubj )}(hconst char *nameh](j)}(hconsth]hconst}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubjP )}(hcharh]hchar}(hjOhhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hj/ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj )}(hj h]h*}(hjkhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj/ubj)}(hnameh]hname}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hjjubeh}(h]h ]h"]h$]h&]jjuh1j hjhhhjhK:ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhK:ubah}(h]jah ](jjeh"]h$]h&]jj )j huh1jhjhK:hjhhubj )}(hhh]h)}(hallocate a syncpointh]hallocate a syncpoint}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chK/hjhhubah}(h]h ]h"]h$]h&]uh1j hjhhhjhK:ubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.jj/jj0j1j2uh1jhhhjhNhNubj4)}(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]j>)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chK3hjubj)}(hhh](j)}(h+``struct host1x *host`` host1x device data h](j)}(h``struct host1x *host``h]j)}(hjh]hstruct host1x *host}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chK0hjubj)}(hhh]h)}(hhost1x device datah]hhost1x device data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK0hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK0hjubj)}(h:``unsigned long flags`` bitfield of HOST1X_SYNCPT_* flags h](j)}(h``unsigned long flags``h]j)}(hjh]hunsigned long flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chK1hjubj)}(hhh]h)}(h!bitfield of HOST1X_SYNCPT_* flagsh]h!bitfield of HOST1X_SYNCPT_* flags}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hK1hj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj1hK1hjubj)}(hD``const char *name`` name for the syncpoint for use in debug prints h](j)}(h``const char *name``h]j)}(hjUh]hconst char *name}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chK2hjOubj)}(hhh]h)}(h.name for the syncpoint for use in debug printsh]h.name for the syncpoint for use in debug prints}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhK2hjkubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjjhK2hjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j>)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chK4hjubh)}(hAllocates 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]hAllocates 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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chK4hjubh)}(hPIf no free syncpoints are available, or a NULL name was specified, returns NULL.h]hPIf no free syncpoints are available, or a NULL name was specified, returns NULL.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chK7hjubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jhost1x_syncpt_id (C function)c.host1x_syncpt_idhNtauh1jhjhhhNhNubj)}(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)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetjmodnameN classnameNj j )}j ]j )}j host1x_syncpt_idsbc.host1x_syncpt_idasbuh1hhjhhhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKtubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKtubj)}(hhost1x_syncpt_idh]j)}(hjh]hhost1x_syncpt_id}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKtubj )}(h(struct host1x_syncpt *sp)h]j )}(hstruct host1x_syncpt *sph](j)}(hjh]hstruct}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubh)}(hhh]j)}(h host1x_syncpth]h host1x_syncpt}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetjVmodnameN classnameNj j )}j ]jc.host1x_syncpt_idasbuh1hhj2ubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj2ubj)}(hsph]hsp}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj.ubah}(h]h ]h"]h$]h&]jjuh1j hjhhhjhKtubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKtubah}(h]jah ](jjeh"]h$]h&]jj )j huh1jhjhKthjhhubj )}(hhh]h)}(hretrieve syncpoint IDh]hretrieve syncpoint ID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKmhjhhubah}(h]h ]h"]h$]h&]uh1j hjhhhjhKtubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.jj/jj0j1j2uh1jhhhjhNhNubj4)}(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]j>)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKqhjubj)}(hhh]j)}(h.``struct host1x_syncpt *sp`` host1x syncpoint h](j)}(h``struct host1x_syncpt *sp``h]j)}(hjh]hstruct host1x_syncpt *sp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKnhjubj)}(hhh]h)}(hhost1x syncpointh]hhost1x syncpoint}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKnhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKnhjubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j>)}(hj3h]h Description}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj1ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKphjubh)}(hGiven 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]hGiven 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.}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKphjubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#host1x_syncpt_incr_max (C function)c.host1x_syncpt_incr_maxhNtauh1jhjhhhNhNubj)}(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)}(hu32h]hu32}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj}modnameN classnameNj j )}j ]j )}j host1x_syncpt_incr_maxsbc.host1x_syncpt_incr_maxasbuh1hhjthhhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjthhhjhKubj)}(hhost1x_syncpt_incr_maxh]j)}(hjh]hhost1x_syncpt_incr_max}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjthhhjhKubj )}(h%(struct host1x_syncpt *sp, u32 incrs)h](j )}(hstruct host1x_syncpt *sph](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h host1x_syncpth]h host1x_syncpt}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetjmodnameN classnameNj j )}j ]jc.host1x_syncpt_incr_maxasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hsph]hsp}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j hjubj )}(h u32 incrsh](h)}(hhh]j)}(hu32h]hu32}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj?modnameN classnameNj j )}j ]jc.host1x_syncpt_incr_maxasbuh1hhj6ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj)}(hincrsh]hincrs}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hjubeh}(h]h ]h"]h$]h&]jjuh1j hjthhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjphhhjhKubah}(h]jkah ](jjeh"]h$]h&]jj )j huh1jhjhKhjmhhubj )}(hhh]h)}(h!update the value sent to hardwareh]h!update the value sent to hardware}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chK{hjhhubah}(h]h ]h"]h$]h&]uh1j hjmhhhjhKubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.jj/jj0j1j2uh1jhhhjhNhNubj4)}(he**Parameters** ``struct host1x_syncpt *sp`` host1x syncpoint ``u32 incrs`` number of incrementsh](h)}(h**Parameters**h]j>)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKhjubj)}(hhh](j)}(h.``struct host1x_syncpt *sp`` host1x syncpoint h](j)}(h``struct host1x_syncpt *sp``h]j)}(hjh]hstruct host1x_syncpt *sp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chK|hjubj)}(hhh]h)}(hhost1x syncpointh]hhost1x syncpoint}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK|hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK|hjubj)}(h"``u32 incrs`` number of incrementsh](j)}(h ``u32 incrs``h]j)}(hj h]h u32 incrs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chK~hjubj)}(hhh]h)}(hnumber of incrementsh]hnumber of increments}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chK}hj#ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj"hK~hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jhost1x_syncpt_incr (C function)c.host1x_syncpt_incrhNtauh1jhjhhhNhNubj)}(hhh](j)}(h1int host1x_syncpt_incr (struct host1x_syncpt *sp)h]j)}(h0int host1x_syncpt_incr(struct host1x_syncpt *sp)h](jP )}(hinth]hint}(hjghhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hjchhhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjchhhjuhKubj)}(hhost1x_syncpt_incrh]j)}(hhost1x_syncpt_incrh]hhost1x_syncpt_incr}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjchhhjuhKubj )}(h(struct host1x_syncpt *sp)h]j )}(hstruct host1x_syncpt *sph](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h host1x_syncpth]h host1x_syncpt}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetjmodnameN classnameNj j )}j ]j )}j jsbc.host1x_syncpt_incrasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hj h]h*}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hsph]hsp}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j hjubah}(h]h ]h"]h$]h&]jjuh1j hjchhhjuhKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj_hhhjuhKubah}(h]jZah ](jjeh"]h$]h&]jj )j huh1jhjuhKhj\hhubj )}(hhh]h)}(h2increment syncpoint value from CPU, updating cacheh]h2increment syncpoint value from CPU, updating cache}(hj' hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKhj$ hhubah}(h]h ]h"]h$]h&]uh1j hj\hhhjuhKubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.j? j/j? j0j1j2uh1jhhhjhNhNubj4)}(h?**Parameters** ``struct host1x_syncpt *sp`` host1x syncpointh](h)}(h**Parameters**h]j>)}(hjI h]h Parameters}(hjK hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjG ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKhjC ubj)}(hhh]j)}(h-``struct host1x_syncpt *sp`` host1x syncpointh](j)}(h``struct host1x_syncpt *sp``h]j)}(hjh h]hstruct host1x_syncpt *sp}(hjj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjf ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKhjb ubj)}(hhh]h)}(hhost1x syncpointh]hhost1x syncpoint}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKhj~ ubah}(h]h ]h"]h$]h&]uh1jhjb ubeh}(h]h ]h"]h$]h&]uh1jhj} hKhj_ ubah}(h]h ]h"]h$]h&]uh1jhjC ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jhost1x_syncpt_wait (C function)c.host1x_syncpt_waithNtauh1jhjhhhNhNubj)}(hhh](j)}(hWint host1x_syncpt_wait (struct host1x_syncpt *sp, u32 thresh, long timeout, u32 *value)h]j)}(hVint host1x_syncpt_wait(struct host1x_syncpt *sp, u32 thresh, long timeout, u32 *value)h](jP )}(hinth]hint}(hj hhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hj hhhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hKubj)}(hhost1x_syncpt_waith]j)}(hhost1x_syncpt_waith]hhost1x_syncpt_wait}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhj hKubj )}(h@(struct host1x_syncpt *sp, u32 thresh, long timeout, u32 *value)h](j )}(hstruct host1x_syncpt *sph](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj !hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(h host1x_syncpth]h host1x_syncpt}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj!modnameN classnameNj j )}j ]j )}j j sbc.host1x_syncpt_waitasbuh1hhj ubj)}(h h]h }(hj=!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj )}(hj h]h*}(hjK!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj ubj)}(hsph]hsp}(hjX!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj ubj )}(h u32 threshh](h)}(hhh]j)}(hu32h]hu32}(hjt!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjq!ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetjv!modnameN classnameNj j )}j ]j9!c.host1x_syncpt_waitasbuh1hhjm!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm!ubj)}(hthreshh]hthresh}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm!ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj ubj )}(h long timeouth](jP )}(hlongh]hlong}(hj!hhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hj!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj)}(htimeouth]htimeout}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj ubj )}(h u32 *valueh](h)}(hhh]j)}(hu32h]hu32}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj!modnameN classnameNj j )}j ]j9!c.host1x_syncpt_waitasbuh1hhj!ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj )}(hj h]h*}(hj"hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj!ubj)}(hvalueh]hvalue}(hj*"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj ubeh}(h]h ]h"]h$]h&]jjuh1j hj hhhj hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj hhhj hKubah}(h]j ah ](jjeh"]h$]h&]jj )j huh1jhj hKhj hhubj )}(hhh]h)}(h+wait for a syncpoint to reach a given valueh]h+wait for a syncpoint to reach a given value}(hjT"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKhjQ"hhubah}(h]h ]h"]h$]h&]uh1j hj hhhj hKubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.jl"j/jl"j0j1j2uh1jhhhjhNhNubj4)}(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 valueh](h)}(h**Parameters**h]j>)}(hjv"h]h Parameters}(hjx"hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjt"ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKhjp"ubj)}(hhh](j)}(h.``struct host1x_syncpt *sp`` host1x syncpoint h](j)}(h``struct host1x_syncpt *sp``h]j)}(hj"h]hstruct host1x_syncpt *sp}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKhj"ubj)}(hhh]h)}(hhost1x syncpointh]hhost1x syncpoint}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hKhj"ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj"hKhj"ubj)}(h``u32 thresh`` threshold h](j)}(h``u32 thresh``h]j)}(hj"h]h u32 thresh}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKhj"ubj)}(hhh]h)}(h thresholdh]h threshold}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hKhj"ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj"hKhj"ubj)}(hQ``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 #hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKhj#ubj)}(hhh]h)}(h?maximum time to wait for the syncpoint to reach the given valueh]h?maximum time to wait for the syncpoint to reach the given value}(hj #hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hKhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#hKhj"ubj)}(h6``u32 *value`` return location for the syncpoint valueh](j)}(h``u32 *value``h]j)}(hj@#h]h u32 *value}(hjB#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>#ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKhj:#ubj)}(hhh]h)}(h'return location for the syncpoint valueh]h'return location for the syncpoint value}(hjY#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chKhjV#ubah}(h]h ]h"]h$]h&]uh1jhj:#ubeh}(h]h ]h"]h$]h&]uh1jhjU#hKhj"ubeh}(h]h ]h"]h$]h&]uh1jhjp"ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"host1x_syncpt_request (C function)c.host1x_syncpt_requesthNtauh1jhjhhhNhNubj)}(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)}(hjh]hstruct}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#hhhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMKubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#hhhj#hMKubh)}(hhh]j)}(h host1x_syncpth]h host1x_syncpt}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj#modnameN classnameNj j )}j ]j )}j host1x_syncpt_requestsbc.host1x_syncpt_requestasbuh1hhj#hhhj#hMKubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#hhhj#hMKubj )}(hj h]h*}(hj#hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj#hhhj#hMKubj)}(hhost1x_syncpt_requesth]j)}(hj#h]hhost1x_syncpt_request}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj#hhhj#hMKubj )}(h3(struct host1x_client *client, unsigned long flags)h](j )}(hstruct host1x_client *clienth](j)}(hjh]hstruct}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj)}(h h]h }(hj!$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubh)}(hhh]j)}(h host1x_clienth]h host1x_client}(hj2$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/$ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj4$modnameN classnameNj j )}j ]j#c.host1x_syncpt_requestasbuh1hhj$ubj)}(h h]h }(hjP$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj )}(hj h]h*}(hj^$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj$ubj)}(hclienth]hclient}(hjk$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj $ubj )}(hunsigned long flagsh](jP )}(hunsignedh]hunsigned}(hj$hhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hj$ubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubjP )}(hlongh]hlong}(hj$hhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hj$ubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj)}(hflagsh]hflags}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj $ubeh}(h]h ]h"]h$]h&]jjuh1j hj#hhhj#hMKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj#hhhj#hMKubah}(h]j#ah ](jjeh"]h$]h&]jj )j huh1jhj#hMKhj#hhubj )}(hhh]h)}(hrequest a syncpointh]hrequest a syncpoint}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMBhj$hhubah}(h]h ]h"]h$]h&]uh1j hj#hhhj#hMKubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.j$j/j$j0j1j2uh1jhhhjhNhNubj4)}(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]j>)}(hj%h]h Parameters}(hj %hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj%ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMFhj%ubj)}(hhh](j)}(hA``struct host1x_client *client`` client requesting the syncpoint h](j)}(h ``struct host1x_client *client``h]j)}(hj'%h]hstruct host1x_client *client}(hj)%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%%ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMChj!%ubj)}(hhh]h)}(hclient requesting the syncpointh]hclient requesting the syncpoint}(hj@%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<%hMChj=%ubah}(h]h ]h"]h$]h&]uh1jhj!%ubeh}(h]h ]h"]h$]h&]uh1jhj<%hMChj%ubj)}(h``unsigned long flags`` flags h](j)}(h``unsigned long flags``h]j)}(hj`%h]hunsigned long flags}(hjb%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^%ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMDhjZ%ubj)}(hhh]h)}(hflagsh]hflags}(hjy%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhju%hMDhjv%ubah}(h]h ]h"]h$]h&]uh1jhjZ%ubeh}(h]h ]h"]h$]h&]uh1jhju%hMDhj%ubeh}(h]h ]h"]h$]h&]uh1jhj%ubh)}(h**Description**h]j>)}(hj%h]h Description}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj%ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMFhj%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().}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMFhj%ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jhost1x_syncpt_put (C function)c.host1x_syncpt_puthNtauh1jhjhhhNhNubj)}(hhh](j)}(h1void host1x_syncpt_put (struct host1x_syncpt *sp)h]j)}(h0void host1x_syncpt_put(struct host1x_syncpt *sp)h](jP )}(hvoidh]hvoid}(hj%hhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hj%hhhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMoubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%hhhj%hMoubj)}(hhost1x_syncpt_puth]j)}(hhost1x_syncpt_puth]hhost1x_syncpt_put}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj%hhhj%hMoubj )}(h(struct host1x_syncpt *sp)h]j )}(hstruct host1x_syncpt *sph](j)}(hjh]hstruct}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj)}(h h]h }(hj*&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubh)}(hhh]j)}(h host1x_syncpth]h host1x_syncpt}(hj;&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8&ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj=&modnameN classnameNj j )}j ]j )}j j&sbc.host1x_syncpt_putasbuh1hhj&ubj)}(h h]h }(hj[&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj )}(hj h]h*}(hji&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj&ubj)}(hsph]hsp}(hjv&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj&ubah}(h]h ]h"]h$]h&]jjuh1j hj%hhhj%hMoubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj%hhhj%hMoubah}(h]j%ah ](jjeh"]h$]h&]jj )j huh1jhj%hMohj%hhubj )}(hhh]h)}(hfree a requested syncpointh]hfree a requested syncpoint}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhhj&hhubah}(h]h ]h"]h$]h&]uh1j hj%hhhj%hMoubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.j&j/j&j0j1j2uh1jhhhjhNhNubj4)}(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]j>)}(hj&h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj&ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMlhj&ubj)}(hhh]j)}(h.``struct host1x_syncpt *sp`` host1x syncpoint h](j)}(h``struct host1x_syncpt *sp``h]j)}(hj&h]hstruct host1x_syncpt *sp}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMihj&ubj)}(hhh]h)}(hhost1x syncpointh]hhost1x syncpoint}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hMihj&ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhj&hMihj&ubah}(h]h ]h"]h$]h&]uh1jhj&ubh)}(h**Description**h]j>)}(hj'h]h Description}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj'ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMkhj&ubh)}(hRelease a syncpoint previously allocated using host1x_syncpt_request(). A host1x client driver should call this when the syncpoint is no longer in use.h]hRelease a syncpoint previously allocated using host1x_syncpt_request(). A host1x client driver should call this when the syncpoint is no longer in use.}(hj2'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMkhj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#host1x_syncpt_read_max (C function)c.host1x_syncpt_read_maxhNtauh1jhjhhhNhNubj)}(hhh](j)}(h5u32 host1x_syncpt_read_max (struct host1x_syncpt *sp)h]j)}(h4u32 host1x_syncpt_read_max(struct host1x_syncpt *sp)h](h)}(hhh]j)}(hu32h]hu32}(hjd'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhja'ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetjf'modnameN classnameNj j )}j ]j )}j host1x_syncpt_read_maxsbc.host1x_syncpt_read_maxasbuh1hhj]'hhhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]'hhhj'hMubj)}(hhost1x_syncpt_read_maxh]j)}(hj'h]hhost1x_syncpt_read_max}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj]'hhhj'hMubj )}(h(struct host1x_syncpt *sp)h]j )}(hstruct host1x_syncpt *sph](j)}(hjh]hstruct}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubh)}(hhh]j)}(h host1x_syncpth]h host1x_syncpt}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj'modnameN classnameNj j )}j ]j'c.host1x_syncpt_read_maxasbuh1hhj'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj )}(hj h]h*}(hj'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj'ubj)}(hsph]hsp}(hj (hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj'ubah}(h]h ]h"]h$]h&]jjuh1j hj]'hhhj'hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjY'hhhj'hMubah}(h]jT'ah ](jjeh"]h$]h&]jj )j huh1jhj'hMhjV'hhubj )}(hhh]h)}(hread maximum syncpoint valueh]hread maximum syncpoint value}(hj4(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj1(hhubah}(h]h ]h"]h$]h&]uh1j hjV'hhhj'hMubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.jL(j/jL(j0j1j2uh1jhhhjhNhNubj4)}(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]j>)}(hjV(h]h Parameters}(hjX(hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjT(ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhjP(ubj)}(hhh]j)}(h.``struct host1x_syncpt *sp`` host1x syncpoint h](j)}(h``struct host1x_syncpt *sp``h]j)}(hju(h]hstruct host1x_syncpt *sp}(hjw(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs(ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhjo(ubj)}(hhh]h)}(hhost1x syncpointh]hhost1x syncpoint}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hMhj(ubah}(h]h ]h"]h$]h&]uh1jhjo(ubeh}(h]h ]h"]h$]h&]uh1jhj(hMhjl(ubah}(h]h ]h"]h$]h&]uh1jhjP(ubh)}(h**Description**h]j>)}(hj(h]h Description}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj(ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhjP(ubh)}(hxThe maximum syncpoint value indicates how many operations there are in queue, either in channel or in a software thread.h]hxThe maximum syncpoint value indicates how many operations there are in queue, either in channel or in a software thread.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhjP(ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#host1x_syncpt_read_min (C function)c.host1x_syncpt_read_minhNtauh1jhjhhhNhNubj)}(hhh](j)}(h5u32 host1x_syncpt_read_min (struct host1x_syncpt *sp)h]j)}(h4u32 host1x_syncpt_read_min(struct host1x_syncpt *sp)h](h)}(hhh]j)}(hu32h]hu32}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj(modnameN classnameNj j )}j ]j )}j host1x_syncpt_read_minsbc.host1x_syncpt_read_minasbuh1hhj(hhhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(hhhj)hMubj)}(hhost1x_syncpt_read_minh]j)}(hj)h]hhost1x_syncpt_read_min}(hj,)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj()ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj(hhhj)hMubj )}(h(struct host1x_syncpt *sp)h]j )}(hstruct host1x_syncpt *sph](j)}(hjh]hstruct}(hjG)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC)ubj)}(h h]h }(hjT)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC)ubh)}(hhh]j)}(h host1x_syncpth]h host1x_syncpt}(hje)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjb)ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetjg)modnameN classnameNj j )}j ]j)c.host1x_syncpt_read_minasbuh1hhjC)ubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC)ubj )}(hj h]h*}(hj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjC)ubj)}(hsph]hsp}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC)ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj?)ubah}(h]h ]h"]h$]h&]jjuh1j hj(hhhj)hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj(hhhj)hMubah}(h]j(ah ](jjeh"]h$]h&]jj )j huh1jhj)hMhj(hhubj )}(hhh]h)}(hread minimum syncpoint valueh]hread minimum syncpoint value}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj)hhubah}(h]h ]h"]h$]h&]uh1j hj(hhhj)hMubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.j)j/j)j0j1j2uh1jhhhjhNhNubj4)}(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]j>)}(hj)h]h Parameters}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj)ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj)ubj)}(hhh]j)}(h.``struct host1x_syncpt *sp`` host1x syncpoint h](j)}(h``struct host1x_syncpt *sp``h]j)}(hj *h]hstruct host1x_syncpt *sp}(hj *hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj*ubj)}(hhh]h)}(hhost1x syncpointh]hhost1x syncpoint}(hj"*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hMhj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj*hMhj*ubah}(h]h ]h"]h$]h&]uh1jhj)ubh)}(h**Description**h]j>)}(hjD*h]h Description}(hjF*hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjB*ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj)ubh)}(hTThe minimum syncpoint value is a shadow of the current sync point value in hardware.h]hTThe minimum syncpoint value is a shadow of the current sync point value in hardware.}(hjZ*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj)ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jhost1x_syncpt_read (C function)c.host1x_syncpt_readhNtauh1jhjhhhNhNubj)}(hhh](j)}(h1u32 host1x_syncpt_read (struct host1x_syncpt *sp)h]j)}(h0u32 host1x_syncpt_read(struct host1x_syncpt *sp)h](h)}(hhh]j)}(hu32h]hu32}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj*modnameN classnameNj j )}j ]j )}j host1x_syncpt_readsbc.host1x_syncpt_readasbuh1hhj*hhhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*hhhj*hMubj)}(hhost1x_syncpt_readh]j)}(hj*h]hhost1x_syncpt_read}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj*hhhj*hMubj )}(h(struct host1x_syncpt *sp)h]j )}(hstruct host1x_syncpt *sph](j)}(hjh]hstruct}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubh)}(hhh]j)}(h host1x_syncpth]h host1x_syncpt}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj*modnameN classnameNj j )}j ]j*c.host1x_syncpt_readasbuh1hhj*ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj )}(hj h]h*}(hj%+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj*ubj)}(hsph]hsp}(hj2+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj*ubah}(h]h ]h"]h$]h&]jjuh1j hj*hhhj*hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj*hhhj*hMubah}(h]j|*ah ](jjeh"]h$]h&]jj )j huh1jhj*hMhj~*hhubj )}(hhh]h)}(h read the current syncpoint valueh]h read the current syncpoint value}(hj\+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhjY+hhubah}(h]h ]h"]h$]h&]uh1j hj~*hhhj*hMubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.jt+j/jt+j0j1j2uh1jhhhjhNhNubj4)}(h?**Parameters** ``struct host1x_syncpt *sp`` host1x syncpointh](h)}(h**Parameters**h]j>)}(hj~+h]h Parameters}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj|+ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhjx+ubj)}(hhh]j)}(h-``struct host1x_syncpt *sp`` host1x syncpointh](j)}(h``struct host1x_syncpt *sp``h]j)}(hj+h]hstruct host1x_syncpt *sp}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj+ubj)}(hhh]h)}(hhost1x syncpointh]hhost1x syncpoint}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj+ubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhj+hMhj+ubah}(h]h ]h"]h$]h&]uh1jhjx+ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$host1x_syncpt_get_by_id (C function)c.host1x_syncpt_get_by_idhNtauh1jhjhhhNhNubj)}(hhh](j)}(hUstruct host1x_syncpt * host1x_syncpt_get_by_id (struct host1x *host, unsigned int id)h]j)}(hSstruct host1x_syncpt *host1x_syncpt_get_by_id(struct host1x *host, unsigned int id)h](j)}(hjh]hstruct}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhj,hMubh)}(hhh]j)}(h host1x_syncpth]h host1x_syncpt}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj,modnameN classnameNj j )}j ]j )}j host1x_syncpt_get_by_idsbc.host1x_syncpt_get_by_idasbuh1hhj+hhhj,hMubj)}(h h]h }(hj7,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhj,hMubj )}(hj h]h*}(hjE,hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj+hhhj,hMubj)}(hhost1x_syncpt_get_by_idh]j)}(hj4,h]hhost1x_syncpt_get_by_id}(hjV,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjR,ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj+hhhj,hMubj )}(h&(struct host1x *host, unsigned int id)h](j )}(hstruct host1x *hosth](j)}(hjh]hstruct}(hjq,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm,ubj)}(h h]h }(hj~,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm,ubh)}(hhh]j)}(hhost1xh]hhost1x}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj,modnameN classnameNj j )}j ]j2,c.host1x_syncpt_get_by_idasbuh1hhjm,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm,ubj )}(hj h]h*}(hj,hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjm,ubj)}(hhosth]hhost}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm,ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hji,ubj )}(hunsigned int idh](jP )}(hunsignedh]hunsigned}(hj,hhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hj,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubjP )}(hinth]hint}(hj,hhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hj,ubj)}(h h]h }(hj -hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(hidh]hid}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hji,ubeh}(h]h ]h"]h$]h&]jjuh1j hj+hhhj,hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj+hhhj,hMubah}(h]j+ah ](jjeh"]h$]h&]jj )j huh1jhj,hMhj+hhubj )}(hhh]h)}(hobtain a syncpoint by IDh]hobtain a syncpoint by ID}(hjC-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj@-hhubah}(h]h ]h"]h$]h&]uh1j hj+hhhj,hMubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.j[-j/j[-j0j1j2uh1jhhhjhNhNubj4)}(h_**Parameters** ``struct host1x *host`` host1x controller ``unsigned int id`` syncpoint IDh](h)}(h**Parameters**h]j>)}(hje-h]h Parameters}(hjg-hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjc-ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj_-ubj)}(hhh](j)}(h*``struct host1x *host`` host1x controller h](j)}(h``struct host1x *host``h]j)}(hj-h]hstruct host1x *host}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj~-ubj)}(hhh]h)}(hhost1x controllerh]hhost1x controller}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hMhj-ubah}(h]h ]h"]h$]h&]uh1jhj~-ubeh}(h]h ]h"]h$]h&]uh1jhj-hMhj{-ubj)}(h ``unsigned int id`` syncpoint IDh](j)}(h``unsigned int id``h]j)}(hj-h]hunsigned int id}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj-ubj)}(hhh]h)}(h syncpoint IDh]h syncpoint ID}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj-ubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhj-hMhj{-ubeh}(h]h ]h"]h$]h&]uh1jhj_-ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j*host1x_syncpt_get_by_id_noref (C function)c.host1x_syncpt_get_by_id_norefhNtauh1jhjhhhNhNubj)}(hhh](j)}(h[struct host1x_syncpt * host1x_syncpt_get_by_id_noref (struct host1x *host, unsigned int id)h]j)}(hYstruct host1x_syncpt *host1x_syncpt_get_by_id_noref(struct host1x *host, unsigned int id)h](j)}(hjh]hstruct}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.hhhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMubj)}(h h]h }(hj%.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.hhhj$.hMubh)}(hhh]j)}(h host1x_syncpth]h host1x_syncpt}(hj6.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3.ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj8.modnameN classnameNj j )}j ]j )}j host1x_syncpt_get_by_id_norefsbc.host1x_syncpt_get_by_id_norefasbuh1hhj.hhhj$.hMubj)}(h h]h }(hjW.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.hhhj$.hMubj )}(hj h]h*}(hje.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj.hhhj$.hMubj)}(hhost1x_syncpt_get_by_id_norefh]j)}(hjT.h]hhost1x_syncpt_get_by_id_noref}(hjv.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr.ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj.hhhj$.hMubj )}(h&(struct host1x *host, unsigned int id)h](j )}(hstruct host1x *hosth](j)}(hjh]hstruct}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubh)}(hhh]j)}(hhost1xh]hhost1x}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj.modnameN classnameNj j )}j ]jR.c.host1x_syncpt_get_by_id_norefasbuh1hhj.ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj )}(hj h]h*}(hj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj.ubj)}(hhosth]hhost}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj.ubj )}(hunsigned int idh](jP )}(hunsignedh]hunsigned}(hj/hhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hj.ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubjP )}(hinth]hint}(hj/hhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hj.ubj)}(h h]h }(hj+/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj)}(hidh]hid}(hj9/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj.ubeh}(h]h ]h"]h$]h&]jjuh1j hj.hhhj$.hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj.hhhj$.hMubah}(h]j .ah ](jjeh"]h$]h&]jj )j huh1jhj$.hMhj .hhubj )}(hhh]h)}(h9obtain a syncpoint by ID but don't increase the refcount.h]h;obtain a syncpoint by ID but don’t increase the refcount.}(hjc/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj`/hhubah}(h]h ]h"]h$]h&]uh1j hj .hhhj$.hMubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.j{/j/j{/j0j1j2uh1jhhhjhNhNubj4)}(h_**Parameters** ``struct host1x *host`` host1x controller ``unsigned int id`` syncpoint IDh](h)}(h**Parameters**h]j>)}(hj/h]h Parameters}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj/ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj/ubj)}(hhh](j)}(h*``struct host1x *host`` host1x controller h](j)}(h``struct host1x *host``h]j)}(hj/h]hstruct host1x *host}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj/ubj)}(hhh]h)}(hhost1x controllerh]hhost1x controller}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hMhj/ubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhj/hMhj/ubj)}(h ``unsigned int id`` syncpoint IDh](j)}(h``unsigned int id``h]j)}(hj/h]hunsigned int id}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj/ubj)}(hhh]h)}(h syncpoint IDh]h syncpoint ID}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj/ubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhj/hMhj/ubeh}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jhost1x_syncpt_get (C function)c.host1x_syncpt_gethNtauh1jhjhhhNhNubj)}(hhh](j)}(hCstruct host1x_syncpt * host1x_syncpt_get (struct host1x_syncpt *sp)h]j)}(hAstruct host1x_syncpt *host1x_syncpt_get(struct host1x_syncpt *sp)h](j)}(hjh]hstruct}(hj70hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj30hhhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMubj)}(h h]h }(hjE0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj30hhhjD0hMubh)}(hhh]j)}(h host1x_syncpth]h host1x_syncpt}(hjV0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjS0ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetjX0modnameN classnameNj j )}j ]j )}j host1x_syncpt_getsbc.host1x_syncpt_getasbuh1hhj30hhhjD0hMubj)}(h h]h }(hjw0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj30hhhjD0hMubj )}(hj h]h*}(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj30hhhjD0hMubj)}(hhost1x_syncpt_geth]j)}(hjt0h]hhost1x_syncpt_get}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj30hhhjD0hMubj )}(h(struct host1x_syncpt *sp)h]j )}(hstruct host1x_syncpt *sph](j)}(hjh]hstruct}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubh)}(hhh]j)}(h host1x_syncpth]h host1x_syncpt}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj0modnameN classnameNj j )}j ]jr0c.host1x_syncpt_getasbuh1hhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj )}(hj h]h*}(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj0ubj)}(hsph]hsp}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj0ubah}(h]h ]h"]h$]h&]jjuh1j hj30hhhjD0hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj/0hhhjD0hMubah}(h]j*0ah ](jjeh"]h$]h&]jj )j huh1jhjD0hMhj,0hhubj )}(hhh]h)}(hincrement syncpoint refcounth]hincrement syncpoint refcount}(hj21hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj/1hhubah}(h]h ]h"]h$]h&]uh1j hj,0hhhjD0hMubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.jJ1j/jJ1j0j1j2uh1jhhhjhNhNubj4)}(h8**Parameters** ``struct host1x_syncpt *sp`` syncpointh](h)}(h**Parameters**h]j>)}(hjT1h]h Parameters}(hjV1hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjR1ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhjN1ubj)}(hhh]j)}(h&``struct host1x_syncpt *sp`` syncpointh](j)}(h``struct host1x_syncpt *sp``h]j)}(hjs1h]hstruct host1x_syncpt *sp}(hju1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjq1ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhjm1ubj)}(hhh]h)}(h syncpointh]h syncpoint}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj1ubah}(h]h ]h"]h$]h&]uh1jhjm1ubeh}(h]h ]h"]h$]h&]uh1jhj1hMhjj1ubah}(h]h ]h"]h$]h&]uh1jhjN1ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#host1x_syncpt_get_base (C function)c.host1x_syncpt_get_basehNtauh1jhjhhhNhNubj)}(hhh](j)}(hMstruct host1x_syncpt_base * host1x_syncpt_get_base (struct host1x_syncpt *sp)h]j)}(hKstruct host1x_syncpt_base *host1x_syncpt_get_base(struct host1x_syncpt *sp)h](j)}(hjh]hstruct}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1hhhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1hhhj1hMubh)}(hhh]j)}(hhost1x_syncpt_baseh]hhost1x_syncpt_base}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj1modnameN classnameNj j )}j ]j )}j host1x_syncpt_get_basesbc.host1x_syncpt_get_baseasbuh1hhj1hhhj1hMubj)}(h h]h }(hj 2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1hhhj1hMubj )}(hj h]h*}(hj2hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj1hhhj1hMubj)}(hhost1x_syncpt_get_baseh]j)}(hj 2h]hhost1x_syncpt_get_base}(hj,2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(2ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj1hhhj1hMubj )}(h(struct host1x_syncpt *sp)h]j )}(hstruct host1x_syncpt *sph](j)}(hjh]hstruct}(hjG2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC2ubj)}(h h]h }(hjT2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC2ubh)}(hhh]j)}(h host1x_syncpth]h host1x_syncpt}(hje2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjb2ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetjg2modnameN classnameNj j )}j ]j2c.host1x_syncpt_get_baseasbuh1hhjC2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC2ubj )}(hj h]h*}(hj2hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjC2ubj)}(hsph]hsp}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC2ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj?2ubah}(h]h ]h"]h$]h&]jjuh1j hj1hhhj1hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj1hhhj1hMubah}(h]j1ah ](jjeh"]h$]h&]jj )j huh1jhj1hMhj1hhubj )}(hhh]h)}(h0obtain the wait base associated with a syncpointh]h0obtain the wait base associated with a syncpoint}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj2hhubah}(h]h ]h"]h$]h&]uh1j hj1hhhj1hMubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.j2j/j2j0j1j2uh1jhhhjhNhNubj4)}(h?**Parameters** ``struct host1x_syncpt *sp`` host1x syncpointh](h)}(h**Parameters**h]j>)}(hj2h]h Parameters}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj2ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj2ubj)}(hhh]j)}(h-``struct host1x_syncpt *sp`` host1x syncpointh](j)}(h``struct host1x_syncpt *sp``h]j)}(hj 3h]hstruct host1x_syncpt *sp}(hj 3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj3ubj)}(hhh]h)}(hhost1x syncpointh]hhost1x syncpoint}(hj"3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj3ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhj3hMhj3ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"host1x_syncpt_base_id (C function)c.host1x_syncpt_base_idhNtauh1jhjhhhNhNubj)}(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)}(hu32h]hu32}(hjf3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc3ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetjh3modnameN classnameNj j )}j ]j )}j host1x_syncpt_base_idsbc.host1x_syncpt_base_idasbuh1hhj_3hhhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_3hhhj3hMubj)}(hhost1x_syncpt_base_idh]j)}(hj3h]hhost1x_syncpt_base_id}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj_3hhhj3hMubj )}(h!(struct host1x_syncpt_base *base)h]j )}(hstruct host1x_syncpt_base *baseh](j)}(hjh]hstruct}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubh)}(hhh]j)}(hhost1x_syncpt_baseh]hhost1x_syncpt_base}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj3modnameN classnameNj j )}j ]j3c.host1x_syncpt_base_idasbuh1hhj3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj )}(hj h]h*}(hj3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj3ubj)}(hbaseh]hbase}(hj 4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj3ubah}(h]h ]h"]h$]h&]jjuh1j hj_3hhhj3hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj[3hhhj3hMubah}(h]jV3ah ](jjeh"]h$]h&]jj )j huh1jhj3hMhjX3hhubj )}(hhh]h)}(h(retrieve the ID of a syncpoint wait baseh]h(retrieve the ID of a syncpoint wait base}(hj64hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj34hhubah}(h]h ]h"]h$]h&]uh1j hjX3hhhj3hMubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.jN4j/jN4j0j1j2uh1jhhhjhNhNubj4)}(hP**Parameters** ``struct host1x_syncpt_base *base`` host1x syncpoint wait baseh](h)}(h**Parameters**h]j>)}(hjX4h]h Parameters}(hjZ4hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hjV4ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhjR4ubj)}(hhh]j)}(h>``struct host1x_syncpt_base *base`` host1x syncpoint wait baseh](j)}(h#``struct host1x_syncpt_base *base``h]j)}(hjw4h]hstruct host1x_syncpt_base *base}(hjy4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju4ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhjq4ubj)}(hhh]h)}(hhost1x syncpoint wait baseh]hhost1x syncpoint wait base}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj4ubah}(h]h ]h"]h$]h&]uh1jhjq4ubeh}(h]h ]h"]h$]h&]uh1jhj4hMhjn4ubah}(h]h ]h"]h$]h&]uh1jhjR4ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j5host1x_syncpt_release_vblank_reservation (C function)*c.host1x_syncpt_release_vblank_reservationhNtauh1jhjhhhNhNubj)}(hhh](j)}(h[void host1x_syncpt_release_vblank_reservation (struct host1x_client *client, u32 syncpt_id)h]j)}(hZvoid host1x_syncpt_release_vblank_reservation(struct host1x_client *client, u32 syncpt_id)h](jP )}(hvoidh]hvoid}(hj4hhhNhNubah}(h]h ]j\ ah"]h$]h&]uh1jO hj4hhhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chM ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4hhhj4hM ubj)}(h(host1x_syncpt_release_vblank_reservationh]j)}(h(host1x_syncpt_release_vblank_reservationh]h(host1x_syncpt_release_vblank_reservation}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj4hhhj4hM ubj )}(h-(struct host1x_client *client, u32 syncpt_id)h](j )}(hstruct host1x_client *clienth](j)}(hjh]hstruct}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 5ubh)}(hhh]j)}(h host1x_clienth]h host1x_client}(hj,5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)5ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj.5modnameN classnameNj j )}j ]j )}j j4sb*c.host1x_syncpt_release_vblank_reservationasbuh1hhj 5ubj)}(h h]h }(hjL5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 5ubj )}(hj h]h*}(hjZ5hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj 5ubj)}(hclienth]hclient}(hjg5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 5ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj5ubj )}(h u32 syncpt_idh](h)}(hhh]j)}(hu32h]hu32}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&] refdomainj(reftypej reftargetj5modnameN classnameNj j )}j ]jH5*c.host1x_syncpt_release_vblank_reservationasbuh1hhj|5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|5ubj)}(h syncpt_idh]h syncpt_id}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|5ubeh}(h]h ]h"]h$]h&]noemphjjuh1j hj5ubeh}(h]h ]h"]h$]h&]jjuh1j hj4hhhj4hM ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj4hhhj4hM ubah}(h]j4ah ](jjeh"]h$]h&]jj )j huh1jhj4hM hj4hhubj )}(hhh]h)}(h.Make VBLANK syncpoint available for allocationh]h.Make VBLANK syncpoint available for allocation}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj5hhubah}(h]h ]h"]h$]h&]uh1j hj4hhhj4hM ubeh}(h]h ](j(functioneh"]h$]h&]j-j(j.j5j/j5j0j1j2uh1jhhhjhNhNubj4)}(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]j>)}(hj5h]h Parameters}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj5ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj5ubj)}(hhh](j)}(h3``struct host1x_client *client`` host1x bus client h](j)}(h ``struct host1x_client *client``h]j)}(hj6h]hstruct host1x_client *client}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj6ubj)}(hhh]h)}(hhost1x bus clienth]hhost1x bus client}(hj36hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/6hMhj06ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj/6hMhj6ubj)}(h1``u32 syncpt_id`` syncpoint ID to make available h](j)}(h``u32 syncpt_id``h]j)}(hjS6h]h u32 syncpt_id}(hjU6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQ6ubah}(h]h ]h"]h$]h&]uh1jhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhjM6ubj)}(hhh]h)}(hsyncpoint ID to make availableh]hsyncpoint ID to make available}(hjl6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjh6hMhji6ubah}(h]h ]h"]h$]h&]uh1jhjM6ubeh}(h]h ]h"]h$]h&]uh1jhjh6hMhj6ubeh}(h]h ]h"]h$]h&]uh1jhj5ubh)}(h**Description**h]j>)}(hj6h]h Description}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j=hj6ubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj5ubh)}(hMakes 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]hMakes 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.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhU/var/lib/git/docbuild/linux/Documentation/gpu/tegra:58: ./drivers/gpu/host1x/syncpt.chMhj5ubeh}(h]h ] kernelindentah"]h$]h&]uh1j3hjhhhNhNubeh}(h]host1x-syncpoint-referenceah ]h"]host1x syncpoint referenceah$]h&]uh1hhjFhhhhhK8ubeh}(h]driver-infrastructureah ]h"]driver infrastructureah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h KMS driverh]h KMS driver}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hhhhhK>ubh)}(hThe 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.h]hThe 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.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hj6hhubh)}(hhh](h)}(hDisplay Controllersh]hDisplay Controllers}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hhhhhKEubh)}(hXTegra 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]hXTegra 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.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKGhj6hhubh)}(hOn 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]hOn 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.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhj6hhubh)}(hhh](h)}(hWindowsh]hWindows}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hhhhhKTubh)}(hXA 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]hXA 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'7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKVhj7hhubeh}(h]windowsah ]h"]windowsah$]h&]uh1hhj6hhhhhKTubeh}(h]display-controllersah ]h"]display controllersah$]h&]uh1hhj6hhhhhKEubh)}(hhh](h)}(hOutputsh]hOutputs}(hjH7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjE7hhhhhKbubh)}(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.}(hjV7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKdhjE7hhubh)}(h;Outputs are modelled as a composite encoder/connector pair.h]h;Outputs are modelled as a composite encoder/connector pair.}(hjd7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKihjE7hhubh)}(hhh](h)}(hRGB/LVDSh]hRGB/LVDS}(hju7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjr7hhhhhKlubh)}(hwThis interface is no longer available since Tegra124. It has been replaced by the more standard DSI and eDP interfaces.h]hwThis interface is no longer available since Tegra124. It has been replaced by the more standard DSI and eDP interfaces.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKnhjr7hhubeh}(h]rgb-lvdsah ]h"]rgb/lvdsah$]h&]uh1hhjE7hhhhhKlubh)}(hhh](h)}(hHDMIh]hHDMI}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hhhhhKrubh)}(hHDMI 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]hHDMI 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.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthj7hhubeh}(h]hdmiah ]h"]hdmiah$]h&]uh1hhjE7hhhhhKrubh)}(hhh](h)}(hDSIh]hDSI}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hhhhhKyubh)}(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.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK{hj7hhubeh}(h]dsiah ]h"]dsiah$]h&]uh1hhjE7hhhhhKyubh)}(hhh](h)}(heDP/DPh]heDP/DP}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hhhhhKubh)}(heDP 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]heDP 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.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj7hhubeh}(h]edp-dpah ]h"]edp/dpah$]h&]uh1hhjE7hhhhhKubeh}(h]outputsah ]h"]outputsah$]h&]uh1hhj6hhhhhKbubeh}(h] kms-driverah ]h"] kms driverah$]h&]uh1hhhhhhhhK>ubh)}(hhh](h)}(hUserspace Interfaceh]hUserspace Interface}(hj!8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hhhhhKubh)}(hThe 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]hThe 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/8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj8hhubh)}(hhh](h)}(h GEM Buffersh]h GEM Buffers}(hj@8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=8hhhhhKubh)}(hThe ``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](hThe }(hjN8hhhNhNubj)}(h``DRM_IOCTL_TEGRA_GEM_CREATE``h]hDRM_IOCTL_TEGRA_GEM_CREATE}(hjV8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN8ubh 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).}(hjN8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj=8hhubh)}(hAfter 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 }(hjn8hhhNhNubj)}(h``DRM_IOCTL_TEGRA_GEM_MMAP``h]hDRM_IOCTL_TEGRA_GEM_MMAP}(hjv8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjn8ubh IOCTL.}(hjn8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj=8hhubeh}(h] gem-buffersah ]h"] gem buffersah$]h&]uh1hhj8hhhhhKubh)}(hhh](h)}(h Syncpointsh]h Syncpoints}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hhhhhKubh)}(hThe 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](hBThe current value of a syncpoint can be obtained by executing the }(hj8hhhNhNubj)}(h``DRM_IOCTL_TEGRA_SYNCPT_READ``h]hDRM_IOCTL_TEGRA_SYNCPT_READ}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubh9 IOCTL. Incrementing the syncpoint is achieved using the }(hj8hhhNhNubj)}(h``DRM_IOCTL_TEGRA_SYNCPT_INCR``h]hDRM_IOCTL_TEGRA_SYNCPT_INCR}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubh IOCTL.}(hj8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj8hhubh)}(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](hVUserspace can also request blocking on a syncpoint. To do so, it needs to execute the }(hj8hhhNhNubj)}(h``DRM_IOCTL_TEGRA_SYNCPT_WAIT``h]hDRM_IOCTL_TEGRA_SYNCPT_WAIT}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubh 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.}(hj8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj8hhubeh}(h] syncpointsah ]h"] syncpointsah$]h&]uh1hhj8hhhhhKubh)}(hhh](h)}(hCommand Stream Submissionh]hCommand Stream Submission}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hhhhhKubh)}(hXBefore 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](hmBefore an application can submit command streams to host1x it needs to open a channel to an engine using the }(hj9hhhNhNubj)}(h ``DRM_IOCTL_TEGRA_OPEN_CHANNEL``h]hDRM_IOCTL_TEGRA_OPEN_CHANNEL}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubh 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 }(hj9hhhNhNubj)}(h!``DRM_IOCTL_TEGRA_CLOSE_CHANNEL``h]hDRM_IOCTL_TEGRA_CLOSE_CHANNEL}(hj,9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubhX IOCTL. To retrieve the syncpoint associated with a channel, an application can use the }(hj9hhhNhNubj)}(h``DRM_IOCTL_TEGRA_GET_SYNCPT``h]hDRM_IOCTL_TEGRA_GET_SYNCPT}(hj>9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubh.}(hj9hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj9hhubh)}(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](hAfter 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 }(hjV9hhhNhNubj)}(h``DRM_IOCTL_TEGRA_SUBMIT``h]hDRM_IOCTL_TEGRA_SUBMIT}(hj^9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV9ubhm IOCTL along with various other parameters, such as the syncpoints or relocations used in the job submission.}(hjV9hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj9hhubeh}(h]command-stream-submissionah ]h"]command stream submissionah$]h&]uh1hhj8hhhhhKubeh}(h]userspace-interfaceah ]h"]userspace interfaceah$]h&]uh1hhhhhhhhKubeh}(h]-drm-tegra-nvidia-tegra-gpu-and-display-driverah ]h"]-drm/tegra nvidia tegra gpu and display driverah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj9error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j9j9j6j6jjj6j6j8j8jB7j?7j:7j77j8j8j7j7j7j7j7j7j 8j8j9j9j8j8j8j8j{9jx9u nametypes}(j9j6jj6j8jB7j:7j8j7j7j7j 8j9j8j8j{9uh}(j9hj6jFjjjjjAjFjgjlj j! jB jG j" j' jjjjjNjSjRjWjjjQjVj6jjjjjjkjpjZj_j j j#j#j%j%jT'jY'j(j(j|*j*j+j+j .j.j*0j/0j1j1jV3j[3j4j4j8j6j?7j6j77j7j8jE7j7jr7j7j7j7j7j8j7j9j8j8j=8j8j8jx9j9u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.