€•kŒsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ*/translations/zh_CN/gpu/amdgpu/driver-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/zh_TW/gpu/amdgpu/driver-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/it_IT/gpu/amdgpu/driver-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/ja_JP/gpu/amdgpu/driver-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/ko_KR/gpu/amdgpu/driver-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/pt_BR/gpu/amdgpu/driver-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ*/translations/sp_SP/gpu/amdgpu/driver-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒCore Driver Infrastructure”h]”hŒCore Driver Infrastructure”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒD/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core.rst”h´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒGPU Hardware Structure”h]”hŒGPU Hardware Structure”…”�”}”(hhÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhhËh²hh³hÊh´KubhŒ paragraph”“”)�”}”(hXïEach ASIC is a collection of hardware blocks. We refer to them as "IPs" (Intellectual Property blocks). Each IP encapsulates certain functionality. IPs are versioned and can also be mixed and matched. E.g., you might have two different ASICs that both have System DMA (SDMA) 5.x IPs. The driver is arranged by IPs. There are driver components to handle the initialization and operation of each IP. There are also a bunch of smaller IPs that don't really need much if any driver interaction. Those end up getting lumped into the common stuff in the soc files. The soc files (e.g., vi.c, soc15.c nv.c) contain code for aspects of the SoC itself rather than specific IPs. E.g., things like GPU resets and register access functions are SoC dependent.”h]”hXõEach ASIC is a collection of hardware blocks. We refer to them as “IPsâ€� (Intellectual Property blocks). Each IP encapsulates certain functionality. IPs are versioned and can also be mixed and matched. E.g., you might have two different ASICs that both have System DMA (SDMA) 5.x IPs. The driver is arranged by IPs. There are driver components to handle the initialization and operation of each IP. There are also a bunch of smaller IPs that don’t really need much if any driver interaction. Those end up getting lumped into the common stuff in the soc files. The soc files (e.g., vi.c, soc15.c nv.c) contain code for aspects of the SoC itself rather than specific IPs. E.g., things like GPU resets and register access functions are SoC dependent.”…”�”}”(hhÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KhhËh²hubhÝ)�”}”(hXØAn APU contains more than just CPU and GPU, it also contains all of the platform stuff (audio, usb, gpio, etc.). Also, a lot of components are shared between the CPU, platform, and the GPU (e.g., SMU, PSP, etc.). Specific components (CPU, GPU, etc.) usually have their interface to interact with those common components. For things like S0i3 there is a ton of coordination required across all the components, but that is probably a bit beyond the scope of this section.”h]”hXØAn APU contains more than just CPU and GPU, it also contains all of the platform stuff (audio, usb, gpio, etc.). Also, a lot of components are shared between the CPU, platform, and the GPU (e.g., SMU, PSP, etc.). Specific components (CPU, GPU, etc.) usually have their interface to interact with those common components. For things like S0i3 there is a ton of coordination required across all the components, but that is probably a bit beyond the scope of this section.”…”�”}”(hhìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KhhËh²hubhÝ)�”}”(hŒ9With respect to the GPU, we have the following major IPs:”h]”hŒ9With respect to the GPU, we have the following major IPs:”…”�”}”(hhúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KhhËh²hubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hXîGMC (Graphics Memory Controller) This was a dedicated IP on older pre-vega chips, but has since become somewhat decentralized on vega and newer chips. They now have dedicated memory hubs for specific IPs or groups of IPs. We still treat it as a single component in the driver however since the programming model is still pretty similar. This is how the different IPs on the GPU get the memory (VRAM or system memory). It also provides the support for per process GPU virtual address spaces. ”h]”(hŒterm”“”)�”}”(hŒ GMC (Graphics Memory Controller)”h]”hŒ GMC (Graphics Memory Controller)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K'hjubhŒ definition”“”)�”}”(hhh]”hÝ)�”}”(hXÌThis was a dedicated IP on older pre-vega chips, but has since become somewhat decentralized on vega and newer chips. They now have dedicated memory hubs for specific IPs or groups of IPs. We still treat it as a single component in the driver however since the programming model is still pretty similar. This is how the different IPs on the GPU get the memory (VRAM or system memory). It also provides the support for per process GPU virtual address spaces.”h]”hXÌThis was a dedicated IP on older pre-vega chips, but has since become somewhat decentralized on vega and newer chips. They now have dedicated memory hubs for specific IPs or groups of IPs. We still treat it as a single component in the driver however since the programming model is still pretty similar. This is how the different IPs on the GPU get the memory (VRAM or system memory). It also provides the support for per process GPU virtual address spaces.”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K hj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´K'hj ubj)�”}”(hŒìIH (Interrupt Handler) This is the interrupt controller on the GPU. All of the IPs feed their interrupts into this IP and it aggregates them into a set of ring buffers that the driver can parse to handle interrupts from different IPs. ”h]”(j)�”}”(hŒIH (Interrupt Handler)”h]”hŒIH (Interrupt Handler)”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K-hjBubj$)�”}”(hhh]”hÝ)�”}”(hŒÔThis is the interrupt controller on the GPU. All of the IPs feed their interrupts into this IP and it aggregates them into a set of ring buffers that the driver can parse to handle interrupts from different IPs.”h]”hŒÔThis is the interrupt controller on the GPU. All of the IPs feed their interrupts into this IP and it aggregates them into a set of ring buffers that the driver can parse to handle interrupts from different IPs.”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K*hjTubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjBubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´K-hj h²hubj)�”}”(hŒ¢PSP (Platform Security Processor) This handles security policy for the SoC and executes trusted applications, and validates and loads firmwares for other blocks. ”h]”(j)�”}”(hŒ!PSP (Platform Security Processor)”h]”hŒ!PSP (Platform Security Processor)”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K1hjqubj$)�”}”(hhh]”hÝ)�”}”(hŒThis handles security policy for the SoC and executes trusted applications, and validates and loads firmwares for other blocks.”h]”hŒThis handles security policy for the SoC and executes trusted applications, and validates and loads firmwares for other blocks.”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K0hjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjqubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´K1hj h²hubj)�”}”(hŒÓSMU (System Management Unit) This is the power management microcontroller. It manages the entire SoC. The driver interacts with it to control power management features like clocks, voltages, power rails, etc. ”h]”(j)�”}”(hŒSMU (System Management Unit)”h]”hŒSMU (System Management Unit)”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K6hj ubj$)�”}”(hhh]”hÝ)�”}”(hŒµThis is the power management microcontroller. It manages the entire SoC. The driver interacts with it to control power management features like clocks, voltages, power rails, etc.”h]”hŒµThis is the power management microcontroller. It manages the entire SoC. The driver interacts with it to control power management features like clocks, voltages, power rails, etc.”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K4hj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´K6hj h²hubj)�”}”(hŒ®DCN (Display Controller Next) This is the display controller. It handles the display hardware. It is described in more details in :ref:`Display Core `. ”h]”(j)�”}”(hŒDCN (Display Controller Next)”h]”hŒDCN (Display Controller Next)”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K:hjÏubj$)�”}”(hhh]”hÝ)�”}”(hŒ�This is the display controller. It handles the display hardware. It is described in more details in :ref:`Display Core `.”h]”(hŒeThis is the display controller. It handles the display hardware. It is described in more details in ”…”�”}”(hjäh²hh³Nh´Nubh)�”}”(hŒ):ref:`Display Core `”h]”hŒinline”“”)�”}”(hjîh]”hŒ Display Core”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jðhjìubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œgpu/amdgpu/driver-core”Œ refdomain”jýŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆŒ reftarget”Œamdgpu-display-core”uh1hh³hÊh´K9hjäubhŒ.”…”�”}”(hjäh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K9hjáubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÏubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´K:hj h²hubj)�”}”(hŒåSDMA (System DMA) This is a multi-purpose DMA engine. The kernel driver uses it for various things including paging and GPU page table updates. It's also exposed to userspace for use by user mode drivers (OpenGL, Vulkan, etc.) ”h]”(j)�”}”(hŒSDMA (System DMA)”h]”hŒSDMA (System DMA)”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K@hj'ubj$)�”}”(hhh]”hÝ)�”}”(hŒÒThis is a multi-purpose DMA engine. The kernel driver uses it for various things including paging and GPU page table updates. It's also exposed to userspace for use by user mode drivers (OpenGL, Vulkan, etc.)”h]”hŒÔThis is a multi-purpose DMA engine. The kernel driver uses it for various things including paging and GPU page table updates. It’s also exposed to userspace for use by user mode drivers (OpenGL, Vulkan, etc.)”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K=hj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´K@hj h²hubj)�”}”(hXÝGC (Graphics and Compute) This is the graphics and compute engine, i.e., the block that encompasses the 3D pipeline and shader blocks. This is by far the largest block on the GPU. The 3D pipeline has tons of sub-blocks. In addition to that, it also contains the CP microcontrollers (ME, PFP, CE, MEC) and the RLC microcontroller. It's exposed to userspace for user mode drivers (OpenGL, Vulkan, OpenCL, etc.). More details in :ref:`Graphics (GFX) and Compute `. ”h]”(j)�”}”(hŒGC (Graphics and Compute)”h]”hŒGC (Graphics and Compute)”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KIhjVubj$)�”}”(hhh]”hÝ)�”}”(hXÂThis is the graphics and compute engine, i.e., the block that encompasses the 3D pipeline and shader blocks. This is by far the largest block on the GPU. The 3D pipeline has tons of sub-blocks. In addition to that, it also contains the CP microcontrollers (ME, PFP, CE, MEC) and the RLC microcontroller. It's exposed to userspace for user mode drivers (OpenGL, Vulkan, OpenCL, etc.). More details in :ref:`Graphics (GFX) and Compute `.”h]”(hX–This is the graphics and compute engine, i.e., the block that encompasses the 3D pipeline and shader blocks. This is by far the largest block on the GPU. The 3D pipeline has tons of sub-blocks. In addition to that, it also contains the CP microcontrollers (ME, PFP, CE, MEC) and the RLC microcontroller. It’s exposed to userspace for user mode drivers (OpenGL, Vulkan, OpenCL, etc.). More details in ”…”�”}”(hjkh²hh³Nh´Nubh)�”}”(hŒ-:ref:`Graphics (GFX) and Compute `”h]”jñ)�”}”(hjuh]”hŒGraphics (GFX) and Compute”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”(jüŒstd”Œstd-ref”eh"]”h$]”h&]”uh1jðhjsubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j�Œreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjŒ amdgpu-gc”uh1hh³hÊh´KChjkubhŒ.”…”�”}”(hjkh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KChjhubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjVubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´KIhj h²hubj)�”}”(hŒ®VCN (Video Core Next) This is the multi-media engine. It handles video and image encode and decode. It's exposed to userspace for user mode drivers (VA-API, OpenMAX, etc.) ”h]”(j)�”}”(hŒVCN (Video Core Next)”h]”hŒVCN (Video Core Next)”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KNhj©ubj$)�”}”(hhh]”hÝ)�”}”(hŒ—This is the multi-media engine. It handles video and image encode and decode. It's exposed to userspace for user mode drivers (VA-API, OpenMAX, etc.)”h]”hŒ™This is the multi-media engine. It handles video and image encode and decode. It’s exposed to userspace for user mode drivers (VA-API, OpenMAX, etc.)”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KLhj»ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´KNhj h²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhhËh²hh³hÊh´NubhÝ)�”}”(hŒ—It is important to note that these blocks can interact with each other. The picture below illustrates some of the components and their interconnection:”h]”hŒ—It is important to note that these blocks can interact with each other. The picture below illustrates some of the components and their interconnection:”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KPhhËh²hubŒkfigure”Œ kernel_figure”“”)�”}”(hhh]”hŒfigure”“”)�”}”(hhh]”hŒimage”“”)�”}”(hŒ*.. kernel-figure:: amd_overview_block.svg ”h]”h}”(h]”h ]”h"]”h$]”h&]”Œuri”Œ!gpu/amdgpu/amd_overview_block.svg”Œ candidates”}”Œ*”jsuh1j÷hjôh³hÊh´Kubah}”(h]”h ]”h"]”h$]”h&]”uh1jòhjïubah}”(h]”h ]”h"]”h$]”h&]”uh1jíhhËh²hh³hÊh´KTubhÝ)�”}”(hXJIn the diagram, memory-related blocks are shown in green. Notice that specific IPs have a green square that represents a small hardware block named 'hub', which is responsible for interfacing with memory. All memory hubs are connected in the UMCs, which in turn are connected to memory blocks. As a note, pre-vega devices have a dedicated block for the Graphic Memory Controller (GMC), which was replaced by UMC and hubs in new architectures. In the driver code, you can identify this component by looking for the suffix hub, for example: gfxhub, dchub, mmhub, vmhub, etc. Keep in mind that the component's interaction with the memory block may vary across architectures. For example, on Navi and newer, GC and SDMA are both attached to GCHUB; on pre-Navi, SDMA goes through MMHUB; VCN, JPEG, and VPE go through MMHUB; DCN goes through DCHUB.”h]”hXPIn the diagram, memory-related blocks are shown in green. Notice that specific IPs have a green square that represents a small hardware block named ‘hub’, which is responsible for interfacing with memory. All memory hubs are connected in the UMCs, which in turn are connected to memory blocks. As a note, pre-vega devices have a dedicated block for the Graphic Memory Controller (GMC), which was replaced by UMC and hubs in new architectures. In the driver code, you can identify this component by looking for the suffix hub, for example: gfxhub, dchub, mmhub, vmhub, etc. Keep in mind that the component’s interaction with the memory block may vary across architectures. For example, on Navi and newer, GC and SDMA are both attached to GCHUB; on pre-Navi, SDMA goes through MMHUB; VCN, JPEG, and VPE go through MMHUB; DCN goes through DCHUB.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KUhhËh²hubhÝ)�”}”(hXlThere is some protection for certain memory elements, and the PSP plays an essential role in this area. When a specific firmware is loaded into memory, the PSP takes steps to ensure it has a valid signature. It also stores firmware images in a protected memory area named Trusted Memory Area (TMR), so the OS or driver can't corrupt them at runtime. Another use of PSP is to support Trusted Applications (TA), which are basically small applications that run on the trusted processor and handles a trusted operation (e.g., HDCP). PSP is also used for encrypted memory for content protection via Trusted Memory Zone (TMZ).”h]”hXnThere is some protection for certain memory elements, and the PSP plays an essential role in this area. When a specific firmware is loaded into memory, the PSP takes steps to ensure it has a valid signature. It also stores firmware images in a protected memory area named Trusted Memory Area (TMR), so the OS or driver can’t corrupt them at runtime. Another use of PSP is to support Trusted Applications (TA), which are basically small applications that run on the trusted processor and handles a trusted operation (e.g., HDCP). PSP is also used for encrypted memory for content protection via Trusted Memory Zone (TMZ).”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KbhhËh²hubhÝ)�”}”(hŒÃAnother critical IP is the SMU. It handles reset distribution, as well as clock, thermal, and power management for all IPs on the SoC. SMU also helps to balance performance and power consumption.”h]”hŒÃAnother critical IP is the SMU. It handles reset distribution, as well as clock, thermal, and power management for all IPs on the SoC. SMU also helps to balance performance and power consumption.”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KkhhËh²hubhŒtarget”“”)�”}”(hŒ!.. _pipes-and-queues-description:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œpipes-and-queues-description”uh1j>h´KohhËh²hh³hÊubeh}”(h]”Œgpu-hardware-structure”ah ]”h"]”Œgpu hardware structure”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒ'GFX, Compute, and SDMA Overall Behavior”h]”hŒ'GFX, Compute, and SDMA Overall Behavior”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjTh²hh³hÊh´KrubhŒnote”“”)�”}”(hŒaFor simplicity, whenever the term block is used in this section, it means GFX, Compute, and SDMA.”h]”hÝ)�”}”(hŒaFor simplicity, whenever the term block is used in this section, it means GFX, Compute, and SDMA.”h]”hŒaFor simplicity, whenever the term block is used in this section, it means GFX, Compute, and SDMA.”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Kthjgubah}”(h]”h ]”h"]”h$]”h&]”uh1jehjTh²hh³hÊh´NubhÝ)�”}”(hŒÔGFX, Compute and SDMA share a similar form of operation that can be abstracted to facilitate understanding of the behavior of these blocks. See the figure below illustrating the common components of these blocks:”h]”hŒÔGFX, Compute and SDMA share a similar form of operation that can be abstracted to facilitate understanding of the behavior of these blocks. See the figure below illustrating the common components of these blocks:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KwhjTh²hubjî)�”}”(hhh]”jó)�”}”(hhh]”jø)�”}”(hŒ2.. kernel-figure:: pipe_and_queue_abstraction.svg ”h]”h}”(h]”h ]”h"]”h$]”h&]”Œuri”Œ)gpu/amdgpu/pipe_and_queue_abstraction.svg”j}”jjžsuh1j÷hj�h³hÊh´Kubah}”(h]”h ]”h"]”h$]”h&]”uh1jòhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jíhjTh²hh³hÊh´K|ubhÝ)�”}”(hX�In the central part of this figure, you can see two hardware elements, one called **Pipes** and another called **Queues**; it is important to highlight that Queues must be associated with a Pipe and vice-versa. Every specific hardware IP may have a different number of Pipes and, in turn, a different number of Queues; for example, GFX 11 has two Pipes and two Queues per Pipe for the GFX front end.”h]”(hŒRIn the central part of this figure, you can see two hardware elements, one called ”…”�”}”(hj¬h²hh³Nh´NubhŒstrong”“”)�”}”(hŒ **Pipes**”h]”hŒPipes”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¬ubhŒ and another called ”…”�”}”(hj¬h²hh³Nh´Nubjµ)�”}”(hŒ **Queues**”h]”hŒQueues”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¬ubhX; it is important to highlight that Queues must be associated with a Pipe and vice-versa. Every specific hardware IP may have a different number of Pipes and, in turn, a different number of Queues; for example, GFX 11 has two Pipes and two Queues per Pipe for the GFX front end.”…”�”}”(hj¬h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K}hjTh²hubhÝ)�”}”(hXOPipe is the hardware that processes the instructions available in the Queues; in other words, it is a thread executing the operations inserted in the Queue. One crucial characteristic of Pipes is that they can only execute one Queue at a time; no matter if the hardware has multiple Queues in the Pipe, it only runs one Queue per Pipe.”h]”hXOPipe is the hardware that processes the instructions available in the Queues; in other words, it is a thread executing the operations inserted in the Queue. One crucial characteristic of Pipes is that they can only execute one Queue at a time; no matter if the hardware has multiple Queues in the Pipe, it only runs one Queue per Pipe.”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KƒhjTh²hubhÝ)�”}”(hŒÖPipes have the mechanics of swapping between queues at the hardware level. Nonetheless, they only make use of Queues that are considered mapped. Pipes can switch between queues based on any of the following inputs:”h]”hŒÖPipes have the mechanics of swapping between queues at the hardware level. Nonetheless, they only make use of Queues that are considered mapped. Pipes can switch between queues based on any of the following inputs:”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K‰hjTh²hubhŒenumerated_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒCommand Stream;”h]”hÝ)�”}”(hjh]”hŒCommand Stream;”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K�hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjþh²hh³hÊh´Nubj)�”}”(hŒPacket by Packet;”h]”hÝ)�”}”(hjh]”hŒPacket by Packet;”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KŽhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjþh²hh³hÊh´Nubj)�”}”(hŒ0Other hardware requests the change (e.g., MES). ”h]”hÝ)�”}”(hŒ/Other hardware requests the change (e.g., MES).”h]”hŒ/Other hardware requests the change (e.g., MES).”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K�hj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjþh²hh³hÊh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1jühjTh²hh³hÊh´K�ubhÝ)�”}”(hX>Queues within Pipes are defined by the Hardware Queue Descriptors (HQD). Associated with the HQD concept, we have the Memory Queue Descriptor (MQD), which is responsible for storing information about the state of each of the available Queues in the memory. The state of a Queue contains information such as the GPU virtual address of the queue itself, save areas, doorbell, etc. The MQD also stores the HQD registers, which are vital for activating or deactivating a given Queue. The scheduling firmware (e.g., MES) is responsible for loading HQDs from MQDs and vice versa.”h]”hX>Queues within Pipes are defined by the Hardware Queue Descriptors (HQD). Associated with the HQD concept, we have the Memory Queue Descriptor (MQD), which is responsible for storing information about the state of each of the available Queues in the memory. The state of a Queue contains information such as the GPU virtual address of the queue itself, save areas, doorbell, etc. The MQD also stores the HQD registers, which are vital for activating or deactivating a given Queue. The scheduling firmware (e.g., MES) is responsible for loading HQDs from MQDs and vice versa.”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K‘hjTh²hubhÝ)�”}”(hXÚThe Queue-switching process can also happen with the firmware requesting the preemption or unmapping of a Queue. The firmware waits for the HQD_ACTIVE bit to change to low before saving the state into the MQD. To make a different Queue become active, the firmware copies the MQD state into the HQD registers and loads any additional state. Finally, it sets the HQD_ACTIVE bit to high to indicate that the queue is active. The Pipe will then execute work from active Queues.”h]”hXÚThe Queue-switching process can also happen with the firmware requesting the preemption or unmapping of a Queue. The firmware waits for the HQD_ACTIVE bit to change to low before saving the state into the MQD. To make a different Queue become active, the firmware copies the MQD state into the HQD registers and loads any additional state. Finally, it sets the HQD_ACTIVE bit to high to indicate that the queue is active. The Pipe will then execute work from active Queues.”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KšhjTh²hubeh}”(h]”(Œ%gfx-compute-and-sdma-overall-behavior”jKeh ]”h"]”(Œ'gfx, compute, and sdma overall behavior”Œpipes-and-queues-description”eh$]”h&]”uh1hµhh·h²hh³hÊh´KrŒexpect_referenced_by_name”}”jvj@sŒexpect_referenced_by_id”}”jKj@subh¶)�”}”(hhh]”(h»)�”}”(hŒDriver Structure”h]”hŒDriver Structure”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj}h²hh³hÊh´K£ubhÝ)�”}”(hŒ«In general, the driver has a list of all of the IPs on a particular SoC and for things like init/fini/suspend/resume, more or less just walks the list and handles each IP.”h]”hŒ«In general, the driver has a list of all of the IPs on a particular SoC and for things like init/fini/suspend/resume, more or less just walks the list and handles each IP.”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K¥hj}h²hubhÝ)�”}”(hŒSome useful constructs:”h]”hŒSome useful constructs:”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K©hj}h²hubj )�”}”(hhh]”(j)�”}”(hŒýKIQ (Kernel Interface Queue) This is a control queue used by the kernel driver to manage other gfx and compute queues on the GFX/compute engine. You can use it to map/unmap additional queues, etc. This is replaced by MES on GFX 11 and newer hardware. ”h]”(j)�”}”(hŒKIQ (Kernel Interface Queue)”h]”hŒKIQ (Kernel Interface Queue)”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K¯hj­ubj$)�”}”(hhh]”hÝ)�”}”(hŒßThis is a control queue used by the kernel driver to manage other gfx and compute queues on the GFX/compute engine. You can use it to map/unmap additional queues, etc. This is replaced by MES on GFX 11 and newer hardware.”h]”hŒßThis is a control queue used by the kernel driver to manage other gfx and compute queues on the GFX/compute engine. You can use it to map/unmap additional queues, etc. This is replaced by MES on GFX 11 and newer hardware.”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K¬hj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´K¯hjªubj)�”}”(hXeIB (Indirect Buffer) A command buffer for a particular engine. Rather than writing commands directly to the queue, you can write the commands into a piece of memory and then put a pointer to the memory into the queue. The hardware will then follow the pointer and execute the commands in the memory, then returning to the rest of the commands in the ring. ”h]”(j)�”}”(hŒIB (Indirect Buffer)”h]”hŒIB (Indirect Buffer)”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K¶hjÜubj$)�”}”(hhh]”hÝ)�”}”(hXOA command buffer for a particular engine. Rather than writing commands directly to the queue, you can write the commands into a piece of memory and then put a pointer to the memory into the queue. The hardware will then follow the pointer and execute the commands in the memory, then returning to the rest of the commands in the ring.”h]”hXOA command buffer for a particular engine. Rather than writing commands directly to the queue, you can write the commands into a piece of memory and then put a pointer to the memory into the queue. The hardware will then follow the pointer and execute the commands in the memory, then returning to the rest of the commands in the ring.”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K²hjîubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÜubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÊh´K¶hjªh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj}h²hh³hÊh´Nubj?)�”}”(hŒ.. _amdgpu_memory_domains:”h]”h}”(h]”h ]”h"]”h$]”h&]”jJŒamdgpu-memory-domains”uh1j>h´K¸hj}h²hh³hÊubeh}”(h]”Œdriver-structure”ah ]”h"]”Œdriver structure”ah$]”h&]”uh1hµhh·h²hh³hÊh´K£ubh¶)�”}”(hhh]”(h»)�”}”(hŒMemory Domains”h]”hŒMemory Domains”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj$h²hh³hÊh´K»ubhÝ)�”}”(hŒ�``AMDGPU_GEM_DOMAIN_CPU`` System memory that is not GPU accessible. Memory in this pool could be swapped out to disk if there is pressure.”h]”(hŒliteral”“”)�”}”(hŒ``AMDGPU_GEM_DOMAIN_CPU``”h]”hŒAMDGPU_GEM_DOMAIN_CPU”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj5ubhŒw System memory that is not GPU accessible. Memory in this pool could be swapped out to disk if there is pressure.”…”�”}”(hj5h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œe/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:189: ./include/uapi/drm/amdgpu_drm.h”h´KVhj$h²hubhÝ)�”}”(hŒê``AMDGPU_GEM_DOMAIN_GTT`` GPU accessible system memory, mapped into the GPU's virtual address space via gart. Gart memory linearizes non-contiguous pages of system memory, allows GPU access system memory in a linearized fashion.”h]”(j:)�”}”(hŒ``AMDGPU_GEM_DOMAIN_GTT``”h]”hŒAMDGPU_GEM_DOMAIN_GTT”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjTubhŒÓ GPU accessible system memory, mapped into the GPU’s virtual address space via gart. Gart memory linearizes non-contiguous pages of system memory, allows GPU access system memory in a linearized fashion.”…”�”}”(hjTh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œe/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:189: ./include/uapi/drm/amdgpu_drm.h”h´KYhj$h²hubhÝ)�”}”(hŒb``AMDGPU_GEM_DOMAIN_VRAM`` Local video memory. For APUs, it is memory carved out by the BIOS.”h]”(j:)�”}”(hŒ``AMDGPU_GEM_DOMAIN_VRAM``”h]”hŒAMDGPU_GEM_DOMAIN_VRAM”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjqubhŒH Local video memory. For APUs, it is memory carved out by the BIOS.”…”�”}”(hjqh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œe/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:189: ./include/uapi/drm/amdgpu_drm.h”h´K^hj$h²hubhÝ)�”}”(hŒe``AMDGPU_GEM_DOMAIN_GDS`` Global on-chip data storage used to share data across shader threads.”h]”(j:)�”}”(hŒ``AMDGPU_GEM_DOMAIN_GDS``”h]”hŒAMDGPU_GEM_DOMAIN_GDS”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjŽubhŒL Global on-chip data storage used to share data across shader threads.”…”�”}”(hjŽh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œe/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:189: ./include/uapi/drm/amdgpu_drm.h”h´Kahj$h²hubhÝ)�”}”(hŒq``AMDGPU_GEM_DOMAIN_GWS`` Global wave sync, used to synchronize the execution of all the waves on a device.”h]”(j:)�”}”(hŒ``AMDGPU_GEM_DOMAIN_GWS``”h]”hŒAMDGPU_GEM_DOMAIN_GWS”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj«ubhŒX Global wave sync, used to synchronize the execution of all the waves on a device.”…”�”}”(hj«h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œe/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:189: ./include/uapi/drm/amdgpu_drm.h”h´Kdhj$h²hubhÝ)�”}”(hŒa``AMDGPU_GEM_DOMAIN_OA`` Ordered append, used by 3D or Compute engines for appending data.”h]”(j:)�”}”(hŒ``AMDGPU_GEM_DOMAIN_OA``”h]”hŒAMDGPU_GEM_DOMAIN_OA”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÈubhŒI Ordered append, used by 3D or Compute engines for appending data.”…”�”}”(hjÈh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œe/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:189: ./include/uapi/drm/amdgpu_drm.h”h´Kghj$h²hubhÝ)�”}”(hŒ_``AMDGPU_GEM_DOMAIN_DOORBELL`` Doorbell. It is an MMIO region for signalling user mode queues.”h]”(j:)�”}”(hŒ``AMDGPU_GEM_DOMAIN_DOORBELL``”h]”hŒAMDGPU_GEM_DOMAIN_DOORBELL”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjåubhŒA Doorbell. It is an MMIO region for signalling user mode queues.”…”�”}”(hjåh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œe/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:189: ./include/uapi/drm/amdgpu_drm.h”h´Kjhj$h²hubeh}”(h]”(Œmemory-domains”jeh ]”h"]”(Œmemory domains”Œamdgpu_memory_domains”eh$]”h&]”uh1hµhh·h²hh³hÊh´K»jy}”jjsj{}”jjsubh¶)�”}”(hhh]”(h»)�”}”(hŒBuffer Objects”h]”hŒBuffer Objects”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj h²hh³hÊh´KÁubhÝ)�”}”(hXÉThis defines the interfaces to operate on an :c:type:`amdgpu_bo` buffer object which represents memory used by driver (VRAM, system memory, etc.). The driver provides DRM/GEM APIs to userspace. DRM/GEM APIs then use these interfaces to create/destroy/set buffer object which are then managed by the kernel TTM memory manager. The interfaces are also used internally by kernel clients, including gfx, uvd, etc. for kernel managed allocations used by the GPU.”h]”(hŒ-This defines the interfaces to operate on an ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hj(h]”hŒ amdgpu_bo”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”(jüŒc”Œc-type”eh"]”h$]”h&]”uh1j9hj&ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jŒ amdgpu_bo”uh1hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:195: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´K1hjubhX‰ buffer object which represents memory used by driver (VRAM, system memory, etc.). The driver provides DRM/GEM APIs to userspace. DRM/GEM APIs then use these interfaces to create/destroy/set buffer object which are then managed by the kernel TTM memory manager. The interfaces are also used internally by kernel clients, including gfx, uvd, etc. for kernel managed allocations used by the GPU.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jFh´K1hj h²hubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œ#amdgpu_bo_is_amdgpu_bo (C function)”Œc.amdgpu_bo_is_amdgpu_bo”hNt”auh1jQhj h²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒ:bool amdgpu_bo_is_amdgpu_bo (struct ttm_buffer_object *bo)”h]”hŒdesc_signature_line”“”)�”}”(hŒ9bool amdgpu_bo_is_amdgpu_bo(struct ttm_buffer_object *bo)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒbool”h]”hŒbool”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1jshjoh²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´KUubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j…hjoh²hh³j„h´KUubhŒ desc_name”“”)�”}”(hŒamdgpu_bo_is_amdgpu_bo”h]”hŒ desc_sig_name”“”)�”}”(hŒamdgpu_bo_is_amdgpu_bo”h]”hŒamdgpu_bo_is_amdgpu_bo”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jœhj˜ubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”Œ xml:space”Œpreserve”uh1j–hjoh²hh³j„h´KUubhŒdesc_parameterlist”“”)�”}”(hŒ(struct ttm_buffer_object *bo)”h]”hŒdesc_parameter”“”)�”}”(hŒstruct ttm_buffer_object *bo”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1jÃhj¿ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¿ubh)�”}”(hhh]”j�)�”}”(hŒttm_buffer_object”h]”hŒttm_buffer_object”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjâubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”Œ identifier”Œ reftarget”jçŒmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”jŒ ASTIdentifier”“”)�”}”jûj sbŒc.amdgpu_bo_is_amdgpu_bo”†”asbuh1hhj¿ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¿ubhŒdesc_sig_punctuation”“”)�”}”(hjh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1jhj¿ubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¿ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¹ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjoh²hh³j„h´KUubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶Œ add_permalink”ˆuh1jmŒsphinx_line_type”Œ declarator”hjih²hh³j„h´KUubah}”(h]”j`ah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jgh³j„h´KUhjdh²hubhŒ desc_content”“”)�”}”(hhh]”hÝ)�”}”(hŒ4check if the buffer object is an :c:type:`amdgpu_bo`”h]”(hŒ!check if the buffer object is an ”…”�”}”(hj_h²hh³Nh´Nubh)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hjih]”hŒ amdgpu_bo”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjgubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿj)�”}”j]”j Œc.amdgpu_bo_is_amdgpu_bo”†”asbjŒ amdgpu_bo”uh1hh³j„h´KUhj_ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´KUhj\h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjdh²hh³j„h´KUubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”Œdomain”j4Œobjtype”j›Œdesctype”j›Œnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1jbh²hhj h³Nh´NubhŒ container”“”)�”}”(hX**Parameters** ``struct ttm_buffer_object *bo`` buffer object to be checked **Description** Uses destroy function associated with the object to determine if this is an :c:type:`amdgpu_bo`. **Return** true if the object belongs to :c:type:`amdgpu_bo`, false if not.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj­h]”hŒ Parameters”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´KYhj§ubj )�”}”(hhh]”j)�”}”(hŒ=``struct ttm_buffer_object *bo`` buffer object to be checked ”h]”(j)�”}”(hŒ ``struct ttm_buffer_object *bo``”h]”j:)�”}”(hjÌh]”hŒstruct ttm_buffer_object *bo”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´KVhjÆubj$)�”}”(hhh]”hÝ)�”}”(hŒbuffer object to be checked”h]”hŒbuffer object to be checked”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jáh´KVhjâubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÆubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jáh´KVhjÃubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj§ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjh]”hŒ Description”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´KXhj§ubhÝ)�”}”(hŒ`Uses destroy function associated with the object to determine if this is an :c:type:`amdgpu_bo`.”h]”(hŒLUses destroy function associated with the object to determine if this is an ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hj'h]”hŒ amdgpu_bo”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj%ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿj)�”}”j]”sbjŒ amdgpu_bo”uh1hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´KWhjubhŒ.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jGh´KWhj§ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjTh]”hŒReturn”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjRubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´KZhj§ubhÝ)�”}”(hŒ@true if the object belongs to :c:type:`amdgpu_bo`, false if not.”h]”(hŒtrue if the object belongs to ”…”�”}”(hjjh²hh³Nh´Nubh)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hjth]”hŒ amdgpu_bo”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjrubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒ amdgpu_bo”uh1hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´K[hjjubhŒ, false if not.”…”�”}”(hjjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j‘h´K[hj§ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ,amdgpu_bo_placement_from_domain (C function)”Œ!c.amdgpu_bo_placement_from_domain”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒHvoid amdgpu_bo_placement_from_domain (struct amdgpu_bo *abo, u32 domain)”h]”jn)�”}”(hŒGvoid amdgpu_bo_placement_from_domain(struct amdgpu_bo *abo, u32 domain)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj¸h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Kiubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¸h²hh³jÊh´Kiubj—)�”}”(hŒamdgpu_bo_placement_from_domain”h]”j�)�”}”(hŒamdgpu_bo_placement_from_domain”h]”hŒamdgpu_bo_placement_from_domain”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÙubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj¸h²hh³jÊh´Kiubj¸)�”}”(hŒ#(struct amdgpu_bo *abo, u32 domain)”h]”(j¾)�”}”(hŒstruct amdgpu_bo *abo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjõubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjõubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjßsbŒ!c.amdgpu_bo_placement_from_domain”†”asbuh1hhjõubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7 h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjõubj)�”}”(hjh]”hŒ*”…”�”}”(hjE h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjõubj�)�”}”(hŒabo”h]”hŒabo”…”�”}”(hjR h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjõubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjñubj¾)�”}”(hŒ u32 domain”h]”(h)�”}”(hhh]”j�)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjn h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjk ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jp Œmodname”NŒ classname”Njÿj)�”}”j]”j3 Œ!c.amdgpu_bo_placement_from_domain”†”asbuh1hhjg ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjg ubj�)�”}”(hŒdomain”h]”hŒdomain”…”�”}”(hjš h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjg ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjñubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj¸h²hh³jÊh´Kiubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj´h²hh³jÊh´Kiubah}”(h]”j¯ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÊh´Kihj±h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒset buffer's placement”h]”hŒset buffer’s placement”…”�”}”(hjÄ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´KihjÁ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj±h²hh³jÊh´Kiubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jÜ j¡jÜ j¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hŒí**Parameters** ``struct amdgpu_bo *abo`` :c:type:`amdgpu_bo` buffer object whose placement is to be set ``u32 domain`` requested domain **Description** Sets buffer's placement according to requested domain and the buffer's flags.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjæ h]”hŒ Parameters”…”�”}”(hjè h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjä ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Kmhjà ubj )�”}”(hhh]”(j)�”}”(hŒY``struct amdgpu_bo *abo`` :c:type:`amdgpu_bo` buffer object whose placement is to be set ”h]”(j)�”}”(hŒ``struct amdgpu_bo *abo``”h]”j:)�”}”(hj h]”hŒstruct amdgpu_bo *abo”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Kjhjÿ ubj$)�”}”(hhh]”hÝ)�”}”(hŒ>:c:type:`amdgpu_bo` buffer object whose placement is to be set”h]”(h)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hj$ h]”hŒ amdgpu_bo”…”�”}”(hj& h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj" ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒ amdgpu_bo”uh1hh³j h´Kjhj ubhŒ+ buffer object whose placement is to be set”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j h´Kjhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÿ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j h´Kjhjü ubj)�”}”(hŒ ``u32 domain`` requested domain ”h]”(j)�”}”(hŒ``u32 domain``”h]”j:)�”}”(hj] h]”hŒ u32 domain”…”�”}”(hj_ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj[ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´KkhjW ubj$)�”}”(hhh]”hÝ)�”}”(hŒrequested domain”h]”hŒrequested domain”…”�”}”(hjv h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jr h´Kkhjs ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjW ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jr h´Kkhjü ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjà ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj˜ h]”hŒ Description”…”�”}”(hjš h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj– ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Kmhjà ubhÝ)�”}”(hŒMSets buffer's placement according to requested domain and the buffer's flags.”h]”hŒQSets buffer’s placement according to requested domain and the buffer’s flags.”…”�”}”(hj® h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Klhjà ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ&amdgpu_bo_create_reserved (C function)”Œc.amdgpu_bo_create_reserved”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ int amdgpu_bo_create_reserved (struct amdgpu_device *adev, unsigned long size, int align, u32 domain, struct amdgpu_bo **bo_ptr, u64 *gpu_addr, void **cpu_addr)”h]”jn)�”}”(hŒŸint amdgpu_bo_create_reserved(struct amdgpu_device *adev, unsigned long size, int align, u32 domain, struct amdgpu_bo **bo_ptr, u64 *gpu_addr, void **cpu_addr)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjÝ h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÙ h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´KÞubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjì h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÙ h²hh³jë h´KÞubj—)�”}”(hŒamdgpu_bo_create_reserved”h]”j�)�”}”(hŒamdgpu_bo_create_reserved”h]”hŒamdgpu_bo_create_reserved”…”�”}”(hjþ h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjú ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjÙ h²hh³jë h´KÞubj¸)�”}”(hŒ‚(struct amdgpu_device *adev, unsigned long size, int align, u32 domain, struct amdgpu_bo **bo_ptr, u64 *gpu_addr, void **cpu_addr)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj' h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj8 h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj5 ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j: Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj sbŒc.amdgpu_bo_create_reserved”†”asbuh1hhj ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjX h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj ubj)�”}”(hjh]”hŒ*”…”�”}”(hjf h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjs h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj ubj¾)�”}”(hŒunsigned long size”h]”(jt)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjˆ ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjš h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjˆ ubjt)�”}”(hŒlong”h]”hŒlong”…”�”}”(hj¨ h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjˆ ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶ h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjˆ ubj�)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjÄ h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjˆ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj ubj¾)�”}”(hŒ int align”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjÝ h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÙ ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjë h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÙ ubj�)�”}”(hŒalign”h]”hŒalign”…”�”}”(hjù h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÙ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj ubj¾)�”}”(hŒ u32 domain”h]”(h)�”}”(hhh]”j�)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j Œmodname”NŒ classname”Njÿj)�”}”j]”jT Œc.amdgpu_bo_create_reserved”†”asbuh1hhj ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3 h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj ubj�)�”}”(hŒdomain”h]”hŒdomain”…”�”}”(hjA h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj ubj¾)�”}”(hŒstruct amdgpu_bo **bo_ptr”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjZ h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjV ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjg h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjV ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hjx h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhju ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jz Œmodname”NŒ classname”Njÿj)�”}”j]”jT Œc.amdgpu_bo_create_reserved”†”asbuh1hhjV ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj– h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjV ubj)�”}”(hjh]”hŒ*”…”�”}”(hj¤ h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjV ubj)�”}”(hjh]”hŒ*”…”�”}”(hj± h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjV ubj�)�”}”(hŒbo_ptr”h]”hŒbo_ptr”…”�”}”(hj¾ h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjV ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj ubj¾)�”}”(hŒ u64 *gpu_addr”h]”(h)�”}”(hhh]”j�)�”}”(hŒu64”h]”hŒu64”…”�”}”(hjÚ h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj× ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÜ Œmodname”NŒ classname”Njÿj)�”}”j]”jT Œc.amdgpu_bo_create_reserved”†”asbuh1hhjÓ ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjø h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÓ ubj)�”}”(hjh]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÓ ubj�)�”}”(hŒgpu_addr”h]”hŒgpu_addr”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÓ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj ubj¾)�”}”(hŒvoid **cpu_addr”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj, h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj( ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj: h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj( ubj)�”}”(hjh]”hŒ*”…”�”}”(hjH h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj( ubj)�”}”(hjh]”hŒ*”…”�”}”(hjU h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj( ubj�)�”}”(hŒcpu_addr”h]”hŒcpu_addr”…”�”}”(hjb h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj( ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjÙ h²hh³jë h´KÞubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjÕ h²hh³jë h´KÞubah}”(h]”jÐ ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jë h´KÞhjÒ h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ!create reserved BO for kernel use”h]”hŒ!create reserved BO for kernel use”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´KÞhj‰ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÒ h²hh³jë h´KÞubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j¤ j¡j¤ j¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hXM**Parameters** ``struct amdgpu_device *adev`` amdgpu device object ``unsigned long size`` size for the new BO ``int align`` alignment for the new BO ``u32 domain`` where to place it ``struct amdgpu_bo **bo_ptr`` used to initialize BOs in structures ``u64 *gpu_addr`` GPU addr of the pinned BO ``void **cpu_addr`` optional CPU address mapping **Description** Allocates and pins a BO for kernel internal use, and returns it still reserved. **Note** For bo_ptr new BO is only created if bo_ptr points to NULL. **Return** 0 on success, negative error code otherwise.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj® h]”hŒ Parameters”…”�”}”(hj° h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¬ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Kâhj¨ ubj )�”}”(hhh]”(j)�”}”(hŒ4``struct amdgpu_device *adev`` amdgpu device object ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjÍ h]”hŒstruct amdgpu_device *adev”…”�”}”(hjÏ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjË ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´KàhjÇ ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device object”h]”hŒamdgpu device object”…”�”}”(hjæ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jâ h´Kàhjã ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÇ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jâ h´KàhjÄ ubj)�”}”(hŒ+``unsigned long size`` size for the new BO ”h]”(j)�”}”(hŒ``unsigned long size``”h]”j:)�”}”(hjh]”hŒunsigned long size”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Káhjubj$)�”}”(hhh]”hÝ)�”}”(hŒsize for the new BO”h]”hŒsize for the new BO”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jh´Káhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jh´KáhjÄ ubj)�”}”(hŒ'``int align`` alignment for the new BO ”h]”(j)�”}”(hŒ ``int align``”h]”j:)�”}”(hj?h]”hŒ int align”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Kâhj9ubj$)�”}”(hhh]”hÝ)�”}”(hŒalignment for the new BO”h]”hŒalignment for the new BO”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jTh´KâhjUubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jTh´KâhjÄ ubj)�”}”(hŒ!``u32 domain`` where to place it ”h]”(j)�”}”(hŒ``u32 domain``”h]”j:)�”}”(hjxh]”hŒ u32 domain”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Kãhjrubj$)�”}”(hhh]”hÝ)�”}”(hŒwhere to place it”h]”hŒwhere to place it”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j�h´KãhjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjrubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j�h´KãhjÄ ubj)�”}”(hŒC``struct amdgpu_bo **bo_ptr`` used to initialize BOs in structures ”h]”(j)�”}”(hŒ``struct amdgpu_bo **bo_ptr``”h]”j:)�”}”(hj±h]”hŒstruct amdgpu_bo **bo_ptr”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Kähj«ubj$)�”}”(hhh]”hÝ)�”}”(hŒ$used to initialize BOs in structures”h]”hŒ$used to initialize BOs in structures”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÆh´KähjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj«ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÆh´KähjÄ ubj)�”}”(hŒ,``u64 *gpu_addr`` GPU addr of the pinned BO ”h]”(j)�”}”(hŒ``u64 *gpu_addr``”h]”j:)�”}”(hjêh]”hŒ u64 *gpu_addr”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjèubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Kåhjäubj$)�”}”(hhh]”hÝ)�”}”(hŒGPU addr of the pinned BO”h]”hŒGPU addr of the pinned BO”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÿh´Kåhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjäubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÿh´KåhjÄ ubj)�”}”(hŒ1``void **cpu_addr`` optional CPU address mapping ”h]”(j)�”}”(hŒ``void **cpu_addr``”h]”j:)�”}”(hj#h]”hŒvoid **cpu_addr”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Kæhjubj$)�”}”(hhh]”hÝ)�”}”(hŒoptional CPU address mapping”h]”hŒoptional CPU address mapping”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j8h´Kæhj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j8h´KæhjÄ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¨ ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj^h]”hŒ Description”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Kèhj¨ ubhÝ)�”}”(hŒOAllocates and pins a BO for kernel internal use, and returns it still reserved.”h]”hŒOAllocates and pins a BO for kernel internal use, and returns it still reserved.”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Kçhj¨ ubhÝ)�”}”(hŒ**Note**”h]”jµ)�”}”(hj…h]”hŒNote”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Kêhj¨ ubhÝ)�”}”(hŒ;For bo_ptr new BO is only created if bo_ptr points to NULL.”h]”hŒ;For bo_ptr new BO is only created if bo_ptr points to NULL.”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Këhj¨ ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj¬h]”hŒReturn”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjªubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Kíhj¨ ubhÝ)�”}”(hŒ,0 on success, negative error code otherwise.”h]”hŒ,0 on success, negative error code otherwise.”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Kíhj¨ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ$amdgpu_bo_create_kernel (C function)”Œc.amdgpu_bo_create_kernel”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒžint amdgpu_bo_create_kernel (struct amdgpu_device *adev, unsigned long size, int align, u32 domain, struct amdgpu_bo **bo_ptr, u64 *gpu_addr, void **cpu_addr)”h]”jn)�”}”(hŒ�int amdgpu_bo_create_kernel(struct amdgpu_device *adev, unsigned long size, int align, u32 domain, struct amdgpu_bo **bo_ptr, u64 *gpu_addr, void **cpu_addr)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjíh²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MBubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjíh²hh³jÿh´MBubj—)�”}”(hŒamdgpu_bo_create_kernel”h]”j�)�”}”(hŒamdgpu_bo_create_kernel”h]”hŒamdgpu_bo_create_kernel”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjíh²hh³jÿh´MBubj¸)�”}”(hŒ‚(struct amdgpu_device *adev, unsigned long size, int align, u32 domain, struct amdgpu_bo **bo_ptr, u64 *gpu_addr, void **cpu_addr)”•h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj*ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj*ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjIubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jNŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjsbŒc.amdgpu_bo_create_kernel”†”asbuh1hhj*ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj*ubj)�”}”(hjh]”hŒ*”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj*ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj*ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj&ubj¾)�”}”(hŒunsigned long size”h]”(jt)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjœubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjœubjt)�”}”(hŒlong”h]”hŒlong”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjœubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjœubj�)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjœubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj&ubj¾)�”}”(hŒ int align”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjíubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjíubj�)�”}”(hŒalign”h]”hŒalign”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjíubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj&ubj¾)�”}”(hŒ u32 domain”h]”(h)�”}”(hhh]”j�)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj&ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j+Œmodname”NŒ classname”Njÿj)�”}”j]”jhŒc.amdgpu_bo_create_kernel”†”asbuh1hhj"ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj"ubj�)�”}”(hŒdomain”h]”hŒdomain”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj&ubj¾)�”}”(hŒstruct amdgpu_bo **bo_ptr”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjjubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjjubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj‰ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jŽŒmodname”NŒ classname”Njÿj)�”}”j]”jhŒc.amdgpu_bo_create_kernel”†”asbuh1hhjjubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjjubj)�”}”(hjh]”hŒ*”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjjubj)�”}”(hjh]”hŒ*”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjjubj�)�”}”(hŒbo_ptr”h]”hŒbo_ptr”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj&ubj¾)�”}”(hŒ u64 *gpu_addr”h]”(h)�”}”(hhh]”j�)�”}”(hŒu64”h]”hŒu64”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjëubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jðŒmodname”NŒ classname”Njÿj)�”}”j]”jhŒc.amdgpu_bo_create_kernel”†”asbuh1hhjçubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjçubj)�”}”(hjh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjçubj�)�”}”(hŒgpu_addr”h]”hŒgpu_addr”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjçubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj&ubj¾)�”}”(hŒvoid **cpu_addr”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj<ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj<ubj)�”}”(hjh]”hŒ*”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj<ubj)�”}”(hjh]”hŒ*”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj<ubj�)�”}”(hŒcpu_addr”h]”hŒcpu_addr”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj<ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj&ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjíh²hh³jÿh´MBubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjéh²hh³jÿh´MBubah}”(h]”jäah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÿh´MBhjæh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒcreate BO for kernel use”h]”hŒcreate BO for kernel use”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MBhj�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjæh²hh³jÿh´MBubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j¸j¡j¸j¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hX¡**Parameters** ``struct amdgpu_device *adev`` amdgpu device object ``unsigned long size`` size for the new BO ``int align`` alignment for the new BO ``u32 domain`` where to place it ``struct amdgpu_bo **bo_ptr`` used to initialize BOs in structures ``u64 *gpu_addr`` GPU addr of the pinned BO ``void **cpu_addr`` optional CPU address mapping **Description** Allocates and pins a BO for kernel internal use. This function is exported to allow the V4L2 isp device external to drm device to create and access the kernel BO. **Note** For bo_ptr new BO is only created if bo_ptr points to NULL. **Return** 0 on success, negative error code otherwise.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjÂh]”hŒ Parameters”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MFhj¼ubj )�”}”(hhh]”(j)�”}”(hŒ4``struct amdgpu_device *adev`` amdgpu device object ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjáh]”hŒstruct amdgpu_device *adev”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjßubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MDhjÛubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device object”h]”hŒamdgpu device object”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jöh´MDhj÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÛubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jöh´MDhjØubj)�”}”(hŒ+``unsigned long size`` size for the new BO ”h]”(j)�”}”(hŒ``unsigned long size``”h]”j:)�”}”(hjh]”hŒunsigned long size”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MEhjubj$)�”}”(hhh]”hÝ)�”}”(hŒsize for the new BO”h]”hŒsize for the new BO”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j/h´MEhj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j/h´MEhjØubj)�”}”(hŒ'``int align`` alignment for the new BO ”h]”(j)�”}”(hŒ ``int align``”h]”j:)�”}”(hjSh]”hŒ int align”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjQubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MFhjMubj$)�”}”(hhh]”hÝ)�”}”(hŒalignment for the new BO”h]”hŒalignment for the new BO”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jhh´MFhjiubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjMubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jhh´MFhjØubj)�”}”(hŒ!``u32 domain`` where to place it ”h]”(j)�”}”(hŒ``u32 domain``”h]”j:)�”}”(hjŒh]”hŒ u32 domain”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MGhj†ubj$)�”}”(hhh]”hÝ)�”}”(hŒwhere to place it”h]”hŒwhere to place it”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¡h´MGhj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj†ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¡h´MGhjØubj)�”}”(hŒC``struct amdgpu_bo **bo_ptr`` used to initialize BOs in structures ”h]”(j)�”}”(hŒ``struct amdgpu_bo **bo_ptr``”h]”j:)�”}”(hjÅh]”hŒstruct amdgpu_bo **bo_ptr”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÃubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MHhj¿ubj$)�”}”(hhh]”hÝ)�”}”(hŒ$used to initialize BOs in structures”h]”hŒ$used to initialize BOs in structures”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÚh´MHhjÛubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj¿ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÚh´MHhjØubj)�”}”(hŒ,``u64 *gpu_addr`` GPU addr of the pinned BO ”h]”(j)�”}”(hŒ``u64 *gpu_addr``”h]”j:)�”}”(hjþh]”hŒ u64 *gpu_addr”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MIhjøubj$)�”}”(hhh]”hÝ)�”}”(hŒGPU addr of the pinned BO”h]”hŒGPU addr of the pinned BO”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jh´MIhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjøubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jh´MIhjØubj)�”}”(hŒ1``void **cpu_addr`` optional CPU address mapping ”h]”(j)�”}”(hŒ``void **cpu_addr``”h]”j:)�”}”(hj7h]”hŒvoid **cpu_addr”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MJhj1ubj$)�”}”(hhh]”hÝ)�”}”(hŒoptional CPU address mapping”h]”hŒoptional CPU address mapping”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jLh´MJhjMubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jLh´MJhjØubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¼ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjrh]”hŒ Description”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjpubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MLhj¼ubhÝ)�”}”(hŒ0Allocates and pins a BO for kernel internal use.”h]”hŒ0Allocates and pins a BO for kernel internal use.”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MKhj¼ubhÝ)�”}”(hŒqThis function is exported to allow the V4L2 isp device external to drm device to create and access the kernel BO.”h]”hŒqThis function is exported to allow the V4L2 isp device external to drm device to create and access the kernel BO.”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MMhj¼ubhÝ)�”}”(hŒ**Note**”h]”jµ)�”}”(hj¨h]”hŒNote”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MPhj¼ubhÝ)�”}”(hŒ;For bo_ptr new BO is only created if bo_ptr points to NULL.”h]”hŒ;For bo_ptr new BO is only created if bo_ptr points to NULL.”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MQhj¼ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjÏh]”hŒReturn”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MShj¼ubhÝ)�”}”(hŒ,0 on success, negative error code otherwise.”h]”hŒ,0 on success, negative error code otherwise.”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MShj¼ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ&amdgpu_bo_create_isp_user (C function)”Œc.amdgpu_bo_create_isp_user”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ…int amdgpu_bo_create_isp_user (struct amdgpu_device *adev, struct dma_buf *dma_buf, u32 domain, struct amdgpu_bo **bo, u64 *gpu_addr)”h]”jn)�”}”(hŒ„int amdgpu_bo_create_isp_user(struct amdgpu_device *adev, struct dma_buf *dma_buf, u32 domain, struct amdgpu_bo **bo, u64 *gpu_addr)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjh²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mjubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjh²hh³j"h´Mjubj—)�”}”(hŒamdgpu_bo_create_isp_user”h]”j�)�”}”(hŒamdgpu_bo_create_isp_user”h]”hŒamdgpu_bo_create_isp_user”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj1ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjh²hh³j"h´Mjubj¸)�”}”(hŒg(struct amdgpu_device *adev, struct dma_buf *dma_buf, u32 domain, struct amdgpu_bo **bo, u64 *gpu_addr)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjMubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjMubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjlubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jqŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj7sbŒc.amdgpu_bo_create_isp_user”†”asbuh1hhjMubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjMubj)�”}”(hjh]”hŒ*”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjMubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjMubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjIubj¾)�”}”(hŒstruct dma_buf *dma_buf”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj¿ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¿ubh)�”}”(hhh]”j�)�”}”(hŒdma_buf”h]”hŒdma_buf”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÞubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jãŒmodname”NŒ classname”Njÿj)�”}”j]”j‹Œc.amdgpu_bo_create_isp_user”†”asbuh1hhj¿ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¿ubj)�”}”(hjh]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¿ubj�)�”}”(hŒdma_buf”h]”hŒdma_buf”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¿ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjIubj¾)�”}”(hŒ u32 domain”h]”(h)�”}”(hhh]”j�)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj3ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j8Œmodname”NŒ classname”Njÿj)�”}”j]”j‹Œc.amdgpu_bo_create_isp_user”†”asbuh1hhj/ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj/ubj�)�”}”(hŒdomain”h]”hŒdomain”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj/ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjIubj¾)�”}”(hŒstruct amdgpu_bo **bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjwubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjwubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj–ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j›Œmodname”NŒ classname”Njÿj)�”}”j]”j‹Œc.amdgpu_bo_create_isp_user”†”asbuh1hhjwubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjwubj)�”}”(hjh]”hŒ*”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjwubj)�”}”(hjh]”hŒ*”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjwubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjwubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjIubj¾)�”}”(hŒ u64 *gpu_addr”h]”(h)�”}”(hhh]”j�)�”}”(hŒu64”h]”hŒu64”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjøubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jýŒmodname”NŒ classname”Njÿj)�”}”j]”j‹Œc.amdgpu_bo_create_isp_user”†”asbuh1hhjôubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjôubj)�”}”(hjh]”hŒ*”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjôubj�)�”}”(hŒgpu_addr”h]”hŒgpu_addr”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjôubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjIubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjh²hh³j"h´Mjubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj h²hh³j"h´Mjubah}”(h]”jah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j"h´Mjhj h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒcreate user BO for isp”h]”hŒcreate user BO for isp”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mjhj[h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj h²hh³j"h´Mjubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jvj¡jvj¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hX‰**Parameters** ``struct amdgpu_device *adev`` amdgpu device object ``struct dma_buf *dma_buf`` DMABUF handle for isp buffer ``u32 domain`` where to place it ``struct amdgpu_bo **bo`` used to initialize BOs in structures ``u64 *gpu_addr`` GPU addr of the pinned BO **Description** Imports isp DMABUF to allocate and pin a user BO for isp internal use. It does GART alloc to generate gpu_addr for BO to make it accessible through the GART aperture for ISP HW. This function is exported to allow the V4L2 isp device external to drm device to create and access the isp user BO. **Return** 0 on success, negative error code otherwise.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj€h]”hŒ Parameters”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mnhjzubj )�”}”(hhh]”(j)�”}”(hŒ4``struct amdgpu_device *adev`` amdgpu device object ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjŸh]”hŒstruct amdgpu_device *adev”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mlhj™ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device object”h]”hŒamdgpu device object”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j´h´Mlhjµubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j´h´Mlhj–ubj)�”}”(hŒ9``struct dma_buf *dma_buf`` DMABUF handle for isp buffer ”h]”(j)�”}”(hŒ``struct dma_buf *dma_buf``”h]”j:)�”}”(hjØh]”hŒstruct dma_buf *dma_buf”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MmhjÒubj$)�”}”(hhh]”hÝ)�”}”(hŒDMABUF handle for isp buffer”h]”hŒDMABUF handle for isp buffer”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jíh´Mmhjîubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÒubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jíh´Mmhj–ubj)�”}”(hŒ!``u32 domain`` where to place it ”h]”(j)�”}”(hŒ``u32 domain``”h]”j:)�”}”(hjh]”hŒ u32 domain”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mnhj ubj$)�”}”(hhh]”hÝ)�”}”(hŒwhere to place it”h]”hŒwhere to place it”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j&h´Mnhj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j&h´Mnhj–ubj)�”}”(hŒ?``struct amdgpu_bo **bo`` used to initialize BOs in structures ”h]”(j)�”}”(hŒ``struct amdgpu_bo **bo``”h]”j:)�”}”(hjJh]”hŒstruct amdgpu_bo **bo”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjHubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MohjDubj$)�”}”(hhh]”hÝ)�”}”(hŒ$used to initialize BOs in structures”h]”hŒ$used to initialize BOs in structures”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j_h´Mohj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjDubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j_h´Mohj–ubj)�”}”(hŒ,``u64 *gpu_addr`` GPU addr of the pinned BO ”h]”(j)�”}”(hŒ``u64 *gpu_addr``”h]”j:)�”}”(hjƒh]”hŒ u64 *gpu_addr”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mphj}ubj$)�”}”(hhh]”hÝ)�”}”(hŒGPU addr of the pinned BO”h]”hŒGPU addr of the pinned BO”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j˜h´Mphj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j˜h´Mphj–ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjzubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj¾h]”hŒ Description”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MrhjzubhÝ)�”}”(hŒ±Imports isp DMABUF to allocate and pin a user BO for isp internal use. It does GART alloc to generate gpu_addr for BO to make it accessible through the GART aperture for ISP HW.”h]”hŒ±Imports isp DMABUF to allocate and pin a user BO for isp internal use. It does GART alloc to generate gpu_addr for BO to make it accessible through the GART aperture for ISP HW.”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MqhjzubhÝ)�”}”(hŒsThis function is exported to allow the V4L2 isp device external to drm device to create and access the isp user BO.”h]”hŒsThis function is exported to allow the V4L2 isp device external to drm device to create and access the isp user BO.”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MuhjzubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjôh]”hŒReturn”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjòubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MxhjzubhÝ)�”}”(hŒ,0 on success, negative error code otherwise.”h]”hŒ,0 on success, negative error code otherwise.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Myhjzubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ'amdgpu_bo_create_kernel_at (C function)”Œc.amdgpu_bo_create_kernel_at”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ‡int amdgpu_bo_create_kernel_at (struct amdgpu_device *adev, uint64_t offset, uint64_t size, struct amdgpu_bo **bo_ptr, void **cpu_addr)”h]”jn)�”}”(hŒ†int amdgpu_bo_create_kernel_at(struct amdgpu_device *adev, uint64_t offset, uint64_t size, struct amdgpu_bo **bo_ptr, void **cpu_addr)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj5h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M®ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj5h²hh³jGh´M®ubj—)�”}”(hŒamdgpu_bo_create_kernel_at”h]”j�)�”}”(hŒamdgpu_bo_create_kernel_at”h]”hŒamdgpu_bo_create_kernel_at”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjVubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj5h²hh³jGh´M®ubj¸)�”}”(hŒh(struct amdgpu_device *adev, uint64_t offset, uint64_t size, struct amdgpu_bo **bo_ptr, void **cpu_addr)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjrubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjrubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj‘ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j–Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj\sbŒc.amdgpu_bo_create_kernel_at”†”asbuh1hhjrubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjrubj)�”}”(hjh]”hŒ*”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjrubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjrubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjnubj¾)�”}”(hŒuint64_t offset”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjèubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jíŒmodname”NŒ classname”Njÿj)�”}”j]”j°Œc.amdgpu_bo_create_kernel_at”†”asbuh1hhjäubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjäubj�)�”}”(hŒoffset”h]”hŒoffset”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjäubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjnubj¾)�”}”(hŒ uint64_t size”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j5Œmodname”NŒ classname”Njÿj)�”}”j]”j°Œc.amdgpu_bo_create_kernel_at”†”asbuh1hhj,ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj,ubj�)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjnubj¾)�”}”(hŒstruct amdgpu_bo **bo_ptr”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjtubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjtubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj“ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j˜Œmodname”NŒ classname”Njÿj)�”}”j]”j°Œc.amdgpu_bo_create_kernel_at”†”asbuh1hhjtubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjtubj)�”}”(hjh]”hŒ*”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjtubj)�”}”(hjh]”hŒ*”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjtubj�)�”}”(hŒbo_ptr”h]”hŒbo_ptr”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjtubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjnubj¾)�”}”(hŒvoid **cpu_addr”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjñubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjñubj)�”}”(hjh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjñubj)�”}”(hjh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjñubj�)�”}”(hŒcpu_addr”h]”hŒcpu_addr”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjñubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjnubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj5h²hh³jGh´M®ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj1h²hh³jGh´M®ubah}”(h]”j,ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jGh´M®hj.h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ-create BO for kernel use at specific location”h]”hŒ-create BO for kernel use at specific location”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M®hjRh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj.h²hh³jGh´M®ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jmj¡jmj¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hX‰**Parameters** ``struct amdgpu_device *adev`` amdgpu device object ``uint64_t offset`` offset of the BO ``uint64_t size`` size of the BO ``struct amdgpu_bo **bo_ptr`` used to initialize BOs in structures ``void **cpu_addr`` optional CPU address mapping **Description** Creates a kernel BO at a specific offset in VRAM. **Return** 0 on success, negative error code otherwise.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjwh]”hŒ Parameters”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjuubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M²hjqubj )�”}”(hhh]”(j)�”}”(hŒ4``struct amdgpu_device *adev`` amdgpu device object ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hj–h]”hŒstruct amdgpu_device *adev”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M°hj�ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device object”h]”hŒamdgpu device object”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j«h´M°hj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j«h´M°hj�ubj)�”}”(hŒ%``uint64_t offset`` offset of the BO ”h]”(j)�”}”(hŒ``uint64_t offset``”h]”j:)�”}”(hjÏh]”hŒuint64_t offset”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M±hjÉubj$)�”}”(hhh]”hÝ)�”}”(hŒoffset of the BO”h]”hŒoffset of the BO”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jäh´M±hjåubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÉubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jäh´M±hj�ubj)�”}”(hŒ!``uint64_t size`` size of the BO ”h]”(j)�”}”(hŒ``uint64_t size``”h]”j:)�”}”(hjh]”hŒ uint64_t size”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M²hjubj$)�”}”(hhh]”hÝ)�”}”(hŒsize of the BO”h]”hŒsize of the BO”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jh´M²hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jh´M²hj�ubj)�”}”(hŒC``struct amdgpu_bo **bo_ptr`` used to initialize BOs in structures ”h]”(j)�”}”(hŒ``struct amdgpu_bo **bo_ptr``”h]”j:)�”}”(hjAh]”hŒstruct amdgpu_bo **bo_ptr”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M³hj;ubj$)�”}”(hhh]”hÝ)�”}”(hŒ$used to initialize BOs in structures”h]”hŒ$used to initialize BOs in structures”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jVh´M³hjWubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jVh´M³hj�ubj)�”}”(hŒ1``void **cpu_addr`` optional CPU address mapping ”h]”(j)�”}”(hŒ``void **cpu_addr``”h]”j:)�”}”(hjzh]”hŒvoid **cpu_addr”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjxubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M´hjtubj$)�”}”(hhh]”hÝ)�”}”(hŒoptional CPU address mapping”h]”hŒoptional CPU address mapping”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j�h´M´hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjtubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j�h´M´hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjqubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjµh]”hŒ Description”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M¶hjqubhÝ)�”}”(hŒ1Creates a kernel BO at a specific offset in VRAM.”h]”hŒ1Creates a kernel BO at a specific offset in VRAM.”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MµhjqubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjÜh]”hŒReturn”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M·hjqubhÝ)�”}”(hŒ,0 on success, negative error code otherwise.”h]”hŒ,0 on success, negative error code otherwise.”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M¸hjqubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ"amdgpu_bo_free_kernel (C function)”Œc.amdgpu_bo_free_kernel”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒRvoid amdgpu_bo_free_kernel (struct amdgpu_bo **bo, u64 *gpu_addr, void **cpu_addr)”h]”jn)�”}”(hŒQvoid amdgpu_bo_free_kernel(struct amdgpu_bo **bo, u64 *gpu_addr, void **cpu_addr)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjh²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mñubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjh²hh³j/h´Mñubj—)�”}”(hŒamdgpu_bo_free_kernel”h]”j�)�”}”(hŒamdgpu_bo_free_kernel”h]”hŒamdgpu_bo_free_kernel”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj>ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjh²hh³j/h´Mñubj¸)�”}”(hŒ7(struct amdgpu_bo **bo, u64 *gpu_addr, void **cpu_addr)”h]”(j¾)�”}”(hŒstruct amdgpu_bo **bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjZubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjZubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjyubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j~Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjDsbŒc.amdgpu_bo_free_kernel”†”asbuh1hhjZubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjZubj)�”}”(hjh]”hŒ*”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjZubj)�”}”(hjh]”hŒ*”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjZubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjZubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjVubj¾)�”}”(hŒ u64 *gpu_addr”h]”(h)�”}”(hhh]”j�)�”}”(hŒu64”h]”hŒu64”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÝubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jâŒmodname”NŒ classname”Njÿj)�”}”j]”j˜Œc.amdgpu_bo_free_kernel”†”asbuh1hhjÙubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÙubj)�”}”(hjh]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÙubj�)�”}”(hŒgpu_addr”h]”hŒgpu_addr”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÙubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjVubj¾)�”}”(hŒvoid **cpu_addr”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj.ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj.ubj)�”}”(hjh]”hŒ*”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj.ubj)�”}”(hjh]”hŒ*”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj.ubj�)�”}”(hŒcpu_addr”h]”hŒcpu_addr”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjVubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjh²hh³j/h´Mñubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjh²hh³j/h´Mñubah}”(h]”jah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j/h´Mñhjh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒfree BO for kernel use”h]”hŒfree BO for kernel use”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mñhj�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjh²hh³j/h´Mñubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jªj¡jªj¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hXŒ**Parameters** ``struct amdgpu_bo **bo`` amdgpu BO to free ``u64 *gpu_addr`` pointer to where the BO's GPU memory space address was stored ``void **cpu_addr`` pointer to where the BO's CPU memory space address was stored **Description** unmaps and unpin a BO for kernel internal use. This function is exported to allow the V4L2 isp device external to drm device to free the kernel BO.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj´h]”hŒ Parameters”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mõhj®ubj )�”}”(hhh]”(j)�”}”(hŒ,``struct amdgpu_bo **bo`` amdgpu BO to free ”h]”(j)�”}”(hŒ``struct amdgpu_bo **bo``”h]”j:)�”}”(hjÓh]”hŒstruct amdgpu_bo **bo”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MóhjÍubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu BO to free”h]”hŒamdgpu BO to free”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jèh´Móhjéubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÍubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jèh´MóhjÊubj)�”}”(hŒP``u64 *gpu_addr`` pointer to where the BO's GPU memory space address was stored ”h]”(j)�”}”(hŒ``u64 *gpu_addr``”h]”j:)�”}”(hj h]”hŒ u64 *gpu_addr”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Môhjubj$)�”}”(hhh]”hÝ)�”}”(hŒ=pointer to where the BO's GPU memory space address was stored”h]”hŒ?pointer to where the BO’s GPU memory space address was stored”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j!h´Môhj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j!h´MôhjÊubj)�”}”(hŒR``void **cpu_addr`` pointer to where the BO's CPU memory space address was stored ”h]”(j)�”}”(hŒ``void **cpu_addr``”h]”j:)�”}”(hjEh]”hŒvoid **cpu_addr”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjCubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mõhj?ubj$)�”}”(hhh]”hÝ)�”}”(hŒ=pointer to where the BO's CPU memory space address was stored”h]”hŒ?pointer to where the BO’s CPU memory space address was stored”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jZh´Mõhj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jZh´MõhjÊubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj®ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj€h]”hŒ Description”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M÷hj®ubhÝ)�”}”(hŒ.unmaps and unpin a BO for kernel internal use.”h]”hŒ.unmaps and unpin a BO for kernel internal use.”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Möhj®ubhÝ)�”}”(hŒdThis function is exported to allow the V4L2 isp device external to drm device to free the kernel BO.”h]”hŒdThis function is exported to allow the V4L2 isp device external to drm device to free the kernel BO.”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Møhj®ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ$amdgpu_bo_free_isp_user (C function)”Œc.amdgpu_bo_free_isp_user”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ3void amdgpu_bo_free_isp_user (struct amdgpu_bo *bo)”h]”jn)�”}”(hŒ2void amdgpu_bo_free_isp_user(struct amdgpu_bo *bo)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÐh²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÐh²hh³jâh´Mubj—)�”}”(hŒamdgpu_bo_free_isp_user”h]”j�)�”}”(hŒamdgpu_bo_free_isp_user”h]”hŒamdgpu_bo_free_isp_user”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjñubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjÐh²hh³jâh´Mubj¸)�”}”(hŒ(struct amdgpu_bo *bo)”h]”j¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hj/ h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj, ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j1 Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj÷sbŒc.amdgpu_bo_free_isp_user”†”asbuh1hhj ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjO h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj ubj)�”}”(hjh]”hŒ*”…”�”}”(hj] h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj ubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjj h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjÐh²hh³jâh´Mubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjÌh²hh³jâh´Mubah}”(h]”jÇah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jâh´MhjÉh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒfree BO for isp use”h]”hŒfree BO for isp use”…”�”}”(hj” h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mhj‘ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÉh²hh³jâh´Mubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j¬ j¡j¬ j¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hŒè**Parameters** ``struct amdgpu_bo *bo`` amdgpu isp user BO to free **Description** unpin and unref BO for isp internal use. This function is exported to allow the V4L2 isp device external to drm device to free the isp user BO.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj¶ h]”hŒ Parameters”…”�”}”(hj¸ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj´ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mhj° ubj )�”}”(hhh]”j)�”}”(hŒ4``struct amdgpu_bo *bo`` amdgpu isp user BO to free ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hjÕ h]”hŒstruct amdgpu_bo *bo”…”�”}”(hj× h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÓ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MhjÏ ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu isp user BO to free”h]”hŒamdgpu isp user BO to free”…”�”}”(hjî h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jê h´Mhjë ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÏ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jê h´MhjÌ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj° ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj!h]”hŒ Description”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mhj° ubhÝ)�”}”(hŒ(unpin and unref BO for isp internal use.”h]”hŒ(unpin and unref BO for isp internal use.”…”�”}”(hj&!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mhj° ubhÝ)�”}”(hŒfThis function is exported to allow the V4L2 isp device external to drm device to free the isp user BO.”h]”hŒfThis function is exported to allow the V4L2 isp device external to drm device to free the isp user BO.”…”�”}”(hj5!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mhj° ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_bo_create (C function)”Œc.amdgpu_bo_create”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒhint amdgpu_bo_create (struct amdgpu_device *adev, struct amdgpu_bo_param *bp, struct amdgpu_bo **bo_ptr)”h]”jn)�”}”(hŒgint amdgpu_bo_create(struct amdgpu_device *adev, struct amdgpu_bo_param *bp, struct amdgpu_bo **bo_ptr)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjd!h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj`!h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mlubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjs!h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj`!h²hh³jr!h´Mlubj—)�”}”(hŒamdgpu_bo_create”h]”j�)�”}”(hŒamdgpu_bo_create”h]”hŒamdgpu_bo_create”…”�”}”(hj…!h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj�!ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj`!h²hh³jr!h´Mlubj¸)�”}”(hŒS(struct amdgpu_device *adev, struct amdgpu_bo_param *bp, struct amdgpu_bo **bo_ptr)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj¡!h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj�!ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®!h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj�!ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj¿!h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¼!ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÁ!Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj‡!sbŒc.amdgpu_bo_create”†”asbuh1hhj�!ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjß!h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj�!ubj)�”}”(hjh]”hŒ*”…”�”}”(hjí!h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj�!ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjú!h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj�!ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj™!ubj¾)�”}”(hŒstruct amdgpu_bo_param *bp”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj"ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj "h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj"ubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_bo_param”h]”hŒamdgpu_bo_param”…”�”}”(hj1"h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj."ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j3"Œmodname”NŒ classname”Njÿj)�”}”j]”jÛ!Œc.amdgpu_bo_create”†”asbuh1hhj"ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjO"h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj"ubj)�”}”(hjh]”hŒ*”…”�”}”(hj]"h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj"ubj�)�”}”(hŒbp”h]”hŒbp”…”�”}”(hjj"h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj™!ubj¾)�”}”(hŒstruct amdgpu_bo **bo_ptr”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjƒ"h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj"ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�"h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj"ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hj¡"h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjž"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j£"Œmodname”NŒ classname”Njÿj)�”}”j]”jÛ!Œc.amdgpu_bo_create”†”asbuh1hhj"ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¿"h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj"ubj)�”}”(hjh]”hŒ*”…”�”}”(hjÍ"h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj"ubj)�”}”(hjh]”hŒ*”…”�”}”(hjÚ"h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj"ubj�)�”}”(hŒbo_ptr”h]”hŒbo_ptr”…”�”}”(hjç"h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj™!ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj`!h²hh³jr!h´Mlubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj\!h²hh³jr!h´Mlubah}”(h]”jW!ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jr!h´MlhjY!h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ+create an :c:type:`amdgpu_bo` buffer object”h]”(hŒ create an ”…”�”}”(hj#h²hh³Nh´Nubh)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hj#h]”hŒ amdgpu_bo”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj#ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿj)�”}”j]”jÛ!Œc.amdgpu_bo_create”†”asbjŒ amdgpu_bo”uh1hh³j„h´KUhj#ubhŒ buffer object”…”�”}”(hj#h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mlhj#h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjY!h²hh³jr!h´Mlubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jQ#j¡jQ#j¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hXY**Parameters** ``struct amdgpu_device *adev`` amdgpu device object ``struct amdgpu_bo_param *bp`` parameters to be used for the buffer object ``struct amdgpu_bo **bo_ptr`` pointer to the buffer object pointer **Description** Creates an :c:type:`amdgpu_bo` buffer object. **Return** 0 for success or a negative error code on failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj[#h]”hŒ Parameters”…”�”}”(hj]#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjY#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MphjU#ubj )�”}”(hhh]”(j)�”}”(hŒ4``struct amdgpu_device *adev`` amdgpu device object ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjz#h]”hŒstruct amdgpu_device *adev”…”�”}”(hj|#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjx#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mmhjt#ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device object”h]”hŒamdgpu device object”…”�”}”(hj“#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j�#h´Mmhj�#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjt#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j�#h´Mmhjq#ubj)�”}”(hŒK``struct amdgpu_bo_param *bp`` parameters to be used for the buffer object ”h]”(j)�”}”(hŒ``struct amdgpu_bo_param *bp``”h]”j:)�”}”(hj³#h]”hŒstruct amdgpu_bo_param *bp”…”�”}”(hjµ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj±#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mnhj­#ubj$)�”}”(hhh]”hÝ)�”}”(hŒ+parameters to be used for the buffer object”h]”hŒ+parameters to be used for the buffer object”…”�”}”(hjÌ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÈ#h´MnhjÉ#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj­#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÈ#h´Mnhjq#ubj)�”}”(hŒC``struct amdgpu_bo **bo_ptr`` pointer to the buffer object pointer ”h]”(j)�”}”(hŒ``struct amdgpu_bo **bo_ptr``”h]”j:)�”}”(hjì#h]”hŒstruct amdgpu_bo **bo_ptr”…”�”}”(hjî#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjê#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mohjæ#ubj$)�”}”(hhh]”hÝ)�”}”(hŒ$pointer to the buffer object pointer”h]”hŒ$pointer to the buffer object pointer”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j$h´Mohj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjæ#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j$h´Mohjq#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjU#ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj'$h]”hŒ Description”…”�”}”(hj)$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj%$ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MqhjU#ubhÝ)�”}”(hŒ-Creates an :c:type:`amdgpu_bo` buffer object.”h]”(hŒ Creates an ”…”�”}”(hj=$h²hh³Nh´Nubh)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hjG$h]”hŒ amdgpu_bo”…”�”}”(hjI$h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjE$ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒ amdgpu_bo”uh1hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mphj=$ubhŒ buffer object.”…”�”}”(hj=$h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jd$h´MphjU#ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjq$h]”hŒReturn”…”�”}”(hjs$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjo$ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MrhjU#ubhÝ)�”}”(hŒ20 for success or a negative error code on failure.”h]”hŒ20 for success or a negative error code on failure.”…”�”}”(hj‡$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MshjU#ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ"amdgpu_bo_create_user (C function)”Œc.amdgpu_bo_create_user”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒsint amdgpu_bo_create_user (struct amdgpu_device *adev, struct amdgpu_bo_param *bp, struct amdgpu_bo_user **ubo_ptr)”h]”jn)�”}”(hŒrint amdgpu_bo_create_user(struct amdgpu_device *adev, struct amdgpu_bo_param *bp, struct amdgpu_bo_user **ubo_ptr)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj¶$h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj²$h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mõubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÅ$h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj²$h²hh³jÄ$h´Mõubj—)�”}”(hŒamdgpu_bo_create_user”h]”j�)�”}”(hŒamdgpu_bo_create_user”h]”hŒamdgpu_bo_create_user”…”�”}”(hj×$h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÓ$ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj²$h²hh³jÄ$h´Mõubj¸)�”}”(hŒY(struct amdgpu_device *adev, struct amdgpu_bo_param *bp, struct amdgpu_bo_user **ubo_ptr)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjó$h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjï$ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjï$ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j%Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjÙ$sbŒc.amdgpu_bo_create_user”†”asbuh1hhjï$ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1%h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjï$ubj)�”}”(hjh]”hŒ*”…”�”}”(hj?%h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjï$ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjL%h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjï$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjë$ubj¾)�”}”(hŒstruct amdgpu_bo_param *bp”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hje%h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhja%ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjr%h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hja%ubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_bo_param”h]”hŒamdgpu_bo_param”…”�”}”(hjƒ%h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj€%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j…%Œmodname”NŒ classname”Njÿj)�”}”j]”j-%Œc.amdgpu_bo_create_user”†”asbuh1hhja%ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡%h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hja%ubj)�”}”(hjh]”hŒ*”…”�”}”(hj¯%h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhja%ubj�)�”}”(hŒbp”h]”hŒbp”…”�”}”(hj¼%h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhja%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjë$ubj¾)�”}”(hŒstruct amdgpu_bo_user **ubo_ptr”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÕ%h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÑ%ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâ%h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÑ%ubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_bo_user”h]”hŒamdgpu_bo_user”…”�”}”(hjó%h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjð%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jõ%Œmodname”NŒ classname”Njÿj)�”}”j]”j-%Œc.amdgpu_bo_create_user”†”asbuh1hhjÑ%ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÑ%ubj)�”}”(hjh]”hŒ*”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÑ%ubj)�”}”(hjh]”hŒ*”…”�”}”(hj,&h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÑ%ubj�)�”}”(hŒubo_ptr”h]”hŒubo_ptr”…”�”}”(hj9&h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÑ%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjë$ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj²$h²hh³jÄ$h´Mõubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj®$h²hh³jÄ$h´Mõubah}”(h]”j©$ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÄ$h´Mõhj«$h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ0create an :c:type:`amdgpu_bo_user` buffer object”h]”(hŒ create an ”…”�”}”(hjc&h²hh³Nh´Nubh)�”}”(hŒ:c:type:`amdgpu_bo_user`”h]”j:)�”}”(hjm&h]”hŒamdgpu_bo_user”…”�”}”(hjo&h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjk&ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿj)�”}”j]”j-%Œc.amdgpu_bo_create_user”†”asbjŒamdgpu_bo_user”uh1hh³j„h´KUhjc&ubhŒ buffer object”…”�”}”(hjc&h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mõhj`&h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj«$h²hh³jÄ$h´Mõubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j£&j¡•j£&j¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hX]**Parameters** ``struct amdgpu_device *adev`` amdgpu device object ``struct amdgpu_bo_param *bp`` parameters to be used for the buffer object ``struct amdgpu_bo_user **ubo_ptr`` pointer to the buffer object pointer **Description** Create a BO to be used by user application; **Return** 0 for success or a negative error code on failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj­&h]”hŒ Parameters”…”�”}”(hj¯&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj«&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mùhj§&ubj )�”}”(hhh]”(j)�”}”(hŒ4``struct amdgpu_device *adev`` amdgpu device object ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjÌ&h]”hŒstruct amdgpu_device *adev”…”�”}”(hjÎ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÊ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MöhjÆ&ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device object”h]”hŒamdgpu device object”…”�”}”(hjå&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³já&h´Möhjâ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÆ&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³já&h´MöhjÃ&ubj)�”}”(hŒK``struct amdgpu_bo_param *bp`` parameters to be used for the buffer object ”h]”(j)�”}”(hŒ``struct amdgpu_bo_param *bp``”h]”j:)�”}”(hj'h]”hŒstruct amdgpu_bo_param *bp”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M÷hjÿ&ubj$)�”}”(hhh]”hÝ)�”}”(hŒ+parameters to be used for the buffer object”h]”hŒ+parameters to be used for the buffer object”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j'h´M÷hj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÿ&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j'h´M÷hjÃ&ubj)�”}”(hŒI``struct amdgpu_bo_user **ubo_ptr`` pointer to the buffer object pointer ”h]”(j)�”}”(hŒ#``struct amdgpu_bo_user **ubo_ptr``”h]”j:)�”}”(hj>'h]”hŒstruct amdgpu_bo_user **ubo_ptr”…”�”}”(hj@'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj<'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Møhj8'ubj$)�”}”(hhh]”hÝ)�”}”(hŒ$pointer to the buffer object pointer”h]”hŒ$pointer to the buffer object pointer”…”�”}”(hjW'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jS'h´MøhjT'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj8'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jS'h´MøhjÃ&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj§&ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjy'h]”hŒ Description”…”�”}”(hj{'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjw'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Múhj§&ubhÝ)�”}”(hŒ+Create a BO to be used by user application;”h]”hŒ+Create a BO to be used by user application;”…”�”}”(hj�'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mùhj§&ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj 'h]”hŒReturn”…”�”}”(hj¢'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjž'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mûhj§&ubhÝ)�”}”(hŒ20 for success or a negative error code on failure.”h]”hŒ20 for success or a negative error code on failure.”…”�”}”(hj¶'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mühj§&ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ amdgpu_bo_create_vm (C function)”Œc.amdgpu_bo_create_vm”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒpint amdgpu_bo_create_vm (struct amdgpu_device *adev, struct amdgpu_bo_param *bp, struct amdgpu_bo_vm **vmbo_ptr)”h]”jn)�”}”(hŒoint amdgpu_bo_create_vm(struct amdgpu_device *adev, struct amdgpu_bo_param *bp, struct amdgpu_bo_vm **vmbo_ptr)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjå'h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjá'h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjô'h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjá'h²hh³jó'h´Mubj—)�”}”(hŒamdgpu_bo_create_vm”h]”j�)�”}”(hŒamdgpu_bo_create_vm”h]”hŒamdgpu_bo_create_vm”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj(ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjá'h²hh³jó'h´Mubj¸)�”}”(hŒX(struct amdgpu_device *adev, struct amdgpu_bo_param *bp, struct amdgpu_bo_vm **vmbo_ptr)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj"(h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj(ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/(h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj(ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj@(h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj=(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jB(Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj(sbŒc.amdgpu_bo_create_vm”†”asbuh1hhj(ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`(h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj(ubj)�”}”(hjh]”hŒ*”…”�”}”(hjn(h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj(ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj{(h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj(ubj¾)�”}”(hŒstruct amdgpu_bo_param *bp”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj”(h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj�(ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡(h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj�(ubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_bo_param”h]”hŒamdgpu_bo_param”…”�”}”(hj²(h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¯(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j´(Œmodname”NŒ classname”Njÿj)�”}”j]”j\(Œc.amdgpu_bo_create_vm”†”asbuh1hhj�(ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐ(h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj�(ubj)�”}”(hjh]”hŒ*”…”�”}”(hjÞ(h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj�(ubj�)�”}”(hŒbp”h]”hŒbp”…”�”}”(hjë(h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj�(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj(ubj¾)�”}”(hŒstruct amdgpu_bo_vm **vmbo_ptr”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj)ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj)ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo_vm”h]”hŒ amdgpu_bo_vm”…”�”}”(hj")h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j$)Œmodname”NŒ classname”Njÿj)�”}”j]”j\(Œc.amdgpu_bo_create_vm”†”asbuh1hhj)ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@)h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj)ubj)�”}”(hjh]”hŒ*”…”�”}”(hjN)h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj)ubj)�”}”(hjh]”hŒ*”…”�”}”(hj[)h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj)ubj�)�”}”(hŒvmbo_ptr”h]”hŒvmbo_ptr”…”�”}”(hjh)h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj(ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjá'h²hh³jó'h´Mubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjÝ'h²hh³jó'h´Mubah}”(h]”jØ'ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jó'h´MhjÚ'h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ.create an :c:type:`amdgpu_bo_vm` buffer object”h]”(hŒ create an ”…”�”}”(hj’)h²hh³Nh´Nubh)�”}”(hŒ:c:type:`amdgpu_bo_vm`”h]”j:)�”}”(hjœ)h]”hŒ amdgpu_bo_vm”…”�”}”(hjž)h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjš)ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿj)�”}”j]”j\(Œc.amdgpu_bo_create_vm”†”asbjŒ amdgpu_bo_vm”uh1hh³j„h´KUhj’)ubhŒ buffer object”…”�”}”(hj’)h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mhj�)h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÚ'h²hh³jó'h´Mubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jÒ)j¡jÒ)j¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hXM**Parameters** ``struct amdgpu_device *adev`` amdgpu device object ``struct amdgpu_bo_param *bp`` parameters to be used for the buffer object ``struct amdgpu_bo_vm **vmbo_ptr`` pointer to the buffer object pointer **Description** Create a BO to be for GPUVM. **Return** 0 for success or a negative error code on failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjÜ)h]”hŒ Parameters”…”�”}”(hjÞ)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÚ)ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MhjÖ)ubj )�”}”(hhh]”(j)�”}”(hŒ4``struct amdgpu_device *adev`` amdgpu device object ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjû)h]”hŒstruct amdgpu_device *adev”…”�”}”(hjý)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjù)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mhjõ)ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device object”h]”hŒamdgpu device object”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j*h´Mhj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjõ)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j*h´Mhjò)ubj)�”}”(hŒK``struct amdgpu_bo_param *bp`` parameters to be used for the buffer object ”h]”(j)�”}”(hŒ``struct amdgpu_bo_param *bp``”h]”j:)�”}”(hj4*h]”hŒstruct amdgpu_bo_param *bp”…”�”}”(hj6*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj2*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mhj.*ubj$)�”}”(hhh]”hÝ)�”}”(hŒ+parameters to be used for the buffer object”h]”hŒ+parameters to be used for the buffer object”…”�”}”(hjM*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jI*h´MhjJ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj.*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jI*h´Mhjò)ubj)�”}”(hŒH``struct amdgpu_bo_vm **vmbo_ptr`` pointer to the buffer object pointer ”h]”(j)�”}”(hŒ"``struct amdgpu_bo_vm **vmbo_ptr``”h]”j:)�”}”(hjm*h]”hŒstruct amdgpu_bo_vm **vmbo_ptr”…”�”}”(hjo*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjk*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mhjg*ubj$)�”}”(hhh]”hÝ)�”}”(hŒ$pointer to the buffer object pointer”h]”hŒ$pointer to the buffer object pointer”…”�”}”(hj†*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j‚*h´Mhjƒ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjg*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‚*h´Mhjò)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÖ)ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj¨*h]”hŒ Description”…”�”}”(hjª*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¦*ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MhjÖ)ubhÝ)�”}”(hŒCreate a BO to be for GPUVM.”h]”hŒCreate a BO to be for GPUVM.”…”�”}”(hj¾*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MhjÖ)ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjÏ*h]”hŒReturn”…”�”}”(hjÑ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÍ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MhjÖ)ubhÝ)�”}”(hŒ20 for success or a negative error code on failure.”h]”hŒ20 for success or a negative error code on failure.”…”�”}”(hjå*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MhjÖ)ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_bo_kmap (C function)”Œc.amdgpu_bo_kmap”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ5int amdgpu_bo_kmap (struct amdgpu_bo *bo, void **ptr)”h]”jn)�”}”(hŒ4int amdgpu_bo_kmap(struct amdgpu_bo *bo, void **ptr)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj+h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M1ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#+h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj+h²hh³j"+h´M1ubj—)�”}”(hŒamdgpu_bo_kmap”h]”j�)�”}”(hŒamdgpu_bo_kmap”h]”hŒamdgpu_bo_kmap”…”�”}”(hj5+h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj1+ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj+h²hh³j"+h´M1ubj¸)�”}”(hŒ"(struct amdgpu_bo *bo, void **ptr)”h]”(j¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjQ+h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjM+ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^+h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjM+ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hjo+h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjl+ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jq+Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj7+sbŒc.amdgpu_bo_kmap”†”asbuh1hhjM+ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�+h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjM+ubj)�”}”(hjh]”hŒ*”…”�”}”(hj�+h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjM+ubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjª+h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjM+ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjI+ubj¾)�”}”(hŒ void **ptr”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÃ+h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj¿+ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑ+h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¿+ubj)�”}”(hjh]”hŒ*”…”�”}”(hjß+h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¿+ubj)�”}”(hjh]”hŒ*”…”�”}”(hjì+h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¿+ubj�)�”}”(hŒptr”h]”hŒptr”…”�”}”(hjù+h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¿+ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjI+ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj+h²hh³j"+h´M1ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj +h²hh³j"+h´M1ubah}”(h]”j+ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j"+h´M1hj +h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ(map an :c:type:`amdgpu_bo` buffer object”h]”(hŒmap an ”…”�”}”(hj#,h²hh³Nh´Nubh)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hj-,h]”hŒ amdgpu_bo”…”�”}”(hj/,h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj+,ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿj)�”}”j]”j‹+Œc.amdgpu_bo_kmap”†”asbjŒ amdgpu_bo”uh1hh³j„h´KUhj#,ubhŒ buffer object”…”�”}”(hj#,h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M1hj ,h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj +h²hh³j"+h´M1ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jc,j¡jc,j¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hXW**Parameters** ``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object to be mapped ``void **ptr`` kernel virtual address to be returned **Description** Calls ttm_bo_kmap() to set up the kernel virtual mapping; calls amdgpu_bo_kptr() to get the kernel virtual address. **Return** 0 for success or a negative error code on failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjm,h]”hŒ Parameters”…”�”}”(hjo,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjk,ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M5hjg,ubj )�”}”(hhh]”(j)�”}”(hŒH``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object to be mapped ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hjŒ,h]”hŒstruct amdgpu_bo *bo”…”�”}”(hjŽ,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjŠ,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M2hj†,ubj$)�”}”(hhh]”hÝ)�”}”(hŒ.:c:type:`amdgpu_bo` buffer object to be mapped”h]”(h)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hj«,h]”hŒ amdgpu_bo”…”�”}”(hj­,h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj©,ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒ amdgpu_bo”uh1hh³j¡,h´M2hj¥,ubhŒ buffer object to be mapped”…”�”}”(hj¥,h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¡,h´M2hj¢,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj†,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¡,h´M2hjƒ,ubj)�”}”(hŒ5``void **ptr`` kernel virtual address to be returned ”h]”(j)�”}”(hŒ``void **ptr``”h]”j:)�”}”(hjä,h]”hŒ void **ptr”…”�”}”(hjæ,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjâ,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M3hjÞ,ubj$)�”}”(hhh]”hÝ)�”}”(hŒ%kernel virtual address to be returned”h]”hŒ%kernel virtual address to be returned”…”�”}”(hjý,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jù,h´M3hjú,ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÞ,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jù,h´M3hjƒ,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjg,ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj-h]”hŒ Description”…”�”}”(hj!-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M5hjg,ubhÝ)�”}”(hŒsCalls ttm_bo_kmap() to set up the kernel virtual mapping; calls amdgpu_bo_kptr() to get the kernel virtual address.”h]”hŒsCalls ttm_bo_kmap() to set up the kernel virtual mapping; calls amdgpu_bo_kptr() to get the kernel virtual address.”…”�”}”(hj5-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M4hjg,ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjF-h]”hŒReturn”…”�”}”(hjH-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjD-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M7hjg,ubhÝ)�”}”(hŒ20 for success or a negative error code on failure.”h]”hŒ20 for success or a negative error code on failure.”…”�”}”(hj\-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M8hjg,ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_bo_kptr (C function)”Œc.amdgpu_bo_kptr”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ,void * amdgpu_bo_kptr (struct amdgpu_bo *bo)”h]”jn)�”}”(hŒ*void *amdgpu_bo_kptr(struct amdgpu_bo *bo)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj‹-h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj‡-h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MZubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjš-h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj‡-h²hh³j™-h´MZubj)�”}”(hjh]”hŒ*”…”�”}”(hj¨-h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj‡-h²hh³j™-h´MZubj—)�”}”(hŒamdgpu_bo_kptr”h]”j�)�”}”(hŒamdgpu_bo_kptr”h]”hŒamdgpu_bo_kptr”…”�”}”(hj¹-h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjµ-ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj‡-h²hh³j™-h´MZubj¸)�”}”(hŒ(struct amdgpu_bo *bo)”h]”j¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÕ-h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÑ-ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâ-h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÑ-ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hjó-h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjð-ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jõ-Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj»-sbŒc.amdgpu_bo_kptr”†”asbuh1hhjÑ-ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÑ-ubj)�”}”(hjh]”hŒ*”…”�”}”(hj!.h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÑ-ubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hj..h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÑ-ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÍ-ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj‡-h²hh³j™-h´MZubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjƒ-h²hh³j™-h´MZubah}”(h]”j~-ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j™-h´MZhj€-h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ5returns a kernel virtual address of the buffer object”h]”hŒ5returns a kernel virtual address of the buffer object”…”�”}”(hjX.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MZhjU.h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj€-h²hh³j™-h´MZubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jp.j¡jp.j¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hŒ×**Parameters** ``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object **Description** Calls ttm_kmap_obj_virtual() to get the kernel virtual address **Return** the virtual address of a buffer object area.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjz.h]”hŒ Parameters”…”�”}”(hj|.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjx.ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M^hjt.ubj )�”}”(hhh]”j)�”}”(hŒ;``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hj™.h]”hŒstruct amdgpu_bo *bo”…”�”}”(hj›.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj—.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M[hj“.ubj$)�”}”(hhh]”hÝ)�”}”(hŒ!:c:type:`amdgpu_bo` buffer object”h]”(h)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hj¸.h]”hŒ amdgpu_bo”…”�”}”(hjº.h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj¶.ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒ amdgpu_bo”uh1hh³j®.h´M[hj².ubhŒ buffer object”…”�”}”(hj².h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j®.h´M[hj¯.ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj“.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j®.h´M[hj�.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjt.ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjó.h]”hŒ Description”…”�”}”(hjõ.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjñ.ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M]hjt.ubhÝ)�”}”(hŒ>Calls ttm_kmap_obj_virtual() to get the kernel virtual address”h]”hŒ>Calls ttm_kmap_obj_virtual() to get the kernel virtual address”…”�”}”(hj /h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M\hjt.ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj/h]”hŒReturn”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M^hjt.ubhÝ)�”}”(hŒ,the virtual address of a buffer object area.”h]”hŒ,the virtual address of a buffer object area.”…”�”}”(hj0/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M_hjt.ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_bo_kunmap (C function)”Œc.amdgpu_bo_kunmap”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ,void amdgpu_bo_kunmap (struct amdgpu_bo *bo)”h]”jn)�”}”(hŒ+void amdgpu_bo_kunmap(struct amdgpu_bo *bo)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj_/h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj[/h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mjubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjn/h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj[/h²hh³jm/h´Mjubj—)�”}”(hŒamdgpu_bo_kunmap”h]”j�)�”}”(hŒamdgpu_bo_kunmap”h]”hŒamdgpu_bo_kunmap”…”�”}”(hj€/h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj|/ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj[/h²hh³jm/h´Mjubj¸)�”}”(hŒ(struct amdgpu_bo *bo)”h]”j¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjœ/h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj˜/ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj©/h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj˜/ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hjº/h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj·/ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j¼/Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj‚/sbŒc.amdgpu_bo_kunmap”†”asbuh1hhj˜/ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÚ/h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj˜/ubj)�”}”(hjh]”hŒ*”…”�”}”(hjè/h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj˜/ubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjõ/h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj˜/ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj”/ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj[/h²hh³jm/h´Mjubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjW/h²hh³jm/h´Mjubah}”(h]”jR/ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jm/h´MjhjT/h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ*unmap an :c:type:`amdgpu_bo` buffer object”h]”(hŒ unmap an ”…”�”}”(hj0h²hh³Nh´Nubh)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hj)0h]”hŒ amdgpu_bo”…”�”}”(hj+0h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj'0ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿj)�”}”j]”jÖ/Œc.amdgpu_bo_kunmap”†”asbjŒ amdgpu_bo”uh1hh³j„h´KUhj0ubhŒ buffer object”…”�”}”(hj0h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mjhj0h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjT/h²hh³jm/h´Mjubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j_0j¡j_0j¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hŒ�**Parameters** ``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object to be unmapped **Description** Unmaps a kernel map set up by amdgpu_bo_kmap().”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hji0h]”hŒ Parameters”…”�”}”(hjk0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjg0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mnhjc0ubj )�”}”(hhh]”j)�”}”(hŒJ``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object to be unmapped ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hjˆ0h]”hŒstruct amdgpu_bo *bo”…”�”}”(hjŠ0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj†0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mkhj‚0ubj$)�”}”(hhh]”hÝ)�”}”(hŒ0:c:type:`amdgpu_bo` buffer object to be unmapped”h]”(h)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hj§0h]”hŒ amdgpu_bo”…”�”}”(hj©0h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj¥0ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒ amdgpu_bo”uh1hh³j�0h´Mkhj¡0ubhŒ buffer object to be unmapped”…”�”}”(hj¡0h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j�0h´Mkhjž0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj‚0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j�0h´Mkhj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjc0ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjâ0h]”hŒ Description”…”�”}”(hjä0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjà0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mmhjc0ubhÝ)�”}”(hŒ/Unmaps a kernel map set up by amdgpu_bo_kmap().”h]”hŒ/Unmaps a kernel map set up by amdgpu_bo_kmap().”…”�”}”(hjø0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mlhjc0ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_bo_ref (C function)”Œc.amdgpu_bo_ref”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ7struct amdgpu_bo * amdgpu_bo_ref (struct amdgpu_bo *bo)”h]”jn)�”}”(hŒ5struct amdgpu_bo *amdgpu_bo_ref(struct amdgpu_bo *bo)”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj'1h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj#1h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mvubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj51h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj#1h²hh³j41h´Mvubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hjF1h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjC1ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jH1Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒ amdgpu_bo_ref”sbŒc.amdgpu_bo_ref”†”asbuh1hhj#1h²hh³j41h´Mvubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjg1h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj#1h²hh³j41h´Mvubj)�”}”(hjh]”hŒ*”…”�”}”(hju1h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj#1h²hh³j41h´Mvubj—)�”}”(hŒ amdgpu_bo_ref”h]”j�)�”}”(hjd1h]”hŒ amdgpu_bo_ref”…”�”}”(hj†1h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj‚1ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj#1h²hh³j41h´Mvubj¸)�”}”(hŒ(struct amdgpu_bo *bo)”h]”j¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj¡1h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj�1ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®1h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj�1ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hj¿1h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¼1ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÁ1Œmodname”NŒ classname”Njÿj)�”}”j]”jb1Œc.amdgpu_bo_ref”†”asbuh1hhj�1ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÝ1h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj�1ubj)�”}”(hjh]”hŒ*”…”�”}”(hjë1h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj�1ubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjø1h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj�1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj™1ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj#1h²hh³j41h´Mvubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj1h²hh³j41h´Mvubah}”(h]”j1ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j41h´Mvhj1h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ.reference an :c:type:`amdgpu_bo` buffer object”h]”(hŒ reference an ”…”�”}”(hj"2h²hh³Nh´Nubh)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hj,2h]”hŒ amdgpu_bo”…”�”}”(hj.2h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj*2ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿj)�”}”j]”jb1Œc.amdgpu_bo_ref”†”asbjŒ amdgpu_bo”uh1hh³j„h´KUhj"2ubhŒ buffer object”…”�”}”(hj"2h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mvhj2h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj1h²hh³j41h´Mvubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jb2j¡jb2j¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hŒà**Parameters** ``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object **Description** References the contained :c:type:`ttm_buffer_object`. **Return** a refcounted pointer to the :c:type:`amdgpu_bo` buffer object.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjl2h]”hŒ Parameters”…”�”}”(hjn2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mzhjf2ubj )�”}”(hhh]”j)�”}”(hŒ;``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hj‹2h]”hŒstruct amdgpu_bo *bo”…”�”}”(hj�2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj‰2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mwhj…2ubj$)�”}”(hhh]”hÝ)�”}”(hŒ!:c:type:`amdgpu_bo` buffer object”h]”(h)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hjª2h]”hŒ amdgpu_bo”…”�”}”(hj¬2h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj¨2ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒ amdgpu_bo”uh1hh³j 2h´Mwhj¤2ubhŒ buffer object”…”�”}”(hj¤2h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j 2h´Mwhj¡2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj…2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j 2h´Mwhj‚2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjf2ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjå2h]”hŒ Description”…”�”}”(hjç2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjã2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Myhjf2ubhÝ)�”}”(hŒ5References the contained :c:type:`ttm_buffer_object`.”h]”(hŒReferences the contained ”…”�”}”(hjû2h²hh³Nh´Nubh)�”}”(hŒ:c:type:`ttm_buffer_object`”h]”j:)�”}”(hj3h]”hŒttm_buffer_object”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj3ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒttm_buffer_object”uh1hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mxhjû2ubhŒ.”…”�”}”(hjû2h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j"3h´Mxhjf2ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj/3h]”hŒReturn”…”�”}”(hj13h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj-3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mzhjf2ubhÝ)�”}”(hŒ>a refcounted pointer to the :c:type:`amdgpu_bo` buffer object.”h]”(hŒa refcounted pointer to the ”…”�”}”(hjE3h²hh³Nh´Nubh)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hjO3h]”hŒ amdgpu_bo”…”�”}”(hjQ3h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjM3ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒ amdgpu_bo”uh1hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M{hjE3ubhŒ buffer object.”…”�”}”(hjE3h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jl3h´M{hjf2ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_bo_unref (C function)”Œc.amdgpu_bo_unref”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ,void amdgpu_bo_unref (struct amdgpu_bo **bo)”h]”jn)�”}”(hŒ+void amdgpu_bo_unref(struct amdgpu_bo **bo)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj—3h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj“3h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mˆubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦3h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj“3h²hh³j¥3h´Mˆubj—)�”}”(hŒamdgpu_bo_unref”h]”j�)�”}”(hŒamdgpu_bo_unref”h]”hŒamdgpu_bo_unref”…”�”}”(hj¸3h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj´3ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj“3h²hh³j¥3h´Mˆubj¸)�”}”(hŒ(struct amdgpu_bo **bo)”h]”j¾)�”}”(hŒstruct amdgpu_bo **bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÔ3h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÐ3ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjá3h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÐ3ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hjò3h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjï3ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jô3Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjº3sbŒc.amdgpu_bo_unref”†”asbuh1hhjÐ3ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÐ3ubj)�”}”(hjh]”hŒ*”…”�”}”(hj 4h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÐ3ubj)�”}”(hjh]”hŒ*”…”�”}”(hj-4h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÐ3ubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hj:4h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÐ3ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌ3ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj“3h²hh³j¥3h´Mˆubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj�3h²hh³j¥3h´Mˆubah}”(h]”jŠ3ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j¥3h´MˆhjŒ3h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ0unreference an :c:type:`amdgpu_bo` buffer object”h]”(hŒunreference an ”…”�”}”(hjd4h²hh³Nh´Nubh)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hjn4h]”hŒ amdgpu_bo”…”�”}”(hjp4h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjl4ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿj)�”}”j]”j4Œc.amdgpu_bo_unref”†”asbjŒ amdgpu_bo”uh1hh³j„h´KUhjd4ubhŒ buffer object”…”�”}”(hjd4h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mˆhja4h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjŒ3h²hh³j¥3h´Mˆubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j¤4j¡j¤4j¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hŒ¬**Parameters** ``struct amdgpu_bo **bo`` :c:type:`amdgpu_bo` buffer object **Description** Unreferences the contained :c:type:`ttm_buffer_object` and clear the pointer”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj®4h]”hŒ Parameters”…”�”}”(hj°4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¬4ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MŒhj¨4ubj )�”}”(hhh]”j)�”}”(hŒ<``struct amdgpu_bo **bo`` :c:type:`amdgpu_bo` buffer object ”h]”(j)�”}”(hŒ``struct amdgpu_bo **bo``”h]”j:)�”}”(hjÍ4h]”hŒstruct amdgpu_bo **bo”…”�”}”(hjÏ4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjË4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M‰hjÇ4ubj$)�”}”(hhh]”hÝ)�”}”(hŒ!:c:type:`amdgpu_bo` buffer object”h]”(h)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hjì4h]”hŒ amdgpu_bo”…”�”}”(hjî4h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjê4ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒ amdgpu_bo”uh1hh³jâ4h´M‰hjæ4ubhŒ buffer object”…”�”}”(hjæ4h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jâ4h´M‰hjã4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÇ4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jâ4h´M‰hjÄ4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¨4ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj'5h]”hŒ Description”…”�”}”(hj)5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj%5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M‹hj¨4ubhÝ)�”}”(hŒLUnreferences the contained :c:type:`ttm_buffer_object` and clear the pointer”h]”(hŒUnreferences the contained ”…”�”}”(hj=5h²hh³Nh´Nubh)�”}”(hŒ:c:type:`ttm_buffer_object`”h]”j:)�”}”(hjG5h]”hŒttm_buffer_object”…”�”}”(hjI5h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjE5ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒttm_buffer_object”uh1hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MŠhj=5ubhŒ and clear the pointer”…”�”}”(hj=5h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jd5h´MŠhj¨4ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_bo_pin (C function)”Œc.amdgpu_bo_pin”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ4int amdgpu_bo_pin (struct amdgpu_bo *bo, u32 domain)”h]”jn)�”}”(hŒ3int amdgpu_bo_pin(struct amdgpu_bo *bo, u32 domain)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj�5h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj‹5h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M—ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjž5h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj‹5h²hh³j�5h´M—ubj—)�”}”(hŒ amdgpu_bo_pin”h]”j�)�”}”(hŒ amdgpu_bo_pin”h]”hŒ amdgpu_bo_pin”…”�”}”(hj°5h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¬5ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj‹5h²hh³j�5h´M—ubj¸)�”}”(hŒ"(struct amdgpu_bo *bo, u32 domain)”h]”(j¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÌ5h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÈ5ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙ5h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÈ5ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hjê5h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjç5ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jì5Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj²5sbŒc.amdgpu_bo_pin”†”asbuh1hhjÈ5ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj 6h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÈ5ubj)�”}”(hjh]”hŒ*”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÈ5ubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hj%6h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÈ5ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÄ5ubj¾)�”}”(hŒ u32 domain”h]”(h)�”}”(hhh]”j�)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjA6h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj>6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jC6Œmodname”NŒ classname”Njÿj)�”}”j]”j6Œc.amdgpu_bo_pin”†”asbuh1hhj:6ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_6h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj:6ubj�)�”}”(hŒdomain”h]”hŒdomain”…”�”}”(hjm6h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj:6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÄ5ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj‹5h²hh³j�5h´M—ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj‡5h²hh³j�5h´M—ubah}”(h]”j‚5ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j�5h´M—hj„5h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ(pin an :c:type:`amdgpu_bo` buffer object”h]”(hŒpin an ”…”�”}”(hj—6h²hh³Nh´Nubh)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hj¡6h]”hŒ amdgpu_bo”…”�”}”(hj£6h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjŸ6ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿj)�”}”j]”j6Œc.amdgpu_bo_pin”†”asbjŒ amdgpu_bo”uh1hh³j„h´KUhj—6ubhŒ buffer object”…”�”}”(hj—6h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M—hj”6h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj„5h²hh³j�5h´M—ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j×6j¡j×6j¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hX7**Parameters** ``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object to be pinned ``u32 domain`` domain to be pinned to **Description** Pins the buffer object according to requested domain. If the memory is unbound gart memory, binds the pages into gart table. Adjusts pin_count and pin_size accordingly. Pinning means to lock pages in memory along with keeping them at a fixed offset. It is required when a buffer can not be moved, for example, when a display buffer is being scanned out. **Return** 0 for success or a negative error code on failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjá6h]”hŒ Parameters”…”�”}”(hjã6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjß6ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M›hjÛ6ubj )�”}”(hhh]”(j)�”}”(hŒH``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object to be pinned ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hj7h]”hŒstruct amdgpu_bo *bo”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjþ6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M˜hjú6ubj$)�”}”(hhh]”hÝ)�”}”(hŒ.:c:type:`amdgpu_bo` buffer object to be pinned”h]”(h)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hj7h]”hŒ amdgpu_bo”…”�”}”(hj!7h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj7ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒ amdgpu_bo”uh1hh³j7h´M˜hj7ubhŒ buffer object to be pinned”…”�”}”(hj7h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j7h´M˜hj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjú6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j7h´M˜hj÷6ubj)�”}”(hŒ&``u32 domain`` domain to be pinned to ”h]”(j)�”}”(hŒ``u32 domain``”h]”j:)�”}”(hjX7h]”hŒ u32 domain”…”�”}”(hjZ7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjV7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M™hjR7ubj$)�”}”(hhh]”hÝ)�”}”(hŒdomain to be pinned to”h]”hŒdomain to be pinned to”…”�”}”(hjq7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jm7h´M™hjn7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjR7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jm7h´M™hj÷6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÛ6ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj“7h]”hŒ Description”…”�”}”(hj•7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj‘7ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M›hjÛ6ubhÝ)�”}”(hŒ¨Pins the buffer object according to requested domain. If the memory is unbound gart memory, binds the pages into gart table. Adjusts pin_count and pin_size accordingly.”h]”hŒ¨Pins the buffer object according to requested domain. If the memory is unbound gart memory, binds the pages into gart table. Adjusts pin_count and pin_size accordingly.”…”�”}”(hj©7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MšhjÛ6ubhÝ)�”}”(hŒ¸Pinning means to lock pages in memory along with keeping them at a fixed offset. It is required when a buffer can not be moved, for example, when a display buffer is being scanned out.”h]”hŒ¸Pinning means to lock pages in memory along with keeping them at a fixed offset. It is required when a buffer can not be moved, for example, when a display buffer is being scanned out.”…”�”}”(hj¸7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MžhjÛ6ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjÉ7h]”hŒReturn”…”�”}”(hjË7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÇ7ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M¢hjÛ6ubhÝ)�”}”(hŒ20 for success or a negative error code on failure.”h]”hŒ20 for success or a negative error code on failure.”…”�”}”(hjß7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M£hjÛ6ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_bo_unpin (C function)”Œc.amdgpu_bo_unpin”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ+void amdgpu_bo_unpin (struct amdgpu_bo *bo)”h]”jn)�”}”(hŒ*void amdgpu_bo_unpin(struct amdgpu_bo *bo)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj 8h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mòubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj 8h²hh³j8h´Mòubj—)�”}”(hŒamdgpu_bo_unpin”h]”j�)�”}”(hŒamdgpu_bo_unpin”h]”hŒamdgpu_bo_unpin”…”�”}”(hj/8h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj+8ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj 8h²hh³j8h´Mòubj¸)�”}”(hŒ(struct amdgpu_bo *bo)”h]”j¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjK8h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjG8ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjX8h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjG8ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hji8h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjf8ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jk8Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj18sbŒc.amdgpu_bo_unpin”†”asbuh1hhjG8ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‰8h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjG8ubj)�”}”(hjh]”hŒ*”…”�”}”(hj—8h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjG8ubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hj¤8h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjG8ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjC8ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj 8h²hh³j8h´Mòubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj8h²hh³j8h´Mòubah}”(h]”j8ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j8h´Mòhj8h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ*unpin an :c:type:`amdgpu_bo` buffer object”h]”(hŒ unpin an ”…”�”}”(hjÎ8h²hh³Nh´Nubh)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hjØ8h]”hŒ amdgpu_bo”…”�”}”(hjÚ8h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjÖ8ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿj)�”}”j]”j…8Œc.amdgpu_bo_unpin”†”asbjŒ amdgpu_bo”uh1hh³j„h´KUhjÎ8ubhŒ buffer object”…”�”}”(hjÎ8h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MòhjË8h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj8h²hh³j8h´Mòubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j9j¡j9j¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hX**Parameters** ``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object to be unpinned **Description** Decreases the pin_count, and clears the flags if pin_count reaches 0. Changes placement and pin size accordingly. **Return** 0 for success or a negative error code on failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj9h]”hŒ Parameters”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Möhj9ubj )�”}”(hhh]”j)�”}”(hŒJ``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object to be unpinned ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hj79h]”hŒstruct amdgpu_bo *bo”…”�”}”(hj99h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj59ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Móhj19ubj$)�”}”(hhh]”hÝ)�”}”(hŒ0:c:type:`amdgpu_bo` buffer object to be unpinned”h]”(h)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hjV9h]”hŒ amdgpu_bo”…”�”}”(hjX9h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjT9ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒ amdgpu_bo”uh1hh³jL9h´MóhjP9ubhŒ buffer object to be unpinned”…”�”}”(hjP9h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jL9h´MóhjM9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj19ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jL9h´Móhj.9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj9ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj‘9h]”hŒ Description”…”�”}”(hj“9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj�9ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mõhj9ubhÝ)�”}”(hŒqDecreases the pin_count, and clears the flags if pin_count reaches 0. Changes placement and pin size accordingly.”h]”hŒqDecreases the pin_count, and clears the flags if pin_count reaches 0. Changes placement and pin size accordingly.”…”�”}”(hj§9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Môhj9ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj¸9h]”hŒReturn”…”�”}”(hjº9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¶9ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M÷hj9ubhÝ)�”}”(hŒ20 for success or a negative error code on failure.”h]”hŒ20 for success or a negative error code on failure.”…”�”}”(hjÎ9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Møhj9ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_bo_init (C function)”Œc.amdgpu_bo_init”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ/int amdgpu_bo_init (struct amdgpu_device *adev)”h]”jn)�”}”(hŒ.int amdgpu_bo_init(struct amdgpu_device *adev)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjý9h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjù9h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M#ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj :h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjù9h²hh³j :h´M#ubj—)�”}”(hŒamdgpu_bo_init”h]”j�)�”}”(hŒamdgpu_bo_init”h]”hŒamdgpu_bo_init”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj:ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjù9h²hh³j :h´M#ubj¸)�”}”(hŒ(struct amdgpu_device *adev)”h]”j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj::h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj6:ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjG:h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj6:ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjX:h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjU:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jZ:Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj :sbŒc.amdgpu_bo_init”†”asbuh1hhj6:ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjx:h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj6:ubj)�”}”(hjh]”hŒ*”…”�”}”(hj†:h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj6:ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj“:h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj6:ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj2:ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjù9h²hh³j :h´M#ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjõ9h²hh³j :h´M#ubah}”(h]”jð9ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j :h´M#hjò9h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒinitialize memory manager”h]”hŒinitialize memory manager”…”�”}”(hj½:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M#hjº:h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjò9h²hh³j :h´M#ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jÕ:j¡jÕ:j¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hŒÔ**Parameters** ``struct amdgpu_device *adev`` amdgpu device object **Description** Calls amdgpu_ttm_init() to initialize amdgpu memory manager. **Return** 0 for success or a negative error code on failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjß:h]”hŒ Parameters”…”�”}”(hjá:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÝ:ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M'hjÙ:ubj )�”}”(hhh]”j)�”}”(hŒ4``struct amdgpu_device *adev`` amdgpu device object ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjþ:h]”hŒstruct amdgpu_device *adev”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjü:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M$hjø:ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device object”h]”hŒamdgpu device object”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j;h´M$hj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjø:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j;h´M$hjõ:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÙ:ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj9;h]”hŒ Description”…”�”}”(hj;;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj7;ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M&hjÙ:ubhÝ)�”}”(hŒh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÑ=ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj[=ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj"=h²hh³j4=h´M[ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj=h²hh³j4=h´M[ubah}”(h]”j=ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j4=h´M[hj=h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒset tiling flags”h]”hŒset tiling flags”…”�”}”(hj.>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M[hj+>h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj=h²hh³j4=h´M[ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jF>j¡jF>j¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hX<**Parameters** ``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object ``u64 tiling_flags`` new flags **Description** Sets buffer object's tiling flags with the new one. Used by GEM ioctl or kernel driver to set the tiling flags on a buffer. **Return** 0 for success or a negative error code on failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjP>h]”hŒ Parameters”…”�”}”(hjR>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjN>ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M_hjJ>ubj )�”}”(hhh]”(j)�”}”(hŒ;``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hjo>h]”hŒstruct amdgpu_bo *bo”…”�”}”(hjq>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjm>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M\hji>ubj$)�”}”(hhh]”hÝ)�”}”(hŒ!:c:type:`amdgpu_bo` buffer object”h]”(h)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hjŽ>h]”hŒ amdgpu_bo”…”�”}”(hj�>h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjŒ>ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒ amdgpu_bo”uh1hh³j„>h´M\hjˆ>ubhŒ buffer object”…”�”}”(hjˆ>h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j„>h´M\hj…>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hji>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j„>h´M\hjf>ubj)�”}”(hŒ``u64 tiling_flags`` new flags ”h]”(j)�”}”(hŒ``u64 tiling_flags``”h]”j:)�”}”(hjÇ>h]”hŒu64 tiling_flags”…”�”}”(hjÉ>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÅ>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M]hjÁ>ubj$)�”}”(hhh]”hÝ)�”}”(hŒ new flags”h]”hŒ new flags”…”�”}”(hjà>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÜ>h´M]hjÝ>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÁ>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÜ>h´M]hjf>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjJ>ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj?h]”hŒ Description”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M_hjJ>ubhÝ)�”}”(hŒ{Sets buffer object's tiling flags with the new one. Used by GEM ioctl or kernel driver to set the tiling flags on a buffer.”h]”hŒ}Sets buffer object’s tiling flags with the new one. Used by GEM ioctl or kernel driver to set the tiling flags on a buffer.”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M^hjJ>ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj)?h]”hŒReturn”…”�”}”(hj+?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj'?ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MahjJ>ubhÝ)�”}”(hŒ20 for success or a negative error code on failure.”h]”hŒ20 for success or a negative error code on failure.”…”�”}”(hj??h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MbhjJ>ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ'amdgpu_bo_get_tiling_flags (C function)”Œc.amdgpu_bo_get_tiling_flags”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒIvoid amdgpu_bo_get_tiling_flags (struct amdgpu_bo *bo, u64 *tiling_flags)”h]”jn)�”}”(hŒHvoid amdgpu_bo_get_tiling_flags(struct amdgpu_bo *bo, u64 *tiling_flags)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjn?h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjj?h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Myubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}?h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjj?h²hh³j|?h´Myubj—)�”}”(hŒamdgpu_bo_get_tiling_flags”h]”j�)�”}”(hŒamdgpu_bo_get_tiling_flags”h]”hŒamdgpu_bo_get_tiling_flags”…”�”}”(hj�?h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj‹?ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjj?h²hh³j|?h´Myubj¸)�”}”(hŒ)(struct amdgpu_bo *bo, u64 *tiling_flags)”h]”(j¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj«?h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj§?ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¸?h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj§?ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hjÉ?h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÆ?ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jË?Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj‘?sbŒc.amdgpu_bo_get_tiling_flags”†”asbuh1hhj§?ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjé?h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj§?ubj)�”}”(hjh]”hŒ*”…”�”}”(hj÷?h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj§?ubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj§?ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj£?ubj¾)�”}”(hŒu64 *tiling_flags”h]”(h)�”}”(hhh]”j�)�”}”(hŒu64”h]”hŒu64”…”�”}”(hj @h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj@ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j"@Œmodname”NŒ classname”Njÿj)�”}”j]”jå?Œc.amdgpu_bo_get_tiling_flags”†”asbuh1hhj@ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj>@h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj@ubj)�”}”(hjh]”hŒ*”…”�”}”(hjL@h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj@ubj�)�”}”(hŒ tiling_flags”h]”hŒ tiling_flags”…”�”}”(hjY@h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj@ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj£?ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjj?h²hh³j|?h´Myubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjf?h²hh³j|?h´Myubah}”(h]”ja?ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j|?h´Myhjc?h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒget tiling flags”h]”hŒget tiling flags”…”�”}”(hjƒ@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Myhj€@h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjc?h²hh³j|?h´Myubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j›@j¡j›@j¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hŒñ**Parameters** ``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object ``u64 *tiling_flags`` returned flags **Description** Gets buffer object's tiling flags. Used by GEM ioctl or kernel driver to set the tiling flags on a buffer.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj¥@h]”hŒ Parameters”…”�”}”(hj§@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj£@ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M}hjŸ@ubj )�”}”(hhh]”(j)�”}”(hŒ;``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hjÄ@h]”hŒstruct amdgpu_bo *bo”…”�”}”(hjÆ@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÂ@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mzhj¾@ubj$)�”}”(hhh]”hÝ)�”}”(hŒ!:c:type:`amdgpu_bo` buffer object”h]”(h)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hjã@h]”hŒ amdgpu_bo”…”�”}”(hjå@h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjá@ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒ amdgpu_bo”uh1hh³jÙ@h´MzhjÝ@ubhŒ buffer object”…”�”}”(hjÝ@h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÙ@h´MzhjÚ@ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj¾@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÙ@h´Mzhj»@ubj)�”}”(hŒ%``u64 *tiling_flags`` returned flags ”h]”(j)�”}”(hŒ``u64 *tiling_flags``”h]”j:)�”}”(hjAh]”hŒu64 *tiling_flags”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjAubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M{hjAubj$)�”}”(hhh]”hÝ)�”}”(hŒreturned flags”h]”hŒreturned flags”…”�”}”(hj5Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j1Ah´M{hj2Aubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjAubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j1Ah´M{hj»@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjŸ@ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjWAh]”hŒ Description”…”�”}”(hjYAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjUAubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M}hjŸ@ubhÝ)�”}”(hŒjGets buffer object's tiling flags. Used by GEM ioctl or kernel driver to set the tiling flags on a buffer.”h]”hŒlGets buffer object’s tiling flags. Used by GEM ioctl or kernel driver to set the tiling flags on a buffer.”…”�”}”(hjmAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M|hjŸ@ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ#amdgpu_bo_set_metadata (C function)”Œc.amdgpu_bo_set_metadata”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒdint amdgpu_bo_set_metadata (struct amdgpu_bo *bo, void *metadata, u32 metadata_size, uint64_t flags)”h]”jn)�”}”(hŒcint amdgpu_bo_set_metadata(struct amdgpu_bo *bo, void *metadata, u32 metadata_size, uint64_t flags)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjœAh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj˜Ah²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M”ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj«Ah²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj˜Ah²hh³jªAh´M”ubj—)�”}”(hŒamdgpu_bo_set_metadata”h]”j�)�”}”(hŒamdgpu_bo_set_metadata”h]”hŒamdgpu_bo_set_metadata”…”�”}”(hj½Ah²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¹Aubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj˜Ah²hh³jªAh´M”ubj¸)�”}”(hŒI(struct amdgpu_bo *bo, void *metadata, u32 metadata_size, uint64_t flags)”h]”(j¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÙAh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÕAubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæAh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÕAubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hj÷Ah²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjôAubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jùAŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj¿AsbŒc.amdgpu_bo_set_metadata”†”asbuh1hhjÕAubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÕAubj)�”}”(hjh]”hŒ*”…”�”}”(hj%Bh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÕAubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hj2Bh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÕAubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÑAubj¾)�”}”(hŒvoid *metadata”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjKBh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjGBubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjYBh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjGBubj)�”}”(hjh]”hŒ*”…”�”}”(hjgBh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjGBubj�)�”}”(hŒmetadata”h]”hŒmetadata”…”�”}”(hjtBh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjGBubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÑAubj¾)�”}”(hŒu32 metadata_size”h]”(h)�”}”(hhh]”j�)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj�Bh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj�Bubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j’BŒmodname”NŒ classname”Njÿj)�”}”j]”jBŒc.amdgpu_bo_set_metadata”†”asbuh1hhj‰Bubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®Bh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj‰Bubj�)�”}”(hŒ metadata_size”h]”hŒ metadata_size”…”�”}”(hj¼Bh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj‰Bubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÑAubj¾)�”}”(hŒuint64_t flags”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hjØBh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÕBubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÚBŒmodname”NŒ classname”Njÿj)�”}”j]”jBŒc.amdgpu_bo_set_metadata”†”asbuh1hhjÑBubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjöBh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÑBubj�)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÑBubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÑAubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj˜Ah²hh³jªAh´M”ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj”Ah²hh³jªAh´M”ubah}”(h]”j�Aah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jªAh´M”hj‘Ah²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ set metadata”h]”hŒ set metadata”…”�”}”(hj.Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M”hj+Ch²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj‘Ah²hh³jªAh´M”ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jFCj¡jFCj¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hXj**Parameters** ``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object ``void *metadata`` new metadata ``u32 metadata_size`` size of the new metadata ``uint64_t flags`` flags of the new metadata **Description** Sets buffer object's metadata, its size and flags. Used via GEM ioctl. **Return** 0 for success or a negative error code on failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjPCh]”hŒ Parameters”…”�”}”(hjRCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjNCubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M˜hjJCubj )�”}”(hhh]”(j)�”}”(hŒ;``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hjoCh]”hŒstruct amdgpu_bo *bo”…”�”}”(hjqCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjmCubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M•hjiCubj$)�”}”(hhh]”hÝ)�”}”(hŒ!:c:type:`amdgpu_bo` buffer object”h]”(h)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hjŽCh]”hŒ amdgpu_bo”…”�”}”(hj�Ch²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjŒCubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒ amdgpu_bo”uh1hh³j„Ch´M•hjˆCubhŒ buffer object”…”�”}”(hjˆCh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j„Ch´M•hj…Cubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjiCubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j„Ch´M•hjfCubj)�”}”(hŒ ``void *metadata`` new metadata ”h]”(j)�”}”(hŒ``void *metadata``”h]”j:)�”}”(hjÇCh]”hŒvoid *metadata”…”�”}”(hjÉCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÅCubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M–hjÁCubj$)�”}”(hhh]”hÝ)�”}”(hŒ new metadata”h]”hŒ new metadata”…”�”}”(hjàCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÜCh´M–hjÝCubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÁCubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÜCh´M–hjfCubj)�”}”(hŒ/``u32 metadata_size`` size of the new metadata ”h]”(j)�”}”(hŒ``u32 metadata_size``”h]”j:)�”}”(hjDh]”hŒu32 metadata_size”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjþCubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M—hjúCubj$)�”}”(hhh]”hÝ)�”}”(hŒsize of the new metadata”h]”hŒsize of the new metadata”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jDh´M—hjDubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjúCubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jDh´M—hjfCubj)�”}”(hŒ-``uint64_t flags`` flags of the new metadata ”h]”(j)�”}”(hŒ``uint64_t flags``”h]”j:)�”}”(hj9Dh]”hŒuint64_t flags”…”�”}”(hj;Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj7Dubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M˜hj3Dubj$)�”}”(hhh]”hÝ)�”}”(hŒflags of the new metadata”h]”hŒflags of the new metadata”…”�”}”(hjRDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jNDh´M˜hjODubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj3Dubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jNDh´M˜hjfCubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjJCubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjtDh]”hŒ Description”…”�”}”(hjvDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjrDubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MšhjJCubhÝ)�”}”(hŒFSets buffer object's metadata, its size and flags. Used via GEM ioctl.”h]”hŒHSets buffer object’s metadata, its size and flags. Used via GEM ioctl.”…”�”}”(hjŠDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M™hjJCubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj›Dh]”hŒReturn”…”�”}”(hj�Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj™Dubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MœhjJCubhÝ)�”}”(hŒ20 for success or a negative error code on failure.”h]”hŒ20 for success or a negative error code on failure.”…”�”}”(hj±Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M�hjJCubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ#amdgpu_bo_get_metadata (C function)”Œc.amdgpu_bo_get_metadata”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ}int amdgpu_bo_get_metadata (struct amdgpu_bo *bo, void *buffer, size_t buffer_size, uint32_t *metadata_size, uint64_t *flags)”h]”jn)�”}”(hŒ|int amdgpu_bo_get_metadata(struct amdgpu_bo *bo, void *buffer, size_t buffer_size, uint32_t *metadata_size, uint64_t *flags)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjàDh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÜDh²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÁubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjïDh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÜDh²hh³jîDh´MÁubj—)�”}”(hŒamdgpu_bo_get_metadata”h]”j�)�”}”(hŒamdgpu_bo_get_metadata”h]”hŒamdgpu_bo_get_metadata”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjýDubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjÜDh²hh³jîDh´MÁubj¸)�”}”(hŒb(struct amdgpu_bo *bo, void *buffer, size_t buffer_size, uint32_t *metadata_size, uint64_t *flags)”h]”(j¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjEubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj*Eh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjEubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hj;Eh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj8Eubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j=EŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjEsbŒc.amdgpu_bo_get_metadata”†”asbuh1hhjEubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj[Eh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjEubj)�”}”(hjh]”hŒ*”…”�”}”(hjiEh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjEubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjvEh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjEubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjEubj¾)�”}”(hŒ void *buffer”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj�Eh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj‹Eubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�Eh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj‹Eubj)�”}”(hjh]”hŒ*”…”�”}”(hj«Eh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj‹Eubj�)�”}”(hŒbuffer”h]”hŒbuffer”…”�”}”(hj¸Eh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj‹Eubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjEubj¾)�”}”(hŒsize_t buffer_size”h]”(h)�”}”(hhh]”j�)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjÔEh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÑEubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÖEŒmodname”NŒ classname”Njÿj)�”}”j]”jWEŒc.amdgpu_bo_get_metadata”†”asbuh1hhjÍEubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjòEh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÍEubj�)�”}”(hŒ buffer_size”h]”hŒ buffer_size”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÍEubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjEubj¾)�”}”(hŒuint32_t *metadata_size”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint32_t”h]”hŒuint32_t”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjFubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jFŒmodname”NŒ classname”Njÿj)�”}”j]”jWEŒc.amdgpu_bo_get_metadata”†”asbuh1hhjFubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:Fh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjFubj)�”}”(hjh]”hŒ*”…”�”}”(hjHFh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjFubj�)�”}”(hŒ metadata_size”h]”hŒ metadata_size”…”�”}”(hjUFh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjFubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjEubj¾)�”}”(hŒuint64_t *flags”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hjqFh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjnFubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jsFŒmodname”NŒ classname”Njÿj)�”}”j]”jWEŒc.amdgpu_bo_get_metadata”†”asbuh1hhjjFubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�Fh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjjFubj)�”}”(hjh]”hŒ*”…”�”}”(hj�Fh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjjFubj�)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjªFh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjjFubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjEubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjÜDh²hh³jîDh´MÁubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjØDh²hh³jîDh´MÁubah}”(h]”jÓDah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jîDh´MÁhjÕDh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ get metadata”h]”hŒ get metadata”…”�”}”(hjÔFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÁhjÑFh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÕDh²hh³jîDh´MÁubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jìFj¡jìFj¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hXÝ**Parameters** ``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object ``void *buffer`` returned metadata ``size_t buffer_size`` size of the buffer ``uint32_t *metadata_size`` size of the returned metadata ``uint64_t *flags`` flags of the returned metadata **Description** Gets buffer object's metadata, its size and flags. buffer_size shall not be less than metadata_size. Used via GEM ioctl. **Return** 0 for success or a negative error code on failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjöFh]”hŒ Parameters”…”�”}”(hjøFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjôFubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÅhjðFubj )�”}”(hhh]”(j)�”}”(hŒ;``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hjGh]”hŒstruct amdgpu_bo *bo”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÂhjGubj$)�”}”(hhh]”hÝ)�”}”(hŒ!:c:type:`amdgpu_bo` buffer object”h]”(h)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hj4Gh]”hŒ amdgpu_bo”…”�”}”(hj6Gh²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj2Gubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒ amdgpu_bo”uh1hh³j*Gh´MÂhj.GubhŒ buffer object”…”�”}”(hj.Gh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j*Gh´MÂhj+Gubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjGubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j*Gh´MÂhj Gubj)�”}”(hŒ#``void *buffer`` returned metadata ”h]”(j)�”}”(hŒ``void *buffer``”h]”j:)�”}”(hjmGh]”hŒ void *buffer”…”�”}”(hjoGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjkGubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÃhjgGubj$)�”}”(hhh]”hÝ)�”}”(hŒreturned metadata”h]”hŒreturned metadata”…”�”}”(hj†Gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j‚Gh´MÃhjƒGubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjgGubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‚Gh´MÃhj Gubj)�”}”(hŒ*``size_t buffer_size`` size of the buffer ”h]”(j)�”}”(hŒ``size_t buffer_size``”h]”j:)�”}”(hj¦Gh]”hŒsize_t buffer_size”…”�”}”(hj¨Gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj¤Gubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÄhj Gubj$)�”}”(hhh]”hÝ)�”}”(hŒsize of the buffer”h]”hŒsize of the buffer”…”�”}”(hj¿Gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j»Gh´MÄhj¼Gubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj Gubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j»Gh´MÄhj Gubj)�”}”(hŒ:``uint32_t *metadata_size`` size of the returned metadata ”h]”(j)�”}”(hŒ``uint32_t *metadata_size``”h]”j:)�”}”(hjßGh]”hŒuint32_t *metadata_size”…”�”}”(hjáGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÝGubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÅhjÙGubj$)�”}”(hhh]”hÝ)�”}”(hŒsize of the returned metadata”h]”hŒsize of the returned metadata”…”�”}”(hjøGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jôGh´MÅhjõGubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÙGubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jôGh´MÅhj Gubj)�”}”(hŒ3``uint64_t *flags`` flags of the returned metadata ”h]”(j)�”}”(hŒ``uint64_t *flags``”h]”j:)�”}”(hjHh]”hŒuint64_t *flags”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjHubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÆhjHubj$)�”}”(hhh]”hÝ)�”}”(hŒflags of the returned metadata”h]”hŒflags of the returned metadata”…”�”}”(hj1Hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j-Hh´MÆhj.Hubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjHubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j-Hh´MÆhj Gubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjðFubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjSHh]”hŒ Description”…”�”}”(hjUHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjQHubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÈhjðFubhÝ)�”}”(hŒxGets buffer object's metadata, its size and flags. buffer_size shall not be less than metadata_size. Used via GEM ioctl.”h]”hŒzGets buffer object’s metadata, its size and flags. buffer_size shall not be less than metadata_size. Used via GEM ioctl.”…”�”}”(hjiHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÇhjðFubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjzHh]”hŒReturn”…”�”}”(hj|Hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjxHubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MËhjðFubhÝ)�”}”(hŒ20 for success or a negative error code on failure.”h]”hŒ20 for success or a negative error code on failure.”…”�”}”(hj�Hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÌhjðFubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ"amdgpu_bo_move_notify (C function)”Œc.amdgpu_bo_move_notify”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒcvoid amdgpu_bo_move_notify (struct ttm_buffer_object *bo, bool evict, struct ttm_resource *new_mem)”h]”jn)�”}”(hŒbvoid amdgpu_bo_move_notify(struct ttm_buffer_object *bo, bool evict, struct ttm_resource *new_mem)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¿Hh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj»Hh²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mìubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎHh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj»Hh²hh³jÍHh´Mìubj—)�”}”(hŒamdgpu_bo_move_notify”h]”j�)�”}”(hŒamdgpu_bo_move_notify”h]”hŒamdgpu_bo_move_notify”…”�”}”(hjàHh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÜHubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj»Hh²hh³jÍHh´Mìubj¸)�”}”(hŒH(struct ttm_buffer_object *bo, bool evict, struct ttm_resource *new_mem)”h]”(j¾)�”}”(hŒstruct ttm_buffer_object *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjüHh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjøHubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj Ih²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjøHubh)�”}”(hhh]”j�)�”}”(hŒttm_buffer_object”h]”hŒttm_buffer_object”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjIubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jIŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjâHsbŒc.amdgpu_bo_move_notify”†”asbuh1hhjøHubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:Ih²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjøHubj)�”}”(hjh]”hŒ*”…”�”}”(hjHIh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjøHubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjUIh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjøHubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjôHubj¾)�”}”(hŒ bool evict”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hjnIh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjjIubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{Ih²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjjIubj�)�”}”(hŒevict”h]”hŒevict”…”�”}”(hj‰Ih²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjjIubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjôHubj¾)�”}”(hŒstruct ttm_resource *new_mem”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj¢Ih²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjžIubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¯Ih²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjžIubh)�”}”(hhh]”j�)�”}”(hŒ ttm_resource”h]”hŒ ttm_resource”…”�”}”(hjÀIh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj½Iubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÂIŒmodname”NŒ classname”Njÿj)�”}”j]”j6IŒc.amdgpu_bo_move_notify”†”asbuh1hhjžIubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞIh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjžIubj)�”}”(hjh]”hŒ*”…”�”}”(hjìIh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjžIubj�)�”}”(hŒnew_mem”h]”hŒnew_mem”…”�”}”(hjùIh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjžIubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjôHubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj»Hh²hh³jÍHh´Mìubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj·Hh²hh³jÍHh´Mìubah}”(h]”j²Hah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÍHh´Mìhj´Hh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ notification about a memory move”h]”hŒ notification about a memory move”…”�”}”(hj#Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mìhj Jh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj´Hh²hh³jÍHh´Mìubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j;Jj¡j;Jj¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hX—**Parameters** ``struct ttm_buffer_object *bo`` pointer to a buffer object ``bool evict`` if this move is evicting the buffer from the graphics address space ``struct ttm_resource *new_mem`` new resource for backing the BO **Description** Marks the corresponding :c:type:`amdgpu_bo` buffer object as invalid, also performs bookkeeping. TTM driver callback which is called when ttm moves a buffer.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjEJh]”hŒ Parameters”…”�”}”(hjGJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjCJubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mðhj?Jubj )�”}”(hhh]”(j)�”}”(hŒ<``struct ttm_buffer_object *bo`` pointer to a buffer object ”h]”(j)�”}”(hŒ ``struct ttm_buffer_object *bo``”h]”j:)�”}”(hjdJh]”hŒstruct ttm_buffer_object *bo”…”�”}”(hjfJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjbJubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Míhj^Jubj$)�”}”(hhh]”hÝ)�”}”(hŒpointer to a buffer object”h]”hŒpointer to a buffer object”…”�”}”(hj}Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jyJh´MíhjzJubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj^Jubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jyJh´Míhj[Jubj)�”}”(hŒS``bool evict`` if this move is evicting the buffer from the graphics address space ”h]”(j)�”}”(hŒ``bool evict``”h]”j:)�”}”(hj�Jh]”hŒ bool evict”…”�”}”(hjŸJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj›Jubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mîhj—Jubj$)�”}”(hhh]”hÝ)�”}”(hŒCif this move is evicting the buffer from the graphics address space”h]”hŒCif this move is evicting the buffer from the graphics address space”…”�”}”(hj¶Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j²Jh´Mîhj³Jubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj—Jubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j²Jh´Mîhj[Jubj)�”}”(hŒA``struct ttm_resource *new_mem`` new resource for backing the BO ”h]”(j)�”}”(hŒ ``struct ttm_resource *new_mem``”h]”j:)�”}”(hjÖJh]”hŒstruct ttm_resource *new_mem”…”�”}”(hjØJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÔJubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MïhjÐJubj$)�”}”(hhh]”hÝ)�”}”(hŒnew resource for backing the BO”h]”hŒnew resource for backing the BO”…”�”}”(hjïJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jëJh´MïhjìJubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÐJubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jëJh´Mïhj[Jubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj?JubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjKh]”hŒ Description”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjKubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mñhj?JubhÝ)�”}”(hŒ�Marks the corresponding :c:type:`amdgpu_bo` buffer object as invalid, also performs bookkeeping. TTM driver callback which is called when ttm moves a buffer.”h]”(hŒMarks the corresponding ”…”�”}”(hj'Kh²hh³Nh´Nubh)�”}”(hŒ:c:type:`amdgpu_bo`”h]”j:)�”}”(hj1Kh]”hŒ amdgpu_bo”…”�”}”(hj3Kh²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj/Kubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒ amdgpu_bo”uh1hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mðhj'KubhŒr buffer object as invalid, also performs bookkeeping. TTM driver callback which is called when ttm moves a buffer.”…”�”}”(hj'Kh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jNKh´Mðhj?Jubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ%amdgpu_bo_release_notify (C function)”Œc.amdgpu_bo_release_notify”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒOh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjîNubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjKOh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjîNubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjêNubj¾)�”}”(hŒstruct dma_fence *fence”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjdOh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj`Oubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjqOh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj`Oubh)�”}”(hhh]”j�)�”}”(hŒ dma_fence”h]”hŒ dma_fence”…”�”}”(hj‚Oh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjOubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j„OŒmodname”NŒ classname”Njÿj)�”}”j]”j,OŒc.amdgpu_bo_fence”†”asbuh1hhj`Oubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj Oh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj`Oubj)�”}”(hjh]”hŒ*”…”�”}”(hj®Oh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj`Oubj�)�”}”(hŒfence”h]”hŒfence”…”�”}”(hj»Oh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj`Oubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjêNubj¾)�”}”(hŒ bool shared”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hjÔOh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÐOubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjáOh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÐOubj�)�”}”(hŒshared”h]”hŒshared”…”�”}”(hjïOh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÐOubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjêNubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj±Nh²hh³jÃNh´M{ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj­Nh²hh³jÃNh´M{ubah}”(h]”j¨Nah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÃNh´M{hjªNh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒadd fence to buffer object”h]”hŒadd fence to buffer object”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M{hjPh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjªNh²hh³jÃNh´M{ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j1Pj¡j1Pj¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hŒ¨**Parameters** ``struct amdgpu_bo *bo`` buffer object in question ``struct dma_fence *fence`` fence to add ``bool shared`` true if fence should be added shared”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj;Ph]”hŒ Parameters”…”�”}”(hj=Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj9Pubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mhj5Pubj )�”}”(hhh]”(j)�”}”(hŒ3``struct amdgpu_bo *bo`` buffer object in question ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hjZPh]”hŒstruct amdgpu_bo *bo”…”�”}”(hj\Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjXPubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M}hjTPubj$)�”}”(hhh]”hÝ)�”}”(hŒbuffer object in question”h]”hŒbuffer object in question”…”�”}”(hjsPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³joPh´M}hjpPubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjTPubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³joPh´M}hjQPubj)�”}”(hŒ)``struct dma_fence *fence`` fence to add ”h]”(j)�”}”(hŒ``struct dma_fence *fence``”h]”j:)�”}”(hj“Ph]”hŒstruct dma_fence *fence”…”�”}”(hj•Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj‘Pubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M~hj�Pubj$)�”}”(hhh]”hÝ)�”}”(hŒ fence to add”h]”hŒ fence to add”…”�”}”(hj¬Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¨Ph´M~hj©Pubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj�Pubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¨Ph´M~hjQPubj)�”}”(hŒ4``bool shared`` true if fence should be added shared”h]”(j)�”}”(hŒ``bool shared``”h]”j:)�”}”(hjÌPh]”hŒ bool shared”…”�”}”(hjÎPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÊPubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M€hjÆPubj$)�”}”(hhh]”hÝ)�”}”(hŒ$true if fence should be added shared”h]”hŒ$true if fence should be added shared”…”�”}”(hjåPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MhjâPubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÆPubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jáPh´M€hjQPubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj5Pubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ%amdgpu_bo_sync_wait_resv (C function)”Œc.amdgpu_bo_sync_wait_resv”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ‰int amdgpu_bo_sync_wait_resv (struct amdgpu_device *adev, struct dma_resv *resv, enum amdgpu_sync_mode sync_mode, void *owner, bool intr)”h]”jn)�”}”(hŒˆint amdgpu_bo_sync_wait_resv(struct amdgpu_device *adev, struct dma_resv *resv, enum amdgpu_sync_mode sync_mode, void *owner, bool intr)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj&Qh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj"Qh²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M”ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5Qh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj"Qh²hh³j4Qh´M”ubj—)�”}”(hŒamdgpu_bo_sync_wait_resv”h]”j�)�”}”(hŒamdgpu_bo_sync_wait_resv”h]”hŒamdgpu_bo_sync_wait_resv”…”�”}”(hjGQh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjCQubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj"Qh²hh³j4Qh´M”ubj¸)�”}”(hŒl(struct amdgpu_device *adev, struct dma_resv *resv, enum amdgpu_sync_mode sync_mode, void *owner, bool intr)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjcQh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj_Qubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjpQh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj_Qubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj�Qh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj~Qubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jƒQŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjIQsbŒc.amdgpu_bo_sync_wait_resv”†”asbuh1hhj_Qubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡Qh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj_Qubj)�”}”(hjh]”hŒ*”…”�”}”(hj¯Qh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj_Qubj�•)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj¼Qh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj_Qubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj[Qubj¾)�”}”(hŒstruct dma_resv *resv”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÕQh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÑQubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâQh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÑQubh)�”}”(hhh]”j�)�”}”(hŒdma_resv”h]”hŒdma_resv”…”�”}”(hjóQh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjðQubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jõQŒmodname”NŒ classname”Njÿj)�”}”j]”j�QŒc.amdgpu_bo_sync_wait_resv”†”asbuh1hhjÑQubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÑQubj)�”}”(hjh]”hŒ*”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÑQubj�)�”}”(hŒresv”h]”hŒresv”…”�”}”(hj,Rh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÑQubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj[Qubj¾)�”}”(hŒenum amdgpu_sync_mode sync_mode”h]”(jÄ)�”}”(hŒenum”h]”hŒenum”…”�”}”(hjERh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjARubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjSRh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjARubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_sync_mode”h]”hŒamdgpu_sync_mode”…”�”}”(hjdRh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjaRubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jfRŒmodname”NŒ classname”Njÿj)�”}”j]”j�QŒc.amdgpu_bo_sync_wait_resv”†”asbuh1hhjARubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚Rh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjARubj�)�”}”(hŒ sync_mode”h]”hŒ sync_mode”…”�”}”(hj�Rh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjARubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj[Qubj¾)�”}”(hŒ void *owner”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj©Rh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj¥Rubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj·Rh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¥Rubj)�”}”(hjh]”hŒ*”…”�”}”(hjÅRh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¥Rubj�)�”}”(hŒowner”h]”hŒowner”…”�”}”(hjÒRh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¥Rubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj[Qubj¾)�”}”(hŒ bool intr”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hjëRh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjçRubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjøRh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjçRubj�)�”}”(hŒintr”h]”hŒintr”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjçRubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj[Qubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj"Qh²hh³j4Qh´M”ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjQh²hh³j4Qh´M”ubah}”(h]”jQah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j4Qh´M”hjQh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒWait for BO reservation fences”h]”hŒWait for BO reservation fences”…”�”}”(hj0Sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M”hj-Sh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjQh²hh³j4Qh´M”ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jHSj¡jHSj¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hXš**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer ``struct dma_resv *resv`` reservation object to sync to ``enum amdgpu_sync_mode sync_mode`` synchronization mode ``void *owner`` fence owner ``bool intr`` Whether the wait is interruptible **Description** Extract the fences from the reservation object and waits for them to finish. **Return** 0 on success, errno otherwise.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjRSh]”hŒ Parameters”…”�”}”(hjTSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjPSubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M˜hjLSubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjqSh]”hŒstruct amdgpu_device *adev”…”�”}”(hjsSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjoSubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M–hjkSubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device pointer”h]”hŒamdgpu device pointer”…”�”}”(hjŠSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j†Sh´M–hj‡Subah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjkSubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j†Sh´M–hjhSubj)�”}”(hŒ8``struct dma_resv *resv`` reservation object to sync to ”h]”(j)�”}”(hŒ``struct dma_resv *resv``”h]”j:)�”}”(hjªSh]”hŒstruct dma_resv *resv”…”�”}”(hj¬Sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj¨Subah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M—hj¤Subj$)�”}”(hhh]”hÝ)�”}”(hŒreservation object to sync to”h]”hŒreservation object to sync to”…”�”}”(hjÃSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¿Sh´M—hjÀSubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj¤Subeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¿Sh´M—hjhSubj)�”}”(hŒ9``enum amdgpu_sync_mode sync_mode`` synchronization mode ”h]”(j)�”}”(hŒ#``enum amdgpu_sync_mode sync_mode``”h]”j:)�”}”(hjãSh]”hŒenum amdgpu_sync_mode sync_mode”…”�”}”(hjåSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjáSubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M˜hjÝSubj$)�”}”(hhh]”hÝ)�”}”(hŒsynchronization mode”h]”hŒsynchronization mode”…”�”}”(hjüSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jøSh´M˜hjùSubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÝSubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jøSh´M˜hjhSubj)�”}”(hŒ``void *owner`` fence owner ”h]”(j)�”}”(hŒ``void *owner``”h]”j:)�”}”(hjTh]”hŒ void *owner”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjTubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M™hjTubj$)�”}”(hhh]”hÝ)�”}”(hŒ fence owner”h]”hŒ fence owner”…”�”}”(hj5Th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j1Th´M™hj2Tubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjTubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j1Th´M™hjhSubj)�”}”(hŒ0``bool intr`` Whether the wait is interruptible ”h]”(j)�”}”(hŒ ``bool intr``”h]”j:)�”}”(hjUTh]”hŒ bool intr”…”�”}”(hjWTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjSTubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MšhjOTubj$)�”}”(hhh]”hÝ)�”}”(hŒ!Whether the wait is interruptible”h]”hŒ!Whether the wait is interruptible”…”�”}”(hjnTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jjTh´MšhjkTubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjOTubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jjTh´MšhjhSubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjLSubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj�Th]”hŒ Description”…”�”}”(hj’Th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjŽTubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MœhjLSubhÝ)�”}”(hŒLExtract the fences from the reservation object and waits for them to finish.”h]”hŒLExtract the fences from the reservation object and waits for them to finish.”…”�”}”(hj¦Th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M›hjLSubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj·Th]”hŒReturn”…”�”}”(hj¹Th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjµTubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M�hjLSubhÝ)�”}”(hŒ0 on success, errno otherwise.”h]”hŒ0 on success, errno otherwise.”…”�”}”(hjÍTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MžhjLSubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ amdgpu_bo_sync_wait (C function)”Œc.amdgpu_bo_sync_wait”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒFint amdgpu_bo_sync_wait (struct amdgpu_bo *bo, void *owner, bool intr)”h]”jn)�”}”(hŒEint amdgpu_bo_sync_wait(struct amdgpu_bo *bo, void *owner, bool intr)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjüTh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjøTh²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M°ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj Uh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjøTh²hh³j Uh´M°ubj—)�”}”(hŒamdgpu_bo_sync_wait”h]”j�)�”}”(hŒamdgpu_bo_sync_wait”h]”hŒamdgpu_bo_sync_wait”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjUubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjøTh²hh³j Uh´M°ubj¸)�”}”(hŒ.(struct amdgpu_bo *bo, void *owner, bool intr)”h]”(j¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj9Uh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj5Uubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjFUh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj5Uubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hjWUh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjTUubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jYUŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjUsbŒc.amdgpu_bo_sync_wait”†”asbuh1hhj5Uubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwUh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj5Uubj)�”}”(hjh]”hŒ*”…”�”}”(hj…Uh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj5Uubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hj’Uh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj5Uubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj1Uubj¾)�”}”(hŒ void *owner”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj«Uh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj§Uubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¹Uh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj§Uubj)�”}”(hjh]”hŒ*”…”�”}”(hjÇUh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj§Uubj�)�”}”(hŒowner”h]”hŒowner”…”�”}”(hjÔUh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj§Uubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj1Uubj¾)�”}”(hŒ bool intr”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hjíUh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjéUubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjúUh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjéUubj�)�”}”(hŒintr”h]”hŒintr”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjéUubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj1Uubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjøTh²hh³j Uh´M°ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjôTh²hh³j Uh´M°ubah}”(h]”jïTah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j Uh´M°hjñTh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ$Wrapper for amdgpu_bo_sync_wait_resv”h]”hŒ$Wrapper for amdgpu_bo_sync_wait_resv”…”�”}”(hj2Vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M°hj/Vh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjñTh²hh³j Uh´M°ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jJVj¡jJVj¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hŒø**Parameters** ``struct amdgpu_bo *bo`` buffer object to wait for ``void *owner`` fence owner ``bool intr`` Whether the wait is interruptible **Description** Wrapper to wait for fences in a BO. **Return** 0 on success, errno otherwise.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjTVh]”hŒ Parameters”…”�”}”(hjVVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjRVubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M´hjNVubj )�”}”(hhh]”(j)�”}”(hŒ3``struct amdgpu_bo *bo`` buffer object to wait for ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hjsVh]”hŒstruct amdgpu_bo *bo”…”�”}”(hjuVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjqVubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M±hjmVubj$)�”}”(hhh]”hÝ)�”}”(hŒbuffer object to wait for”h]”hŒbuffer object to wait for”…”�”}”(hjŒVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jˆVh´M±hj‰Vubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjmVubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jˆVh´M±hjjVubj)�”}”(hŒ``void *owner`` fence owner ”h]”(j)�”}”(hŒ``void *owner``”h]”j:)�”}”(hj¬Vh]”hŒ void *owner”…”�”}”(hj®Vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjªVubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M²hj¦Vubj$)�”}”(hhh]”hÝ)�”}”(hŒ fence owner”h]”hŒ fence owner”…”�”}”(hjÅVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÁVh´M²hjÂVubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj¦Vubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÁVh´M²hjjVubj)�”}”(hŒ0``bool intr`` Whether the wait is interruptible ”h]”(j)�”}”(hŒ ``bool intr``”h]”j:)�”}”(hjåVh]”hŒ bool intr”…”�”}”(hjçVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjãVubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M³hjßVubj$)�”}”(hhh]”hÝ)�”}”(hŒ!Whether the wait is interruptible”h]”hŒ!Whether the wait is interruptible”…”�”}”(hjþVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³júVh´M³hjûVubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjßVubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³júVh´M³hjjVubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjNVubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj Wh]”hŒ Description”…”�”}”(hj"Wh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjWubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MµhjNVubhÝ)�”}”(hŒ#Wrapper to wait for fences in a BO.”h]”hŒ#Wrapper to wait for fences in a BO.”…”�”}”(hj6Wh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M´hjNVubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjGWh]”hŒReturn”…”�”}”(hjIWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjEWubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M¶hjNVubhÝ)�”}”(hŒ0 on success, errno otherwise.”h]”hŒ0 on success, errno otherwise.”…”�”}”(hj]Wh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M¶hjNVubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ!amdgpu_bo_gpu_offset (C function)”Œc.amdgpu_bo_gpu_offset”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ/u64 amdgpu_bo_gpu_offset (struct amdgpu_bo *bo)”h]”jn)�”}”(hŒ.u64 amdgpu_bo_gpu_offset(struct amdgpu_bo *bo)”h]”(h)�”}”(hhh]”j�)�”}”(hŒu64”h]”hŒu64”…”�”}”(hj�Wh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjŒWubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j‘WŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒamdgpu_bo_gpu_offset”sbŒc.amdgpu_bo_gpu_offset”†”asbuh1hhjˆWh²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÂubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj±Wh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjˆWh²hh³j°Wh´MÂubj—)�”}”(hŒamdgpu_bo_gpu_offset”h]”j�)�”}”(hj­Wh]”hŒamdgpu_bo_gpu_offset”…”�”}”(hjÃWh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¿Wubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjˆWh²hh³j°Wh´MÂubj¸)�”}”(hŒ(struct amdgpu_bo *bo)”h]”j¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÞWh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÚWubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjëWh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÚWubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hjüWh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjùWubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jþWŒmodname”NŒ classname”Njÿj)�”}”j]”j«WŒc.amdgpu_bo_gpu_offset”†”asbuh1hhjÚWubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÚWubj)�”}”(hjh]”hŒ*”…”�”}”(hj(Xh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÚWubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hj5Xh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÚWubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÖWubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjˆWh²hh³j°Wh´MÂubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj„Wh²hh³j°Wh´MÂubah}”(h]”jWah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j°Wh´MÂhj�Wh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒreturn GPU offset of bo”h]”hŒreturn GPU offset of bo”…”�”}”(hj_Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÂhj\Xh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj�Wh²hh³j°Wh´MÂubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jwXj¡jwXj¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hX**Parameters** ``struct amdgpu_bo *bo`` amdgpu object for which we query the offset **Note** object should either be pinned or reserved when calling this function, it might be useful to add check for this for debugging. **Return** current GPU offset of the object.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj�Xh]”hŒ Parameters”…”�”}”(hjƒXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjXubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÆhj{Xubj )�”}”(hhh]”j)�”}”(hŒE``struct amdgpu_bo *bo`` amdgpu object for which we query the offset ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hj Xh]”hŒstruct amdgpu_bo *bo”…”�”}”(hj¢Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjžXubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÃhjšXubj$)�”}”(hhh]”hÝ)�”}”(hŒ+amdgpu object for which we query the offset”h]”hŒ+amdgpu object for which we query the offset”…”�”}”(hj¹Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jµXh´MÃhj¶Xubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjšXubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jµXh´MÃhj—Xubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj{XubhÝ)�”}”(hŒ**Note**”h]”jµ)�”}”(hjÛXh]”hŒNote”…”�”}”(hjÝXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÙXubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÅhj{XubhÝ)�”}”(hŒ~object should either be pinned or reserved when calling this function, it might be useful to add check for this for debugging.”h]”hŒ~object should either be pinned or reserved when calling this function, it might be useful to add check for this for debugging.”…”�”}”(hjñXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÅhj{XubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjYh]”hŒReturn”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjYubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÈhj{XubhÝ)�”}”(hŒ!current GPU offset of the object.”h]”hŒ!current GPU offset of the object.”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÈhj{Xubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ#amdgpu_bo_fb_aper_addr (C function)”Œc.amdgpu_bo_fb_aper_addr”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ1u64 amdgpu_bo_fb_aper_addr (struct amdgpu_bo *bo)”h]”jn)�”}”(hŒ0u64 amdgpu_bo_fb_aper_addr(struct amdgpu_bo *bo)”h]”(h)�”}”(hhh]”j�)�”}”(hŒu64”h]”hŒu64”…”�”}”(hjJYh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjGYubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jLYŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒamdgpu_bo_fb_aper_addr”sbŒc.amdgpu_bo_fb_aper_addr”†”asbuh1hhjCYh²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MØubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjlYh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjCYh²hh³jkYh´MØubj—)�”}”(hŒamdgpu_bo_fb_aper_addr”h]”j�)�”}”(hjhYh]”hŒamdgpu_bo_fb_aper_addr”…”�”}”(hj~Yh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjzYubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjCYh²hh³jkYh´MØubj¸)�”}”(hŒ(struct amdgpu_bo *bo)”h]”j¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj™Yh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj•Yubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦Yh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj•Yubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hj·Yh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj´Yubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j¹YŒmodname”NŒ classname”Njÿj)�”}”j]”jfYŒc.amdgpu_bo_fb_aper_addr”†”asbuh1hhj•Yubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÕYh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj•Yubj)�”}”(hjh]”hŒ*”…”�”}”(hjãYh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj•Yubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjðYh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj•Yubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj‘Yubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjCYh²hh³jkYh´MØubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj?Yh²hh³jkYh´MØubah}”(h]”j:Yah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jkYh´MØhjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj:Zubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÜhj6Zubj )�”}”(hhh]”j)�”}”(hŒQ``struct amdgpu_bo *bo`` amdgpu VRAM buffer object for which we query the offset ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hj[Zh]”hŒstruct amdgpu_bo *bo”…”�”}”(hj]Zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjYZubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÙhjUZubj$)�”}”(hhh]”hÝ)�”}”(hŒ7amdgpu VRAM buffer object for which we query the offset”h]”hŒ7amdgpu VRAM buffer object for which we query the offset”…”�”}”(hjtZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jpZh´MÙhjqZubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjUZubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jpZh´MÙhjRZubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj6ZubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj–Zh]”hŒReturn”…”�”}”(hj˜Zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj”Zubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÛhj6ZubhÝ)�”}”(hŒ-current FB aperture GPU offset of the object.”h]”hŒ-current FB aperture GPU offset of the object.”…”�”}”(hj¬Zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MÛhj6Zubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ*amdgpu_bo_gpu_offset_no_check (C function)”Œc.amdgpu_bo_gpu_offset_no_check”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ8u64 amdgpu_bo_gpu_offset_no_check (struct amdgpu_bo *bo)”h]”jn)�”}”(hŒ7u64 amdgpu_bo_gpu_offset_no_check(struct amdgpu_bo *bo)”h]”(h)�”}”(hhh]”j�)�”}”(hŒu64”h]”hŒu64”…”�”}”(hjÞZh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÛZubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jàZŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒamdgpu_bo_gpu_offset_no_check”sbŒc.amdgpu_bo_gpu_offset_no_check”†”asbuh1hhj×Zh²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mìubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj×Zh²hh³jÿZh´Mìubj—)�”}”(hŒamdgpu_bo_gpu_offset_no_check”h]”j�)�”}”(hjüZh]”hŒamdgpu_bo_gpu_offset_no_check”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj[ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj×Zh²hh³jÿZh´Mìubj¸)�”}”(hŒ(struct amdgpu_bo *bo)”h]”j¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj-[h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj)[ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:[h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj)[ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hjK[h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjH[ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jM[Œmodname”NŒ classname”Njÿj)�”}”j]”júZŒc.amdgpu_bo_gpu_offset_no_check”†”asbuh1hhj)[ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hji[h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj)[ubj)�”}”(hjh]”hŒ*”…”�”}”(hjw[h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj)[ubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hj„[h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj)[ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj%[ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj×Zh²hh³jÿZh´Mìubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjÓZh²hh³jÿZh´Mìubah}”(h]”jÎZah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÿZh´MìhjÐZh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒreturn GPU offset of bo”h]”hŒreturn GPU offset of bo”…”�”}”(hj®[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Mìhj«[h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÐZh²hh³jÿZh´Mìubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jÆ[j¡jÆ[j¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hŒž**Parameters** ``struct amdgpu_bo *bo`` amdgpu object for which we query the offset **Return** current GPU offset of the object without raising warnings.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjÐ[h]”hŒ Parameters”…”�”}”(hjÒ[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÎ[ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MðhjÊ[ubj )�”}”(hhh]”j)�”}”(hŒE``struct amdgpu_bo *bo`` amdgpu object for which we query the offset ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hjï[h]”hŒstruct amdgpu_bo *bo”…”�”}”(hjñ[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjí[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´Míhjé[ubj$)�”}”(hhh]”hÝ)�”}”(hŒ+amdgpu object for which we query the offset”h]”hŒ+amdgpu object for which we query the offset”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j\h´Míhj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjé[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j\h´Míhjæ[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÊ[ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj*\h]”hŒReturn”…”�”}”(hj,\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj(\ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MïhjÊ[ubhÝ)�”}”(hŒ:current GPU offset of the object without raising warnings.”h]”hŒ:current GPU offset of the object without raising warnings.”…”�”}”(hj@\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MïhjÊ[ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ*amdgpu_bo_mem_stats_placement (C function)”Œc.amdgpu_bo_mem_stats_placement”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ=uint32_t amdgpu_bo_mem_stats_placement (struct amdgpu_bo *bo)”h]”jn)�”}”(hŒ` **Return** Which of the allowed domains is preferred for allocating the BO.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjg_h]”hŒ Parameters”…”�”}”(hji_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hje_ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M6hja_ubj )�”}”(hhh]”(j)�”}”(hŒ4``struct amdgpu_device *adev`` amdgpu device object ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hj†_h]”hŒstruct amdgpu_device *adev”…”�”}”(hjˆ_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj„_ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M3hj€_ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device object”h]”hŒamdgpu device object”…”�”}”(hjŸ_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j›_h´M3hjœ_ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj€_ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j›_h´M3hj}_ubj)�”}”(hŒJ``uint32_t domain`` allowed :ref:`memory domains ` ”h]”(j)�”}”(hŒ``uint32_t domain``”h]”j:)�”}”(hj¿_h]”hŒuint32_t domain”…”�”}”(hjÁ_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj½_ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M4hj¹_ubj$)�”}”(hhh]”hÝ)�”}”(hŒ5allowed :ref:`memory domains `”h]”(hŒallowed ”…”�”}”(hjØ_h²hh³Nh´Nubh)�”}”(hŒ-:ref:`memory domains `”h]”jñ)�”}”(hjâ_h]”hŒmemory domains”…”�”}”(hjä_h²hh³Nh´Nubah}”(h]”h ]”(jüŒstd”Œstd-ref”eh"]”h$]”h&]”uh1jðhjà_ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”jî_Œreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjŒamdgpu_memory_domains”uh1hh³jÔ_h´M4hjØ_ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÔ_h´M4hjÕ_ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj¹_ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÔ_h´M4hj}_ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhja_ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj`h]”hŒReturn”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M6hja_ubhÝ)�”}”(hŒ@Which of the allowed domains is preferred for allocating the BO.”h]”hŒ@Which of the allowed domains is preferred for allocating the BO.”…”�”}”(hj0`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´M6hja_ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ!amdgpu_bo_print_info (C function)”Œc.amdgpu_bo_print_info”hNt”auh1jQhj h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒKu64 amdgpu_bo_print_info (int id, struct amdgpu_bo *bo, struct seq_file *m)”h]”jn)�”}”(hŒJu64 amdgpu_bo_print_info(int id, struct amdgpu_bo *bo, struct seq_file *m)”h]”(h)�”}”(hhh]”j�)�”}”(hŒu64”h]”hŒu64”…”�”}”(hjb`h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj_`ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jd`Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒamdgpu_bo_print_info”sbŒc.amdgpu_bo_print_info”†”asbuh1hhj[`h²hh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MNubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„`h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj[`h²hh³jƒ`h´MNubj—)�”}”(hŒamdgpu_bo_print_info”h]”j�)�”}”(hj€`h]”hŒamdgpu_bo_print_info”…”�”}”(hj–`h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj’`ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj[`h²hh³jƒ`h´MNubj¸)�”}”(hŒ2(int id, struct amdgpu_bo *bo, struct seq_file *m)”h]”(j¾)�”}”(hŒint id”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj±`h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj­`ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¿`h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj­`ubj�)�”}”(hŒid”h]”hŒid”…”�”}”(hjÍ`h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj­`ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj©`ubj¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjæ`h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjâ`ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjó`h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjâ`ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjaubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jaŒmodname”NŒ classname”Njÿj)�”}”j]”j~`Œc.amdgpu_bo_print_info”†”asbuh1hhjâ`ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"ah²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjâ`ubj)�”}”(hjh]”hŒ*”…”�”}”(hj0ah²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjâ`ubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hj=ah²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjâ`ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj©`ubj¾)�”}”(hŒstruct seq_file *m”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjVah²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjRaubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjcah²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjRaubh)�”}”(hhh]”j�)�”}”(hŒseq_file”h]”hŒseq_file”…”�”}”(hjtah²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjqaubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jvaŒmodname”NŒ classname”Njÿj)�”}”j]”j~`Œc.amdgpu_bo_print_info”†”asbuh1hhjRaubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’ah²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjRaubj)�”}”(hjh]”hŒ*”…”�”}”(hj ah²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjRaubj�)�”}”(hŒm”h]”hŒm”…”�”}”(hj­ah²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjRaubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj©`ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj[`h²hh³jƒ`h´MNubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjW`h²hh³jƒ`h´MNubah}”(h]”jR`ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jƒ`h´MNhjT`h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒprint BO info in debugfs file”h]”hŒprint BO info in debugfs file”…”�”}”(hj×ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MNhjÔah²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjT`h²hh³jƒ`h´MNubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jïaj¡jïaj¢‰j£‰j¤‰uh1jbh²hhj h³Nh´Nubj¦)�”}”(hŒñ**Parameters** ``int id`` Index or Id of the BO ``struct amdgpu_bo *bo`` Requested BO for printing info ``struct seq_file *m`` debugfs file **Description** Print BO information in debugfs file **Return** Size of the BO in bytes.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjùah]”hŒ Parameters”…”�”}”(hjûah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj÷aubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MRhjóaubj )�”}”(hhh]”(j)�”}”(hŒ!``int id`` Index or Id of the BO ”h]”(j)�”}”(hŒ ``int id``”h]”j:)�”}”(hjbh]”hŒint id”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjbubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MPhjbubj$)�”}”(hhh]”hÝ)�”}”(hŒIndex or Id of the BO”h]”hŒIndex or Id of the BO”…”�”}”(hj1bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j-bh´MPhj.bubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjbubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j-bh´MPhjbubj)�”}”(hŒ8``struct amdgpu_bo *bo`` Requested BO for printing info ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hjQbh]”hŒstruct amdgpu_bo *bo”…”�”}”(hjSbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjObubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MQhjKbubj$)�”}”(hhh]”hÝ)�”}”(hŒRequested BO for printing info”h]”hŒRequested BO for printing info”…”�”}”(hjjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jfbh´MQhjgbubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjKbubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jfbh´MQhjbubj)�”}”(hŒ$``struct seq_file *m`` debugfs file ”h]”(j)�”}”(hŒ``struct seq_file *m``”h]”j:)�”}”(hjŠbh]”hŒstruct seq_file *m”…”�”}”(hjŒbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjˆbubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MRhj„bubj$)�”}”(hhh]”hÝ)�”}”(hŒ debugfs file”h]”hŒ debugfs file”…”�”}”(hj£bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jŸbh´MRhj bubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj„bubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jŸbh´MRhjbubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjóaubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjÅbh]”hŒ Description”…”�”}”(hjÇbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÃbubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MThjóaubhÝ)�”}”(hŒ$Print BO information in debugfs file”h]”hŒ$Print BO information in debugfs file”…”�”}”(hjÛbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MShjóaubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjìbh]”hŒReturn”…”�”}”(hjîbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjêbubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MUhjóaubhÝ)�”}”(hŒSize of the BO in bytes.”h]”hŒSize of the BO in bytes.”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:198: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.c”h´MVhjóaubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj h²hh³Nh´Nubeh}”(h]”Œbuffer-objects”ah ]”h"]”Œbuffer objects”ah$]”h&]”uh1hµhh·h²hh³hÊh´KÁubh¶)�”}”(hhh]”(h»)�”}”(hŒPRIME Buffer Sharing”h]”hŒPRIME Buffer Sharing”…”�”}”(hj#ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj ch²hh³hÊh´KÊubhÝ)�”}”(hŒ‘The following callback implementations are used for :ref:`sharing GEM buffer objects between different devices via PRIME `.”h]”(hŒ4The following callback implementations are used for ”…”�”}”(hj1ch²hh³Nh´Nubh)�”}”(hŒ\:ref:`sharing GEM buffer objects between different devices via PRIME `”h]”jñ)�”}”(hj;ch]”hŒ>sharing GEM buffer objects between different devices via PRIME”…”�”}”(hj=ch²hh³Nh´Nubah}”(h]”h ]”(jüŒstd”Œstd-ref”eh"]”h$]”h&]”uh1jðhj9cubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”jGcŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjŒprime_buffer_sharing”uh1hh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:204: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´Khj1cubhŒ.”…”�”}”(hj1ch²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jYch´Khj ch²hubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ dma_buf_attach_adev (C function)”Œc.dma_buf_attach_adev”hNt”auh1jQhj ch²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒNstruct amdgpu_device * dma_buf_attach_adev (struct dma_buf_attachment *attach)”h]”jn)�”}”(hŒLstruct amdgpu_device *dma_buf_attach_adev(struct dma_buf_attachment *attach)”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj}ch²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjych²hh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´K3ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹ch²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjych²hh³jŠch´K3ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjœch²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj™cubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jžcŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒdma_buf_attach_adev”sbŒc.dma_buf_attach_adev”†”asbuh1hhjych²hh³jŠch´K3ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj½ch²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjych²hh³jŠch´K3ubj)�”}”(hjh]”hŒ*”…”�”}”(hjËch²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjych²hh³jŠch´K3ubj—)�”}”(hŒdma_buf_attach_adev”h]”j�)�”}”(hjºch]”hŒdma_buf_attach_adev”…”�”}”(hjÜch²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjØcubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjych²hh³jŠch´K3ubj¸)�”}”(hŒ#(struct dma_buf_attachment *attach)”h]”j¾)�”}”(hŒ!struct dma_buf_attachment *attach”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj÷ch²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjócubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjócubh)�”}”(hhh]”j�)�”}”(hŒdma_buf_attachment”h]”hŒdma_buf_attachment”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjdubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jdŒmodname”NŒ classname”Njÿj)�”}”j]”j¸cŒc.dma_buf_attach_adev”†”asbuh1hhjócubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3dh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjócubj)�”}”(hjh]”hŒ*”…”�”}”(hjAdh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjócubj�)�”}”(hŒattach”h]”hŒattach”…”�”}”(hjNdh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjócubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjïcubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjych²hh³jŠch´K3ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjuch²hh³jŠch´K3ubah}”(h]”jpcah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jŠch´K3hjrch²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ#Helper to get adev of an attachment”h]”hŒ#Helper to get adev of an attachment”…”�”}”(hjxdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´K3hjudh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjrch²hh³jŠch´K3ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j�dj¡j�dj¢‰j£‰j¤‰uh1jbh²hhj ch³Nh´Nubj¦)�”}”(hŒ²**Parameters** ``struct dma_buf_attachment *attach`` attachment **Return** A struct amdgpu_device * if the attaching device is an amdgpu device or partition, NULL otherwise.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjšdh]”hŒ Parameters”…”�”}”(hjœdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj˜dubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´K7hj”dubj )�”}”(hhh]”j)�”}”(hŒ1``struct dma_buf_attachment *attach`` attachment ”h]”(j)�”}”(hŒ%``struct dma_buf_attachment *attach``”h]”j:)�”}”(hj¹dh]”hŒ!struct dma_buf_attachment *attach”…”�”}”(hj»dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj·dubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´K5hj³dubj$)�”}”(hhh]”hÝ)�”}”(hŒ attachment”h]”hŒ attachment”…”�”}”(hjÒdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÎdh´K5hjÏdubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj³dubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÎdh´K5hj°dubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj”dubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjôdh]”hŒReturn”…”�”}”(hjödh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjòdubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´K7hj”dubhÝ)�”}”(hŒbA struct amdgpu_device * if the attaching device is an amdgpu device or partition, NULL otherwise.”h]”hŒbA struct amdgpu_device * if the attaching device is an amdgpu device or partition, NULL otherwise.”…”�”}”(hj eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´K7hj”dubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj ch²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ"amdgpu_dma_buf_attach (C function)”Œc.amdgpu_dma_buf_attach”hNt”auh1jQhj ch²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒUint amdgpu_dma_buf_attach (struct dma_buf *dmabuf, struct dma_buf_attachment *attach)”h]”jn)�”}”(hŒTint amdgpu_dma_buf_attach(struct dma_buf *dmabuf, struct dma_buf_attachment *attach)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj9eh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj5eh²hh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KHubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjHeh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj5eh²hh³jGeh´KHubj—)�”}”(hŒamdgpu_dma_buf_attach”h]”j�)�”}”(hŒamdgpu_dma_buf_attach”h]”hŒamdgpu_dma_buf_attach”…”�”}”(hjZeh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjVeubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj5eh²hh³jGeh´KHubj¸)�”}”(hŒ;(struct dma_buf *dmabuf, struct dma_buf_attachment *attach)”h]”(j¾)�”}”(hŒstruct dma_buf *dmabuf”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjveh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjreubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjƒeh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjreubh)�”}”(hhh]”j�)�”}”(hŒdma_buf”h]”hŒdma_buf”…”�”}”(hj”eh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj‘eubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j–eŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj\esbŒc.amdgpu_dma_buf_attach”†”asbuh1hhjreubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj´eh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjreubj)�”}”(hjh]”hŒ*”…”�”}”(hjÂeh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjreubj�)�”}”(hŒdmabuf”h]”hŒdmabuf”…”�”}”(hjÏeh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjreubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjneubj¾)�”}”(hŒ!struct dma_buf_attachment *attach”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjèeh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjäeubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõeh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjäeubh)�”}”(hhh]”j�)�”}”(hŒdma_buf_attachment”h]”hŒdma_buf_attachment”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjfubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jfŒmodname”NŒ classname”Njÿj)�”}”j]”j°eŒc.amdgpu_dma_buf_attach”†”asbuh1hhjäeubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$fh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjäeubj)�”}”(hjh]”hŒ*”…”�”}”(hj2fh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjäeubj�)�”}”(hŒattach”h]”hŒattach”…”�”}”(hj?fh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjäeubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjneubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj5eh²hh³jGeh´KHubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj1eh²hh³jGeh´KHubah}”(h]”j,eah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jGeh´KHhj.eh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ9:c:type:`dma_buf_ops.attach ` implementation”h]”(h)�”}”(hŒ*:c:type:`dma_buf_ops.attach `”h]”j:)�”}”(hjofh]”hŒdma_buf_ops.attach”…”�”}”(hjqfh²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjmfubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jÿj)�”}”j]”j°eŒc.amdgpu_dma_buf_attach”†”asbjŒ dma_buf_ops”uh1hh³jŠch´K3hjifubhŒ implementation”…”�”}”(hjifh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KHhjffh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj.eh²hh³jGeh´KHubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j¥fj¡j¥fj¢‰j£‰j¤‰uh1jbh²hhj ch³Nh´Nubj¦)�”}”(hŒÈ**Parameters** ``struct dma_buf *dmabuf`` DMA-buf where we attach to ``struct dma_buf_attachment *attach`` attachment to add **Description** Add the attachment as user to the exported DMA-buf.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj¯fh]”hŒ Parameters”…”�”}”(hj±fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj­fubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KLhj©fubj )�”}”(hhh]”(j)�”}”(hŒ6``struct dma_buf *dmabuf`` DMA-buf where we attach to ”h]”(j)�”}”(hŒ``struct dma_buf *dmabuf``”h]”j:)�”}”(hjÎfh]”hŒstruct dma_buf *dmabuf”…”�”}”(hjÐfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÌfubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KJhjÈfubj$)�”}”(hhh]”hÝ)�”}”(hŒDMA-buf where we attach to”h]”hŒDMA-buf where we attach to”…”�”}”(hjçfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jãfh´KJhjäfubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÈfubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jãfh´KJhjÅfubj)�”}”(hŒ8``struct dma_buf_attachment *attach`` attachment to add ”h]”(j)�”}”(hŒ%``struct dma_buf_attachment *attach``”h]”j:)�”}”(hjgh]”hŒ!struct dma_buf_attachment *attach”…”�”}”(hj gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjgubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KKhjgubj$)�”}”(hhh]”hÝ)�”}”(hŒattachment to add”h]”hŒattachment to add”…”�”}”(hj gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jgh´KKhjgubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjgubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jgh´KKhjÅfubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj©fubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjBgh]”hŒ Description”…”�”}”(hjDgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj@gubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KMhj©fubhÝ)�”}”(hŒ3Add the attachment as user to the exported DMA-buf.”h]”hŒ3Add the attachment as user to the exported DMA-buf.”…”�”}”(hjXgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KLhj©fubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj ch²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”•]”(j^Œ"amdgpu_dma_buf_detach (C function)”Œc.amdgpu_dma_buf_detach”hNt”auh1jQhj ch²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒVvoid amdgpu_dma_buf_detach (struct dma_buf *dmabuf, struct dma_buf_attachment *attach)”h]”jn)�”}”(hŒUvoid amdgpu_dma_buf_detach(struct dma_buf *dmabuf, struct dma_buf_attachment *attach)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj‡gh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjƒgh²hh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´Kˆubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–gh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjƒgh²hh³j•gh´Kˆubj—)�”}”(hŒamdgpu_dma_buf_detach”h]”j�)�”}”(hŒamdgpu_dma_buf_detach”h]”hŒamdgpu_dma_buf_detach”…”�”}”(hj¨gh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¤gubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjƒgh²hh³j•gh´Kˆubj¸)�”}”(hŒ;(struct dma_buf *dmabuf, struct dma_buf_attachment *attach)”h]”(j¾)�”}”(hŒstruct dma_buf *dmabuf”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÄgh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÀgubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑgh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÀgubh)�”}”(hhh]”j�)�”}”(hŒdma_buf”h]”hŒdma_buf”…”�”}”(hjâgh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjßgubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jägŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjªgsbŒc.amdgpu_dma_buf_detach”†”asbuh1hhjÀgubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÀgubj)�”}”(hjh]”hŒ*”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÀgubj�)�”}”(hŒdmabuf”h]”hŒdmabuf”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÀgubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¼gubj¾)�”}”(hŒ!struct dma_buf_attachment *attach”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj6hh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj2hubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjChh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj2hubh)�”}”(hhh]”j�)�”}”(hŒdma_buf_attachment”h]”hŒdma_buf_attachment”…”�”}”(hjThh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjQhubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jVhŒmodname”NŒ classname”Njÿj)�”}”j]”jþgŒc.amdgpu_dma_buf_detach”†”asbuh1hhj2hubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjrhh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj2hubj)�”}”(hjh]”hŒ*”…”�”}”(hj€hh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj2hubj�)�”}”(hŒattach”h]”hŒattach”…”�”}”(hj�hh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj2hubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¼gubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjƒgh²hh³j•gh´Kˆubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjgh²hh³j•gh´Kˆubah}”(h]”jzgah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j•gh´Kˆhj|gh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ9:c:type:`dma_buf_ops.detach ` implementation”h]”(h)�”}”(hŒ*:c:type:`dma_buf_ops.detach `”h]”j:)�”}”(hj½hh]”hŒdma_buf_ops.detach”…”�”}”(hj¿hh²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj»hubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jÿj)�”}”j]”jþgŒc.amdgpu_dma_buf_detach”†”asbjŒ dma_buf_ops”uh1hh³jŠch´K3hj·hubhŒ implementation”…”�”}”(hj·hh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´Kˆhj´hh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj|gh²hh³j•gh´Kˆubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jóhj¡jóhj¢‰j£‰j¤‰uh1jbh²hhj ch³Nh´Nubj¦)�”}”(hŒì**Parameters** ``struct dma_buf *dmabuf`` DMA-buf where we remove the attachment from ``struct dma_buf_attachment *attach`` the attachment to remove **Description** Drop the runtime PM reference taken in amdgpu_dma_buf_attach().”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjýhh]”hŒ Parameters”…”�”}”(hjÿhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjûhubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KŒhj÷hubj )�”}”(hhh]”(j)�”}”(hŒG``struct dma_buf *dmabuf`` DMA-buf where we remove the attachment from ”h]”(j)�”}”(hŒ``struct dma_buf *dmabuf``”h]”j:)�”}”(hjih]”hŒstruct dma_buf *dmabuf”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjiubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KŠhjiubj$)�”}”(hhh]”hÝ)�”}”(hŒ+DMA-buf where we remove the attachment from”h]”hŒ+DMA-buf where we remove the attachment from”…”�”}”(hj5ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j1ih´KŠhj2iubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjiubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j1ih´KŠhjiubj)�”}”(hŒ?``struct dma_buf_attachment *attach`` the attachment to remove ”h]”(j)�”}”(hŒ%``struct dma_buf_attachment *attach``”h]”j:)�”}”(hjUih]”hŒ!struct dma_buf_attachment *attach”…”�”}”(hjWih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjSiubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´K‹hjOiubj$)�”}”(hhh]”hÝ)�”}”(hŒthe attachment to remove”h]”hŒthe attachment to remove”…”�”}”(hjnih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jjih´K‹hjkiubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjOiubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jjih´K‹hjiubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj÷hubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj�ih]”hŒ Description”…”�”}”(hj’ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjŽiubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´K�hj÷hubhÝ)�”}”(hŒ?Drop the runtime PM reference taken in amdgpu_dma_buf_attach().”h]”hŒ?Drop the runtime PM reference taken in amdgpu_dma_buf_attach().”…”�”}”(hj¦ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KŒhj÷hubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj ch²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_dma_buf_pin (C function)”Œc.amdgpu_dma_buf_pin”hNt”auh1jQhj ch²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ:int amdgpu_dma_buf_pin (struct dma_buf_attachment *attach)”h]”jn)�”}”(hŒ9int amdgpu_dma_buf_pin(struct dma_buf_attachment *attach)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjÕih²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÑih²hh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´K›ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjäih²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÑih²hh³jãih´K›ubj—)�”}”(hŒamdgpu_dma_buf_pin”h]”j�)�”}”(hŒamdgpu_dma_buf_pin”h]”hŒamdgpu_dma_buf_pin”…”�”}”(hjöih²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjòiubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjÑih²hh³jãih´K›ubj¸)�”}”(hŒ#(struct dma_buf_attachment *attach)”h]”j¾)�”}”(hŒ!struct dma_buf_attachment *attach”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjjubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjjubh)�”}”(hhh]”j�)�”}”(hŒdma_buf_attachment”h]”hŒdma_buf_attachment”…”�”}”(hj0jh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj-jubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j2jŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjøisbŒc.amdgpu_dma_buf_pin”†”asbuh1hhjjubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjPjh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjjubj)�”}”(hjh]”hŒ*”…”�”}”(hj^jh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjjubj�)�”}”(hŒattach”h]”hŒattach”…”�”}”(hjkjh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj jubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjÑih²hh³jãih´K›ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjÍih²hh³jãih´K›ubah}”(h]”jÈiah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jãih´K›hjÊih²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ6:c:type:`dma_buf_ops.pin ` implementation”h]”(h)�”}”(hŒ':c:type:`dma_buf_ops.pin `”h]”j:)�”}”(hj›jh]”hŒdma_buf_ops.pin”…”�”}”(hj�jh²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj™jubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jÿj)�”}”j]”jLjŒc.amdgpu_dma_buf_pin”†”asbjŒ dma_buf_ops”uh1hh³jŠch´K3hj•jubhŒ implementation”…”�”}”(hj•jh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´K›hj’jh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÊih²hh³jãih´K›ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jÑjj¡jÑjj¢‰j£‰j¤‰uh1jbh²hhj ch³Nh´Nubj¦)�”}”(hŒ¨**Parameters** ``struct dma_buf_attachment *attach`` attachment to pin down **Description** Pin the BO which is backing the DMA-buf so that it can't move any more.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjÛjh]”hŒ Parameters”…”�”}”(hjÝjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÙjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KŸhjÕjubj )�”}”(hhh]”j)�”}”(hŒ=``struct dma_buf_attachment *attach`` attachment to pin down ”h]”(j)�”}”(hŒ%``struct dma_buf_attachment *attach``”h]”j:)�”}”(hjújh]”hŒ!struct dma_buf_attachment *attach”…”�”}”(hjüjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjøjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´K�hjôjubj$)�”}”(hhh]”hÝ)�”}”(hŒattachment to pin down”h]”hŒattachment to pin down”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jkh´K�hjkubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjôjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jkh´K�hjñjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÕjubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj5kh]”hŒ Description”…”�”}”(hj7kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj3kubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KŸhjÕjubhÝ)�”}”(hŒGPin the BO which is backing the DMA-buf so that it can't move any more.”h]”hŒIPin the BO which is backing the DMA-buf so that it can’t move any more.”…”�”}”(hjKkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KžhjÕjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj ch²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ!amdgpu_dma_buf_unpin (C function)”Œc.amdgpu_dma_buf_unpin”hNt”auh1jQhj ch²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ=void amdgpu_dma_buf_unpin (struct dma_buf_attachment *attach)”h]”jn)�”}”(hŒ` implementation”h]”(h)�”}”(hŒ):c:type:`dma_buf_ops.unpin `”h]”j:)�”}”(hj@lh]”hŒdma_buf_ops.unpin”…”�”}”(hjBlh²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj>lubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jÿj)�”}”j]”jñkŒc.amdgpu_dma_buf_unpin”†”asbjŒ dma_buf_ops”uh1hh³jŠch´K3hj:lubhŒ implementation”…”�”}”(hj:lh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´K¿hj7lh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjokh²hh³jˆkh´K¿ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jvlj¡jvlj¢‰j£‰j¤‰uh1jbh²hhj ch³Nh´Nubj¦)�”}”(hŒ”**Parameters** ``struct dma_buf_attachment *attach`` attachment to unpin **Description** Unpin a previously pinned BO to make it movable again.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj€lh]”hŒ Parameters”…”�”}”(hj‚lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj~lubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KÃhjzlubj )�”}”(hhh]”j)�”}”(hŒ:``struct dma_buf_attachment *attach`` attachment to unpin ”h]”(j)�”}”(hŒ%``struct dma_buf_attachment *attach``”h]”j:)�”}”(hjŸlh]”hŒ!struct dma_buf_attachment *attach”…”�”}”(hj¡lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj�lubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KÁhj™lubj$)�”}”(hhh]”hÝ)�”}”(hŒattachment to unpin”h]”hŒattachment to unpin”…”�”}”(hj¸lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j´lh´KÁhjµlubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj™lubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j´lh´KÁhj–lubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjzlubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjÚlh]”hŒ Description”…”�”}”(hjÜlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjØlubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KÃhjzlubhÝ)�”}”(hŒ6Unpin a previously pinned BO to make it movable again.”h]”hŒ6Unpin a previously pinned BO to make it movable again.”…”�”}”(hjðlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KÂhjzlubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj ch²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_dma_buf_map (C function)”Œc.amdgpu_dma_buf_map”hNt”auh1jQhj ch²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒestruct sg_table * amdgpu_dma_buf_map (struct dma_buf_attachment *attach, enum dma_data_direction dir)”h]”jn)�”}”(hŒcstruct sg_table *amdgpu_dma_buf_map(struct dma_buf_attachment *attach, enum dma_data_direction dir)”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjmh²hh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KÎubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj-mh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjmh²hh³j,mh´KÎubh)�”}”(hhh]”j�)�”}”(hŒsg_table”h]”hŒsg_table”…”�”}”(hj>mh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj;mubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j@mŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒamdgpu_dma_buf_map”sbŒc.amdgpu_dma_buf_map”†”asbuh1hhjmh²hh³j,mh´KÎubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_mh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjmh²hh³j,mh´KÎubj)�”}”(hjh]”hŒ*”…”�”}”(hjmmh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjmh²hh³j,mh´KÎubj—)�”}”(hŒamdgpu_dma_buf_map”h]”j�)�”}”(hj\mh]”hŒamdgpu_dma_buf_map”…”�”}”(hj~mh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjzmubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjmh²hh³j,mh´KÎubj¸)�”}”(hŒ@(struct dma_buf_attachment *attach, enum dma_data_direction dir)”h]”(j¾)�”}”(hŒ!struct dma_buf_attachment *attach”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj™mh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj•mubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦mh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj•mubh)�”}”(hhh]”j�)�”}”(hŒdma_buf_attachment”h]”hŒdma_buf_attachment”…”�”}”(hj·mh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj´mubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j¹mŒmodname”NŒ classname”Njÿj)�”}”j]”jZmŒc.amdgpu_dma_buf_map”†”asbuh1hhj•mubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÕmh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj•mubj)�”}”(hjh]”hŒ*”…”�”}”(hjãmh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj•mubj�)�”}”(hŒattach”h]”hŒattach”…”�”}”(hjðmh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj•mubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj‘mubj¾)�”}”(hŒenum dma_data_direction dir”h]”(jÄ)�”}”(hjGRh]”hŒenum”…”�”}”(hj nh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjnubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjnubh)�”}”(hhh]”j�)�”}”(hŒdma_data_direction”h]”hŒdma_data_direction”…”�”}”(hj'nh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj$nubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j)nŒmodname”NŒ classname”Njÿj)�”}”j]”jZmŒc.amdgpu_dma_buf_map”†”asbuh1hhjnubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjEnh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjnubj�)�”}”(hŒdir”h]”hŒdir”…”�”}”(hjSnh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjnubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj‘mubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjmh²hh³j,mh´KÎubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjmh²hh³j,mh´KÎubah}”(h]”jmah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j,mh´KÎhjmh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ>:c:type:`dma_buf_ops.map_dma_buf ` implementation”h]”(h)�”}”(hŒ/:c:type:`dma_buf_ops.map_dma_buf `”h]”j:)�”}”(hjƒnh]”hŒdma_buf_ops.map_dma_buf”…”�”}”(hj…nh²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj�nubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jÿj)�”}”j]”jZmŒc.amdgpu_dma_buf_map”†”asbjŒ dma_buf_ops”uh1hh³jŠch´K3hj}nubhŒ implementation”…”�”}”(hj}nh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KÎhjznh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjmh²hh³j,mh´KÎubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j¹nj¡j¹nj¢‰j£‰j¤‰uh1jbh²hhj ch³Nh´Nubj¦)�”}”(hX–**Parameters** ``struct dma_buf_attachment *attach`` DMA-buf attachment ``enum dma_data_direction dir`` DMA direction **Description** Makes sure that the shared DMA buffer can be accessed by the target device. For now, simply pins it to the GTT domain, where it should be accessible by all DMA devices. **Return** sg_table filled with the DMA addresses to use or ERR_PRT with negative error code.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjÃnh]”hŒ Parameters”…”�”}”(hjÅnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÁnubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KÒhj½nubj )�”}”(hhh]”(j)�”}”(hŒ9``struct dma_buf_attachment *attach`` DMA-buf attachment ”h]”(j)�”}”(hŒ%``struct dma_buf_attachment *attach``”h]”j:)�”}”(hjânh]”hŒ!struct dma_buf_attachment *attach”…”�”}”(hjänh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjànubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KÏhjÜnubj$)�”}”(hhh]”hÝ)�”}”(hŒDMA-buf attachment”h]”hŒDMA-buf attachment”…”�”}”(hjûnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j÷nh´KÏhjønubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÜnubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j÷nh´KÏhjÙnubj)�”}”(hŒ.``enum dma_data_direction dir`` DMA direction ”h]”(j)�”}”(hŒ``enum dma_data_direction dir``”h]”j:)�”}”(hjoh]”hŒenum dma_data_direction dir”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjoubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KÐhjoubj$)�”}”(hhh]”hÝ)�”}”(hŒ DMA direction”h]”hŒ DMA direction”…”�”}”(hj4oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j0oh´KÐhj1oubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjoubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j0oh´KÐhjÙnubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj½nubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjVoh]”hŒ Description”…”�”}”(hjXoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjToubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KÒhj½nubhÝ)�”}”(hŒ¨Makes sure that the shared DMA buffer can be accessed by the target device. For now, simply pins it to the GTT domain, where it should be accessible by all DMA devices.”h]”hŒ¨Makes sure that the shared DMA buffer can be accessed by the target device. For now, simply pins it to the GTT domain, where it should be accessible by all DMA devices.”…”�”}”(hjloh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KÑhj½nubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj}oh]”hŒReturn”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj{oubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KÕhj½nubhÝ)�”}”(hŒRsg_table filled with the DMA addresses to use or ERR_PRT with negative error code.”h]”hŒRsg_table filled with the DMA addresses to use or ERR_PRT with negative error code.”…”�”}”(hj“oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´KÖhj½nubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj ch²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ!amdgpu_dma_buf_unmap (C function)”Œc.amdgpu_dma_buf_unmap”hNt”auh1jQhj ch²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒpvoid amdgpu_dma_buf_unmap (struct dma_buf_attachment *attach, struct sg_table *sgt, enum dma_data_direction dir)”h]”jn)�”}”(hŒovoid amdgpu_dma_buf_unmap(struct dma_buf_attachment *attach, struct sg_table *sgt, enum dma_data_direction dir)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÂoh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj¾oh²hh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´M"ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑoh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¾oh²hh³jÐoh´M"ubj—)�”}”(hŒamdgpu_dma_buf_unmap”h]”j�)�”}”(hŒamdgpu_dma_buf_unmap”h]”hŒamdgpu_dma_buf_unmap”…”�”}”(hjãoh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjßoubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj¾oh²hh³jÐoh´M"ubj¸)�”}”(hŒV(struct dma_buf_attachment *attach, struct sg_table *sgt, enum dma_data_direction dir)”h]”(j¾)�”}”(hŒ!struct dma_buf_attachment *attach”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÿoh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjûoubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ph²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjûoubh)�”}”(hhh]”j�)�”}”(hŒdma_buf_attachment”h]”hŒdma_buf_attachment”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjpubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jpŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjåosbŒc.amdgpu_dma_buf_unmap”†”asbuh1hhjûoubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=ph²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjûoubj)�”}”(hjh]”hŒ*”…”�”}”(hjKph²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjûoubj�)�”}”(hŒattach”h]”hŒattach”…”�”}”(hjXph²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjûoubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj÷oubj¾)�”}”(hŒstruct sg_table *sgt”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjqph²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjmpubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~ph²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjmpubh)�”}”(hhh]”j�)�”}”(hŒsg_table”h]”hŒsg_table”…”�”}”(hj�ph²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjŒpubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j‘pŒmodname”NŒ classname”Njÿj)�”}”j]”j9pŒc.amdgpu_dma_buf_unmap”†”asbuh1hhjmpubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj­ph²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjmpubj)�”}”(hjh]”hŒ*”…”�”}”(hj»ph²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjmpubj�)�”}”(hŒsgt”h]”hŒsgt”…”�”}”(hjÈph²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjmpubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj÷oubj¾)�”}”(hŒenum dma_data_direction dir”h]”(jÄ)�”}”(hjGRh]”hŒenum”…”�”}”(hjáph²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÝpubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjîph²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÝpubh)�”}”(hhh]”j�)�”}”(hŒdma_data_direction”h]”hŒdma_data_direction”…”�”}”(hjÿph²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjüpubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jqŒmodname”NŒ classname”Njÿj)�”}”j]”j9pŒc.amdgpu_dma_buf_unmap”†”asbuh1hhjÝpubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÝpubj�)�”}”(hŒdir”h]”hŒdir”…”�”}”(hj+qh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÝpubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj÷oubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj¾oh²hh³jÐoh´M"ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjºoh²hh³jÐoh´M"ubah}”(h]”jµoah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÐoh´M"hj·oh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ@:c:type:`dma_buf_ops.unmap_dma_buf ` implementation”h]”(h)�”}”(hŒ1:c:type:`dma_buf_ops.unmap_dma_buf `”h]”j:)�”}”(hj[qh]”hŒdma_buf_ops.unmap_dma_buf”…”�”}”(hj]qh²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjYqubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jÿj)�”}”j]”j9pŒc.amdgpu_dma_buf_unmap”†”asbjŒ dma_buf_ops”uh1hh³jŠch´K3hjUqubhŒ implementation”…”�”}”(hjUqh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´M"hjRqh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj·oh²hh³jÐoh´M"ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j‘qj¡j‘qj¢‰j£‰j¤‰uh1jbh²hhj ch³Nh´Nubj¦)�”}”(hXC**Parameters** ``struct dma_buf_attachment *attach`` DMA-buf attachment ``struct sg_table *sgt`` sg_table to unmap ``enum dma_data_direction dir`` DMA direction **Description** This is called when a shared DMA buffer no longer needs to be accessible by another device. For now, simply unpins the buffer from GTT.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj›qh]”hŒ Parameters”…”�”}”(hj�qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj™qubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´M&hj•qubj )�”}”(hhh]”(j)�”}”(hŒ9``struct dma_buf_attachment *attach`` DMA-buf attachment ”h]”(j)�”}”(hŒ%``struct dma_buf_attachment *attach``”h]”j:)�”}”(hjºqh]”hŒ!struct dma_buf_attachment *attach”…”�”}”(hj¼qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj¸qubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´M#hj´qubj$)�”}”(hhh]”hÝ)�”}”(hŒDMA-buf attachment”h]”hŒDMA-buf attachment”…”�”}”(hjÓqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÏqh´M#hjÐqubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj´qubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÏqh´M#hj±qubj)�”}”(hŒ+``struct sg_table *sgt`` sg_table to unmap ”h]”(j)�”}”(hŒ``struct sg_table *sgt``”h]”j:)�”}”(hjóqh]”hŒstruct sg_table *sgt”…”�”}”(hjõqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjñqubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´M$hjíqubj$)�”}”(hhh]”hÝ)�”}”(hŒsg_table to unmap”h]”hŒsg_table to unmap”…”�”}”(hj rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jrh´M$hj rubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjíqubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jrh´M$hj±qubj)�”}”(hŒ.``enum dma_data_direction dir`` DMA direction ”h]”(j)�”}”(hŒ``enum dma_data_direction dir``”h]”j:)�”}”(hj,rh]”hŒenum dma_data_direction dir”…”�”}”(hj.rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj*rubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´M%hj&rubj$)�”}”(hhh]”hÝ)�”}”(hŒ DMA direction”h]”hŒ DMA direction”…”�”}”(hjErh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jArh´M%hjBrubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj&rubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jArh´M%hj±qubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj•qubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjgrh]”hŒ Description”…”�”}”(hjirh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjerubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´M'hj•qubhÝ)�”}”(hŒ‡This is called when a shared DMA buffer no longer needs to be accessible by another device. For now, simply unpins the buffer from GTT.”h]”hŒ‡This is called when a shared DMA buffer no longer needs to be accessible by another device. For now, simply unpins the buffer from GTT.”…”�”}”(hj}rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´M&hj•qubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj ch²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ,amdgpu_dma_buf_begin_cpu_access (C function)”Œ!c.amdgpu_dma_buf_begin_cpu_access”hNt”auh1jQhj ch²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ`int amdgpu_dma_buf_begin_cpu_access (struct dma_buf *dma_buf, enum dma_data_direction direction)”h]”jn)�”}”(hŒ_int amdgpu_dma_buf_begin_cpu_access(struct dma_buf *dma_buf, enum dma_data_direction direction)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj¬rh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj¨rh²hh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MAubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»rh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¨rh²hh³jºrh´MAubj—)�”}”(hŒamdgpu_dma_buf_begin_cpu_access”h]”j�)�”}”(hŒamdgpu_dma_buf_begin_cpu_access”h]”hŒamdgpu_dma_buf_begin_cpu_access”…”�”}”(hjÍrh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÉrubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj¨rh²hh³jºrh´MAubj¸)�”}”(hŒ<(struct dma_buf *dma_buf, enum dma_data_direction direction)”h]”(j¾)�”}”(hŒstruct dma_buf *dma_buf”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjérh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjårubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjörh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjårubh)�”}”(hhh]”j�)�”}”(hŒdma_buf”h]”hŒdma_buf”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjsubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j sŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjÏrsbŒ!c.amdgpu_dma_buf_begin_cpu_access”†”asbuh1hhjårubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'sh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjårubj)�”}”(hjh]”hŒ*”…”�”}”(hj5sh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjårubj�)�”}”(hŒdma_buf”h]”hŒdma_buf”…”�”}”(hjBsh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjårubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjárubj¾)�”}”(hŒ!enum dma_data_direction direction”h]”(jÄ)�”}”(hjGRh]”hŒenum”…”�”}”(hj[sh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjWsubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhsh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjWsubh)�”}”(hhh]”j�)�”}”(hŒdma_data_direction”h]”hŒdma_data_direction”…”�”}”(hjysh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjvsubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j{sŒmodname”NŒ classname”Njÿj)�”}”j]”j#sŒ!c.amdgpu_dma_buf_begin_cpu_access”†”asbuh1hhjWsubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—sh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjWsubj�)�”}”(hŒ direction”h]”hŒ direction”…”�”}”(hj¥sh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjWsubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjárubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj¨rh²hh³jºrh´MAubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj¤rh²hh³jºrh´MAubah}”(h]”jŸrah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jºrh´MAhj¡rh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒC:c:type:`dma_buf_ops.begin_cpu_access ` implementation”h]”(h)�”}”(hŒ4:c:type:`dma_buf_ops.begin_cpu_access `”h]”j:)�”}”(hjÕsh]”hŒdma_buf_ops.begin_cpu_access”…”�”}”(hj×sh²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjÓsubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jÿj)�”}”j]”j#sŒ!c.amdgpu_dma_buf_begin_cpu_access”†”asbjŒ dma_buf_ops”uh1hh³jŠch´K3hjÏsubhŒ implementation”…”�”}”(hjÏsh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MAhjÌsh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj¡rh²hh³jºrh´MAubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j tj¡j tj¢‰j£‰j¤‰uh1jbh²hhj ch³Nh´Nubj¦)�”}”(hXƒ**Parameters** ``struct dma_buf *dma_buf`` Shared DMA buffer ``enum dma_data_direction direction`` Direction of DMA transfer **Description** This is called before CPU access to the shared DMA buffer's memory. If it's a read access, the buffer is moved to the GTT domain if possible, for optimal CPU read performance. **Return** 0 on success or a negative error code on failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjth]”hŒ Parameters”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjtubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MEhjtubj )�”}”(hhh]”(j)�”}”(hŒ.``struct dma_buf *dma_buf`` Shared DMA buffer ”h]”(j)�”}”(hŒ``struct dma_buf *dma_buf``”h]”j:)�”}”(hj4th]”hŒstruct dma_buf *dma_buf”…”�”}”(hj6th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj2tubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MBhj.tubj$)�”}”(hhh]”hÝ)�”}”(hŒShared DMA buffer”h]”hŒShared DMA buffer”…”�”}”(hjMth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jIth´MBhjJtubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj.tubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jIth´MBhj+tubj)�”}”(hŒ@``enum dma_data_direction direction`` Direction of DMA transfer ”h]”(j)�”}”(hŒ%``enum dma_data_direction direction``”h]”j:)�”}”(hjmth]”hŒ!enum dma_data_direction direction”…”�”}”(hjoth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjktubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MChjgtubj$)�”}”(hhh]”hÝ)�”}”(hŒDirection of DMA transfer”h]”hŒDirection of DMA transfer”…”�”}”(hj†th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j‚th´MChjƒtubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjgtubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‚th´MChj+tubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjtubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj¨th]”hŒ Description”…”�”}”(hjªth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¦tubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MEhjtubhÝ)�”}”(hŒ¯This is called before CPU access to the shared DMA buffer's memory. If it's a read access, the buffer is moved to the GTT domain if possible, for optimal CPU read performance.”h]”hŒ³This is called before CPU access to the shared DMA buffer’s memory. If it’s a read access, the buffer is moved to the GTT domain if possible, for optimal CPU read performance.”…”�”}”(hj¾th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MDhjtubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjÏth]”hŒReturn”…”�”}”(hjÑth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÍtubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MHhjtubhÝ)�”}”(hŒ10 on success or a negative error code on failure.”h]”hŒ10 on success or a negative error code on failure.”…”�”}”(hjåth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MIhjtubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj ch²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ$amdgpu_gem_prime_export (C function)”Œc.amdgpu_gem_prime_export”hNt”auh1jQhj ch²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒQstruct dma_buf * amdgpu_gem_prime_export (struct drm_gem_object *gobj, int flags)”h]”jn)�”}”(hŒOstruct dma_buf *amdgpu_gem_prime_export(struct drm_gem_object *gobj, int flags)”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjuh²hh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´M–ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"uh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjuh²hh³j!uh´M–ubh)�”}”(hhh]”j�)�”}”(hŒdma_buf”h]”hŒdma_buf”…”�”}”(hj3uh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj0uubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j5uŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒamdgpu_gem_prime_export”sbŒc.amdgpu_gem_prime_export”†”asbuh1hhjuh²hh³j!uh´M–ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjTuh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjuh²hh³j!uh´M–ubj)�”}”(hjh]”hŒ*”…”�”}”(hjbuh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjuh²hh³j!uh´M–ubj—)�”}”(hŒamdgpu_gem_prime_export”h]”j�)�”}”(hjQuh]”hŒamdgpu_gem_prime_export”…”�”}”(hjsuh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjouubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjuh²hh³j!uh´M–ubj¸)�”}”(hŒ((struct drm_gem_object *gobj, int flags)”h]”(j¾)�”}”(hŒstruct drm_gem_object *gobj”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjŽuh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjŠuubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›uh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjŠuubh)�”}”(hhh]”j�)�”}”(hŒdrm_gem_object”h]”hŒdrm_gem_object”…”�”}”(hj¬uh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj©uubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j®uŒmodname”NŒ classname”Njÿj)�”}”j]”jOuŒc.amdgpu_gem_prime_export”†”asbuh1hhjŠuubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊuh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjŠuubj)�”}”(hjh]”hŒ*”…”�”}”(hjØuh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjŠuubj�)�”}”(hŒgobj”h]”hŒgobj”…”�”}”(hjåuh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjŠuubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj†uubj¾)�”}”(hŒ int flags”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjþuh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjúuubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj vh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjúuubj�)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjúuubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj†uubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjuh²hh³j!uh´M–ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj uh²hh³j!uh´M–ubah}”(h]”juah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j!uh´M–hj uh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒA:c:type:`drm_driver.gem_prime_export ` implementation”h]”(h)�”}”(hŒ2:c:type:`drm_driver.gem_prime_export `”h]”j:)�”}”(hjJvh]”hŒdrm_driver.gem_prime_export”…”�”}”(hjLvh²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjHvubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jÿj)�”}”j]”jOuŒc.amdgpu_gem_prime_export”†”asbjŒ drm_driver”uh1hh³jŠch´K3hjDvubhŒ implementation”…”�”}”(hjDvh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´M–hjAvh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj uh²hh³j!uh´M–ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j€vj¡j€vj¢‰j£‰j¤‰uh1jbh²hhj ch³Nh´Nubj¦)�”}”(hX**Parameters** ``struct drm_gem_object *gobj`` GEM BO ``int flags`` Flags such as DRM_CLOEXEC and DRM_RDWR. **Description** The main work is done by the :c:type:`drm_gem_prime_export` helper. **Return** Shared DMA buffer representing the GEM BO from the given device.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjŠvh]”hŒ Parameters”…”�”}”(hjŒvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjˆvubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´Mšhj„vubj )�”}”(hhh]”(j)�”}”(hŒ'``struct drm_gem_object *gobj`` GEM BO ”h]”(j)�”}”(hŒ``struct drm_gem_object *gobj``”h]”j:)�”}”(hj©vh]”hŒstruct drm_gem_object *gobj”…”�”}”(hj«vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj§vubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´M—hj£vubj$)�”}”(hhh]”hÝ)�”}”(hŒGEM BO”h]”hŒGEM BO”…”�”}”(hjÂvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¾vh´M—hj¿vubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj£vubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¾vh´M—hj vubj)�”}”(hŒ6``int flags`` Flags such as DRM_CLOEXEC and DRM_RDWR. ”h]”(j)�”}”(hŒ ``int flags``”h]”j:)�”}”(hjâvh]”hŒ int flags”…”�”}”(hjävh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjàvubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´M˜hjÜvubj$)�”}”(hhh]”hÝ)�”}”(hŒ'Flags such as DRM_CLOEXEC and DRM_RDWR.”h]”hŒ'Flags such as DRM_CLOEXEC and DRM_RDWR.”…”�”}”(hjûvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j÷vh´M˜hjøvubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÜvubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j÷vh´M˜hj vubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj„vubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjwh]”hŒ Description”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjwubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´Mšhj„vubhÝ)�”}”(hŒCThe main work is done by the :c:type:`drm_gem_prime_export` helper.”h]”(hŒThe main work is done by the ”…”�”}”(hj3wh²hh³Nh´Nubh)�”}”(hŒ:c:type:`drm_gem_prime_export`”h]”j:)�”}”(hj=wh]”hŒdrm_gem_prime_export”…”�”}”(hj?wh²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj;wubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒdrm_gem_prime_export”uh1hh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´M™hj3wubhŒ helper.”…”�”}”(hj3wh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jZwh´M™hj„vubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjgwh]”hŒReturn”…”�”}”(hjiwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjewubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´M›hj„vubhÝ)�”}”(hŒ@Shared DMA buffer representing the GEM BO from the given device.”h]”hŒ@Shared DMA buffer representing the GEM BO from the given device.”…”�”}”(hj}wh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´Mœhj„vubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj ch²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ&amdgpu_dma_buf_create_obj (C function)”Œc.amdgpu_dma_buf_create_obj”hNt”auh1jQhj ch²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒcstruct drm_gem_object * amdgpu_dma_buf_create_obj (struct drm_device *dev, struct dma_buf *dma_buf)”h]”jn)�”}”(hŒastruct drm_gem_object *amdgpu_dma_buf_create_obj(struct drm_device *dev, struct dma_buf *dma_buf)”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj¬wh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj¨wh²hh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´M½ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjºwh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¨wh²hh³j¹wh´M½ubh)�”}”(hhh]”j�)�”}”(hŒdrm_gem_object”h]”hŒdrm_gem_object”…”�”}”(hjËwh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÈwubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÍwŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒamdgpu_dma_buf_create_obj”sbŒc.amdgpu_dma_buf_create_obj”†”asbuh1hhj¨wh²hh³j¹wh´M½ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjìwh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¨wh²hh³j¹wh´M½ubj)�”}”(hjh]”hŒ*”…”�”}”(hjúwh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¨wh²hh³j¹wh´M½ubj—)�”}”(hŒamdgpu_dma_buf_create_obj”h]”j�)�”}”(hjéwh]”hŒamdgpu_dma_buf_create_obj”…”�”}”(hj xh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjxubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj¨wh²hh³j¹wh´M½ubj¸)�”}”(hŒ1(struct drm_device *dev, struct dma_buf *dma_buf)”h]”(j¾)�”}”(hŒstruct drm_device *dev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj&xh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj"xubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3xh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj"xubh)�”}”(hhh]”j�)�”}”(hŒ drm_device”h]”hŒ drm_device”…”�”}”(hjDxh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjAxubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jFxŒmodname”NŒ classname”Njÿj)�”}”j]”jçwŒc.amdgpu_dma_buf_create_obj”†”asbuh1hhj"xubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjbxh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj"xubj)�”}”(hjh]”hŒ*”…”�”}”(hjpxh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj"xubj�)�”}”(hŒdev”h]”hŒdev”…”�”}”(hj}xh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj"xubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjxubj¾)�”}”(hŒstruct dma_buf *dma_buf”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj–xh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj’xubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£xh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj’xubh)�”}”(hhh]”j�)�”}”(hŒdma_buf”h]”hŒdma_buf”…”�”}”(hj´xh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj±xubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j¶xŒmodname”NŒ classname”Njÿj)�”}”j]”jçwŒc.amdgpu_dma_buf_create_obj”†”asbuh1hhj’xubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÒxh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj’xubj)�”}”(hjh]”hŒ*”…”�”}”(hjàxh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj’xubj�)�”}”(hŒdma_buf”h]”hŒdma_buf”…”�”}”(hjíxh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj’xubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjxubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj¨wh²hh³j¹wh´M½ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj¤wh²hh³j¹wh´M½ubah}”(h]”jŸwah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j¹wh´M½hj¡wh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒcreate BO for DMA-buf import”h]”hŒcreate BO for DMA-buf import”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´M½hjyh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj¡wh²hh³j¹wh´M½ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j/yj¡j/yj¢‰j£‰j¤‰uh1jbh²hhj ch³Nh´Nubj¦)�”}”(hX***Parameters** ``struct drm_device *dev`` DRM device ``struct dma_buf *dma_buf`` DMA-buf **Description** Creates an empty SG BO for DMA-buf import. **Return** A new GEM BO of the given DRM device, representing the memory described by the given DMA-buf attachment and scatter/gather table.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj9yh]”hŒ Parameters”…”�”}”(hj;yh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj7yubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MÁhj3yubj )�”}”(hhh]”(j)�”}”(hŒ&``struct drm_device *dev`` DRM device ”h]”(j)�”}”(hŒ``struct drm_device *dev``”h]”j:)�”}”(hjXyh]”hŒstruct drm_device *dev”…”�”}”(hjZyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjVyubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´M¿hjRyubj$)�”}”(hhh]”hÝ)�”}”(hŒ DRM device”h]”hŒ DRM device”…”�”}”(hjqyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jmyh´M¿hjnyubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjRyubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jmyh´M¿hjOyubj)�”}”(hŒ$``struct dma_buf *dma_buf`` DMA-buf ”h]”(j)�”}”(hŒ``struct dma_buf *dma_buf``”h]”j:)�”}”(hj‘yh]”hŒstruct dma_buf *dma_buf”…”�”}”(hj“yh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj�yubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MÀhj‹yubj$)�”}”(hhh]”hÝ)�”}”(hŒDMA-buf”h]”hŒDMA-buf”…”�”}”(hjªyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¦yh´MÀhj§yubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj‹yubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¦yh´MÀhjOyubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj3yubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjÌyh]”hŒ Description”…”�”}”(hjÎyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÊyubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MÂhj3yubhÝ)�”}”(hŒ*Creates an empty SG BO for DMA-buf import.”h]”hŒ*Creates an empty SG BO for DMA-buf import.”…”�”}”(hjâyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MÁhj3yubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjóyh]”hŒReturn”…”�”}”(hjõyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjñyubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MÃhj3yubhÝ)�”}”(hŒ�A new GEM BO of the given DRM device, representing the memory described by the given DMA-buf attachment and scatter/gather table.”h]”hŒ�A new GEM BO of the given DRM device, representing the memory described by the given DMA-buf attachment and scatter/gather table.”…”�”}”(hj zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MÄhj3yubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj ch²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ'amdgpu_dma_buf_move_notify (C function)”Œc.amdgpu_dma_buf_move_notify”hNt”auh1jQhj ch²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒCvoid amdgpu_dma_buf_move_notify (struct dma_buf_attachment *attach)”h]”jn)�”}”(hŒBvoid amdgpu_dma_buf_move_notify(struct dma_buf_attachment *attach)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj8zh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj4zh²hh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´Mðubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjGzh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj4zh²hh³jFzh´Mðubj—)�”}”(hŒamdgpu_dma_buf_move_notify”h]”j�)�”}”(hŒamdgpu_dma_buf_move_notify”h]”hŒamdgpu_dma_buf_move_notify”…”�”}”(hjYzh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjUzubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj4zh²hh³jFzh´Mðubj¸)�”}”(hŒ#(struct dma_buf_attachment *attach)”h]”j¾)�”}”(hŒ!struct dma_buf_attachment *attach”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjuzh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjqzubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚zh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjqzubh)�”}”(hhh]”j�)�”}”(hŒdma_buf_attachment”h]”hŒdma_buf_attachment”…”�”}”(hj“zh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj�zubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j•zŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj[zsbŒc.amdgpu_dma_buf_move_notify”†”asbuh1hhjqzubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³zh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjqzubj)�”}”(hjh]”hŒ*”…”�”}”(hjÁzh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjqzubj�)�”}”(hŒattach”h]”hŒattach”…”�”}”(hjÎzh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjqzubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjmzubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj4zh²hh³jFzh´Mðubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj0zh²hh³jFzh´Mðubah}”(h]”j+zah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jFzh´Mðhj-zh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ<:c:type:`attach.invalidate_mappings ` implementation”h]”(h)�”}”(hŒ-:c:type:`attach.invalidate_mappings `”h]”j:)�”}”(hjþzh]”hŒattach.invalidate_mappings”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjüzubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jÿj)�”}”j]”j¯zŒc.amdgpu_dma_buf_move_notify”†”asbjŒattach”uh1hh³jŠch´K3hjøzubhŒ implementation”…”�”}”(hjøzh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´Mðhjõzh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj-zh²hh³jFzh´Mðubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j4{j¡j4{j¢‰j£‰j¤‰uh1jbh²hhj ch³Nh´Nubj¦)�”}”(hŒÆ**Parameters** ``struct dma_buf_attachment *attach`` the DMA-buf attachment **Description** Invalidate the DMA-buf attachment, making sure that the we re-create the mapping before the next use.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj>{h]”hŒ Parameters”…”�”}”(hj@{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj<{ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´Môhj8{ubj )�”}”(hhh]”j)�”}”(hŒ=``struct dma_buf_attachment *attach`` the DMA-buf attachment ”h]”(j)�”}”(hŒ%``struct dma_buf_attachment *attach``”h]”j:)�”}”(hj]{h]”hŒ!struct dma_buf_attachment *attach”…”�”}”(hj_{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj[{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MòhjW{ubj$)�”}”(hhh]”hÝ)�”}”(hŒthe DMA-buf attachment”h]”hŒthe DMA-buf attachment”…”�”}”(hjv{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jr{h´Mòhjs{ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjW{ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jr{h´MòhjT{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj8{ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj˜{h]”hŒ Description”…”�”}”(hjš{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj–{ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´Môhj8{ubhÝ)�”}”(hŒeInvalidate the DMA-buf attachment, making sure that the we re-create the mapping before the next use.”h]”hŒeInvalidate the DMA-buf attachment, making sure that the we re-create the mapping before the next use.”…”�”}”(hj®{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´Móhj8{ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj ch²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ$amdgpu_gem_prime_import (C function)”Œc.amdgpu_gem_prime_import”hNt”auh1jQhj ch²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒastruct drm_gem_object * amdgpu_gem_prime_import (struct drm_device *dev, struct dma_buf *dma_buf)”h]”jn)�”}”(hŒ_struct drm_gem_object *amdgpu_gem_prime_import(struct drm_device *dev, struct dma_buf *dma_buf)”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÝ{h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÙ{h²hh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MBubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjë{h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÙ{h²hh³jê{h´MBubh)�”}”(hhh]”j�)�”}”(hŒdrm_gem_object”h]”hŒdrm_gem_object”…”�”}”(hjü{h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjù{ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jþ{Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒamdgpu_gem_prime_import”sbŒc.amdgpu_gem_prime_import”†”asbuh1hhjÙ{h²hh³jê{h´MBubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÙ{h²hh³jê{h´MBubj)�”}”(hjh]”hŒ*”…”�”}”(hj+|h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÙ{h²hh³jê{h´MBubj—)�”}”(hŒamdgpu_gem_prime_import”h]”j�)�”}”(hj|h]”hŒamdgpu_gem_prime_import”…”�”}”(hj<|h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj8|ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjÙ{h²hh³jê{h´MBubj¸)�”}”(hŒ1(struct drm_device *dev, struct dma_buf *dma_buf)”h]”(j¾)�”}”(hŒstruct drm_device *dev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjW|h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjS|ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjd|h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjS|ubh)�”}”(hhh]”j�)�”}”(hŒ drm_device”h]”hŒ drm_device”…”�”}”(hju|h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjr|ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jw|Œmodname”NŒ classname”Njÿj)�”}”j]”j|Œc.amdgpu_gem_prime_import”†”asbuh1hhjS|ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“|h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjS|ubj)�”}”(hjh]”hŒ*”…”�”}”(hj¡|h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjS|ubj�)�”}”(hŒdev”h]”hŒdev”…”�”}”(hj®|h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjS|ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjO|ubj¾)�”}”(hŒstruct dma_buf *dma_buf”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÇ|h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÃ|ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔ|h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÃ|ubh)�”}”(hhh]”j�)�”}”(hŒdma_buf”h]”hŒdma_buf”…”�”}”(hjå|h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjâ|ubah}”(h]”h ]”•Mh"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jç|Œmodname”NŒ classname”Njÿj)�”}”j]”j|Œc.amdgpu_gem_prime_import”†”asbuh1hhjÃ|ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÃ|ubj)�”}”(hjh]”hŒ*”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÃ|ubj�)�”}”(hŒdma_buf”h]”hŒdma_buf”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÃ|ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjO|ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjÙ{h²hh³jê{h´MBubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjÕ{h²hh³jê{h´MBubah}”(h]”jÐ{ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jê{h´MBhjÒ{h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒA:c:type:`drm_driver.gem_prime_import ` implementation”h]”(h)�”}”(hŒ2:c:type:`drm_driver.gem_prime_import `”h]”j:)�”}”(hjN}h]”hŒdrm_driver.gem_prime_import”…”�”}”(hjP}h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjL}ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jÿj)�”}”j]”j|Œc.amdgpu_gem_prime_import”†”asbjŒ drm_driver”uh1hh³jŠch´K3hjH}ubhŒ implementation”…”�”}”(hjH}h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MBhjE}h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÒ{h²hh³jê{h´MBubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j„}j¡j„}j¢‰j£‰j¤‰uh1jbh²hhj ch³Nh´Nubj¦)�”}”(hX**Parameters** ``struct drm_device *dev`` DRM device ``struct dma_buf *dma_buf`` Shared DMA buffer **Description** Import a dma_buf into a the driver and potentially create a new GEM object. **Return** GEM BO representing the shared DMA buffer for the given device.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjŽ}h]”hŒ Parameters”…”�”}”(hj�}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjŒ}ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MFhjˆ}ubj )�”}”(hhh]”(j)�”}”(hŒ&``struct drm_device *dev`` DRM device ”h]”(j)�”}”(hŒ``struct drm_device *dev``”h]”j:)�”}”(hj­}h]”hŒstruct drm_device *dev”…”�”}”(hj¯}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj«}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MChj§}ubj$)�”}”(hhh]”hÝ)�”}”(hŒ DRM device”h]”hŒ DRM device”…”�”}”(hjÆ}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÂ}h´MChjÃ}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj§}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÂ}h´MChj¤}ubj)�”}”(hŒ.``struct dma_buf *dma_buf`` Shared DMA buffer ”h]”(j)�”}”(hŒ``struct dma_buf *dma_buf``”h]”j:)�”}”(hjæ}h]”hŒstruct dma_buf *dma_buf”…”�”}”(hjè}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjä}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MDhjà}ubj$)�”}”(hhh]”hÝ)�”}”(hŒShared DMA buffer”h]”hŒShared DMA buffer”…”�”}”(hjÿ}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jû}h´MDhjü}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjà}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jû}h´MDhj¤}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjˆ}ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj!~h]”hŒ Description”…”�”}”(hj#~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MFhjˆ}ubhÝ)�”}”(hŒKImport a dma_buf into a the driver and potentially create a new GEM object.”h]”hŒKImport a dma_buf into a the driver and potentially create a new GEM object.”…”�”}”(hj7~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MEhjˆ}ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjH~h]”hŒReturn”…”�”}”(hjJ~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjF~ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MGhjˆ}ubhÝ)�”}”(hŒ?GEM BO representing the shared DMA buffer for the given device.”h]”hŒ?GEM BO representing the shared DMA buffer for the given device.”…”�”}”(hj^~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MHhjˆ}ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj ch²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ-amdgpu_dmabuf_is_xgmi_accessible (C function)”Œ"c.amdgpu_dmabuf_is_xgmi_accessible”hNt”auh1jQhj ch²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒXbool amdgpu_dmabuf_is_xgmi_accessible (struct amdgpu_device *adev, struct amdgpu_bo *bo)”h]”jn)�”}”(hŒWbool amdgpu_dmabuf_is_xgmi_accessible(struct amdgpu_device *adev, struct amdgpu_bo *bo)”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hj�~h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj‰~h²hh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´Mnubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›~h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj‰~h²hh³jš~h´Mnubj—)�”}”(hŒ amdgpu_dmabuf_is_xgmi_accessible”h]”j�)�”}”(hŒ amdgpu_dmabuf_is_xgmi_accessible”h]”hŒ amdgpu_dmabuf_is_xgmi_accessible”…”�”}”(hj­~h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj©~ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj‰~h²hh³jš~h´Mnubj¸)�”}”(hŒ2(struct amdgpu_device *adev, struct amdgpu_bo *bo)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÉ~h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÅ~ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖ~h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÅ~ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjç~h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjä~ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jé~Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj¯~sbŒ"c.amdgpu_dmabuf_is_xgmi_accessible”†”asbuh1hhjÅ~ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÅ~ubj)�”}”(hjh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÅ~ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÅ~ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÁ~ubj¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj7ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj7ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjVubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j[Œmodname”NŒ classname”Njÿj)�”}”j]”jŒ"c.amdgpu_dmabuf_is_xgmi_accessible”†”asbuh1hhj7ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj7ubj)�”}”(hjh]”hŒ*”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj7ubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj7ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÁ~ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj‰~h²hh³jš~h´Mnubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj…~h²hh³jš~h´Mnubah}”(h]”j€~ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jš~h´Mnhj‚~h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ(Check if xgmi available for P2P transfer”h]”hŒ(Check if xgmi available for P2P transfer”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´Mnhj¹h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj‚~h²hh³jš~h´Mnubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jÔj¡jÔj¢‰j£‰j¤‰uh1jbh²hhj ch³Nh´Nubj¦)�”}”(hŒÊ**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer of the importer ``struct amdgpu_bo *bo`` amdgpu buffer object **Return** True if dmabuf accessible over xgmi, false otherwise.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjÞh]”hŒ Parameters”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÜubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MrhjØubj )�”}”(hhh]”(j)�”}”(hŒE``struct amdgpu_device *adev`` amdgpu_device pointer of the importer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjýh]”hŒstruct amdgpu_device *adev”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjûubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´Mphj÷ubj$)�”}”(hhh]”hÝ)�”}”(hŒ%amdgpu_device pointer of the importer”h]”hŒ%amdgpu_device pointer of the importer”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j€h´Mphj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj÷ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j€h´Mphjôubj)�”}”(hŒ.``struct amdgpu_bo *bo`` amdgpu buffer object ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hj6€h]”hŒstruct amdgpu_bo *bo”…”�”}”(hj8€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj4€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´Mqhj0€ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu buffer object”h]”hŒamdgpu buffer object”…”�”}”(hjO€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jK€h´MqhjL€ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj0€ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jK€h´Mqhjôubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjØubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjq€h]”hŒReturn”…”�”}”(hjs€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjo€ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MshjØubhÝ)�”}”(hŒ5True if dmabuf accessible over xgmi, false otherwise.”h]”hŒ5True if dmabuf accessible over xgmi, false otherwise.”…”�”}”(hj‡€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:207: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c”h´MshjØubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj ch²hh³Nh´Nubeh}”(h]”Œprime-buffer-sharing”ah ]”h"]”Œprime buffer sharing”ah$]”h&]”uh1hµhh·h²hh³hÊh´KÊubh¶)�”}”(hhh]”(h»)�”}”(hŒ MMU Notifier”h]”hŒ MMU Notifier”…”�”}”(hj¨€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj¥€h²hh³hÊh´KÓubhÝ)�”}”(hŒ{For coherent userptr handling registers an MMU notifier to inform the driver about updates on the page tables of a process.”h]”hŒ{For coherent userptr handling registers an MMU notifier to inform the driver about updates on the page tables of a process.”…”�”}”(hj¶€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:213: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´K hj¥€h²hubhÝ)�”}”(hŒÚWhen somebody tries to invalidate the page tables we block the update until all operations on the pages in question are completed, then those pages are marked as accessed and also dirty if it wasn't a read only access.”h]”hŒÜWhen somebody tries to invalidate the page tables we block the update until all operations on the pages in question are completed, then those pages are marked as accessed and also dirty if it wasn’t a read only access.”…”�”}”(hjÅ€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:213: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´K#hj¥€h²hubhÝ)�”}”(hŒ©New command submissions using the userptrs in question are delayed until all page table invalidation are completed and we once more see a coherent process address space.”h]”hŒ©New command submissions using the userptrs in question are delayed until all page table invalidation are completed and we once more see a coherent process address space.”…”�”}”(hjÔ€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:213: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´K'hj¥€h²hubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ&amdgpu_hmm_invalidate_gfx (C function)”Œc.amdgpu_hmm_invalidate_gfx”hNt”auh1jQhj¥€h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ�bool amdgpu_hmm_invalidate_gfx (struct mmu_interval_notifier *mni, const struct mmu_notifier_range *range, unsigned long cur_seq)”h]”jn)�”}”(hŒ€bool amdgpu_hmm_invalidate_gfx(struct mmu_interval_notifier *mni, const struct mmu_notifier_range *range, unsigned long cur_seq)”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hjü€h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjø€h²hh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´K7ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj �h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjø€h²hh³j �h´K7ubj—)�”}”(hŒamdgpu_hmm_invalidate_gfx”h]”j�)�”}”(hŒamdgpu_hmm_invalidate_gfx”h]”hŒamdgpu_hmm_invalidate_gfx”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj�ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjø€h²hh³j �h´K7ubj¸)�”}”(hŒb(struct mmu_interval_notifier *mni, const struct mmu_notifier_range *range, unsigned long cur_seq)”h]”(j¾)�”}”(hŒ!struct mmu_interval_notifier *mni”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj8�h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj4�ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjE�h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj4�ubh)�”}”(hhh]”j�)�”}”(hŒmmu_interval_notifier”h]”hŒmmu_interval_notifier”…”�”}”(hjV�h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjS�ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jX�Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj�sbŒc.amdgpu_hmm_invalidate_gfx”†”asbuh1hhj4�ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjv�h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj4�ubj)�”}”(hjh]”hŒ*”…”�”}”(hj„�h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj4�ubj�)�”}”(hŒmni”h]”hŒmni”…”�”}”(hj‘�h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj4�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj0�ubj¾)�”}”(hŒ&const struct mmu_notifier_range *range”h]”(jÄ)�”}”(hŒconst”h]”hŒconst”…”�”}”(hjª�h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj¦�ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¸�h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¦�ubjÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÆ�h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj¦�ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓ�h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¦�ubh)�”}”(hhh]”j�)�”}”(hŒmmu_notifier_range”h]”hŒmmu_notifier_range”…”�”}”(hjä�h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjá�ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jæ�Œmodname”NŒ classname”Njÿj)�”}”j]”jr�Œc.amdgpu_hmm_invalidate_gfx”†”asbuh1hhj¦�ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¦�ubj)�”}”(hjh]”hŒ*”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¦�ubj�)�”}”(hŒrange”h]”hŒrange”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¦�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj0�ubj¾)�”}”(hŒunsigned long cur_seq”h]”(jt)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj6‚h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj2‚ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjD‚h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj2‚ubjt)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjR‚h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj2‚ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`‚h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj2‚ubj�)�”}”(hŒcur_seq”h]”hŒcur_seq”…”�”}”(hjn‚h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj2‚ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj0�ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjø€h²hh³j �h´K7ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjô€h²hh³j �h´K7ubah}”(h]”jï€ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j �h´K7hjñ€h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ"callback to notify about mm change”h]”hŒ"callback to notify about mm change”…”�”}”(hj˜‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´K7hj•‚h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjñ€h²hh³j �h´K7ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j°‚j¡j°‚j¢‰j£‰j¤‰uh1jbh²hhj¥€h³Nh´Nubj¦)�”}”(hXR**Parameters** ``struct mmu_interval_notifier *mni`` the range (mm) is about to update ``const struct mmu_notifier_range *range`` details on the invalidation ``unsigned long cur_seq`` Value to pass to mmu_interval_set_seq() **Description** Block for operations on BOs to finish and mark pages as accessed and potentially dirty.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjº‚h]”hŒ Parameters”…”�”}”(hj¼‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¸‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´K;hj´‚ubj )�”}”(hhh]”(j)�”}”(hŒH``struct mmu_interval_notifier *mni`` the range (mm) is about to update ”h]”(j)�”}”(hŒ%``struct mmu_interval_notifier *mni``”h]”j:)�”}”(hjÙ‚h]”hŒ!struct mmu_interval_notifier *mni”…”�”}”(hjÛ‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjׂubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´K9hjÓ‚ubj$)�”}”(hhh]”hÝ)�”}”(hŒ!the range (mm) is about to update”h]”hŒ!the range (mm) is about to update”…”�”}”(hjò‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jî‚h´K9hjï‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÓ‚ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jî‚h´K9hjЂubj)�”}”(hŒG``const struct mmu_notifier_range *range`` details on the invalidation ”h]”(j)�”}”(hŒ*``const struct mmu_notifier_range *range``”h]”j:)�”}”(hjƒh]”hŒ&const struct mmu_notifier_range *range”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´K:hj ƒubj$)�”}”(hhh]”hÝ)�”}”(hŒdetails on the invalidation”h]”hŒdetails on the invalidation”…”�”}”(hj+ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j'ƒh´K:hj(ƒubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj ƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j'ƒh´K:hjЂubj)�”}”(hŒB``unsigned long cur_seq`` Value to pass to mmu_interval_set_seq() ”h]”(j)�”}”(hŒ``unsigned long cur_seq``”h]”j:)�”}”(hjKƒh]”hŒunsigned long cur_seq”…”�”}”(hjMƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjIƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´K;hjEƒubj$)�”}”(hhh]”hÝ)�”}”(hŒ'Value to pass to mmu_interval_set_seq()”h]”hŒ'Value to pass to mmu_interval_set_seq()”…”�”}”(hjdƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j`ƒh´K;hjaƒubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjEƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j`ƒh´K;hjЂubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj´‚ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj†ƒh]”hŒ Description”…”�”}”(hjˆƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj„ƒubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´K=hj´‚ubhÝ)�”}”(hŒWBlock for operations on BOs to finish and mark pages as accessed and potentially dirty.”h]”hŒWBlock for operations on BOs to finish and mark pages as accessed and potentially dirty.”…”�”}”(hjœƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´K` to validate **Description** Determines whether the given HMM range **range** is still valid by checking for invalidations via the MMU notifier sequence. This is typically used to verify that the range has not been invalidated by concurrent address space updates before it is accessed. **Return** * true if **range** is valid and can be used safely * false if **range** is NULL or has been invalidated”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj‹h]”hŒ Parameters”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Kçhj‹ubj )�”}”(hhh]”j)�”}”(hŒs``struct amdgpu_hmm_range *range`` pointer to the :c:type:`struct amdgpu_hmm_range ` to validate ”h]”(j)�”}”(hŒ"``struct amdgpu_hmm_range *range``”h]”j:)�”}”(hj%‹h]”hŒstruct amdgpu_hmm_range *range”…”�”}”(hj'‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj#‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Kähj‹ubj$)�”}”(hhh]”hÝ)�”}”(hŒOpointer to the :c:type:`struct amdgpu_hmm_range ` to validate”h]”(hŒpointer to the ”…”�”}”(hj>‹h²hh³Nh´Nubh)�”}”(hŒ4:c:type:`struct amdgpu_hmm_range `”h]”j:)�”}”(hjH‹h]”hŒstruct amdgpu_hmm_range”…”�”}”(hjJ‹h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hjF‹ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jÿjCjŒamdgpu_hmm_range”uh1hh³j:‹h´Kähj>‹ubhŒ to validate”…”�”}”(hj>‹h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j:‹h´Kähj;‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j:‹h´Kähj‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‹ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjƒ‹h]”hŒ Description”…”�”}”(hj…‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj�‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Kæhj‹ubhÝ)�”}”(hXDetermines whether the given HMM range **range** is still valid by checking for invalidations via the MMU notifier sequence. This is typically used to verify that the range has not been invalidated by concurrent address space updates before it is accessed.”h]”(hŒ'Determines whether the given HMM range ”…”�”}”(hj™‹h²hh³Nh´Nubjµ)�”}”(hŒ **range**”h]”hŒrange”…”�”}”(hj¡‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj™‹ubhŒÐ is still valid by checking for invalidations via the MMU notifier sequence. This is typically used to verify that the range has not been invalidated by concurrent address space updates before it is accessed.”…”�”}”(hj™‹h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Kåhj‹ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj¼‹h]”hŒReturn”…”�”}”(hj¾‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjº‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Kêhj‹ubhŒ bullet_list”“”)�”}”(hhh]”(j)�”}”(hŒ1true if **range** is valid and can be used safely”h]”hÝ)�”}”(hjÙ‹h]”(hŒtrue if ”…”�”}”(hjÛ‹h²hh³Nh´Nubjµ)�”}”(hŒ **range**”h]”hŒrange”…”�”}”(hjâ‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÛ‹ubhŒ is valid and can be used safely”…”�”}”(hjÛ‹h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Këhj׋ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÔ‹ubj)�”}”(hŒ2false if **range** is NULL or has been invalidated”h]”hÝ)�”}”(hjŒh]”(hŒ false if ”…”�”}”(hjŒh²hh³Nh´Nubjµ)�”}”(hŒ **range**”h]”hŒrange”…”�”}”(hj Œh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjŒubhŒ is NULL or has been invalidated”…”�”}”(hjŒh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´KìhjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÔ‹ubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”juh1jÒ‹h³jú‹h´Këhj‹ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj¥€h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ#amdgpu_hmm_range_alloc (C function)”Œc.amdgpu_hmm_range_alloc”hNt”auh1jQhj¥€h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒGstruct amdgpu_hmm_range * amdgpu_hmm_range_alloc (struct amdgpu_bo *bo)”h]”jn)�”}”(hŒEstruct amdgpu_hmm_range *amdgpu_hmm_range_alloc(struct amdgpu_bo *bo)”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjRŒh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjNŒh²hh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Kùubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`Œh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjNŒh²hh³j_Œh´Kùubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_hmm_range”h]”hŒamdgpu_hmm_range”…”�”}”(hjqŒh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjnŒubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jsŒŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒamdgpu_hmm_range_alloc”sbŒc.amdgpu_hmm_range_alloc”†”asbuh1hhjNŒh²hh³j_Œh´Kùubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’Œh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjNŒh²hh³j_Œh´Kùubj)�”}”(hjh]”hŒ*”…”�”}”(hj Œh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjNŒh²hh³j_Œh´Kùubj—)�”}”(hŒamdgpu_hmm_range_alloc”h]”j�)�”}”(hj�Œh]”hŒamdgpu_hmm_range_alloc”…”�”}”(hj±Œh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj­Œubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjNŒh²hh³j_Œh´Kùubj¸)�”}”(hŒ(struct amdgpu_bo *bo)”h]”j¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÌŒh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÈŒubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙŒh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÈŒubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hjêŒh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjçŒubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j쌌modname”NŒ classname”Njÿj)�”}”j]”j�ŒŒc.amdgpu_hmm_range_alloc”†”asbuh1hhjÈŒubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÈŒubj)�”}”(hjh]”hŒ*”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÈŒubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hj#�h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÈŒubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÄŒubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjNŒh²hh³j_Œh´Kùubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjJŒh²hh³j_Œh´Kùubah}”(h]”jEŒah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j_Œh´KùhjGŒh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ+allocate and initialize an AMDGPU HMM range”h]”hŒ+allocate and initialize an AMDGPU HMM range”…”�”}”(hjM�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´KùhjJ�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjGŒh²hh³j_Œh´Kùubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j je�j¡je�j¢‰j£‰j¤‰uh1jbh²hhj¥€h³Nh´Nubj¦)�”}”(hXh**Parameters** ``struct amdgpu_bo *bo`` optional buffer object to associate with this HMM range **Description** Allocates memory for amdgpu_hmm_range and associates it with the **bo** passed. The reference count of the **bo** is incremented. **Return** Pointer to a newly allocated struct amdgpu_hmm_range on success, or NULL if memory allocation fails.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjo�h]”hŒ Parameters”…”�”}”(hjq�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjm�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Kýhji�ubj )�”}”(hhh]”j)�”}”(hŒQ``struct amdgpu_bo *bo`` optional buffer object to associate with this HMM range ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hjŽ�h]”hŒstruct amdgpu_bo *bo”…”�”}”(hj��h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjŒ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Kúhjˆ�ubj$)�”}”(hhh]”hÝ)�”}”(hŒ7optional buffer object to associate with this HMM range”h]”hŒ7optional buffer object to associate with this HMM range”…”�”}”(hj§�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j£�h´Kúhj¤�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjˆ�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£�h´Kúhj…�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhji�ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjÉ�h]”hŒ Description”…”�”}”(hjË�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÇ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Kühji�ubhÝ)�”}”(hŒ�Allocates memory for amdgpu_hmm_range and associates it with the **bo** passed. The reference count of the **bo** is incremented.”h]”(hŒAAllocates memory for amdgpu_hmm_range and associates it with the ”…”�”}”(hjß�h²hh³Nh´Nubjµ)�”}”(hŒ**bo**”h]”hŒbo”…”�”}”(hjç�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjß�ubhŒ$ passed. The reference count of the ”…”�”}”(hjß�h²hh³Nh´Nubjµ)�”}”(hŒ**bo**”h]”hŒbo”…”�”}”(hjù�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjß�ubhŒ is incremented.”…”�”}”(hjß�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Kûhji�ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjŽh]”hŒReturn”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Kþhji�ubhÝ)�”}”(hŒdPointer to a newly allocated struct amdgpu_hmm_range on success, or NULL if memory allocation fails.”h]”hŒdPointer to a newly allocated struct amdgpu_hmm_range on success, or NULL if memory allocation fails.”…”�”}”(hj*Žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Kÿhji�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj¥€h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ"amdgpu_hmm_range_free (C function)”Œc.amdgpu_hmm_range_free”hNt”auh1jQhj¥€h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ;void amdgpu_hmm_range_free (struct amdgpu_hmm_range *range)”h]”jn)�”}”(hŒ:void amdgpu_hmm_range_free(struct amdgpu_hmm_range *range)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjYŽh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjUŽh²hh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Mubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhŽh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjUŽh²hh³jgŽh´Mubj—)�”}”(hŒamdgpu_hmm_range_free”h]”j�)�”}”(hŒamdgpu_hmm_range_free”h]”hŒamdgpu_hmm_range_free”…”�”}”(hjzŽh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjvŽubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjUŽh²hh³jgŽh´Mubj¸)�”}”(hŒ (struct amdgpu_hmm_range *range)”h]”j¾)�”}”(hŒstruct amdgpu_hmm_range *range”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj–Žh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj’Žubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£Žh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj’Žubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_hmm_range”h]”hŒamdgpu_hmm_range”…”�”}”(hj´Žh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj±Žubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j¶ŽŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj|ŽsbŒc.amdgpu_hmm_range_free”†”asbuh1hhj’Žubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔŽh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj’Žubj)�”}”(hjh]”hŒ*”…”�”}”(hjâŽh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj’Žubj�)�”}”(hŒrange”h]”hŒrange”…”�”}”(hjïŽh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj’Žubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjŽŽubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjUŽh²hh³jgŽh´Mubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjQŽh²hh³jgŽh´Mubah}”(h]”jLŽah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jgŽh´MhjNŽh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒrelease an AMDGPU HMM range”h]”hŒrelease an AMDGPU HMM range”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Mhj�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjNŽh²hh³jgŽh´Mubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j1�j¡j1�j¢‰j£‰j¤‰uh1jbh²hhj¥€h³Nh´Nubj¦)�”}”(hŒü**Parameters** ``struct amdgpu_hmm_range *range`` pointer to the range object to free **Description** Releases all resources held by **range**, including the associated hmm_pfns and the dropping reference of associated bo if any. **Return** void”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj;�h]”hŒ Parameters”…”�”}”(hj=�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj9�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Mhj5�ubj )�”}”(hhh]”j)�”}”(hŒG``struct amdgpu_hmm_range *range`` pointer to the range object to free ”h]”(j)�”}”(hŒ"``struct amdgpu_hmm_range *range``”h]”j:)�”}”(hjZ�h]”hŒstruct amdgpu_hmm_range *range”…”�”}”(hj\�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjX�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´MhjT�ubj$)�”}”(hhh]”hÝ)�”}”(hŒ#pointer to the range object to free”h]”hŒ#pointer to the range object to free”…”�”}”(hjs�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jo�h´Mhjp�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjT�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jo�h´MhjQ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj5�ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj•�h]”hŒ Description”…”�”}”(hj—�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj“�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Mhj5�ubhÝ)�”}”(hŒReleases all resources held by **range**, including the associated hmm_pfns and the dropping reference of associated bo if any.”h]”(hŒReleases all resources held by ”…”�”}”(hj«�h²hh³Nh´Nubjµ)�”}”(hŒ **range**”h]”hŒrange”…”�”}”(hj³�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj«�ubhŒW, including the associated hmm_pfns and the dropping reference of associated bo if any.”…”�”}”(hj«�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Mhj5�ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjÎ�h]”hŒReturn”…”�”}”(hjÐ�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÌ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Mhj5�ubhÝ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjä�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:216: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c”h´Mhj5�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj¥€h²hh³Nh´Nubeh}”(h]”Œ mmu-notifier”ah ]”h"]”Œ mmu notifier”ah$]”h&]”uh1hµhh·h²hh³hÊh´KÓubh¶)�”}”(hhh]”(h»)�”}”(hŒAMDGPU Virtual Memory”h]”hŒAMDGPU Virtual Memory”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj�h²hh³hÊh´KÜubhÝ)�”}”(hXºGPUVM is the MMU functionality provided on the GPU. GPUVM is similar to the legacy GART on older asics, however rather than there being a single global GART table for the entire GPU, there can be multiple GPUVM page tables active at any given time. The GPUVM page tables can contain a mix VRAM pages and system pages (both memory and MMIO) and system pages can be mapped as snooped (cached system pages) or unsnooped (uncached system pages).”h]”hXºGPUVM is the MMU functionality provided on the GPU. GPUVM is similar to the legacy GART on older asics, however rather than there being a single global GART table for the entire GPU, there can be multiple GPUVM page tables active at any given time. The GPUVM page tables can contain a mix VRAM pages and system pages (both memory and MMIO) and system pages can be mapped as snooped (cached system pages) or unsnooped (uncached system pages).”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:222: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´K1hj�h²hubhÝ)�”}”(hXïEach active GPUVM has an ID associated with it and there is a page table linked with each VMID. When executing a command buffer, the kernel tells the engine what VMID to use for that command buffer. VMIDs are allocated dynamically as commands are submitted. The userspace drivers maintain their own address space and the kernel sets up their pages tables accordingly when they submit their command buffers and a VMID is assigned. The hardware supports up to 16 active GPUVMs at any given time.”h]”hXïEach active GPUVM has an ID associated with it and there is a page table linked with each VMID. When executing a command buffer, the kernel tells the engine what VMID to use for that command buffer. VMIDs are allocated dynamically as commands are submitted. The userspace drivers maintain their own address space and the kernel sets up their pages tables accordingly when they submit their command buffers and a VMID is assigned. The hardware supports up to 16 active GPUVMs at any given time.”…”�”}”(hj"�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:222: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´K:hj�h²hubhÝ)�”}”(hŒÊEach GPUVM is represented by a 1-2 or 1-5 level page table, depending on the ASIC family. GPUVM supports RWX attributes on each page as well as other features such as encryption and caching attributes.”h]”hŒÊEach GPUVM is represented by a 1-2 or 1-5 level page table, depending on the ASIC family. GPUVM supports RWX attributes on each page as well as other features such as encryption and caching attributes.”…”�”}”(hj1�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:222: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´KChj�h²hubhÝ)�”}”(hXVMID 0 is special. It is the GPUVM used for the kernel driver. In addition to an aperture managed by a page table, VMID 0 also has several other apertures. There is an aperture for direct access to VRAM and there is a legacy AGP aperture which just forwards accesses directly to the matching system physical addresses (or IOVAs when an IOMMU is present). These apertures provide direct access to these memories without incurring the overhead of a page table. VMID 0 is used by the kernel driver for tasks like memory management.”h]”hXVMID 0 is special. It is the GPUVM used for the kernel driver. In addition to an aperture managed by a page table, VMID 0 also has several other apertures. There is an aperture for direct access to VRAM and there is a legacy AGP aperture which just forwards accesses directly to the matching system physical addresses (or IOVAs when an IOMMU is present). These apertures provide direct access to these memories without incurring the overhead of a page table. VMID 0 is used by the kernel driver for tasks like memory management.”…”�”}”(hj@�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:222: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´KGhj�h²hubhÝ)�”}”(hXŽGPU clients (i.e., engines on the GPU) use GPUVM VMIDs to access memory. For user applications, each application can have their own unique GPUVM address space. The application manages the address space and the kernel driver manages the GPUVM page tables for each process. If an GPU client accesses an invalid page, it will generate a GPU page fault, similar to accessing an invalid page on a CPU.”h]”hXŽGPU clients (i.e., engines on the GPU) use GPUVM VMIDs to access memory. For user applications, each application can have their own unique GPUVM address space. The application manages the address space and the kernel driver manages the GPUVM page tables for each process. If an GPU client accesses an invalid page, it will generate a GPU page fault, similar to accessing an invalid page on a CPU.”…”�”•}”(hjO�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:222: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´KPhj�h²hubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_prt_cb (C struct)”Œc.amdgpu_prt_cb”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ amdgpu_prt_cb”h]”jn)�”}”(hŒstruct amdgpu_prt_cb”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjw�h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjs�h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Kubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…�h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjs�h²hh³j„�h´Kubj—)�”}”(hŒ amdgpu_prt_cb”h]”j�)�”}”(hjq�h]”hŒ amdgpu_prt_cb”…”�”}”(hj—�h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj“�ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjs�h²hh³j„�h´Kubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjo�h²hh³j„�h´Kubah}”(h]”jj�ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j„�h´Khjl�h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒHHelper to disable partial resident texture feature from a fence callback”h]”hŒHHelper to disable partial resident texture feature from a fence callback”…”�”}”(hj¹�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Kdhj¶�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjl�h²hh³j„�h´Kubeh}”(h]”h ]”(j4Œstruct”eh"]”h$]”h&]”jŸj4j jÑ�j¡jÑ�j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒ©**Definition**:: struct amdgpu_prt_cb { struct amdgpu_device *adev; struct dma_fence_cb cb; }; **Members** ``adev`` amdgpu device ``cb`` callback”h]”(hÝ)�”}”(hŒ**Definition**::”h]”(jµ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÝ�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÙ�ubhŒ:”…”�”}”(hjÙ�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´KhhjÕ�ubhŒ literal_block”“”)�”}”(hŒUstruct amdgpu_prt_cb { struct amdgpu_device *adev; struct dma_fence_cb cb; };”h]”hŒUstruct amdgpu_prt_cb { struct amdgpu_device *adev; struct dma_fence_cb cb; };”…”�”}”hjø�sbah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1jö�h³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´KjhjÕ�ubhÝ)�”}”(hŒ **Members**”h]”jµ)�”}”(hj ‘h]”hŒMembers”…”�”}”(hj ‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´KohjÕ�ubj )�”}”(hhh]”(j)�”}”(hŒ``adev`` amdgpu device ”h]”(j)�”}”(hŒ``adev``”h]”j:)�”}”(hj(‘h]”hŒadev”…”�”}”(hj*‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj&‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Kjhj"‘ubj$)�”}”(hhh]”hÝ)�”}”(hŒ amdgpu device”h]”hŒ amdgpu device”…”�”}”(hjA‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j=‘h´Kjhj>‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj"‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j=‘h´Kjhj‘ubj)�”}”(hŒ``cb`` callback”h]”(j)�”}”(hŒ``cb``”h]”j:)�”}”(hja‘h]”hŒcb”…”�”}”(hjc‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj_‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Knhj[‘ubj$)�”}”(hhh]”hÝ)�”}”(hŒcallback”h]”hŒcallback”…”�”}”(hjz‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Kohjw‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj[‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jv‘h´Knhj‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÕ�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ#amdgpu_vm_tlb_seq_struct (C struct)”Œc.amdgpu_vm_tlb_seq_struct”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒamdgpu_vm_tlb_seq_struct”h]”jn)�”}”(hŒstruct amdgpu_vm_tlb_seq_struct”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj»‘h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj·‘h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Kuubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉ‘h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj·‘h²hh³jÈ‘h´Kuubj—)�”}”(hŒamdgpu_vm_tlb_seq_struct”h]”j�)�”}”(hjµ‘h]”hŒamdgpu_vm_tlb_seq_struct”…”�”}”(hjÛ‘h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjבubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj·‘h²hh³jÈ‘h´Kuubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj³‘h²hh³jÈ‘h´Kuubah}”(h]”j®‘ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÈ‘h´Kuhj°‘h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ*Helper to increment the TLB flush sequence”h]”hŒ*Helper to increment the TLB flush sequence”…”�”}”(hjý‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Kthjú‘h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj°‘h²hh³jÈ‘h´Kuubeh}”(h]”h ]”(j4Œstruct”eh"]”h$]”h&]”jŸj4j j’j¡j’j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒÞ**Definition**:: struct amdgpu_vm_tlb_seq_struct { struct amdgpu_vm *vm; struct dma_fence_cb cb; }; **Members** ``vm`` pointer to the amdgpu_vm structure to set the fence sequence on ``cb`` callback”h]”(hÝ)�”}”(hŒ**Definition**::”h]”(jµ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj!’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj’ubhŒ:”…”�”}”(hj’h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Kxhj’ubj÷�)�”}”(hŒZstruct amdgpu_vm_tlb_seq_struct { struct amdgpu_vm *vm; struct dma_fence_cb cb; };”h]”hŒZstruct amdgpu_vm_tlb_seq_struct { struct amdgpu_vm *vm; struct dma_fence_cb cb; };”…”�”}”hj:’sbah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1jö�h³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Kzhj’ubhÝ)�”}”(hŒ **Members**”h]”jµ)�”}”(hjK’h]”hŒMembers”…”�”}”(hjM’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjI’ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Khj’ubj )�”}”(hhh]”(j)�”}”(hŒG``vm`` pointer to the amdgpu_vm structure to set the fence sequence on ”h]”(j)�”}”(hŒ``vm``”h]”j:)�”}”(hjj’h]”hŒvm”…”�”}”(hjl’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjh’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Kyhjd’ubj$)�”}”(hhh]”hÝ)�”}”(hŒ?pointer to the amdgpu_vm structure to set the fence sequence on”h]”hŒ?pointer to the amdgpu_vm structure to set the fence sequence on”…”�”}”(hjƒ’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j’h´Kyhj€’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjd’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j’h´Kyhja’ubj)�”}”(hŒ``cb`` callback”h]”(j)�”}”(hŒ``cb``”h]”j:)�”}”(hj£’h]”hŒcb”…”�”}”(hj¥’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj¡’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´K}hj�’ubj$)�”}”(hhh]”hÝ)�”}”(hŒcallback”h]”hŒcallback”…”�”}”(hj¼’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´K~hj¹’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj�’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¸’h´K}hja’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj’ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ$amdgpu_vm_assert_locked (C function)”Œc.amdgpu_vm_assert_locked”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ3void amdgpu_vm_assert_locked (struct amdgpu_vm *vm)”h]”jn)�”}”(hŒ2void amdgpu_vm_assert_locked(struct amdgpu_vm *vm)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjý’h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjù’h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Kƒubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj “h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjù’h²hh³j “h´Kƒubj—)�”}”(hŒamdgpu_vm_assert_locked”h]”j�)�”}”(hŒamdgpu_vm_assert_locked”h]”hŒamdgpu_vm_assert_locked”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj“ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjù’h²hh³j “h´Kƒubj¸)�”}”(hŒ(struct amdgpu_vm *vm)”h]”j¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj:“h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj6“ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjG“h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj6“ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hjX“h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjU“ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jZ“Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj “sbŒc.amdgpu_vm_assert_locked”†”asbuh1hhj6“ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjx“h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj6“ubj)�”}”(hjh]”hŒ*”…”�”}”(hj†“h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj6“ubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hj““h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj6“ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj2“ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjù’h²hh³j “h´Kƒubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjõ’h²hh³j “h´Kƒubah}”(h]”jð’ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j “h´Kƒhjò’h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒcheck if VM is correctly locked”h]”hŒcheck if VM is correctly locked”…”�”}”(hj½“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Kƒhjº“h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjò’h²hh³j “h´Kƒubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jÕ“j¡jÕ“j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒ‚**Parameters** ``struct amdgpu_vm *vm`` the VM which schould be tested **Description** Asserts that the VM root PD is locked.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjß“h]”hŒ Parameters”…”�”}”(hjá“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÝ“ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´K‡hjÙ“ubj )�”}”(hhh]”j)�”}”(hŒ8``struct amdgpu_vm *vm`` the VM which schould be tested ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hjþ“h]”hŒstruct amdgpu_vm *vm”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjü“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´K„hjø“ubj$)�”}”(hhh]”hÝ)�”}”(hŒthe VM which schould be tested”h]”hŒthe VM which schould be tested”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j”h´K„hj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjø“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j”h´K„hjõ“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÙ“ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj9”h]”hŒ Description”…”�”}”(hj;”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj7”ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´K†hjÙ“ubhÝ)�”}”(hŒ&Asserts that the VM root PD is locked.”h]”hŒ&Asserts that the VM root PD is locked.”…”�”}”(hjO”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´K…hjÙ“ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ)amdgpu_vm_is_bo_always_valid (C function)”Œc.amdgpu_vm_is_bo_always_valid”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒNbool amdgpu_vm_is_bo_always_valid (struct amdgpu_vm *vm, struct amdgpu_bo *bo)”h]”jn)�”}”(hŒMbool amdgpu_vm_is_bo_always_valid(struct amdgpu_vm *vm, struct amdgpu_bo *bo)”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hj~”h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjz”h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´K·ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒ”h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjz”h²hh³j‹”h´K·ubj—)�”}”(hŒamdgpu_vm_is_bo_always_valid”h]”j�)�”}”(hŒamdgpu_vm_is_bo_always_valid”h]”hŒamdgpu_vm_is_bo_always_valid”…”�”}”(hjž”h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjš”ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjz”h²hh³j‹”h´K·ubj¸)�”}”(hŒ,(struct amdgpu_vm *vm, struct amdgpu_bo *bo)”h]”(j¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjº”h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj¶”ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÇ”h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¶”ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hjØ”h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÕ”ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÚ”Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj ”sbŒc.amdgpu_vm_is_bo_always_valid”†”asbuh1hhj¶”ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjø”h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¶”ubj)�”}”(hjh]”hŒ*”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¶”ubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¶”ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj²”ubj¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj,•h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj(•ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9•h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj(•ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hjJ•h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjG•ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jL•Œmodname”NŒ classname”Njÿj)�”}”j]”jô”Œc.amdgpu_vm_is_bo_always_valid”†”asbuh1hhj(•ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh•h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj(•ubj)�”}”(hjh]”hŒ*”…”�”}”(hjv•h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj(•ubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjƒ•h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj(•ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj²”ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjz”h²hh³j‹”h´K·ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjv”h²hh³j‹”h´K·ubah}”(h]”jq”ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j‹”h´K·hjs”h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ"check if the BO is VM always valid”h]”hŒ"check if the BO is VM always valid”…”�”}”(hj­•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´K·hjª•h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjs”h²hh³j‹”h´K·ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jÅ•j¡jÅ•j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒô**Parameters** ``struct amdgpu_vm *vm`` VM to test against. ``struct amdgpu_bo *bo`` BO to be tested. **Description** Returns true if the BO shares the dma_resv object with the root PD and is always guaranteed to be valid inside the VM.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjÏ•h]”hŒ Parameters”…”�”}”(hjÑ•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÍ•ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´K»hjÉ•ubj )�”}”(hhh]”(j)�”}”(hŒ-``struct amdgpu_vm *vm`` VM to test against. ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hjî•h]”hŒstruct amdgpu_vm *vm”…”�”}”(hjð•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjì•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´K¹hjè•ubj$)�”}”(hhh]”hÝ)�”}”(hŒVM to test against.”h]”hŒVM to test against.”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j–h´K¹hj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjè•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j–h´K¹hjå•ubj)�”}”(hŒ*``struct amdgpu_bo *bo`` BO to be tested. ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hj'–h]”hŒstruct amdgpu_bo *bo”…”�”}”(hj)–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj%–ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Kºhj!–ubj$)�”}”(hhh]”hÝ)�”}”(hŒBO to be tested.”h]”hŒBO to be tested.”…”�”}”(hj@–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j<–h´Kºhj=–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj!–ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j<–h´Kºhjå•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÉ•ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjb–h]”hŒ Description”…”�”}”(hjd–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj`–ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´K¼hjÉ•ubhÝ)�”}”(hŒvReturns true if the BO shares the dma_resv object with the root PD and is always guaranteed to be valid inside the VM.”h]”hŒvReturns true if the BO shares the dma_resv object with the root PD and is always guaranteed to be valid inside the VM.”…”�”}”(hjx–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´K»hjÉ•ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ!amdgpu_vm_bo_evicted (C function)”Œc.amdgpu_vm_bo_evicted”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ;void amdgpu_vm_bo_evicted (struct amdgpu_vm_bo_base *vm_bo)”h]”jn)�”}”(hŒ:void amdgpu_vm_bo_evicted(struct amdgpu_vm_bo_base *vm_bo)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj§–h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj£–h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´KÅubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶–h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj£–h²hh³jµ–h´KÅubj—)�”}”(hŒamdgpu_vm_bo_evicted”h]”j�)�”}”(hŒamdgpu_vm_bo_evicted”h]”hŒamdgpu_vm_bo_evicted”…”�”}”(hjÈ–h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÄ–ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj£–h²hh³jµ–h´KÅubj¸)�”}”(hŒ!(struct amdgpu_vm_bo_base *vm_bo)”h]”j¾)�”}”(hŒstruct amdgpu_vm_bo_base *vm_bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjä–h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjà–ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñ–h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjà–ubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_vm_bo_base”h]”hŒamdgpu_vm_bo_base”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÿ–ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j—Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjÊ–sbŒc.amdgpu_vm_bo_evicted”†”asbuh1hhjà–ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"—h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjà–ubj)�”}”(hjh]”hŒ*”…”�”}”(hj0—h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjà–ubj�)�”}”(hŒvm_bo”h]”hŒvm_bo”…”�”}”(hj=—h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjà–ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÜ–ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj£–h²hh³jµ–h´KÅubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjŸ–h²hh³jµ–h´KÅubah}”(h]”jš–ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jµ–h´KÅhjœ–h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒvm_bo is evicted”h]”hŒvm_bo is evicted”…”�”}”(hjg—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´KÅhjd—h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjœ–h²hh³jµ–h´KÅubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j—j¡j—j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒ½**Parameters** ``struct amdgpu_vm_bo_base *vm_bo`` vm_bo which is evicted **Description** State for vm_bo objects meaning the underlying BO was evicted and need to move in place again.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj‰—h]”hŒ Parameters”…”�”}”(hj‹—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj‡—ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´KÉhjƒ—ubj )�”}”(hhh]”j)�”}”(hŒ;``struct amdgpu_vm_bo_base *vm_bo`` vm_bo which is evicted ”h]”(j)�”}”(hŒ#``struct amdgpu_vm_bo_base *vm_bo``”h]”j:)�”}”(hj¨—h]”hŒstruct amdgpu_vm_bo_base *vm_bo”…”�”}”(hjª—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj¦—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´KÇhj¢—ubj$)�”}”(hhh]”hÝ)�”}”(hŒvm_bo which is evicted”h]”hŒvm_bo which is evicted”…”�”}”(hjÁ—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j½—h´KÇhj¾—ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj¢—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j½—h´KÇhjŸ—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjƒ—ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjã—h]”hŒ Description”…”�”}”(hjå—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjá—ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´KÉhjƒ—ubhÝ)�”}”(hŒ^State for vm_bo objects meaning the underlying BO was evicted and need to move in place again.”h]”hŒ^State for vm_bo objects meaning the underlying BO was evicted and need to move in place again.”…”�”}”(hjù—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´KÈhjƒ—ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ&amdgpu_vm_bo_needs_update (C function)”Œc.amdgpu_vm_bo_needs_update”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ@void amdgpu_vm_bo_needs_update (struct amdgpu_vm_bo_base *vm_bo)”h]”jn)�”}”(hŒ?void amdgpu_vm_bo_needs_update(struct amdgpu_vm_bo_base *vm_bo)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj(˜h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj$˜h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´KÖubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7˜h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj$˜h²hh³j6˜h´KÖubj—)�”}”(hŒamdgpu_vm_bo_needs_update”h]”j�)�”}”(hŒamdgpu_vm_bo_needs_update”h]”hŒamdgpu_vm_bo_needs_update”…”�”}”(hjI˜h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjE˜ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj$˜h²hh³j6˜h´KÖubj¸)�”}”(hŒ!(struct amdgpu_vm_bo_base *vm_bo)”h]”j¾)�”}”(hŒstruct amdgpu_vm_bo_base *vm_bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hje˜h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhja˜ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjr˜h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hja˜ubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_vm_bo_base”h]”hŒamdgpu_vm_bo_base”…”�”}”(hjƒ˜h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj€˜ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j…˜Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjK˜sbŒc.amdgpu_vm_bo_needs_update”†”asbuh1hhja˜ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£˜h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hja˜ubj)�”}”(hjh]”hŒ*”…”�”}”(hj±˜h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhja˜ubj�)�”}”(hŒvm_bo”h]”hŒvm_bo”…”�”}”(hj¾˜h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhja˜ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj]˜ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj$˜h²hh³j6˜h´KÖubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj ˜h²hh³j6˜h´KÖubah}”(h]”j˜ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j6˜h´KÖhj˜h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒvm_bo needs pagetable update”h]”hŒvm_bo needs pagetable update”…”�”}”(hjè˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´KÖhjå˜h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj˜h²hh³j6˜h´KÖubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j™j¡j™j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒþ**Parameters** ``struct amdgpu_vm_bo_base *vm_bo`` vm_bo which is out of date **Description** State for vm_bo objects meaning the underlying BO had mapping changes (move, PRT bind/unbind) but the new location is not yet reflected in the page tables.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj ™h]”hŒ Parameters”…”�”}”(hj ™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´KÚhj™ubj )�”}”(hhh]”j)�”}”(hŒ?``struct amdgpu_vm_bo_base *vm_bo`` vm_bo which is out of date ”h]”(j)�”}”(hŒ#``struct amdgpu_vm_bo_base *vm_bo``”h]”j:)�”}”(hj)™h]”hŒstruct amdgpu_vm_bo_base *vm_bo”…”�”}”(hj+™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj'™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´KØhj#™ubj$)�”}”(hhh]”hÝ)�”}”(hŒvm_bo which is out of date”h]”hŒvm_bo which is out of date”…”�”}”(hjB™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j>™h´KØhj?™ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj#™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j>™h´KØhj ™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj™ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjd™h]”hŒ Description”…”�”}”(hjf™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjb™ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´KÚhj™ubhÝ)�”}”(hŒ›State for vm_bo objects meaning the underlying BO had mapping changes (move, PRT bind/unbind) but the new location is not yet reflected in the page tables.”h]”hŒ›State for vm_bo objects meaning the underlying BO had mapping changes (move, PRT bind/unbind) but the new location is not yet reflected in the page tables.”…”�”}”(hjz™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´KÙhj™ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_vm_bo_idle (C function)”Œc.amdgpu_vm_bo_idle”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ8void amdgpu_vm_bo_idle (struct amdgpu_vm_bo_base *vm_bo)”h]”jn)�”}”(hŒ7void amdgpu_vm_bo_idle(struct amdgpu_vm_bo_base *vm_bo)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj©™h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj¥™h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Kñubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¸™h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¥™h²hh³j·™h´Kñubj—)�”}”(hŒamdgpu_vm_bo_idle”h]”j�)�”}”(hŒamdgpu_vm_bo_idle”h]”hŒamdgpu_vm_bo_idle”…”�”}”(hjÊ™h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÆ™ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj¥™h²hh³j·™h´Kñubj¸)�”}”(hŒ!(struct amdgpu_vm_bo_base *vm_bo)”h]”j¾)�”}”(hŒstruct amdgpu_vm_bo_base *vm_bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjæ™h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjâ™ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjó™h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjâ™ubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_vm_bo_base”h]”hŒamdgpu_vm_bo_base”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjšubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jšŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjÌ™sbŒc.amdgpu_vm_bo_idle”†”asbuh1hhjâ™ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$šh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjâ™ubj)�”}”(hjh]”hŒ*”…”�”}”(hj2šh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjâ™ubj�)�”}”(hŒvm_bo”h]”hŒvm_bo”…”�”}”(hj?šh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjâ™ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÞ™ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj¥™h²hh³j·™h´Kñubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj¡™h²hh³j·™h´Kñubah}”(h]”jœ™ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j·™h´Kñhjž™h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ vm_bo is idle”h]”hŒ vm_bo is idle”…”�”}”(hjišh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Kñhjfšh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjž™h²hh³j·™h´Kñubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j�šj¡j�šj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒÆ**Parameters** ``struct amdgpu_vm_bo_base *vm_bo`` vm_bo which is now idle **Description** State for vm_bo objects meaning we are done with the state machine and no further action is necessary.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj‹šh]”hŒ Parameters”…”�”}”(hj�šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj‰šubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Kõhj…šubj )�”}”(hhh]”j)�”}”(hŒ<``struct amdgpu_vm_bo_base *vm_bo`` vm_bo which is now idle ”h]”(j)�”}”(hŒ#``struct amdgpu_vm_bo_base *vm_bo``”h]”j:)�”}”(hjªšh]”hŒstruct amdgpu_vm_bo_base *vm_bo”…”�”}”(hj¬šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj¨šubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Kóhj¤šubj$)�”}”(hhh]”hÝ)�”}”(hŒvm_bo which is now idle”h]”hŒvm_bo which is now idle”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¿šh´KóhjÀšubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj¤šubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¿šh´Kóhj¡šubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj…šubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjåšh]”hŒ Description”…”�”}”(hjçšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjãšubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Kõhj…šubhÝ)�”}”(hŒfState for vm_bo objects meaning we are done with the state machine and no further action is necessary.”h]”hŒfState for vm_bo objects meaning we are done with the state machine and no further action is necessary.”…”�”}”(hjûšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Kôhj…šubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ-amdgpu_vm_bo_reset_state_machine (C function)”Œ"c.amdgpu_vm_bo_reset_state_machine”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒtbo.resource ``int sign`` if we should add (+1) or subtract (-1) from the stat **Description** Caller need to have the vm stats_lock held. Useful for when multiple update need to happen at the same time.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj4¡h]”hŒ Parameters”…”�”}”(hj6¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj2¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MThj.¡ubj )�”}”(hhh]”(j)�”}”(hŒP``struct amdgpu_vm_bo_base *base`` base structure for tracking BO usage in a VM ”h]”(j)�”}”(hŒ"``struct amdgpu_vm_bo_base *base``”h]”j:)�”}”(hjS¡h]”hŒstruct amdgpu_vm_bo_base *base”…”�”}”(hjU¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjQ¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MQhjM¡ubj$)�”}”(hhh]”hÝ)�”}”(hŒ,base structure for tracking BO usage in a VM”h]”hŒ,base structure for tracking BO usage in a VM”…”�”}”(hjl¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jh¡h´MQhji¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjM¡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jh¡h´MQhjJ¡ubj)�”}”(hŒw``struct ttm_resource *res`` the ttm_resource to use for the purpose of accounting, may or may not be bo->tbo.resource ”h]”(j)�”}”(hŒ``struct ttm_resource *res``”h]”j:)�”}”(hjŒ¡h]”hŒstruct ttm_resource *res”…”�”}”(hjŽ¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjŠ¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MShj†¡ubj$)�”}”(hhh]”hÝ)�”}”(hŒYthe ttm_resource to use for the purpose of accounting, may or may not be bo->tbo.resource”h]”hŒYthe ttm_resource to use for the purpose of accounting, may or may not be bo->tbo.resource”…”�”}”(hj¥¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MRhj¢¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj†¡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¡¡h´MShjJ¡ubj)�”}”(hŒB``int sign`` if we should add (+1) or subtract (-1) from the stat ”h]”(j)�”}”(hŒ ``int sign``”h]”j:)�”}”(hjÆ¡h]”hŒint sign”…”�”}”(hjÈ¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÄ¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MThjÀ¡ubj$)�”}”(hhh]”hÝ)�”}”(hŒ4if we should add (+1) or subtract (-1) from the stat”h]”hŒ4if we should add (+1) or subtract (-1) from the stat”…”�”}”(hjß¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÛ¡h´MThjÜ¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÀ¡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÛ¡h´MThjJ¡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj.¡ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj¢h]”hŒ Description”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÿ¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MVhj.¡ubhÝ)�”}”(hŒlCaller need to have the vm stats_lock held. Useful for when multiple update need to happen at the same time.”h]”hŒlCaller need to have the vm stats_lock held. Useful for when multiple update need to happen at the same time.”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MUhj.¡ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ#amdgpu_vm_update_stats (C function)”Œc.amdgpu_vm_update_stats”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ`void amdgpu_vm_update_stats (struct amdgpu_vm_bo_base *base, struct ttm_resource *res, int sign)”h]”jn)�”}”(hŒ_void amdgpu_vm_update_stats(struct amdgpu_vm_bo_base *base, struct ttm_resource *res, int sign)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjF¢h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjB¢h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Myubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjU¢h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjB¢h²hh³jT¢h´Myubj—)�”}”(hŒamdgpu_vm_update_stats”h]”j�)�”}”(hŒamdgpu_vm_update_stats”h]”hŒamdgpu_vm_update_stats”…”�”}”(hjg¢h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjc¢ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjB¢h²hh³jT¢h´Myubj¸)�”}”(hŒD(struct amdgpu_vm_bo_base *base, struct ttm_resource *res, int sign)”h]”(j¾)�”}”(hŒstruct amdgpu_vm_bo_base *base”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjƒ¢h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj¢ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�¢h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¢ubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_vm_bo_base”h]”hŒamdgpu_vm_bo_base”…”�”}”(hj¡¢h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjž¢ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j£¢Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûji¢sbŒc.amdgpu_vm_update_stats”†”asbuh1hhj¢ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁ¢h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¢ubj)�”}”(hjh]”hŒ*”…”�”}”(hjÏ¢h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¢ubj�)�”}”(hŒbase”h]”hŒbase”…”�”}”(hjÜ¢h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¢ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj{¢ubj¾)�”}”(hŒstruct ttm_resource *res”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjõ¢h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjñ¢ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjñ¢ubh)�”}”(hhh]”j�)�”}”(hŒ ttm_resource”h]”hŒ ttm_resource”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj£ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j£Œmodname”NŒ classname”Njÿj)�”}”j]”j½¢Œc.amdgpu_vm_update_stats”†”asbuh1hhjñ¢ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1£h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjñ¢ubj)�”}”(hjh]”hŒ*”…”�”}”(hj?£h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjñ¢ubj�)�”}”(hŒres”h]”hŒres”…”�”}”(hjL£h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjñ¢ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj{¢ubj¾)�”}”(hŒint sign”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hje£h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshja£ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjs£h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hja£ubj�)�”}”(hŒsign”h]”hŒsign”…”�”}”(hj�£h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhja£ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj{¢ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjB¢h²hh³jT¢h´Myubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj>¢h²hh³jT¢h´Myubah}”(h]”j9¢ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jT¢h´Myhj;¢h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ#helper to update normal memory stat”h]”hŒ#helper to update normal memory stat”…”�”}”(hj«£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Myhj¨£h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj;¢h²hh³jT¢h´Myubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jãj¡jãj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hXr**Parameters** ``struct amdgpu_vm_bo_base *base`` base structure for tracking BO usage in a VM ``struct ttm_resource *res`` the ttm_resource to use for the purpose of accounting, may or may not be bo->tbo.resource ``int sign`` if we should add (+1) or subtract (-1) from the stat **Description** Updates the basic memory stat when bo is added/deleted/moved.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjÍ£h]”hŒ Parameters”…”�”}”(hjÏ£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjË£ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M}hjÇ£ubj )�”}”(hhh]”(j)�”}”(hŒP``struct amdgpu_vm_bo_base *base`` base structure for tracking BO usage in a VM ”h]”(j)�”}”(hŒ"``struct amdgpu_vm_bo_base *base``”h]”j:)�”}”(hjì£h]”hŒstruct amdgpu_vm_bo_base *base”…”�”}”(hjî£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjê£ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mzhjæ£ubj$)�”}”(hhh]”hÝ)�”}”(hŒ,base structure for tracking BO usage in a VM”h]”hŒ,base structure for tracking BO usage in a VM”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¤h´Mzhj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjæ£ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¤h´Mzhjã£ubj)�”}”(hŒw``struct ttm_resource *res`` the ttm_resource to use for the purpose of accounting, may or may not be bo->tbo.resource ”h]”(j)�”}”(hŒ``struct ttm_resource *res``”h]”j:)�”}”(hj%¤h]”hŒstruct ttm_resource *res”…”�”}”(hj'¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj#¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M|hj¤ubj$)�”}”(hhh]”hÝ)�”}”(hŒYthe ttm_resource to use for the purpose of accounting, may or may not be bo->tbo.resource”h]”hŒYthe ttm_resource to use for the purpose of accounting, may or may not be bo->tbo.resource”…”�”}”(hj>¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M{hj;¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j:¤h´M|hjã£ubj)�”}”(hŒB``int sign`` if we should add (+1) or subtract (-1) from the stat ”h]”(j)�”}”(hŒ ``int sign``”h]”j:)�”}”(hj_¤h]”hŒint sign”…”�”}”(hja¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj]¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M}hjY¤ubj$)�”}”(hhh]”hÝ)�”}”(hŒ4if we should add (+1) or subtract (-1) from the stat”h]”hŒ4if we should add (+1) or subtract (-1) from the stat”…”�”}”(hjx¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jt¤h´M}hju¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjY¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jt¤h´M}hjã£ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÇ£ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjš¤h]”hŒ Description”…”�”}”(hjœ¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj˜¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MhjÇ£ubhÝ)�”}”(hŒ=Updates the basic memory stat when bo is added/deleted/moved.”h]”hŒ=Updates the basic memory stat when bo is added/deleted/moved.”…”�”}”(hj°¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M~hjÇ£ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ#amdgpu_vm_bo_base_init (C function)”Œc.amdgpu_vm_bo_base_init”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒhvoid amdgpu_vm_bo_base_init (struct amdgpu_vm_bo_base *base, struct amdgpu_vm *vm, struct amdgpu_bo *bo)”h]”jn)�”}”(hŒgvoid amdgpu_vm_bo_base_init(struct amdgpu_vm_bo_base *base, struct amdgpu_vm *vm, struct amdgpu_bo *bo)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjߤh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÛ¤h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MŒubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjî¤h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÛ¤h²hh³jí¤h´MŒubj—)�”}”(hŒamdgpu_vm_bo_base_init”h]”j�)�”}”(hŒamdgpu_vm_bo_base_init”h]”hŒamdgpu_vm_bo_base_init”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjü¤ubah}”(h]”h ]”(j°j±eh"]”•h$]”h&]”jµj¶uh1j–hjÛ¤h²hh³jí¤h´MŒubj¸)�”}”(hŒL(struct amdgpu_vm_bo_base *base, struct amdgpu_vm *vm, struct amdgpu_bo *bo)”h]”(j¾)�”}”(hŒstruct amdgpu_vm_bo_base *base”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj¥ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)¥h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¥ubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_vm_bo_base”h]”hŒamdgpu_vm_bo_base”…”�”}”(hj:¥h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj7¥ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j<¥Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj¥sbŒc.amdgpu_vm_bo_base_init”†”asbuh1hhj¥ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjZ¥h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¥ubj)�”}”(hjh]”hŒ*”…”�”}”(hjh¥h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¥ubj�)�”}”(hŒbase”h]”hŒbase”…”�”}”(hju¥h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¥ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¥ubj¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjŽ¥h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjŠ¥ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›¥h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjŠ¥ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hj¬¥h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj©¥ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j®¥Œmodname”NŒ classname”Njÿj)�”}”j]”jV¥Œc.amdgpu_vm_bo_base_init”†”asbuh1hhjŠ¥ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊ¥h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjŠ¥ubj)�”}”(hjh]”hŒ*”…”�”}”(hjØ¥h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjŠ¥ubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjå¥h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjŠ¥ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¥ubj¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjþ¥h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjú¥ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ¦h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjú¥ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¦ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j¦Œmodname”NŒ classname”Njÿj)�”}”j]”jV¥Œc.amdgpu_vm_bo_base_init”†”asbuh1hhjú¥ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:¦h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjú¥ubj)�”}”(hjh]”hŒ*”…”�”}”(hjH¦h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjú¥ubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjU¦h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjú¥ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¥ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjÛ¤h²hh³jí¤h´MŒubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjפh²hh³jí¤h´MŒubah}”(h]”jÒ¤ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jí¤h´MŒhjÔ¤h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ1Adds bo to the list of bos associated with the vm”h]”hŒ1Adds bo to the list of bos associated with the vm”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MŒhj|¦h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÔ¤h²hh³jí¤h´MŒubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j—¦j¡j—¦j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hX$**Parameters** ``struct amdgpu_vm_bo_base *base`` base structure for tracking BO usage in a VM ``struct amdgpu_vm *vm`` vm to which bo is to be added ``struct amdgpu_bo *bo`` amdgpu buffer object **Description** Initialize a bo_va_base structure and add it to the appropriate lists”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj¡¦h]”hŒ Parameters”…”�”}”(hj£¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjŸ¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M�hj›¦ubj )�”}”(hhh]”(j)�”}”(hŒP``struct amdgpu_vm_bo_base *base`` base structure for tracking BO usage in a VM ”h]”(j)�”}”(hŒ"``struct amdgpu_vm_bo_base *base``”h]”j:)�”}”(hjÀ¦h]”hŒstruct amdgpu_vm_bo_base *base”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj¾¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MŽhjº¦ubj$)�”}”(hhh]”hÝ)�”}”(hŒ,base structure for tracking BO usage in a VM”h]”hŒ,base structure for tracking BO usage in a VM”…”�”}”(hjÙ¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÕ¦h´MŽhjÖ¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjº¦ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÕ¦h´MŽhj·¦ubj)�”}”(hŒ7``struct amdgpu_vm *vm`` vm to which bo is to be added ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hjù¦h]”hŒstruct amdgpu_vm *vm”…”�”}”(hjû¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj÷¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M�hjó¦ubj$)�”}”(hhh]”hÝ)�”}”(hŒvm to which bo is to be added”h]”hŒvm to which bo is to be added”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j§h´M�hj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjó¦ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j§h´M�hj·¦ubj)�”}”(hŒ.``struct amdgpu_bo *bo`` amdgpu buffer object ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hj2§h]”hŒstruct amdgpu_bo *bo”…”�”}”(hj4§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj0§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M�hj,§ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu buffer object”h]”hŒamdgpu buffer object”…”�”}”(hjK§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jG§h´M�hjH§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj,§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jG§h´M�hj·¦ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj›¦ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjm§h]”hŒ Description”…”�”}”(hjo§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjk§ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M’hj›¦ubhÝ)�”}”(hŒEInitialize a bo_va_base structure and add it to the appropriate lists”h]”hŒEInitialize a bo_va_base structure and add it to the appropriate lists”…”�”}”(hjƒ§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M‘hj›¦ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_vm_lock_pd (C function)”Œc.amdgpu_vm_lock_pd”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ\int amdgpu_vm_lock_pd (struct amdgpu_vm *vm, struct drm_exec *exec, unsigned int num_fences)”h]”jn)�”}”(hŒ[int amdgpu_vm_lock_pd(struct amdgpu_vm *vm, struct drm_exec *exec, unsigned int num_fences)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj²§h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj®§h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¼ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁ§h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj®§h²hh³jÀ§h´M¼ubj—)�”}”(hŒamdgpu_vm_lock_pd”h]”j�)�”}”(hŒamdgpu_vm_lock_pd”h]”hŒamdgpu_vm_lock_pd”…”�”}”(hjÓ§h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjϧubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj®§h²hh³jÀ§h´M¼ubj¸)�”}”(hŒF(struct amdgpu_vm *vm, struct drm_exec *exec, unsigned int num_fences)”h]”(j¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjï§h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjë§ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjü§h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjë§ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hj ¨h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj ¨ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j¨Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjÕ§sbŒc.amdgpu_vm_lock_pd”†”asbuh1hhjë§ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj-¨h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjë§ubj)�”}”(hjh]”hŒ*”…”�”}”(hj;¨h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjë§ubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjH¨h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjë§ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjç§ubj¾)�”}”(hŒstruct drm_exec *exec”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hja¨h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj]¨ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjn¨h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj]¨ubh)�”}”(hhh]”j�)�”}”(hŒdrm_exec”h]”hŒdrm_exec”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj|¨ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j�¨Œmodname”NŒ classname”Njÿj)�”}”j]”j)¨Œc.amdgpu_vm_lock_pd”†”asbuh1hhj]¨ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�¨h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj]¨ubj)�”}”(hjh]”hŒ*”…”�”}”(hj«¨h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj]¨ubj�)�”}”(hŒexec”h]”hŒexec”…”�”}”(hj¸¨h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj]¨ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjç§ubj¾)�”}”(hŒunsigned int num_fences”h]”(jt)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjѨh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjͨubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjߨh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjͨubjt)�”}”(hŒint”h]”hŒint”…”�”}”(hjí¨h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjͨubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjû¨h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjͨubj�)�”}”(hŒ num_fences”h]”hŒ num_fences”…”�”}”(hj ©h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjͨubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjç§ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj®§h²hh³jÀ§h´M¼ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjª§h²hh³jÀ§h´M¼ubah}”(h]”j¥§ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÀ§h´M¼hj§§h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒlock PD in drm_exec”h]”hŒlock PD in drm_exec”…”�”}”(hj3©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¼hj0©h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj§§h²hh³jÀ§h´M¼ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jK©j¡jK©j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒ÷**Parameters** ``struct amdgpu_vm *vm`` vm providing the BOs ``struct drm_exec *exec`` drm execution context ``unsigned int num_fences`` number of extra fences to reserve **Description** Lock the VM root PD in the DRM execution context.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjU©h]”hŒ Parameters”…”�”}”(hjW©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjS©ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÀhjO©ubj )�”}”(hhh]”(j)�”}”(hŒ.``struct amdgpu_vm *vm`` vm providing the BOs ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hjt©h]”hŒstruct amdgpu_vm *vm”…”�”}”(hjv©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjr©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¾hjn©ubj$)�”}”(hhh]”hÝ)�”}”(hŒvm providing the BOs”h]”hŒvm providing the BOs”…”�”}”(hj�©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j‰©h´M¾hjŠ©ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjn©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‰©h´M¾hjk©ubj)�”}”(hŒ0``struct drm_exec *exec`` drm execution context ”h]”(j)�”}”(hŒ``struct drm_exec *exec``”h]”j:)�”}”(hj­©h]”hŒstruct drm_exec *exec”…”�”}”(hj¯©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj«©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¿hj§©ubj$)�”}”(hhh]”hÝ)�”}”(hŒdrm execution context”h]”hŒdrm execution context”…”�”}”(hjÆ©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j©h´M¿hjéubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj§©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j©h´M¿hjk©ubj)�”}”(hŒ>``unsigned int num_fences`` number of extra fences to reserve ”h]”(j)�”}”(hŒ``unsigned int num_fences``”h]”j:)�”}”(hjæ©h]”hŒunsigned int num_fences”…”�”}”(hjè©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjä©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÀhjà©ubj$)�”}”(hhh]”hÝ)�”}”(hŒ!number of extra fences to reserve”h]”hŒ!number of extra fences to reserve”…”�”}”(hjÿ©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jû©h´MÀhjü©ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjà©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jû©h´MÀhjk©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjO©ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj!ªh]”hŒ Description”…”�”}”(hj#ªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjªubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÂhjO©ubhÝ)�”}”(hŒ1Lock the VM root PD in the DRM execution context.”h]”hŒ1Lock the VM root PD in the DRM execution context.”…”�”}”(hj7ªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÁhjO©ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ&amdgpu_vm_lock_individual (C function)”Œc.amdgpu_vm_lock_individual”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒdint amdgpu_vm_lock_individual (struct amdgpu_vm *vm, struct drm_exec *exec, unsigned int num_fences)”h]”jn)�”}”(hŒcint amdgpu_vm_lock_individual(struct amdgpu_vm *vm, struct drm_exec *exec, unsigned int num_fences)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjfªh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjbªh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÍubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjuªh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjbªh²hh³jtªh´MÍubj—)�”}”(hŒamdgpu_vm_lock_individual”h]”j�)�”}”(hŒamdgpu_vm_lock_individual”h]”hŒamdgpu_vm_lock_individual”…”�”}”(hj‡ªh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjƒªubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjbªh²hh³jtªh´MÍubj¸)�”}”(hŒF(struct amdgpu_vm *vm, struct drm_exec *exec, unsigned int num_fences)”h]”(j¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj£ªh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjŸªubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°ªh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjŸªubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hjÁªh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¾ªubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jêŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj‰ªsbŒc.amdgpu_vm_lock_individual”†”asbuh1hhjŸªubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjáªh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjŸªubj)�”}”(hjh]”hŒ*”…”�”}”(hjïªh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjŸªubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjüªh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjŸªubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj›ªubj¾)�”}”(hŒstruct drm_exec *exec”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj«ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"«h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj«ubh)�”}”(hhh]”j�)�”}”(hŒdrm_exec”h]”hŒdrm_exec”…”�”}”(hj3«h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj0«ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j5«Œmodname”NŒ classname”Njÿj)�”}”j]”jݪŒc.amdgpu_vm_lock_individual”†”asbuh1hhj«ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQ«h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj«ubj)�”}”(hjh]”hŒ*”…”�”}”(hj_«h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj«ubj�)�”}”(hŒexec”h]”hŒexec”…”�”}”(hjl«h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj«ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj›ªubj¾)�”}”(hŒunsigned int num_fences”h]”(jt)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj…«h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj�«ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“«h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj�«ubjt)�”}”(hŒint”h]”hŒint”…”�”}”(hj¡«h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj�«ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¯«h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj�«ubj�)�”}”(hŒ num_fences”h]”hŒ num_fences”…”�”}”(hj½«h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj�«ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj›ªubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjbªh²hh³jtªh´MÍubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj^ªh²hh³jtªh´MÍubah}”(h]”jYªah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jtªh´MÍhj[ªh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ(lock all BOs on the individual idle list”h]”hŒ(lock all BOs on the individual idle list”…”�”}”(hjç«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÍhjä«h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj[ªh²hh³jtªh´MÍubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jÿ«j¡jÿ«j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hX **Parameters** ``struct amdgpu_vm *vm`` vm providing the BOs ``struct drm_exec *exec`` drm execution context ``unsigned int num_fences`` number of extra fences to reserve **Description** Lock the BOs on the individual idle list in the DRM execution context.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj ¬h]”hŒ Parameters”…”�”}”(hj ¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÑhj¬ubj )�”}”(hhh]”(j)�”}”(hŒ.``struct amdgpu_vm *vm`` vm providing the BOs ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hj(¬h]”hŒstruct amdgpu_vm *vm”…”�”}”(hj*¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj&¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÎhj"¬ubj$)�”}”(hhh]”hÝ)�”}”(hŒvm providing the BOs”h]”hŒvm providing the BOs”…”�”}”(hjA¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j=¬h´MÎhj>¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj"¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j=¬h´MÎhj¬ubj)�”}”(hŒ0``struct drm_exec *exec`` drm execution context ”h]”(j)�”}”(hŒ``struct drm_exec *exec``”h]”j:)�”}”(hja¬h]”hŒstruct drm_exec *exec”…”�”}”(hjc¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj_¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÏhj[¬ubj$)�”}”(hhh]”hÝ)�”}”(hŒdrm execution context”h]”hŒdrm execution context”…”�”}”(hjz¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jv¬h´MÏhjw¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj[¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jv¬h´MÏhj¬ubj)�”}”(hŒ>``unsigned int num_fences`` number of extra fences to reserve ”h]”(j)�”}”(hŒ``unsigned int num_fences``”h]”j:)�”}”(hjš¬h]”hŒunsigned int num_fences”…”�”}”(hjœ¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj˜¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÐhj”¬ubj$)�”}”(hhh]”hÝ)�”}”(hŒ!number of extra fences to reserve”h]”hŒ!number of extra fences to reserve”…”�”}”(hj³¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¯¬h´MÐhj°¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj”¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¯¬h´MÐhj¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¬ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjÕ¬h]”hŒ Description”…”�”}”(hj׬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÓ¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÒhj¬ubhÝ)�”}”(hŒFLock the BOs on the individual idle list in the DRM execution context.”h]”hŒFLock the BOs on the individual idle list in the DRM execution context.”…”�”}”(hjë¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÑhj¬ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ'amdgpu_vm_move_to_lru_tail (C function)”Œc.amdgpu_vm_move_to_lru_tail”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒRvoid amdgpu_vm_move_to_lru_tail (struct amdgpu_device *adev, struct amdgpu_vm *vm)”h]”jn)�”}”(hŒQvoid amdgpu_vm_move_to_lru_tail(struct amdgpu_device *adev, struct amdgpu_vm *vm)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj­h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mõubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)­h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj­h²hh³j(­h´Mõubj—)�”}”(hŒamdgpu_vm_move_to_lru_tail”h]”j�)�”}”(hŒamdgpu_vm_move_to_lru_tail”h]”hŒamdgpu_vm_move_to_lru_tail”…”�”}”(hj;­h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj7­ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj­h²hh³j(­h´Mõubj¸)�”}”(hŒ2(struct amdgpu_device *adev, struct amdgpu_vm *vm)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjW­h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjS­ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjd­h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjS­ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hju­h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjr­ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jw­Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj=­sbŒc.amdgpu_vm_move_to_lru_tail”†”asbuh1hhjS­ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj•­h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjS­ubj)�”}”(hjh]”hŒ*”…”�”}”(hj£­h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjS­ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj°­h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjS­ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjO­ubj¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÉ­h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÅ­ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖ­h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÅ­ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hjç­h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjä­ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jé­Œmodname”NŒ classname”Njÿj)�”}”j]”j‘­Œc.amdgpu_vm_move_to_lru_tail”†”asbuh1hhjÅ­ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÅ­ubj)�”}”(hjh]”hŒ*”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÅ­ubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hj ®h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÅ­ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjO­ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj­h²hh³j(­h´Mõubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj­h²hh³j(­h´Mõubah}”(h]”j ­ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j(­h´Mõhj­h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒmove all BOs to the end of LRU”h]”hŒmove all BOs to the end of LRU”…”�”}”(hjJ®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MõhjG®h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj­h²hh³j(­h´Mõubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jb®j¡jb®j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒÛ**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer ``struct amdgpu_vm *vm`` vm providing the BOs **Description** Move all BOs to the end of LRU and remember their positions to put them together.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjl®h]”hŒ Parameters”…”�”}”(hjn®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mùhjf®ubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hj‹®h]”hŒstruct amdgpu_device *adev”…”�”}”(hj�®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj‰®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M÷hj…®ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device pointer”h]”hŒamdgpu device pointer”…”�”}”(hj¤®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j ®h´M÷hj¡®ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj…®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j ®h´M÷hj‚®ubj)�”}”(hŒ.``struct amdgpu_vm *vm`` vm providing the BOs ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hjÄ®h]”hŒstruct amdgpu_vm *vm”…”�”}”(hjÆ®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Møhj¾®ubj$)�”}”(hhh]”hÝ)�”}”(hŒvm providing the BOs”h]”hŒvm providing the BOs”…”�”}”(hjÝ®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÙ®h´MøhjÚ®ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj¾®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÙ®h´Møhj‚®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjf®ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjÿ®h]”hŒ Description”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjý®ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Múhjf®ubhÝ)�”}”(hŒQMove all BOs to the end of LRU and remember their positions to put them together.”h]”hŒQMove all BOs to the end of LRU and remember their positions to put them together.”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mùhjf®ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ!amdgpu_vm_generation (C function)”Œc.amdgpu_vm_generation”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒPuint64_t amdgpu_vm_generation (struct amdgpu_device *adev, struct amdgpu_vm *vm)”h]”jn)�”}”(hŒOuint64_t amdgpu_vm_generation(struct amdgpu_device *adev, struct amdgpu_vm *vm)”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hjG¯h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjD¯ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jI¯Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒamdgpu_vm_generation”sbŒc.amdgpu_vm_generation”†”asbuh1hhj@¯h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M"ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hji¯h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj@¯h²hh³jh¯h´M"ubj—)�”}”(hŒamdgpu_vm_generation”h]”j�)�”}”(hje¯h]”hŒamdgpu_vm_generation”…”�”}”(hj{¯h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjw¯ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj@¯h²hh³jh¯h´M"ubj¸)�”}”(hŒ2(struct amdgpu_device *adev, struct amdgpu_vm *vm)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj–¯h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj’¯ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£¯h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj’¯ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj´¯h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj±¯ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j¶¯Œmodname”NŒ classname”Njÿj)�”}”j]”jc¯Œc.amdgpu_vm_generation”†”asbuh1hhj’¯ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÒ¯h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj’¯ubj)�”}”(hjh]”hŒ*”…”�”}”(hjà¯h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj’¯ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjí¯h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj’¯ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjޝubj¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj°ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj°ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hj$°h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj!°ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j&°Œmodname”NŒ classname”Njÿj)�”}”j]”jc¯Œc.amdgpu_vm_generation”†”asbuh1hhj°ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjB°h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj°ubj)�”}”(hjh]”hŒ*”…”�”}”(hjP°h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj°ubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hj]°h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj°ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjޝubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj@¯h²hh³jh¯h´M"ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj<¯h²hh³jh¯h´M"ubah}”(h]”j7¯ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jh¯h´M"hj9¯h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ+return the page table re-generation counter”h]”hŒ+return the page table re-generation counter”…”�”}”(hj‡°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M"hj„°h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj9¯h²hh³jh¯h´M"ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jŸ°j¡jŸ°j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hXT**Parameters** ``struct amdgpu_device *adev`` the amdgpu_device ``struct amdgpu_vm *vm`` optional VM to check, might be NULL **Description** Returns a page table re-generation token to allow checking if submissions are still valid to use this VM. The VM parameter might be NULL in which case just the VRAM lost counter will be used.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj©°h]”hŒ Parameters”…”�”}”(hj«°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj§°ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M&hj£°ubj )�”}”(hhh]”(j)�”}”(hŒ1``struct amdgpu_device *adev`` the amdgpu_device ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjȰh]”hŒstruct amdgpu_device *adev”…”�”}”(hjʰh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjưubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M#hj°ubj$)�”}”(hhh]”hÝ)�”}”(hŒthe amdgpu_device”h]”hŒthe amdgpu_device”…”�”}”(hjá°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jݰh´M#hjÞ°ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jݰh´M#hj¿°ubj)�”}”(hŒ=``struct amdgpu_vm *vm`` optional VM to check, might be NULL ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hj±h]”hŒstruct amdgpu_vm *vm”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÿ°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M$hjû°ubj$)�”}”(hhh]”hÝ)�”}”(hŒ#optional VM to check, might be NULL”h]”hŒ#optional VM to check, might be NULL”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j±h´M$hj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjû°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j±h´M$hj¿°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj£°ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj<±h]”hŒ Description”…”�”}”(hj>±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj:±ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M&hj£°ubhÝ)�”}”(hŒ¿Returns a page table re-generation token to allow checking if submissions are still valid to use this VM. The VM parameter might be NULL in which case just the VRAM lost counter will be used.”h]”hŒ¿Returns a page table re-generation token to allow checking if submissions are still valid to use this VM. The VM parameter might be NULL in which case just the VRAM lost counter will be used.”…”�”}”(hjR±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M%hj£°ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_vm_validate (C function)”Œc.amdgpu_vm_validate”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ¥int amdgpu_vm_validate (struct amdgpu_device *adev, struct amdgpu_vm *vm, struct ww_acquire_ctx *ticket, int (*validate)(void *p, struct amdgpu_bo *bo), void *param)”h]”jn)�”}”(hŒ¤int amdgpu_vm_validate(struct amdgpu_device *adev, struct amdgpu_vm *vm, struct ww_acquire_ctx *ticket, int (*validate)(void *p, struct amdgpu_bo *bo), void *param)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj�±h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj}±h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M:ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�±h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj}±h²hh³j�±h´M:ubj—)�”}”(hŒamdgpu_vm_validate”h]”j�)�”}”(hŒamdgpu_vm_validate”h]”hŒamdgpu_vm_validate”…”�”}”(hj¢±h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjž±ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj}±h²hh³j�±h´M:ubj¸)�”}”(hŒŽ(struct amdgpu_device *adev, struct amdgpu_vm *vm, struct ww_acquire_ctx *ticket, int (*validate)(void *p, struct amdgpu_bo *bo), void *param)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj¾±h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjº±ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˱h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjº±ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjܱh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÙ±ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÞ±Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj¤±sbŒc.amdgpu_vm_validate”†”asbuh1hhjº±ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjü±h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjº±ubj)�”}”(hjh]”hŒ*”…”�”}”(hj ²h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjº±ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjº±ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¶±ubj¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj0²h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj,²ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=²h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj,²ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hjN²h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjK²ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jP²Œmodname”NŒ classname”Njÿj)�”}”j]”jø±Œc.amdgpu_vm_validate”†”asbuh1hhj,²ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjl²h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj,²ubj)�”}”(hjh]”hŒ*”…”�”}”(hjz²h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj,²ubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hj‡²h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj,²ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¶±ubj¾)�”}”(hŒstruct ww_acquire_ctx *ticket”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj ²h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjœ²ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj­²h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjœ²ubh)�”}”(hhh]”j�)�”}”(hŒww_acquire_ctx”h]”hŒww_acquire_ctx”…”�”}”(hj¾²h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj»²ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÀ²Œmodname”NŒ classname”Njÿj)�”}”j]”jø±Œc.amdgpu_vm_validate”†”asbuh1hhjœ²ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjܲh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjœ²ubj)�”}”(hjh]”hŒ*”…”�”}”(hjê²h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjœ²ubj�)�”}”(hŒticket”h]”hŒticket”…”�”}”(hj÷²h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjœ²ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¶±ubj¾)�”}”(hŒ.int (*validate)(void *p, struct amdgpu_bo *bo)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj ³ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj ³ubj)�”}”(hŒ(”h]”hŒ(”…”�”}”(hj,³h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj ³ubj)�”}”(hjh]”hŒ*”…”�”}”(hj:³h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj ³ubj�)�”}”(hŒvalidate”h]”hŒvalidate”…”�”}”(hjG³h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj ³ubj)�”}”(hŒ)”h]”hŒ)”…”�”}”(hjU³h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj ³ubj)�”}”(hj.³h]”hŒ(”…”�”}”(hjc³h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj ³ubjt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjp³h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj ³ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~³h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj ³ubj)�”}”(hjh]”hŒ*”…”�”}”(hjŒ³h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj ³ubj�)�”}”(hj'h]”hŒp”…”�”}”(hj™³h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj ³ubj)�”}”(hŒ,”h]”hŒ,”…”�”}”(hj¦³h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj ³ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj´³h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj ³ubjÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj ³ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjϳh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj ³ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hjà³h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjݳubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jⳌmodname”NŒ classname”Njÿj)�”}”j]”jø±Œc.amdgpu_vm_validate”†”asbuh1hhj ³ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþ³h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj ³ubj)�”}”(hjh]”hŒ*”…”�”}”(hj ´h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj ³ubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj ³ubj)�”}”(hjW³h]”hŒ)”…”�”}”(hj'´h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj ³ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¶±ubj¾)�”}”(hŒ void *param”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj?´h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj;´ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjM´h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj;´ubj)�”}”(hjh]”hŒ*”…”�”}”(hj[´h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj;´ubj�)�”}”(hŒparam”h]”hŒparam”…”�”}”(hjh´h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj;´ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¶±ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj}±h²hh³j�±h´M:ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjy±h²hh³j�±h´M:ubah}”(h]”jt±ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j�±h´M:hjv±h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ&validate evicted BOs tracked in the VM”h]”hŒ&validate evicted BOs tracked in the VM”…”�”}”(hj’´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M:hj�´h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjv±h²hh³j�±h´M:ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jª´j¡jª´j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hXU**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer ``struct amdgpu_vm *vm`` vm providing the BOs ``struct ww_acquire_ctx *ticket`` optional reservation ticket used to reserve the VM ``int (*validate)(void *p, struct amdgpu_bo *bo)`` callback to do the validation ``void *param`` parameter for the validation callback **Description** Validate the page table BOs and per-VM BOs on command submission if necessary. If a ticket is given, also try to validate evicted user queue BOs. They must already be reserved with the given ticket. **Return** Validation result.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj´´h]”hŒ Parameters”…”�”}”(hj¶´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj²´ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M>hj®´ubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjÓ´h]”hŒstruct amdgpu_device *adev”…”�”}”(hjÕ´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÑ´ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M<hjÍ´ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device pointer”h]”hŒamdgpu device pointer”…”�”}”(hjì´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jè´h´M<hjé´ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÍ´ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jè´h´M<hjÊ´ubj)�”}”(hŒ.``struct amdgpu_vm *vm`` vm providing the BOs ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hj µh]”hŒstruct amdgpu_vm *vm”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj µubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M=hjµubj$)�”}”(hhh]”hÝ)�”}”(hŒvm providing the BOs”h]”hŒvm providing the BOs”…”�”}”(hj%µh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j!µh´M=hj"µubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjµubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j!µh´M=hjÊ´ubj)�”}”(hŒU``struct ww_acquire_ctx *ticket`` optional reservation ticket used to reserve the VM ”h]”(j)�”}”(hŒ!``struct ww_acquire_ctx *ticket``”h]”j:)�”}”(hjEµh]”hŒstruct ww_acquire_ctx *ticket”…”�”}”(hjGµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjCµubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M>hj?µubj$)�”}”(hhh]”hÝ)�”}”(hŒ2optional reservation ticket used to reserve the VM”h]”hŒ2optional reservation ticket used to reserve the VM”…”�”}”(hj^µh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jZµh´M>hj[µubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj?µubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jZµh´M>hjÊ´ubj)�”}”(hŒQ``int (*validate)(void *p, struct amdgpu_bo *bo)`` callback to do the validation ”h]”(j)�”}”(hŒ2``int (*validate)(void *p, struct amdgpu_bo *bo)``”h]”j:)�”}”(hj~µh]”hŒ.int (*validate)(void *p, struct amdgpu_bo *bo)”…”�”}”(hj€µh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj|µubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M?hjxµubj$)�”}”(hhh]”hÝ)�”}”(hŒcallback to do the validation”h]”hŒcallback to do the validation”…”�”}”(hj—µh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j“µh´M?hj”µubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjxµubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j“µh´M?hjÊ´ubj)�”}”(hŒ6``void *param`` parameter for the validation callback ”h]”(j)�”}”(hŒ``void *param``”h]”j:)�”}”(hj·µh]”hŒ void *param”…”�”}”(hj¹µh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjµµubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M@hj±µubj$)�”}”(hhh]”hÝ)�”}”(hŒ%parameter for the validation callback”h]”hŒ%parameter for the validation callback”…”�”}”(hjеh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j̵h´M@hj͵ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj±µubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j̵h´M@hjÊ´ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj®´ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjòµh]”hŒ Description”…”�”}”(hjôµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjðµubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MBhj®´ubhÝ)�”}”(hŒÆValidate the page table BOs and per-VM BOs on command submission if necessary. If a ticket is given, also try to validate evicted user queue BOs. They must already be reserved with the given ticket.”h]”hŒÆValidate the page table BOs and per-VM BOs on command submission if necessary. If a ticket is given, also try to validate evicted user queue BOs. They must already be reserved with the given ticket.”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MAhj®´ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj¶h]”hŒReturn”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MEhj®´ubhÝ)�”}”(hŒValidation result.”h]”hŒValidation result.”…”�”}”(hj/¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MFhj®´ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_vm_ready (C function)”Œc.amdgpu_vm_ready”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ+bool amdgpu_vm_ready (struct amdgpu_vm *vm)”h]”jn)�”}”(hŒ*bool amdgpu_vm_ready(struct amdgpu_vm *vm)”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hj^¶h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjZ¶h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M™ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjl¶h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjZ¶h²hh³jk¶h´M™ubj—)�”}”(hŒamdgpu_vm_ready”h]”j�)�”}”(hŒamdgpu_vm_ready”h]”hŒamdgpu_vm_ready”…”�”}”(hj~¶h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjz¶ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjZ¶h²hh³jk¶h´M™ubj¸)�”}”(hŒ(struct amdgpu_vm *vm)”h]”j¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjš¶h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj–¶ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§¶h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj–¶ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hj¸¶h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjµ¶ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jº¶Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj€¶sbŒc.amdgpu_vm_ready”†”asbuh1hhj–¶ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjضh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj–¶ubj)�”}”(hjh]”hŒ*”…”�”}”(hjæ¶h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj–¶ubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjó¶h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj–¶ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj’¶ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjZ¶h²hh³jk¶h´M™ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjV¶h²hh³jk¶h´M™ubah}”(h]”jQ¶ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jk¶h´M™hjS¶h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒcheck VM is ready for updates”h]”hŒcheck VM is ready for updates”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M™hj·h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjS¶h²hh³jk¶h´M™ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j5·j¡j5·j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒÂ**Parameters** ``struct amdgpu_vm *vm`` VM to check **Description** Check if all VM PDs/PTs are ready for updates **Return** True if VM is not evicting and all VM entities are not stopped”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj?·h]”hŒ Parameters”…”�”}”(hjA·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj=·ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M�hj9·ubj )�”}”(hhh]”j)�”}”(hŒ%``struct amdgpu_vm *vm`` VM to check ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hj^·h]”hŒstruct amdgpu_vm *vm”…”�”}”(hj`·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj\·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M›hjX·ubj$)�”}”(hhh]”hÝ)�”}”(hŒ VM to check”h]”hŒ VM to check”…”�”}”(hjw·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³js·h´M›hjt·ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjX·ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³js·h´M›hjU·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj9·ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj™·h]”hŒ Description”…”�”}”(hj›·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj—·ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M�hj9·ubhÝ)�”}”(hŒ-Check if all VM PDs/PTs are ready for updates”h]”hŒ-Check if all VM PDs/PTs are ready for updates”…”�”}”(hj¯·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mœhj9·ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjÀ·h]”hŒReturn”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¾·ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mžhj9·ubhÝ)�”}”(hŒ>True if VM is not evicting and all VM entities are not stopped”h]”hŒ>True if VM is not evicting and all VM entities are not stopped”…”�”}”(hjÖ·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MŸhj9·ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ(amdgpu_vm_check_compute_bug (C function)”Œc.amdgpu_vm_check_compute_bug”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ=void amdgpu_vm_check_compute_bug (struct amdgpu_device *adev)”h]”jn)�”}”(hŒ¸ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjO¸h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj>¸ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj`¸h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj]¸ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jb¸Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj(¸sbŒc.amdgpu_vm_check_compute_bug”†”asbuh1hhj>¸ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj€¸h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj>¸ubj)�”}”(hjh]”hŒ*”…”�”}”(hjޏh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj>¸ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj›¸h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj>¸ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj:¸ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj¸h²hh³j¸h´Mºubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjý·h²hh³j¸h´Mºubah}”(h]”jø·ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j¸h´Mºhjú·h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ%check whether asic has compute vm bug”h]”hŒ%check whether asic has compute vm bug”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mºhj¸h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjú·h²hh³j¸h´Mºubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jݸj¡jݸj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒF**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjç¸h]”hŒ Parameters”…”�”}”(hjé¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjå¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¾hjá¸ubj )�”}”(hhh]”j)�”}”(hŒ4``struct amdgpu_device *adev`` amdgpu_device pointer”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hj¹h]”hŒstruct amdgpu_device *adev”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÀhj¹ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¼hj¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj¹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¹h´MÀhjý¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjá¸ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ)amdgpu_vm_need_pipeline_sync (C function)”Œc.amdgpu_vm_need_pipeline_sync”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒTbool amdgpu_vm_need_pipeline_sync (struct amdgpu_ring *ring, struct amdgpu_job *job)”h]”jn)�”}”(hŒSbool amdgpu_vm_need_pipeline_sync(struct amdgpu_ring *ring, struct amdgpu_job *job)”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hj`¹h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj\¹h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÝubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjn¹h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj\¹h²hh³jm¹h´MÝubj—)�”}”(hŒamdgpu_vm_need_pipeline_sync”h]”j�)�”}”(hŒamdgpu_vm_need_pipeline_sync”h]”hŒamdgpu_vm_need_pipeline_sync”…”�”}”(hj€¹h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj|¹ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj\¹h²hh³jm¹h´MÝubj¸)�”}”(hŒ2(struct amdgpu_ring *ring, struct amdgpu_job *job)”h]”(j¾)�”}”(hŒstruct amdgpu_ring *ring”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjœ¹h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj˜¹ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj©¹h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj˜¹ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_ring”h]”hŒ amdgpu_ring”…”�”}”(hjº¹h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj·¹ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j¼¹Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj‚¹sbŒc.amdgpu_vm_need_pipeline_sync”†”asbuh1hhj˜¹ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÚ¹h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj˜¹ubj)�”}”(hjh]”hŒ*”…”�”}”(hjè¹h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj˜¹ubj�)�”}”(hŒring”h]”hŒring”…”�”}”(hjõ¹h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj˜¹ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj”¹ubj¾)�”}”(hŒstruct amdgpu_job *job”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj ºubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj ºubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_job”h]”hŒ amdgpu_job”…”�”}”(hj,ºh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj)ºubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j.ºŒmodname”NŒ classname”Njÿj)�”}”j]”jÖ¹Œc.amdgpu_vm_need_pipeline_sync”†”asbuh1hhj ºubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJºh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj ºubj)�”}”(hjh]”hŒ*”…”�”}”(hjXºh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj ºubj�)�”}”(hŒjob”h]”hŒjob”…”�”}”(hjeºh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj ºubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj”¹ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj\¹h²hh³jm¹h´MÝubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjX¹h²hh³jm¹h´MÝubah}”(h]”jS¹ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jm¹h´MÝhjU¹h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ%Check if pipe sync is needed for job.”h]”hŒ%Check if pipe sync is needed for job.”…”�”}”(hj�ºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÝhjŒºh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjU¹h²hh³jm¹h´MÝubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j§ºj¡j§ºj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒ§**Parameters** ``struct amdgpu_ring *ring`` ring on which the job will be submitted ``struct amdgpu_job *job`` job to submit **Return** True if sync is needed.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj±ºh]”hŒ Parameters”…”�”}”(hj³ºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¯ºubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Máhj«ºubj )�”}”(hhh]”(j)�”}”(hŒE``struct amdgpu_ring *ring`` ring on which the job will be submitted ”h]”(j)�”}”(hŒ``struct amdgpu_ring *ring``”h]”j:)�”}”(hjкh]”hŒstruct amdgpu_ring *ring”…”�”}”(hjÒºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjκubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mßhjʺubj$)�”}”(hhh]”hÝ)�”}”(hŒ'ring on which the job will be submitted”h]”hŒ'ring on which the job will be submitted”…”�”}”(hjéºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jåºh´Mßhjæºubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjʺubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jåºh´MßhjǺubj)�”}”(hŒ)``struct amdgpu_job *job`` job to submit ”h]”(j)�”}”(hŒ``struct amdgpu_job *job``”h]”j:)�”}”(hj »h]”hŒstruct amdgpu_job *job”…”�”}”(hj »h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj»ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Màhj»ubj$)�”}”(hhh]”hÝ)�”}”(hŒ job to submit”h]”hŒ job to submit”…”�”}”(hj"»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j»h´Màhj»ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj»ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j»h´MàhjǺubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj«ºubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjD»h]”hŒReturn”…”�”}”(hjF»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjB»ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mâhj«ºubhÝ)�”}”(hŒTrue if sync is needed.”h]”hŒTrue if sync is needed.”…”�”}”(hjZ»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mâhj«ºubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_vm_flush (C function)”Œc.amdgpu_vm_flush”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ‹void amdgpu_vm_flush (struct amdgpu_ring *ring, struct amdgpu_job *job, bool *need_pipe_sync, bool *emit_spm_needed, bool *emit_gds_needed)”h]”jn)�”}”(hŒŠvoid amdgpu_vm_flush(struct amdgpu_ring *ring, struct amdgpu_job *job, bool *need_pipe_sync, bool *emit_spm_needed, bool *emit_gds_needed)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj‰»h²hh³Nh´•Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj…»h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Müubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜»h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj…»h²hh³j—»h´Müubj—)�”}”(hŒamdgpu_vm_flush”h]”j�)�”}”(hŒamdgpu_vm_flush”h]”hŒamdgpu_vm_flush”…”�”}”(hjª»h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¦»ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj…»h²hh³j—»h´Müubj¸)�”}”(hŒv(struct amdgpu_ring *ring, struct amdgpu_job *job, bool *need_pipe_sync, bool *emit_spm_needed, bool *emit_gds_needed)”h]”(j¾)�”}”(hŒstruct amdgpu_ring *ring”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÆ»h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj»ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓ»h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj»ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_ring”h]”hŒ amdgpu_ring”…”�”}”(hjä»h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjá»ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j滌modname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj¬»sbŒc.amdgpu_vm_flush”†”asbuh1hhj»ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj»ubj)�”}”(hjh]”hŒ*”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj»ubj�)�”}”(hŒring”h]”hŒring”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj»ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¾»ubj¾)�”}”(hŒstruct amdgpu_job *job”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj8¼h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj4¼ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjE¼h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj4¼ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_job”h]”hŒ amdgpu_job”…”�”}”(hjV¼h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjS¼ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jX¼Œmodname”NŒ classname”Njÿj)�”}”j]”j¼Œc.amdgpu_vm_flush”†”asbuh1hhj4¼ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjt¼h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj4¼ubj)�”}”(hjh]”hŒ*”…”�”}”(hj‚¼h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj4¼ubj�)�”}”(hŒjob”h]”hŒjob”…”�”}”(hj�¼h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj4¼ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¾»ubj¾)�”}”(hŒbool *need_pipe_sync”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hj¨¼h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj¤¼ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjµ¼h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¤¼ubj)�”}”(hjh]”hŒ*”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¤¼ubj�)�”}”(hŒneed_pipe_sync”h]”hŒneed_pipe_sync”…”�”}”(hjмh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¤¼ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¾»ubj¾)�”}”(hŒbool *emit_spm_needed”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hjé¼h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjå¼ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjö¼h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjå¼ubj)�”}”(hjh]”hŒ*”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjå¼ubj�)�”}”(hŒemit_spm_needed”h]”hŒemit_spm_needed”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjå¼ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¾»ubj¾)�”}”(hŒbool *emit_gds_needed”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hj*½h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj&½ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7½h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj&½ubj)�”}”(hjh]”hŒ*”…”�”}”(hjE½h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj&½ubj�)�”}”(hŒemit_gds_needed”h]”hŒemit_gds_needed”…”�”}”(hjR½h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj&½ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¾»ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj…»h²hh³j—»h´Müubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj�»h²hh³j—»h´Müubah}”(h]”j|»ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j—»h´Mühj~»h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒhardware flush the vm”h]”hŒhardware flush the vm”…”�”}”(hj|½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mühjy½h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj~»h²hh³j—»h´Müubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j”½j¡j”½j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hXR**Parameters** ``struct amdgpu_ring *ring`` ring to use for flush ``struct amdgpu_job *job`` related job ``bool *need_pipe_sync`` is pipe sync needed ``bool *emit_spm_needed`` does the caller need to emit spm ``bool *emit_gds_needed`` does the caller need to emit gds **Description** Emit a VM flush when it is necessary.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjž½h]”hŒ Parameters”…”�”}”(hj ½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjœ½ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhj˜½ubj )�”}”(hhh]”(j)�”}”(hŒ3``struct amdgpu_ring *ring`` ring to use for flush ”h]”(j)�”}”(hŒ``struct amdgpu_ring *ring``”h]”j:)�”}”(hj½½h]”hŒstruct amdgpu_ring *ring”…”�”}”(hj¿½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj»½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mþhj·½ubj$)�”}”(hhh]”hÝ)�”}”(hŒring to use for flush”h]”hŒring to use for flush”…”�”}”(hjÖ½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÒ½h´MþhjÓ½ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj·½ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÒ½h´Mþhj´½ubj)�”}”(hŒ'``struct amdgpu_job *job`` related job ”h]”(j)�”}”(hŒ``struct amdgpu_job *job``”h]”j:)�”}”(hjö½h]”hŒstruct amdgpu_job *job”…”�”}”(hjø½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjô½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mÿhjð½ubj$)�”}”(hhh]”hÝ)�”}”(hŒ related job”h]”hŒ related job”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j ¾h´Mÿhj ¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjð½ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j ¾h´Mÿhj´½ubj)�”}”(hŒ-``bool *need_pipe_sync`` is pipe sync needed ”h]”(j)�”}”(hŒ``bool *need_pipe_sync``”h]”j:)�”}”(hj/¾h]”hŒbool *need_pipe_sync”…”�”}”(hj1¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj-¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhj)¾ubj$)�”}”(hhh]”hÝ)�”}”(hŒis pipe sync needed”h]”hŒis pipe sync needed”…”�”}”(hjH¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jD¾h´MhjE¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj)¾ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jD¾h´Mhj´½ubj)�”}”(hŒ;``bool *emit_spm_needed`` does the caller need to emit spm ”h]”(j)�”}”(hŒ``bool *emit_spm_needed``”h]”j:)�”}”(hjh¾h]”hŒbool *emit_spm_needed”…”�”}”(hjj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjf¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhjb¾ubj$)�”}”(hhh]”hÝ)�”}”(hŒ does the caller need to emit spm”h]”hŒ does the caller need to emit spm”…”�”}”(hj�¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j}¾h´Mhj~¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjb¾ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j}¾h´Mhj´½ubj)�”}”(hŒ;``bool *emit_gds_needed`` does the caller need to emit gds ”h]”(j)�”}”(hŒ``bool *emit_gds_needed``”h]”j:)�”}”(hj¡¾h]”hŒbool *emit_gds_needed”…”�”}”(hj£¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjŸ¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhj›¾ubj$)�”}”(hhh]”hÝ)�”}”(hŒ does the caller need to emit gds”h]”hŒ does the caller need to emit gds”…”�”}”(hjº¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¶¾h´Mhj·¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj›¾ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¶¾h´Mhj´½ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj˜½ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjܾh]”hŒ Description”…”�”}”(hjÞ¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÚ¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhj˜½ubhÝ)�”}”(hŒ%Emit a VM flush when it is necessary.”h]”hŒ%Emit a VM flush when it is necessary.”…”�”}”(hjò¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhj˜½ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_vm_bo_find (C function)”Œc.amdgpu_vm_bo_find”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒTstruct amdgpu_bo_va * amdgpu_vm_bo_find (struct amdgpu_vm *vm, struct amdgpu_bo *bo)”h]”jn)�”}”(hŒRstruct amdgpu_bo_va *amdgpu_vm_bo_find(struct amdgpu_vm *vm, struct amdgpu_bo *bo)”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj!¿h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj¿h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/¿h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¿h²hh³j.¿h´M ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo_va”h]”hŒ amdgpu_bo_va”…”�”}”(hj@¿h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj=¿ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jB¿Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒamdgpu_vm_bo_find”sbŒc.amdgpu_vm_bo_find”†”asbuh1hhj¿h²hh³j.¿h´M ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hja¿h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¿h²hh³j.¿h´M ubj)�”}”(hjh]”hŒ*”…”�”}”(hjo¿h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¿h²hh³j.¿h´M ubj—)�”}”(hŒamdgpu_vm_bo_find”h]”j�)�”}”(hj^¿h]”hŒamdgpu_vm_bo_find”…”�”}”(hj€¿h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj|¿ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj¿h²hh³j.¿h´M ubj¸)�”}”(hŒ,(struct amdgpu_vm *vm, struct amdgpu_bo *bo)”h]”(j¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj›¿h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj—¿ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨¿h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj—¿ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hj¹¿h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¶¿ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j»¿Œmodname”NŒ classname”Njÿj)�”}”j]”j\¿Œc.amdgpu_vm_bo_find”†”asbuh1hhj—¿ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj׿h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj—¿ubj)�”}”(hjh]”hŒ*”…”�”}”(hjå¿h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj—¿ubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjò¿h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj—¿ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj“¿ubj¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj Àh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÀubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÀubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hj)Àh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj&Àubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j+ÀŒmodname”NŒ classname”Njÿj)�”}”j]”j\¿Œc.amdgpu_vm_bo_find”†”asbuh1hhjÀubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjGÀh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÀubj)�”}”(hjh]”hŒ*”…”�”}”(hjUÀh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÀubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjbÀh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÀubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj“¿ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj¿h²hh³j.¿h´M ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj¿h²hh³j.¿h´M ubah}”(h]”j¿ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j.¿h´M hj¿h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ%find the bo_va for a specific vm & bo”h]”hŒ%find the bo_va for a specific vm & bo”…”�”}”(hjŒÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj‰Àh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj¿h²hh³j.¿h´M ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j¤Àj¡j¤Àj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hXH**Parameters** ``struct amdgpu_vm *vm`` requested vm ``struct amdgpu_bo *bo`` requested buffer object **Description** Find **bo** inside the requested vm. Search inside the **bos** vm list for the requested vm Returns the found bo_va or NULL if none is found Object has to be reserved! **Return** Found bo_va or NULL.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj®Àh]”hŒ Parameters”…”�”}”(hj°Àh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¬Àubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¤hj¨Àubj )�”}”(hhh]”(j)�”}”(hŒ&``struct amdgpu_vm *vm`` requested vm ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hjÍÀh]”hŒstruct amdgpu_vm *vm”…”�”}”(hjÏÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjËÀubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¢hjÇÀubj$)�”}”(hhh]”hÝ)�”}”(hŒ requested vm”h]”hŒ requested vm”…”�”}”(hjæÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jâÀh´M¢hjãÀubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÇÀubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jâÀh´M¢hjÄÀubj)�”}”(hŒ1``struct amdgpu_bo *bo`` requested buffer object ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hjÁh]”hŒstruct amdgpu_bo *bo”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M£hjÁubj$)�”}”(hhh]”hÝ)�”}”(hŒrequested buffer object”h]”hŒrequested buffer object”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÁh´M£hjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÁubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÁh´M£hjÄÀubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¨ÀubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjAÁh]”hŒ Description”…”�”}”(hjCÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj?Áubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¥hj¨ÀubhÝ)�”}”(hŒŒFind **bo** inside the requested vm. Search inside the **bos** vm list for the requested vm Returns the found bo_va or NULL if none is found”h]”(hŒFind ”…”�”}”(hjWÁh²hh³Nh´Nubjµ)�”}”(hŒ**bo**”h]”hŒbo”…”�”}”(hj_Áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjWÁubhŒ, inside the requested vm. Search inside the ”…”�”}”(hjWÁh²hh³Nh´Nubjµ)�”}”(hŒ**bos**”h]”hŒbos”…”�”}”(hjqÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjWÁubhŒN vm list for the requested vm Returns the found bo_va or NULL if none is found”…”�”}”(hjWÁh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¤hj¨ÀubhÝ)�”}”(hŒObject has to be reserved!”h]”hŒObject has to be reserved!”…”�”}”(hjŠÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¨hj¨ÀubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj›Áh]”hŒReturn”…”�”}”(hj�Áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj™Áubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mªhj¨ÀubhÝ)�”}”(hŒFound bo_va or NULL.”h]”hŒFound bo_va or NULL.”…”�”}”(hj±Áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M«hj¨Àubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_vm_map_gart (C function)”Œc.amdgpu_vm_map_gart”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒIuint64_t amdgpu_vm_map_gart (const dma_addr_t *pages_addr, uint64_t addr)”h]”jn)�”}”(hŒHuint64_t amdgpu_vm_map_gart(const dma_addr_t *pages_addr, uint64_t addr)”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hjãÁh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjàÁubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jåÁŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒamdgpu_vm_map_gart”sbŒc.amdgpu_vm_map_gart”†”asbuh1hhjÜÁh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M½ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÜÁh²hh³jÂh´M½ubj—)�”}”(hŒamdgpu_vm_map_gart”h]”j�)�”}”(hjÂh]”hŒamdgpu_vm_map_gart”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÂubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjÜÁh²hh³jÂh´M½ubj¸)�”}”(hŒ-(const dma_addr_t *pages_addr, uint64_t addr)”h]”(j¾)�”}”(hŒconst dma_addr_t *pages_addr”h]”(jÄ)�”}”(hj¬�h]”hŒconst”…”�”}”(hj2Âh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj.Âubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj?Âh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj.Âubh)�”}”(hhh]”j�)�”}”(hŒ dma_addr_t”h]”hŒ dma_addr_t”…”�”}”(hjPÂh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjMÂubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jRÂŒmodname”NŒ classname”Njÿj)�”}”j]”jÿÁŒc.amdgpu_vm_map_gart”†”asbuh1hhj.Âubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjnÂh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj.Âubj)�”}”(hjh]”hŒ*”…”�”}”(hj|Âh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj.Âubj�)�”}”(hŒ pages_addr”h]”hŒ pages_addr”…”�”}”(hj‰Âh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj.Âubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj*Âubj¾)�”}”(hŒ uint64_t addr”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hj¥Âh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¢Âubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j§ÂŒmodname”NŒ classname”Njÿj)�”}”j]”jÿÁŒc.amdgpu_vm_map_gart”†”asbuh1hhjžÂubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÃÂh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjžÂubj�)�”}”(hŒaddr”h]”hŒaddr”…”�”}”(hjÑÂh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjžÂubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj*Âubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjÜÁh²hh³jÂh´M½ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjØÁh²hh³jÂh´M½ubah}”(h]”jÓÁah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÂh´M½hjÕÁh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒResolve gart mapping of addr”h]”hŒResolve gart mapping of addr”…”�”}”(hjûÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M½hjøÂh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÕÁh²hh³jÂh´M½ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jÃj¡jÃj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hX**Parameters** ``const dma_addr_t *pages_addr`` optional DMA address to use for lookup ``uint64_t addr`` the unmapped addr **Description** Look up the physical address of the page that the pte resolves to. **Return** The pointer for the page table entry.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjÃh]”hŒ Parameters”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÃubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÁhjÃubj )�”}”(hhh]”(j)�”}”(hŒH``const dma_addr_t *pages_addr`` optional DMA address to use for lookup ”h]”(j)�”}”(hŒ ``const dma_addr_t *pages_addr``”h]”j:)�”}”(hj<Ãh]”hŒconst dma_addr_t *pages_addr”…”�”}”(hj>Ãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj:Ãubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¿hj6Ãubj$)�”}”(hhh]”hÝ)�”}”(hŒ&optional DMA address to use for lookup”h]”hŒ&optional DMA address to use for lookup”…”�”}”(hjUÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jQÃh´M¿hjRÃubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj6Ãubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jQÃh´M¿hj3Ãubj)�”}”(hŒ$``uint64_t addr`` the unmapped addr ”h]”(j)�”}”(hŒ``uint64_t addr``”h]”j:)�”}”(hjuÃh]”hŒ uint64_t addr”…”�”}”(hjwÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjsÃubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÀhjoÃubj$)�”}”(hhh]”hÝ)�”}”(hŒthe unmapped addr”h]”hŒthe unmapped addr”…”�”}”(hjŽÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jŠÃh´MÀhj‹Ãubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjoÃubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jŠÃh´MÀhj3Ãubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÃubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj°Ãh]”hŒ Description”…”�”}”(hj²Ãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj®Ãubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÂhjÃubhÝ)�”}”(hŒBLook up the physical address of the page that the pte resolves to.”h]”hŒBLook up the physical address of the page that the pte resolves to.”…”�”}”(hjÆÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÁhjÃubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj×Ãh]”hŒReturn”…”�”}”(hjÙÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÕÃubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÄhjÃubhÝ)�”}”(hŒ%The pointer for the page table entry.”h]”hŒ%The pointer for the page table entry.”…”�”}”(hjíÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÅhjÃubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ"amdgpu_vm_update_pdes (C function)”Œc.amdgpu_vm_update_pdes”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ\int amdgpu_vm_update_pdes (struct amdgpu_device *adev, struct amdgpu_vm *vm, bool immediate)”h]”jn)�”}”(hŒ[int amdgpu_vm_update_pdes(struct amdgpu_device *adev, struct amdgpu_vm *vm, bool immediate)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÄh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MØubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+Äh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÄh²hh³j*Äh´MØubj—)�”}”(hŒamdgpu_vm_update_pdes”h]”j�)�”}”(hŒamdgpu_vm_update_pdes”h]”hŒamdgpu_vm_update_pdes”…”�”}”(hj=Äh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj9Äubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjÄh²hh³j*Äh´MØubj¸)�”}”(hŒB(struct amdgpu_device *adev, struct amdgpu_vm *vm, bool immediate)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjYÄh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjUÄubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjfÄh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjUÄubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjwÄh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjtÄubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jyÄŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj?ÄsbŒc.amdgpu_vm_update_pdes”†”asbuh1hhjUÄubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—Äh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjUÄubj)�”}”(hjh]”hŒ*”…”�”}”(hj¥Äh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjUÄubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj²Äh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjUÄubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjQÄubj¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjËÄh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÇÄubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØÄh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÇÄubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hjéÄh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjæÄubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jëÄŒmodname”NŒ classname”Njÿj)�”}”j]”j“ÄŒc.amdgpu_vm_update_pdes”†”asbuh1hhjÇÄubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÇÄubj)�”}”(hjh]”hŒ*”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÇÄubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hj"Åh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÇÄubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjQÄubj¾)�”}”(hŒbool immediate”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hj;Åh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj7Åubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjHÅh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj7Åubj�)�”}”(hŒ immediate”h]”hŒ immediate”…”�”}”(hjVÅh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj7Åubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjQÄubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjÄh²hh³j*Äh´MØubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjÄh²hh³j*Äh´MØubah}”(h]”jÄah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j*Äh´MØhjÄh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ(make sure that all directories are valid”h]”hŒ(make sure that all directories are valid”…”�”}”(hj€Åh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MØhj}Åh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÄh²hh³j*Äh´MØubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j˜Åj¡j˜Åj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hX**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct amdgpu_vm *vm`` requested vm ``bool immediate`` submit immediately to the paging queue **Description** Makes sure all directories are up to date. **Return** 0 for success, error for failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj¢Åh]”hŒ Parameters”…”�”}”(hj¤Åh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj Åubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÜhjœÅubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjÁÅh]”hŒstruct amdgpu_device *adev”…”�”}”(hjÃÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj¿Åubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÚhj»Åubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hjÚÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÖÅh´MÚhj×Åubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj»Åubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÖÅh´MÚhj¸Åubj)�”}”(hŒ&``struct amdgpu_vm *vm`` requested vm ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hjúÅh]”hŒstruct amdgpu_vm *vm”…”�”}”(hjüÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjøÅubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÛhjôÅubj$)�”}”(hhh]”hÝ)�”}”(hŒ requested vm”h]”hŒ requested vm”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÆh´MÛhjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjôÅubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÆh´MÛhj¸Åubj)�”}”(hŒ:``bool immediate`` submit immediately to the paging queue ”h]”(j)�”}”(hŒ``bool immediate``”h]”j:)�”}”(hj3Æh]”hŒbool immediate”…”�”}”(hj5Æh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj1Æubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÜhj-Æubj$)�”}”(hhh]”hÝ)�”}”(hŒ&submit immediately to the paging queue”h]”hŒ&submit immediately to the paging queue”…”�”}”(hjLÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jHÆh´MÜhjIÆubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj-Æubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jHÆh´MÜhj¸Åubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjœÅubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjnÆh]”hŒ Description”…”�”}”(hjpÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjlÆubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÞhjœÅubhÝ)�”}”(hŒ*Makes sure all directories are up to date.”h]”hŒ*Makes sure all directories are up to date.”…”�”}”(hj„Æh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÝhjœÅubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj•Æh]”hŒReturn”…”�”}”(hj—Æh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj“Æubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MßhjœÅubhÝ)�”}”(hŒ!0 for success, error for failure.”h]”hŒ!0 for success, error for failure.”…”�”}”(hj«Æh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MàhjœÅubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ!amdgpu_vm_tlb_seq_cb (C function)”Œc.amdgpu_vm_tlb_seq_cb”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒLvoid amdgpu_vm_tlb_seq_cb (struct dma_fence *fence, struct dma_fence_cb *cb)”h]”jn)�”}”(hŒKvoid amdgpu_vm_tlb_seq_cb(struct dma_fence *fence, struct dma_fence_cb *cb)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÚÆh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÖÆh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjéÆh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÖÆh²hh³jèÆh´Mubj—)�”}”(hŒamdgpu_vm_tlb_seq_cb”h]”j�)�”}”(hŒamdgpu_vm_tlb_seq_cb”h]”hŒamdgpu_vm_tlb_seq_cb”…”�”}”(hjûÆh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj÷Æubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjÖÆh²hh³jèÆh´Mubj¸)�”}”(hŒ2(struct dma_fence *fence, struct dma_fence_cb *cb)”h]”(j¾)�”}”(hŒstruct dma_fence *fence”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÇubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$Çh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÇubh)�”}”(hhh]”j�)�”}”(hŒ dma_fence”h]”hŒ dma_fence”…”�”}”(hj5Çh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj2Çubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j7ÇŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjýÆsbŒc.amdgpu_vm_tlb_seq_cb”†”asbuh1hhjÇubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjUÇh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÇubj)�”}”(hjh]”hŒ*”…”�”}”(hjcÇh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÇubj�)�”}”(hŒfence”h]”hŒfence”…”�”}”(hjpÇh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÇubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÇubj¾)�”}”(hŒstruct dma_fence_cb *cb”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj‰Çh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj…Çubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–Çh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj…Çubh)�”}”(hhh]”j�)�”}”(hŒ dma_fence_cb”h]”hŒ dma_fence_cb”…”�”}”(hj§Çh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¤Çubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j©ÇŒmodname”NŒ classname”Njÿj)�”}”j]”jQÇŒc.amdgpu_vm_tlb_seq_cb”†”asbuh1hhj…Çubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÅÇh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj…Çubj)�”}”(hjh]”hŒ*”…”�”}”(hjÓÇh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj…Çubj�)�”}”(hŒcb”h]”hŒcb”…”�”}”(hjàÇh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj…Çubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÇubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjÖÆh²hh³jèÆh´Mubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjÒÆh²hh³jèÆh´Mubah}”(h]”jÍÆah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jèÆh´MhjÏÆh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ#make sure to increment tlb sequence”h]”hŒ#make sure to increment tlb sequence”…”�”}”(hj Èh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MhjÈh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÏÆh²hh³jèÆh´Mubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j"Èj¡j"Èj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒÈ**Parameters** ``struct dma_fence *fence`` unused ``struct dma_fence_cb *cb`` the callback structure **Description** Increments the tlb sequence to make sure that future CS execute a VM flush.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj,Èh]”hŒ Parameters”…”�”}”(hj.Èh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj*Èubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhj&Èubj )�”}”(hhh]”(j)�”}”(hŒ#``struct dma_fence *fence`` unused ”h]”(j)�”}”(hŒ``struct dma_fence *fence``”h]”j:)�”}”(hjKÈh]”hŒstruct dma_fence *fence”…”�”}”(hjMÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjIÈubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MhjEÈubj$)�”}”(hhh]”hÝ)�”}”(hŒunused”h]”hŒunused”…”�”}”(hjdÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j`Èh´MhjaÈubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjEÈubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j`Èh´MhjBÈubj)�”}”(hŒ3``struct dma_fence_cb *cb`` the callback structure ”h]”(j)�”}”(hŒ``struct dma_fence_cb *cb``”h]”j:)�”}”(hj„Èh]”hŒstruct dma_fence_cb *cb”…”�”}”(hj†Èh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj‚Èubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhj~Èubj$)�”}”(hhh]”hÝ)�”}”(hŒthe callback structure”h]”hŒthe callback structure”…”�”}”(hj�Èh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j™Èh´MhjšÈubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj~Èubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j™Èh´MhjBÈubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj&ÈubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj¿Èh]”hŒ Description”…”�”}”(hjÁÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj½Èubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhj&ÈubhÝ)�”}”(hŒKIncrements the tlb sequence to make sure that future CS execute a VM flush.”h]”hŒKIncrements the tlb sequence to make sure that future CS execute a VM flush.”…”�”}”(hjÕÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhj&Èubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ amdgpu_vm_tlb_flush (C function)”Œc.amdgpu_vm_tlb_flush”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ„void amdgpu_vm_tlb_flush (struct amdgpu_vm_update_params *params, struct dma_fence **fence, struct amdgpu_vm_tlb_seq_struct *tlb_cb)”h]”jn)�”}”(hŒƒvoid amdgpu_vm_tlb_flush(struct amdgpu_vm_update_params *params, struct dma_fence **fence, struct amdgpu_vm_tlb_seq_struct *tlb_cb)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÉh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M(ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÉh²hh³jÉh´M(ubj—)�”}”(hŒamdgpu_vm_tlb_flush”h]”j�)�”}”(hŒamdgpu_vm_tlb_flush”h]”hŒamdgpu_vm_tlb_flush”…”�”}”(hj%Éh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj!Éubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjÉh²hh³jÉh´M(ubj¸)�”}”(hŒk(struct amdgpu_vm_update_params *params, struct dma_fence **fence, struct amdgpu_vm_tlb_seq_struct *tlb_cb)”h]”(j¾)�”}”(hŒ&struct amdgpu_vm_update_params *params”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjAÉh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj=Éubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjNÉh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj=Éubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_vm_update_params”h]”hŒamdgpu_vm_update_params”…”�”}”(hj_Éh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj\Éubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jaÉŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj'ÉsbŒc.amdgpu_vm_tlb_flush”†”asbuh1hhj=Éubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj=Éubj)�”}”(hjh]”hŒ*”…”�”}”(hj�Éh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj=Éubj�)�”}”(hŒparams”h]”hŒparams”…”�”}”(hjšÉh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj=Éubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj9Éubj¾)�”}”(hŒstruct dma_fence **fence”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj³Éh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj¯Éubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀÉh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¯Éubh)�”}”(hhh]”j�)�”}”(hŒ dma_fence”h]”hŒ dma_fence”…”�”}”(hjÑÉh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÎÉubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÓÉŒmodname”NŒ classname”Njÿj)�”}”j]”j{ÉŒc.amdgpu_vm_tlb_flush”†”asbuh1hhj¯Éubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjïÉh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¯Éubj)�”}”(hjh]”hŒ*”…”�”}”(hjýÉh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¯Éubj)�”}”(hjh]”hŒ*”…”�”}”(hj Êh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¯Éubj�)�”}”(hŒfence”h]”hŒfence”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¯Éubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj9Éubj¾)�”}”(hŒ'struct amdgpu_vm_tlb_seq_struct *tlb_cb”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj0Êh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj,Êubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=Êh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj,Êubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_vm_tlb_seq_struct”h]”hŒamdgpu_vm_tlb_seq_struct”…”�”}”(hjNÊh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjKÊubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jPÊŒmodname”NŒ classname”Njÿj)�”}”j]”j{ÉŒc.amdgpu_vm_tlb_flush”†”asbuh1hhj,Êubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjlÊh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj,Êubj)�”}”(hjh]”hŒ*”…”�”}”(hjzÊh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj,Êubj�)�”}”(hŒtlb_cb”h]”hŒtlb_cb”…”�”}”(hj‡Êh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj,Êubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj9Éubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjÉh²hh³jÉh´M(ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjüÈh²hh³jÉh´M(ubah}”(h]”j÷Èah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÉh´M(hjùÈh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒprepare TLB flush”h]”hŒprepare TLB flush”…”�”}”(hj±Êh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M(hj®Êh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjùÈh²hh³jÉh´M(ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jÉÊj¡jÉÊj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hX9**Parameters** ``struct amdgpu_vm_update_params *params`` parameters for update ``struct dma_fence **fence`` input fence to sync TLB flush with ``struct amdgpu_vm_tlb_seq_struct *tlb_cb`` the callback structure **Description** Increments the tlb sequence to make sure that future CS execute a VM flush.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjÓÊh]”hŒ Parameters”…”�”}”(hjÕÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÑÊubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M,hjÍÊubj )�”}”(hhh]”(j)�”}”(hŒA``struct amdgpu_vm_update_params *params`` parameters for update ”h]”(j)�”}”(hŒ*``struct amdgpu_vm_update_params *params``”h]”j:)�”}”(hjòÊh]”hŒ&struct amdgpu_vm_update_params *params”…”�”}”(hjôÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjðÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M*hjìÊubj$)�”}”(hhh]”hÝ)�”}”(hŒparameters for update”h]”hŒparameters for update”…”�”}”(hj Ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jËh´M*hjËubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjìÊubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jËh´M*hjéÊubj)�”}”(hŒ@``struct dma_fence **fence`` input fence to sync TLB flush with ”h]”(j)�”}”(hŒ``struct dma_fence **fence``”h]”j:)�”}”(hj+Ëh]”hŒstruct dma_fence **fence”…”�”}”(hj-Ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj)Ëubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M+hj%Ëubj$)�”}”(hhh]”hÝ)�”}”(hŒ"input fence to sync TLB flush with”h]”hŒ"input fence to sync TLB flush with”…”�”}”(hjDËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j@Ëh´M+hjAËubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj%Ëubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j@Ëh´M+hjéÊubj)�”}”(hŒC``struct amdgpu_vm_tlb_seq_struct *tlb_cb`` the callback structure ”h]”(j)�”}”(hŒ+``struct amdgpu_vm_tlb_seq_struct *tlb_cb``”h]”j:)�”}”(hjdËh]”hŒ'struct amdgpu_vm_tlb_seq_struct *tlb_cb”…”�”}”(hjfËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjbËubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M,hj^Ëubj$)�”}”(hhh]”hÝ)�”}”(hŒthe callback structure”h]”hŒthe callback structure”…”�”}”(hj}Ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jyËh´M,hjzËubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj^Ëubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jyËh´M,hjéÊubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÍÊubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjŸËh]”hŒ Description”…”�”}”(hj¡Ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj�Ëubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M.hjÍÊubhÝ)�”}”(hŒKIncrements the tlb sequence to make sure that future CS execute a VM flush.”h]”hŒKIncrements the tlb sequence to make sure that future CS execute a VM flush.”…”�”}”(hjµËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M-hjÍÊubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ#amdgpu_vm_update_range (C function)”Œc.amdgpu_vm_update_range”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hXKint amdgpu_vm_update_range (struct amdgpu_device *adev, struct amdgpu_vm *vm, bool immediate, bool unlocked, bool flush_tlb, bool allow_override, struct amdgpu_sync *sync, uint64_t start, uint64_t last, uint64_t flags, uint64_t offset, uint64_t vram_base, struct ttm_resource *res, dma_addr_t *pages_addr, struct dma_fence **fence)”h]”jn)�”}”(hXJint amdgpu_vm_update_range(struct amdgpu_device *adev, struct amdgpu_vm *vm, bool immediate, bool unlocked, bool flush_tlb, bool allow_override, struct amdgpu_sync *sync, uint64_t start, uint64_t last, uint64_t flags, uint64_t offset, uint64_t vram_base, struct ttm_resource *res, dma_addr_t *pages_addr, struct dma_fence **fence)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjäËh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjàËh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MSubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjóËh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjàËh²hh³jòËh´MSubj—)�”}”(hŒamdgpu_vm_update_range”h]”j�)�”}”(hŒamdgpu_vm_update_range”h]”hŒamdgpu_vm_update_range”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÌubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjàËh²hh³jòËh´MSubj¸)�”}”(hX0(struct amdgpu_device *adev, struct amdgpu_vm *vm, bool immediate, bool unlocked, bool flush_tlb, bool allow_override, struct amdgpu_sync *sync, uint64_t start, uint64_t last, uint64_t flags, uint64_t offset, uint64_t vram_base, struct ttm_resource *res, dma_addr_t *pages_addr, struct dma_fence **fence)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj!Ìh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÌubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.Ìh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÌubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj?Ìh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj<Ìubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jAÌŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjÌsbŒc.amdgpu_vm_update_range”†”asbuh1hhjÌubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_Ìh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÌubj)�”}”(hjh]”hŒ*”…”�”}”(hjmÌh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÌubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjzÌh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÌubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌubj¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj“Ìh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj�Ìubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj Ìh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj�Ìubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hj±Ìh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj®Ìubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j³ÌŒmodname”NŒ classname”Njÿj)�”}”j]”j[ÌŒc.amdgpu_vm_update_range”†”asbuh1hhj�Ìubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏÌh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj�Ìubj)�”}”(hjh]”hŒ*”…”�”}”(hjÝÌh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj�Ìubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjêÌh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj�Ìubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌubj¾)�”}”(hŒbool immediate”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÿÌubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÿÌubj�)�”}”(hŒ immediate”h]”hŒ immediate”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÿÌubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌubj¾)�”}”(hŒ bool unlocked”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hj7Íh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj3Íubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjDÍh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj3Íubj�)�”}”(hŒunlocked”h]”hŒunlocked”…”�”}”(hjRÍh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj3Íubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌubj¾)�”}”(hŒbool flush_tlb”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hjkÍh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjgÍubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjxÍh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjgÍubj�)�”}”(hŒ flush_tlb”h]”hŒ flush_tlb”…”�”}”(hj†Íh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjgÍubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌubj¾)�”}”(hŒbool allow_override”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hjŸÍh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj›Íubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¬Íh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj›Íubj�)�”}”(hŒallow_override”h]”hŒallow_override”…”�”}”(hjºÍh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj›Íubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌubj¾)�”}”(hŒstruct amdgpu_sync *sync”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÓÍh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÏÍubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjàÍh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÏÍubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_sync”h]”hŒ amdgpu_sync”…”�”}”(hjñÍh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjîÍubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jóÍŒmodname”NŒ classname”Njÿj)�”}”j]”j[ÌŒc.amdgpu_vm_update_range”†”asbuh1hhjÏÍubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÏÍubj)�”}”(hjh]”hŒ*”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÏÍubj�)�”}”(hŒsync”h]”hŒsync”…”�”}”(hj*Îh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÏÍubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌubj¾)�”}”(hŒuint64_t start”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hjFÎh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjCÎubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jHÎŒmodname”NŒ classname”Njÿj)�”}”j]”j[ÌŒc.amdgpu_vm_update_range”†”asbuh1hhj?Îubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjdÎh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj?Îubj�)�”}”(hŒstart”h]”hŒstart”…”�”}”(hjrÎh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj?Îubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌubj¾)�”}”(hŒ uint64_t last”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hjŽÎh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj‹Îubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j�ÎŒmodname”NŒ classname”Njÿj)�”}”j]”j[ÌŒc.amdgpu_vm_update_range”†”asbuh1hhj‡Îubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¬Îh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj‡Îubj�)�”}”(hŒlast”h]”hŒlast”…”�”}”(hjºÎh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj‡Îubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌubj¾)�”}”(hŒuint64_t flags”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hjÖÎh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÓÎubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jØÎŒmodname”NŒ classname”Njÿj)�”}”j]”j[ÌŒc.amdgpu_vm_update_range”†”asbuh1hhjÏÎubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjôÎh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÏÎubj�)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÏÎubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌubj¾)�”}”(hŒuint64_t offset”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÏubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j ÏŒmodname”NŒ classname”Njÿj)�”}”j]”j[ÌŒc.amdgpu_vm_update_range”†”asbuh1hhjÏubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj<Ïh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÏubj�)�”}”(hŒoffset”h]”hŒoffset”…”�”}”(hjJÏh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÏubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌubj¾)�”}”(hŒuint64_t vram_base”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hjfÏh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjcÏubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jhÏŒmodname”NŒ classname”Njÿj)�”}”j]”j[ÌŒc.amdgpu_vm_update_range”†”asbuh1hhj_Ïubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„Ïh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj_Ïubj�)�”}”(hŒ vram_base”h]”hŒ vram_base”…”�”}”(hj’Ïh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj_Ïubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌubj¾)�”}”(hŒstruct ttm_resource *res”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj«Ïh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj§Ïubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¸Ïh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj§Ïubh)�”}”(hhh]”j�)�”}”(hŒ ttm_resource”h]”hŒ ttm_resource”…”�”}”(hjÉÏh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÆÏubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jËÏŒmodname”NŒ classname”Njÿj)�”}”j]”j[ÌŒc.amdgpu_vm_update_range”†”asbuh1hhj§Ïubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjçÏh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj§Ïubj)�”}”(hjh]”hŒ*”…”�”}”(hjõÏh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj§Ïubj�)�”}”(hŒres”h]”hŒres”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj§Ïubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌubj¾)�”}”(hŒdma_addr_t *pages_addr”h]”(h)�”}”(hhh]”j�)�”}”(hŒ dma_addr_t”h]”hŒ dma_addr_t”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÐubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j ÐŒmodname”NŒ classname”Njÿj)�”}”j]”j[ÌŒc.amdgpu_vm_update_range”†”asbuh1hhjÐubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj<Ðh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÐubj)�”}”(hjh]”hŒ*”…”�”}”(hjJÐh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÐubj�)�”}”(hŒ pages_addr”h]”hŒ pages_addr”…”�”}”(hjWÐh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÐubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌubj¾)�”}”(hŒstruct dma_fence **fence”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjpÐh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjlÐubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}Ðh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjlÐubh)�”}”(hhh]”j�)�”}”(hŒ dma_fence”h]”hŒ dma_fence”…”�”}”(hjŽÐh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj‹Ðubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j�ÐŒmodname”NŒ classname”Njÿj)�”}”j]”j[ÌŒc.amdgpu_vm_update_range”†”asbuh1hhjlÐubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¬Ðh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjlÐubj)�”}”(hjh]”hŒ*”…”�”}”(hjºÐh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjlÐubj)�”}”(hjh]”hŒ*”…”�”}”(hjÇÐh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjlÐubj�)�”}”(hŒfence”h]”hŒfence”…”�”}”(hjÔÐh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjlÐubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjàËh²hh³jòËh´MSubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjÜËh²hh³jòËh´MSubah}”(h]”j×Ëah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jòËh´MShjÙËh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ#update a range in the vm page table”h]”hŒ#update a range in the vm page table”…”�”}”(hjþÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MShjûÐh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÙËh²hh³jòËh´MSubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jÑj¡jÑj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hXè**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer to use for commands ``struct amdgpu_vm *vm`` the VM to update the range ``bool immediate`` immediate submission in a page fault ``bool unlocked`` unlocked invalidation during MM callback ``bool flush_tlb`` trigger tlb invalidation after update completed ``bool allow_override`` change MTYPE for local NUMA nodes ``struct amdgpu_sync *sync`` fences we need to sync to ``uint64_t start`` start of mapped range ``uint64_t last`` last mapped entry ``uint64_t flags`` flags for the entries ``uint64_t offset`` offset into nodes and pages_addr ``uint64_t vram_base`` base for vram mappings ``struct ttm_resource *res`` ttm_resource to map ``dma_addr_t *pages_addr`` DMA addresses to use for mapping ``struct dma_fence **fence`` optional resulting fence **Description** Fill in the page table entries between **start** and **last**. **Return** 0 for success, negative erro code for failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj Ñh]”hŒ Parameters”…”�”}”(hj"Ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MWhjÑubj )�”}”(hhh]”(j)�”}”(hŒI``struct amdgpu_device *adev`` amdgpu_device pointer to use for commands ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hj?Ñh]”hŒstruct amdgpu_device *adev”…”�”}”(hjAÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj=Ñubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MUhj9Ñubj$)�”}”(hhh]”hÝ)�”}”(hŒ)amdgpu_device pointer to use for commands”h]”hŒ)amdgpu_device pointer to use for commands”…”�”}”(hjXÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jTÑh´MUhjUÑubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj9Ñubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jTÑh´MUhj6Ñubj)�”}”(hŒ4``struct amdgpu_vm *vm`` the VM to update the range ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hjxÑh]”hŒstruct amdgpu_vm *vm”…”�”}”(hjzÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjvÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MVhjrÑubj$)�”}”(hhh]”hÝ)�”}”(hŒthe VM to update the range”h]”hŒthe VM to update the range”…”�”}”(hj‘Ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j�Ñh´MVhjŽÑubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjrÑubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j�Ñh´MVhj6Ñubj)�”}”(hŒ8``bool immediate`` immediate submission in a page fault ”h]”(j)�”}”(hŒ``bool immediate``”h]”j:)�”}”(hj±Ñh]”hŒbool immediate”…”�”}”(hj³Ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj¯Ñubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MWhj«Ñubj$)�”}”(hhh]”hÝ)�”}”(hŒ$immediate submission in a page fault”h]”hŒ$immediate submission in a page fault”…”�”}”(hjÊÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÆÑh´MWhjÇÑubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj«Ñubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÆÑh´MWhj6Ñubj)�”}”(hŒ;``bool unlocked`` unlocked invalidation during MM callback ”h]”(j)�”}”(hŒ``bool unlocked``”h]”j:)�”}”(hjêÑh]”hŒ bool unlocked”…”�”}”(hjìÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjèÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MXhjäÑubj$)�”}”(hhh]”hÝ)�”}”(hŒ(unlocked invalidation during MM callback”h]”hŒ(unlocked invalidation during MM callback”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÿÑh´MXhjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjäÑubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÿÑh´MXhj6Ñubj)�”}”(hŒC``bool flush_tlb`` trigger tlb invalidation after update completed ”h]”(j)�”}”(hŒ``bool flush_tlb``”h]”j:)�”}”(hj#Òh]”hŒbool flush_tlb”…”�”}”(hj%Òh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj!Òubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MYhjÒubj$)�”}”(hhh]”hÝ)�”}”(hŒ/trigger tlb invalidation after update completed”h]”hŒ/trigger tlb invalidation after update completed”…”�”}”(hj<Òh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j8Òh´MYhj9Òubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÒubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j8Òh´MYhj6Ñubj)�”}”(hŒ:``bool allow_override`` change MTYPE for local NUMA nodes ”h]”(j)�”}”(hŒ``bool allow_override``”h]”j:)�”}”(hj\Òh]”hŒbool allow_override”…”�”}”(hj^Òh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjZÒubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MZhjVÒubj$)�”}”(hhh]”hÝ)�”}”(hŒ!change MTYPE for local NUMA nodes”h]”hŒ!change MTYPE for local NUMA nodes”…”�”}”(hjuÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jqÒh´MZhjrÒubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjVÒubeh}”(h]”h ]”•h"]”h$]”h&]”uh1j h³jqÒh´MZhj6Ñubj)�”}”(hŒ7``struct amdgpu_sync *sync`` fences we need to sync to ”h]”(j)�”}”(hŒ``struct amdgpu_sync *sync``”h]”j:)�”}”(hj•Òh]”hŒstruct amdgpu_sync *sync”…”�”}”(hj—Òh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj“Òubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M[hj�Òubj$)�”}”(hhh]”hÝ)�”}”(hŒfences we need to sync to”h]”hŒfences we need to sync to”…”�”}”(hj®Òh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jªÒh´M[hj«Òubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj�Òubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jªÒh´M[hj6Ñubj)�”}”(hŒ)``uint64_t start`` start of mapped range ”h]”(j)�”}”(hŒ``uint64_t start``”h]”j:)�”}”(hjÎÒh]”hŒuint64_t start”…”�”}”(hjÐÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÌÒubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M\hjÈÒubj$)�”}”(hhh]”hÝ)�”}”(hŒstart of mapped range”h]”hŒstart of mapped range”…”�”}”(hjçÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jãÒh´M\hjäÒubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÈÒubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jãÒh´M\hj6Ñubj)�”}”(hŒ$``uint64_t last`` last mapped entry ”h]”(j)�”}”(hŒ``uint64_t last``”h]”j:)�”}”(hjÓh]”hŒ uint64_t last”…”�”}”(hj Óh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M]hjÓubj$)�”}”(hhh]”hÝ)�”}”(hŒlast mapped entry”h]”hŒlast mapped entry”…”�”}”(hj Óh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÓh´M]hjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÓubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÓh´M]hj6Ñubj)�”}”(hŒ)``uint64_t flags`` flags for the entries ”h]”(j)�”}”(hŒ``uint64_t flags``”h]”j:)�”}”(hj@Óh]”hŒuint64_t flags”…”�”}”(hjBÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj>Óubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M^hj:Óubj$)�”}”(hhh]”hÝ)�”}”(hŒflags for the entries”h]”hŒflags for the entries”…”�”}”(hjYÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jUÓh´M^hjVÓubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj:Óubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jUÓh´M^hj6Ñubj)�”}”(hŒ5``uint64_t offset`` offset into nodes and pages_addr ”h]”(j)�”}”(hŒ``uint64_t offset``”h]”j:)�”}”(hjyÓh]”hŒuint64_t offset”…”�”}”(hj{Óh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjwÓubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M_hjsÓubj$)�”}”(hhh]”hÝ)�”}”(hŒ offset into nodes and pages_addr”h]”hŒ offset into nodes and pages_addr”…”�”}”(hj’Óh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jŽÓh´M_hj�Óubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjsÓubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jŽÓh´M_hj6Ñubj)�”}”(hŒ.``uint64_t vram_base`` base for vram mappings ”h]”(j)�”}”(hŒ``uint64_t vram_base``”h]”j:)�”}”(hj²Óh]”hŒuint64_t vram_base”…”�”}”(hj´Óh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj°Óubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M`hj¬Óubj$)�”}”(hhh]”hÝ)�”}”(hŒbase for vram mappings”h]”hŒbase for vram mappings”…”�”}”(hjËÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÇÓh´M`hjÈÓubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj¬Óubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÇÓh´M`hj6Ñubj)�”}”(hŒ1``struct ttm_resource *res`` ttm_resource to map ”h]”(j)�”}”(hŒ``struct ttm_resource *res``”h]”j:)�”}”(hjëÓh]”hŒstruct ttm_resource *res”…”�”}”(hjíÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjéÓubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MahjåÓubj$)�”}”(hhh]”hÝ)�”}”(hŒttm_resource to map”h]”hŒttm_resource to map”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÔh´MahjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjåÓubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÔh´Mahj6Ñubj)�”}”(hŒ<``dma_addr_t *pages_addr`` DMA addresses to use for mapping ”h]”(j)�”}”(hŒ``dma_addr_t *pages_addr``”h]”j:)�”}”(hj$Ôh]”hŒdma_addr_t *pages_addr”…”�”}”(hj&Ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj"Ôubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MbhjÔubj$)�”}”(hhh]”hÝ)�”}”(hŒ DMA addresses to use for mapping”h]”hŒ DMA addresses to use for mapping”…”�”}”(hj=Ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j9Ôh´Mbhj:Ôubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÔubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j9Ôh´Mbhj6Ñubj)�”}”(hŒ6``struct dma_fence **fence`` optional resulting fence ”h]”(j)�”}”(hŒ``struct dma_fence **fence``”h]”j:)�”}”(hj]Ôh]”hŒstruct dma_fence **fence”…”�”}”(hj_Ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj[Ôubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MchjWÔubj$)�”}”(hhh]”hÝ)�”}”(hŒoptional resulting fence”h]”hŒoptional resulting fence”…”�”}”(hjvÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jrÔh´MchjsÔubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjWÔubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jrÔh´Mchj6Ñubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÑubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj˜Ôh]”hŒ Description”…”�”}”(hjšÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj–Ôubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MehjÑubhÝ)�”}”(hŒ>Fill in the page table entries between **start** and **last**.”h]”(hŒ'Fill in the page table entries between ”…”�”}”(hj®Ôh²hh³Nh´Nubjµ)�”}”(hŒ **start**”h]”hŒstart”…”�”}”(hj¶Ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj®ÔubhŒ and ”…”�”}”(hj®Ôh²hh³Nh´Nubjµ)�”}”(hŒ**last**”h]”hŒlast”…”�”}”(hjÈÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj®ÔubhŒ.”…”�”}”(hj®Ôh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MdhjÑubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjãÔh]”hŒReturn”…”�”}”(hjåÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjáÔubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MfhjÑubhÝ)�”}”(hŒ.0 for success, negative erro code for failure.”h]”hŒ.0 for success, negative erro code for failure.”…”�”}”(hjùÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MghjÑubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ amdgpu_vm_bo_update (C function)”Œc.amdgpu_vm_bo_update”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ\int amdgpu_vm_bo_update (struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, bool clear)”h]”jn)�”}”(hŒ[int amdgpu_vm_bo_update(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, bool clear)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj(Õh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj$Õh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mùubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7Õh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj$Õh²hh³j6Õh´Mùubj—)�”}”(hŒamdgpu_vm_bo_update”h]”j�)�”}”(hŒamdgpu_vm_bo_update”h]”hŒamdgpu_vm_bo_update”…”�”}”(hjIÕh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjEÕubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj$Õh²hh³j6Õh´Mùubj¸)�”}”(hŒD(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, bool clear)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjeÕh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjaÕubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjrÕh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjaÕubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjƒÕh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj€Õubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j…ÕŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjKÕsbŒc.amdgpu_vm_bo_update”†”asbuh1hhjaÕubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£Õh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjaÕubj)�”}”(hjh]”hŒ*”…”�”}”(hj±Õh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjaÕubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj¾Õh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjaÕubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj]Õubj¾)�”}”(hŒstruct amdgpu_bo_va *bo_va”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj×Õh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÓÕubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjäÕh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÓÕubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo_va”h]”hŒ amdgpu_bo_va”…”�”}”(hjõÕh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjòÕubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j÷ÕŒmodname”NŒ classname”Njÿj)�”}”j]”jŸÕŒc.amdgpu_vm_bo_update”†”asbuh1hhjÓÕubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÓÕubj)�”}”(hjh]”hŒ*”…”�”}”(hj!Öh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÓÕubj�)�”}”(hŒbo_va”h]”hŒbo_va”…”�”}”(hj.Öh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÓÕubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj]Õubj¾)�”}”(hŒ bool clear”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hjGÖh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjCÖubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjTÖh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjCÖubj�)�”}”(hŒclear”h]”hŒclear”…”�”}”(hjbÖh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjCÖubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj]Õubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj$Õh²hh³j6Õh´Mùubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj Õh²hh³j6Õh´Mùubah}”(h]”jÕah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j6Õh´MùhjÕh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ+update all BO mappings in the vm page table”h]”hŒ+update all BO mappings in the vm page table”…”�”}”(hjŒÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mùhj‰Öh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÕh²hh³j6Õh´Mùubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j¤Öj¡j¤Öj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hX **Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct amdgpu_bo_va *bo_va`` requested BO and VM object ``bool clear`` if true clear the entries **Description** Fill in the page table entries for **bo_va**. **Return** 0 for success, -EINVAL for failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj®Öh]”hŒ Parameters”…”�”}”(hj°Öh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¬Öubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mýhj¨Öubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjÍÖh]”hŒstruct amdgpu_device *adev”…”�”}”(hjÏÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjËÖubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MûhjÇÖubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hjæÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jâÖh´MûhjãÖubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÇÖubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jâÖh´MûhjÄÖubj)�”}”(hŒ:``struct amdgpu_bo_va *bo_va`` requested BO and VM object ”h]”(j)�”}”(hŒ``struct amdgpu_bo_va *bo_va``”h]”j:)�”}”(hj×h]”hŒstruct amdgpu_bo_va *bo_va”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj×ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mühj×ubj$)�”}”(hhh]”hÝ)�”}”(hŒrequested BO and VM object”h]”hŒrequested BO and VM object”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j×h´Mühj×ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj×ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j×h´MühjÄÖubj)�”}”(hŒ)``bool clear`` if true clear the entries ”h]”(j)�”}”(hŒ``bool clear``”h]”j:)�”}”(hj?×h]”hŒ bool clear”…”�”}”(hjA×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj=×ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mýhj9×ubj$)�”}”(hhh]”hÝ)�”}”(hŒif true clear the entries”h]”hŒif true clear the entries”…”�”}”(hjX×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jT×h´MýhjU×ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj9×ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jT×h´MýhjÄÖubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¨ÖubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjz×h]”hŒ Description”…”�”}”(hj|×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjx×ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mÿhj¨ÖubhÝ)�”}”(hŒ-Fill in the page table entries for **bo_va**.”h]”(hŒ#Fill in the page table entries for ”…”�”}”(hj�×h²hh³Nh´Nubjµ)�”}”(hŒ **bo_va**”h]”hŒbo_va”…”�”}”(hj˜×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj�×ubhŒ.”…”�”}”(hj�×h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mþhj¨ÖubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj³×h]”hŒReturn”…”�”}”(hjµ×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj±×ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhj¨ÖubhÝ)�”}”(hŒ#0 for success, -EINVAL for failure.”h]”hŒ#0 for success, -EINVAL for failure.”…”�”}”(hjÉ×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhj¨Öubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ'amdgpu_vm_update_prt_state (C function)”Œc.amdgpu_vm_update_prt_state”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒÜubj¾)�”}”(hŒstruct dma_fence_cb *_cb”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj¸Üh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj´Üubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÅÜh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj´Üubh)�”}”(hhh]”j�)�”}”(hŒ dma_fence_cb”h]”hŒ dma_fence_cb”…”�”}”(hjÖÜh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÓÜubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jØÜŒmodname”NŒ classname”Njÿj)�”}”j]”j€ÜŒc.amdgpu_vm_prt_cb”†”asbuh1hhj´Üubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjôÜh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj´Üubj)�”}”(hjh]”hŒ*”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj´Üubj�)�”}”(hŒ_cb”h]”hŒ_cb”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj´Üubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj>Üubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjÜh²hh³jÜh´MÆubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjÜh²hh³jÜh´MÆubah}”(h]”jüÛah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÜh´MÆhjþÛh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ$callback for updating the PRT status”h]”hŒ$callback for updating the PRT status”…”�”}”(hj9Ýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÆhj6Ýh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjþÛh²hh³jÜh´MÆubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jQÝj¡jQÝj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒz**Parameters** ``struct dma_fence *fence`` fence for the callback ``struct dma_fence_cb *_cb`` the callback function”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj[Ýh]”hŒ Parameters”…”�”}”(hj]Ýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjYÝubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÊhjUÝubj )�”}”(hhh]”(j)�”}”(hŒ3``struct dma_fence *fence`` fence for the callback ”h]”(j)�”}”(hŒ``struct dma_fence *fence``”h]”j:)�”}”(hjzÝh]”hŒstruct dma_fence *fence”…”�”}”(hj|Ýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjxÝubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÈhjtÝubj$)�”}”(hhh]”hÝ)�”}”(hŒfence for the callback”h]”hŒfence for the callback”…”�”}”(hj“Ýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j�Ýh´MÈhj�Ýubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjtÝubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j�Ýh´MÈhjqÝubj)�”}”(hŒ2``struct dma_fence_cb *_cb`` the callback function”h]”(j)�”}”(hŒ``struct dma_fence_cb *_cb``”h]”j:)�”}”(hj³Ýh]”hŒstruct dma_fence_cb *_cb”…”�”}”(hjµÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj±Ýubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÊhj­Ýubj$)�”}”(hhh]”hÝ)�”}”(hŒthe callback function”h]”hŒthe callback function”…”�”}”(hjÌÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÉhjÉÝubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj­Ýubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÈÝh´MÊhjqÝubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjUÝubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ!amdgpu_vm_add_prt_cb (C function)”Œc.amdgpu_vm_add_prt_cb”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒOvoid amdgpu_vm_add_prt_cb (struct amdgpu_device *adev, struct dma_fence *fence)”h]”jn)�”}”(hŒNvoid amdgpu_vm_add_prt_cb(struct amdgpu_device *adev, struct dma_fence *fence)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj Þh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj Þh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÔubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj Þh²hh³jÞh´MÔubj—)�”}”(hŒamdgpu_vm_add_prt_cb”h]”j�)�”}”(hŒamdgpu_vm_add_prt_cb”h]”hŒamdgpu_vm_add_prt_cb”…”�”}”(hj.Þh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj*Þubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj Þh²hh³jÞh´MÔubj¸)�”}”(hŒ5(struct amdgpu_device *adev, struct dma_fence *fence)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjJÞh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjFÞubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjWÞh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjFÞubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjhÞh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjeÞubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jjÞŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj0ÞsbŒc.amdgpu_vm_add_prt_cb”†”asbuh1hhjFÞubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjˆÞh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjFÞubj)�”}”(hjh]”hŒ*”…”�”}”(hj–Þh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjFÞubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj£Þh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjFÞubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjBÞubj¾)�”}”(hŒstruct dma_fence *fence”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj¼Þh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj¸Þubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉÞh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¸Þubh)�”}”(hhh]”j�)�”}”(hŒ dma_fence”h]”hŒ dma_fence”…”�”}”(hjÚÞh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj×Þubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÜÞŒmodname”NŒ classname”Njÿj)�”}”j]”j„ÞŒc.amdgpu_vm_add_prt_cb”†”asbuh1hhj¸Þubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjøÞh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¸Þubj)�”}”(hjh]”hŒ*”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¸Þubj�)�”}”(hŒfence”h]”hŒfence”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¸Þubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjBÞubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj Þh²hh³jÞh´MÔubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjÞh²hh³jÞh´MÔubah}”(h]”jÞah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÞh´MÔhjÞh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ(add callback for updating the PRT status”h]”hŒ(add callback for updating the PRT status”…”�”}”(hj=ßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÔhj:ßh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÞh²hh³jÞh´MÔubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jUßj¡jUßj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒ|**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct dma_fence *fence`` fence for the callback”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj_ßh]”hŒ Parameters”…”�”}”(hjaßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj]ßubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MØhjYßubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hj~ßh]”hŒstruct amdgpu_device *adev”…”�”}”(hj€ßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj|ßubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÖhjxßubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hj—ßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j“ßh´MÖhj”ßubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjxßubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j“ßh´MÖhjußubj)�”}”(hŒ2``struct dma_fence *fence`` fence for the callback”h]”(j)�”}”(hŒ``struct dma_fence *fence``”h]”j:)�”}”(hj·ßh]”hŒstruct dma_fence *fence”…”�”}”(hj¹ßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjµßubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MØhj±ßubj$)�”}”(hhh]”hÝ)�”}”(hŒfence for the callback”h]”hŒfence for the callback”…”�”}”(hjÐßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M×hjÍßubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj±ßubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÌßh´MØhjußubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjYßubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ#amdgpu_vm_free_mapping (C function)”Œc.amdgpu_vm_free_mapping”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ�void amdgpu_vm_free_mapping (struct amdgpu_device *adev, struct amdgpu_vm *vm, struct amdgpu_bo_va_mapping *mapping, struct dma_fence *fence)”h]”jn)�”}”(hŒŒvoid amdgpu_vm_free_mapping(struct amdgpu_device *adev, struct amdgpu_vm *vm, struct amdgpu_bo_va_mapping *mapping, struct dma_fence *fence)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj àh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mñubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj àh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj àh²hh³jàh´Mñubj—)�”}”(hŒamdgpu_vm_free_mapping”h]”j�)�”}”(hŒamdgpu_vm_free_mapping”h]”hŒamdgpu_vm_free_mapping”…”�”}”(hj2àh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj.àubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj àh²hh³jàh´Mñubj¸)�”}”(hŒq(struct amdgpu_device *adev, struct amdgpu_vm *vm, struct amdgpu_bo_va_mapping *mapping, struct dma_fence *fence)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjNàh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjJàubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj[àh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjJàubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjlàh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjiàubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jnàŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj4àsbŒc.amdgpu_vm_free_mapping”†”asbuh1hhjJàubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒàh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjJàubj)�”}”(hjh]”hŒ*”…”�”}”(hjšàh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjJàubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj§àh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjJàubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjFàubj¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÀàh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj¼àubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍàh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¼àubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hjÞàh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÛàubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jààŒmodname”NŒ classname”Njÿj)�”}”j]”jˆàŒc.amdgpu_vm_free_mapping”†”asbuh1hhj¼àubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjüàh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¼àubj)�”}”(hjh]”hŒ*”…”�”}”(hj áh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¼àubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¼àubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjFàubj¾)�”}”(hŒ$struct amdgpu_bo_va_mapping *mapping”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj0áh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj,áubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=áh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj,áubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_bo_va_mapping”h]”hŒamdgpu_bo_va_mapping”…”�”}”(hjNáh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjKáubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jPáŒmodname”NŒ classname”Njÿj)�”}”j]”jˆàŒc.amdgpu_vm_free_mapping”†”asbuh1hhj,áubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjláh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj,áubj)�”}”(hjh]”hŒ*”…”�”}”(hjzáh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj,áubj�)�”}”(hŒmapping”h]”hŒmapping”…”�”}”(hj‡áh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj,áubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjFàubj¾)�”}”(hŒstruct dma_fence *fence”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj áh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjœáubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj­áh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjœáubh)�”}”(hhh]”j�)�”}”(hŒ dma_fence”h]”hŒ dma_fence”…”�”}”(hj¾áh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj»áubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÀáŒmodname”NŒ classname”Njÿj)�”}”j]”jˆàŒc.amdgpu_vm_free_mapping”†”asbuh1hhjœáubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜáh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjœáubj)�”}”(hjh]”hŒ*”…”�”}”(hjêáh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjœáubj�)�”}”(hŒfence”h]”hŒfence”…”�”}”(hj÷áh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjœáubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjFàubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj àh²hh³jàh´Mñubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj àh²hh³jàh´Mñubah}”(h]”jàah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jàh´Mñhjàh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒfree a mapping”h]”hŒfree a mapping”…”�”}”(hj!âh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mñhjâh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjàh²hh³jàh´Mñubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j9âj¡j9âj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hXI**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct amdgpu_vm *vm`` requested vm ``struct amdgpu_bo_va_mapping *mapping`` mapping to be freed ``struct dma_fence *fence`` fence of the unmap operation **Description** Free a mapping and make sure we decrease the PRT usage count if applicable.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjCâh]”hŒ Parameters”…”�”}”(hjEâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjAâubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mõhj=âubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjbâh]”hŒstruct amdgpu_device *adev”…”�”}”(hjdâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj`âubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Móhj\âubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hj{âh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jwâh´Móhjxâubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj\âubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jwâh´MóhjYâubj)�”}”(hŒ&``struct amdgpu_vm *vm`` requested vm ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hj›âh]”hŒstruct amdgpu_vm *vm”…”�”}”(hj�âh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj™âubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Môhj•âubj$)�”}”(hhh]”hÝ)�”}”(hŒ requested vm”h]”hŒ requested vm”…”�”}”(hj´âh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j°âh´Môhj±âubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj•âubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j°âh´MôhjYâubj)�”}”(hŒ=``struct amdgpu_bo_va_mapping *mapping`` mapping to be freed ”h]”(j)�”}”(hŒ(``struct amdgpu_bo_va_mapping *mapping``”h]”j:)�”}”(hjÔâh]”hŒ$struct amdgpu_bo_va_mapping *mapping”…”�”}”(hjÖâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÒâubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MõhjÎâubj$)�”}”(hhh]”hÝ)�”}”(hŒmapping to be freed”h]”hŒmapping to be freed”…”�”}”(hjíâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jéâh´Mõhjêâubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÎâubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jéâh´MõhjYâubj)�”}”(hŒ9``struct dma_fence *fence`` fence of the unmap operation ”h]”(j)�”}”(hŒ``struct dma_fence *fence``”h]”j:)�”}”(hj ãh]”hŒstruct dma_fence *fence”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj ãubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Möhjãubj$)�”}”(hhh]”hÝ)�”}”(hŒfence of the unmap operation”h]”hŒfence of the unmap operation”…”�”}”(hj&ãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j"ãh´Möhj#ãubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjãubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j"ãh´MöhjYâubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj=âubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjHãh]”hŒ Description”…”�”}”(hjJãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjFãubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Møhj=âubhÝ)�”}”(hŒKFree a mapping and make sure we decrease the PRT usage count if applicable.”h]”hŒKFree a mapping and make sure we decrease the PRT usage count if applicable.”…”�”}”(hj^ãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M÷hj=âubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_vm_prt_fini (C function)”Œc.amdgpu_vm_prt_fini”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒJvoid amdgpu_vm_prt_fini (struct amdgpu_device *adev, struct amdgpu_vm *vm)”h]”jn)�”}”(hŒIvoid amdgpu_vm_prt_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj�ãh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj‰ãh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœãh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj‰ãh²hh³j›ãh´Mubj—)�”}”(hŒamdgpu_vm_prt_fini”h]”j�)�”}”(hŒamdgpu_vm_prt_fini”h]”hŒamdgpu_vm_prt_fini”…”�”}”(hj®ãh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjªãubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj‰ãh²hh³j›ãh´Mubj¸)�”}”(hŒ2(struct amdgpu_device *adev, struct amdgpu_vm *vm)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÊãh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÆãubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj×ãh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÆãubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjèãh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjåãubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jêãŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj°ãsbŒc.amdgpu_vm_prt_fini”†”asbuh1hhjÆãubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÆãubj)�”}”(hjh]”hŒ*”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÆãubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj#äh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÆãubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÂãubj¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj<äh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj8äubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjIäh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj8äubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hjZäh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjWäubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j\äŒmodname”NŒ classname”Njÿj)�”}”j]”jäŒc.amdgpu_vm_prt_fini”†”asbuh1hhj8äubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjxäh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj8äubj)�”}”(hjh]”hŒ*”…”�”}”(hj†äh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj8äubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hj“äh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj8äubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÂãubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj‰ãh²hh³j›ãh´Mubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj…ãh²hh³j›ãh´Mubah}”(h]”j€ãah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j›ãh´Mhj‚ãh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒfinish all prt mappings”h]”hŒfinish all prt mappings”…”�”}”(hj½äh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhjºäh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj‚ãh²hh³j›ãh´Mubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jÕäj¡jÕäj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒÃ**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct amdgpu_vm *vm`` requested vm **Description** Register a cleanup callback to disable PRT support after VM dies.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjßäh]”hŒ Parameters”…”�”}”(hjáäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÝäubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hjÙäubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjþäh]”hŒstruct amdgpu_device *adev”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjüäubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhjøäubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jåh´Mhjåubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjøäubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jåh´Mhjõäubj)�”}”(hŒ&``struct amdgpu_vm *vm`` requested vm ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hj7åh]”hŒstruct amdgpu_vm *vm”…”�”}”(hj9åh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj5åubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhj1åubj$)�”}”(hhh]”hÝ)�”}”(hŒ requested vm”h]”hŒ requested vm”…”�”}”(hjPåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jLåh´MhjMåubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj1åubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jLåh´Mhjõäubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÙäubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjråh]”hŒ Description”…”�”}”(hjtåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjpåubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hjÙäubhÝ)�”}”(hŒARegister a cleanup callback to disable PRT support after VM dies.”h]”hŒARegister a cleanup callback to disable PRT support after VM dies.”…”�”}”(hjˆåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hjÙäubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ"amdgpu_vm_clear_freed (C function)”Œc.amdgpu_vm_clear_freed”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒfint amdgpu_vm_clear_freed (struct amdgpu_device *adev, struct amdgpu_vm *vm, struct dma_fence **fence)”h]”jn)�”}”(hŒeint amdgpu_vm_clear_freed(struct amdgpu_device *adev, struct amdgpu_vm *vm, struct dma_fence **fence)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj·åh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj³åh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÆåh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj³åh²hh³jÅåh´Mubj—)�”}”(hŒamdgpu_vm_clear_freed”h]”j�)�”}”(hŒamdgpu_vm_clear_freed”h]”hŒamdgpu_vm_clear_freed”…”�”}”(hjØåh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÔåubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj³åh²hh³jÅåh´Mubj¸)�”}”(hŒL(struct amdgpu_device *adev, struct amdgpu_vm *vm, struct dma_fence **fence)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjôåh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjðåubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjðåubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjæubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jæŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjÚåsbŒc.amdgpu_vm_clear_freed”†”asbuh1hhjðåubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2æh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjðåubj)�”}”(hjh]”hŒ*”…”�”}”(hj@æh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjðåubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjMæh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjðåubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjìåubj¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjfæh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjbæubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjsæh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjbæubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hj„æh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj�æubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j†æŒmodname”NŒ classname”Njÿj)�”}”j]”j.æŒc.amdgpu_vm_clear_freed”†”asbuh1hhjbæubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¢æh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjbæubj)�”}”(hjh]”hŒ*”…”�”}”(hj°æh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjbæubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hj½æh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjbæubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjìåubj¾)�”}”(hŒstruct dma_fence **fence”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÖæh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÒæubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjãæh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÒæubh)�”}”(hhh]”j�)�”}”(hŒ dma_fence”h]”hŒ dma_fence”…”�”}”(hjôæh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjñæubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jöæŒmodname”NŒ classname”Njÿj)�”}”j]”j.æŒc.amdgpu_vm_clear_freed”†”asbuh1hhjÒæubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÒæubj)�”}”(hjh]”hŒ*”…”�”}”(hj çh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÒæubj)�”}”(hjh]”hŒ*”…”�”}”(hj-çh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÒæubj�)�”}”(hŒfence”h]”hŒfence”…”�”}”(hj:çh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÒæubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjìåubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj³åh²hh³jÅåh´Mubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj¯åh²hh³jÅåh´Mubah}”(h]”jªåah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÅåh´Mhj¬åh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒclear freed BOs in the PT”h]”hŒclear freed BOs in the PT”…”�”}”(hjdçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhjaçh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj¬åh²hh³jÅåh´Mubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j|çj¡j|çj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hXz**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct amdgpu_vm *vm`` requested vm ``struct dma_fence **fence`` optional resulting fence (unchanged if no work needed to be done or if an error occurred) **Description** Make sure all freed BOs are cleared in the PT. PTs have to be reserved and mutex must be locked! **Return** 0 for success.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj†çh]”hŒ Parameters”…”�”}”(hjˆçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj„çubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhj€çubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hj¥çh]”hŒstruct amdgpu_device *adev”…”�”}”(hj§çh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj£çubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MhjŸçubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hj¾çh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jºçh´Mhj»çubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjŸçubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jºçh´Mhjœçubj)�”}”(hŒ&``struct amdgpu_vm *vm`` requested vm ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hjÞçh]”hŒstruct amdgpu_vm *vm”…”�”}”(hjàçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÜçubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MhjØçubj$)�”}”(hhh]”hÝ)�”}”(hŒ requested vm”h]”hŒ requested vm”…”�”}”(hj÷çh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jóçh´Mhjôçubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjØçubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jóçh´Mhjœçubj)�”}”(hŒw``struct dma_fence **fence`` optional resulting fence (unchanged if no work needed to be done or if an error occurred) ”h]”(j)�”}”(hŒ``struct dma_fence **fence``”h]”j:)�”}”(hjèh]”hŒstruct dma_fence **fence”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjèubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhjèubj$)�”}”(hhh]”hÝ)�”}”(hŒYoptional resulting fence (unchanged if no work needed to be done or if an error occurred)”h]”hŒYoptional resulting fence (unchanged if no work needed to be done or if an error occurred)”…”�”}”(hj0èh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhj-èubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjèubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j,èh´Mhjœçubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj€çubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjSèh]”hŒ Description”…”�”}”(hjUèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjQèubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M!hj€çubhÝ)�”}”(hŒ`Make sure all freed BOs are cleared in the PT. PTs have to be reserved and mutex must be locked!”h]”hŒ`Make sure all freed BOs are cleared in the PT. PTs have to be reserved and mutex must be locked!”…”�”}”(hjièh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj€çubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjzèh]”hŒReturn”…”�”}”(hj|èh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjxèubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M#hj€çubhÝ)�”}”(hŒ0 for success.”h]”hŒ0 for success.”…”�”}”(hj�èh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M$hj€çubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ#amdgpu_vm_handle_moved (C function)”Œc.amdgpu_vm_handle_moved”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒlint amdgpu_vm_handle_moved (struct amdgpu_device *adev, struct amdgpu_vm *vm, struct ww_acquire_ctx *ticket)”h]”jn)�”}”(hŒkint amdgpu_vm_handle_moved(struct amdgpu_device *adev, struct amdgpu_vm *vm, struct ww_acquire_ctx *ticket)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj¿èh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj»èh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M[ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎèh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj»èh²hh³jÍèh´M[ubj—)�”}”(hŒamdgpu_vm_handle_moved”h]”j�)�”}”(hŒamdgpu_vm_handle_moved”h]”hŒamdgpu_vm_handle_moved”…”�”}”(hjàèh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÜèubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj»èh²hh³jÍèh´M[ubj¸)�”}”(hŒQ(struct amdgpu_device *adev, struct amdgpu_vm *vm, struct ww_acquire_ctx *ticket)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjüèh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjøèubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj éh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjøèubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjéuba• h}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jéŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjâèsbŒc.amdgpu_vm_handle_moved”†”asbuh1hhjøèubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:éh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjøèubj)�”}”(hjh]”hŒ*”…”�”}”(hjHéh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjøèubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjUéh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjøèubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjôèubj¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjnéh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjjéubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{éh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjjéubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hjŒéh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj‰éubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jŽéŒmodname”NŒ classname”Njÿj)�”}”j]”j6éŒc.amdgpu_vm_handle_moved”†”asbuh1hhjjéubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjªéh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjjéubj)�”}”(hjh]”hŒ*”…”�”}”(hj¸éh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjjéubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjÅéh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjjéubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjôèubj¾)�”}”(hŒstruct ww_acquire_ctx *ticket”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÞéh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÚéubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjëéh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÚéubh)�”}”(hhh]”j�)�”}”(hŒww_acquire_ctx”h]”hŒww_acquire_ctx”…”�”}”(hjüéh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjùéubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jþéŒmodname”NŒ classname”Njÿj)�”}”j]”j6éŒc.amdgpu_vm_handle_moved”†”asbuh1hhjÚéubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÚéubj)�”}”(hjh]”hŒ*”…”�”}”(hj(êh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÚéubj�)�”}”(hŒticket”h]”hŒticket”…”�”}”(hj5êh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÚéubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjôèubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj»èh²hh³jÍèh´M[ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj·èh²hh³jÍèh´M[ubah}”(h]”j²èah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÍèh´M[hj´èh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒhandle moved BOs in the PT”h]”hŒhandle moved BOs in the PT”…”�”}”(hj_êh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M[hj\êh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj´èh²hh³jÍèh´M[ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jwêj¡jwêj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hXJ**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct amdgpu_vm *vm`` requested vm ``struct ww_acquire_ctx *ticket`` optional reservation ticket used to reserve the VM **Description** Make sure all BOs which are moved are updated in the PTs. PTs have to be reserved! **Return** 0 for success.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj�êh]”hŒ Parameters”…”�”}”(hjƒêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjêubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M_hj{êubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hj êh]”hŒstruct amdgpu_device *adev”…”�”}”(hj¢êh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjžêubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M]hjšêubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hj¹êh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jµêh´M]hj¶êubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjšêubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jµêh´M]hj—êubj)�”}”(hŒ&``struct amdgpu_vm *vm`` requested vm ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hjÙêh]”hŒstruct amdgpu_vm *vm”…”�”}”(hjÛêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj×êubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M^hjÓêubj$)�”}”(hhh]”hÝ)�”}”(hŒ requested vm”h]”hŒ requested vm”…”�”}”(hjòêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jîêh´M^hjïêubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÓêubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jîêh´M^hj—êubj)�”}”(hŒU``struct ww_acquire_ctx *ticket`` optional reservation ticket used to reserve the VM ”h]”(j)�”}”(hŒ!``struct ww_acquire_ctx *ticket``”h]”j:)�”}”(hjëh]”hŒstruct ww_acquire_ctx *ticket”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjëubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M_hj ëubj$)�”}”(hhh]”hÝ)�”}”(hŒ2optional reservation ticket used to reserve the VM”h]”hŒ2optional reservation ticket used to reserve the VM”…”�”}”(hj+ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j'ëh´M_hj(ëubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj ëubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j'ëh´M_hj—êubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj{êubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjMëh]”hŒ Description”…”�”}”(hjOëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjKëubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mahj{êubhÝ)�”}”(hŒ9Make sure all BOs which are moved are updated in the PTs.”h]”hŒ9Make sure all BOs which are moved are updated in the PTs.”…”�”}”(hjcëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M`hj{êubhÝ)�”}”(hŒPTs have to be reserved!”h]”hŒPTs have to be reserved!”…”�”}”(hjrëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mchj{êubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjƒëh]”hŒReturn”…”�”}”(hj…ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj�ëubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mehj{êubhÝ)�”}”(hŒ0 for success.”h]”hŒ0 for success.”…”�”}”(hj™ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mchj{êubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ(amdgpu_vm_flush_compute_tlb (C function)”Œc.amdgpu_vm_flush_compute_tlb”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒzint amdgpu_vm_flush_compute_tlb (struct amdgpu_device *adev, struct amdgpu_vm *vm, uint32_t flush_type, uint32_t xcc_mask)”h]”jn)�”}”(hŒyint amdgpu_vm_flush_compute_tlb(struct amdgpu_device *adev, struct amdgpu_vm *vm, uint32_t flush_type, uint32_t xcc_mask)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjÈëh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÄëh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M©ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj×ëh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÄëh²hh³jÖëh´M©ubj—)�”}”(hŒamdgpu_vm_flush_compute_tlb”h]”j�)�”}”(hŒamdgpu_vm_flush_compute_tlb”h]”hŒamdgpu_vm_flush_compute_tlb”…”�”}”(hjéëh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjåëubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjÄëh²hh³jÖëh´M©ubj¸)�”}”(hŒZ(struct amdgpu_device *adev, struct amdgpu_vm *vm, uint32_t flush_type, uint32_t xcc_mask)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjìubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjìubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj#ìh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj ìubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j%ìŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjëësbŒc.amdgpu_vm_flush_compute_tlb”†”asbuh1hhjìubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjCìh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjìubj)�”}”(hjh]”hŒ*”…”�”}”(hjQìh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjìubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj^ìh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjìubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjýëubj¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjwìh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjsìubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„ìh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjsìubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hj•ìh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj’ìubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j—ìŒmodname”NŒ classname”Njÿj)�”}”j]”j?ìŒc.amdgpu_vm_flush_compute_tlb”†”asbuh1hhjsìubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³ìh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjsìubj)�”}”(hjh]”hŒ*”…”�”}”(hjÁìh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjsìubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjÎìh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjsìubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjýëubj¾)�”}”(hŒuint32_t flush_type”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint32_t”h]”hŒuint32_t”…”�”}”(hjêìh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjçìubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jììŒmodname”NŒ classname”Njÿj)�”}”j]”j?ìŒc.amdgpu_vm_flush_compute_tlb”†”asbuh1hhjãìubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjãìubj�)�”}”(hŒ flush_type”h]”hŒ flush_type”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjãìubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjýëubj¾)�”}”(hŒuint32_t xcc_mask”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint32_t”h]”hŒuint32_t”…”�”}”(hj2íh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj/íubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j4íŒmodname”NŒ classname”Njÿj)�”}”j]”j?ìŒc.amdgpu_vm_flush_compute_tlb”†”asbuh1hhj+íubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjPíh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj+íubj�)�”}”(hŒxcc_mask”h]”hŒxcc_mask”…”�”}”(hj^íh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj+íubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjýëubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjÄëh²hh³jÖëh´M©ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjÀëh²hh³jÖëh´M©ubah}”(h]”j»ëah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÖëh´M©hj½ëh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒFlush TLB on compute VM”h]”hŒFlush TLB on compute VM”…”�”}”(hjˆíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M©hj…íh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj½ëh²hh³jÖëh´M©ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j íj¡j íj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hXL**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct amdgpu_vm *vm`` requested vm ``uint32_t flush_type`` flush type ``uint32_t xcc_mask`` mask of XCCs that belong to the compute partition in need of a TLB flush. **Description** Flush TLB if needed for a compute VM. **Return** 0 for success.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjªíh]”hŒ Parameters”…”�”}”(hj¬íh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¨íubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M­hj¤íubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjÉíh]”hŒstruct amdgpu_device *adev”…”�”}”(hjËíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÇíubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M«hjÃíubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hjâíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÞíh´M«hjßíubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÃíubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÞíh´M«hjÀíubj)�”}”(hŒ&``struct amdgpu_vm *vm`` requested vm ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hjîh]”hŒstruct amdgpu_vm *vm”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjîubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¬hjüíubj$)�”}”(hhh]”hÝ)�”}”(hŒ requested vm”h]”hŒ requested vm”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jîh´M¬hjîubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjüíubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jîh´M¬hjÀíubj)�”}”(hŒ#``uint32_t flush_type`` flush type ”h]”(j)�”}”(hŒ``uint32_t flush_type``”h]”j:)�”}”(hj;îh]”hŒuint32_t flush_type”…”�”}”(hj=îh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj9îubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M­hj5îubj$)�”}”(hhh]”hÝ)�”}”(hŒ flush type”h]”hŒ flush type”…”�”}”(hjTîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jPîh´M­hjQîubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj5îubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jPîh´M­hjÀíubj)�”}”(hŒ```uint32_t xcc_mask`` mask of XCCs that belong to the compute partition in need of a TLB flush. ”h]”(j)�”}”(hŒ``uint32_t xcc_mask``”h]”j:)�”}”(hjtîh]”hŒuint32_t xcc_mask”…”�”}”(hjvîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjrîubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M®hjnîubj$)�”}”(hhh]”hÝ)�”}”(hŒImask of XCCs that belong to the compute partition in need of a TLB flush.”h]”hŒImask of XCCs that belong to the compute partition in need of a TLB flush.”…”�”}”(hj�îh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j‰îh´M®hjŠîubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjnîubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‰îh´M®hjÀíubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¤íubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj¯îh]”hŒ Description”…”�”}”(hj±îh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj­îubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M°hj¤íubhÝ)�”}”(hŒ%Flush TLB if needed for a compute VM.”h]”hŒ%Flush TLB if needed for a compute VM.”…”�”}”(hjÅîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¯hj¤íubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjÖîh]”hŒReturn”…”�”}”(hjØîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÔîubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M±hj¤íubhÝ)�”}”(hŒ0 for success.”h]”hŒ0 for success.”…”�”}”(hjìîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M²hj¤íubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_vm_bo_add (C function)”Œc.amdgpu_vm_bo_add”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒostruct amdgpu_bo_va * amdgpu_vm_bo_add (struct amdgpu_device *adev, struct amdgpu_vm *vm, struct amdgpu_bo *bo)”h]”jn)�”}”(hŒmstruct amdgpu_bo_va *amdgpu_vm_bo_add(struct amdgpu_device *adev, struct amdgpu_vm *vm, struct amdgpu_bo *bo)”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjïh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÖubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)ïh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjïh²hh³j(ïh´MÖubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo_va”h]”hŒ amdgpu_bo_va”…”�”}”(hj:ïh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj7ïubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j<ïŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒamdgpu_vm_bo_add”sbŒc.amdgpu_vm_bo_add”†”asbuh1hhjïh²hh³j(ïh´MÖubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj[ïh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjïh²hh³j(ïh´MÖubj)�”}”(hjh]”hŒ*”…”�”}”(hjiïh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjïh²hh³j(ïh´MÖubj—)�”}”(hŒamdgpu_vm_bo_add”h]”j�)�”}”(hjXïh]”hŒamdgpu_vm_bo_add”…”�”}”(hjzïh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjvïubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjïh²hh³j(ïh´MÖubj¸)�”}”(hŒH(struct amdgpu_device *adev, struct amdgpu_vm *vm, struct amdgpu_bo *bo)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj•ïh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj‘ïubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¢ïh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj‘ïubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj³ïh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj°ïubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jµïŒmodname”NŒ classname”Njÿj)�”}”j]”jVïŒc.amdgpu_vm_bo_add”†”asbuh1hhj‘ïubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑïh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj‘ïubj)�”}”(hjh]”hŒ*”…”�”}”(hjßïh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj‘ïubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjìïh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj‘ïubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj�ïubj¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjðubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjðubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hj#ðh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj ðubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j%ðŒmodname”NŒ classname”Njÿj)�”}”j]”jVïŒc.amdgpu_vm_bo_add”†”asbuh1hhjðubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjAðh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjðubj)�”}”(hjh]”hŒ*”…”�”}”(hjOðh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjðubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hj\ðh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjðubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj�ïubj¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjuðh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjqðubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚ðh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjqðubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hj“ðh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj�ðubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j•ðŒmodname”NŒ classname”Njÿj)�”}”j]”jVïŒc.amdgpu_vm_bo_add”†”asbuh1hhjqðubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj±ðh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjqðubj)�”}”(hjh]”hŒ*”…”�”}”(hj¿ðh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjqðubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjÌðh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjqðubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj�ïubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjïh²hh³j(ïh´MÖubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjïh²hh³j(ïh´MÖubah}”(h]”jïah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j(ïh´MÖhjïh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒadd a bo to a specific vm”h]”hŒadd a bo to a specific vm”…”�”}”(hjöðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÖhjóðh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjïh²hh³j(ïh´MÖubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jñj¡jñj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hXY**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct amdgpu_vm *vm`` requested vm ``struct amdgpu_bo *bo`` amdgpu buffer object **Description** Add **bo** into the requested vm. Add **bo** to the list of bos associated with the vm Object has to be reserved! **Return** Newly added bo_va or NULL for failure”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjñh]”hŒ Parameters”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjñubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÚhjñubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hj7ñh]”hŒstruct amdgpu_device *adev”…”�”}”(hj9ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj5ñubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MØhj1ñubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hjPñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jLñh´MØhjMñubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj1ñubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jLñh´MØhj.ñubj)�”}”(hŒ&``struct amdgpu_vm *vm`` requested vm ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hjpñh]”hŒstruct amdgpu_vm *vm”…”�”}”(hjrñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjnñubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÙhjjñubj$)�”}”(hhh]”hÝ)�”}”(hŒ requested vm”h]”hŒ requested vm”…”�”}”(hj‰ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j…ñh´MÙhj†ñubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjjñubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j…ñh´MÙhj.ñubj)�”}”(hŒ.``struct amdgpu_bo *bo`` amdgpu buffer object ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hj©ñh]”hŒstruct amdgpu_bo *bo”…”�”}”(hj«ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj§ñubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÚhj£ñubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu buffer object”h]”hŒamdgpu buffer object”…”�”}”(hjÂñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¾ñh´MÚhj¿ñubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj£ñubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¾ñh´MÚhj.ñubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjñubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjäñh]”hŒ Description”…”�”}”(hjæñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjâñubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÜhjñubhÝ)�”}”(hŒVAdd **bo** into the requested vm. Add **bo** to the list of bos associated with the vm”h]”(hŒAdd ”…”�”}”(hjúñh²hh³Nh´Nubjµ)�”}”(hŒ**bo**”h]”hŒbo”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjúñubhŒ into the requested vm. Add ”…”�”}”(hjúñh²hh³Nh´Nubjµ)�”}”(hŒ**bo**”h]”hŒbo”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjúñubhŒ* to the list of bos associated with the vm”…”�”}”(hjúñh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÛhjñubhÝ)�”}”(hŒObject has to be reserved!”h]”hŒObject has to be reserved!”…”�”}”(hj-òh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MßhjñubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj>òh]”hŒReturn”…”�”}”(hj@òh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj<òubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MáhjñubhÝ)�”}”(hŒ%Newly added bo_va or NULL for failure”h]”hŒ%Newly added bo_va or NULL for failure”…”�”}”(hjTòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mßhjñubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ$amdgpu_vm_bo_insert_map (C function)”Œc.amdgpu_vm_bo_insert_map”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ{void amdgpu_vm_bo_insert_map (struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, struct amdgpu_bo_va_mapping *mapping)”h]”jn)�”}”(hŒzvoid amdgpu_vm_bo_insert_map(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, struct amdgpu_bo_va_mapping *mapping)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjƒòh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjòh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’òh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjòh²hh³j‘òh´Mubj—)�”}”(hŒamdgpu_vm_bo_insert_map”h]”j�)�”}”(hŒamdgpu_vm_bo_insert_map”h]”hŒamdgpu_vm_bo_insert_map”…”�”}”(hj¤òh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj òubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjòh²hh³j‘òh´Mubj¸)�”}”(hŒ^(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, struct amdgpu_bo_va_mapping *mapping)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÀòh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj¼òubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍòh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¼òubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjÞòh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÛòubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jàòŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj¦òsbŒc.amdgpu_vm_bo_insert_map”†”asbuh1hhj¼òubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþòh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¼òubj)�”}”(hjh]”hŒ*”…”�”}”(hj óh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¼òubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¼òubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¸òubj¾)�”}”(hŒstruct amdgpu_bo_va *bo_va”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj2óh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj.óubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj?óh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj.óubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo_va”h]”hŒ amdgpu_bo_va”…”�”}”(hjPóh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjMóubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jRóŒmodname”NŒ classname”Njÿj)�”}”j]”júòŒc.amdgpu_vm_bo_insert_map”†”asbuh1hhj.óubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjnóh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj.óubj)�”}”(hjh]”hŒ*”…”�”}”(hj|óh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj.óubj�)�”}”(hŒbo_va”h]”hŒbo_va”…”�”}”(hj‰óh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj.óubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¸òubj¾)�”}”(hŒ$struct amdgpu_bo_va_mapping *mapping”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj¢óh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjžóubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¯óh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjžóubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_bo_va_mapping”h]”hŒamdgpu_bo_va_mapping”…”�”}”(hjÀóh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj½óubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÂóŒmodname”NŒ classname”Njÿj)�”}”j]”júòŒc.amdgpu_vm_bo_insert_map”†”asbuh1hhjžóubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞóh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjžóubj)�”}”(hjh]”hŒ*”…”�”}”(hjìóh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjžóubj�)�”}”(hŒmapping”h]”hŒmapping”…”�”}”(hjùóh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjžóubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¸òubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjòh²hh³j‘òh´Mubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj{òh²hh³j‘òh´Mubah}”(h]”jvòah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j‘òh´Mhjxòh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒinsert a new mapping”h]”hŒinsert a new mapping”…”�”}”(hj#ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhj ôh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjxòh²hh³j‘òh´Mubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j;ôj¡j;ôj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hX**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct amdgpu_bo_va *bo_va`` bo_va to store the address ``struct amdgpu_bo_va_mapping *mapping`` the mapping to insert **Description** Insert a new mapping into all structures.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjEôh]”hŒ Parameters”…”�”}”(hjGôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjCôubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj?ôubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjdôh]”hŒstruct amdgpu_device *adev”…”�”}”(hjfôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjbôubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhj^ôubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hj}ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jyôh´Mhjzôubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj^ôubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jyôh´Mhj[ôubj)�”}”(hŒ:``struct amdgpu_bo_va *bo_va`` bo_va to store the address ”h]”(j)�”}”(hŒ``struct amdgpu_bo_va *bo_va``”h]”j:)�”}”(hj�ôh]”hŒstruct amdgpu_bo_va *bo_va”…”�”}”(hjŸôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj›ôubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj—ôubj$)�”}”(hhh]”hÝ)�”}”(hŒbo_va to store the address”h]”hŒbo_va to store the address”…”�”}”(hj¶ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j²ôh´M hj³ôubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj—ôubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j²ôh´M hj[ôubj)�”}”(hŒ?``struct amdgpu_bo_va_mapping *mapping`` the mapping to insert ”h]”(j)�”}”(hŒ(``struct amdgpu_bo_va_mapping *mapping``”h]”j:)�”}”(hjÖôh]”hŒ$struct amdgpu_bo_va_mapping *mapping”…”�”}”(hjØôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÔôubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hjÐôubj$)�”}”(hhh]”hÝ)�”}”(hŒthe mapping to insert”h]”hŒthe mapping to insert”…”�”}”(hjïôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jëôh´M hjìôubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÐôubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jëôh´M hj[ôubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj?ôubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjõh]”hŒ Description”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjõubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj?ôubhÝ)�”}”(hŒ)Insert a new mapping into all structures.”h]”hŒ)Insert a new mapping into all structures.”…”�”}”(hj'õh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj?ôubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_vm_bo_map (C function)”Œc.amdgpu_vm_bo_map”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ�int amdgpu_vm_bo_map (struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, uint64_t saddr, uint64_t offset, uint64_t size, uint32_t flags)”h]”jn)�”}”(hŒŒint amdgpu_vm_bo_map(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, uint64_t saddr, uint64_t offset, uint64_t size, uint32_t flags)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjVõh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjRõh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MBubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjeõh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjRõh²hh³jdõh´MBubj—)�”}”(hŒamdgpu_vm_bo_map”h]”j�)�”}”(hŒamdgpu_vm_bo_map”h]”hŒamdgpu_vm_bo_map”…”�”}”(hjwõh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjsõubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjRõh²hh³jdõh´MBubj¸)�”}”(hŒx(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, uint64_t saddr, uint64_t offset, uint64_t size, uint32_t flags)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj“õh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj�õubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj õh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj�õubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj±õh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj®õubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j³õŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjyõsbŒc.amdgpu_vm_bo_map”†”asbuh1hhj�õubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑõh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj�õubj)�”}”(hjh]”hŒ*”…”�”}”(hjßõh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj�õubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjìõh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj�õubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj‹õubj¾)�”}”(hŒstruct amdgpu_bo_va *bo_va”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjöubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjöubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo_va”h]”hŒ amdgpu_bo_va”…”�”}”(hj#öh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj öubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j%öŒmodname”NŒ classname”Njÿj)�”}”j]”jÍõŒc.amdgpu_vm_bo_map”†”asbuh1hhjöubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjAöh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjöubj)�”}”(hjh]”hŒ*”…”�”}”(hjOöh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjöubj�)�”}”(hŒbo_va”h]”hŒbo_va”…”�”}”(hj\öh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjöubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj‹õubj¾)�”}”(hŒuint64_t saddr”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hjxöh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjuöubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jzöŒmodname”NŒ classname”Njÿj)�”}”j]”jÍõŒc.amdgpu_vm_bo_map”†”asbuh1hhjqöubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–öh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjqöubj�)�”}”(hŒsaddr”h]”hŒsaddr”…”�”}”(hj¤öh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjqöubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj‹õubj¾)�”}”(hŒuint64_t offset”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hjÀöh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj½öubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÂöŒmodname”NŒ classname”Njÿj)�”}”j]”jÍõŒc.amdgpu_vm_bo_map”†”asbuh1hhj¹öubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞöh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¹öubj�)�”}”(hŒoffset”h]”hŒoffset”…”�”}”(hjìöh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¹öubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj‹õubj¾)�”}”(hŒ uint64_t size”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj÷ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j ÷Œmodname”NŒ classname”Njÿj)�”}”j]”jÍõŒc.amdgpu_vm_bo_map”†”asbuh1hhj÷ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&÷h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj÷ubj�)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj4÷h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj÷ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj‹õubj¾)�”}”(hŒuint32_t flags”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint32_t”h]”hŒuint32_t”…”�”}”(hjP÷h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjM÷ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jR÷Œmodname”NŒ classname”Njÿj)�”}”j]”jÍõŒc.amdgpu_vm_bo_map”†”asbuh1hhjI÷ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjn÷h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjI÷ubj�)�”}”(hŒflags”h]”hŒflags”…”�”}”(hj|÷h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjI÷ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj‹õubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjRõh²hh³jdõh´MBubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjNõh²hh³jdõh´MBubah}”(h]”jIõah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jdõh´MBhjKõh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒmap bo inside a vm”h]”hŒmap bo inside a vm”…”�”}”(hj¦÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MBhj£÷h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjKõh²hh³jdõh´MBubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j¾÷j¡j¾÷j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hX÷**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct amdgpu_bo_va *bo_va`` bo_va to store the address ``uint64_t saddr`` where to map the BO ``uint64_t offset`` requested offset in the BO ``uint64_t size`` BO size in bytes ``uint32_t flags`` attributes of pages (read/write/valid/etc.) **Description** Add a mapping of the BO at the specefied addr into the VM. Object has to be reserved and unreserved outside! **Return** 0 for success, error for failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjÈ÷h]”hŒ Parameters”…”�”}”(hjÊ÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÆ÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MFhjÂ÷ubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjç÷h]”hŒstruct amdgpu_device *adev”…”�”}”(hjé÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjå÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MDhjá÷ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jü÷h´MDhjý÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjá÷ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jü÷h´MDhjÞ÷ubj)�”}”(hŒ:``struct amdgpu_bo_va *bo_va`` bo_va to store the address ”h]”(j)�”}”(hŒ``struct amdgpu_bo_va *bo_va``”h]”j:)�”}”(hj øh]”hŒstruct amdgpu_bo_va *bo_va”…”�”}”(hj"øh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjøubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MEhjøubj$)�”}”(hhh]”hÝ)�”}”(hŒbo_va to store the address”h]”hŒbo_va to store the address”…”�”}”(hj9øh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j5øh´MEhj6øubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjøubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j5øh´MEhjÞ÷ubj)�”}”(hŒ'``uint64_t saddr`` where to map the BO ”h]”(j)�”}”(hŒ``uint64_t saddr``”h]”j:)�”}”(hjYøh]”hŒuint64_t saddr”…”�”}”(hj[øh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjWøubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MFhjSøubj$)�”}”(hhh]”hÝ)�”}”(hŒwhere to map the BO”h]”hŒwhere to map the BO”…”�”}”(hjrøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jnøh´MFhjoøubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjSøubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jnøh´MFhjÞ÷ubj)�”}”(hŒ/``uint64_t offset`` requested offset in the BO ”h]”(j)�”}”(hŒ``uint64_t offset``”h]”j:)�”}”(hj’øh]”hŒuint64_t offset”…”�”}”(hj”øh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj�øubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MGhjŒøubj$)�”}”(hhh]”hÝ)�”}”(hŒrequested offset in the BO”h]”hŒrequested offset in the BO”…”�”}”(hj«øh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j§øh´MGhj¨øubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjŒøubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j§øh´MGhjÞ÷ubj)�”}”(hŒ#``uint64_t size`` BO size in bytes ”h]”(j)�”}”(hŒ``uint64_t size``”h]”j:)�”}”(hjËøh]”hŒ uint64_t size”…”�”}”(hjÍøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÉøubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MHhjÅøubj$)�”}”(hhh]”hÝ)�”}”(hŒBO size in bytes”h]”hŒBO size in bytes”…”�”}”(hjäøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jàøh´MHhjáøubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÅøubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jàøh´MHhjÞ÷ubj)�”}”(hŒ?``uint32_t flags`` attributes of pages (read/write/valid/etc.) ”h]”(j)�”}”(hŒ``uint32_t flags``”h]”j:)�”}”(hjùh]”hŒuint32_t flags”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjùubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MIhjþøubj$)�”}”(hhh]”hÝ)�”}”(hŒ+attributes of pages (read/write/valid/etc.)”h]”hŒ+attributes of pages (read/write/valid/etc.)”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jùh´MIhjùubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjþøubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jùh´MIhjÞ÷ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÂ÷ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj?ùh]”hŒ Description”…”�”}”(hjAùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj=ùubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MKhjÂ÷ubhÝ)�”}”(hŒ:Add a mapping of the BO at the specefied addr into the VM.”h]”hŒ:Add a mapping of the BO at the specefied addr into the VM.”…”�”}”(hjUùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MJhjÂ÷ubhÝ)�”}”(hŒ1Object has to be reserved and unreserved outside!”h]”hŒ1Object has to be reserved and unreserved outside!”…”�”}”(hjdùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MMhjÂ÷ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjuùh]”hŒReturn”…”�”}”(hjwùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjsùubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MOhjÂ÷ubhÝ)�”}”(hŒ!0 for success, error for failure.”h]”hŒ!0 for success, error for failure.”…”�”}”(hj‹ùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MMhjÂ÷ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ%amdgpu_vm_bo_replace_map (C function)”Œc.amdgpu_vm_bo_replace_map”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ•int amdgpu_vm_bo_replace_map (struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, uint64_t saddr, uint64_t offset, uint64_t size, uint32_t flags)”h]”jn)�”}”(hŒ”int amdgpu_vm_bo_replace_map(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, uint64_t saddr, uint64_t offset, uint64_t size, uint32_t flags)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjºùh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj¶ùh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M|ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉùh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¶ùh²hh³jÈùh´M|ubj—)�”}”(hŒamdgpu_vm_bo_replace_map”h]”j�)�”}”(hŒamdgpu_vm_bo_replace_map”h]”hŒamdgpu_vm_bo_replace_map”…”�”}”(hjÛùh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj×ùubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj¶ùh²hh³jÈùh´M|ubj¸)�”}”(hŒx(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, uint64_t saddr, uint64_t offset, uint64_t size, uint32_t flags)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj÷ùh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjóùubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjóùubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjúubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”júŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjÝùsbŒc.amdgpu_vm_bo_replace_map”†”asbuh1hhjóùubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5úh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjóùubj)�”}”(hjh]”hŒ*”…”�”}”(hjCúh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjóùubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjPúh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjóùubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjïùubj¾)�”}”(hŒstruct amdgpu_bo_va *bo_va”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjiúh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjeúubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjvúh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjeúubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo_va”h]”hŒ amdgpu_bo_va”…”�”}”(hj‡úh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj„úubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j‰úŒmodname”NŒ classname”Njÿj)�”}”j]”j1úŒc.amdgpu_vm_bo_replace_map”†”asbuh1hhjeúubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥úh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjeúubj)�”}”(hjh]”hŒ*”…”�”}”(hj³úh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjeúubj�)�”}”(hŒbo_va”h]”hŒbo_va”…”�”}”(hjÀúh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjeúubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjïùubj¾)�”}”(hŒuint64_t saddr”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hjÜúh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÙúubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÞúŒmodname”NŒ classname”Njÿj)�”}”j]”j1úŒc.amdgpu_vm_bo_replace_map”†”asbuh1hhjÕúubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjúúh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÕúubj�)�”}”(hŒsaddr”h]”hŒsaddr”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÕúubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjïùubj¾)�”}”(hŒuint64_t offset”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hj$ûh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj!ûubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j&ûŒmodname”NŒ classname”Njÿj)�”}”j]”j1úŒc.amdgpu_vm_bo_replace_map”†”asbuh1hhjûubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBûh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjûubj�)�”}”(hŒoffset”h]”hŒoffset”…”�”}”(hjPûh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjûubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjïùubj¾)�”}”(hŒ uint64_t size”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hjlûh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjiûubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jnûŒmodname”NŒ classname”Njÿj)�”}”j]”j1úŒc.amdgpu_vm_bo_replace_map”†”asbuh1hhjeûubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŠûh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjeûubj�)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj˜ûh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjeûubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjïùubj¾)�”}”(hŒuint32_t flags”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint32_t”h]”hŒuint32_t”…”�”}”(hj´ûh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj±ûubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j¶ûŒmodname”NŒ classname”Njÿj)�”}”j]”j1úŒc.amdgpu_vm_bo_replace_map”†”asbuh1hhj­ûubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÒûh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj­ûubj�)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjàûh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj­ûubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjïùubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj¶ùh²hh³jÈùh´M|ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj²ùh²hh³jÈùh´M|ubah}”(h]”j­ùah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÈùh´M|hj¯ùh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ/map bo inside a vm, replacing existing mappings”h]”hŒ/map bo inside a vm, replacing existing mappings”…”�”}”(hj üh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M|hjüh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj¯ùh²hh³jÈùh´M|ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j"üj¡j"üj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hX**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct amdgpu_bo_va *bo_va`` bo_va to store the address ``uint64_t saddr`` where to map the BO ``uint64_t offset`` requested offset in the BO ``uint64_t size`` BO size in bytes ``uint32_t flags`` attributes of pages (read/write/valid/etc.) **Description** Add a mapping of the BO at the specefied addr into the VM. Replace existing mappings as we do so. Object has to be reserved and unreserved outside! **Return** 0 for success, error for failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj,üh]”hŒ Parameters”…”�”}”(hj.üh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj*üubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M€hj&üubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjKüh]”hŒstruct amdgpu_device *adev”…”�”}”(hjMüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjIüubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M~hjEüubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hjdüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j`üh´M~hjaüubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjEüubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j`üh´M~hjBüubj)�”}”(hŒ:``struct amdgpu_bo_va *bo_va`` bo_va to store the address ”h]”(j)�”}”(hŒ``struct amdgpu_bo_va *bo_va``”h]”j:)�”}”(hj„üh]”hŒstruct amdgpu_bo_va *bo_va”…”�”}”(hj†üh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj‚üubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mhj~üubj$)�”}”(hhh]”hÝ)�”}”(hŒbo_va to store the address”h]”hŒbo_va to store the address”…”�”}”(hj�üh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j™üh´Mhjšüubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj~üubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j™üh´MhjBüubj)�”}”(hŒ'``uint64_t saddr`` where to map the BO ”h]”(j)�”}”(hŒ``uint64_t saddr``”h]”j:)�”}”(hj½üh]”hŒuint64_t saddr”…”�”}”(hj¿üh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj»üubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M€hj·üubj$)�”}”(hhh]”hÝ)�”}”(hŒwhere to map the BO”h]”hŒwhere to map the BO”…”�”}”(hjÖüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÒüh´M€hjÓüubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj·üubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÒüh´M€hjBüubj)�”}”(hŒ/``uint64_t offset`` requested offset in the BO ”h]”(j)�”}”(hŒ``uint64_t offset``”h]”j:)�”}”(hjöüh]”hŒuint64_t offset”…”�”}”(hjøüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjôüubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M�hjðüubj$)�”}”(hhh]”hÝ)�”}”(hŒrequested offset in the BO”h]”hŒrequested offset in the BO”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j ýh´M�hj ýubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjðüubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j ýh´M�hjBüubj)�”}”(hŒ#``uint64_t size`` BO size in bytes ”h]”(j)�”}”(hŒ``uint64_t size``”h]”j:)�”}”(hj/ýh]”hŒ uint64_t size”…”�”}”(hj1ýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj-ýubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M‚hj)ýubj$)�”}”(hhh]”hÝ)�”}”(hŒBO size in bytes”h]”hŒBO size in bytes”…”�”}”(hjHýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jDýh´M‚hjEýubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj)ýubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jDýh´M‚hjBüubj)�”}”(hŒ?``uint32_t flags`` attributes of pages (read/write/valid/etc.) ”h]”(j)�”}”(hŒ``uint32_t flags``”h]”j:)�”}”(hjhýh]”hŒuint32_t flags”…”�”}”(hjjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjfýubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mƒhjbýubj$)�”}”(hhh]”hÝ)�”}”(hŒ+attributes of pages (read/write/valid/etc.)”h]”hŒ+attributes of pages (read/write/valid/etc.)”…”�”}”(hj�ýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j}ýh´Mƒhj~ýubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjbýubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j}ýh´MƒhjBüubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj&üubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj£ýh]”hŒ Description”…”�”}”(hj¥ýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¡ýubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M…hj&üubhÝ)�”}”(hŒaAdd a mapping of the BO at the specefied addr into the VM. Replace existing mappings as we do so.”h]”hŒaAdd a mapping of the BO at the specefied addr into the VM. Replace existing mappings as we do so.”…”�”}”(hj¹ýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M„hj&üubhÝ)�”}”(hŒ1Object has to be reserved and unreserved outside!”h]”hŒ1Object has to be reserved and unreserved outside!”…”�”}”(hjÈýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mˆhj&üubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjÙýh]”hŒReturn”…”�”}”(hjÛýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj×ýubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MŠhj&üubhÝ)�”}”(hŒ!0 for success, error for failure.”h]”hŒ!0 for success, error for failure.”…”�”}”(hjïýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mˆhj&üubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_vm_bo_unmap (C function)”Œc.amdgpu_vm_bo_unmap”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ_int amdgpu_vm_bo_unmap (struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, uint64_t saddr)”h]”jn)�”}”(hŒ^int amdgpu_vm_bo_unmap(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, uint64_t saddr)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjþh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M´ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj-þh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjþh²hh³j,þh´M´ubj—)�”}”(hŒamdgpu_vm_bo_unmap”h]”j�)�”}”(hŒamdgpu_vm_bo_unmap”h]”hŒamdgpu_vm_bo_unmap”…”�”}”(hj?þh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj;þubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjþh²hh³j,þh´M´ubj¸)�”}”(hŒH(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, uint64_t saddr)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj[þh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjWþubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhþh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjWþubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjyþh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjvþubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j{þŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjAþsbŒc.amdgpu_vm_bo_unmap”†”asbuh1hhjWþubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™þh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjWþubj)�”}”(hjh]”hŒ*”…”�”}”(hj§þh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjWþubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj´þh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjWþubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjSþubj¾)�”}”(hŒstruct amdgpu_bo_va *bo_va”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÍþh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÉþubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÚþh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÉþubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo_va”h]”hŒ amdgpu_bo_va”…”�”}”(hjëþh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjèþubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jíþŒmodname”NŒ classname”Njÿj)�”}”j]”j•þŒc.amdgpu_vm_bo_unmap”†”asbuh1hhjÉþubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ÿh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÉþubj)�”}”(hjh]”hŒ*”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÉþubj�)�”}”(hŒbo_va”h]”hŒbo_va”…”�”}”(hj$ÿh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÉþubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjSþubj¾)�”}”(hŒuint64_t saddr”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hj@ÿh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj=ÿubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jBÿŒmodname”NŒ classname”Njÿj)�”}”j]”j•þŒc.amdgpu_vm_bo_unmap”†”asbuh1hhj9ÿubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^ÿh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj9ÿubj�)�”}”(hŒsaddr”h]”hŒsaddr”…”�”}”(hjlÿh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj9ÿubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjSþubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjþh²hh³j,þh´M´ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjþh²hh³j,þh´M´ubah}”(h]”jþah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j,þh´M´hjþh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒremove bo mapping from vm”h]”hŒremove bo mapping from vm”…”�”}”(hj–ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M´hj“ÿh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjþh²hh³j,þh´M´ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j®ÿj¡j®ÿj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hXl**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct amdgpu_bo_va *bo_va`` bo_va to remove the address from ``uint64_t saddr`` where to the BO is mapped **Description** Remove a mapping of the BO at the specefied addr from the VM. Object has to be reserved and unreserved outside! **Return** 0 for success, error for failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj¸ÿh]”hŒ Parameters”…”�”}”(hjºÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¶ÿubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¸hj²ÿubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”• h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hj×ÿh]”hŒstruct amdgpu_device *adev”…”�”}”(hjÙÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÕÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¶hjÑÿubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hjðÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jìÿh´M¶hjíÿubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÑÿubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jìÿh´M¶hjÎÿubj)�”}”(hŒ@``struct amdgpu_bo_va *bo_va`` bo_va to remove the address from ”h]”(j)�”}”(hŒ``struct amdgpu_bo_va *bo_va``”h]”j:)�”}”(hjh]”hŒstruct amdgpu_bo_va *bo_va”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M·hj ubj$)�”}”(hhh]”hÝ)�”}”(hŒ bo_va to remove the address from”h]”hŒ bo_va to remove the address from”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j%h´M·hj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j%h´M·hjÎÿubj)�”}”(hŒ-``uint64_t saddr`` where to the BO is mapped ”h]”(j)�”}”(hŒ``uint64_t saddr``”h]”j:)�”}”(hjIh]”hŒuint64_t saddr”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¸hjCubj$)�”}”(hhh]”hÝ)�”}”(hŒwhere to the BO is mapped”h]”hŒwhere to the BO is mapped”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j^h´M¸hj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjCubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j^h´M¸hjÎÿubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj²ÿubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj„h]”hŒ Description”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mºhj²ÿubhÝ)�”}”(hŒ=Remove a mapping of the BO at the specefied addr from the VM.”h]”hŒ=Remove a mapping of the BO at the specefied addr from the VM.”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¹hj²ÿubhÝ)�”}”(hŒ1Object has to be reserved and unreserved outside!”h]”hŒ1Object has to be reserved and unreserved outside!”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¼hj²ÿubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjºh]”hŒReturn”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¾hj²ÿubhÝ)�”}”(hŒ!0 for success, error for failure.”h]”hŒ!0 for success, error for failure.”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¼hj²ÿubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ(amdgpu_vm_bo_clear_mappings (C function)”Œc.amdgpu_vm_bo_clear_mappings”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒqint amdgpu_vm_bo_clear_mappings (struct amdgpu_device *adev, struct amdgpu_vm *vm, uint64_t saddr, uint64_t size)”h]”jn)�”}”(hŒpint amdgpu_vm_bo_clear_mappings(struct amdgpu_device *adev, struct amdgpu_vm *vm, uint64_t saddr, uint64_t size)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjûh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mòubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjûh²hh³j h´Mòubj—)�”}”(hŒamdgpu_vm_bo_clear_mappings”h]”j�)�”}”(hŒamdgpu_vm_bo_clear_mappings”h]”hŒamdgpu_vm_bo_clear_mappings”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjûh²hh³j h´Mòubj¸)�”}”(hŒQ(struct amdgpu_device *adev, struct amdgpu_vm *vm, uint64_t saddr, uint64_t size)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj8ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj8ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjWubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j\Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj"sbŒc.amdgpu_vm_bo_clear_mappings”†”asbuh1hhj8ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj8ubj)�”}”(hjh]”hŒ*”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj8ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj8ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj4ubj¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjªubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjªubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÉubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÎŒmodname”NŒ classname”Njÿj)�”}”j]”jvŒc.amdgpu_vm_bo_clear_mappings”†”asbuh1hhjªubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjªubj)�”}”(hjh]”hŒ*”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjªubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjªubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj4ubj¾)�”}”(hŒuint64_t saddr”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j#Œmodname”NŒ classname”Njÿj)�”}”j]”jvŒc.amdgpu_vm_bo_clear_mappings”†”asbuh1hhjubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjubj�)�”}”(hŒsaddr”h]”hŒsaddr”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj4ubj¾)�”}”(hŒ uint64_t size”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjfubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jkŒmodname”NŒ classname”Njÿj)�”}”j]”jvŒc.amdgpu_vm_bo_clear_mappings”†”asbuh1hhjbubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjbubj�)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjbubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj4ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjûh²hh³j h´Mòubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj÷h²hh³j h´Mòubah}”(h]”jòah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j h´Mòhjôh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ'remove all mappings in a specific range”h]”hŒ'remove all mappings in a specific range”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mòhj¼h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjôh²hh³j h´Mòubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j×j¡j×j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hXB**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct amdgpu_vm *vm`` VM structure to use ``uint64_t saddr`` start of the range ``uint64_t size`` size of the range **Description** Remove all mappings in a range, split them as appropriate. **Return** 0 for success, error for failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjáh]”hŒ Parameters”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjßubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MöhjÛubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjh]”hŒstruct amdgpu_device *adev”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjþubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Môhjúubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jh´Môhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjúubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jh´Môhj÷ubj)�”}”(hŒ-``struct amdgpu_vm *vm`` VM structure to use ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hj9h]”hŒstruct amdgpu_vm *vm”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mõhj3ubj$)�”}”(hhh]”hÝ)�”}”(hŒVM structure to use”h]”hŒVM structure to use”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jNh´MõhjOubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jNh´Mõhj÷ubj)�”}”(hŒ&``uint64_t saddr`` start of the range ”h]”(j)�”}”(hŒ``uint64_t saddr``”h]”j:)�”}”(hjrh]”hŒuint64_t saddr”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjpubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Möhjlubj$)�”}”(hhh]”hÝ)�”}”(hŒstart of the range”h]”hŒstart of the range”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j‡h´Möhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjlubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‡h´Möhj÷ubj)�”}”(hŒ$``uint64_t size`` size of the range ”h]”(j)�”}”(hŒ``uint64_t size``”h]”j:)�”}”(hj«h]”hŒ uint64_t size”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M÷hj¥ubj$)�”}”(hhh]”hÝ)�”}”(hŒsize of the range”h]”hŒsize of the range”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÀh´M÷hjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÀh´M÷hj÷ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÛubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjæh]”hŒ Description”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjäubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MùhjÛubhÝ)�”}”(hŒ:Remove all mappings in a range, split them as appropriate.”h]”hŒ:Remove all mappings in a range, split them as appropriate.”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MøhjÛubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj h]”hŒReturn”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MúhjÛubhÝ)�”}”(hŒ!0 for success, error for failure.”h]”hŒ!0 for success, error for failure.”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MûhjÛubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ(amdgpu_vm_bo_lookup_mapping (C function)”Œc.amdgpu_vm_bo_lookup_mapping”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ_struct amdgpu_bo_va_mapping * amdgpu_vm_bo_lookup_mapping (struct amdgpu_vm *vm, uint64_t addr)”h]”jn)�”}”(hŒ]struct amdgpu_bo_va_mapping *amdgpu_vm_bo_lookup_mapping(struct amdgpu_vm *vm, uint64_t addr)”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjNh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mjubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjNh²hh³j_h´Mjubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_bo_va_mapping”h]”hŒamdgpu_bo_va_mapping”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjnubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jsŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒamdgpu_vm_bo_lookup_mapping”sbŒc.amdgpu_vm_bo_lookup_mapping”†”asbuh1hhjNh²hh³j_h´Mjubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjNh²hh³j_h´Mjubj)�”}”(hjh]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjNh²hh³j_h´Mjubj—)�”}”(hŒamdgpu_vm_bo_lookup_mapping”h]”j�)�”}”(hj�h]”hŒamdgpu_vm_bo_lookup_mapping”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj­ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjNh²hh³j_h´Mjubj¸)�”}”(hŒ%(struct amdgpu_vm *vm, uint64_t addr)”h]”(j¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÈubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÈubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjçubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jìŒmodname”NŒ classname”Njÿj)�”}”j]”j�Œc.amdgpu_vm_bo_lookup_mapping”†”asbuh1hhjÈubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÈubj)�”}”(hjh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÈubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÈubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÄubj¾)�”}”(hŒ uint64_t addr”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj<ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jAŒmodname”NŒ classname”Njÿj)�”}”j]”j�Œc.amdgpu_vm_bo_lookup_mapping”†”asbuh1hhj8ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj8ubj�)�”}”(hŒaddr”h]”hŒaddr”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj8ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÄubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjNh²hh³j_h´Mjubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjJh²hh³j_h´Mjubah}”(h]”jEah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j_h´MjhjGh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒfind mapping by address”h]”hŒfind mapping by address”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mjhj’h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjGh²hh³j_h´Mjubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j­j¡j­j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒÎ**Parameters** ``struct amdgpu_vm *vm`` the requested VM ``uint64_t addr`` the address **Description** Find a mapping by it's address. **Return** The amdgpu_bo_va_mapping matching for addr or NULL”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj·h]”hŒ Parameters”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjµubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mnhj±ubj )�”}”(hhh]”(j)�”}”(hŒ*``struct amdgpu_vm *vm`` the requested VM ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hjÖh]”hŒstruct amdgpu_vm *vm”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MlhjÐubj$)�”}”(hhh]”hÝ)�”}”(hŒthe requested VM”h]”hŒthe requested VM”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jëh´Mlhjìubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÐubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jëh´MlhjÍubj)�”}”(hŒ``uint64_t addr`` the address ”h]”(j)�”}”(hŒ``uint64_t addr``”h]”j:)�”}”(hjh]”hŒ uint64_t addr”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mmhj ubj$)�”}”(hhh]”hÝ)�”}”(hŒ the address”h]”hŒ the address”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j$h´Mmhj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j$h´MmhjÍubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj±ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjJh]”hŒ Description”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjHubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mohj±ubhÝ)�”}”(hŒFind a mapping by it's address.”h]”hŒ!Find a mapping by it’s address.”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mnhj±ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjqh]”hŒReturn”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjoubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mphj±ubhÝ)�”}”(hŒ2The amdgpu_bo_va_mapping matching for addr or NULL”h]”hŒ2The amdgpu_bo_va_mapping matching for addr or NULL”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mqhj±ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ"amdgpu_vm_bo_trace_cs (C function)”Œc.amdgpu_vm_bo_trace_cs”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒPvoid amdgpu_vm_bo_trace_cs (struct amdgpu_vm *vm, struct ww_acquire_ctx *ticket)”h]”jn)�”}”(hŒOvoid amdgpu_vm_bo_trace_cs(struct amdgpu_vm *vm, struct ww_acquire_ctx *ticket)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj²h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M|ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj²h²hh³jÄh´M|ubj—)�”}”(hŒamdgpu_vm_bo_trace_cs”h]”j�)�”}”(hŒamdgpu_vm_bo_trace_cs”h]”hŒamdgpu_vm_bo_trace_cs”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÓubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj²h²hh³jÄh´M|ubj¸)�”}”(hŒ5(struct amdgpu_vm *vm, struct ww_acquire_ctx *ticket)”h]”(j¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjïubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjïubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjÙsbŒc.amdgpu_vm_bo_trace_cs”†”asbuh1hhjïubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjïubj)�”}”(hjh]”hŒ*”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjïubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjïubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjëubj¾)�”}”(hŒstruct ww_acquire_ctx *ticket”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjaubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjaubh)�”}”(hhh]”j�)�”}”(hŒww_acquire_ctx”h]”hŒww_acquire_ctx”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj€ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j…Œmodname”NŒ classname”Njÿj)�”}”j]”j-Œc.amdgpu_vm_bo_trace_cs”†”asbuh1hhjaubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjaubj)�”}”(hjh]”hŒ*”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjaubj�)�”}”(hŒticket”h]”hŒticket”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjaubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjëubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj²h²hh³jÄh´M|ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj®h²hh³jÄh´M|ubah}”(h]”j©ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÄh´M|hj«h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒtrace all reserved mappings”h]”hŒtrace all reserved mappings”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M|hjãh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj«h²hh³jÄh´M|ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jþj¡jþj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒ¼**Parameters** ``struct amdgpu_vm *vm`` the requested vm ``struct ww_acquire_ctx *ticket`` CS ticket **Description** Trace all mappings of BOs reserved during a command submission.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjh]”hŒ Parameters”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M€hjubj )�”}”(hhh]”(j)�”}”(hŒ*``struct amdgpu_vm *vm`` the requested vm ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hj'h]”hŒstruct amdgpu_vm *vm”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M~hj!ubj$)�”}”(hhh]”hÝ)�”}”(hŒthe requested vm”h]”hŒthe requested vm”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j<h´M~hj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j<h´M~hjubj)�”}”(hŒ,``struct ww_acquire_ctx *ticket`` CS ticket ”h]”(j)�”}”(hŒ!``struct ww_acquire_ctx *ticket``”h]”j:)�”}”(hj`h]”hŒstruct ww_acquire_ctx *ticket”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MhjZubj$)�”}”(hhh]”hÝ)�”}”(hŒ CS ticket”h]”hŒ CS ticket”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³juh´Mhjvubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjZubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³juh´Mhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj›h]”hŒ Description”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M�hjubhÝ)�”}”(hŒ?Trace all mappings of BOs reserved during a command submission.”h]”hŒ?Trace all mappings of BOs reserved during a command submission.”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M€hjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_vm_bo_del (C function)”Œc.amdgpu_vm_bo_del”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒNvoid amdgpu_vm_bo_del (struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va)”h]”jn)�”}”(hŒMvoid amdgpu_vm_bo_del(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÜh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mšubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÜh²hh³jîh´Mšubj—)�”}”(hŒamdgpu_vm_bo_del”h]”j�)�”}”(hŒamdgpu_vm_bo_del”h]”hŒamdgpu_vm_bo_del”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjýubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjÜh²hh³jîh´Mšubj¸)�”}”(hŒ8(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj* h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj; h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj8 ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j= Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj sbŒc.amdgpu_vm_bo_del”†”asbuh1hhj ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj[ h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj ubj)�”}”(hjh]”hŒ*”…”�”}”(hji h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjv h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj ubj¾)�”}”(hŒstruct amdgpu_bo_va *bo_va”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj‹ ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœ h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj‹ ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo_va”h]”hŒ amdgpu_bo_va”…”�”}”(hj­ h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjª ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j¯ Œmodname”NŒ classname”Njÿj)�”}”j]”jW Œc.amdgpu_vm_bo_del”†”asbuh1hhj‹ ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjË h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj‹ ubj)�”}”(hjh]”hŒ*”…”�”}”(hjÙ h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj‹ ubj�)�”}”(hŒbo_va”h]”hŒbo_va”…”�”}”(hjæ h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj‹ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjÜh²hh³jîh´Mšubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjØh²hh³jîh´Mšubah}”(h]”jÓah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jîh´MšhjÕh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒremove a bo from a specific vm”h]”hŒremove a bo from a specific vm”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mšhj h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÕh²hh³jîh´Mšubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j( j¡j( j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒÓ**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct amdgpu_bo_va *bo_va`` requested bo_va **Description** Remove **bo_va->bo** from the requested vm. Object have to be reserved!”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj2 h]”hŒ Parameters”…”�”}”(hj4 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj0 ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mžhj, ubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjQ h]”hŒstruct amdgpu_device *adev”…”�”}”(hjS h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjO ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MœhjK ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hjj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jf h´Mœhjg ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjK ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jf h´MœhjH ubj)�”}”(hŒ/``struct amdgpu_bo_va *bo_va`` requested bo_va ”h]”(j)�”}”(hŒ``struct amdgpu_bo_va *bo_va``”h]”j:)�”}”(hjŠ h]”hŒstruct amdgpu_bo_va *bo_va”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjˆ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M�hj„ ubj$)�”}”(hhh]”hÝ)�”}”(hŒrequested bo_va”h]”hŒrequested bo_va”…”�”}”(hj£ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jŸ h´M�hj  ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj„ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jŸ h´M�hjH ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj, ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjÅ h]”hŒ Description”…”�”}”(hjÇ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjà ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MŸhj, ubhÝ)�”}”(hŒ+Remove **bo_va->bo** from the requested vm.”h]”(hŒRemove ”…”�”}”(hjÛ h²hh³Nh´Nubjµ)�”}”(hŒ **bo_va->bo**”h]”hŒ bo_va->bo”…”�”}”(hjã h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÛ ubhŒ from the requested vm.”…”�”}”(hjÛ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mžhj, ubhÝ)�”}”(hŒObject have to be reserved!”h]”hŒObject have to be reserved!”…”�”}”(hjü h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj, ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ amdgpu_vm_evictable (C function)”Œc.amdgpu_vm_evictable”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ/bool amdgpu_vm_evictable (struct amdgpu_bo *bo)”h]”jn)�”}”(hŒ.bool amdgpu_vm_evictable(struct amdgpu_bo *bo)”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hj+ h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj' h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MØubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9 h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj' h²hh³j8 h´MØubj—)�”}”(hŒamdgpu_vm_evictable”h]”j�)�”}”(hŒamdgpu_vm_evictable”h]”hŒamdgpu_vm_evictable”…”�”}”(hjK h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjG ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj' h²hh³j8 h´MØubj¸)�”}”(hŒ(struct amdgpu_bo *bo)”h]”j¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjg h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjc ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjt h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjc ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hj… h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj‚ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j‡ Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjM sbŒc.amdgpu_vm_evictable”†”asbuh1hhjc ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥ h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjc ubj)�”}”(hjh]”hŒ*”…”�”}”(hj³ h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjc ubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjÀ h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjc ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj_ ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj' h²hh³j8 h´MØubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj# h²hh³j8 h´MØubah}”(h]”j ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j8 h´MØhj h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒcheck if we can evict a VM”h]”hŒcheck if we can evict a VM”…”�”}”(hjê h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MØhjç h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj h²hh³j8 h´MØubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j j¡j j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒ{**Parameters** ``struct amdgpu_bo *bo`` A page table of the VM. **Description** Check if it is possible to evict a VM.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj h]”hŒ Parameters”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÜhj ubj )�”}”(hhh]”j)�”}”(hŒ1``struct amdgpu_bo *bo`` A page table of the VM. ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hj+ h]”hŒstruct amdgpu_bo *bo”…”�”}”(hj- h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj) ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÚhj% ubj$)�”}”(hhh]”hÝ)�”}”(hŒA page table of the VM.”h]”hŒA page table of the VM.”…”�”}”(hjD h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j@ h´MÚhjA ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj% ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j@ h´MÚhj" ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjf h]”hŒ Description”…”�”}”(hjh h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjd ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÜhj ubhÝ)�”}”(hŒ&Check if it is possible to evict a VM.”h]”hŒ&Check if it is possible to evict a VM.”…”�”}”(hj| h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÛhj ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ$amdgpu_vm_bo_invalidate (C function)”Œc.amdgpu_vm_bo_invalidate”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒAvoid amdgpu_vm_bo_invalidate (struct amdgpu_bo *bo, bool evicted)”h]”jn)�”}”(hŒ@void amdgpu_vm_bo_invalidate(struct amdgpu_bo *bo, bool evicted)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj« h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj§ h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Múubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjº h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj§ h²hh³j¹ h´Múubj—)�”}”(hŒamdgpu_vm_bo_invalidate”h]”j�)�”}”(hŒamdgpu_vm_bo_invalidate”h]”hŒamdgpu_vm_bo_invalidate”…”�”}”(hjÌ h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÈ ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj§ h²hh³j¹ h´Múubj¸)�”}”(hŒ$(struct amdgpu_bo *bo, bool evicted)”h]”(j¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjè h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjä ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõ h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjä ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjÎ sbŒc.amdgpu_vm_bo_invalidate”†”asbuh1hhjä ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj& h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjä ubj)�”}”(hjh]”hŒ*”…”�”}”(hj4 h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjä ubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjA h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjä ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjà ubj¾)�”}”(hŒ bool evicted”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hjZ h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjV ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjg h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjV ubj�)�”}”(hŒevicted”h]”hŒevicted”…”�”}”(hju h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjV ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjà ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj§ h²hh³j¹ h´Múubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj£ h²hh³j¹ h´Múubah}”(h]”jž ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j¹ h´Múhj  h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒmark the bo as invalid”h]”hŒmark the bo as invalid”…”�”}”(hjŸ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Múhjœ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj  h²hh³j¹ h´Múubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j· j¡j· j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒ�**Parameters** ``struct amdgpu_bo *bo`` amdgpu buffer object ``bool evicted`` is the BO evicted **Description** Mark **bo** as invalid.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjÁ h]”hŒ Parameters”…”�”}”(hjà h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¿ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mþhj» ubj )�”}”(hhh]”(j)�”}”(hŒ.``struct amdgpu_bo *bo`` amdgpu buffer object ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hjà h]”hŒstruct amdgpu_bo *bo”…”�”}”(hjâ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÞ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MühjÚ ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu buffer object”h]”hŒamdgpu buffer object”…”�”}”(hjù h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jõ h´Mühjö ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÚ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jõ h´Mühj× ubj)�”}”(hŒ#``bool evicted`` is the BO evicted ”h]”(j)�”}”(hŒ``bool evicted``”h]”j:)�”}”(hjh]”hŒ bool evicted”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mýhjubj$)�”}”(hhh]”hÝ)�”}”(hŒis the BO evicted”h]”hŒis the BO evicted”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j.h´Mýhj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j.h´Mýhj× ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj» ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjTh]”hŒ Description”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjRubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mÿhj» ubhÝ)�”}”(hŒMark **bo** as invalid.”h]”(hŒMark ”…”�”}”(hjjh²hh³Nh´Nubjµ)�”}”(hŒ**bo**”h]”hŒbo”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjjubhŒ as invalid.”…”�”}”(hjjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mþhj» ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_vm_bo_move (C function)”Œc.amdgpu_vm_bo_move”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒYvoid amdgpu_vm_bo_move (struct amdgpu_bo *bo, struct ttm_resource *new_mem, bool evicted)”h]”jn)�”}”(hŒXvoid amdgpu_vm_bo_move(struct amdgpu_bo *bo, struct ttm_resource *new_mem, bool evicted)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj§h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj§h²hh³j¹h´M ubj—)�”}”(hŒamdgpu_vm_bo_move”h]”j�)�”}”(hŒamdgpu_vm_bo_move”h]”hŒamdgpu_vm_bo_move”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÈubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj§h²hh³j¹h´M ubj¸)�”}”(hŒB(struct amdgpu_bo *bo, struct ttm_resource *new_mem, bool evicted)”h]”(j¾)�”}”(hŒstruct amdgpu_bo *bo”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjäubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjäubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_bo”h]”hŒ amdgpu_bo”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjÎsbŒc.amdgpu_vm_bo_move”†”asbuh1hhjäubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjäubj)�”}”(hjh]”hŒ*”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjäubj�)�”}”(hŒbo”h]”hŒbo”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjäubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjàubj¾)�”}”(hŒstruct ttm_resource *new_mem”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjVubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjVubh)�”}”(hhh]”j�)�”}”(hŒ ttm_resource”h]”hŒ ttm_resource”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjuubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jzŒmodname”NŒ classname”Njÿj)�”}”j]”j"Œc.amdgpu_vm_bo_move”†”asbuh1hhjVubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjVubj)�”}”(hjh]”hŒ*”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjVubj�)�”}”(hŒnew_mem”h]”hŒnew_mem”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjVubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjàubj¾)�”}”(hŒ bool evicted”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÆubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÆubj�)�”}”(hŒevicted”h]”hŒevicted”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÆubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjàubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj§h²hh³j¹h´M ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj£h²hh³j¹h´M ubah}”(h]”jžah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j¹h´M hj h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒhandle BO move”h]”hŒhandle BO move”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj h²hh³j¹h´M ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j'j¡j'j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hX**Parameters** ``struct amdgpu_bo *bo`` amdgpu buffer object ``struct ttm_resource *new_mem`` the new placement of the BO move ``bool evicted`` is the BO evicted **Description** Update the memory stats for the new placement and mark **bo** as invalid.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj1h]”hŒ Parameters”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj+ubj )�”}”(hhh]”(j)�”}”(hŒ.``struct amdgpu_bo *bo`` amdgpu buffer object ”h]”(j)�”}”(hŒ``struct amdgpu_bo *bo``”h]”j:)�”}”(hjPh]”hŒstruct amdgpu_bo *bo”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjNubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hjJubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu buffer object”h]”hŒamdgpu buffer object”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jeh´M hjfubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjJubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jeh´M hjGubj)�”}”(hŒB``struct ttm_resource *new_mem`` the new placement of the BO move ”h]”(j)�”}”(hŒ ``struct ttm_resource *new_mem``”h]”j:)�”}”(hj‰h]”hŒstruct ttm_resource *new_mem”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hjƒubj$)�”}”(hhh]”hÝ)�”}”(hŒ the new placement of the BO move”h]”hŒ the new placement of the BO move”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jžh´M hjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jžh´M hjGubj)�”}”(hŒ#``bool evicted`` is the BO evicted ”h]”(j)�”}”(hŒ``bool evicted``”h]”j:)�”}”(hjÂh]”hŒ bool evicted”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj¼ubj$)�”}”(hhh]”hÝ)�”}”(hŒis the BO evicted”h]”hŒis the BO evicted”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j×h´M hjØubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj¼ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j×h´M hjGubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj+ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjýh]”hŒ Description”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjûubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj+ubhÝ)�”}”(hŒIUpdate the memory stats for the new placement and mark **bo** as invalid.”h]”(hŒ7Update the memory stats for the new placement and mark ”…”�”}”(hjh²hh³Nh´Nubjµ)�”}”(hŒ**bo**”h]”hŒbo”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjubhŒ as invalid.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj+ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ%amdgpu_vm_get_block_size (C function)”Œc.amdgpu_vm_get_block_size”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ4uint32_t amdgpu_vm_get_block_size (uint64_t vm_size)”h]”jn)�”}”(hŒ3uint32_t amdgpu_vm_get_block_size(uint64_t vm_size)”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint32_t”h]”hŒuint32_t”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjTubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jYŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒamdgpu_vm_get_block_size”sbŒc.amdgpu_vm_get_block_size”†”asbuh1hhjPh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M/ ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjPh²hh³jxh´M/ ubj—)�”}”(hŒamdgpu_vm_get_block_size”h]”j�)�”}”(hjuh]”hŒamdgpu_vm_get_block_size”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj‡ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjPh²hh³jxh´M/ ubj¸)�”}”(hŒ(uint64_t vm_size)”h]”j¾)�”}”(hŒuint64_t vm_size”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¦ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j«Œmodname”NŒ classname”Njÿj)�”}”j]”jsŒc.amdgpu_vm_get_block_size”†”asbuh1hhj¢ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¢ubj�)�”}”(hŒvm_size”h]”hŒvm_size”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¢ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjžubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjPh²hh³jxh´M/ ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjLh²hh³jxh´M/ ubah}”(h]”jGah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jxh´M/ hjIh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ,calculate VM page table size as power of two”h]”hŒ,calculate VM page table size as power of two”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M/ hjüh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjIh²hh³jxh´M/ ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jj¡jj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒY**Parameters** ``uint64_t vm_size`` VM size **Return** VM page table as power of two”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj!h]”hŒ Parameters”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M3 hjubj )�”}”(hhh]”j)�”}”(hŒ``uint64_t vm_size`` VM size ”h]”(j)�”}”(hŒ``uint64_t vm_size``”h]”j:)�”}”(hj@h]”hŒuint64_t vm_size”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M1 hj:ubj$)�”}”(hhh]”hÝ)�”}”(hŒVM size”h]”hŒVM size”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jUh´M1 hjVubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jUh´M1 hj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj{h]”hŒReturn”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjyubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M3 hjubhÝ)�”}”(hŒVM page table as power of two”h]”hŒVM page table as power of two”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M3 hjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ"amdgpu_vm_adjust_size (C function)”Œc.amdgpu_vm_adjust_size”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ”void amdgpu_vm_adjust_size (struct amdgpu_device *adev, uint32_t min_vm_size, uint32_t fragment_size_default, unsigned max_level, unsigned max_bits)”h]”jn)�”}”(hŒ“void amdgpu_vm_adjust_size(struct amdgpu_device *adev, uint32_t min_vm_size, uint32_t fragment_size_default, unsigned max_level, unsigned max_bits)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj¼h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MD ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¼h²hh³jÎh´MD ubj—)�”}”(hŒamdgpu_vm_adjust_size”h]”j�)�”}”(hŒamdgpu_vm_adjust_size”h]”hŒamdgpu_vm_adjust_size”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÝubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj¼h²hh³jÎh´MD ubj¸)�”}”(hŒy(struct amdgpu_device *adev, uint32_t min_vm_size, uint32_t fragment_size_default, unsigned max_level, unsigned max_bits)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjùubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjùubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjãsbŒc.amdgpu_vm_adjust_size”†”asbuh1hhjùubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjùubj)�”}”(hjh]”hŒ*”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjùubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjùubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjõubj¾)�”}”(hŒuint32_t min_vm_size”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint32_t”h]”hŒuint32_t”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjoubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jtŒmodname”NŒ classname”Njÿj)�”}”j]”j7Œc.amdgpu_vm_adjust_size”†”asbuh1hhjkubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjkubj�)�”}”(hŒ min_vm_size”h]”hŒ min_vm_size”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjkubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjõubj¾)�”}”(hŒuint32_t fragment_size_default”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint32_t”h]”hŒuint32_t”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj·ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j¼Œmodname”NŒ classname”Njÿj)�”}”j]”j7Œc.amdgpu_vm_adjust_size”†”asbuh1hhj³ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj³ubj�)�”}”(hŒfragment_size_default”h]”hŒfragment_size_default”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj³ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjõubj¾)�”}”(hŒunsigned max_level”h]”(jt)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjûubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjûubj�)�”}”(hŒ max_level”h]”hŒ max_level”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjûubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjõubj¾)�”}”(hŒunsigned max_bits”h]”(jt)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj0ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj0ubj�)�”}”(hŒmax_bits”h]”hŒmax_bits”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjõubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj¼h²hh³jÎh´MD ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj¸h²hh³jÎh´MD ubah}”(h]”j³ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÎh´MD hjµh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ,adjust vm size, block size and fragment size”h]”hŒ,adjust vm size, block size and fragment size”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MD hjwh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjµh²hh³jÎh´MD ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j’j¡j’j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hX.**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``uint32_t min_vm_size`` the minimum vm size in GB if it's set auto ``uint32_t fragment_size_default`` Default PTE fragment size ``unsigned max_level`` max VMPT level ``unsigned max_bits`` max address space size in bits”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjœh]”hŒ Parameters”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjšubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MH hj–ubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hj»h]”hŒstruct amdgpu_device *adev”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MF hjµubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÐh´MF hjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjµubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÐh´MF hj²ubj)�”}”(hŒD``uint32_t min_vm_size`` the minimum vm size in GB if it's set auto ”h]”(j)�”}”(hŒ``uint32_t min_vm_size``”h]”j:)�”}”(hjôh]”hŒuint32_t min_vm_size”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjòubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MG hjîubj$)�”}”(hhh]”hÝ)�”}”(hŒ*the minimum vm size in GB if it's set auto”h]”hŒ,the minimum vm size in GB if it’s set auto”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j h´MG hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjîubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j h´MG hj²ubj)�”}”(hŒ=``uint32_t fragment_size_default`` Default PTE fragment size ”h]”(j)�”}”(hŒ"``uint32_t fragment_size_default``”h]”j:)�”}”(hj-h]”hŒuint32_t fragment_size_default”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MH hj'ubj$)�”}”(hhh]”hÝ)�”}”(hŒDefault PTE fragment size”h]”hŒDefault PTE fragment size”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jBh´MH hjCubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jBh´MH hj²ubj)�”}”(hŒ&``unsigned max_level`` max VMPT level ”h]”(j)�”}”(hŒ``unsigned max_level``”h]”j:)�”}”(hjfh]”hŒunsigned max_level”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjdubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MI hj`ubj$)�”}”(hhh]”hÝ)�”}”(hŒmax VMPT level”h]”hŒmax VMPT level”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j{h´MI hj|ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j{h´MI hj²ubj)�”}”(hŒ4``unsigned max_bits`` max address space size in bits”h]”(j)�”}”(hŒ``unsigned max_bits``”h]”j:)�”}”(hjŸh]”hŒunsigned max_bits”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MK hj™ubj$)�”}”(hhh]”hÝ)�”}”(hŒmax address space size in bits”h]”hŒmax address space size in bits”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MJ hjµubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j´h´MK hj²ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj–ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ amdgpu_vm_wait_idle (C function)”Œc.amdgpu_vm_wait_idle”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ=long amdgpu_vm_wait_idle (struct amdgpu_vm *vm, long timeout)”h]”jn)�”}”(hŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÊ hj;h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj8h²hh³jPh´MÊ ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jVj¡jVj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒ¿**Parameters** ``struct amdgpu_vm *vm`` VM to get info from **Description** Returns the reference counted task_info structure, which must be referenced down with amdgpu_vm_put_task_info.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj`h]”hŒ Parameters”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÎ hjZubj )�”}”(hhh]”j)�”}”(hŒ-``struct amdgpu_vm *vm`` VM to get info from ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hjh]”hŒstruct amdgpu_vm *vm”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÌ hjyubj$)�”}”(hhh]”hÝ)�”}”(hŒVM to get info from”h]”hŒVM to get info from”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j”h´MÌ hj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjyubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j”h´MÌ hjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjZubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjºh]”hŒ Description”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÎ hjZubhÝ)�”}”(hŒnReturns the reference counted task_info structure, which must be referenced down with amdgpu_vm_put_task_info.”h]”hŒnReturns the reference counted task_info structure, which must be referenced down with amdgpu_vm_put_task_info.”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÍ hjZubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ*amdgpu_vm_get_task_info_pasid (C function)”Œc.amdgpu_vm_get_task_info_pasid”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ_struct amdgpu_task_info * amdgpu_vm_get_task_info_pasid (struct amdgpu_device *adev, u32 pasid)”h]”jn)�”}”(hŒ]struct amdgpu_task_info *amdgpu_vm_get_task_info_pasid(struct amdgpu_device *adev, u32 pasid)”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjûh²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mß ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjûh²hh³j h´Mß ubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_task_info”h]”hŒamdgpu_task_info”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒamdgpu_vm_get_task_info_pasid”sbŒc.amdgpu_vm_get_task_info_pasid”†”asbuh1hhjûh²hh³j h´Mß ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjûh²hh³j h´Mß ubj)�”}”(hjh]”hŒ*”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjûh²hh³j h´Mß ubj—)�”}”(hŒamdgpu_vm_get_task_info_pasid”h]”j�)�”}”(hj<h]”hŒamdgpu_vm_get_task_info_pasid”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjZubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjûh²hh³j h´Mß ubj¸)�”}”(hŒ'(struct amdgpu_device *adev, u32 pasid)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjuubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjuubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj”ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j™Œmodname”NŒ classname”Njÿj)�”}”j]”j:Œc.amdgpu_vm_get_task_info_pasid”†”asbuh1hhjuubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjuubj)�”}”(hjh]”hŒ*”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjuubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjuubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjqubj¾)�”}”(hŒ u32 pasid”h]”(h)�”}”(hhh]”j�)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjéubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jîŒmodname”NŒ classname”Njÿj)�”}”j]”j:Œc.amdgpu_vm_get_task_info_pasid”†”asbuh1hhjåubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjåubj�)�”}”(hŒpasid”h]”hŒpasid”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjåubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjqubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjûh²hh³j h´Mß ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj÷h²hh³j h´Mß ubah}”(h]”jòah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j h´Mß hjôh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒExtracts task info for a PASID.”h]”hŒExtracts task info for a PASID.”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mß hj?h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjôh²hh³j h´Mß ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jZj¡jZj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒí**Parameters** ``struct amdgpu_device *adev`` drm device pointer ``u32 pasid`` PASID identifier for VM **Description** Returns the reference counted task_info structure, which must be referenced down with amdgpu_vm_put_task_info.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjdh]”hŒ Parameters”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjbubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mã hj^ubj )�”}”(hhh]”(j)�”}”(hŒ2``struct amdgpu_device *adev`` drm device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjƒh]”hŒstruct amdgpu_device *adev”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Má hj}ubj$)�”}”(hhh]”hÝ)�”}”(hŒdrm device pointer”h]”hŒdrm device pointer”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j˜h´Má hj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j˜h´Má hjzubj)�”}”(hŒ&``u32 pasid`` PASID identifier for VM ”h]”(j)�”}”(hŒ ``u32 pasid``”h]”j:)�”}”(hj¼h]”hŒ u32 pasid”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjºubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mâ hj¶ubj$)�”}”(hhh]”hÝ)�”}”(hŒPASID identifier for VM”h]”hŒPASID identifier for VM”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÑh´Mâ hjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj¶ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÑh´Mâ hjzubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj^ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj÷h]”hŒ Description”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjõubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mä hj^ubhÝ)�”}”(hŒnReturns the reference counted task_info structure, which must be referenced down with amdgpu_vm_put_task_info.”h]”hŒnReturns the reference counted task_info structure, which must be referenced down with amdgpu_vm_put_task_info.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mã hj^ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ$amdgpu_vm_set_task_info (C function)”Œc.amdgpu_vm_set_task_info”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ3void amdgpu_vm_set_task_info (struct amdgpu_vm *vm)”h]”jn)�”}”(hŒ2void amdgpu_vm_set_task_info(struct amdgpu_vm *vm)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj8h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj8h²hh³jJh´M ubj—)�”}”(hŒamdgpu_vm_set_task_info”h]”j�)�”}”(hŒamdgpu_vm_set_task_info”h]”hŒamdgpu_vm_set_task_info”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjYubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj8h²hh³jJh´M ubj¸)�”}”(hŒ(struct amdgpu_vm *vm)”h]”j¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjuubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjuubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj”ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j™Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj_sbŒc.amdgpu_vm_set_task_info”†”asbuh1hhjuubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjuubj)�”}”(hjh]”hŒ*”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjuubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjuubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjqubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj8h²hh³jJh´M ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj4h²hh³jJh´M ubah}”(h]”j/ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jJh´M hj1h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒSets VMs task info.”h]”hŒSets VMs task info.”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hjùh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj1h²hh³jJh´M ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jj¡jj¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒG**Parameters** ``struct amdgpu_vm *vm`` vm for which to set the info”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjh]”hŒ Parameters”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hjubj )�”}”(hhh]”j)�”}”(hŒ5``struct amdgpu_vm *vm`` vm for which to set the info”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hj=h]”hŒstruct amdgpu_vm *vm”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj7ubj$)�”}”(hhh]”hÝ)�”}”(hŒvm for which to set the info”h]”hŒvm for which to set the info”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hjSubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jRh´M hj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_vm_init (C function)”Œc.amdgpu_vm_init”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒUint amdgpu_vm_init (struct amdgpu_device *adev, struct amdgpu_vm *vm, int32_t xcp_id)”h]”jn)�”}”(hŒTint amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm, int32_t xcp_id)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj“h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj“h²hh³j¥h´M ubj—)�”}”(hŒamdgpu_vm_init”h]”j�)�”}”(hŒamdgpu_vm_init”h]”hŒamdgpu_vm_init”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj´ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj“h²hh³j¥h´M ubj¸)�”}”(hŒB(struct amdgpu_device *adev, struct amdgpu_vm *vm, int32_t xcp_id)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÐubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÐubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjïubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jôŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjºsbŒc.amdgpu_vm_init”†”asbuh1hhjÐubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÐubj)�”}”(hjh]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÐubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÐubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌubj¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjBubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjBubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjaubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jfŒmodname”NŒ classname”Njÿj)�”}”j]”jŒc.amdgpu_vm_init”†”asbuh1hhjBubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjBubj)�”}”(hjh]”hŒ*”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjBubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjBubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌubj¾)�”}”(hŒint32_t xcp_id”h]”(h)�”}”(hhh]”j�)�”}”(hŒint32_t”h]”hŒint32_t”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¶ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j»Œmodname”NŒ classname”Njÿj)�”}”j]”jŒc.amdgpu_vm_init”†”asbuh1hhj²ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj²ubj�)�”}”(hŒxcp_id”h]”hŒxcp_id”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj²ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÌubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj“h²hh³j¥h´M ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj�h²hh³j¥h´M ubah}”(h]”jŠah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j¥h´M hjŒh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒinitialize a vm instance”h]”hŒinitialize a vm instance”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjŒh²hh³j¥h´M ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j' j¡j' j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒõ**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct amdgpu_vm *vm`` requested vm ``int32_t xcp_id`` GPU partition selection id **Description** Init **vm** fields. **Return** 0 for success, error for failure.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj1 h]”hŒ Parameters”…”�”}”(hj3 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj/ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj+ ubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjP h]”hŒstruct amdgpu_device *adev”…”�”}”(hjR h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjN ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hjJ ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hji h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³je h´M hjf ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjJ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³je h´M hjG ubj)�”}”(hŒ&``struct amdgpu_vm *vm`` requested vm ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hj‰ h]”hŒstruct amdgpu_vm *vm”…”�”}”(hj‹ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj‡ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hjƒ ubj$)�”}”(hhh]”hÝ)�”}”(hŒ requested vm”h]”hŒ requested vm”…”�”}”(hj¢ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jž h´M hjŸ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjƒ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jž h´M hjG ubj)�”}”(hŒ.``int32_t xcp_id`` GPU partition selection id ”h]”(j)�”}”(hŒ``int32_t xcp_id``”h]”j:)�”}”(hj h]”hŒint32_t xcp_id”…”�”}”(hjÄ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÀ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj¼ ubj$)�”}”(hhh]”hÝ)�”}”(hŒGPU partition selection id”h]”hŒGPU partition selection id”…”�”}”(hjÛ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j× h´M hjØ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj¼ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j× h´M hjG ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj+ ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjý h]”hŒ Description”…”�”}”(hjÿ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjû ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj+ ubhÝ)�”}”(hŒInit **vm** fields.”h]”(hŒInit ”…”�”}”(hj!h²hh³Nh´Nubjµ)�”}”(hŒ**vm**”h]”hŒvm”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj!ubhŒ fields.”…”�”}”(hj!h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj+ ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj6!h]”hŒReturn”…”�”}”(hj8!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj4!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj+ ubhÝ)�”}”(hŒ!0 for success, error for failure.”h]”hŒ!0 for success, error for failure.”…”�”}”(hjL!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj+ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ#amdgpu_vm_make_compute (C function)”Œc.amdgpu_vm_make_compute”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒMint amdgpu_vm_make_compute (struct amdgpu_device *adev, struct amdgpu_vm *vm)”h]”jn)�”}”(hŒLint amdgpu_vm_make_compute(struct amdgpu_device *adev, struct amdgpu_vm *vm)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj{!h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjw!h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mƒ ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŠ!h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjw!h²hh³j‰!h´Mƒ ubj—)�”}”(hŒamdgpu_vm_make_compute”h]”j�)�”}”(hŒamdgpu_vm_make_compute”h]”hŒamdgpu_vm_make_compute”…”�”}”(hjœ!h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj˜!ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjw!h²hh³j‰!h´Mƒ ubj¸)�”}”(hŒ2(struct amdgpu_device *adev, struct amdgpu_vm *vm)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj¸!h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj´!ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÅ!h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj´!ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjÖ!h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÓ!ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jØ!Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjž!sbŒc.amdgpu_vm_make_compute”†”asbuh1hhj´!ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjö!h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj´!ubj)�”}”(hjh]”hŒ*”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj´!ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj´!ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj°!ubj¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj*"h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj&"ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7"h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj&"ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hjH"h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjE"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jJ"Œmodname”NŒ classname”Njÿj)�”}”j]”jò!Œc.amdgpu_vm_make_compute”†”asbuh1hhj&"ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjf"h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj&"ubj)�”}”(hjh]”hŒ*”…”�”}”(hjt"h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj&"ubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hj�"h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj&"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj°!ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjw!h²hh³j‰!h´Mƒ ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjs!h²hh³j‰!h´Mƒ ubah}”(h]”jn!ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j‰!h´Mƒ hjp!h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒTurn a GFX VM into a compute VM”h]”hŒTurn a GFX VM into a compute VM”…”�”}”(hj«"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mƒ hj¨"h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjp!h²hh³j‰!h´Mƒ ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jÃ"j¡jÃ"j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hXŸ**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct amdgpu_vm *vm`` requested vm **Description** This only works on GFX VMs that don't have any BOs added and no page tables allocated yet. Changes the following VM parameters: - use_cpu_for_update - pte_supports_ats Reinitializes the page directory to reflect the changed ATS setting. **Return** 0 for success, -errno for errors.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjÍ"h]”hŒ Parameters”…”�”}”(hjÏ"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjË"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M‡ hjÇ"ubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjì"h]”hŒstruct amdgpu_device *adev”…”�”}”(hjî"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjê"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M… hjæ"ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j#h´M… hj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjæ"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j#h´M… hjã"ubj)�”}”(hŒ&``struct amdgpu_vm *vm`` requested vm ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hj%#h]”hŒstruct amdgpu_vm *vm”…”�”}”(hj'#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj##ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M† hj#ubj$)�”}”(hhh]”hÝ)�”}”(hŒ requested vm”h]”hŒ requested vm”…”�”}”(hj>#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j:#h´M† hj;#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j:#h´M† hjã"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÇ"ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj`#h]”hŒ Description”…”�”}”(hjb#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj^#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mˆ hjÇ"ubhÝ)�”}”(hŒZThis only works on GFX VMs that don't have any BOs added and no page tables allocated yet.”h]”hŒ\This only works on GFX VMs that don’t have any BOs added and no page tables allocated yet.”…”�”}”(hjv#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M‡ hjÇ"ubhÝ)�”}”(hŒLChanges the following VM parameters: - use_cpu_for_update - pte_supports_ats”h]”hŒLChanges the following VM parameters: - use_cpu_for_update - pte_supports_ats”…”�”}”(hj…#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MŠ hjÇ"ubhÝ)�”}”(hŒDReinitializes the page directory to reflect the changed ATS setting.”h]”hŒDReinitializes the page directory to reflect the changed ATS setting.”…”�”}”(hj”#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MŽ hjÇ"ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj¥#h]”hŒReturn”…”�”}”(hj§#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj£#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M‘ hjÇ"ubhÝ)�”}”(hŒ!0 for success, -errno for errors.”h]”hŒ!0 for success, -errno for errors.”…”�”}”(hj»#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M’ hjÇ"ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_vm_fini (C function)”Œc.amdgpu_vm_fini”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒFvoid amdgpu_vm_fini (struct amdgpu_device *adev, struct amdgpu_vm *vm)”h]”jn)�”}”(hŒEvoid amdgpu_vm_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjê#h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjæ#h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MË ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjù#h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjæ#h²hh³jø#h´MË ubj—)�”}”(hŒamdgpu_vm_fini”h]”j�)�”}”(hŒamdgpu_vm_fini”h]”hŒamdgpu_vm_fini”…”�”}”(hj $h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj$ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjæ#h²hh³jø#h´MË ubj¸)�”}”(hŒ2(struct amdgpu_device *adev, struct amdgpu_vm *vm)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj'$h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj#$ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj4$h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj#$ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjE$h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjB$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jG$Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj $sbŒc.amdgpu_vm_fini”†”asbuh1hhj#$ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hje$h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj#$ubj)�”}”(hjh]”hŒ*”…”�”}”(hjs$h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj#$ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj€$h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj#$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj$ubj¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj™$h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj•$ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦$h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj•$ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hj·$h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj´$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j¹$Œmodname”NŒ classname”Njÿj)�”}”j]”ja$Œc.amdgpu_vm_fini”†”asbuh1hhj•$ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÕ$h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj•$ubj)�”}”(hjh]”hŒ*”…”�”}”(hjã$h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj•$ubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjð$h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj•$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj$ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjæ#h²hh³jø#h´MË ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjâ#h²hh³jø#h´MË ubah}”(h]”jÝ#ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jø#h´MË hjß#h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒtear down a vm instance”h]”hŒtear down a vm instance”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MË hj%h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjß#h²hh³jø#h´MË ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j2%j¡j2%j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒÈ**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer ``struct amdgpu_vm *vm`` requested vm **Description** Tear down **vm**. Unbind the VM and remove all bos from the vm bo list”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj<%h]”hŒ Parameters”…”�”}”(hj>%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj:%ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÏ hj6%ubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hj[%h]”hŒstruct amdgpu_device *adev”…”�”}”(hj]%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjY%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÍ hjU%ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hjt%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jp%h´MÍ hjq%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjU%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jp%h´MÍ hjR%ubj)�”}”(hŒ&``struct amdgpu_vm *vm`` requested vm ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hj”%h]”hŒstruct amdgpu_vm *vm”…”�”}”(hj–%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj’%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÎ hjŽ%ubj$)�”}”(hhh]”hÝ)�”}”(hŒ requested vm”h]”hŒ requested vm”…”�”}”(hj­%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j©%h´MÎ hjª%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjŽ%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j©%h´MÎ hjR%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj6%ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjÏ%h]”hŒ Description”…”�”}”(hjÑ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÍ%ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÐ hj6%ubhÝ)�”}”(hŒFTear down **vm**. Unbind the VM and remove all bos from the vm bo list”h]”(hŒ Tear down ”…”�”}”(hjå%h²hh³Nh´Nubjµ)�”}”(hŒ**vm**”h]”hŒvm”…”�”}”(hjí%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjå%ubhŒ6. Unbind the VM and remove all bos from the vm bo list”…”�”}”(hjå%h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MÏ hj6%ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ#amdgpu_vm_manager_init (C function)”Œc.amdgpu_vm_manager_init”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ8void amdgpu_vm_manager_init (struct amdgpu_device *adev)”h]”jn)�”}”(hŒ7void amdgpu_vm_manager_init(struct amdgpu_device *adev)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj&&h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj"&h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5&h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj"&h²hh³j4&h´M ubj—)�”}”(hŒamdgpu_vm_manager_init”h]”j�)�”}”(hŒamdgpu_vm_manager_init”h]”hŒamdgpu_vm_manager_init”…”�”}”(hjG&h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjC&ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj"&h²hh³j4&h´M ubj¸)�”}”(hŒ(struct amdgpu_device *adev)”h]”j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjc&h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj_&ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjp&h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj_&ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj�&h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj~&ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jƒ&Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjI&sbŒc.amdgpu_vm_manager_init”†”asbuh1hhj_&ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡&h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj_&ubj)�”}”(hjh]”hŒ*”…”�”}”(hj¯&h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj_&ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj¼&h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj_&ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj[&ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj"&h²hh³j4&h´M ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj&h²hh³j4&h´M ubah}”(h]”j&ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j4&h´M hj&h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒinit the VM manager”h]”hŒinit the VM manager”…”�”}”(hjæ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hjã&h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj&h²hh³j4&h´M ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jþ&j¡jþ&j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒ}**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer **Description** Initialize the VM manager structures”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj'h]”hŒ Parameters”…”�”}”(hj 'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj'ubj )�”}”(hhh]”j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hj''h]”hŒstruct amdgpu_device *adev”…”�”}”(hj)'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj%'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj!'ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hj@'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j<'h´M hj='ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj!'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j<'h´M hj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj'ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjb'h]”hŒ Description”…”�”}”(hjd'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj`'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj'ubhÝ)�”}”(hŒ$Initialize the VM manager structures”h]”hŒ$Initialize the VM manager structures”…”�”}”(hjx'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M hj'ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ#amdgpu_vm_manager_fini (C function)”Œc.amdgpu_vm_manager_fini”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ8void amdgpu_vm_manager_fini (struct amdgpu_device *adev)”h]”jn)�”}”(hŒ7void amdgpu_vm_manager_fini(struct amdgpu_device *adev)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj§'h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj£'h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MA ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶'h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj£'h²hh³jµ'h´MA ubj—)�”}”(hŒamdgpu_vm_manager_fini”h]”j�)�”}”(hŒamdgpu_vm_manager_fini”h]”hŒamdgpu_vm_manager_fini”…”�”}”(hjÈ'h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÄ'ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj£'h²hh³jµ'h´MA ubj¸)�”}”(hŒ(struct amdgpu_device *adev)”h]”j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjä'h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjà'ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñ'h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjà'ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÿ'ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j(Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjÊ'sbŒc.amdgpu_vm_manager_fini”†”asbuh1hhjà'ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"(h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjà'ubj)�”}”(hjh]”hŒ*”…”�”}”(hj0(h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjà'ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj=(h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjà'ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjÜ'ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj£'h²hh³jµ'h´MA ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjŸ'h²hh³jµ'h´MA ubah}”(h]”jš'ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jµ'h´MA hjœ'h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒcleanup VM manager”h]”hŒcleanup VM manager”…”�”}”(hjg(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MA hjd(h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjœ'h²hh³jµ'h´MA ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j(j¡j(j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒƒ**Parameters** ``struct amdgpu_device *adev`` amdgpu_device pointer **Description** Cleanup the VM manager and free resources.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj‰(h]”hŒ Parameters”…”�”}”(hj‹(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj‡(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´ME hjƒ(ubj )�”}”(hhh]”j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu_device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hj¨(h]”hŒstruct amdgpu_device *adev”…”�”}”(hjª(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj¦(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MC hj¢(ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu_device pointer”h]”hŒamdgpu_device pointer”…”�”}”(hjÁ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j½(h´MC hj¾(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj¢(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j½(h´MC hjŸ(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjƒ(ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjã(h]”hŒ Description”…”�”}”(hjå(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjá(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´ME hjƒ(ubhÝ)�”}”(hŒ*Cleanup the VM manager and free resources.”h]”hŒ*Cleanup the VM manager and free resources.”…”�”}”(hjù(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MD hjƒ(ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_vm_ioctl (C function)”Œc.amdgpu_vm_ioctl”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒOint amdgpu_vm_ioctl (struct drm_device *dev, void *data, struct drm_file *filp)”h]”jn)�”}”(hŒNint amdgpu_vm_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj()h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj$)h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MN ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7)h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj$)h²hh³j6)h´MN ubj—)�”}”(hŒamdgpu_vm_ioctl”h]”j�)�”}”(hŒamdgpu_vm_ioctl”h]”hŒamdgpu_vm_ioctl”…”�”}”(hjI)h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjE)ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj$)h²hh³j6)h´MN ubj¸)�”}”(hŒ;(struct drm_device *dev, void *data, struct drm_file *filp)”h]”(j¾)�”}”(hŒstruct drm_device *dev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hje)h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhja)ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjr)h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hja)ubh)�”}”(hhh]”j�)�”}”(hŒ drm_device”h]”hŒ drm_device”…”�”}”(hjƒ)h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj€)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j…)Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjK)sbŒc.amdgpu_vm_ioctl”†”asbuh1hhja)ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£)h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hja)ubj)�”}”(hjh]”hŒ*”…”�”}”(hj±)h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhja)ubj�)�”}”(hŒdev”h]”hŒdev”…”�”}”(hj¾)h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhja)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj])ubj¾)�”}”(hŒ void *data”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj×)h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÓ)ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjå)h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÓ)ubj)�”}”(hjh]”hŒ*”…”�”}”(hjó)h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÓ)ubj�)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÓ)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj])ubj¾)�”}”(hŒstruct drm_file *filp”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj*ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&*h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj*ubh)�”}”(hhh]”j�)�”}”(hŒdrm_file”h]”hŒdrm_file”…”�”}”(hj7*h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj4*ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j9*Œmodname”NŒ classname”Njÿj)�”}”j]”jŸ)Œc.amdgpu_vm_ioctl”†”asbuh1hhj*ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjU*h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj*ubj)�”}”(hjh]”hŒ*”…”�”}”(hjc*h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj*ubj�)�”}”(hŒfilp”h]”hŒfilp”…”�”}”(hjp*h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj*ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj])ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj$)h²hh³j6)h´MN ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj )h²hh³j6)h´MN ubah}”(h]”j)ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j6)h´MN hj)h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ%Manages VMID reservation for vm hubs.”h]”hŒ%Manages VMID reservation for vm hubs.”…”�”}”(hjš*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MN hj—*h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj)h²hh³j6)h´MN ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j²*j¡j²*j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒ¼**Parameters** ``struct drm_device *dev`` drm device pointer ``void *data`` drm_amdgpu_vm ``struct drm_file *filp`` drm file pointer **Return** 0 for success, -errno for errors.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj¼*h]”hŒ Parameters”…”�”}”(hj¾*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjº*ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MR hj¶*ubj )�”}”(hhh]”(j)�”}”(hŒ.``struct drm_device *dev`` drm device pointer ”h]”(j)�”}”(hŒ``struct drm_device *dev``”h]”j:)�”}”(hjÛ*h]”hŒstruct drm_device *dev”…”�”}”(hjÝ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÙ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MP hjÕ*ubj$)�”}”(hhh]”hÝ)�”}”(hŒdrm device pointer”h]”hŒdrm device pointer”…”�”}”(hjô*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jð*h´MP hjñ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÕ*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jð*h´MP hjÒ*ubj)�”}”(hŒ``void *data`` drm_amdgpu_vm ”h]”(j)�”}”(hŒ``void *data``”h]”j:)�”}”(hj+h]”hŒ void *data”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MQ hj+ubj$)�”}”(hhh]”hÝ)�”}”(hŒ drm_amdgpu_vm”h]”hŒ drm_amdgpu_vm”…”�”}”(hj-+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j)+h´MQ hj*+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j)+h´MQ hjÒ*ubj)�”}”(hŒ+``struct drm_file *filp`` drm file pointer ”h]”(j)�”}”(hŒ``struct drm_file *filp``”h]”j:)�”}”(hjM+h]”hŒstruct drm_file *filp”…”�”}”(hjO+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjK+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MR hjG+ubj$)�”}”(hhh]”hÝ)�”}”(hŒdrm file pointer”h]”hŒdrm file pointer”…”�”}”(hjf+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jb+h´MR hjc+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjG+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jb+h´MR hjÒ*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¶*ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjˆ+h]”hŒReturn”…”�”}”(hjŠ+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj†+ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MT hj¶*ubhÝ)�”}”(hŒ!0 for success, -errno for errors.”h]”hŒ!0 for success, -errno for errors.”…”�”}”(hjž+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MT hj¶*ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ$amdgpu_vm_lock_by_pasid (C function)”Œc.amdgpu_vm_lock_by_pasid”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒistruct amdgpu_vm * amdgpu_vm_lock_by_pasid (struct amdgpu_device *adev, u32 pasid, struct drm_exec *exec)”h]”jn)�”}”(hŒgstruct amdgpu_vm *amdgpu_vm_lock_by_pasid(struct amdgpu_device *adev, u32 pasid, struct drm_exec *exec)”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÍ+h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÉ+h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mq ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÛ+h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÉ+h²hh³jÚ+h´Mq ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hjì+h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjé+ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jî+Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒamdgpu_vm_lock_by_pasid”sbŒc.amdgpu_vm_lock_by_pasid”†”asbuh1hhjÉ+h²hh³jÚ+h´Mq ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ,h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÉ+h²hh³jÚ+h´Mq ubj)�”}”(hjh]”hŒ*”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÉ+h²hh³jÚ+h´Mq ubj—)�”}”(hŒamdgpu_vm_lock_by_pasid”h]”j�)�”}”(hj ,h]”hŒamdgpu_vm_lock_by_pasid”…”�”}”(hj,,h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj(,ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjÉ+h²hh³jÚ+h´Mq ubj¸)�”}”(hŒ>(struct amdgpu_device *adev, u32 pasid, struct drm_exec *exec)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjG,h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjC,ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjT,h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjC,ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hje,h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjb,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jg,Œmodname”NŒ classname”Njÿj)�”}”j]”j,Œc.amdgpu_vm_lock_by_pasid”†”asbuh1hhjC,ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjƒ,h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjC,ubj)�”}”(hjh]”hŒ*”…”�”}”(hj‘,h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjC,ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjž,h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjC,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj?,ubj¾)�”}”(hŒ u32 pasid”h]”(h)�”}”(hhh]”j�)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjº,h²h•h³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj·,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j¼,Œmodname”NŒ classname”Njÿj)�”}”j]”j,Œc.amdgpu_vm_lock_by_pasid”†”asbuh1hhj³,ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØ,h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj³,ubj�)�”}”(hŒpasid”h]”hŒpasid”…”�”}”(hjæ,h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj³,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj?,ubj¾)�”}”(hŒstruct drm_exec *exec”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÿ,h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjû,ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj -h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjû,ubh)�”}”(hhh]”j�)�”}”(hŒdrm_exec”h]”hŒdrm_exec”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj-ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j-Œmodname”NŒ classname”Njÿj)�”}”j]”j,Œc.amdgpu_vm_lock_by_pasid”†”asbuh1hhjû,ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;-h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjû,ubj)�”}”(hjh]”hŒ*”…”�”}”(hjI-h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjû,ubj�)�”}”(hŒexec”h]”hŒexec”…”�”}”(hjV-h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjû,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj?,ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjÉ+h²hh³jÚ+h´Mq ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjÅ+h²hh³jÚ+h´Mq ubah}”(h]”jÀ+ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÚ+h´Mq hjÂ+h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ*look up a VM by PASID and lock its root PD”h]”hŒ*look up a VM by PASID and lock its root PD”…”�”}”(hj€-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mq hj}-h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÂ+h²hh³jÚ+h´Mq ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j˜-j¡j˜-j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hXÿ**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer ``u32 pasid`` PASID of the VM ``struct drm_exec *exec`` drm_exec context to lock the root PD in **Description** Must be called from within a drm_exec_until_all_locked() loop; the caller runs drm_exec_retry_on_contention() afterwards. The drm_exec context holds a reference on the root BO until it is finalised. **Return** the VM on success, or NULL if the PASID has no VM, the VM is being torn down, or locking the root PD failed.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj¢-h]”hŒ Parameters”…”�”}”(hj¤-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj -ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mu hjœ-ubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjÁ-h]”hŒstruct amdgpu_device *adev”…”�”}”(hjÃ-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj¿-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mr hj»-ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device pointer”h]”hŒamdgpu device pointer”…”�”}”(hjÚ-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÖ-h´Mr hj×-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj»-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÖ-h´Mr hj¸-ubj)�”}”(hŒ``u32 pasid`` PASID of the VM ”h]”(j)�”}”(hŒ ``u32 pasid``”h]”j:)�”}”(hjú-h]”hŒ u32 pasid”…”�”}”(hjü-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjø-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Ms hjô-ubj$)�”}”(hhh]”hÝ)�”}”(hŒPASID of the VM”h]”hŒPASID of the VM”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j.h´Ms hj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjô-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j.h´Ms hj¸-ubj)�”}”(hŒB``struct drm_exec *exec`` drm_exec context to lock the root PD in ”h]”(j)�”}”(hŒ``struct drm_exec *exec``”h]”j:)�”}”(hj3.h]”hŒstruct drm_exec *exec”…”�”}”(hj5.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj1.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mt hj-.ubj$)�”}”(hhh]”hÝ)�”}”(hŒ'drm_exec context to lock the root PD in”h]”hŒ'drm_exec context to lock the root PD in”…”�”}”(hjL.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jH.h´Mt hjI.ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj-.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jH.h´Mt hj¸-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjœ-ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjn.h]”hŒ Description”…”�”}”(hjp.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjl.ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mv hjœ-ubhÝ)�”}”(hŒÆMust be called from within a drm_exec_until_all_locked() loop; the caller runs drm_exec_retry_on_contention() afterwards. The drm_exec context holds a reference on the root BO until it is finalised.”h]”hŒÆMust be called from within a drm_exec_until_all_locked() loop; the caller runs drm_exec_retry_on_contention() afterwards. The drm_exec context holds a reference on the root BO until it is finalised.”…”�”}”(hj„.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mu hjœ-ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj•.h]”hŒReturn”…”�”}”(hj—.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj“.ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´My hjœ-ubhÝ)�”}”(hŒlthe VM on success, or NULL if the PASID has no VM, the VM is being torn down, or locking the root PD failed.”h]”hŒlthe VM on success, or NULL if the PASID has no VM, the VM is being torn down, or locking the root PD failed.”…”�”}”(hj«.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mz hjœ-ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ#amdgpu_vm_handle_fault (C function)”Œc.amdgpu_vm_handle_fault”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒˆbool amdgpu_vm_handle_fault (struct amdgpu_device *adev, u32 pasid, u32 vmid, u32 node_id, uint64_t addr, uint64_t ts, bool write_fault)”h]”jn)�”}”(hŒ‡bool amdgpu_vm_handle_fault(struct amdgpu_device *adev, u32 pasid, u32 vmid, u32 node_id, uint64_t addr, uint64_t ts, bool write_fault)”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hjÚ.h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÖ.h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M® ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjè.h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÖ.h²hh³jç.h´M® ubj—)�”}”(hŒamdgpu_vm_handle_fault”h]”j�)�”}”(hŒamdgpu_vm_handle_fault”h]”hŒamdgpu_vm_handle_fault”…”�”}”(hjú.h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjö.ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjÖ.h²hh³jç.h´M® ubj¸)�”}”(hŒl(struct amdgpu_device *adev, u32 pasid, u32 vmid, u32 node_id, uint64_t addr, uint64_t ts, bool write_fault)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj/ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#/h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj/ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj4/h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj1/ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j6/Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjü.sbŒc.amdgpu_vm_handle_fault”†”asbuh1hhj/ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjT/h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj/ubj)�”}”(hjh]”hŒ*”…”�”}”(hjb/h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj/ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjo/h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj/ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj/ubj¾)�”}”(hŒ u32 pasid”h]”(h)�”}”(hhh]”j�)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj‹/h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjˆ/ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j�/Œmodname”NŒ classname”Njÿj)�”}”j]”jP/Œc.amdgpu_vm_handle_fault”†”asbuh1hhj„/ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj©/h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj„/ubj�)�”}”(hŒpasid”h]”hŒpasid”…”�”}”(hj·/h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj„/ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj/ubj¾)�”}”(hŒu32 vmid”h]”(h)�”}”(hhh]”j�)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjÓ/h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÐ/ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÕ/Œmodname”NŒ classname”Njÿj)�”}”j]”jP/Œc.amdgpu_vm_handle_fault”†”asbuh1hhjÌ/ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñ/h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÌ/ubj�)�”}”(hŒvmid”h]”hŒvmid”…”�”}”(hjÿ/h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÌ/ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj/ubj¾)�”}”(hŒ u32 node_id”h]”(h)�”}”(hhh]”j�)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j0Œmodname”NŒ classname”Njÿj)�”}”j]”jP/Œc.amdgpu_vm_handle_fault”†”asbuh1hhj0ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj90h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj0ubj�)�”}”(hŒnode_id”h]”hŒnode_id”…”�”}”(hjG0h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj/ubj¾)�”}”(hŒ uint64_t addr”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hjc0h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj`0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”je0Œmodname”NŒ classname”Njÿj)�”}”j]”jP/Œc.amdgpu_vm_handle_fault”†”asbuh1hhj\0ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�0h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj\0ubj�)�”}”(hŒaddr”h]”hŒaddr”…”�”}”(hj�0h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj\0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj/ubj¾)�”}”(hŒ uint64_t ts”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hj«0h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¨0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j­0Œmodname”NŒ classname”Njÿj)�”}”j]”jP/Œc.amdgpu_vm_handle_fault”†”asbuh1hhj¤0ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉ0h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¤0ubj�)�”}”(hŒts”h]”hŒts”…”�”}”(hj×0h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¤0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj/ubj¾)�”}”(hŒbool write_fault”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hjð0h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjì0ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjý0h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjì0ubj�)�”}”(hŒ write_fault”h]”hŒ write_fault”…”�”}”(hj 1h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjì0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj/ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjÖ.h²hh³jç.h´M® ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjÒ.h²hh³jç.h´M® ubah}”(h]”jÍ.ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jç.h´M® hjÏ.h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒgraceful handling of VM faults.”h]”hŒgraceful handling of VM faults.”…”�”}”(hj51h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M® hj21h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÏ.h²hh³jç.h´M® ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jM1j¡jM1j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hXþ**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer ``u32 pasid`` PASID of the VM ``u32 vmid`` VMID, only used for GFX 9.4.3. ``u32 node_id`` Node_id received in IH cookie. Only applicable for GFX 9.4.3. ``uint64_t addr`` Address of the fault ``uint64_t ts`` Timestamp of the fault ``bool write_fault`` true is write fault, false is read fault **Description** Try to gracefully handle a VM fault. Return true if the fault was handled and shouldn't be reported any more.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjW1h]”hŒ Parameters”…”�”}”(hjY1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjU1ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M² hjQ1ubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjv1h]”hŒstruct amdgpu_device *adev”…”�”}”(hjx1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjt1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¯ hjp1ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device pointer”h]”hŒamdgpu device pointer”…”�”}”(hj�1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j‹1h´M¯ hjŒ1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjp1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‹1h´M¯ hjm1ubj)�”}”(hŒ``u32 pasid`` PASID of the VM ”h]”(j)�”}”(hŒ ``u32 pasid``”h]”j:)�”}”(hj¯1h]”hŒ u32 pasid”…”�”}”(hj±1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj­1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M° hj©1ubj$)�”}”(hhh]”hÝ)�”}”(hŒPASID of the VM”h]”hŒPASID of the VM”…”�”}”(hjÈ1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÄ1h´M° hjÅ1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj©1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÄ1h´M° hjm1ubj)�”}”(hŒ,``u32 vmid`` VMID, only used for GFX 9.4.3. ”h]”(j)�”}”(hŒ ``u32 vmid``”h]”j:)�”}”(hjè1h]”hŒu32 vmid”…”�”}”(hjê1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjæ1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M² hjâ1ubj$)�”}”(hhh]”hÝ)�”}”(hŒVMID, only used for GFX 9.4.3.”h]”hŒVMID, only used for GFX 9.4.3.”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jý1h´M² hjþ1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjâ1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jý1h´M² hjm1ubj)�”}”(hŒN``u32 node_id`` Node_id received in IH cookie. Only applicable for GFX 9.4.3. ”h]”(j)�”}”(hŒ``u32 node_id``”h]”j:)�”}”(hj!2h]”hŒ u32 node_id”…”�”}”(hj#2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M´ hj2ubj$)�”}”(hhh]”hÝ)�”}”(hŒ=Node_id received in IH cookie. Only applicable for GFX 9.4.3.”h]”hŒ=Node_id received in IH cookie. Only applicable for GFX 9.4.3.”…”�”}”(hj:2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M³ hj72ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j62h´M´ hjm1ubj)�”}”(hŒ'``uint64_t addr`` Address of the fault ”h]”(j)�”}”(hŒ``uint64_t addr``”h]”j:)�”}”(hj[2h]”hŒ uint64_t addr”…”�”}”(hj]2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjY2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´Mµ hjU2ubj$)�”}”(hhh]”hÝ)�”}”(hŒAddress of the fault”h]”hŒAddress of the fault”…”�”}”(hjt2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jp2h´Mµ hjq2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjU2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jp2h´Mµ hjm1ubj)�”}”(hŒ'``uint64_t ts`` Timestamp of the fault ”h]”(j)�”}”(hŒ``uint64_t ts``”h]”j:)�”}”(hj”2h]”hŒ uint64_t ts”…”�”}”(hj–2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj’2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M± hjŽ2ubj$)�”}”(hhh]”hÝ)�”}”(hŒTimestamp of the fault”h]”hŒTimestamp of the fault”…”�”}”(hj­2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j©2h´M± hjª2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjŽ2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j©2h´M± hjm1ubj)�”}”(hŒ>``bool write_fault`` true is write fault, false is read fault ”h]”(j)�”}”(hŒ``bool write_fault``”h]”j:)�”}”(hjÍ2h]”hŒbool write_fault”…”�”}”(hjÏ2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjË2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¶ hjÇ2ubj$)�”}”(hhh]”hÝ)�”}”(hŒ(true is write fault, false is read fault”h]”hŒ(true is write fault, false is read fault”…”�”}”(hjæ2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jâ2h´M¶ hjã2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÇ2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jâ2h´M¶ hjm1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjQ1ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj3h]”hŒ Description”…”�”}”(hj 3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M¸ hjQ1ubhÝ)�”}”(hŒmTry to gracefully handle a VM fault. Return true if the fault was handled and shouldn't be reported any more.”h]”hŒoTry to gracefully handle a VM fault. Return true if the fault was handled and shouldn’t be reported any more.”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M· hjQ1ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ&amdgpu_debugfs_vm_bo_info (C function)”Œc.amdgpu_debugfs_vm_bo_info”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒIvoid amdgpu_debugfs_vm_bo_info (struct amdgpu_vm *vm, struct seq_file *m)”h]”jn)�”}”(hŒHvoid amdgpu_debugfs_vm_bo_info(struct amdgpu_vm *vm, struct seq_file *m)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjM3h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjI3h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M? ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\3h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjI3h²hh³j[3h´M? ubj—)�”}”(hŒamdgpu_debugfs_vm_bo_info”h]”j�)�”}”(hŒamdgpu_debugfs_vm_bo_info”h]”hŒamdgpu_debugfs_vm_bo_info”…”�”}”(hjn3h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjj3ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjI3h²hh³j[3h´M? ubj¸)�”}”(hŒ*(struct amdgpu_vm *vm, struct seq_file *m)”h]”(j¾)�”}”(hŒstruct amdgpu_vm *vm”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjŠ3h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj†3ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—3h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj†3ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_vm”h]”hŒ amdgpu_vm”…”�”}”(hj¨3h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¥3ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jª3Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjp3sbŒc.amdgpu_debugfs_vm_bo_info”†”asbuh1hhj†3ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÈ3h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj†3ubj)�”}”(hjh]”hŒ*”…”�”}”(hjÖ3h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj†3ubj�)�”}”(hŒvm”h]”hŒvm”…”�”}”(hjã3h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj†3ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj‚3ubj¾)�”}”(hŒstruct seq_file *m”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjü3h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjø3ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj 4h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjø3ubh)�”}”(hhh]”j�)�”}”(hŒseq_file”h]”hŒseq_file”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj4ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j4Œmodname”NŒ classname”Njÿj)�”}”j]”jÄ3Œc.amdgpu_debugfs_vm_bo_info”†”asbuh1hhjø3ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj84h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjø3ubj)�”}”(hjh]”hŒ*”…”�”}”(hjF4h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjø3ubj�)�”}”(hj¯ah]”hŒm”…”�”}”(hjS4h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjø3ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj‚3ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjI3h²hh³j[3h´M? ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjE3h²hh³j[3h´M? ubah}”(h]”j@3ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j[3h´M? hjB3h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒprint BO info for the VM”h]”hŒprint BO info for the VM”…”�”}”(hj|4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M? hjy4h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjB3h²hh³j[3h´M? ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j”4j¡j”4j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hŒµ**Parameters** ``struct amdgpu_vm *vm`` Requested VM for printing BO info ``struct seq_file *m`` debugfs file **Description** Print BO information in debugfs file for the VM”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjž4h]”hŒ Parameters”…”�”}”(hj 4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjœ4ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MC hj˜4ubj )�”}”(hhh]”(j)�”}”(hŒ;``struct amdgpu_vm *vm`` Requested VM for printing BO info ”h]”(j)�”}”(hŒ``struct amdgpu_vm *vm``”h]”j:)�”}”(hj½4h]”hŒstruct amdgpu_vm *vm”…”�”}”(hj¿4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj»4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MA hj·4ubj$)�”}”(hhh]”hÝ)�”}”(hŒ!Requested VM for printing BO info”h]”hŒ!Requested VM for printing BO info”…”�”}”(hjÖ4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÒ4h´MA hjÓ4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj·4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÒ4h´MA hj´4ubj)�”}”(hŒ$``struct seq_file *m`` debugfs file ”h]”(j)�”}”(hŒ``struct seq_file *m``”h]”j:)�”}”(hjö4h]”hŒstruct seq_file *m”…”�”}”(hjø4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjô4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MB hjð4ubj$)�”}”(hhh]”hÝ)�”}”(hŒ debugfs file”h]”hŒ debugfs file”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j 5h´MB hj 5ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjð4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j 5h´MB hj´4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj˜4ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj15h]”hŒ Description”…”�”}”(hj35h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj/5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MD hj˜4ubhÝ)�”}”(hŒ/Print BO information in debugfs file for the VM”h]”hŒ/Print BO information in debugfs file for the VM”…”�”}”(hjG5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MC hj˜4ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ)amdgpu_vm_update_fault_cache (C function)”Œc.amdgpu_vm_update_fault_cache”hNt”auh1jQhj�h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ†void amdgpu_vm_update_fault_cache (struct amdgpu_device *adev, unsigned int pasid, uint64_t addr, uint32_t status, unsigned int vmhub)”h]”jn)�”}”(hŒ…void amdgpu_vm_update_fault_cache(struct amdgpu_device *adev, unsigned int pasid, uint64_t addr, uint32_t status, unsigned int vmhub)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjv5h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjr5h²hh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MX ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…5h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjr5h²hh³j„5h´MX ubj—)�”}”(hŒamdgpu_vm_update_fault_cache”h]”j�)�”}”(hŒamdgpu_vm_update_fault_cache”h]”hŒamdgpu_vm_update_fault_cache”…”�”}”(hj—5h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj“5ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjr5h²hh³j„5h´MX ubj¸)�”}”(hŒd(struct amdgpu_device *adev, unsigned int pasid, uint64_t addr, uint32_t status, unsigned int vmhub)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj³5h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj¯5ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀ5h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¯5ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjÑ5h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÎ5ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÓ5Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj™5sbŒc.amdgpu_vm_update_fault_cache”†”asbuh1hhj¯5ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñ5h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¯5ubj)�”}”(hjh]”hŒ*”…”�”}”(hjÿ5h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¯5ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj 6h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¯5ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj«5ubj¾)�”}”(hŒunsigned int pasid”h]”(jt)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj%6h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj!6ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj36h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj!6ubjt)�”}”(hŒint”h]”hŒint”…”�”}”(hjA6h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj!6ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjO6h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj!6ubj�)�”}”(hŒpasid”h]”hŒpasid”…”�”}”(hj]6h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj!6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj«5ubj¾)�”}”(hŒ uint64_t addr”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint64_t”h]”hŒuint64_t”…”�”}”(hjy6h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjv6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j{6Œmodname”NŒ classname”Njÿj)�”}”j]”jí5Œc.amdgpu_vm_update_fault_cache”†”asbuh1hhjr6ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—6h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjr6ubj�)�”}”(hŒaddr”h]”hŒaddr”…”�”}”(hj¥6h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjr6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj«5ubj¾)�”}”(hŒuint32_t status”h]”(h)�”}”(hhh]”j�)�”}”(hŒuint32_t”h]”hŒuint32_t”…”�”}”(hjÁ6h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¾6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÃ6Œmodname”NŒ classname”Njÿj)�”}”j]”jí5Œc.amdgpu_vm_update_fault_cache”†”asbuh1hhjº6ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjß6h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjº6ubj�)�”}”(hŒstatus”h]”hŒstatus”…”�”}”(hjí6h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjº6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj«5ubj¾)�”}”(hŒunsigned int vmhub”h]”(jt)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj7ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj7ubjt)�”}”(hŒint”h]”hŒint”…”�”}”(hj"7h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj7ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj07h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj7ubj�)�”}”(hŒvmhub”h]”hŒvmhub”…”�”}”(hj>7h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj7ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj«5ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjr5h²hh³j„5h´MX ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjn5h²hh³j„5h´MX ubah}”(h]”ji5ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j„5h´MX hjk5h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒupdate cached fault into.”h]”hŒupdate cached fault into.”…”�”}”(hjh7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MX hje7h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjk5h²hh³j„5h´MX ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j€7j¡j€7j¢‰j£‰j¤‰uh1jbh²hhj�h³Nh´Nubj¦)�”}”(hXQ**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer ``unsigned int pasid`` PASID of the VM ``uint64_t addr`` Address of the fault ``uint32_t status`` GPUVM fault status register ``unsigned int vmhub`` which vmhub got the fault **Description** Cache the fault info for later use by userspace in debugging.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjŠ7h]”hŒ Parameters”…”�”}”(hjŒ7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjˆ7ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M\ hj„7ubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hj©7h]”hŒstruct amdgpu_device *adev”…”�”}”(hj«7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj§7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MY hj£7ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device pointer”h]”hŒamdgpu device pointer”…”�”}”(hjÂ7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¾7h´MY hj¿7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj£7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¾7h´MY hj 7ubj)�”}”(hŒ'``unsigned int pasid`` PASID of the VM ”h]”(j)�”}”(hŒ``unsigned int pasid``”h]”j:)�”}”(hjâ7h]”hŒunsigned int pasid”…”�”}”(hjä7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjà7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´MZ hjÜ7ubj$)�”}”(hhh]”hÝ)�”}”(hŒPASID of the VM”h]”hŒPASID of the VM”…”�”}”(hjû7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j÷7h´MZ hjø7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÜ7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j÷7h´MZ hj 7ubj)�”}”(hŒ'``uint64_t addr`` Address of the fault ”h]”(j)�”}”(hŒ``uint64_t addr``”h]”j:)�”}”(hj8h]”hŒ uint64_t addr”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M[ hj8ubj$)�”}”(hhh]”hÝ)�”}”(hŒAddress of the fault”h]”hŒAddress of the fault”…”�”}”(hj48h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j08h´M[ hj18ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j08h´M[ hj 7ubj)�”}”(hŒ0``uint32_t status`` GPUVM fault status register ”h]”(j)�”}”(hŒ``uint32_t status``”h]”j:)�”}”(hjT8h]”hŒuint32_t status”…”�”}”(hjV8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjR8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M\ hjN8ubj$)�”}”(hhh]”hÝ)�”}”(hŒGPUVM fault status register”h]”hŒGPUVM fault status register”…”�”}”(hjm8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ji8h´M\ hjj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjN8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³ji8h´M\ hj 7ubj)�”}”(hŒ1``unsigned int vmhub`` which vmhub got the fault ”h]”(j)�”}”(hŒ``unsigned int vmhub``”h]”j:)�”}”(hj�8h]”hŒunsigned int vmhub”…”�”}”(hj�8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj‹8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M] hj‡8ubj$)�”}”(hhh]”hÝ)�”}”(hŒwhich vmhub got the fault”h]”hŒwhich vmhub got the fault”…”�”}”(hj¦8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¢8h´M] hj£8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj‡8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¢8h´M] hj 7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj„7ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjÈ8h]”hŒ Description”…”�”}”(hjÊ8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÆ8ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M_ hj„7ubhÝ)�”}”(hŒ=Cache the fault info for later use by userspace in debugging.”h]”hŒ=Cache the fault info for later use by userspace in debugging.”…”�”}”(hjÞ8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:225: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c”h´M^ hj„7ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj�h²hh³Nh´Nubeh}”(h]”Œamdgpu-virtual-memory”ah ]”h"]”Œamdgpu virtual memory”ah$]”h&]”uh1hµhh·h²hh³hÊh´KÜubh¶)�”}”(hhh]”(h»)�”}”(hŒInterrupt Handling”h]”hŒInterrupt Handling”…”�”}”(hjÿ8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjü8h²hh³hÊh´KåubhÝ)�”}”(hXCInterrupts generated within GPU hardware raise interrupt requests that are passed to amdgpu IRQ handler which is responsible for detecting source and type of the interrupt and dispatching matching handlers. If handling an interrupt requires calling kernel functions that may sleep processing is dispatched to work handlers.”h]”hXCInterrupts generated within GPU hardware raise interrupt requests that are passed to amdgpu IRQ handler which is responsible for detecting source and type of the interrupt and dispatching matching handlers. If handling an interrupt requires calling kernel functions that may sleep processing is dispatched to work handlers.”…”�”}”(hj 9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:231: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Khjü8h²hubhÝ)�”}”(hŒZIf MSI functionality is not disabled by module parameter then MSI support will be enabled.”h]”hŒZIf MSI functionality is not disabled by module parameter then MSI support will be enabled.”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:231: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´K$hjü8h²hubhÝ)�”}”(hŒŒFor GPU interrupt sources that may be driven by another driver, IRQ domain support is used (with mapping between virtual and hardware IRQs).”h]”hŒŒFor GPU interrupt sources that may be driven by another driver, IRQ domain support is used (with mapping between virtual and hardware IRQs).”…”�”}”(hj+9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:231: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´K'hjü8h²hubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ#amdgpu_irq_disable_all (C function)”Œc.amdgpu_irq_disable_all”hNt”auh1jQhjü8h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ8void amdgpu_irq_disable_all (struct amdgpu_device *adev)”h]”jn)�”}”(hŒ7void amdgpu_irq_disable_all(struct amdgpu_device *adev)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjS9h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjO9h²hh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´K™ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjb9h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjO9h²hh³ja9h´K™ubj—)�”}”(hŒamdgpu_irq_disable_all”h]”j�)�”}”(hŒamdgpu_irq_disable_all”h]”hŒamdgpu_irq_disable_all”…”�”}”(hjt9h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjp9ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjO9h²hh³ja9h´K™ubj¸)�”}”(hŒ(struct amdgpu_device *adev)”h]”j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj�9h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjŒ9ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�9h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjŒ9ubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj®9h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj«9ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j°9Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjv9sbŒc.amdgpu_irq_disable_all”†”asbuh1hhjŒ9ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎ9h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjŒ9ubj)�”}”(hjh]”hŒ*”…”�”}”(hjÜ9h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjŒ9ubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjé9h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjŒ9ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjˆ9ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjO9h²hh³ja9h´K™ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjK9h²hh³ja9h´K™ubah}”(h]”jF9ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³ja9h´K™hjH9h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒdisable *all* interrupts”h]”(hŒdisable ”…”�”}”(hj:h²hh³Nh´NubhŒemphasis”“”)�”}”(hŒ*all*”h]”hŒall”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j:hj:ubhŒ interrupts”…”�”}”(hj:h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´K™hj:h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjH9h²hh³ja9h´K™ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j?:j¡j?:j¢‰j£‰j¤‰uh1jbh²hhjü8h³Nh´Nubj¦)�”}”(hŒŠ**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer **Description** Disable all types of interrupts from all sources.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjI:h]”hŒ Parameters”…”�”}”(hjK:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjG:ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´K�hjC:ubj )�”}”(hhh]”j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjh:h]”hŒstruct amdgpu_device *adev”…”�”}”(hjj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjf:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´K›hjb:ubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device pointer”h]”hŒamdgpu device pointer”…”�”}”(hj�:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j}:h´K›hj~:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjb:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j}:h´K›hj_:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjC:ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj£:h]”hŒ Description”…”�”}”(hj¥:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¡:ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´K�hjC:ubhÝ)�”}”(hŒ1Disable all types of interrupts from all sources.”h]”hŒ1Disable all types of interrupts from all sources.”…”�”}”(hj¹:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´KœhjC:ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hjü8h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_irq_handler (C function)”Œc.amdgpu_irq_handler”hNt”auh1jQhjü8h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ3irqreturn_t amdgpu_irq_handler (int irq, void *arg)”h]”jn)�”}”(hŒ2irqreturn_t amdgpu_irq_handler(int irq, void *arg)”h]”(h)�”}”(hhh]”j�)�”}”(hŒ irqreturn_t”h]”hŒ irqreturn_t”…”�”}”(hjë:h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjè:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jí:Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûŒamdgpu_irq_handler”sbŒc.amdgpu_irq_handler”†”asbuh1hhjä:h²hh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´K¾ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ;h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjä:h²hh³j ;h´K¾ubj—)�”}”(hŒamdgpu_irq_handler”h]”j�)�”}”(hj ;h]”hŒamdgpu_irq_handler”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj;ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjä:h²hh³j ;h´K¾ubj¸)�”}”(hŒ(int irq, void *arg)”h]”(j¾)�”}”(hŒint irq”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj:;h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj6;ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjH;h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj6;ubj�)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjV;h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj6;ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj2;ubj¾)�”}”(hŒ void *arg”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjo;h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjk;ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj};h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjk;ubj)�”}”(hjh]”hŒ*”…”�”}”(hj‹;h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjk;ubj�)�”}”(hŒarg”h]”hŒarg”…”�”}”(hj˜;h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjk;ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj2;ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjä:h²hh³j ;h´K¾ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjà:h²hh³j ;h´K¾ubah}”(h]”jÛ:ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j ;h´K¾hjÝ:h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ IRQ handler”h]”hŒ IRQ handler”…”�”}”(hjÂ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´K¾hj¿;h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÝ:h²hh³j ;h´K¾ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jÚ;j¡jÚ;j¢‰j£‰j¤‰uh1jbh²hhjü8h³Nh´Nubj¦)�”}”(hŒâ**Parameters** ``int irq`` IRQ number (unused) ``void *arg`` pointer to DRM device **Description** IRQ handler for amdgpu driver (all ASICs). **Return** result of handling the IRQ, as defined by :c:type:`irqreturn_t`”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjä;h]”hŒ Parameters”…”�”}”(hjæ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjâ;ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´KÂhjÞ;ubj )�”}”(hhh]”(j)�”}”(hŒ ``int irq`` IRQ number (unused) ”h]”(j)�”}”(hŒ ``int irq``”h]”j:)�”}”(hj<h]”hŒint irq”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´KÀhjý;ubj$)�”}”(hhh]”hÝ)�”}”(hŒIRQ number (unused)”h]”hŒIRQ number (unused)”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j<h´KÀhj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjý;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j<h´KÀhjú;ubj)�”}”(hŒ$``void *arg`` pointer to DRM device ”h]”(j)�”}”(hŒ ``void *arg``”h]”j:)�”}”(hj<<h]”hŒ void *arg”…”�”}”(hj><h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj:<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´KÁhj6<ubj$)�”}”(hhh]”hÝ)�”}”(hŒpointer to DRM device”h]”hŒpointer to DRM device”…”�”}”(hjU<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jQ<h´KÁhjR<ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj6<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jQ<h´KÁhjú;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÞ;ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjw<h]”hŒ Description”…”�”}”(hjy<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hju<ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´KÃhjÞ;ubhÝ)�”}”(hŒ*IRQ handler for amdgpu driver (all ASICs).”h]”hŒ*IRQ handler for amdgpu driver (all ASICs).”…”�”}”(hj�<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´KÂhjÞ;ubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjž<h]”hŒReturn”…”�”}”(hj <h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjœ<ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´KÄhjÞ;ubhÝ)�”}”(hŒ?result of handling the IRQ, as defined by :c:type:`irqreturn_t`”h]”(hŒ*result of handling the IRQ, as defined by ”…”�”}”(hj´<h²hh³Nh´Nubh)�”}”(hŒ:c:type:`irqreturn_t`”h]”j:)�”}”(hj¾<h]”hŒ irqreturn_t”…”�”}”(hjÀ<h²hh³Nh´Nubah}”(h]”h ]”(jüj4Œc-type”eh"]”h$]”h&]”uh1j9hj¼<ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j Œ refdomain”j4Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jÿjCjŒ irqreturn_t”uh1hh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´KÅhj´<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÛ<h´KÅhjÞ;ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hjü8h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ"amdgpu_irq_handle_ih1 (C function)”Œc.amdgpu_irq_handle_ih1”hNt”auh1jQhjü8h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ5void amdgpu_irq_handle_ih1 (struct work_struct *work)”h]”jn)�”}”(hŒ4void amdgpu_irq_handle_ih1(struct work_struct *work)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjþ<h²hh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´KØubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjþ<h²hh³j=h´KØubj—)�”}”(hŒamdgpu_irq_handle_ih1”h]”j�)�”}”(hŒamdgpu_irq_handle_ih1”h]”hŒamdgpu_irq_handle_ih1”…”�”}”(hj#=h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj=ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjþ<h²hh³j=h´KØubj¸)�”}”(hŒ(struct work_struct *work)”h]”j¾)�”}”(hŒstruct work_struct *work”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj?=h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj;=ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjL=h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj;=ubh)�”}”(hhh]”j�)�”}”(hŒ work_struct”h]”hŒ work_struct”…”�”}”(hj]=h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjZ=ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j_=Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj%=sbŒc.amdgpu_irq_handle_ih1”†”asbuh1hhj;=ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}=h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj;=ubj)�”}”(hjh]”hŒ*”…”�”}”(hj‹=h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj;=ubj�)�”}”(hŒwork”h]”hŒwork”…”�”}”(hj˜=h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj;=ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj7=ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjþ<h²hh³j=h´KØubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjú<h²hh³j=h´KØubah}”(h]”jõ<ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j=h´KØhj÷<h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒkick of processing for IH1”h]”hŒkick of processing for IH1”…”�”}”(hjÂ=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´KØhj¿=h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj÷<h²hh³j=h´KØubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jÚ=j¡jÚ=j¢‰j£‰j¤‰uh1jbh²hhjü8h³Nh´Nubj¦)�”}”(hŒ‚**Parameters** ``struct work_struct *work`` work structure in struct amdgpu_irq **Description** Kick of processing IH ring 1.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjä=h]”hŒ Parameters”…”�”}”(hjæ=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjâ=ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´KÜhjÞ=ubj )�”}”(hhh]”j)�”}”(hŒA``struct work_struct *work`` work structure in struct amdgpu_irq ”h]”(j)�”}”(hŒ``struct work_struct *work``”h]”j:)�”}”(hj>h]”hŒstruct work_struct *work”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´KÚhjý=ubj$)�”}”(hhh]”hÝ)�”}”(hŒ#work structure in struct amdgpu_irq”h]”hŒ#work structure in struct amdgpu_irq”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j>h´KÚhj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjý=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j>h´KÚhjú=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÞ=ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj>>h]”hŒ Description”…”�”}”(hj@>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj<>ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´KÜhjÞ=ubhÝ)�”}”(hŒKick of processing IH ring 1.”h]”hŒKick of processing IH ring 1.”…”�”}”(hjT>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´KÛhjÞ=ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hjü8h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ"amdgpu_irq_handle_ih2 (C function)”Œc.amdgpu_irq_handle_ih2”hNt”auh1jQhjü8h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ5void amdgpu_irq_handle_ih2 (struct work_struct *work)”h]”jn)�”}”(hŒ4void amdgpu_irq_handle_ih2(struct work_struct *work)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjƒ>h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj>h²hh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Kçubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’>h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj>h²hh³j‘>h´Kçubj—)�”}”(hŒamdgpu_irq_handle_ih2”h]”j�)�”}”(hŒamdgpu_irq_handle_ih2”h]”hŒamdgpu_irq_handle_ih2”…”�”}”(hj¤>h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj >ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj>h²hh³j‘>h´Kçubj¸)�”}”(hŒ(struct work_struct *work)”h]”j¾)�”}”(hŒstruct work_struct *work”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÀ>h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj¼>ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍ>h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¼>ubh)�”}”(hhh]”j�)�”}”(hŒ work_struct”h]”hŒ work_struct”…”�”}”(hjÞ>h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÛ>ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jà>Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj¦>sbŒc.amdgpu_irq_handle_ih2”†”asbuh1hhj¼>ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþ>h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¼>ubj)�”}”(hjh]”hŒ*”…”�”}”(hj ?h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¼>ubj�)�”}”(hŒwork”h]”hŒwork”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¼>ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¸>ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj>h²hh³j‘>h´Kçubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj{>h²hh³j‘>h´Kçubah}”(h]”jv>ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j‘>h´Kçhjx>h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒkick of processing for IH2”h]”hŒkick of processing for IH2”…”�”}”(hjC?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Kçhj@?h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjx>h²hh³j‘>h´Kçubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j[?j¡j[?j¢‰j£‰j¤‰uh1jbh²hhjü8h³Nh´Nubj¦)�”}”(hŒ‚**Parameters** ``struct work_struct *work`` work structure in struct amdgpu_irq **Description** Kick of processing IH ring 2.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hje?h]”hŒ Parameters”…”�”}”(hjg?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjc?ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Këhj_?ubj )�”}”(hhh]”j)�”}”(hŒA``struct work_struct *work`` work structure in struct amdgpu_irq ”h]”(j)�”}”(hŒ``struct work_struct *work``”h]”j:)�”}”(hj„?h]”hŒstruct work_struct *work”…”�”}”(hj†?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj‚?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Kéhj~?ubj$)�”}”(hhh]”hÝ)�”}”(hŒ#work structure in struct amdgpu_irq”h]”hŒ#work structure in struct amdgpu_irq”…”�”}”(hj�?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j™?h´Kéhjš?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj~?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j™?h´Kéhj{?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj_?ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj¿?h]”hŒ Description”…”�”}”(hjÁ?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj½?ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Këhj_?ubhÝ)�”}”(hŒKick of processing IH ring 2.”h]”hŒKick of processing IH ring 2.”…”�”}”(hjÕ?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Kêhj_?ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hjü8h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ&amdgpu_irq_handle_ih_soft (C function)”Œc.amdgpu_irq_handle_ih_soft”hNt”auh1jQhjü8h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ9void amdgpu_irq_handle_ih_soft (struct work_struct *work)”h]”jn)�”}”(hŒ8void amdgpu_irq_handle_ih_soft(struct work_struct *work)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj@h²hh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Köubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj@h²hh³j@h´Köubj—)�”}”(hŒamdgpu_irq_handle_ih_soft”h]”j�)�”}”(hŒamdgpu_irq_handle_ih_soft”h]”hŒamdgpu_irq_handle_ih_soft”…”�”}”(hj%@h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj!@ubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj@h²hh³j@h´Köubj¸)�”}”(hŒ(struct work_struct *work)”h]”j¾)�”}”(hŒstruct work_struct *work”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjA@h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj=@ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjN@h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj=@ubh)�”}”(hhh]”j�)�”}”(hŒ work_struct”h]”hŒ work_struct”…”�”}”(hj_@h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj\@ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”ja@Œmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj'@sbŒc.amdgpu_irq_handle_ih_soft”†”asbuh1hhj=@ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj=@ubj)�”}”(hjh]”hŒ*”…”�”}”(hj�@h²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj=@ubj�)�”}”(hŒwork”h]”hŒwork”…”�”}”(hjš@h²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj=@ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj9@ubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj@h²hh³j@h´Köubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjü?h²hh³j@h´Köubah}”(h]”j÷?ah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j@h´Köhjù?h²hubj[)�”}”(hhh]”hÝ)�”}”(hŒkick of processing for ih_soft”h]”hŒkick of processing for ih_soft”…”�”}”(hjÄ@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´KöhjÁ@h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjù?h²hh³j@h´Köubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jÜ@j¡jÜ@j¢‰j£‰j¤‰uh1jbh²hhjü8h³Nh´Nubj¦)�”}”(hŒ…**Parameters** ``struct work_struct *work`` work structure in struct amdgpu_irq **Description** Kick of processing IH soft ring.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjæ@h]”hŒ Parameters”…”�”}”(hjè@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjä@ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Kúhjà@ubj )�”}”(hhh]”j)�”}”(hŒA``struct work_struct *work`` work structure in struct amdgpu_irq ”h]”(j)�”}”(hŒ``struct work_struct *work``”h]”j:)�”}”(hjAh]”hŒstruct work_struct *work”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjAubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Køhjÿ@ubj$)�”}”(hhh]”hÝ)�”}”(hŒ#work structure in struct amdgpu_irq”h]”hŒ#work structure in struct amdgpu_irq”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jAh´KøhjAubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÿ@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jAh´Køhjü@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjà@ubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj@Ah]”hŒ Description”…”�”}”(hjBAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj>Aubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Kúhjà@ubhÝ)�”}”(hŒ Kick of processing IH soft ring.”h]”hŒ Kick of processing IH soft ring.”…”�”}”(hjVAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Kùhjà@ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hjü8h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_msi_ok (C function)”Œc.amdgpu_msi_ok”hNt”auh1jQhjü8h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ/bool amdgpu_msi_ok (struct amdgpu_device *adev)”h]”jn)�”}”(hŒ.bool amdgpu_msi_ok(struct amdgpu_device *adev)”h]”(jt)�”}”(hjwh]”hŒbool”…”�”}”(hj…Ah²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj�Ah²hh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Mubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“Ah²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj�Ah²hh³j’Ah´Mubj—)�”}”(hŒ amdgpu_msi_ok”h]”j�)�”}”(hŒ amdgpu_msi_ok”h]”hŒ amdgpu_msi_ok”…”�”}”(hj¥Ah²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¡Aubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj�Ah²hh³j’Ah´Mubj¸)�”}”(hŒ(struct amdgpu_device *adev)”h]”j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÁAh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj½Aubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎAh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj½Aubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjßAh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÜAubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jáAŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj§AsbŒc.amdgpu_msi_ok”†”asbuh1hhj½Aubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÿAh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj½Aubj)�”}”(hjh]”hŒ*”…”�”}”(hj Bh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj½Aubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj½Aubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj¹Aubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj�Ah²hh³j’Ah´Mubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj}Ah²hh³j’Ah´Mubah}”(h]”jxAah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j’Ah´MhjzAh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ*check whether MSI functionality is enabled”h]”hŒ*check whether MSI functionality is enabled”…”�”}”(hjDBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´MhjABh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjzAh²hh³j’Ah´Mubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j\Bj¡j\Bj¢‰j£‰j¤‰uh1jbh²hhjü8h³Nh´Nubj¦)�”}”(hX**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer (unused) **Description** Checks whether MSI functionality has been disabled via module parameter (all ASICs). **Return** *true* if MSIs are allowed to be enabled or *false* otherwise”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjfBh]”hŒ Parameters”…”�”}”(hjhBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjdBubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M hj`Bubj )�”}”(hhh]”j)�”}”(hŒ>``struct amdgpu_device *adev`` amdgpu device pointer (unused) ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hj…Bh]”hŒstruct amdgpu_device *adev”…”�”•}”(hj‡Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjƒBubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´MhjBubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device pointer (unused)”h]”hŒamdgpu device pointer (unused)”…”�”}”(hjžBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jšBh´Mhj›Bubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjBubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jšBh´Mhj|Bubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj`BubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjÀBh]”hŒ Description”…”�”}”(hjÂBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¾Bubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M hj`BubhÝ)�”}”(hŒTChecks whether MSI functionality has been disabled via module parameter (all ASICs).”h]”hŒTChecks whether MSI functionality has been disabled via module parameter (all ASICs).”…”�”}”(hjÖBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Mhj`BubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hjçBh]”hŒReturn”…”�”}”(hjéBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjåBubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M hj`BubhÝ)�”}”(hŒ=*true* if MSIs are allowed to be enabled or *false* otherwise”h]”(j:)�”}”(hŒ*true*”h]”hŒtrue”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j:hjýBubhŒ& if MSIs are allowed to be enabled or ”…”�”}”(hjýBh²hh³Nh´Nubj:)�”}”(hŒ*false*”h]”hŒfalse”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j:hjýBubhŒ otherwise”…”�”}”(hjýBh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M hj`Bubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hjü8h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_irq_init (C function)”Œc.amdgpu_irq_init”hNt”auh1jQhjü8h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ0int amdgpu_irq_init (struct amdgpu_device *adev)”h]”jn)�”}”(hŒ/int amdgpu_irq_init(struct amdgpu_device *adev)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjLCh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjHCh²hh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M)ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj[Ch²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjHCh²hh³jZCh´M)ubj—)�”}”(hŒamdgpu_irq_init”h]”j�)�”}”(hŒamdgpu_irq_init”h]”hŒamdgpu_irq_init”…”�”}”(hjmCh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjiCubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjHCh²hh³jZCh´M)ubj¸)�”}”(hŒ(struct amdgpu_device *adev)”h]”j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj‰Ch²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj…Cubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–Ch²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj…Cubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj§Ch²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¤Cubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j©CŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjoCsbŒc.amdgpu_irq_init”†”asbuh1hhj…Cubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÇCh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj…Cubj)�”}”(hjh]”hŒ*”…”�”}”(hjÕCh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj…Cubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjâCh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj…Cubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj�Cubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjHCh²hh³jZCh´M)ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjDCh²hh³jZCh´M)ubah}”(h]”j?Cah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jZCh´M)hjACh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒinitialize interrupt handling”h]”hŒinitialize interrupt handling”…”�”}”(hj Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M)hj Dh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjACh²hh³jZCh´M)ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j$Dj¡j$Dj¢‰j£‰j¤‰uh1jbh²hhjü8h³Nh´Nubj¦)�”}”(hX**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer **Description** Sets up work functions for hotplug and reset interrupts, enables MSI functionality, initializes vblank, hotplug and reset interrupt handling. **Return** 0 on success or error code on failure”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj.Dh]”hŒ Parameters”…”�”}”(hj0Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj,Dubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M-hj(Dubj )�”}”(hhh]”j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjMDh]”hŒstruct amdgpu_device *adev”…”�”}”(hjODh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjKDubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M+hjGDubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device pointer”h]”hŒamdgpu device pointer”…”�”}”(hjfDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jbDh´M+hjcDubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjGDubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jbDh´M+hjDDubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj(DubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjˆDh]”hŒ Description”…”�”}”(hjŠDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj†Dubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M-hj(DubhÝ)�”}”(hŒ�Sets up work functions for hotplug and reset interrupts, enables MSI functionality, initializes vblank, hotplug and reset interrupt handling.”h]”hŒ�Sets up work functions for hotplug and reset interrupts, enables MSI functionality, initializes vblank, hotplug and reset interrupt handling.”…”�”}”(hjžDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M,hj(DubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj¯Dh]”hŒReturn”…”�”}”(hj±Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj­Dubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M/hj(DubhÝ)�”}”(hŒ%0 on success or error code on failure”h]”hŒ%0 on success or error code on failure”…”�”}”(hjÅDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M0hj(Dubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hjü8h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_irq_fini_sw (C function)”Œc.amdgpu_irq_fini_sw”hNt”auh1jQhjü8h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ4void amdgpu_irq_fini_sw (struct amdgpu_device *adev)”h]”jn)�”}”(hŒ3void amdgpu_irq_fini_sw(struct amdgpu_device *adev)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjôDh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjðDh²hh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M{ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjðDh²hh³jEh´M{ubj—)�”}”(hŒamdgpu_irq_fini_sw”h]”j�)�”}”(hŒamdgpu_irq_fini_sw”h]”hŒamdgpu_irq_fini_sw”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjEubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjðDh²hh³jEh´M{ubj¸)�”}”(hŒ(struct amdgpu_device *adev)”h]”j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj1Eh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj-Eubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj>Eh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj-Eubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjOEh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjLEubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jQEŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjEsbŒc.amdgpu_irq_fini_sw”†”asbuh1hhj-Eubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjoEh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj-Eubj)�”}”(hjh]”hŒ*”…”�”}”(hj}Eh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj-Eubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjŠEh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj-Eubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj)Eubah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjðDh²hh³jEh´M{ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjìDh²hh³jEh´M{ubah}”(h]”jçDah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jEh´M{hjéDh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒshut down interrupt handling”h]”hŒshut down interrupt handling”…”�”}”(hj´Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M{hj±Eh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjéDh²hh³jEh´M{ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jÌEj¡jÌEj¢‰j£‰j¤‰uh1jbh²hhjü8h³Nh´Nubj¦)�”}”(hX**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer **Description** Tears down work functions for hotplug and reset interrupts, disables MSI functionality, shuts down vblank, hotplug and reset interrupt handling, turns off interrupts from all sources (all ASICs).”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjÖEh]”hŒ Parameters”…”�”}”(hjØEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÔEubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´MhjÐEubj )�”}”(hhh]”j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjõEh]”hŒstruct amdgpu_device *adev”…”�”}”(hj÷Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjóEubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M}hjïEubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device pointer”h]”hŒamdgpu device pointer”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j Fh´M}hj Fubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjïEubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j Fh´M}hjìEubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÐEubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj0Fh]”hŒ Description”…”�”}”(hj2Fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj.Fubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´MhjÐEubhÝ)�”}”(hŒÃTears down work functions for hotplug and reset interrupts, disables MSI functionality, shuts down vblank, hotplug and reset interrupt handling, turns off interrupts from all sources (all ASICs).”h]”hŒÃTears down work functions for hotplug and reset interrupts, disables MSI functionality, shuts down vblank, hotplug and reset interrupt handling, turns off interrupts from all sources (all ASICs).”…”�”}”(hjFFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M~hjÐEubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hjü8h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_irq_add_id (C function)”Œc.amdgpu_irq_add_id”hNt”auh1jQhjü8h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ~int amdgpu_irq_add_id (struct amdgpu_device *adev, unsigned int client_id, unsigned int src_id, struct amdgpu_irq_src *source)”h]”jn)�”}”(hŒ}int amdgpu_irq_add_id(struct amdgpu_device *adev, unsigned int client_id, unsigned int src_id, struct amdgpu_irq_src *source)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hjuFh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjqFh²hh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Mšubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„Fh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjqFh²hh³jƒFh´Mšubj—)�”}”(hŒamdgpu_irq_add_id”h]”j�)�”}”(hŒamdgpu_irq_add_id”h]”hŒamdgpu_irq_add_id”…”�”}”(hj–Fh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj’Fubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjqFh²hh³jƒFh´Mšubj¸)�”}”(hŒh(struct amdgpu_device *adev, unsigned int client_id, unsigned int src_id, struct amdgpu_irq_src *source)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj²Fh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj®Fubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¿Fh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj®Fubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjÐFh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÍFubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÒFŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj˜FsbŒc.amdgpu_irq_add_id”†”asbuh1hhj®Fubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjðFh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj®Fubj)�”}”(hjh]”hŒ*”…”�”}”(hjþFh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj®Fubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj Gh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj®Fubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjªFubj¾)�”}”(hŒunsigned int client_id”h]”(jt)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj$Gh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj Gubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2Gh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj Gubjt)�”}”(hŒint”h]”hŒint”…”�”}”(hj@Gh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj Gubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjNGh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj Gubj�)�”}”(hŒ client_id”h]”hŒ client_id”…”�”}”(hj\Gh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj Gubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjªFubj¾)�”}”(hŒunsigned int src_id”h]”(jt)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjuGh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjqGubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjƒGh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjqGubjt)�”}”(hŒint”h]”hŒint”…”�”}”(hj‘Gh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjqGubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸGh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjqGubj�)�”}”(hŒsrc_id”h]”hŒsrc_id”…”�”}”(hj­Gh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjqGubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjªFubj¾)�”}”(hŒstruct amdgpu_irq_src *source”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjÆGh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÂGubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓGh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÂGubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_irq_src”h]”hŒamdgpu_irq_src”…”�”}”(hjäGh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjáGubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jæGŒmodname”NŒ classname”Njÿj)�”}”j]”jìFŒc.amdgpu_irq_add_id”†”asbuh1hhjÂGubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÂGubj)�”}”(hjh]”hŒ*”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjÂGubj�)�”}”(hŒsource”h]”hŒsource”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÂGubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjªFubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjqFh²hh³jƒFh´Mšubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjmFh²hh³jƒFh´Mšubah}”(h]”jhFah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jƒFh´MšhjjFh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒregister IRQ source”h]”hŒregister IRQ source”…”�”}”(hjGHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´MšhjDHh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjjFh²hh³jƒFh´Mšubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j_Hj¡j_Hj¢‰j£‰j¤‰uh1jbh²hhjü8h³Nh´Nubj¦)�”}”(hX1**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer ``unsigned int client_id`` client id ``unsigned int src_id`` source id ``struct amdgpu_irq_src *source`` IRQ source pointer **Description** Registers IRQ source on a client. **Return** 0 on success or error code otherwise”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hjiHh]”hŒ Parameters”…”�”}”(hjkHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjgHubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´MžhjcHubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjˆHh]”hŒstruct amdgpu_device *adev”…”�”}”(hjŠHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj†Hubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Mœhj‚Hubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device pointer”h]”hŒamdgpu device pointer”…”�”}”(hj¡Hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j�Hh´MœhjžHubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj‚Hubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j�Hh´MœhjHubj)�”}”(hŒ%``unsigned int client_id`` client id ”h]”(j)�”}”(hŒ``unsigned int client_id``”h]”j:)�”}”(hjÁHh]”hŒunsigned int client_id”…”�”}”(hjÃHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj¿Hubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M�hj»Hubj$)�”}”(hhh]”hÝ)�”}”(hŒ client id”h]”hŒ client id”…”�”}”(hjÚHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÖHh´M�hj×Hubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj»Hubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÖHh´M�hjHubj)�”}”(hŒ"``unsigned int src_id`` source id ”h]”(j)�”}”(hŒ``unsigned int src_id``”h]”j:)�”}”(hjúHh]”hŒunsigned int src_id”…”�”}”(hjüHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjøHubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´MžhjôHubj$)�”}”(hhh]”hÝ)�”}”(hŒ source id”h]”hŒ source id”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jIh´MžhjIubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjôHubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jIh´MžhjHubj)�”}”(hŒ5``struct amdgpu_irq_src *source`` IRQ source pointer ”h]”(j)�”}”(hŒ!``struct amdgpu_irq_src *source``”h]”j:)�”}”(hj3Ih]”hŒstruct amdgpu_irq_src *source”…”�”}”(hj5Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj1Iubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´MŸhj-Iubj$)�”}”(hhh]”hÝ)�”}”(hŒIRQ source pointer”h]”hŒIRQ source pointer”…”�”}”(hjLIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jHIh´MŸhjIIubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj-Iubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jHIh´MŸhjHubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjcHubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjnIh]”hŒ Description”…”�”}”(hjpIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjlIubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M¡hjcHubhÝ)�”}”(hŒ!Registers IRQ source on a client.”h]”hŒ!Registers IRQ source on a client.”…”�”}”(hj„Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M hjcHubhÝ)�”}”(hŒ **Return**”h]”jµ)�”}”(hj•Ih]”hŒReturn”…”�”}”(hj—Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj“Iubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M¢hjcHubhÝ)�”}”(hŒ$0 on success or error code otherwise”h]”hŒ$0 on success or error code otherwise”…”�”}”(hj«Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M£hjcHubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hjü8h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ amdgpu_irq_dispatch (C function)”Œc.amdgpu_irq_dispatch”hNt”auh1jQhjü8h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒPvoid amdgpu_irq_dispatch (struct amdgpu_device *adev, struct amdgpu_ih_ring *ih)”h]”jn)�”}”(hŒOvoid amdgpu_irq_dispatch(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÚIh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÖIh²hh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´MÍubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjéIh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÖIh²hh³jèIh´MÍubj—)�”}”(hŒamdgpu_irq_dispatch”h]”j�)�”}”(hŒamdgpu_irq_dispatch”h]”hŒamdgpu_irq_dispatch”…”�”}”(hjûIh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj÷Iubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjÖIh²hh³jèIh´MÍubj¸)�”}”(hŒ7(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjJubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$Jh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjJubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj5Jh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj2Jubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j7JŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjýIsbŒc.amdgpu_irq_dispatch”†”asbuh1hhjJubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjUJh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjJubj)�”}”(hjh]”hŒ*”…”�”}”(hjcJh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjJubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjpJh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjJubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjJubj¾)�”}”(hŒstruct amdgpu_ih_ring *ih”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj‰Jh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj…Jubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–Jh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj…Jubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_ih_ring”h]”hŒamdgpu_ih_ring”…”�”}”(hj§Jh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¤Jubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j©JŒmodname”NŒ classname”Njÿj)�”}”j]”jQJŒc.amdgpu_irq_dispatch”†”asbuh1hhj…Jubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÅJh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj…Jubj)�”}”(hjh]”hŒ*”…”�”}”(hjÓJh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj…Jubj�)�”}”(hŒih”h]”hŒih”…”�”}”(hjàJh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj…Jubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjJubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjÖIh²hh³jèIh´MÍubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjÒIh²hh³jèIh´MÍubah}”(h]”jÍIah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jèIh´MÍhjÏIh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒdispatch IRQ to IP blocks”h]”hŒdispatch IRQ to IP blocks”…”�”}”(hj Kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´MÍhjKh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÏIh²hh³jèIh´MÍubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j"Kj¡j"Kj¢‰j£‰j¤‰uh1jbh²hhjü8h³Nh´Nubj¦)�”}”(hŒ®**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer ``struct amdgpu_ih_ring *ih`` interrupt ring instance **Description** Dispatches IRQ to IP blocks.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj,Kh]”hŒ Parameters”…”�”}”(hj.Kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj*Kubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´MÑhj&Kubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjKKh]”hŒstruct amdgpu_device *adev”…”�”}”(hjMKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjIKubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´MÏhjEKubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device pointer”h]”hŒamdgpu device pointer”…”�”}”(hjdKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j`Kh´MÏhjaKubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjEKubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j`Kh´MÏhjBKubj)�”}”(hŒ6``struct amdgpu_ih_ring *ih`` interrupt ring instance ”h]”(j)�”}”(hŒ``struct amdgpu_ih_ring *ih``”h]”j:)�”}”(hj„Kh]”hŒstruct amdgpu_ih_ring *ih”…”�”}”(hj†Kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj‚Kubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´MÐhj~Kubj$)�”}”(hhh]”hÝ)�”}”(hŒinterrupt ring instance”h]”hŒinterrupt ring instance”…”�”}”(hj�Kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j™Kh´MÐhjšKubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj~Kubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j™Kh´MÐhjBKubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj&KubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj¿Kh]”hŒ Description”…”�”}”(hjÁKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj½Kubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´MÒhj&KubhÝ)�”}”(hŒDispatches IRQ to IP blocks.”h]”hŒDispatches IRQ to IP blocks.”…”�”}”(hjÕKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´MÑhj&Kubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hjü8h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œ amdgpu_irq_delegate (C function)”Œc.amdgpu_irq_delegate”hNt”auh1jQhjü8h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒivoid amdgpu_irq_delegate (struct amdgpu_device *adev, struct amdgpu_iv_entry *entry, unsigned int num_dw)”h]”jn)�”}”(hŒhvoid amdgpu_irq_delegate(struct amdgpu_device *adev, struct amdgpu_iv_entry *entry, unsigned int num_dw)”h]”(jt)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjLh²hh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Mubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjLh²hh³jLh´Mubj—)�”}”(hŒamdgpu_irq_delegate”h]”j�)�”}”(hŒamdgpu_irq_delegate”h]”hŒamdgpu_irq_delegate”…”�”}”(hj%Lh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj!Lubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjLh²hh³jLh´Mubj¸)�”}”(hŒP(struct amdgpu_device *adev, struct amdgpu_iv_entry *entry, unsigned int num_dw)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjALh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj=Lubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjNLh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj=Lubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hj_Lh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj\Lubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jaLŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûj'LsbŒc.amdgpu_irq_delegate”†”asbuh1hhj=Lubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj=Lubj)�”}”(hjh]”hŒ*”…”�”}”(hj�Lh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj=Lubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjšLh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj=Lubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj9Lubj¾)�”}”(hŒstruct amdgpu_iv_entry *entry”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj³Lh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj¯Lubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀLh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¯Lubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_iv_entry”h]”hŒamdgpu_iv_entry”…”�”}”(hjÑLh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÎLubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jÓLŒmodname”NŒ classname”Njÿj)�”}”j]”j{LŒc.amdgpu_irq_delegate”†”asbuh1hhj¯Lubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjïLh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj¯Lubj)�”}”(hjh]”hŒ*”…”�”}”(hjýLh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhj¯Lubj�)�”}”(hŒentry”h]”hŒentry”…”�”}”(hj Mh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj¯Lubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj9Lubj¾)�”}”(hŒunsigned int num_dw”h]”(jt)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj#Mh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjMubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1Mh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjMubjt)�”}”(hŒint”h]”hŒint”…”�”}”(hj?Mh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjMubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjMMh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjMubj�)�”}”(hŒnum_dw”h]”hŒnum_dw”…”�”}”(hj[Mh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjMubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hj9Lubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hjLh²hh³jLh´Mubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjüKh²hh³jLh´Mubah}”(h]”j÷Kah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jLh´MhjùKh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒdelegate IV to soft IH ring”h]”hŒdelegate IV to soft IH ring”…”�”}”(hj…Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Mhj‚Mh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjùKh²hh³jLh´Mubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j j�Mj¡j�Mj¢‰j£‰j¤‰uh1jbh²hhjü8h³Nh´Nubj¦)�”}”(hX;**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer ``struct amdgpu_iv_entry *entry`` IV entry ``unsigned int num_dw`` size of IV **Description** Delegate the IV to the soft IH ring and schedule processing of it. Used if the hardware delegation to IH1 or IH2 doesn't work for some reason.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj§Mh]”hŒ Parameters”…”�”}”(hj©Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¥Mubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Mhj¡Mubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjÆMh]”hŒstruct amdgpu_device *adev”…”�”}”(hjÈMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÄMubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´MhjÀMubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device pointer”h]”hŒamdgpu device pointer”…”�”}”(hjßMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÛMh´MhjÜMubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÀMubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÛMh´Mhj½Mubj)�”}”(hŒ+``struct amdgpu_iv_entry *entry`` IV entry ”h]”(j)�”}”(hŒ!``struct amdgpu_iv_entry *entry``”h]”j:)�”}”(hjÿMh]”hŒstruct amdgpu_iv_entry *entry”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjýMubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´MhjùMubj$)�”}”(hhh]”hÝ)�”}”(hŒIV entry”h]”hŒIV entry”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jNh´MhjNubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjùMubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jNh´Mhj½Mubj)�”}”(hŒ#``unsigned int num_dw`` size of IV ”h]”(j)�”}”(hŒ``unsigned int num_dw``”h]”j:)�”}”(hj8Nh]”hŒunsigned int num_dw”…”�”}”(hj:Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj6Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Mhj2Nubj$)�”}”(hhh]”hÝ)�”}”(hŒ size of IV”h]”hŒ size of IV”…”�”}”(hjQNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jMNh´MhjNNubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj2Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jMNh´Mhj½Mubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¡MubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjsNh]”hŒ Description”…”�”}”(hjuNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjqNubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Mhj¡MubhÝ)�”}”(hŒŽDelegate the IV to the soft IH ring and schedule processing of it. Used if the hardware delegation to IH1 or IH2 doesn't work for some reason.”h]”hŒ�Delegate the IV to the soft IH ring and schedule processing of it. Used if the hardware delegation to IH1 or IH2 doesn’t work for some reason.”…”�”}”(hj‰Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´Mhj¡Mubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hjü8h²hh³Nh´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamdgpu_irq_update (C function)”Œc.amdgpu_irq_update”hNt”auh1jQhjü8h²hh³Nh´Nubjc)�”}”(hhh]”(jh)�”}”(hŒaint amdgpu_irq_update (struct amdgpu_device *adev, struct amdgpu_irq_src *src, unsigned int type)”h]”jn)�”}”(hŒ`int amdgpu_irq_update(struct amdgpu_device *adev, struct amdgpu_irq_src *src, unsigned int type)”h]”(jt)�”}”(hŒint”h]”hŒint”…”�”}”(hj¸Nh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshj´Nh²hh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M(ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÇNh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj´Nh²hh³jÆNh´M(ubj—)�”}”(hŒamdgpu_irq_update”h]”j�)�”}”(hŒamdgpu_irq_update”h]”hŒamdgpu_irq_update”…”�”}”(hjÙNh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÕNubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj´Nh²hh³jÆNh´M(ubj¸)�”}”(hŒK(struct amdgpu_device *adev, struct amdgpu_irq_src *src, unsigned int type)”h]”(j¾)�”}”(hŒstruct amdgpu_device *adev”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjõNh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjñNubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjñNubh)�”}”(hhh]”j�)�”}”(hŒ amdgpu_device”h]”hŒ amdgpu_device”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjOubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”jOŒmodname”NŒ classname”Njÿj)�”}”j]”j)�”}”jûjÛNsbŒc.amdgpu_irq_update”†”asbuh1hhjñNubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3Oh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjñNubj)�”}”(hjh]”hŒ*”…”�”}”(hjAOh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjñNubj�)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjNOh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjñNubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjíNubj¾)�”}”(hŒstruct amdgpu_irq_src *src”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hjgOh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjcOubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjtOh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjcOubh)�”}”(hhh]”j�)�”}”(hŒamdgpu_irq_src”h]”hŒamdgpu_irq_src”…”�”}”(hj…Oh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj‚Oubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j4Œreftype”jûŒ reftarget”j‡OŒmodname”NŒ classname”Njÿj)�”}”j]”j/OŒc.amdgpu_irq_update”†”asbuh1hhjcOubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£Oh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjcOubj)�”}”(hjh]”hŒ*”…”�”}”(hj±Oh²hh³Nh´Nubah}”(h]”h ]”j'ah"]”h$]”h&]”uh1jhjcOubj�)�”}”(hŒsrc”h]”hŒsrc”…”�”}”(hj¾Oh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjcOubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjíNubj¾)�”}”(hŒunsigned int type”h]”(jt)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj×Oh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÓOubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjåOh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÓOubjt)�”}”(hŒint”h]”hŒint”…”�”}”(hjóOh²hh³Nh´Nubah}”(h]”h ]”j€ah"]”h$]”h&]”uh1jshjÓOubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÓOubj�)�”}”(hŒtype”h]”hŒtype”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjÓOubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjµj¶uh1j½hjíNubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1j·hj´Nh²hh³jÆNh´M(ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj°Nh²hh³jÆNh´M(ubah}”(h]”j«Nah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jÆNh´M(hj­Nh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒupdate hardware interrupt state”h]”hŒupdate hardware interrupt state”…”�”}”(hj9Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M(hj6Ph²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj­Nh²hh³jÆNh´M(ubeh}”(h]”h ]”(j4Œfunction”eh"]”h$]”h&]”jŸj4j jQPj¡jQPj¢‰j£‰j¤‰uh1jbh²hhjü8h³Nh´Nubj¦)�”}”(hŒû**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer ``struct amdgpu_irq_src *src`` interrupt source pointer ``unsigned int type`` type of interrupt **Description** Updates interrupt state for the specific source (all ASICs).”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jµ)�”}”(hj[Ph]”hŒ Parameters”…”�”}”(hj]Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjYPubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M,hjUPubj )�”}”(hhh]”(j)�”}”(hŒ5``struct amdgpu_device *adev`` amdgpu device pointer ”h]”(j)�”}”(hŒ``struct amdgpu_device *adev``”h]”j:)�”}”(hjzPh]”hŒstruct amdgpu_device *adev”…”�”}”(hj|Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjxPubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M*hjtPubj$)�”}”(hhh]”hÝ)�”}”(hŒamdgpu device pointer”h]”hŒamdgpu device pointer”…”�”}”(hj“Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j�Ph´M*hj�Pubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjtPubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j�Ph´M*hjqPubj)�”}”(hŒ8``struct amdgpu_irq_src *src`` interrupt source pointer ”h]”(j)�”}”(hŒ``struct amdgpu_irq_src *src``”h]”j:)�”}”(hj³Ph]”hŒstruct amdgpu_irq_src *src”…”�”}”(hjµPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj±Pubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M+hj­Pubj$)�”}”(hhh]”hÝ)�”}”(hŒinterrupt source pointer”h]”hŒinterrupt source pointer”…”�”}”(hjÌPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÈPh´M+hjÉPubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj­Pubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÈPh´M+hjqPubj)�”}”(hŒ(``unsigned int type`` type of interrupt ”h]”(j)�”}”(hŒ``unsigned int type``”h]”j:)�”}”(hjìPh]”hŒunsigned int type”…”�”}”(hjîPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjêPubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M,hjæPubj$)�”}”(hhh]”hÝ)�”}”(hŒtype of interrupt”h]”hŒtype of interrupt”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jQh´M,hjQubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjæPubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jQh´M,hjqPubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjUPubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hj'Qh]”hŒ Description”…”�”}”(hj)Qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj%Qubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œo/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:234: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c”h´M.hjUPubhÝ)�”}”(hŒ_v (E.g.: gfx_v6_0).”h]”hŒoIP block implementations are named using the following convention: _v (E.g.: gfx_v6_0).”…”�”}”(hjÖch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:240: ./drivers/gpu/drm/amd/include/amd_shared.h”h´KBhj¶ch²hubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamd_ip_block_type (C enum)”Œc.amd_ip_block_type”hNt”auh1jQhj¶ch²hh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Nubjc)�”}”(hhh]”(jh)�”}”(hŒamd_ip_block_type”h]”jn)�”}”(hŒenum amd_ip_block_type”h]”(jÄ)�”}”(hjGRh]”hŒenum”…”�”}”(hjÿch²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjûch²hh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Kubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj dh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjûch²hh³j dh´Kubj—)�”}”(hŒamd_ip_block_type”h]”j�)�”}”(hjùch]”hŒamd_ip_block_type”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjdubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjûch²hh³j dh´Kubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj÷ch²hh³j dh´Kubah}”(h]”jñcah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j dh´Khjôch²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ,Used to classify IP blocks by functionality.”h]”hŒ,Used to classify IP blocks by functionality.”…”�”}”(hjAdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´KIhj>dh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjôch²hh³j dh´Kubeh}”(h]”h ]”(j4Œenum”eh"]”h$]”h&]”jŸj4j jYdj¡jYdj¢‰j£‰j¤‰uh1jbh²hhj¶ch³jóch´Nubj¦)�”}”(hX**Constants** ``AMD_IP_BLOCK_TYPE_COMMON`` GPU Family ``AMD_IP_BLOCK_TYPE_GMC`` Graphics Memory Controller ``AMD_IP_BLOCK_TYPE_IH`` Interrupt Handler ``AMD_IP_BLOCK_TYPE_SMC`` System Management Controller ``AMD_IP_BLOCK_TYPE_PSP`` Platform Security Processor ``AMD_IP_BLOCK_TYPE_DCE`` Display and Compositing Engine ``AMD_IP_BLOCK_TYPE_GFX`` Graphics and Compute Engine ``AMD_IP_BLOCK_TYPE_SDMA`` System DMA Engine ``AMD_IP_BLOCK_TYPE_UVD`` Unified Video Decoder ``AMD_IP_BLOCK_TYPE_VCE`` Video Compression Engine ``AMD_IP_BLOCK_TYPE_ACP`` Audio Co-Processor ``AMD_IP_BLOCK_TYPE_VCN`` Video Core/Codec Next ``AMD_IP_BLOCK_TYPE_MES`` Micro-Engine Scheduler ``AMD_IP_BLOCK_TYPE_JPEG`` JPEG Engine ``AMD_IP_BLOCK_TYPE_VPE`` Video Processing Engine ``AMD_IP_BLOCK_TYPE_UMSCH_MM`` User Mode Scheduler for Multimedia ``AMD_IP_BLOCK_TYPE_ISP`` Image Signal Processor ``AMD_IP_BLOCK_TYPE_RAS`` Reliability, Availability, Serviceability ``AMD_IP_BLOCK_TYPE_NUM`` Total number of IP block types”h]”(hÝ)�”}”(hŒ **Constants**”h]”jµ)�”}”(hjcdh]”hŒ Constants”…”�”}”(hjedh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjadubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´KMhj]dubj )�”}”(hhh]”(j)�”}”(hŒ(``AMD_IP_BLOCK_TYPE_COMMON`` GPU Family ”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_COMMON``”h]”j:)�”}”(hj‚dh]”hŒAMD_IP_BLOCK_TYPE_COMMON”…”�”}”(hj„dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj€dubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´KPhj|dubj$)�”}”(hhh]”hÝ)�”}”(hŒ GPU Family”h]”hŒ GPU Family”…”�”}”(hj›dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j—dh´KPhj˜dubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj|dubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j—dh´KPhjydubj)�”}”(hŒ5``AMD_IP_BLOCK_TYPE_GMC`` Graphics Memory Controller ”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_GMC``”h]”j:)�”}”(hj»dh]”hŒAMD_IP_BLOCK_TYPE_GMC”…”�”}”(hj½dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj¹dubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´KShjµdubj$)�”}”(hhh]”hÝ)�”}”(hŒGraphics Memory Controller”h]”hŒGraphics Memory Controller”…”�”}”(hjÔdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÐdh´KShjÑdubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjµdubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÐdh´KShjydubj)�”}”(hŒ+``AMD_IP_BLOCK_TYPE_IH`` Interrupt Handler ”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_IH``”h]”j:)�”}”(hjôdh]”hŒAMD_IP_BLOCK_TYPE_IH”…”�”}”(hjödh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjòdubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´KVhjîdubj$)�”}”(hhh]”hÝ)�”}”(hŒInterrupt Handler”h]”hŒInterrupt Handler”…”�”}”(hj eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j eh´KVhj eubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjîdubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j eh´KVhjydubj)�”}”(hŒ7``AMD_IP_BLOCK_TYPE_SMC`` System Management Controller ”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_SMC``”h]”j:)�”}”(hj-eh]”hŒAMD_IP_BLOCK_TYPE_SMC”…”�”}”(hj/eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj+eubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´KYhj'eubj$)�”}”(hhh]”hÝ)�”}”(hŒSystem Management Controller”h]”hŒSystem Management Controller”…”�”}”(hjFeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jBeh´KYhjCeubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj'eubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jBeh´KYhjydubj)�”}”(hŒ6``AMD_IP_BLOCK_TYPE_PSP`` Platform Security Processor ”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_PSP``”h]”j:)�”}”(hjfeh]”hŒAMD_IP_BLOCK_TYPE_PSP”…”�”}”(hjheh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjdeubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´K\hj`eubj$)�”}”(hhh]”hÝ)�”}”(hŒPlatform Security Processor”h]”hŒPlatform Security Processor”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j{eh´K\hj|eubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj`eubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j{eh´K\hjydubj)�”}”(hŒ9``AMD_IP_BLOCK_TYPE_DCE`` Display and Compositing Engine ”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_DCE``”h]”j:)�”}”(hjŸeh]”hŒAMD_IP_BLOCK_TYPE_DCE”…”�”}”(hj¡eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj�eubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´K_hj™eubj$)�”}”(hhh]”hÝ)�”}”(hŒDisplay and Compositing Engine”h]”hŒDisplay and Compositing Engine”…”�”}”(hj¸eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j´eh´K_hjµeubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj™eubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j´eh´K_hjydubj)�”}”(hŒ6``AMD_IP_BLOCK_TYPE_GFX`` Graphics and Compute Engine ”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_GFX``”h]”j:)�”}”(hjØeh]”hŒAMD_IP_BLOCK_TYPE_GFX”…”�”}”(hjÚeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÖeubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´KbhjÒeubj$)�”}”(hhh]”hÝ)�”}”(hŒGraphics and Compute Engine”h]”hŒGraphics and Compute Engine”…”�”}”(hjñeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jíeh´Kbhjîeubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÒeubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jíeh´Kbhjydubj)�”}”(hŒ-``AMD_IP_BLOCK_TYPE_SDMA`` System DMA Engine ”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_SDMA``”h]”j:)�”}”(hjfh]”hŒAMD_IP_BLOCK_TYPE_SDMA”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjfubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Kehj fubj$)�”}”(hhh]”hÝ)�”}”(hŒSystem DMA Engine”h]”hŒSystem DMA Engine”…”�”}”(hj*fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j&fh´Kehj'fubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj fubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j&fh´Kehjydubj)�”}”(hŒ0``AMD_IP_BLOCK_TYPE_UVD`` Unified Video Decoder ”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_UVD``”h]”j:)�”}”(hjJfh]”hŒAMD_IP_BLOCK_TYPE_UVD”…”�”}”(hjLfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjHfubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´KhhjDfubj$)�”}”(hhh]”hÝ)�”}”(hŒUnified Video Decoder”h]”hŒUnified Video Decoder”…”�”}”(hjcfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j_fh´Khhj`fubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjDfubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j_fh´Khhjydubj)�”}”(hŒ3``AMD_IP_BLOCK_TYPE_VCE`` Video Compression Engine ”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_VCE``”h]”j:)�”}”(hjƒfh]”hŒAMD_IP_BLOCK_TYPE_VCE”…”�”}”(hj…fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj�fubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Kkhj}fubj$)�”}”(hhh]”hÝ)�”}”(hŒVideo Compression Engine”h]”hŒVideo Compression Engine”…”�”}”(hjœfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j˜fh´Kkhj™fubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj}fubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j˜fh´Kkhjydubj)�”}”(hŒ-``AMD_IP_BLOCK_TYPE_ACP`` Audio Co-Processor ”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_ACP``”h]”j:)�”}”(hj¼fh]”hŒAMD_IP_BLOCK_TYPE_ACP”…”�”}”(hj¾fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjºfubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Knhj¶fubj$)�”}”(hhh]”hÝ)�”}”(hŒAudio Co-Processor”h]”hŒAudio Co-Processor”…”�”}”(hjÕfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÑfh´KnhjÒfubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj¶fubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÑfh´Knhjydubj)�”}”(hŒ0``AMD_IP_BLOCK_TYPE_VCN`` Video Core/Codec Next ”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_VCN``”h]”j:)�”}”(hjõfh]”hŒAMD_IP_BLOCK_TYPE_VCN”…”�”}”(hj÷fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjófubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Kqhjïfubj$)�”}”(hhh]”hÝ)�”}”(hŒVideo Core/Codec Next”h]”hŒVideo Core/Codec Next”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j gh´Kqhj gubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjïfubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j gh´Kqhjydubj)�”}”(hŒ1``AMD_IP_BLOCK_TYPE_MES`` Micro-Engine Scheduler ”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_MES``”h]”j:)�”}”(hj.gh]”hŒAMD_IP_BLOCK_TYPE_MES”…”�”}”(hj0gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj,gubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Kthj(gubj$)�”}”(hhh]”hÝ)�”}”(hŒMicro-Engine Scheduler”h]”hŒMicro-Engine Scheduler”…”�”}”(hjGgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jCgh´KthjDgubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj(gubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jCgh´Kthjydubj)�”}”(hŒ'``AMD_IP_BLOCK_TYPE_JPEG`` JPEG Engine ”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_JPEG``”h]”j:)�”}”(hjggh]”hŒAMD_IP_BLOCK_TYPE_JPEG”…”�”}”(hjigh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjegubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Kwhjagubj$)�”}”(hhh]”hÝ)�”}”(hŒ JPEG Engine”h]”hŒ JPEG Engine”…”�”}”(hj€gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j|gh´Kwhj}gubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjagubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j|gh´Kwhjydubj)�”}”(hŒ2``AMD_IP_BLOCK_TYPE_VPE`` Video Processing Engine ”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_VPE``”h]”j:)�”}”(hj gh]”hŒAMD_IP_BLOCK_TYPE_VPE”…”�”}”(hj¢gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjžgubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Kzhjšgubj$)�”}”(hhh]”hÝ)�”}”(hŒVideo Processing Engine”h]”hŒVideo Processing Engine”…”�”}”(hj¹gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jµgh´Kzhj¶gubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjšgubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jµgh´Kzhjydubj)�”}”(hŒB``AMD_IP_BLOCK_TYPE_UMSCH_MM`` User Mode Scheduler for Multimedia ”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_UMSCH_MM``”h]”j:)�”}”(hjÙgh]”hŒAMD_IP_BLOCK_TYPE_UMSCH_MM”…”�”}”(hjÛgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj×gubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´K}hjÓgubj$)�”}”(hhh]”hÝ)�”}”(hŒ"User Mode Scheduler for Multimedia”h]”hŒ"User Mode Scheduler for Multimedia”…”�”}”(hjògh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jîgh´K}hjïgubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÓgubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jîgh´K}hjydubj)�”}”(hŒ1``AMD_IP_BLOCK_TYPE_ISP`` Image Signal Processor ”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_ISP``”h]”j:)�”}”(hjhh]”hŒAMD_IP_BLOCK_TYPE_ISP”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjhubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´K€hj hubj$)�”}”(hhh]”hÝ)�”}”(hŒImage Signal Processor”h]”hŒImage Signal Processor”…”�”}”(hj+hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j'hh´K€hj(hubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj hubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j'hh´K€hjydubj)�”}”(hŒD``AMD_IP_BLOCK_TYPE_RAS`` Reliability, Availability, Serviceability ”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_RAS``”h]”j:)�”}”(hjKhh]”hŒAMD_IP_BLOCK_TYPE_RAS”…”�”}”(hjMhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjIhubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´KƒhjEhubj$)�”}”(hhh]”hÝ)�”}”(hŒ)Reliability, Availability, Serviceability”h]”hŒ)Reliability, Availability, Serviceability”…”�”}”(hjdhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j`hh´Kƒhjahubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjEhubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j`hh´Kƒhjydubj)�”}”(hŒ8``AMD_IP_BLOCK_TYPE_NUM`` Total number of IP block types”h]”(j)�”}”(hŒ``AMD_IP_BLOCK_TYPE_NUM``”h]”j:)�”}”(hj„hh]”hŒAMD_IP_BLOCK_TYPE_NUM”…”�”}”(hj†hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj‚hubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´K…hj~hubj$)�”}”(hhh]”hÝ)�”}”(hŒTotal number of IP block types”h]”hŒTotal number of IP block types”…”�”}”(hj�hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´K†hjšhubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj~hubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j™hh´K…hjydubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj]dubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj¶ch²hh³jóch´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^ŒDC_FEATURE_MASK (C enum)”Œc.DC_FEATURE_MASK”hNt”auh1jQhj¶ch²hh³jóch´Nubjc)�”}”(hhh]”(jh)�”}”(hŒDC_FEATURE_MASK”h]”jn)�”}”(hŒenum DC_FEATURE_MASK”h]”(jÄ)�”}”(hjGRh]”hŒenum”…”�”}”(hjÞhh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÚhh²hh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´K‹ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjìhh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hjÚhh²hh³jëhh´K‹ubj—)�”}”(hŒDC_FEATURE_MASK”h]”j�)�”}”(hjØhh]”hŒDC_FEATURE_MASK”…”�”}”(hjþhh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhjúhubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hjÚhh²hh³jëhh´K‹ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhjÖhh²hh³jëhh´K‹ubah}”(h]”jÑhah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³jëhh´K‹hjÓhh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ%Bits that control DC feature defaults”h]”hŒ%Bits that control DC feature defaults”…”�”}”(hj ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Kõhjih²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhjÓhh²hh³jëhh´K‹ubeh}”(h]”h ]”(j4Œenum”eh"]”h$]”h&]”jŸj4j j8ij¡j8ij¢‰j£‰j¤‰uh1jbh²hhj¶ch³jóch´Nubj¦)�”}”(hX�**Constants** ``DC_FBC_MASK`` (0x1) disabled by default ``DC_MULTI_MON_PP_MCLK_SWITCH_MASK`` (0x2) enabled by default ``DC_DISABLE_FRACTIONAL_PWM_MASK`` (0x4) disabled by default ``DC_PSR_MASK`` (0x8) disabled by default for DCN < 3.1 ``DC_EDP_NO_POWER_SEQUENCING`` (0x10) disabled by default ``DC_DISABLE_LTTPR_DP1_4A`` (0x20) disabled by default ``DC_DISABLE_LTTPR_DP2_0`` (0x40) disabled by default ``DC_PSR_ALLOW_SMU_OPT`` (0x80) disabled by default ``DC_PSR_ALLOW_MULTI_DISP_OPT`` (0x100) disabled by default ``DC_REPLAY_MASK`` (0x200) disabled by default for DCN < 3.1.4 ``DC_FRL_MASK`` (0x400) disabled by default”h]”(hÝ)�”}”(hŒ **Constants**”h]”jµ)�”}”(hjBih]”hŒ Constants”…”�”}”(hjDih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj@iubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Kùhj``DC_MULTI_MON_PP_MCLK_SWITCH_MASK`` (0x2) enabled by default ”h]”(j)�”}”(hŒ$``DC_MULTI_MON_PP_MCLK_SWITCH_MASK``”h]”j:)�”}”(hjših]”hŒ DC_MULTI_MON_PP_MCLK_SWITCH_MASK”…”�”}”(hjœih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj˜iubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Kÿhj”iubj$)�”}”(hhh]”hÝ)�”}”(hŒ(0x2) enabled by default”h]”hŒ(0x2) enabled by default”…”�”}”(hj³ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¯ih´Kÿhj°iubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj”iubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¯ih´KÿhjXiubj)�”}”(hŒ=``DC_DISABLE_FRACTIONAL_PWM_MASK`` (0x4) disabled by default ”h]”(j)�”}”(hŒ"``DC_DISABLE_FRACTIONAL_PWM_MASK``”h]”j:)�”}”(hjÓih]”hŒDC_DISABLE_FRACTIONAL_PWM_MASK”…”�”}”(hjÕih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÑiubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´MhjÍiubj$)�”}”(hhh]”hÝ)�”}”(hŒ(0x4) disabled by default”h]”hŒ(0x4) disabled by default”…”�”}”(hjìih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jèih´Mhjéiubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÍiubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jèih´MhjXiubj)�”}”(hŒ8``DC_PSR_MASK`` (0x8) disabled by default for DCN < 3.1 ”h]”(j)�”}”(hŒ``DC_PSR_MASK``”h]”j:)�”}”(hj jh]”hŒ DC_PSR_MASK”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj jubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Mhjjubj$)�”}”(hhh]”hÝ)�”}”(hŒ'(0x8) disabled by default for DCN < 3.1”h]”hŒ'(0x8) disabled by default for DCN < 3.1”…”�”}”(hj%jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j!jh´Mhj"jubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j!jh´MhjXiubj)�”}”(hŒ:``DC_EDP_NO_POWER_SEQUENCING`` (0x10) disabled by default ”h]”(j)�”}”(hŒ``DC_EDP_NO_POWER_SEQUENCING``”h]”j:)�”}”(hjEjh]”hŒDC_EDP_NO_POWER_SEQUENCING”…”�”}”(hjGjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjCjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Mhj?jubj$)�”}”(hhh]”hÝ)�”}”(hŒ(0x10) disabled by default”h]”hŒ(0x10) disabled by default”…”�”}”(hj^jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jZjh´Mhj[jubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj?jubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jZjh´MhjXiubj)�”}”(hŒ7``DC_DISABLE_LTTPR_DP1_4A`` (0x20) disabled by default ”h]”(j)�”}”(hŒ``DC_DISABLE_LTTPR_DP1_4A``”h]”j:)�”}”(hj~jh]”hŒDC_DISABLE_LTTPR_DP1_4A”…”�”}”(hj€jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj|jubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M hjxjubj$)�”}”(hhh]”hÝ)�”}”(hŒ(0x20) disabled by default”h]”hŒ(0x20) disabled by default”…”�”}”(hj—jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j“jh´M hj”jubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjxjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j“jh´M hjXiubj)�”}”(hŒ6``DC_DISABLE_LTTPR_DP2_0`` (0x40) disabled by default ”h]”(j)�”}”(hŒ``DC_DISABLE_LTTPR_DP2_0``”h]”j:)�”}”(hj·jh]”hŒDC_DISABLE_LTTPR_DP2_0”…”�”}”(hj¹jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjµjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Mhj±jubj$)�”}”(hhh]”hÝ)�”}”(hŒ(0x40) disabled by default”h]”hŒ(0x40) disabled by default”…”�”}”(hjÐjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÌjh´MhjÍjubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj±jubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÌjh´MhjXiubj)�”}”(hŒ4``DC_PSR_ALLOW_SMU_OPT`` (0x80) disabled by default ”h]”(j)�”}”(hŒ``DC_PSR_ALLOW_SMU_OPT``”h]”j:)�”}”(hjðjh]”hŒDC_PSR_ALLOW_SMU_OPT”…”�”}”(hjòjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjîjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Mhjêjubj$)�”}”(hhh]”hÝ)�”}”(hŒ(0x80) disabled by default”h]”hŒ(0x80) disabled by default”…”�”}”(hj kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jkh´Mhjkubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjêjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jkh´MhjXiubj)�”}”(hŒ<``DC_PSR_ALLOW_MULTI_DISP_OPT`` (0x100) disabled by default ”h]”(j)�”}”(hŒ``DC_PSR_ALLOW_MULTI_DISP_OPT``”h]”j:)�”}”(hj)kh]”hŒDC_PSR_ALLOW_MULTI_DISP_OPT”…”�”}”(hj+kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj'kubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Mhj#kubj$)�”}”(hhh]”hÝ)�”}”(hŒ(0x100) disabled by default”h]”hŒ(0x100) disabled by default”…”�”}”(hjBkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j>kh´Mhj?kubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj#kubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j>kh´MhjXiubj)�”}”(hŒ?``DC_REPLAY_MASK`` (0x200) disabled by default for DCN < 3.1.4 ”h]”(j)�”}”(hŒ``DC_REPLAY_MASK``”h]”j:)�”}”(hjbkh]”hŒDC_REPLAY_MASK”…”�”}”(hjdkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj`kubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Mhj\kubj$)�”}”(hhh]”hÝ)�”}”(hŒ+(0x200) disabled by default for DCN < 3.1.4”h]”hŒ+(0x200) disabled by default for DCN < 3.1.4”…”�”}”(hj{kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jwkh´Mhjxkubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj\kubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jwkh´MhjXiubj)�”}”(hŒ+``DC_FRL_MASK`` (0x400) disabled by default”h]”(j)�”}”(hŒ``DC_FRL_MASK``”h]”j:)�”}”(hj›kh]”hŒ DC_FRL_MASK”…”�”}”(hj�kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj™kubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Mhj•kubj$)�”}”(hhh]”hÝ)�”}”(hŒ(0x400) disabled by default”h]”hŒ(0x400) disabled by default”…”�”}”(hj´kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Mhj±kubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj•kubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j°kh´MhjXiubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjhj«mubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj�mubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jªmh´M?hjolubj)�”}”(hŒA``DC_DISABLE_MPO`` (0x40) If set, disable multi-plane offloading ”h]”(j)�”}”(hŒ``DC_DISABLE_MPO``”h]”j:)�”}”(hjÏmh]”hŒDC_DISABLE_MPO”…”�”}”(hjÑmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÍmubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´MBhjÉmubj$)�”}”(hhh]”hÝ)�”}”(hŒ-(0x40) If set, disable multi-plane offloading”h]”hŒ-(0x40) If set, disable multi-plane offloading”…”�”}”(hjèmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jämh´MBhjåmubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÉmubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jämh´MBhjolubj)�”}”(hŒF``DC_ENABLE_DPIA_TRACE`` (0x80) If set, enable trace logging for DPIA ”h]”(j)�”}”(hŒ``DC_ENABLE_DPIA_TRACE``”h]”j:)�”}”(hjnh]”hŒDC_ENABLE_DPIA_TRACE”…”�”}”(hj nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjnubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´MEhjnubj$)�”}”(hhh]”hÝ)�”}”(hŒ,(0x80) If set, enable trace logging for DPIA”h]”hŒ,(0x80) If set, enable trace logging for DPIA”…”�”}”(hj!nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jnh´MEhjnubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjnubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jnh´MEhjolubj)�”}”(hŒh``DC_ENABLE_DML2`` (0x100) If set, force usage of DML2, even if the DCN version does not default to it. ”h]”(j)�”}”(hŒ``DC_ENABLE_DML2``”h]”j:)�”}”(hjAnh]”hŒDC_ENABLE_DML2”…”�”}”(hjCnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj?nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´MIhj;nubj$)�”}”(hhh]”hÝ)�”}”(hŒT(0x100) If set, force usage of DML2, even if the DCN version does not default to it.”h]”hŒT(0x100) If set, force usage of DML2, even if the DCN version does not default to it.”…”�”}”(hjZnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´MHhjWnubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj;nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jVnh´MIhjolubj)�”}”(hŒ5``DC_DISABLE_PSR_SU`` (0x200) If set, disable PSR SU ”h]”(j)�”}”(hŒ``DC_DISABLE_PSR_SU``”h]”j:)�”}”(hj{nh]”hŒDC_DISABLE_PSR_SU”…”�”}”(hj}nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjynubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´MLhjunubj$)�”}”(hhh]”hÝ)�”}”(hŒ(0x200) If set, disable PSR SU”h]”hŒ(0x200) If set, disable PSR SU”…”�”}”(hj”nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j�nh´MLhj‘nubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjunubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j�nh´MLhjolubj)�”}”(hŒ;``DC_DISABLE_REPLAY`` (0x400) If set, disable Panel Replay ”h]”(j)�”}”(hŒ``DC_DISABLE_REPLAY``”h]”j:)�”}”(hj´nh]”hŒDC_DISABLE_REPLAY”…”�”}”(hj¶nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj²nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´MOhj®nubj$)�”}”(hhh]”hÝ)�”}”(hŒ$(0x400) If set, disable Panel Replay”h]”hŒ$(0x400) If set, disable Panel Replay”…”�”}”(hjÍnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÉnh´MOhjÊnubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj®nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÉnh´MOhjolubj)�”}”(hX``DC_DISABLE_IPS`` (0x800) If set, disable all Idle Power States, all the time. If more than one IPS debug bit is set, the lowest bit takes precedence. For example, if DC_FORCE_IPS_ENABLE and DC_DISABLE_IPS_DYNAMIC are set, then DC_DISABLE_IPS_DYNAMIC takes precedence. ”h]”(j)�”}”(hŒ``DC_DISABLE_IPS``”h]”j:)�”}”(hjính]”hŒDC_DISABLE_IPS”…”�”}”(hjïnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjënubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´MVhjçnubj$)�”}”(hhh]”hÝ)�”}”(hŒú(0x800) If set, disable all Idle Power States, all the time. If more than one IPS debug bit is set, the lowest bit takes precedence. For example, if DC_FORCE_IPS_ENABLE and DC_DISABLE_IPS_DYNAMIC are set, then DC_DISABLE_IPS_DYNAMIC takes precedence.”h]”hŒú(0x800) If set, disable all Idle Power States, all the time. If more than one IPS debug bit is set, the lowest bit takes precedence. For example, if DC_FORCE_IPS_ENABLE and DC_DISABLE_IPS_DYNAMIC are set, then DC_DISABLE_IPS_DYNAMIC takes precedence.”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´MRhjoubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjçnubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³joh´MVhjolubj)�”}”(hŒs``DC_DISABLE_IPS_DYNAMIC`` (0x1000) If set, disable all IPS, all the time, *except* when driver goes into suspend. ”h]”(j)�”}”(hŒ``DC_DISABLE_IPS_DYNAMIC``”h]”j:)�”}”(hj'oh]”hŒDC_DISABLE_IPS_DYNAMIC”…”�”}”(hj)oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj%oubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´MZhj!oubj$)�”}”(hhh]”hÝ)�”}”(hŒW(0x1000) If set, disable all IPS, all the time, *except* when driver goes into suspend.”h]”(hŒ0(0x1000) If set, disable all IPS, all the time, ”…”�”}”(hj@oh²hh³Nh´Nubj:)�”}”(hŒ*except*”h]”hŒexcept”…”�”}”(hjHoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j:hj@oubhŒ when driver goes into suspend.”…”�”}”(hj@oh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´MYhj=oubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj!oubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(0x40000) If set, disable support for custom brightness curves”h]”hŒ>(0x40000) If set, disable support for custom brightness curves”…”�”}”(hj¬ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Mohj©pubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj�pubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¨ph´Mphjolubj)�”}”(hŒy``DC_HDCP_LC_FORCE_FW_ENABLE`` (0x80000) If set, use HDCP Locality Check FW path regardless of reported HW capabilities. ”h]”(j)�”}”(hŒ``DC_HDCP_LC_FORCE_FW_ENABLE``”h]”j:)�”}”(hjÍph]”hŒDC_HDCP_LC_FORCE_FW_ENABLE”…”�”}”(hjÏph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjËpubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´MthjÇpubj$)�”}”(hhh]”hÝ)�”}”(hŒY(0x80000) If set, use HDCP Locality Check FW path regardless of reported HW capabilities.”h]”hŒY(0x80000) If set, use HDCP Locality Check FW path regardless of reported HW capabilities.”…”�”}”(hjæph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Mshjãpubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÇpubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jâph´Mthjolubj)�”}”(hŒ{``DC_HDCP_LC_ENABLE_SW_FALLBACK`` (0x100000) If set, upon HDCP Locality Check FW path failure, retry using legacy SW path. ”h]”(j)�”}”(hŒ!``DC_HDCP_LC_ENABLE_SW_FALLBACK``”h]”j:)�”}”(hjqh]”hŒDC_HDCP_LC_ENABLE_SW_FALLBACK”…”�”}”(hj qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjqubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Mxhjqubj$)�”}”(hhh]”hÝ)�”}”(hŒX(0x100000) If set, upon HDCP Locality Check FW path failure, retry using legacy SW path.”h]”hŒX(0x100000) If set, upon HDCP Locality Check FW path failure, retry using legacy SW path.”…”�”}”(hj qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Mwhjqubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjqubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jqh´Mxhjolubj)�”}”(hŒH``DC_SKIP_DETECTION_LT`` (0x200000) If set, skip detection link training”h]”(j)�”}”(hŒ``DC_SKIP_DETECTION_LT``”h]”j:)�”}”(hjAqh]”hŒDC_SKIP_DETECTION_LT”…”�”}”(hjCqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj?qubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Mzhj;qubj$)�”}”(hhh]”hÝ)�”}”(hŒ/(0x200000) If set, skip detection link training”h]”hŒ/(0x200000) If set, skip detection link training”…”�”}”(hjZqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M{hjWqubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj;qubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jVqh´Mzhjolubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjSlubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj¶ch²hh³jóch´NubjR)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j^Œamd_ip_funcs (C struct)”Œc.amd_ip_funcs”hNt”auh1jQhj¶ch²hh³jóch´Nubjc)�”}”(hhh]”(jh)�”}”(hŒ amd_ip_funcs”h]”jn)�”}”(hŒstruct amd_ip_funcs”h]”(jÄ)�”}”(hjÇh]”hŒstruct”…”�”}”(hj›qh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj—qh²hh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M€ubj†)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj©qh²hh³Nh´Nubah}”(h]”h ]”j’ah"]”h$]”h&]”uh1j…hj—qh²hh³j¨qh´M€ubj—)�”}”(hŒ amd_ip_funcs”h]”j�)�”}”(hj•qh]”hŒ amd_ip_funcs”…”�”}”(hj»qh²hh³Nh´Nubah}”(h]”h ]”j©ah"]”h$]”h&]”uh1jœhj·qubah}”(h]”h ]”(j°j±eh"]”h$]”h&]”jµj¶uh1j–hj—qh²hh³j¨qh´M€ubeh}”(h]”h ]”h"]”h$]”h&]”jµj¶jLˆuh1jmjMjNhj“qh²hh³j¨qh´M€ubah}”(h]”jŽqah ]”(jRjSeh"]”h$]”h&]”jWˆjX)jYhuh1jgh³j¨qh´M€hj�qh²hubj[)�”}”(hhh]”hÝ)�”}”(hŒ+general hooks for managing amdgpu IP Blocks”h]”hŒ+general hooks for managing amdgpu IP Blocks”…”�”}”(hjÝqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M¨hjÚqh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jZhj�qh²hh³j¨qh´M€ubeh}”(h]”h ]”(j4Œstruct”eh"]”h$]”h&]”jŸj4j jõqj¡jõqj¢‰j£‰j¤‰uh1jbh²hhj¶ch³jóch´Nubj¦)�”}”(hXM **Definition**:: struct amd_ip_funcs { char *name; int (*early_init)(struct amdgpu_ip_block *ip_block); int (*late_init)(struct amdgpu_ip_block *ip_block); int (*sw_init)(struct amdgpu_ip_block *ip_block); int (*sw_fini)(struct amdgpu_ip_block *ip_block); int (*early_fini)(struct amdgpu_ip_block *ip_block); int (*hw_init)(struct amdgpu_ip_block *ip_block); int (*hw_fini)(struct amdgpu_ip_block *ip_block); void (*late_fini)(struct amdgpu_ip_block *ip_block); int (*prepare_suspend)(struct amdgpu_ip_block *ip_block); int (*suspend)(struct amdgpu_ip_block *ip_block); int (*resume)(struct amdgpu_ip_block *ip_block); void (*complete)(struct amdgpu_ip_block *ip_block); bool (*is_idle)(struct amdgpu_ip_block *ip_block); int (*wait_for_idle)(struct amdgpu_ip_block *ip_block); int (*soft_reset)(struct amdgpu_ip_block *ip_block); int (*set_clockgating_state)(struct amdgpu_ip_block *ip_block, enum amd_clockgating_state state); int (*set_powergating_state)(struct amdgpu_ip_block *ip_block, enum amd_powergating_state state); void (*get_clockgating_state)(struct amdgpu_ip_block *ip_block, u64 *flags); void (*dump_ip_state)(struct amdgpu_ip_block *ip_block); void (*print_ip_state)(struct amdgpu_ip_block *ip_block, struct drm_printer *p); }; **Members** ``name`` Name of IP block ``early_init`` sets up early driver state (pre sw_init), does not configure hw - Optional ``late_init`` sets up late driver/hw state (post hw_init) - Optional ``sw_init`` sets up driver state, does not configure hw ``sw_fini`` tears down driver state, does not configure hw ``early_fini`` tears down stuff before dev detached from driver ``hw_init`` sets up the hw state ``hw_fini`` tears down the hw state ``late_fini`` final cleanup ``prepare_suspend`` handle IP specific changes to prepare for suspend (such as allocating any required memory) ``suspend`` handles IP specific hw/sw changes for suspend ``resume`` handles IP specific hw/sw changes for resume ``complete`` handles IP specific changes after resume ``is_idle`` returns current IP block idle status ``wait_for_idle`` poll for idle ``soft_reset`` soft reset the IP block ``set_clockgating_state`` enable/disable cg for the IP block ``set_powergating_state`` enable/disable pg for the IP block ``get_clockgating_state`` get current clockgating status ``dump_ip_state`` dump the IP state of the ASIC during a gpu hang ``print_ip_state`` print the IP state in devcoredump for each IP of the ASIC”h]”(hÝ)�”}”(hŒ**Definition**::”h]”(jµ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjýqubhŒ:”…”�”}”(hjýqh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M¬hjùqubj÷�)�”}”(hXstruct amd_ip_funcs { char *name; int (*early_init)(struct amdgpu_ip_block *ip_block); int (*late_init)(struct amdgpu_ip_block *ip_block); int (*sw_init)(struct amdgpu_ip_block *ip_block); int (*sw_fini)(struct amdgpu_ip_block *ip_block); int (*early_fini)(struct amdgpu_ip_block *ip_block); int (*hw_init)(struct amdgpu_ip_block *ip_block); int (*hw_fini)(struct amdgpu_ip_block *ip_block); void (*late_fini)(struct amdgpu_ip_block *ip_block); int (*prepare_suspend)(struct amdgpu_ip_block *ip_block); int (*suspend)(struct amdgpu_ip_block *ip_block); int (*resume)(struct amdgpu_ip_block *ip_block); void (*complete)(struct amdgpu_ip_block *ip_block); bool (*is_idle)(struct amdgpu_ip_block *ip_block); int (*wait_for_idle)(struct amdgpu_ip_block *ip_block); int (*soft_reset)(struct amdgpu_ip_block *ip_block); int (*set_clockgating_state)(struct amdgpu_ip_block *ip_block, enum amd_clockgating_state state); int (*set_powergating_state)(struct amdgpu_ip_block *ip_block, enum amd_powergating_state state); void (*get_clockgating_state)(struct amdgpu_ip_block *ip_block, u64 *flags); void (*dump_ip_state)(struct amdgpu_ip_block *ip_block); void (*print_ip_state)(struct amdgpu_ip_block *ip_block, struct drm_printer *p); };”h]”hXstruct amd_ip_funcs { char *name; int (*early_init)(struct amdgpu_ip_block *ip_block); int (*late_init)(struct amdgpu_ip_block *ip_block); int (*sw_init)(struct amdgpu_ip_block *ip_block); int (*sw_fini)(struct amdgpu_ip_block *ip_block); int (*early_fini)(struct amdgpu_ip_block *ip_block); int (*hw_init)(struct amdgpu_ip_block *ip_block); int (*hw_fini)(struct amdgpu_ip_block *ip_block); void (*late_fini)(struct amdgpu_ip_block *ip_block); int (*prepare_suspend)(struct amdgpu_ip_block *ip_block); int (*suspend)(struct amdgpu_ip_block *ip_block); int (*resume)(struct amdgpu_ip_block *ip_block); void (*complete)(struct amdgpu_ip_block *ip_block); bool (*is_idle)(struct amdgpu_ip_block *ip_block); int (*wait_for_idle)(struct amdgpu_ip_block *ip_block); int (*soft_reset)(struct amdgpu_ip_block *ip_block); int (*set_clockgating_state)(struct amdgpu_ip_block *ip_block, enum amd_clockgating_state state); int (*set_powergating_state)(struct amdgpu_ip_block *ip_block, enum amd_powergating_state state); void (*get_clockgating_state)(struct amdgpu_ip_block *ip_block, u64 *flags); void (*dump_ip_state)(struct amdgpu_ip_block *ip_block); void (*print_ip_state)(struct amdgpu_ip_block *ip_block, struct drm_printer *p); };”…”�”}”hjrsbah}”(h]”h ]”h"]”h$]”h&]”jµj¶uh1jö�h³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M®hjùqubhÝ)�”}”(hŒ **Members**”h]”jµ)�”}”(hj+rh]”hŒMembers”…”�”}”(hj-rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj)rubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´MÆhjùqubj )�”}”(hhh]”(j)�”}”(hŒ``name`` Name of IP block ”h]”(j)�”}”(hŒ``name``”h]”j:)�”}”(hjJrh]”hŒname”…”�”}”(hjLrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjHrubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´MªhjDrubj$)�”}”(hhh]”hÝ)�”}”(hŒName of IP block”h]”hŒName of IP block”…”�”}”(hjcrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j_rh´Mªhj`rubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjDrubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j_rh´MªhjArubj)�”}”(hŒZ``early_init`` sets up early driver state (pre sw_init), does not configure hw - Optional ”h]”(j)�”}”(hŒ``early_init``”h]”j:)�”}”(hjƒrh]”hŒ early_init”…”�”}”(hj…rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj�rubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M¬hj}rubj$)�”}”(hhh]”hÝ)�”}”(hŒJsets up early driver state (pre sw_init), does not configure hw - Optional”h]”hŒJsets up early driver state (pre sw_init), does not configure hw - Optional”…”�”}”(hjœrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M«hj™rubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj}rubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j˜rh´M¬hjArubj)�”}”(hŒE``late_init`` sets up late driver/hw state (post hw_init) - Optional ”h]”(j)�”}”(hŒ ``late_init``”h]”j:)�”}”(hj½rh]”hŒ late_init”…”�”}”(hj¿rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj»rubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M­hj·rubj$)�”}”(hhh]”hÝ)�”}”(hŒ6sets up late driver/hw state (post hw_init) - Optional”h]”hŒ6sets up late driver/hw state (post hw_init) - Optional”…”�”}”(hjÖrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÒrh´M­hjÓrubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj·rubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÒrh´M­hjArubj)�”}”(hŒ8``sw_init`` sets up driver state, does not configure hw ”h]”(j)�”}”(hŒ ``sw_init``”h]”j:)�”}”(hjörh]”hŒsw_init”…”�”}”(hjørh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjôrubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M®hjðrubj$)�”}”(hhh]”hÝ)�”}”(hŒ+sets up driver state, does not configure hw”h]”hŒ+sets up driver state, does not configure hw”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j sh´M®hj subah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjðrubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j sh´M®hjArubj)�”}”(hŒ;``sw_fini`` tears down driver state, does not configure hw ”h]”(j)�”}”(hŒ ``sw_fini``”h]”j:)�”}”(hj/sh]”hŒsw_fini”…”�”}”(hj1sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj-subah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M¯hj)subj$)�”}”(hhh]”hÝ)�”}”(hŒ.tears down driver state, does not configure hw”h]”hŒ.tears down driver state, does not configure hw”…”�”}”(hjHsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jDsh´M¯hjEsubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj)subeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jDsh´M¯hjArubj)�”}”(hŒ@``early_fini`` tears down stuff before dev detached from driver ”h]”(j)�”}”(hŒ``early_fini``”h]”j:)�”}”(hjhsh]”hŒ early_fini”…”�”}”(hjjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjfsubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M°hjbsubj$)�”}”(hhh]”hÝ)�”}”(hŒ0tears down stuff before dev detached from driver”h]”hŒ0tears down stuff before dev detached from driver”…”�”}”(hj�sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j}sh´M°hj~subah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjbsubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j}sh´M°hjArubj)�”}”(hŒ!``hw_init`` sets up the hw state ”h]”(j)�”}”(hŒ ``hw_init``”h]”j:)�”}”(hj¡sh]”hŒhw_init”…”�”}”(hj£sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjŸsubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M±hj›subj$)�”}”(hhh]”hÝ)�”}”(hŒsets up the hw state”h]”hŒsets up the hw state”…”�”}”(hjºsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¶sh´M±hj·subah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj›subeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¶sh´M±hjArubj)�”}”(hŒ$``hw_fini`` tears down the hw state ”h]”(j)�”}”(hŒ ``hw_fini``”h]”j:)�”}”(hjÚsh]”hŒhw_fini”…”�”}”(hjÜsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjØsubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M²hjÔsubj$)�”}”(hhh]”hÝ)�”}”(hŒtears down the hw state”h]”hŒtears down the hw state”…”�”}”(hjósh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jïsh´M²hjðsubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÔsubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jïsh´M²hjArubj)�”}”(hŒ``late_fini`` final cleanup ”h]”(j)�”}”(hŒ ``late_fini``”h]”j:)�”}”(hjth]”hŒ late_fini”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjtubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M³hj tubj$)�”}”(hhh]”hÝ)�”}”(hŒ final cleanup”h]”hŒ final cleanup”…”�”}”(hj,th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j(th´M³hj)tubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj tubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(th´M³hjArubj)�”}”(hŒo``prepare_suspend`` handle IP specific changes to prepare for suspend (such as allocating any required memory) ”h]”(j)�”}”(hŒ``prepare_suspend``”h]”j:)�”}”(hjLth]”hŒprepare_suspend”…”�”}”(hjNth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjJtubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´MµhjFtubj$)�”}”(hhh]”hÝ)�”}”(hŒZhandle IP specific changes to prepare for suspend (such as allocating any required memory)”h]”hŒZhandle IP specific changes to prepare for suspend (such as allocating any required memory)”…”�”}”(hjeth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M´hjbtubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjFtubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jath´MµhjArubj)�”}”(hŒ:``suspend`` handles IP specific hw/sw changes for suspend ”h]”(j)�”}”(hŒ ``suspend``”h]”j:)�”}”(hj†th]”hŒsuspend”…”�”}”(hjˆth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj„tubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M¶hj€tubj$)�”}”(hhh]”hÝ)�”}”(hŒ-handles IP specific hw/sw changes for suspend”h]”hŒ-handles IP specific hw/sw changes for suspend”…”�”}”(hjŸth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j›th´M¶hjœtubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj€tubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j›th´M¶hjArubj)�”}”(hŒ8``resume`` handles IP specific hw/sw changes for resume ”h]”(j)�”}”(hŒ ``resume``”h]”j:)�”}”(hj¿th]”hŒresume”…”�”}”(hjÁth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj½tubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M·hj¹tubj$)�”}”(hhh]”hÝ)�”}”(hŒ,handles IP specific hw/sw changes for resume”h]”hŒ,handles IP specific hw/sw changes for resume”…”�”}”(hjØth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÔth´M·hjÕtubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj¹tubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÔth´M·hjArubj)�”}”(hŒ6``complete`` handles IP specific changes after resume ”h]”(j)�”}”(hŒ ``complete``”h]”j:)�”}”(hjøth]”hŒcomplete”…”�”}”(hjúth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjötubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M¸hjòtubj$)�”}”(hhh]”hÝ)�”}”(hŒ(handles IP specific changes after resume”h]”hŒ(handles IP specific changes after resume”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j uh´M¸hjuubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjòtubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j uh´M¸hjArubj)�”}”(hŒ1``is_idle`` returns current IP block idle status ”h]”(j)�”}”(hŒ ``is_idle``”h]”j:)�”}”(hj1uh]”hŒis_idle”…”�”}”(hj3uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj/uubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M¹hj+uubj$)�”}”(hhh]”hÝ)�”}”(hŒ$returns current IP block idle status”h]”hŒ$returns current IP block idle status”…”�”}”(hjJuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jFuh´M¹hjGuubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj+uubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jFuh´M¹hjArubj)�”}”(hŒ ``wait_for_idle`` poll for idle ”h]”(j)�”}”(hŒ``wait_for_idle``”h]”j:)�”}”(hjjuh]”hŒ wait_for_idle”…”�”}”(hjluh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjhuubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´Mºhjduubj$)�”}”(hhh]”hÝ)�”}”(hŒ poll for idle”h]”hŒ poll for idle”…”�”}”(hjƒuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³juh´Mºhj€uubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjduubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³juh´MºhjArubj)�”}”(hŒ'``soft_reset`` soft reset the IP block ”h]”(j)�”}”(hŒ``soft_reset``”h]”j:)�”}”(hj£uh]”hŒ soft_reset”…”�”}”(hj¥uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj¡uubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M»hj�uubj$)�”}”(hhh]”hÝ)�”}”(hŒsoft reset the IP block”h]”hŒsoft reset the IP block”…”�”}”(hj¼uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¸uh´M»hj¹uubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj�uubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j¸uh´M»hjArubj)�”}”(hŒ=``set_clockgating_state`` enable/disable cg for the IP block ”h]”(j)�”}”(hŒ``set_clockgating_state``”h]”j:)�”}”(hjÜuh]”hŒset_clockgating_state”…”�”}”(hjÞuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjÚuubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M¼hjÖuubj$)�”}”(hhh]”hÝ)�”}”(hŒ"enable/disable cg for the IP block”h]”hŒ"enable/disable cg for the IP block”…”�”}”(hjõuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jñuh´M¼hjòuubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjÖuubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jñuh´M¼hjArubj)�”}”(hŒ=``set_powergating_state`` enable/disable pg for the IP block ”h]”(j)�”}”(hŒ``set_powergating_state``”h]”j:)�”}”(hjvh]”hŒset_powergating_state”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M½hjvubj$)�”}”(hhh]”hÝ)�”}”(hŒ"enable/disable pg for the IP block”h]”hŒ"enable/disable pg for the IP block”…”�”}”(hj.vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j*vh´M½hj+vubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjvubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j*vh´M½hjArubj)�”}”(hŒ9``get_clockgating_state`` get current clockgating status ”h]”(j)�”}”(hŒ``get_clockgating_state``”h]”j:)�”}”(hjNvh]”hŒget_clockgating_state”…”�”}”(hjPvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hjLvubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M¾hjHvubj$)�”}”(hhh]”hÝ)�”}”(hŒget current clockgating status”h]”hŒget current clockgating status”…”�”}”(hjgvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jcvh´M¾hjdvubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjHvubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jcvh´M¾hjArubj)�”}”(hŒB``dump_ip_state`` dump the IP state of the ASIC during a gpu hang ”h]”(j)�”}”(hŒ``dump_ip_state``”h]”j:)�”}”(hj‡vh]”hŒ dump_ip_state”…”�”}”(hj‰vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj…vubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M¿hj�vubj$)�”}”(hhh]”hÝ)�”}”(hŒ/dump the IP state of the ASIC during a gpu hang”h]”hŒ/dump the IP state of the ASIC during a gpu hang”…”�”}”(hj vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jœvh´M¿hj�vubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hj�vubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jœvh´M¿hjArubj)�”}”(hŒL``print_ip_state`` print the IP state in devcoredump for each IP of the ASIC”h]”(j)�”}”(hŒ``print_ip_state``”h]”j:)�”}”(hjÀvh]”hŒprint_ip_state”…”�”}”(hjÂvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj¾vubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´M¿hjºvubj$)�”}”(hhh]”hÝ)�”}”(hŒ9print the IP state in devcoredump for each IP of the ASIC”h]”hŒ9print the IP state in devcoredump for each IP of the ASIC”…”�”}”(hjÙvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´MÀhjÖvubah}”(h]”h ]”h"]”h$]”h&]”uh1j#hjºvubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÕvh´M¿hjArubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjùqubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¥hj¶ch²hh³jóch´NubhÝ)�”}”(hŒ**Description**”h]”jµ)�”}”(hjwh]”hŒ Description”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjwubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´MÃhj¶ch²hubhÝ)�”}”(hXXThese hooks provide an interface for controlling the operational state of IP blocks. After acquiring a list of IP blocks for the GPU in use, the driver can make chip-wide state changes by walking this list and making calls to hooks from each IP block. This list is ordered to ensure that the driver initializes the IP blocks in a safe sequence.”h]”hXXThese hooks provide an interface for controlling the operational state of IP blocks. After acquiring a list of IP blocks for the GPU in use, the driver can make chip-wide state changes by walking this list and making calls to hooks from each IP block. This list is ordered to ensure that the driver initializes the IP blocks in a safe sequence.”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:243: ./drivers/gpu/drm/amd/include/amd_shared.h”h´MÀhj¶ch²hubeh}”(h]”Œ ip-blocks”ah ]”h"]”Œ ip blocks”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kîubeh}”(h]”Œcore-driver-infrastructure”ah ]”h"]”Œcore driver infrastructure”ah$]”h&]”uh1hµhhh²hh³hÊh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÊuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hºNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j[wŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÊŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”(jK]”j@aj]”jauŒnameids”}”(j5wj2wjQjNjvjKjujrj!jjjjjjcjcj¢€jŸ€jÿ�jü�jù8jö8j³cj°cj-wj*wuŒ nametypes”}”(j5w‰jQ‰jvˆju‰j!‰jˆj‰jc‰j¢€‰jÿ�‰jù8‰j³c‰j-w‰uh}”(j2wh·jNhËjKjTjrjTjj}jj$jj$jcj j`jij¯j´jÐ jÕ jäjéjj j,j1jjjÇjÌjW!j\!j©$j®$jØ'jÝ'j+j +j~-jƒ-jR/jW/j1j1jŠ3j�3j‚5j‡5j8j8jð9jõ9j˜;j�;j=j=ja?jf?j�Aj”AjÓDjØDj²Hj·HjlKjqKjíLjòLj¨Nj­NjQjQjïTjôTjWj„Wj:Yj?YjÎZjÓZjb\jg\j^j"^jR`jW`jŸ€j cjpcjucj,ej1ejzgjgjÈijÍijmkjrkjmjmjµojºojŸrj¤rjuj ujŸwj¤wj+zj0zjÐ{jÕ{j€~j…~jü�j¥€jï€jô€j¾ƒjÃjŒ†j‘†j—ˆjœˆjŠjŠjEŒjJŒjLŽjQŽjö8j�jj�jo�j®‘j³‘jð’jõ’jq”jv”jš–jŸ–j˜j ˜jœ™j¡™j›j"›jžœj£œjžj$žj Ÿj¥Ÿj9¢j>¢jÒ¤jפj¥§jª§jYªj^ªj ­j­j7¯j<¯jt±jy±jQ¶jV¶jø·jý·jS¹jX¹j|»j�»j¿j¿jÓÁjØÁjÄjÄjÍÆjÒÆj÷ÈjüÈj×ËjÜËjÕj Õjë×jð×jFÙjKÙj¡Új¦ÚjüÛjÜjÞjÞjàj àj€ãj…ãjªåj¯åj²èj·èj»ëjÀëjïjïjvòj{òjIõjNõj­ùj²ùjþjþjòj÷jEjJj©j®jÓjØj j# jž j£ jžj£jGjLj³j¸jìjñjµjºj6j;jòj÷j/j4jŠj�jn!js!jÝ#jâ#j&j&jš'jŸ'j)j )jÀ+jÅ+jÍ.jÒ.j@3jE3ji5jn5j°cjü8jF9jK9jÛ:jà:jõ<jú<jv>j{>j÷?jü?jxAj}Aj?CjDCjçDjìDjhFjmFjÍIjÒIj÷KjüKj«Nj°Nj_QjdQjàRjåRj»UjÀUj–Xj›Xj�[j•[jC^jH^jë_jð_jlajqaj*wj¶cjñcj÷cjÑhjÖhjèkjíkjŽqj“quŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”(hŒsystem_message”“”)�”}”(hhh]”hÝ)�”}”(hhh]”hŒBHyperlink target "pipes-and-queues-description" is not referenced.”…”�”}”hjÆwsbah}”(h]”h ]”h"]”h$]”h&]”uh1hÜhjÃwubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”hÊŒline”Kouh1jÁwubjÂw)�”}”(hhh]”hÝ)�”}”(hhh]”hŒ;Hyperlink target "amdgpu-memory-domains" is not referenced.”…”�”}”hjáwsbah}”(h]”h ]”h"]”h$]”h&]”uh1hÜhjÞwubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”jÛwŒsource”hÊŒline”K¸uh1jÁwubeŒ transformer”NŒ include_log”]”Œ decoration”Nh²hub.