Ssphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget*/translations/zh_CN/gpu/amdgpu/driver-coremodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/zh_TW/gpu/amdgpu/driver-coremodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/it_IT/gpu/amdgpu/driver-coremodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/ja_JP/gpu/amdgpu/driver-coremodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/ko_KR/gpu/amdgpu/driver-coremodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/sp_SP/gpu/amdgpu/driver-coremodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hCore Driver Infrastructureh]hCore Driver Infrastructure}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhD/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core.rsthKubh)}(hhh](h)}(hGPU Hardware Structureh]hGPU Hardware Structure}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hXEach 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]hXEach 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.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hXAn 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]hXAn 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.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(h9With respect to the GPU, we have the following major IPs:h]h9With respect to the GPU, we have the following major IPs:}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubhdefinition_list)}(hhh](hdefinition_list_item)}(hXGMC (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](hterm)}(h GMC (Graphics Memory Controller)h]h GMC (Graphics Memory Controller)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hhubh definition)}(hhh]h)}(hXThis 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]hXThis 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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjubah}(h]h ]h"]h$]h&]uh1jhhubeh}(h]h ]h"]h$]h&]uh1hhhhK'hhubh)}(hIH (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)}(hIH (Interrupt Handler)h]hIH (Interrupt Handler)}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hj.ubj)}(hhh]h)}(hThis 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]hThis 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.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hj@ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1hhhhK-hhhhubh)}(hPSP (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)}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hj]ubj)}(hhh]h)}(hThis handles security policy for the SoC and executes trusted applications, and validates and loads firmwares for other blocks.h]hThis handles security policy for the SoC and executes trusted applications, and validates and loads firmwares for other blocks.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK0hjoubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1hhhhK1hhhhubh)}(hSMU (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)}(hSMU (System Management Unit)h]hSMU (System Management Unit)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjubj)}(hhh]h)}(hThis 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]hThis 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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhK6hhhhubh)}(hDCN (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)}(hDCN (Display Controller Next)h]hDCN (Display Controller Next)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hjubj)}(hhh]h)}(hThis is the display controller. It handles the display hardware. It is described in more details in :ref:`Display Core `.h](heThis is the display controller. It handles the display hardware. It is described in more details in }(hjhhhNhNubh)}(h):ref:`Display Core `h]hinline)}(hjh]h Display Core}(hjhhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocgpu/amdgpu/driver-core refdomainjreftyperef refexplicitrefwarn reftargetamdgpu-display-coreuh1hhhhK9hjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK9hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhK:hhhhubh)}(hSDMA (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)}(hSDMA (System DMA)h]hSDMA (System DMA)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hjubj)}(hhh]h)}(hThis 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]hThis 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(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK=hj%ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhK@hhhhubh)}(hXGC (Graphics and Compute) This is the graphics and compute engine, i.e., the block that encompasses the 3D pipeline and 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)}(hGC (Graphics and Compute)h]hGC (Graphics and Compute)}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKIhjBubj)}(hhh]h)}(hXThis is the graphics and compute engine, i.e., the block that encompasses the 3D pipeline and 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](hXThis is the graphics and compute engine, i.e., the block that encompasses the 3D pipeline and 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 }(hjWhhhNhNubh)}(h-:ref:`Graphics (GFX) and Compute `h]j)}(hjah]hGraphics (GFX) and Compute}(hjchhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]refdocj refdomainjmreftyperef refexplicitrefwarnj amdgpu-gcuh1hhhhKChjWubh.}(hjWhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKChjTubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1hhhhKIhhhhubh)}(hVCN (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)}(hVCN (Video Core Next)h]hVCN (Video Core Next)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhjubj)}(hhh]h)}(hThis 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]hThis 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.)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKLhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhKNhhhhubeh}(h]h ]h"]h$]h&]uh1hhhhhhhhNubhtarget)}(h!.. _pipes-and-queues-description:h]h}(h]h ]h"]h$]h&]refidpipes-and-queues-descriptionuh1jhKPhhhhhhubeh}(h]gpu-hardware-structureah ]h"]gpu hardware structureah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h'GFX, Compute, and SDMA Overall Behaviorh]h'GFX, Compute, and SDMA Overall Behavior}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKSubhnote)}(haFor simplicity, whenever the term block is used in this section, it means GFX, Compute, and SDMA.h]h)}(haFor simplicity, whenever the term block is used in this section, it means GFX, Compute, and SDMA.h]haFor simplicity, whenever the term block is used in this section, it means GFX, Compute, and SDMA.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKUhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(hGFX, 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]hGFX, 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:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjhhubkfigure kernel_figure)}(hhh]hfigure)}(hhh]himage)}(h2.. kernel-figure:: pipe_and_queue_abstraction.svg h]h}(h]h ]h"]h$]h&]uri)gpu/amdgpu/pipe_and_queue_abstraction.svg candidates}*j1suh1j$hj!hhhKubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhK]ubh)}(hXIn 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](hRIn the central part of this figure, you can see two hardware elements, one called }(hjAhhhNhNubhstrong)}(h **Pipes**h]hPipes}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjAubh and another called }(hjAhhhNhNubjJ)}(h **Queues**h]hQueues}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjAubhX; 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.}(hjAhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK^hjhhubh)}(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.}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKdhjhhubh)}(hPipes 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]hPipes 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:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhjhhubhenumerated_list)}(hhh](h list_item)}(hCommand Stream;h]h)}(hjh]hCommand Stream;}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKnhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(hPacket by Packet;h]h)}(hjh]hPacket by Packet;}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKohjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(h0Other 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).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKphjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]h ]h"]h$]h&]enumtypearabicprefixhsuffix.uh1jhjhhhhhKnubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKrhjhhubh)}(hXThe 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]hXThe 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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK{hjhhubeh}(h](%gfx-compute-and-sdma-overall-behaviorjeh ]h"]('gfx, compute, and sdma overall behaviorpipes-and-queues-descriptioneh$]h&]uh1hhhhhhhhKSexpect_referenced_by_name}j jsexpect_referenced_by_id}jjsubh)}(hhh](h)}(hDriver Structureh]hDriver Structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hIn 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]hIn 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#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hSome useful constructs:h]hSome useful constructs:}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hhh](h)}(hKIQ (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)}(hKIQ (Kernel Interface Queue)h]hKIQ (Kernel Interface Queue)}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjBubj)}(hhh]h)}(hThis 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]hThis 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.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjTubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1hhhhKhj?ubh)}(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)}(hIB (Indirect Buffer)h]hIB (Indirect Buffer)}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjqubj)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1hhhhKhj?hhubeh}(h]h ]h"]h$]h&]uh1hhjhhhhhNubj)}(h.. _amdgpu_memory_domains:h]h}(h]h ]h"]h$]h&]jamdgpu-memory-domainsuh1jhKhjhhhhubeh}(h]driver-structureah ]h"]driver structureah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hMemory Domainsh]hMemory Domains}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(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](hliteral)}(h``AMDGPU_GEM_DOMAIN_CPU``h]hAMDGPU_GEM_DOMAIN_CPU}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhw System memory that is not GPU accessible. Memory in this pool could be swapped out to disk if there is pressure.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:158: ./include/uapi/drm/amdgpu_drm.hhKRhjhhubh)}(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]hAMDGPU_GEM_DOMAIN_GTT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh 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.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:158: ./include/uapi/drm/amdgpu_drm.hhKUhjhhubh)}(hb``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]hAMDGPU_GEM_DOMAIN_VRAM}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhH Local video memory. For APUs, it is memory carved out by the BIOS.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:158: ./include/uapi/drm/amdgpu_drm.hhKZhjhhubh)}(he``AMDGPU_GEM_DOMAIN_GDS`` Global on-chip data storage used to share data across shader threads.h](j)}(h``AMDGPU_GEM_DOMAIN_GDS``h]hAMDGPU_GEM_DOMAIN_GDS}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubhL Global on-chip data storage used to share data across shader threads.}(hj#hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:158: ./include/uapi/drm/amdgpu_drm.hhK]hjhhubh)}(hq``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]hAMDGPU_GEM_DOMAIN_GWS}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubhX Global wave sync, used to synchronize the execution of all the waves on a device.}(hj@hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:158: ./include/uapi/drm/amdgpu_drm.hhK`hjhhubh)}(ha``AMDGPU_GEM_DOMAIN_OA`` Ordered append, used by 3D or Compute engines for appending data.h](j)}(h``AMDGPU_GEM_DOMAIN_OA``h]hAMDGPU_GEM_DOMAIN_OA}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubhI Ordered append, used by 3D or Compute engines for appending data.}(hj]hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:158: ./include/uapi/drm/amdgpu_drm.hhKchjhhubh)}(h_``AMDGPU_GEM_DOMAIN_DOORBELL`` Doorbell. It is an MMIO region for signalling user mode queues.h](j)}(h``AMDGPU_GEM_DOMAIN_DOORBELL``h]hAMDGPU_GEM_DOMAIN_DOORBELL}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubhA Doorbell. It is an MMIO region for signalling user mode queues.}(hjzhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:158: ./include/uapi/drm/amdgpu_drm.hhKfhjhhubeh}(h](memory-domainsjeh ]h"](memory domainsamdgpu_memory_domainseh$]h&]uh1hhhhhhhhKj}jjsj}jjsubh)}(hhh](h)}(hBuffer Objectsh]hBuffer Objects}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hXThis 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 }(hjhhhNhNubh)}(h:c:type:`amdgpu_bo`h]j)}(hjh]h amdgpu_bo}(hjhhhNhNubah}(h]h ](jcc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj amdgpu_bouh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:164: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chK/hjubhX 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.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhK/hjhhubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single#amdgpu_bo_is_amdgpu_bo (C function)c.amdgpu_bo_is_amdgpu_bohNtauh1jhjhhhNhNubhdesc)}(hhh](hdesc_signature)}(h:bool amdgpu_bo_is_amdgpu_bo (struct ttm_buffer_object *bo)h]hdesc_signature_line)}(h9bool amdgpu_bo_is_amdgpu_bo(struct ttm_buffer_object *bo)h](hdesc_sig_keyword_type)}(hboolh]hbool}(hj hhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhjhhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKSubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhKSubh desc_name)}(hamdgpu_bo_is_amdgpu_boh]h desc_sig_name)}(hamdgpu_bo_is_amdgpu_boh]hamdgpu_bo_is_amdgpu_bo}(hj3hhhNhNubah}(h]h ]nah"]h$]h&]uh1j1hj-ubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1j+hjhhhjhKSubhdesc_parameterlist)}(h(struct ttm_buffer_object *bo)h]hdesc_parameter)}(hstruct ttm_buffer_object *boh](hdesc_sig_keyword)}(hstructh]hstruct}(hjZhhhNhNubah}(h]h ]kah"]h$]h&]uh1jXhjTubj)}(h h]h }(hjihhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjTubh)}(hhh]j2)}(httm_buffer_objecth]httm_buffer_object}(hjzhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjwubah}(h]h ]h"]h$]h&] refdomainjreftype identifier reftargetj|modnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jj5sbc.amdgpu_bo_is_amdgpu_boasbuh1hhjTubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjTubhdesc_sig_punctuation)}(hj4h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjTubj2)}(hboh]hbo}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjTubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjNubah}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhKSubeh}(h]h ]h"]h$]h&]jJjK add_permalinkuh1jsphinx_line_type declaratorhjhhhjhKSubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhjhKShjhhubh desc_content)}(hhh]h)}(h4check if the buffer object is an :c:type:`amdgpu_bo`h](h!check if the buffer object is an }(hjhhhNhNubh)}(h:c:type:`amdgpu_bo`h]j)}(hjh]h amdgpu_bo}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]jc.amdgpu_bo_is_amdgpu_boasbj amdgpu_bouh1hhjhKShjubeh}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKShjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKSubeh}(h]h ](jfunctioneh"]h$]h&]domainjobjtypej0desctypej0noindex noindexentrynocontentsentryuh1jhhhjhNhNubh 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]jJ)}(hjBh]h Parameters}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj@ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKWhj<ubh)}(hhh]h)}(h=``struct ttm_buffer_object *bo`` buffer object to be checked h](j)}(h ``struct ttm_buffer_object *bo``h]j)}(hjah]hstruct ttm_buffer_object *bo}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKThj[ubj)}(hhh]h)}(hbuffer object to be checkedh]hbuffer object to be checked}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhKThjwubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1hhjvhKThjXubah}(h]h ]h"]h$]h&]uh1hhj<ubh)}(h**Description**h]jJ)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKVhj<ubh)}(h`Uses destroy function associated with the object to determine if this is an :c:type:`amdgpu_bo`.h](hLUses destroy function associated with the object to determine if this is an }(hjhhhNhNubh)}(h:c:type:`amdgpu_bo`h]j)}(hjh]h amdgpu_bo}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]sbj amdgpu_bouh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKVhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKVhj<ubh)}(h **Return**h]jJ)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKYhj<ubh)}(h@true if the object belongs to :c:type:`amdgpu_bo`, false if not.h](htrue if the object belongs to }(hjhhhNhNubh)}(h:c:type:`amdgpu_bo`h]j)}(hj h]h amdgpu_bo}(hj hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj amdgpu_bouh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKYhjubh, false if not.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj&hKYhj<ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j,amdgpu_bo_placement_from_domain (C function)!c.amdgpu_bo_placement_from_domainhNtauh1jhjhhhNhNubj)}(hhh](j)}(hHvoid amdgpu_bo_placement_from_domain (struct amdgpu_bo *abo, u32 domain)h]j)}(hGvoid amdgpu_bo_placement_from_domain(struct amdgpu_bo *abo, u32 domain)h](j )}(hvoidh]hvoid}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMhhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKfubj)}(h h]h }(hj`hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjMhhhj_hKfubj,)}(hamdgpu_bo_placement_from_domainh]j2)}(hamdgpu_bo_placement_from_domainh]hamdgpu_bo_placement_from_domain}(hjrhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjnubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjMhhhj_hKfubjM)}(h#(struct amdgpu_bo *abo, u32 domain)h](jS)}(hstruct amdgpu_bo *aboh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjtsb!c.amdgpu_bo_placement_from_domainasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(haboh]habo}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(h u32 domainh](h)}(hhh]j2)}(hu32h]hu32}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j!c.amdgpu_bo_placement_from_domainasbuh1hhjubj)}(h h]h }(hj! hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hdomainh]hdomain}(hj/ hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjMhhhj_hKfubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjIhhhj_hKfubah}(h]jDah ](jjeh"]h$]h&]jj)jhuh1jhj_hKfhjFhhubj)}(hhh]h)}(hset buffer's placementh]hset buffer’s placement}(hjY hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKfhjV hhubah}(h]h ]h"]h$]h&]uh1jhjFhhhj_hKfubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jq j6jq j7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hj{ h]h Parameters}(hj} hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjy ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKjhju ubh)}(hhh](h)}(hY``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]hstruct amdgpu_bo *abo}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKghj ubj)}(hhh]h)}(h>:c:type:`amdgpu_bo` buffer object whose placement is to be seth](h)}(h:c:type:`amdgpu_bo`h]j)}(hj h]h amdgpu_bo}(hj hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj amdgpu_bouh1hhj hKghj ubh+ buffer object whose placement is to be set}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hKghj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1hhj hKghj ubh)}(h ``u32 domain`` requested domain h](j)}(h``u32 domain``h]j)}(hj h]h u32 domain}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKhhj ubj)}(hhh]h)}(hrequested domainh]hrequested domain}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1hhj hKhhj ubeh}(h]h ]h"]h$]h&]uh1hhju ubh)}(h**Description**h]jJ)}(hj- h]h Description}(hj/ hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj+ ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKjhju ubh)}(hMSets buffer's placement according to requested domain and the buffer's flags.h]hQSets buffer’s placement according to requested domain and the buffer’s flags.}(hjC hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKjhju ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&amdgpu_bo_create_reserved (C function)c.amdgpu_bo_create_reservedhNtauh1jhjhhhNhNubj)}(hhh](j)}(hint 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]j)}(hint 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](j )}(hinth]hint}(hjr hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn hhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjn hhhj hKubj,)}(hamdgpu_bo_create_reservedh]j2)}(hamdgpu_bo_create_reservedh]hamdgpu_bo_create_reserved}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjn hhhj hKubjM)}(h(struct amdgpu_device *adev, unsigned long size, int align, u32 domain, struct amdgpu_bo **bo_ptr, u64 *gpu_addr, void **cpu_addr)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.amdgpu_bo_create_reservedasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj ubj)}(hj4h]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj2)}(hadevh]hadev}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj ubjS)}(hunsigned long sizeh](j )}(hunsignedh]hunsigned}(hj! hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj/ hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj ubj )}(hlongh]hlong}(hj= hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hjK hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj ubj2)}(hsizeh]hsize}(hjY hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj ubjS)}(h int alignh](j )}(hinth]hint}(hjr hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjn ubj2)}(halignh]halign}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjn ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj ubjS)}(h u32 domainh](h)}(hhh]j2)}(hu32h]hu32}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j c.amdgpu_bo_create_reservedasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj ubj2)}(hdomainh]hdomain}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj ubjS)}(hstruct amdgpu_bo **bo_ptrh](jY)}(hj\h]hstruct}(hj hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj ubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j c.amdgpu_bo_create_reservedasbuh1hhj ubj)}(h h]h }(hj+ hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj ubj)}(hj4h]h*}(hj9 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hj4h]h*}(hjF hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj2)}(hbo_ptrh]hbo_ptr}(hjS hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj ubjS)}(h u64 *gpu_addrh](h)}(hhh]j2)}(hu64h]hu64}(hjo hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjl ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjq modnameN classnameNjj)}j]j c.amdgpu_bo_create_reservedasbuh1hhjh ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjh ubj)}(hj4h]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjh ubj2)}(hgpu_addrh]hgpu_addr}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjh ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj ubjS)}(hvoid **cpu_addrh](j )}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj ubj)}(hj4h]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hj4h]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj2)}(hcpu_addrh]hcpu_addr}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjn hhhj hKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjj hhhj hKubah}(h]je ah ](jjeh"]h$]h&]jj)jhuh1jhj hKhjg hhubj)}(hhh]h)}(h!create reserved BO for kernel useh]h!create reserved BO for kernel use}(hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKhj hhubah}(h]h ]h"]h$]h&]uh1jhjg hhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j9 j6j9 j7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hjC h]h Parameters}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjA ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKhj= ubh)}(hhh](h)}(h4``struct amdgpu_device *adev`` amdgpu device object h](j)}(h``struct amdgpu_device *adev``h]j)}(hjb h]hstruct amdgpu_device *adev}(hjd hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj` ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKhj\ ubj)}(hhh]h)}(hamdgpu device objecth]hamdgpu device object}(hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjw hKhjx ubah}(h]h ]h"]h$]h&]uh1jhj\ ubeh}(h]h ]h"]h$]h&]uh1hhjw hKhjY ubh)}(h+``unsigned long size`` size for the new BO h](j)}(h``unsigned long size``h]j)}(hj h]hunsigned long size}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKhj ubj)}(hhh]h)}(hsize for the new BOh]hsize for the new BO}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1hhj hKhjY ubh)}(h'``int align`` alignment for the new BO h](j)}(h ``int align``h]j)}(hj h]h int align}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKhj ubj)}(hhh]h)}(halignment for the new BOh]halignment for the new BO}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1hhj hKhjY ubh)}(h!``u32 domain`` where to place it h](j)}(h``u32 domain``h]j)}(hj h]h u32 domain}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKhjubj)}(hhh]h)}(hwhere to place ith]hwhere to place it}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hKhj#ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhj"hKhjY ubh)}(hC``struct amdgpu_bo **bo_ptr`` used to initialize BOs in structures h](j)}(h``struct amdgpu_bo **bo_ptr``h]j)}(hjFh]hstruct amdgpu_bo **bo_ptr}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKhj@ubj)}(hhh]h)}(h$used to initialize BOs in structuresh]h$used to initialize BOs in structures}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[hKhj\ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1hhj[hKhjY ubh)}(h,``u64 *gpu_addr`` GPU addr of the pinned BO h](j)}(h``u64 *gpu_addr``h]j)}(hjh]h u64 *gpu_addr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKhjyubj)}(hhh]h)}(hGPU addr of the pinned BOh]hGPU addr of the pinned BO}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1hhjhKhjY ubh)}(h1``void **cpu_addr`` optional CPU address mapping h](j)}(h``void **cpu_addr``h]j)}(hjh]hvoid **cpu_addr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKhjubj)}(hhh]h)}(hoptional CPU address mappingh]hoptional CPU address mapping}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjY ubeh}(h]h ]h"]h$]h&]uh1hhj= ubh)}(h**Description**h]jJ)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKhj= ubh)}(hOAllocates and pins a BO for kernel internal use, and returns it still reserved.h]hOAllocates and pins a BO for kernel internal use, and returns it still reserved.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKhj= ubh)}(h**Note**h]jJ)}(hjh]hNote}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKhj= 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.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKhj= ubh)}(h **Return**h]jJ)}(hjAh]hReturn}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj?ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKhj= ubh)}(h,0 on success, negative error code otherwise.h]h,0 on success, negative error code otherwise.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chKhj= ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'amdgpu_bo_create_kernel_at (C function)c.amdgpu_bo_create_kernel_athNtauh1jhjhhhNhNubj)}(hhh](j)}(hint amdgpu_bo_create_kernel_at (struct amdgpu_device *adev, uint64_t offset, uint64_t size, struct amdgpu_bo **bo_ptr, void **cpu_addr)h]j)}(hint amdgpu_bo_create_kernel_at(struct amdgpu_device *adev, uint64_t offset, uint64_t size, struct amdgpu_bo **bo_ptr, void **cpu_addr)h](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjhhhjhMubj,)}(hamdgpu_bo_create_kernel_ath]j2)}(hamdgpu_bo_create_kernel_ath]hamdgpu_bo_create_kernel_at}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMubjM)}(hh(struct amdgpu_device *adev, uint64_t offset, uint64_t size, struct amdgpu_bo **bo_ptr, void **cpu_addr)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_bo_create_kernel_atasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(huint64_t offseth](h)}(hhh]j2)}(huint64_th]huint64_t}(hj8hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]jc.amdgpu_bo_create_kernel_atasbuh1hhj1ubj)}(h h]h }(hjVhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj1ubj2)}(hoffseth]hoffset}(hjdhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj1ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(h uint64_t sizeh](h)}(hhh]j2)}(huint64_th]huint64_t}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_bo_create_kernel_atasbuh1hhjyubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjyubj2)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjyubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct amdgpu_bo **bo_ptrh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_bo_create_kernel_atasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hbo_ptrh]hbo_ptr}(hj)hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hvoid **cpu_addrh](j )}(hvoidh]hvoid}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(h h]h }(hjPhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj>ubj)}(hj4h]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(hj4h]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj2)}(hcpu_addrh]hcpu_addr}(hjxhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj>ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj~hhhjhMubah}(h]jyah ](jjeh"]h$]h&]jj)jhuh1jhjhMhj{hhubj)}(hhh]h)}(h-create BO for kernel use at specific locationh]h-create BO for kernel use at specific location}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj{hhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubh)}(hhh](h)}(h4``struct amdgpu_device *adev`` amdgpu device object h](j)}(h``struct amdgpu_device *adev``h]j)}(hjh]hstruct amdgpu_device *adev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubj)}(hhh]h)}(hamdgpu device objecth]hamdgpu device object}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubh)}(h%``uint64_t offset`` offset of the BO h](j)}(h``uint64_t offset``h]j)}(hjh]huint64_t offset}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubj)}(hhh]h)}(hoffset of the BOh]hoffset of the BO}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hMhj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhj1hMhjubh)}(h!``uint64_t size`` size of the BO h](j)}(h``uint64_t size``h]j)}(hjUh]h uint64_t size}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjOubj)}(hhh]h)}(hsize of the BOh]hsize of the BO}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhMhjkubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1hhjjhMhjubh)}(hC``struct amdgpu_bo **bo_ptr`` used to initialize BOs in structures h](j)}(h``struct amdgpu_bo **bo_ptr``h]j)}(hjh]hstruct amdgpu_bo **bo_ptr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubj)}(hhh]h)}(h$used to initialize BOs in structuresh]h$used to initialize BOs in structures}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubh)}(h1``void **cpu_addr`` optional CPU address mapping h](j)}(h``void **cpu_addr``h]j)}(hjh]hvoid **cpu_addr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubj)}(hhh]h)}(hoptional CPU address mappingh]hoptional CPU address mapping}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubeh}(h]h ]h"]h$]h&]uh1hhjubh)}(h**Description**h]jJ)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubh)}(h1Creates a kernel BO at a specific offset in VRAM.h]h1Creates a kernel BO at a specific offset in VRAM.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubh)}(h **Return**h]jJ)}(hj)h]hReturn}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj'ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubh)}(h,0 on success, negative error code otherwise.h]h,0 on success, negative error code otherwise.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_bo_create (C function)c.amdgpu_bo_createhNtauh1jhjhhhNhNubj)}(hhh](j)}(hhint amdgpu_bo_create (struct amdgpu_device *adev, struct amdgpu_bo_param *bp, struct amdgpu_bo **bo_ptr)h]j)}(hgint amdgpu_bo_create(struct amdgpu_device *adev, struct amdgpu_bo_param *bp, struct amdgpu_bo **bo_ptr)h](j )}(hinth]hint}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjhhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMjubj)}(h h]h }(hj}hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjjhhhj|hMjubj,)}(hamdgpu_bo_createh]j2)}(hamdgpu_bo_createh]hamdgpu_bo_create}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjjhhhj|hMjubjM)}(hS(struct amdgpu_device *adev, struct amdgpu_bo_param *bp, struct amdgpu_bo **bo_ptr)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_bo_createasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct amdgpu_bo_param *bph](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hj*hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(hamdgpu_bo_paramh]hamdgpu_bo_param}(hj;hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]jc.amdgpu_bo_createasbuh1hhjubj)}(h h]h }(hjYhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hbph]hbp}(hjthhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct amdgpu_bo **bo_ptrh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_bo_createasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hbo_ptrh]hbo_ptr}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjjhhhj|hMjubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjfhhhj|hMjubah}(h]jaah ](jjeh"]h$]h&]jj)jhuh1jhj|hMjhjchhubj)}(hhh]h)}(h+create an :c:type:`amdgpu_bo` buffer objecth](h create an }(hjhhhNhNubh)}(h:c:type:`amdgpu_bo`h]j)}(hj%h]h amdgpu_bo}(hj'hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]jc.amdgpu_bo_createasbj amdgpu_bouh1hhjhKShjubh buffer object}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMjhjhhubah}(h]h ]h"]h$]h&]uh1jhjchhhj|hMjubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j[j6j[j7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hjeh]h Parameters}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjcubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMnhj_ubh)}(hhh](h)}(h4``struct amdgpu_device *adev`` amdgpu device object h](j)}(h``struct amdgpu_device *adev``h]j)}(hjh]hstruct amdgpu_device *adev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMkhj~ubj)}(hhh]h)}(hamdgpu device objecth]hamdgpu device object}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMkhjubah}(h]h ]h"]h$]h&]uh1jhj~ubeh}(h]h ]h"]h$]h&]uh1hhjhMkhj{ubh)}(hK``struct amdgpu_bo_param *bp`` parameters to be used for the buffer object h](j)}(h``struct amdgpu_bo_param *bp``h]j)}(hjh]hstruct amdgpu_bo_param *bp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMlhjubj)}(hhh]h)}(h+parameters to be used for the buffer objecth]h+parameters to be used for the buffer object}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMlhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhMlhj{ubh)}(hC``struct amdgpu_bo **bo_ptr`` pointer to the buffer object pointer h](j)}(h``struct amdgpu_bo **bo_ptr``h]j)}(hjh]hstruct amdgpu_bo **bo_ptr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMmhjubj)}(hhh]h)}(h$pointer to the buffer object pointerh]h$pointer to the buffer object pointer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMmhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhj hMmhj{ubeh}(h]h ]h"]h$]h&]uh1hhj_ubh)}(h**Description**h]jJ)}(hj1h]h Description}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj/ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMohj_ubh)}(h-Creates an :c:type:`amdgpu_bo` buffer object.h](h Creates an }(hjGhhhNhNubh)}(h:c:type:`amdgpu_bo`h]j)}(hjQh]h amdgpu_bo}(hjShhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj amdgpu_bouh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMohjGubh buffer object.}(hjGhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjnhMohj_ubh)}(h **Return**h]jJ)}(hj{h]hReturn}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjyubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMqhj_ubh)}(h20 for success or a negative error code on failure.h]h20 for success or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMqhj_ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"amdgpu_bo_create_user (C function)c.amdgpu_bo_create_userhNtauh1jhjhhhNhNubj)}(hhh](j)}(hsint amdgpu_bo_create_user (struct amdgpu_device *adev, struct amdgpu_bo_param *bp, struct amdgpu_bo_user **ubo_ptr)h]j)}(hrint amdgpu_bo_create_user(struct amdgpu_device *adev, struct amdgpu_bo_param *bp, struct amdgpu_bo_user **ubo_ptr)h](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjhhhjhMubj,)}(hamdgpu_bo_create_userh]j2)}(hamdgpu_bo_create_userh]hamdgpu_bo_create_user}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMubjM)}(hY(struct amdgpu_device *adev, struct amdgpu_bo_param *bp, struct amdgpu_bo_user **ubo_ptr)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_bo_create_userasbuh1hhjubj)}(h h]h }(hj;hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjVhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct amdgpu_bo_param *bph](jY)}(hj\h]hstruct}(hjohhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjkubj)}(h h]h }(hj|hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjkubh)}(hhh]j2)}(hamdgpu_bo_paramh]hamdgpu_bo_param}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j7c.amdgpu_bo_create_userasbuh1hhjkubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjkubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj2)}(hbph]hbp}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjkubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct amdgpu_bo_user **ubo_ptrh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(hamdgpu_bo_userh]hamdgpu_bo_user}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j7c.amdgpu_bo_create_userasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hubo_ptrh]hubo_ptr}(hjChhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]h)}(h0create an :c:type:`amdgpu_bo_user` buffer objecth](h create an }(hjmhhhNhNubh)}(h:c:type:`amdgpu_bo_user`h]j)}(hjwh]hamdgpu_bo_user}(hjyhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]j7c.amdgpu_bo_create_userasbjamdgpu_bo_useruh1hhjhKShjmubh buffer object}(hjmhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubh)}(hhh](h)}(h4``struct amdgpu_device *adev`` amdgpu device object h](j)}(h``struct amdgpu_device *adev``h]j)}(hjh]hstruct amdgpu_device *adev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubj)}(hhh]h)}(hamdgpu device objecth]hamdgpu device object}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubh)}(hK``struct amdgpu_bo_param *bp`` parameters to be used for the buffer object h](j)}(h``struct amdgpu_bo_param *bp``h]j)}(hjh]hstruct amdgpu_bo_param *bp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj ubj)}(hhh]h)}(h+parameters to be used for the buffer objecth]h+parameters to be used for the buffer object}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hMhj%ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1hhj$hMhjubh)}(hI``struct amdgpu_bo_user **ubo_ptr`` pointer to the buffer object pointer h](j)}(h#``struct amdgpu_bo_user **ubo_ptr``h]j)}(hjHh]hstruct amdgpu_bo_user **ubo_ptr}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjBubj)}(hhh]h)}(h$pointer to the buffer object pointerh]h$pointer to the buffer object pointer}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hMhj^ubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1hhj]hMhjubeh}(h]h ]h"]h$]h&]uh1hhjubh)}(h**Description**h]jJ)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubh)}(h+Create a BO to be used by user application;h]h+Create a BO to be used by user application;}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubh)}(h **Return**h]jJ)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubh)}(h20 for success or a negative error code on failure.h]h20 for success or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j amdgpu_bo_create_vm (C function)c.amdgpu_bo_create_vmhNtauh1jhjhhhNhNubj)}(hhh](j)}(hpint amdgpu_bo_create_vm (struct amdgpu_device *adev, struct amdgpu_bo_param *bp, struct amdgpu_bo_vm **vmbo_ptr)h]j)}(hoint amdgpu_bo_create_vm(struct amdgpu_device *adev, struct amdgpu_bo_param *bp, struct amdgpu_bo_vm **vmbo_ptr)h](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjhhhjhM ubj,)}(hamdgpu_bo_create_vmh]j2)}(hamdgpu_bo_create_vmh]hamdgpu_bo_create_vm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhM ubjM)}(hX(struct amdgpu_device *adev, struct amdgpu_bo_param *bp, struct amdgpu_bo_vm **vmbo_ptr)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj,hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj(ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj(ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjJhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjLmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_bo_create_vmasbuh1hhj(ubj)}(h h]h }(hjjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj(ubj)}(hj4h]h*}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj(ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj$ubjS)}(hstruct amdgpu_bo_param *bph](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(hamdgpu_bo_paramh]hamdgpu_bo_param}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jfc.amdgpu_bo_create_vmasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hbph]hbp}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj$ubjS)}(hstruct amdgpu_bo_vm **vmbo_ptrh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj ubh)}(hhh]j2)}(h amdgpu_bo_vmh]h amdgpu_bo_vm}(hj,hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.modnameN classnameNjj)}j]jfc.amdgpu_bo_create_vmasbuh1hhj ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj ubj)}(hj4h]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hj4h]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj2)}(hvmbo_ptrh]hvmbo_ptr}(hjrhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj$ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhM ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhM ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhM hjhhubj)}(hhh]h)}(h.create an :c:type:`amdgpu_bo_vm` buffer objecth](h create an }(hjhhhNhNubh)}(h:c:type:`amdgpu_bo_vm`h]j)}(hjh]h amdgpu_bo_vm}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]jfc.amdgpu_bo_create_vmasbj amdgpu_bo_vmuh1hhjhKShjubh buffer object}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubh)}(hhh](h)}(h4``struct amdgpu_device *adev`` amdgpu device object h](j)}(h``struct amdgpu_device *adev``h]j)}(hjh]hstruct amdgpu_device *adev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM hjubj)}(hhh]h)}(hamdgpu device objecth]hamdgpu device object}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhM hjubh)}(hK``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]hstruct amdgpu_bo_param *bp}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj8ubj)}(hhh]h)}(h+parameters to be used for the buffer objecth]h+parameters to be used for the buffer object}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShMhjTubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1hhjShMhjubh)}(hH``struct amdgpu_bo_vm **vmbo_ptr`` pointer to the buffer object pointer h](j)}(h"``struct amdgpu_bo_vm **vmbo_ptr``h]j)}(hjwh]hstruct amdgpu_bo_vm **vmbo_ptr}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjqubj)}(hhh]h)}(h$pointer to the buffer object pointerh]h$pointer to the buffer object pointer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubeh}(h]h ]h"]h$]h&]uh1hhjubh)}(h**Description**h]jJ)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubh)}(hCreate a BO to be for GPUVM.h]hCreate a BO to be for GPUVM.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubh)}(h **Return**h]jJ)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubh)}(h20 for success or a negative error code on failure.h]h20 for success or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_bo_kmap (C function)c.amdgpu_bo_kmaphNtauh1jhjhhhNhNubj)}(hhh](j)}(h5int amdgpu_bo_kmap (struct amdgpu_bo *bo, void **ptr)h]j)}(h4int amdgpu_bo_kmap(struct amdgpu_bo *bo, void **ptr)h](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM+ubj)}(h h]h }(hj-hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjhhhj,hM+ubj,)}(hamdgpu_bo_kmaph]j2)}(hamdgpu_bo_kmaph]hamdgpu_bo_kmap}(hj?hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj;ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhj,hM+ubjM)}(h"(struct amdgpu_bo *bo, void **ptr)h](jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hj[hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjWubj)}(h h]h }(hjhhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjWubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjyhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjvubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{modnameN classnameNjj)}j]j)}jjAsbc.amdgpu_bo_kmapasbuh1hhjWubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjWubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj2)}(hboh]hbo}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjWubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjSubjS)}(h void **ptrh](j )}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hptrh]hptr}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjSubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhj,hM+ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhj,hM+ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhj,hM+hjhhubj)}(hhh]h)}(h(map an :c:type:`amdgpu_bo` buffer objecth](hmap an }(hj-hhhNhNubh)}(h:c:type:`amdgpu_bo`h]j)}(hj7h]h amdgpu_bo}(hj9hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]jc.amdgpu_bo_kmapasbj amdgpu_bouh1hhjhKShj-ubh buffer object}(hj-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM+hj*hhubah}(h]h ]h"]h$]h&]uh1jhjhhhj,hM+ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jmj6jmj7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hjwh]h Parameters}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjuubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM/hjqubh)}(hhh](h)}(hH``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object to be mapped h](j)}(h``struct amdgpu_bo *bo``h]j)}(hjh]hstruct amdgpu_bo *bo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM,hjubj)}(hhh]h)}(h.:c:type:`amdgpu_bo` buffer object to be mappedh](h)}(h:c:type:`amdgpu_bo`h]j)}(hjh]h amdgpu_bo}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj amdgpu_bouh1hhjhM,hjubh buffer object to be mapped}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhM,hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhM,hjubh)}(h5``void **ptr`` kernel virtual address to be returned h](j)}(h``void **ptr``h]j)}(hjh]h void **ptr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM-hjubj)}(hhh]h)}(h%kernel virtual address to be returnedh]h%kernel virtual address to be returned}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM-hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhM-hjubeh}(h]h ]h"]h$]h&]uh1hhjqubh)}(h**Description**h]jJ)}(hj)h]h Description}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj'ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM/hjqubh)}(hsCalls ttm_bo_kmap() to set up the kernel virtual mapping; calls amdgpu_bo_kptr() to get the kernel virtual address.h]hsCalls ttm_bo_kmap() to set up the kernel virtual mapping; calls amdgpu_bo_kptr() to get the kernel virtual address.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM/hjqubh)}(h **Return**h]jJ)}(hjPh]hReturn}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM2hjqubh)}(h20 for success or a negative error code on failure.h]h20 for success or a negative error code on failure.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM2hjqubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_bo_kptr (C function)c.amdgpu_bo_kptrhNtauh1jhjhhhNhNubj)}(hhh](j)}(h,void * amdgpu_bo_kptr (struct amdgpu_bo *bo)h]j)}(h*void *amdgpu_bo_kptr(struct amdgpu_bo *bo)h](j )}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMTubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjhhhjhMTubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMTubj,)}(hamdgpu_bo_kptrh]j2)}(hamdgpu_bo_kptrh]hamdgpu_bo_kptr}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMTubjM)}(h(struct amdgpu_bo *bo)h]jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_bo_kptrasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hj+ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hboh]hbo}(hj8 hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubah}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMTubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMTubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMThjhhubj)}(hhh]h)}(h5returns a kernel virtual address of the buffer objecth]h5returns a kernel virtual address of the buffer object}(hjb hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMThj_ hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMTubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jz j6jz j7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMXhj~ ubh)}(hhh]h)}(h;``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object h](j)}(h``struct amdgpu_bo *bo``h]j)}(hj h]hstruct amdgpu_bo *bo}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMUhj ubj)}(hhh]h)}(h!:c:type:`amdgpu_bo` buffer objecth](h)}(h:c:type:`amdgpu_bo`h]j)}(hj h]h amdgpu_bo}(hj hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj amdgpu_bouh1hhj hMUhj ubh buffer object}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hMUhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1hhj hMUhj ubah}(h]h ]h"]h$]h&]uh1hhj~ ubh)}(h**Description**h]jJ)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMWhj~ ubh)}(h>Calls ttm_kmap_obj_virtual() to get the kernel virtual addressh]h>Calls ttm_kmap_obj_virtual() to get the kernel virtual address}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMWhj~ ubh)}(h **Return**h]jJ)}(hj$!h]hReturn}(hj&!hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj"!ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMYhj~ ubh)}(h,the virtual address of a buffer object area.h]h,the virtual address of a buffer object area.}(hj:!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMYhj~ ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_bo_kunmap (C function)c.amdgpu_bo_kunmaphNtauh1jhjhhhNhNubj)}(hhh](j)}(h,void amdgpu_bo_kunmap (struct amdgpu_bo *bo)h]j)}(h+void amdgpu_bo_kunmap(struct amdgpu_bo *bo)h](j )}(hvoidh]hvoid}(hji!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje!hhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMdubj)}(h h]h }(hjx!hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhje!hhhjw!hMdubj,)}(hamdgpu_bo_kunmaph]j2)}(hamdgpu_bo_kunmaph]hamdgpu_bo_kunmap}(hj!hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj!ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hje!hhhjw!hMdubjM)}(h(struct amdgpu_bo *bo)h]jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hj!hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj!ubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hj!hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj!ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!modnameN classnameNjj)}j]j)}jj!sbc.amdgpu_bo_kunmapasbuh1hhj!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj!ubj)}(hj4h]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj2)}(hboh]hbo}(hj!hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj!ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj!ubah}(h]h ]h"]h$]h&]jJjKuh1jLhje!hhhjw!hMdubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhja!hhhjw!hMdubah}(h]j\!ah ](jjeh"]h$]h&]jj)jhuh1jhjw!hMdhj^!hhubj)}(hhh]h)}(h*unmap an :c:type:`amdgpu_bo` buffer objecth](h unmap an }(hj)"hhhNhNubh)}(h:c:type:`amdgpu_bo`h]j)}(hj3"h]h amdgpu_bo}(hj5"hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj1"ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]j!c.amdgpu_bo_kunmapasbj amdgpu_bouh1hhjhKShj)"ubh buffer object}(hj)"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMdhj&"hhubah}(h]h ]h"]h$]h&]uh1jhj^!hhhjw!hMdubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5ji"j6ji"j7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hjs"h]h Parameters}(hju"hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjq"ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhhjm"ubh)}(hhh]h)}(hJ``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object to be unmapped h](j)}(h``struct amdgpu_bo *bo``h]j)}(hj"h]hstruct amdgpu_bo *bo}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMehj"ubj)}(hhh]h)}(h0:c:type:`amdgpu_bo` buffer object to be unmappedh](h)}(h:c:type:`amdgpu_bo`h]j)}(hj"h]h amdgpu_bo}(hj"hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj amdgpu_bouh1hhj"hMehj"ubh buffer object to be unmapped}(hj"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj"hMehj"ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1hhj"hMehj"ubah}(h]h ]h"]h$]h&]uh1hhjm"ubh)}(h**Description**h]jJ)}(hj"h]h Description}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj"ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMghjm"ubh)}(h/Unmaps a kernel map set up by amdgpu_bo_kmap().h]h/Unmaps a kernel map set up by amdgpu_bo_kmap().}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMghjm"ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_bo_ref (C function)c.amdgpu_bo_refhNtauh1jhjhhhNhNubj)}(hhh](j)}(h7struct amdgpu_bo * amdgpu_bo_ref (struct amdgpu_bo *bo)h]j)}(h5struct amdgpu_bo *amdgpu_bo_ref(struct amdgpu_bo *bo)h](jY)}(hj\h]hstruct}(hj1#hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj-#hhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMpubj)}(h h]h }(hj?#hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj-#hhhj>#hMpubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjP#hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjM#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjR#modnameN classnameNjj)}j]j)}j amdgpu_bo_refsbc.amdgpu_bo_refasbuh1hhj-#hhhj>#hMpubj)}(h h]h }(hjq#hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj-#hhhj>#hMpubj)}(hj4h]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-#hhhj>#hMpubj,)}(h amdgpu_bo_refh]j2)}(hjn#h]h amdgpu_bo_ref}(hj#hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj#ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj-#hhhj>#hMpubjM)}(h(struct amdgpu_bo *bo)h]jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hj#hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj#ubj)}(h h]h }(hj#hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj#ubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hj#hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#modnameN classnameNjj)}j]jl#c.amdgpu_bo_refasbuh1hhj#ubj)}(h h]h }(hj#hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj#ubj)}(hj4h]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj2)}(hboh]hbo}(hj$hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj#ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj#ubah}(h]h ]h"]h$]h&]jJjKuh1jLhj-#hhhj>#hMpubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj)#hhhj>#hMpubah}(h]j$#ah ](jjeh"]h$]h&]jj)jhuh1jhj>#hMphj&#hhubj)}(hhh]h)}(h.reference an :c:type:`amdgpu_bo` buffer objecth](h reference an }(hj,$hhhNhNubh)}(h:c:type:`amdgpu_bo`h]j)}(hj6$h]h amdgpu_bo}(hj8$hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj4$ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]jl#c.amdgpu_bo_refasbj amdgpu_bouh1hhjhKShj,$ubh buffer object}(hj,$hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMphj)$hhubah}(h]h ]h"]h$]h&]uh1jhj&#hhhj>#hMpubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jl$j6jl$j7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hjv$h]h Parameters}(hjx$hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjt$ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMthjp$ubh)}(hhh]h)}(h;``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object h](j)}(h``struct amdgpu_bo *bo``h]j)}(hj$h]hstruct amdgpu_bo *bo}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMqhj$ubj)}(hhh]h)}(h!:c:type:`amdgpu_bo` buffer objecth](h)}(h:c:type:`amdgpu_bo`h]j)}(hj$h]h amdgpu_bo}(hj$hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj amdgpu_bouh1hhj$hMqhj$ubh buffer object}(hj$hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj$hMqhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1hhj$hMqhj$ubah}(h]h ]h"]h$]h&]uh1hhjp$ubh)}(h**Description**h]jJ)}(hj$h]h Description}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj$ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMshjp$ubh)}(h5References the contained :c:type:`ttm_buffer_object`.h](hReferences the contained }(hj%hhhNhNubh)}(h:c:type:`ttm_buffer_object`h]j)}(hj%h]httm_buffer_object}(hj%hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj %ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjttm_buffer_objectuh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMshj%ubh.}(hj%hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj,%hMshjp$ubh)}(h **Return**h]jJ)}(hj9%h]hReturn}(hj;%hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj7%ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMuhjp$ubh)}(h>a refcounted pointer to the :c:type:`amdgpu_bo` buffer object.h](ha refcounted pointer to the }(hjO%hhhNhNubh)}(h:c:type:`amdgpu_bo`h]j)}(hjY%h]h amdgpu_bo}(hj[%hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjW%ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj amdgpu_bouh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMuhjO%ubh buffer object.}(hjO%hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjv%hMuhjp$ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_bo_unref (C function)c.amdgpu_bo_unrefhNtauh1jhjhhhNhNubj)}(hhh](j)}(h,void amdgpu_bo_unref (struct amdgpu_bo **bo)h]j)}(h+void amdgpu_bo_unref(struct amdgpu_bo **bo)h](j )}(hvoidh]hvoid}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%hhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMubj)}(h h]h }(hj%hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj%hhhj%hMubj,)}(hamdgpu_bo_unrefh]j2)}(hamdgpu_bo_unrefh]hamdgpu_bo_unref}(hj%hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj%ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj%hhhj%hMubjM)}(h(struct amdgpu_bo **bo)h]jS)}(hstruct amdgpu_bo **boh](jY)}(hj\h]hstruct}(hj%hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj%ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj%ubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hj%hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%modnameN classnameNjj)}j]j)}jj%sbc.amdgpu_bo_unrefasbuh1hhj%ubj)}(h h]h }(hj&hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj%ubj)}(hj4h]h*}(hj*&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj)}(hj4h]h*}(hj7&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj2)}(hboh]hbo}(hjD&hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj%ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj%ubah}(h]h ]h"]h$]h&]jJjKuh1jLhj%hhhj%hMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj%hhhj%hMubah}(h]j%ah ](jjeh"]h$]h&]jj)jhuh1jhj%hMhj%hhubj)}(hhh]h)}(h0unreference an :c:type:`amdgpu_bo` buffer objecth](hunreference an }(hjn&hhhNhNubh)}(h:c:type:`amdgpu_bo`h]j)}(hjx&h]h amdgpu_bo}(hjz&hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjv&ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]j&c.amdgpu_bo_unrefasbj amdgpu_bouh1hhjhKShjn&ubh buffer object}(hjn&hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjk&hhubah}(h]h ]h"]h$]h&]uh1jhj%hhhj%hMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j&j6j&j7j8j9uh1jhhhjhNhNubj;)}(h**Parameters** ``struct amdgpu_bo **bo`` :c:type:`amdgpu_bo` buffer object **Description** Unreferences the contained :c:type:`ttm_buffer_object` and clear the pointerh](h)}(h**Parameters**h]jJ)}(hj&h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj&ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj&ubh)}(hhh]h)}(h<``struct amdgpu_bo **bo`` :c:type:`amdgpu_bo` buffer object h](j)}(h``struct amdgpu_bo **bo``h]j)}(hj&h]hstruct amdgpu_bo **bo}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj&ubj)}(hhh]h)}(h!:c:type:`amdgpu_bo` buffer objecth](h)}(h:c:type:`amdgpu_bo`h]j)}(hj&h]h amdgpu_bo}(hj&hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj amdgpu_bouh1hhj&hMhj&ubh buffer object}(hj&hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj&hMhj&ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1hhj&hMhj&ubah}(h]h ]h"]h$]h&]uh1hhj&ubh)}(h**Description**h]jJ)}(hj1'h]h Description}(hj3'hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj/'ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj&ubh)}(hLUnreferences the contained :c:type:`ttm_buffer_object` and clear the pointerh](hUnreferences the contained }(hjG'hhhNhNubh)}(h:c:type:`ttm_buffer_object`h]j)}(hjQ'h]httm_buffer_object}(hjS'hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjO'ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjttm_buffer_objectuh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjG'ubh and clear the pointer}(hjG'hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjn'hMhj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_bo_pin (C function)c.amdgpu_bo_pinhNtauh1jhjhhhNhNubj)}(hhh](j)}(h4int amdgpu_bo_pin (struct amdgpu_bo *bo, u32 domain)h]j)}(h3int amdgpu_bo_pin(struct amdgpu_bo *bo, u32 domain)h](j )}(hinth]hint}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'hhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMubj)}(h h]h }(hj'hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj'hhhj'hMubj,)}(h amdgpu_bo_pinh]j2)}(h amdgpu_bo_pinh]h amdgpu_bo_pin}(hj'hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj'ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj'hhhj'hMubjM)}(h"(struct amdgpu_bo *bo, u32 domain)h](jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hj'hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]j'a h"]h$]h&]uh1jhj'ubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hj'hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]j)}jj'sbc.amdgpu_bo_pinasbuh1hhj'ubj)}(h h]h }(hj(hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj'ubj)}(hj4h]h*}(hj"(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj2)}(hboh]hbo}(hj/(hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj'ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj'ubjS)}(h u32 domainh](h)}(hhh]j2)}(hu32h]hu32}(hjK(hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjH(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjM(modnameN classnameNjj)}j]j(c.amdgpu_bo_pinasbuh1hhjD(ubj)}(h h]h }(hji(hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjD(ubj2)}(hdomainh]hdomain}(hjw(hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjD(ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj'ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj'hhhj'hMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj'hhhj'hMubah}(h]j'ah ](jjeh"]h$]h&]jj)jhuh1jhj'hMhj'hhubj)}(hhh]h)}(h(pin an :c:type:`amdgpu_bo` buffer objecth](hpin an }(hj(hhhNhNubh)}(h:c:type:`amdgpu_bo`h]j)}(hj(h]h amdgpu_bo}(hj(hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]j(c.amdgpu_bo_pinasbj amdgpu_bouh1hhjhKShj(ubh buffer object}(hj(hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj(hhubah}(h]h ]h"]h$]h&]uh1jhj'hhhj'hMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j(j6j(j7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hj(h]h Parameters}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj(ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj(ubh)}(hhh](h)}(hH``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object to be pinned h](j)}(h``struct amdgpu_bo *bo``h]j)}(hj )h]hstruct amdgpu_bo *bo}(hj )hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj)ubj)}(hhh]h)}(h.:c:type:`amdgpu_bo` buffer object to be pinnedh](h)}(h:c:type:`amdgpu_bo`h]j)}(hj))h]h amdgpu_bo}(hj+)hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj')ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj amdgpu_bouh1hhj)hMhj#)ubh buffer object to be pinned}(hj#)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj)hMhj )ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1hhj)hMhj)ubh)}(h&``u32 domain`` domain to be pinned to h](j)}(h``u32 domain``h]j)}(hjb)h]h u32 domain}(hjd)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`)ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj\)ubj)}(hhh]h)}(hdomain to be pinned toh]hdomain to be pinned to}(hj{)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjw)hMhjx)ubah}(h]h ]h"]h$]h&]uh1jhj\)ubeh}(h]h ]h"]h$]h&]uh1hhjw)hMhj)ubeh}(h]h ]h"]h$]h&]uh1hhj(ubh)}(h**Description**h]jJ)}(hj)h]h Description}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj)ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj(ubh)}(hPins 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]hPins 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)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj(ubh)}(hPinning 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]hPinning 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)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj(ubh)}(h **Return**h]jJ)}(hj)h]hReturn}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj)ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj(ubh)}(h20 for success or a negative error code on failure.h]h20 for success or a negative error code on failure.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj(ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_bo_unpin (C function)c.amdgpu_bo_unpinhNtauh1jhjhhhNhNubj)}(hhh](j)}(h+void amdgpu_bo_unpin (struct amdgpu_bo *bo)h]j)}(h*void amdgpu_bo_unpin(struct amdgpu_bo *bo)h](j )}(hvoidh]hvoid}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*hhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMubj)}(h h]h }(hj'*hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj*hhhj&*hMubj,)}(hamdgpu_bo_unpinh]j2)}(hamdgpu_bo_unpinh]hamdgpu_bo_unpin}(hj9*hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj5*ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj*hhhj&*hMubjM)}(h(struct amdgpu_bo *bo)h]jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hjU*hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjQ*ubj)}(h h]h }(hjb*hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjQ*ubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjs*hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjp*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetju*modnameN classnameNjj)}j]j)}jj;*sbc.amdgpu_bo_unpinasbuh1hhjQ*ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjQ*ubj)}(hj4h]h*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQ*ubj2)}(hboh]hbo}(hj*hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjQ*ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjM*ubah}(h]h ]h"]h$]h&]jJjKuh1jLhj*hhhj&*hMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj*hhhj&*hMubah}(h]j *ah ](jjeh"]h$]h&]jj)jhuh1jhj&*hMhj *hhubj)}(hhh]h)}(h*unpin an :c:type:`amdgpu_bo` buffer objecth](h unpin an }(hj*hhhNhNubh)}(h:c:type:`amdgpu_bo`h]j)}(hj*h]h amdgpu_bo}(hj*hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]j*c.amdgpu_bo_unpinasbj amdgpu_bouh1hhjhKShj*ubh buffer object}(hj*hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj*hhubah}(h]h ]h"]h$]h&]uh1jhj *hhhj&*hMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j+j6j+j7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hj"+h]h Parameters}(hj$+hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj +ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj+ubh)}(hhh]h)}(hJ``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object to be unpinned h](j)}(h``struct amdgpu_bo *bo``h]j)}(hjA+h]hstruct amdgpu_bo *bo}(hjC+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?+ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj;+ubj)}(hhh]h)}(h0:c:type:`amdgpu_bo` buffer object to be unpinnedh](h)}(h:c:type:`amdgpu_bo`h]j)}(hj`+h]h amdgpu_bo}(hjb+hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj^+ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj amdgpu_bouh1hhjV+hMhjZ+ubh buffer object to be unpinned}(hjZ+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjV+hMhjW+ubah}(h]h ]h"]h$]h&]uh1jhj;+ubeh}(h]h ]h"]h$]h&]uh1hhjV+hMhj8+ubah}(h]h ]h"]h$]h&]uh1hhj+ubh)}(h**Description**h]jJ)}(hj+h]h Description}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj+ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj+ubh)}(hqDecreases the pin_count, and clears the flags if pin_count reaches 0. Changes placement and pin size accordingly.h]hqDecreases the pin_count, and clears the flags if pin_count reaches 0. Changes placement and pin size accordingly.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj+ubh)}(h **Return**h]jJ)}(hj+h]hReturn}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj+ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj+ubh)}(h20 for success or a negative error code on failure.h]h20 for success or a negative error code on failure.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj+ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_bo_init (C function)c.amdgpu_bo_inithNtauh1jhjhhhNhNubj)}(hhh](j)}(h/int amdgpu_bo_init (struct amdgpu_device *adev)h]j)}(h.int amdgpu_bo_init(struct amdgpu_device *adev)h](j )}(hinth]hint}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,hhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMubj)}(h h]h }(hj,hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj,hhhj,hMubj,)}(hamdgpu_bo_inith]j2)}(hamdgpu_bo_inith]hamdgpu_bo_init}(hj(,hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj$,ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj,hhhj,hMubjM)}(h(struct amdgpu_device *adev)h]jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjD,hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj@,ubj)}(h h]h }(hjQ,hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj@,ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjb,hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj_,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjd,modnameN classnameNjj)}j]j)}jj*,sbc.amdgpu_bo_initasbuh1hhj@,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj@,ubj)}(hj4h]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@,ubj2)}(hadevh]hadev}(hj,hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj@,ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj<,ubah}(h]h ]h"]h$]h&]jJjKuh1jLhj,hhhj,hMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj+hhhj,hMubah}(h]j+ah ](jjeh"]h$]h&]jj)jhuh1jhj,hMhj+hhubj)}(hhh]h)}(hinitialize memory managerh]hinitialize memory manager}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj,hhubah}(h]h ]h"]h$]h&]uh1jhj+hhhj,hMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j,j6j,j7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hj,h]h Parameters}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj,ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM hj,ubh)}(hhh]h)}(h4``struct amdgpu_device *adev`` amdgpu device object h](j)}(h``struct amdgpu_device *adev``h]j)}(hj-h]hstruct amdgpu_device *adev}(hj -hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj-ubj)}(hhh]h)}(hamdgpu device objecth]hamdgpu device object}(hj!-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hMhj-ubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1hhj-hMhj,ubah}(h]h ]h"]h$]h&]uh1hhj,ubh)}(h**Description**h]jJ)}(hjC-h]h Description}(hjE-hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjA-ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj,ubh)}(hah"]h$]h&]uh1j1hj-ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj-hhhj-hM?ubjM)}(h(struct amdgpu_device *adev)h]jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj-hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj-ubj)}(h h]h }(hj-hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj-ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj .hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj .modnameN classnameNjj)}j]j)}jj-sbc.amdgpu_bo_finiasbuh1hhj-ubj)}(h h]h }(hj*.hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj-ubj)}(hj4h]h*}(hj8.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj2)}(hadevh]hadev}(hjE.hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj-ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj-ubah}(h]h ]h"]h$]h&]jJjKuh1jLhj-hhhj-hM?ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj-hhhj-hM?ubah}(h]j-ah ](jjeh"]h$]h&]jj)jhuh1jhj-hM?hj-hhubj)}(hhh]h)}(htear down memory managerh]htear down memory manager}(hjo.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM?hjl.hhubah}(h]h ]h"]h$]h&]uh1jhj-hhhj-hM?ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j.j6j.j7j8j9uh1jhhhjhNhNubj;)}(h**Parameters** ``struct amdgpu_device *adev`` amdgpu device object **Description** Reverses amdgpu_bo_init() to tear down memory manager.h](h)}(h**Parameters**h]jJ)}(hj.h]h Parameters}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj.ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMChj.ubh)}(hhh]h)}(h4``struct amdgpu_device *adev`` amdgpu device object h](j)}(h``struct amdgpu_device *adev``h]j)}(hj.h]hstruct amdgpu_device *adev}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM@hj.ubj)}(hhh]h)}(hamdgpu device objecth]hamdgpu device object}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.hM@hj.ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1hhj.hM@hj.ubah}(h]h ]h"]h$]h&]uh1hhj.ubh)}(h**Description**h]jJ)}(hj.h]h Description}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj.ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMBhj.ubh)}(h6Reverses amdgpu_bo_init() to tear down memory manager.h]h6Reverses amdgpu_bo_init() to tear down memory manager.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMBhj.ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'amdgpu_bo_set_tiling_flags (C function)c.amdgpu_bo_set_tiling_flagshNtauh1jhjhhhNhNubj)}(hhh](j)}(hGint amdgpu_bo_set_tiling_flags (struct amdgpu_bo *bo, u64 tiling_flags)h]j)}(hFint amdgpu_bo_set_tiling_flags(struct amdgpu_bo *bo, u64 tiling_flags)h](j )}(hinth]hint}(hj0/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,/hhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMTubj)}(h h]h }(hj?/hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj,/hhhj>/hMTubj,)}(hamdgpu_bo_set_tiling_flagsh]j2)}(hamdgpu_bo_set_tiling_flagsh]hamdgpu_bo_set_tiling_flags}(hjQ/hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjM/ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj,/hhhj>/hMTubjM)}(h((struct amdgpu_bo *bo, u64 tiling_flags)h](jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hjm/hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhji/ubj)}(h h]h }(hjz/hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhji/ubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hj/hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]j)}jjS/sbc.amdgpu_bo_set_tiling_flagsasbuh1hhji/ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhji/ubj)}(hj4h]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhji/ubj2)}(hboh]hbo}(hj/hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hji/ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhje/ubjS)}(hu64 tiling_flagsh](h)}(hhh]j2)}(hu64h]hu64}(hj/hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]j/c.amdgpu_bo_set_tiling_flagsasbuh1hhj/ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj/ubj2)}(h tiling_flagsh]h tiling_flags}(hj0hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj/ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhje/ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj,/hhhj>/hMTubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj(/hhhj>/hMTubah}(h]j#/ah ](jjeh"]h$]h&]jj)jhuh1jhj>/hMThj%/hhubj)}(hhh]h)}(hset tiling flagsh]hset tiling flags}(hj80hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMThj50hhubah}(h]h ]h"]h$]h&]uh1jhj%/hhhj>/hMTubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jP0j6jP0j7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hjZ0h]h Parameters}(hj\0hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjX0ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMXhjT0ubh)}(hhh](h)}(h;``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object h](j)}(h``struct amdgpu_bo *bo``h]j)}(hjy0h]hstruct amdgpu_bo *bo}(hj{0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjw0ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMUhjs0ubj)}(hhh]h)}(h!:c:type:`amdgpu_bo` buffer objecth](h)}(h:c:type:`amdgpu_bo`h]j)}(hj0h]h amdgpu_bo}(hj0hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj amdgpu_bouh1hhj0hMUhj0ubh buffer object}(hj0hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj0hMUhj0ubah}(h]h ]h"]h$]h&]uh1jhjs0ubeh}(h]h ]h"]h$]h&]uh1hhj0hMUhjp0ubh)}(h``u64 tiling_flags`` new flags h](j)}(h``u64 tiling_flags``h]j)}(hj0h]hu64 tiling_flags}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMVhj0ubj)}(hhh]h)}(h new flagsh]h new flags}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hMVhj0ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1hhj0hMVhjp0ubeh}(h]h ]h"]h$]h&]uh1hhjT0ubh)}(h**Description**h]jJ)}(hj 1h]h Description}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj 1ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMXhjT0ubh)}(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"1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMXhjT0ubh)}(h **Return**h]jJ)}(hj31h]hReturn}(hj51hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj11ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM[hjT0ubh)}(h20 for success or a negative error code on failure.h]h20 for success or a negative error code on failure.}(hjI1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM[hjT0ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'amdgpu_bo_get_tiling_flags (C function)c.amdgpu_bo_get_tiling_flagshNtauh1jhjhhhNhNubj)}(hhh](j)}(hIvoid amdgpu_bo_get_tiling_flags (struct amdgpu_bo *bo, u64 *tiling_flags)h]j)}(hHvoid amdgpu_bo_get_tiling_flags(struct amdgpu_bo *bo, u64 *tiling_flags)h](j )}(hvoidh]hvoid}(hjx1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjt1hhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMnubj)}(h h]h }(hj1hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjt1hhhj1hMnubj,)}(hamdgpu_bo_get_tiling_flagsh]j2)}(hamdgpu_bo_get_tiling_flagsh]hamdgpu_bo_get_tiling_flags}(hj1hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj1ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjt1hhhj1hMnubjM)}(h)(struct amdgpu_bo *bo, u64 *tiling_flags)h](jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hj1hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj1ubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hj1hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1modnameN classnameNjj)}j]j)}jj1sbc.amdgpu_bo_get_tiling_flagsasbuh1hhj1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj1ubj)}(hj4h]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj2)}(hboh]hbo}(hj2hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj1ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj1ubjS)}(hu64 *tiling_flagsh](h)}(hhh]j2)}(hu64h]hu64}(hj*2hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj'2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,2modnameN classnameNjj)}j]j1c.amdgpu_bo_get_tiling_flagsasbuh1hhj#2ubj)}(h h]h }(hjH2hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj#2ubj)}(hj4h]h*}(hjV2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#2ubj2)}(h tiling_flagsh]h tiling_flags}(hjc2hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj#2ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj1ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjt1hhhj1hMnubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjp1hhhj1hMnubah}(h]jk1ah ](jjeh"]h$]h&]jj)jhuh1jhj1hMnhjm1hhubj)}(hhh]h)}(hget tiling flagsh]hget tiling flags}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMnhj2hhubah}(h]h ]h"]h$]h&]uh1jhjm1hhhj1hMnubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j2j6j2j7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hj2h]h Parameters}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj2ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMrhj2ubh)}(hhh](h)}(h;``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object h](j)}(h``struct amdgpu_bo *bo``h]j)}(hj2h]hstruct amdgpu_bo *bo}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMohj2ubj)}(hhh]h)}(h!:c:type:`amdgpu_bo` buffer objecth](h)}(h:c:type:`amdgpu_bo`h]j)}(hj2h]h amdgpu_bo}(hj2hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj amdgpu_bouh1hhj2hMohj2ubh buffer object}(hj2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj2hMohj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1hhj2hMohj2ubh)}(h%``u64 *tiling_flags`` returned flags h](j)}(h``u64 *tiling_flags``h]j)}(hj&3h]hu64 *tiling_flags}(hj(3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$3ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMphj 3ubj)}(hhh]h)}(hreturned flagsh]hreturned flags}(hj?3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;3hMphj<3ubah}(h]h ]h"]h$]h&]uh1jhj 3ubeh}(h]h ]h"]h$]h&]uh1hhj;3hMphj2ubeh}(h]h ]h"]h$]h&]uh1hhj2ubh)}(h**Description**h]jJ)}(hja3h]h Description}(hjc3hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj_3ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMrhj2ubh)}(hjGets buffer object's tiling flags. Used by GEM ioctl or kernel driver to set the tiling flags on a buffer.h]hlGets buffer object’s tiling flags. Used by GEM ioctl or kernel driver to set the tiling flags on a buffer.}(hjw3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMrhj2ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#amdgpu_bo_set_metadata (C function)c.amdgpu_bo_set_metadatahNtauh1jhjhhhNhNubj)}(hhh](j)}(hdint amdgpu_bo_set_metadata (struct amdgpu_bo *bo, void *metadata, u32 metadata_size, uint64_t flags)h]j)}(hcint amdgpu_bo_set_metadata(struct amdgpu_bo *bo, void *metadata, u32 metadata_size, uint64_t flags)h](j )}(hinth]hint}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3hhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMubj)}(h h]h }(hj3hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj3hhhj3hMubj,)}(hamdgpu_bo_set_metadatah]j2)}(hamdgpu_bo_set_metadatah]hamdgpu_bo_set_metadata}(hj3hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj3ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj3hhhj3hMubjM)}(hI(struct amdgpu_bo *bo, void *metadata, u32 metadata_size, uint64_t flags)h](jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hj3hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj3ubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hj4hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j)}jj3sbc.amdgpu_bo_set_metadataasbuh1hhj3ubj)}(h h]h }(hj!4hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj3ubj)}(hj4h]h*}(hj/4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj2)}(hboh]hbo}(hj<4hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj3ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj3ubjS)}(hvoid *metadatah](j )}(hvoidh]hvoid}(hjU4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQ4ubj)}(h h]h }(hjc4hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjQ4ubj)}(hj4h]h*}(hjq4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQ4ubj2)}(hmetadatah]hmetadata}(hj~4hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjQ4ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj3ubjS)}(hu32 metadata_sizeh](h)}(hhh]j2)}(hu32h]hu32}(hj4hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j4c.amdgpu_bo_set_metadataasbuh1hhj4ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj4ubj2)}(h metadata_sizeh]h metadata_size}(hj4hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj4ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj3ubjS)}(huint64_t flagsh](h)}(hhh]j2)}(huint64_th]huint64_t}(hj4hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j4c.amdgpu_bo_set_metadataasbuh1hhj4ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj4ubj2)}(hflagsh]hflags}(hj5hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj4ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj3ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj3hhhj3hMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj3hhhj3hMubah}(h]j3ah ](jjeh"]h$]h&]jj)jhuh1jhj3hMhj3hhubj)}(hhh]h)}(h set metadatah]h set metadata}(hj85hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj55hhubah}(h]h ]h"]h$]h&]uh1jhj3hhhj3hMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jP5j6jP5j7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hjZ5h]h Parameters}(hj\5hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjX5ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjT5ubh)}(hhh](h)}(h;``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object h](j)}(h``struct amdgpu_bo *bo``h]j)}(hjy5h]hstruct amdgpu_bo *bo}(hj{5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjw5ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjs5ubj)}(hhh]h)}(h!:c:type:`amdgpu_bo` buffer objecth](h)}(h:c:type:`amdgpu_bo`h]j)}(hj5h]h amdgpu_bo}(hj5hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj amdgpu_bouh1hhj5hMhj5ubh buffer object}(hj5hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj5hMhj5ubah}(h]h ]h"]h$]h&]uh1jhjs5ubeh}(h]h ]h"]h$]h&]uh1hhj5hMhjp5ubh)}(h ``void *metadata`` new metadata h](j)}(h``void *metadata``h]j)}(hj5h]hvoid *metadata}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj5ubj)}(hhh]h)}(h new metadatah]h new metadata}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hMhj5ubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1hhj5hMhjp5ubh)}(h/``u32 metadata_size`` size of the new metadata h](j)}(h``u32 metadata_size``h]j)}(hj 6h]hu32 metadata_size}(hj 6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj6ubj)}(hhh]h)}(hsize of the new metadatah]hsize of the new metadata}(hj#6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hMhj 6ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1hhj6hMhjp5ubh)}(h-``uint64_t flags`` flags of the new metadata h](j)}(h``uint64_t flags``h]j)}(hjC6h]huint64_t flags}(hjE6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjA6ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj=6ubj)}(hhh]h)}(hflags of the new metadatah]hflags of the new metadata}(hj\6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjX6hMhjY6ubah}(h]h ]h"]h$]h&]uh1jhj=6ubeh}(h]h ]h"]h$]h&]uh1hhjX6hMhjp5ubeh}(h]h ]h"]h$]h&]uh1hhjT5ubh)}(h**Description**h]jJ)}(hj~6h]h Description}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj|6ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjT5ubh)}(hFSets buffer object's metadata, its size and flags. Used via GEM ioctl.h]hHSets buffer object’s metadata, its size and flags. Used via GEM ioctl.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjT5ubh)}(h **Return**h]jJ)}(hj6h]hReturn}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj6ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjT5ubh)}(h20 for success or a negative error code on failure.h]h20 for success or a negative error code on failure.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjT5ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#amdgpu_bo_get_metadata (C function)c.amdgpu_bo_get_metadatahNtauh1jhjhhhNhNubj)}(hhh](j)}(h}int amdgpu_bo_get_metadata (struct amdgpu_bo *bo, void *buffer, size_t buffer_size, uint32_t *metadata_size, uint64_t *flags)h]j)}(h|int amdgpu_bo_get_metadata(struct amdgpu_bo *bo, void *buffer, size_t buffer_size, uint32_t *metadata_size, uint64_t *flags)h](j )}(hinth]hint}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6hhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMubj)}(h h]h }(hj6hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj6hhhj6hMubj,)}(hamdgpu_bo_get_metadatah]j2)}(hamdgpu_bo_get_metadatah]hamdgpu_bo_get_metadata}(hj 7hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj7ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj6hhhj6hMubjM)}(hb(struct amdgpu_bo *bo, void *buffer, size_t buffer_size, uint32_t *metadata_size, uint64_t *flags)h](jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hj'7hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj#7ubj)}(h h]h }(hj47hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj#7ubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjE7hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjB7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjG7modnameN classnameNjj)}j]j)}jj 7sbc.amdgpu_bo_get_metadataasbuh1hhj#7ubj)}(h h]h }(hje7hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj#7ubj)}(hj4h]h*}(hjs7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#7ubj2)}(hboh]hbo}(hj7hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj#7ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj7ubjS)}(h void *bufferh](j )}(hvoidh]hvoid}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj7ubj)}(hj4h]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj2)}(hbufferh]hbuffer}(hj7hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj7ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj7ubjS)}(hsize_t buffer_sizeh](h)}(hhh]j2)}(hsize_th]hsize_t}(hj7hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]ja7c.amdgpu_bo_get_metadataasbuh1hhj7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj7ubj2)}(h buffer_sizeh]h buffer_size}(hj 8hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj7ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj7ubjS)}(huint32_t *metadata_sizeh](h)}(hhh]j2)}(huint32_th]huint32_t}(hj&8hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj#8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(8modnameN classnameNjj)}j]ja7c.amdgpu_bo_get_metadataasbuh1hhj8ubj)}(h h]h }(hjD8hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj8ubj)}(hj4h]h*}(hjR8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj2)}(h metadata_sizeh]h metadata_size}(hj_8hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj8ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj7ubjS)}(huint64_t *flagsh](h)}(hhh]j2)}(huint64_th]huint64_t}(hj{8hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjx8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}8modnameN classnameNjj)}j]ja7c.amdgpu_bo_get_metadataasbuh1hhjt8ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjt8ubj)}(hj4h]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjt8ubj2)}(hflagsh]hflags}(hj8hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjt8ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj7ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj6hhhj6hMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj6hhhj6hMubah}(h]j6ah ](jjeh"]h$]h&]jj)jhuh1jhj6hMhj6hhubj)}(hhh]h)}(h get metadatah]h get metadata}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj8hhubah}(h]h ]h"]h$]h&]uh1jhj6hhhj6hMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j8j6j8j7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hj9h]h Parameters}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj8ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj8ubh)}(hhh](h)}(h;``struct amdgpu_bo *bo`` :c:type:`amdgpu_bo` buffer object h](j)}(h``struct amdgpu_bo *bo``h]j)}(hj9h]hstruct amdgpu_bo *bo}(hj!9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj9ubj)}(hhh]h)}(h!:c:type:`amdgpu_bo` buffer objecth](h)}(h:c:type:`amdgpu_bo`h]j)}(hj>9h]h amdgpu_bo}(hj@9hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj<9ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj amdgpu_bouh1hhj49hMhj89ubh buffer object}(hj89hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj49hMhj59ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1hhj49hMhj9ubh)}(h#``void *buffer`` returned metadata h](j)}(h``void *buffer``h]j)}(hjw9h]h void *buffer}(hjy9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju9ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjq9ubj)}(hhh]h)}(hreturned metadatah]hreturned metadata}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1jhjq9ubeh}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubh)}(h*``size_t buffer_size`` size of the buffer h](j)}(h``size_t buffer_size``h]j)}(hj9h]hsize_t buffer_size}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj9ubj)}(hhh]h)}(hsize of the bufferh]hsize of the buffer}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubh)}(h:``uint32_t *metadata_size`` size of the returned metadata h](j)}(h``uint32_t *metadata_size``h]j)}(hj9h]huint32_t *metadata_size}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj9ubj)}(hhh]h)}(hsize of the returned metadatah]hsize of the returned metadata}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubh)}(h3``uint64_t *flags`` flags of the returned metadata h](j)}(h``uint64_t *flags``h]j)}(hj":h]huint64_t *flags}(hj$:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj :ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj:ubj)}(hhh]h)}(hflags of the returned metadatah]hflags of the returned metadata}(hj;:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7:hMhj8:ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1hhj7:hMhj9ubeh}(h]h ]h"]h$]h&]uh1hhj8ubh)}(h**Description**h]jJ)}(hj]:h]h Description}(hj_:hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj[:ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj8ubh)}(hxGets buffer object's metadata, its size and flags. buffer_size shall not be less than metadata_size. Used via GEM ioctl.h]hzGets buffer object’s metadata, its size and flags. buffer_size shall not be less than metadata_size. Used via GEM ioctl.}(hjs:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj8ubh)}(h **Return**h]jJ)}(hj:h]hReturn}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj:ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj8ubh)}(h20 for success or a negative error code on failure.h]h20 for success or a negative error code on failure.}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj8ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"amdgpu_bo_move_notify (C function)c.amdgpu_bo_move_notifyhNtauh1jhjhhhNhNubj)}(hhh](j)}(hcvoid amdgpu_bo_move_notify (struct ttm_buffer_object *bo, bool evict, struct ttm_resource *new_mem)h]j)}(hbvoid amdgpu_bo_move_notify(struct ttm_buffer_object *bo, bool evict, struct ttm_resource *new_mem)h](j )}(hvoidh]hvoid}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:hhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMubj)}(h h]h }(hj:hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj:hhhj:hMubj,)}(hamdgpu_bo_move_notifyh]j2)}(hamdgpu_bo_move_notifyh]hamdgpu_bo_move_notify}(hj:hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj:ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj:hhhj:hMubjM)}(hH(struct ttm_buffer_object *bo, bool evict, struct ttm_resource *new_mem)h](jS)}(hstruct ttm_buffer_object *boh](jY)}(hj\h]hstruct}(hj;hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj;ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj;ubh)}(hhh]j2)}(httm_buffer_objecth]httm_buffer_object}(hj$;hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj!;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj&;modnameN classnameNjj)}j]j)}jj:sbc.amdgpu_bo_move_notifyasbuh1hhj;ubj)}(h h]h }(hjD;hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj;ubj)}(hj4h]h*}(hjR;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj2)}(hboh]hbo}(hj_;hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj;ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj:ubjS)}(h bool evicth](j )}(hj h]hbool}(hjx;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjt;ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjt;ubj2)}(hevicth]hevict}(hj;hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjt;ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj:ubjS)}(hstruct ttm_resource *new_memh](jY)}(hj\h]hstruct}(hj;hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj;ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj;ubh)}(hhh]j2)}(h ttm_resourceh]h ttm_resource}(hj;hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;modnameN classnameNjj)}j]j@;c.amdgpu_bo_move_notifyasbuh1hhj;ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj;ubj)}(hj4h]h*}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj2)}(hnew_memh]hnew_mem}(hj<hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj;ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj:ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj:hhhj:hMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj:hhhj:hMubah}(h]j:ah ](jjeh"]h$]h&]jj)jhuh1jhj:hMhj:hhubj)}(hhh]h)}(h notification about a memory moveh]h notification about a memory move}(hj-<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj*<hhubah}(h]h ]h"]h$]h&]uh1jhj:hhhj:hMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jE<j6jE<j7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hjO<h]h Parameters}(hjQ<hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjM<ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjI<ubh)}(hhh](h)}(h<``struct ttm_buffer_object *bo`` pointer to a buffer object h](j)}(h ``struct ttm_buffer_object *bo``h]j)}(hjn<h]hstruct ttm_buffer_object *bo}(hjp<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjl<ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjh<ubj)}(hhh]h)}(hpointer to a buffer objecth]hpointer to a buffer object}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hMhj<ubah}(h]h ]h"]h$]h&]uh1jhjh<ubeh}(h]h ]h"]h$]h&]uh1hhj<hMhje<ubh)}(hS``bool evict`` if this move is evicting the buffer from the graphics address space h](j)}(h``bool evict``h]j)}(hj<h]h bool evict}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj<ubj)}(hhh]h)}(hCif this move is evicting the buffer from the graphics address spaceh]hCif this move is evicting the buffer from the graphics address space}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hMhj<ubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1hhj<hMhje<ubh)}(hA``struct ttm_resource *new_mem`` new resource for backing the BO h](j)}(h ``struct ttm_resource *new_mem``h]j)}(hj<h]hstruct ttm_resource *new_mem}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj<ubj)}(hhh]h)}(hnew resource for backing the BOh]hnew resource for backing the BO}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hMhj<ubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1hhj<hMhje<ubeh}(h]h ]h"]h$]h&]uh1hhjI<ubh)}(h**Description**h]jJ)}(hj=h]h Description}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj=ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjI<ubh)}(hMarks 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](hMarks the corresponding }(hj1=hhhNhNubh)}(h:c:type:`amdgpu_bo`h]j)}(hj;=h]h amdgpu_bo}(hj==hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj9=ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj amdgpu_bouh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj1=ubhr buffer object as invalid, also performs bookkeeping. TTM driver callback which is called when ttm moves a buffer.}(hj1=hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjX=hMhjI<ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%amdgpu_bo_release_notify (C function)]c.amdgpu_bo_release_notifyhNtauh1jhjhhhNhNubj)}(hhh](j)}(hah"]h$]h&]uh1j1hj=ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj=hhhj=hMubjM)}(h(struct ttm_buffer_object *bo)h]jS)}(hstruct ttm_buffer_object *boh](jY)}(hj\h]hstruct}(hj=hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj=ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj=ubh)}(hhh]j2)}(httm_buffer_objecth]httm_buffer_object}(hj=hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]j)}jj=sbc.amdgpu_bo_release_notifyasbuh1hhj=ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj=ubj)}(hj4h]h*}(hj >hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj2)}(hboh]hbo}(hj>hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj=ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj=ubah}(h]h ]h"]h$]h&]jJjKuh1jLhj=hhhj=hMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj{=hhhj=hMubah}(h]jv=ah ](jjeh"]h$]h&]jj)jhuh1jhj=hMhjx=hhubj)}(hhh]h)}(h¬ification about a BO being releasedh]h¬ification about a BO being released}(hjC>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj@>hhubah}(h]h ]h"]h$]h&]uh1jhjx=hhhj=hMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j[>j6j[>j7j8j9uh1jhhhjhNhNubj;)}(h**Parameters** ``struct ttm_buffer_object *bo`` pointer to a buffer object **Description** Wipes VRAM buffers whose contents should not be leaked before the memory is released.h](h)}(h**Parameters**h]jJ)}(hje>h]h Parameters}(hjg>hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjc>ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj_>ubh)}(hhh]h)}(h<``struct ttm_buffer_object *bo`` pointer to a buffer object h](j)}(h ``struct ttm_buffer_object *bo``h]j)}(hj>h]hstruct ttm_buffer_object *bo}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj~>ubj)}(hhh]h)}(hpointer to a buffer objecth]hpointer to a buffer object}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hMhj>ubah}(h]h ]h"]h$]h&]uh1jhj~>ubeh}(h]h ]h"]h$]h&]uh1hhj>hMhj{>ubah}(h]h ]h"]h$]h&]uh1hhj_>ubh)}(h**Description**h]jJ)}(hj>h]h Description}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj>ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj_>ubh)}(hUWipes VRAM buffers whose contents should not be leaked before the memory is released.h]hUWipes VRAM buffers whose contents should not be leaked before the memory is released.}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj_>ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j+amdgpu_bo_fault_reserve_notify (C function) c.amdgpu_bo_fault_reserve_notifyhNtauh1jhjhhhNhNubj)}(hhh](j)}(hHvm_fault_t amdgpu_bo_fault_reserve_notify (struct ttm_buffer_object *bo)h]j)}(hGvm_fault_t amdgpu_bo_fault_reserve_notify(struct ttm_buffer_object *bo)h](h)}(hhh]j2)}(h vm_fault_th]h vm_fault_t}(hj?hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj ?modnameN classnameNjj)}j]j)}jamdgpu_bo_fault_reserve_notifysb c.amdgpu_bo_fault_reserve_notifyasbuh1hhj?hhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM4ubj)}(h h]h }(hj)?hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj?hhhj(?hM4ubj,)}(hamdgpu_bo_fault_reserve_notifyh]j2)}(hj%?h]hamdgpu_bo_fault_reserve_notify}(hj;?hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj7?ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj?hhhj(?hM4ubjM)}(h(struct ttm_buffer_object *bo)h]jS)}(hstruct ttm_buffer_object *boh](jY)}(hj\h]hstruct}(hjV?hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjR?ubj)}(h h]h }(hjc?hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjR?ubh)}(hhh]j2)}(httm_buffer_objecth]httm_buffer_object}(hjt?hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjq?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjv?modnameN classnameNjj)}j]j#? c.amdgpu_bo_fault_reserve_notifyasbuh1hhjR?ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjR?ubj)}(hj4h]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjR?ubj2)}(hboh]hbo}(hj?hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjR?ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjN?ubah}(h]h ]h"]h$]h&]jJjKuh1jLhj?hhhj(?hM4ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj>hhhj(?hM4ubah}(h]j>ah ](jjeh"]h$]h&]jj)jhuh1jhj(?hM4hj>hhubj)}(hhh]h)}(h!notification about a memory faulth]h!notification about a memory fault}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM4hj?hhubah}(h]h ]h"]h$]h&]uh1jhj>hhhj(?hM4ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j?j6j?j7j8j9uh1jhhhjhNhNubj;)}(hX5**Parameters** ``struct ttm_buffer_object *bo`` pointer to a buffer object **Description** Notifies the driver we are taking a fault on this BO and have reserved it, also performs bookkeeping. TTM driver callback for dealing with vm faults. **Return** 0 for success or a negative error code on failure.h](h)}(h**Parameters**h]jJ)}(hj?h]h Parameters}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj?ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM8hj?ubh)}(hhh]h)}(h<``struct ttm_buffer_object *bo`` pointer to a buffer object h](j)}(h ``struct ttm_buffer_object *bo``h]j)}(hj@h]hstruct ttm_buffer_object *bo}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM5hj@ubj)}(hhh]h)}(hpointer to a buffer objecth]hpointer to a buffer object}(hj1@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-@hM5hj.@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1hhj-@hM5hj@ubah}(h]h ]h"]h$]h&]uh1hhj?ubh)}(h**Description**h]jJ)}(hjS@h]h Description}(hjU@hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjQ@ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM7hj?ubh)}(hNotifies the driver we are taking a fault on this BO and have reserved it, also performs bookkeeping. TTM driver callback for dealing with vm faults.h]hNotifies the driver we are taking a fault on this BO and have reserved it, also performs bookkeeping. TTM driver callback for dealing with vm faults.}(hji@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM7hj?ubh)}(h **Return**h]jJ)}(hjz@h]hReturn}(hj|@hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjx@ubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM;hj?ubh)}(h20 for success or a negative error code on failure.h]h20 for success or a negative error code on failure.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM;hj?ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_bo_fence (C function)c.amdgpu_bo_fencehNtauh1jhjhhhNhNubj)}(hhh](j)}(hQvoid amdgpu_bo_fence (struct amdgpu_bo *bo, struct dma_fence *fence, bool shared)h]j)}(hPvoid amdgpu_bo_fence(struct amdgpu_bo *bo, struct dma_fence *fence, bool shared)h](j )}(hvoidh]hvoid}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@hhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMgubj)}(h h]h }(hj@hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj@hhhj@hMgubj,)}(hamdgpu_bo_fenceh]j2)}(hamdgpu_bo_fenceh]hamdgpu_bo_fence}(hj@hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj@ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj@hhhj@hMgubjM)}(h<(struct amdgpu_bo *bo, struct dma_fence *fence, bool shared)h](jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hj@hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj@ubj)}(h h]h }(hj AhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj@ubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjAhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjAubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNjj)}j]j)}jj@sbc.amdgpu_bo_fenceasbuh1hhj@ubj)}(h h]h }(hj:AhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj@ubj)}(hj4h]h*}(hjHAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj2)}(hboh]hbo}(hjUAhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj@ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj@ubjS)}(hstruct dma_fence *fenceh](jY)}(hj\h]hstruct}(hjnAhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjjAubj)}(h h]h }(hj{AhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjjAubh)}(hhh]j2)}(h dma_fenceh]h dma_fence}(hjAhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjAubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNjj)}j]j6Ac.amdgpu_bo_fenceasbuh1hhjjAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjjAubj)}(hj4h]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjAubj2)}(hfenceh]hfence}(hjAhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjjAubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj@ubjS)}(h bool sharedh](j )}(hj h]hbool}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjAubj2)}(hsharedh]hshared}(hjAhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjAubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj@ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj@hhhj@hMgubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj@hhhj@hMgubah}(h]j@ah ](jjeh"]h$]h&]jj)jhuh1jhj@hMghj@hhubj)}(hhh]h)}(hadd fence to buffer objecth]hadd fence to buffer object}(hj#BhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMghj Bhhubah}(h]h ]h"]h$]h&]uh1jhj@hhhj@hMgubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j;Bj6j;Bj7j8j9uh1jhhhjhNhNubj;)}(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 sharedh](h)}(h**Parameters**h]jJ)}(hjEBh]h Parameters}(hjGBhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjCBubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMkhj?Bubh)}(hhh](h)}(h3``struct amdgpu_bo *bo`` buffer object in question h](j)}(h``struct amdgpu_bo *bo``h]j)}(hjdBh]hstruct amdgpu_bo *bo}(hjfBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbBubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMihj^Bubj)}(hhh]h)}(hbuffer object in questionh]hbuffer object in question}(hj}BhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjyBhMihjzBubah}(h]h ]h"]h$]h&]uh1jhj^Bubeh}(h]h ]h"]h$]h&]uh1hhjyBhMihj[Bubh)}(h)``struct dma_fence *fence`` fence to add h](j)}(h``struct dma_fence *fence``h]j)}(hjBh]hstruct dma_fence *fence}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMjhjBubj)}(hhh]h)}(h fence to addh]h fence to add}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhMjhjBubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1hhjBhMjhj[Bubh)}(h4``bool shared`` true if fence should be added sharedh](j)}(h``bool shared``h]j)}(hjBh]h bool shared}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMlhjBubj)}(hhh]h)}(h$true if fence should be added sharedh]h$true if fence should be added shared}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMkhjBubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1hhjBhMlhj[Bubeh}(h]h ]h"]h$]h&]uh1hhj?Bubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%amdgpu_bo_sync_wait_resv (C function)c.amdgpu_bo_sync_wait_resvhNtauh1jhjhhhNhNubj)}(hhh](j)}(hint amdgpu_bo_sync_wait_resv (struct amdgpu_device *adev, struct dma_resv *resv, enum amdgpu_sync_mode sync_mode, void *owner, bool intr)h]j)}(hint amdgpu_bo_sync_wait_resv(struct amdgpu_device *adev, struct dma_resv *resv, enum amdgpu_sync_mode sync_mode, void *owner, bool intr)h](j )}(hinth]hint}(hj0ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,Chhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMubj)}(h h]h }(hj?ChhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj,Chhhj>ChMubj,)}(hamdgpu_bo_sync_wait_resvh]j2)}(hamdgpu_bo_sync_wait_resvh]hamdgpu_bo_sync_wait_resv}(hjQChhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjMCubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj,Chhhj>ChMubjM)}(hl(struct amdgpu_device *adev, struct dma_resv *resv, enum amdgpu_sync_mode sync_mode, void *owner, bool intr)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjmChhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjiCubj)}(h h]h }(hjzChhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjiCubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjChhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjCubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]j)}jjSCsbc.amdgpu_bo_sync_wait_resvasbuh1hhjiCubj)}(h h]h }(hjChhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjiCubj)}(hj4h]h*}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiCubj2)}(hadevh]hadev}(hjChhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjiCubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjeCubjS)}(hstruct dma_resv *resvh](jY)}(hj\h]hstruct}(hjChhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjCubj)}(h h]h }(hjChhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjCubh)}(hhh]j2)}(hdma_resvh]hdma_resv}(hjChhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjCubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]jCc.amdgpu_bo_sync_wait_resvasbuh1hhjCubj)}(h h]h }(hjDhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjCubj)}(hj4h]h*}(hj)DhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj2)}(hresvh]hresv}(hj6DhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjCubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjeCubjS)}(henum amdgpu_sync_mode sync_modeh](jY)}(henumh]henum}(hjODhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjKDubj)}(h h]h }(hj]DhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjKDubh)}(hhh]j2)}(hamdgpu_sync_modeh]hamdgpu_sync_mode}(hjnDhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjkDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpDmodnameN classnameNjj)}j]jCc.amdgpu_bo_sync_wait_resvasbuh1hhjKDubj)}(h h]h }(hjDhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjKDubj2)}(h sync_modeh]h sync_mode}(hjDhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjKDubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjeCubjS)}(h void *ownerh](j )}(hvoidh]hvoid}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj)}(h h]h }(hjDhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjDubj)}(hj4h]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj2)}(hownerh]howner}(hjDhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjDubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjeCubjS)}(h bool intrh](j )}(hj h]hbool}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj)}(h h]h }(hjEhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjDubj2)}(hintrh]hintr}(hjEhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjDubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjeCubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj,Chhhj>ChMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj(Chhhj>ChMubah}(h]j#Cah ](jjeh"]h$]h&]jj)jhuh1jhj>ChMhj%Chhubj)}(hhh]h)}(hWait for BO reservation fencesh]hWait for BO reservation fences}(hj:EhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj7Ehhubah}(h]h ]h"]h$]h&]uh1jhj%Chhhj>ChMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jREj6jREj7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hj\Eh]h Parameters}(hj^EhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjZEubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjVEubh)}(hhh](h)}(h5``struct amdgpu_device *adev`` amdgpu device pointer h](j)}(h``struct amdgpu_device *adev``h]j)}(hj{Eh]hstruct amdgpu_device *adev}(hj}EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyEubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjuEubj)}(hhh]h)}(hamdgpu device pointerh]hamdgpu device pointer}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhMhjEubah}(h]h ]h"]h$]h&]uh1jhjuEubeh}(h]h ]h"]h$]h&]uh1hhjEhMhjrEubh)}(h8``struct dma_resv *resv`` reservation object to sync to h](j)}(h``struct dma_resv *resv``h]j)}(hjEh]hstruct dma_resv *resv}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjEubj)}(hhh]h)}(hreservation object to sync toh]hreservation object to sync to}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhMhjEubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1hhjEhMhjrEubh)}(h9``enum amdgpu_sync_mode sync_mode`` synchronization mode h](j)}(h#``enum amdgpu_sync_mode sync_mode``h]j)}(hjEh]henum amdgpu_sync_mode sync_mode}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjEubj)}(hhh]h)}(hsynchronization modeh]hsynchronization mode}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhMhjFubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1hhjFhMhjrEubh)}(h``void *owner`` fence owner h](j)}(h``void *owner``h]j)}(hj&Fh]h void *owner}(hj(FhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$Fubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj Fubj)}(hhh]h)}(h fence ownerh]h fence owner}(hj?FhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;FhMhjah"]h$]h&]uh1j1hj#Gubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjGhhhjGhMubjM)}(h.(struct amdgpu_bo *bo, void *owner, bool intr)h](jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hjCGhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj?Gubj)}(h h]h }(hjPGhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj?Gubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjaGhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj^Gubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcGmodnameN classnameNjj)}j]j)}jj)Gsbc.amdgpu_bo_sync_waitasbuh1hhj?Gubj)}(h h]h }(hjGhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj?Gubj)}(hj4h]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?Gubj2)}(hboh]hbo}(hjGhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj?Gubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj;GubjS)}(h void *ownerh](j )}(hvoidh]hvoid}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj)}(h h]h }(hjGhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjGubj)}(hj4h]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj2)}(hownerh]howner}(hjGhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjGubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj;GubjS)}(h bool intrh](j )}(hj h]hbool}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj)}(h h]h }(hjHhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjGubj2)}(hintrh]hintr}(hjHhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjGubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj;Gubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjGhhhjGhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjFhhhjGhMubah}(h]jFah ](jjeh"]h$]h&]jj)jhuh1jhjGhMhjFhhubj)}(hhh]h)}(h$Wrapper for amdgpu_bo_sync_wait_resvh]h$Wrapper for amdgpu_bo_sync_wait_resv}(hjah"]h$]h&]uh1j1hjIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjImodnameN classnameNjj)}j]j)}jamdgpu_bo_gpu_offsetsbc.amdgpu_bo_gpu_offsetasbuh1hhjIhhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMubj)}(h h]h }(hjIhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjIhhhjIhMubj,)}(hamdgpu_bo_gpu_offseth]j2)}(hjIh]hamdgpu_bo_gpu_offset}(hjIhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjIubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjIhhhjIhMubjM)}(h(struct amdgpu_bo *bo)h]jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hjIhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjIubj)}(h h]h }(hjIhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjIubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjJhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]jIc.amdgpu_bo_gpu_offsetasbuh1hhjIubj)}(h h]h }(hj$JhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjIubj)}(hj4h]h*}(hj2JhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj2)}(hboh]hbo}(hj?JhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjIubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjIubah}(h]h ]h"]h$]h&]jJjKuh1jLhjIhhhjIhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjIhhhjIhMubah}(h]jIah ](jjeh"]h$]h&]jj)jhuh1jhjIhMhjIhhubj)}(hhh]h)}(hreturn GPU offset of boh]hreturn GPU offset of bo}(hjiJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjfJhhubah}(h]h ]h"]h$]h&]uh1jhjIhhhjIhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jJj6jJj7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hjJh]h Parameters}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjJubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjJubh)}(hhh]h)}(hE``struct amdgpu_bo *bo`` amdgpu object for which we query the offset h](j)}(h``struct amdgpu_bo *bo``h]j)}(hjJh]hstruct amdgpu_bo *bo}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjJubj)}(hhh]h)}(h+amdgpu object for which we query the offseth]h+amdgpu object for which we query the offset}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhMhjJubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1hhjJhMhjJubah}(h]h ]h"]h$]h&]uh1hhjJubh)}(h**Note**h]jJ)}(hjJh]hNote}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjJubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjJubh)}(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.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjJubh)}(h **Return**h]jJ)}(hj Kh]hReturn}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj Kubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjJubh)}(h!current GPU offset of the object.h]h!current GPU offset of the object.}(hj"KhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjJubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j*amdgpu_bo_gpu_offset_no_check (C function)c.amdgpu_bo_gpu_offset_no_checkhNtauh1jhjhhhNhNubj)}(hhh](j)}(h8u64 amdgpu_bo_gpu_offset_no_check (struct amdgpu_bo *bo)h]j)}(h7u64 amdgpu_bo_gpu_offset_no_check(struct amdgpu_bo *bo)h](h)}(hhh]j2)}(hu64h]hu64}(hjTKhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjQKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVKmodnameN classnameNjj)}j]j)}jamdgpu_bo_gpu_offset_no_checksbc.amdgpu_bo_gpu_offset_no_checkasbuh1hhjMKhhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMubj)}(h h]h }(hjvKhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjMKhhhjuKhMubj,)}(hamdgpu_bo_gpu_offset_no_checkh]j2)}(hjrKh]hamdgpu_bo_gpu_offset_no_check}(hjKhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjKubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjMKhhhjuKhMubjM)}(h(struct amdgpu_bo *bo)h]jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hjKhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjKubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjKhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKmodnameN classnameNjj)}j]jpKc.amdgpu_bo_gpu_offset_no_checkasbuh1hhjKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjKubj)}(hj4h]h*}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj2)}(hboh]hbo}(hjKhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjKubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjKubah}(h]h ]h"]h$]h&]jJjKuh1jLhjMKhhhjuKhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjIKhhhjuKhMubah}(h]jDKah ](jjeh"]h$]h&]jj)jhuh1jhjuKhMhjFKhhubj)}(hhh]h)}(hreturn GPU offset of boh]hreturn GPU offset of bo}(hj$LhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj!Lhhubah}(h]h ]h"]h$]h&]uh1jhjFKhhhjuKhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jah"]h$]h&]uh1j1hjLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjLmodnameN classnameNjj)}j]j)}jamdgpu_bo_mem_stats_placementsbc.amdgpu_bo_mem_stats_placementasbuh1hhjLhhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMubj)}(h h]h }(hj MhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjLhhhj MhMubj,)}(hamdgpu_bo_mem_stats_placementh]j2)}(hjMh]hamdgpu_bo_mem_stats_placement}(hjMhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjMubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjLhhhj MhMubjM)}(h(struct amdgpu_bo *bo)h]jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hj7MhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj3Mubj)}(h h]h }(hjDMhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj3Mubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjUMhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjRMubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWMmodnameN classnameNjj)}j]jMc.amdgpu_bo_mem_stats_placementasbuh1hhj3Mubj)}(h h]h }(hjsMhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj3Mubj)}(hj4h]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3Mubj2)}(hboh]hbo}(hjMhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj3Mubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj/Mubah}(h]h ]h"]h$]h&]jJjKuh1jLhjLhhhj MhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjLhhhj MhMubah}(h]jLah ](jjeh"]h$]h&]jj)jhuh1jhj MhMhjLhhubj)}(hhh]h)}(h"bo placement for memory accountingh]h"bo placement for memory accounting}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjMhhubah}(h]h ]h"]h$]h&]uh1jhjLhhhj MhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jMj6jMj7j8j9uh1jhhhjhNhNubj;)}(hX**Parameters** ``struct amdgpu_bo *bo`` the buffer object we should look at **Description** BO can have multiple preferred placements, to avoid double counting we want to file it under a single placement for memory stats. Luckily, if we take the highest set bit in preferred_domains the result is quite sensible. **Return** Which of the placements should the BO be accounted under.h](h)}(h**Parameters**h]jJ)}(hjMh]h Parameters}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjMubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjMubh)}(hhh]h)}(h=``struct amdgpu_bo *bo`` the buffer object we should look at h](j)}(h``struct amdgpu_bo *bo``h]j)}(hjMh]hstruct amdgpu_bo *bo}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjMubj)}(hhh]h)}(h#the buffer object we should look ath]h#the buffer object we should look at}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhMhjNubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1hhjNhMhjMubah}(h]h ]h"]h$]h&]uh1hhjMubh)}(h**Description**h]jJ)}(hj4Nh]h Description}(hj6NhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj2Nubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjMubh)}(hBO can have multiple preferred placements, to avoid double counting we want to file it under a single placement for memory stats. Luckily, if we take the highest set bit in preferred_domains the result is quite sensible.h]hBO can have multiple preferred placements, to avoid double counting we want to file it under a single placement for memory stats. Luckily, if we take the highest set bit in preferred_domains the result is quite sensible.}(hjJNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjMubh)}(h **Return**h]jJ)}(hj[Nh]hReturn}(hj]NhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjYNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjMubh)}(h9Which of the placements should the BO be accounted under.h]h9Which of the placements should the BO be accounted under.}(hjqNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjMubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j+amdgpu_bo_get_preferred_domain (C function) c.amdgpu_bo_get_preferred_domainhNtauh1jhjhhhNhNubj)}(hhh](j)}(hUuint32_t amdgpu_bo_get_preferred_domain (struct amdgpu_device *adev, uint32_t domain)h]j)}(hTuint32_t amdgpu_bo_get_preferred_domain(struct amdgpu_device *adev, uint32_t domain)h](h)}(hhh]j2)}(huint32_th]huint32_t}(hjNhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjNmodnameN classnameNjj)}j]j)}jamdgpu_bo_get_preferred_domainsb c.amdgpu_bo_get_preferred_domainasbuh1hhjNhhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMubj)}(h h]h }(hjNhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjNhhhjNhMubj,)}(hamdgpu_bo_get_preferred_domainh]j2)}(hjNh]hamdgpu_bo_get_preferred_domain}(hjNhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjNubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjNhhhjNhMubjM)}(h-(struct amdgpu_device *adev, uint32_t domain)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjNhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjNubj)}(h h]h }(hjNhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjNubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjOhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj Oubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j]jN c.amdgpu_bo_get_preferred_domainasbuh1hhjNubj)}(h h]h }(hj.OhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjNubj)}(hj4h]h*}(hjah"]h$]h&]uh1j1hjNubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjNubjS)}(huint32_t domainh](h)}(hhh]j2)}(huint32_th]huint32_t}(hjeOhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjbOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgOmodnameN classnameNjj)}j]jN c.amdgpu_bo_get_preferred_domainasbuh1hhj^Oubj)}(h h]h }(hjOhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj^Oubj2)}(hdomainh]hdomain}(hjOhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj^Oubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjNubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjNhhhjNhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjNhhhjNhMubah}(h]jNah ](jjeh"]h$]h&]jj)jhuh1jhjNhMhjNhhubj)}(hhh]h)}(hget preferred domainh]hget preferred domain}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjOhhubah}(h]h ]h"]h$]h&]uh1jhjNhhhjNhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jOj6jOj7j8j9uh1jhhhjhNhNubj;)}(h**Parameters** ``struct amdgpu_device *adev`` amdgpu device object ``uint32_t domain`` allowed :ref:`memory domains ` **Return** Which of the allowed domains is preferred for allocating the BO.h](h)}(h**Parameters**h]jJ)}(hjOh]h Parameters}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjOubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjOubh)}(hhh](h)}(h4``struct amdgpu_device *adev`` amdgpu device object h](j)}(h``struct amdgpu_device *adev``h]j)}(hjOh]hstruct amdgpu_device *adev}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjOubj)}(hhh]h)}(hamdgpu device objecth]hamdgpu device object}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhMhjPubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1hhjPhMhjOubh)}(hJ``uint32_t domain`` allowed :ref:`memory domains ` h](j)}(h``uint32_t domain``h]j)}(hj5Ph]huint32_t domain}(hj7PhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3Pubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhj/Pubj)}(hhh]h)}(h5allowed :ref:`memory domains `h](hallowed }(hjNPhhhNhNubh)}(h-:ref:`memory domains `h]j)}(hjXPh]hmemory domains}(hjZPhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjVPubah}(h]h ]h"]h$]h&]refdocj refdomainjdPreftyperef refexplicitrefwarnjamdgpu_memory_domainsuh1hhjJPhMhjNPubeh}(h]h ]h"]h$]h&]uh1hhjJPhMhjKPubah}(h]h ]h"]h$]h&]uh1jhj/Pubeh}(h]h ]h"]h$]h&]uh1hhjJPhMhjOubeh}(h]h ]h"]h$]h&]uh1hhjOubh)}(h **Return**h]jJ)}(hjPh]hReturn}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjPubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjOubh)}(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.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjOubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!amdgpu_bo_print_info (C function)c.amdgpu_bo_print_infohNtauh1jhjhhhNhNubj)}(hhh](j)}(hKu64 amdgpu_bo_print_info (int id, struct amdgpu_bo *bo, struct seq_file *m)h]j)}(hJu64 amdgpu_bo_print_info(int id, struct amdgpu_bo *bo, struct seq_file *m)h](h)}(hhh]j2)}(hu64h]hu64}(hjPhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j]j)}jamdgpu_bo_print_infosbc.amdgpu_bo_print_infoasbuh1hhjPhhhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMubj)}(h h]h }(hjPhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjPhhhjPhMubj,)}(hamdgpu_bo_print_infoh]j2)}(hjPh]hamdgpu_bo_print_info}(hj QhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjQubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjPhhhjPhMubjM)}(h2(int id, struct amdgpu_bo *bo, struct seq_file *m)h](jS)}(hint idh](j )}(hinth]hint}(hj'QhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#Qubj)}(h h]h }(hj5QhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj#Qubj2)}(hidh]hid}(hjCQhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj#Qubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjQubjS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hj\QhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjXQubj)}(h h]h }(hjiQhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjXQubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjzQhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjwQubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|QmodnameN classnameNjj)}j]jPc.amdgpu_bo_print_infoasbuh1hhjXQubj)}(h h]h }(hjQhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjXQubj)}(hj4h]h*}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXQubj2)}(hboh]hbo}(hjQhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjXQubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjQubjS)}(hstruct seq_file *mh](jY)}(hj\h]hstruct}(hjQhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjQubj)}(h h]h }(hjQhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjQubh)}(hhh]j2)}(hseq_fileh]hseq_file}(hjQhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjQubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQmodnameN classnameNjj)}j]jPc.amdgpu_bo_print_infoasbuh1hhjQubj)}(h h]h }(hjRhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjQubj)}(hj4h]h*}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj2)}(hmh]hm}(hj#RhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjQubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjQubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjPhhhjPhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjPhhhjPhMubah}(h]jPah ](jjeh"]h$]h&]jj)jhuh1jhjPhMhjPhhubj)}(hhh]h)}(hprint BO info in debugfs fileh]hprint BO info in debugfs file}(hjMRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjJRhhubah}(h]h ]h"]h$]h&]uh1jhjPhhhjPhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jeRj6jeRj7j8j9uh1jhhhjhNhNubj;)}(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]jJ)}(hjoRh]h Parameters}(hjqRhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjmRubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM!hjiRubh)}(hhh](h)}(h!``int id`` Index or Id of the BO h](j)}(h ``int id``h]j)}(hjRh]hint id}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chMhjRubj)}(hhh]h)}(hIndex or Id of the BOh]hIndex or Id of the BO}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhMhjRubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1hhjRhMhjRubh)}(h8``struct amdgpu_bo *bo`` Requested BO for printing info h](j)}(h``struct amdgpu_bo *bo``h]j)}(hjRh]hstruct amdgpu_bo *bo}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM hjRubj)}(hhh]h)}(hRequested BO for printing infoh]hRequested BO for printing info}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhM hjRubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1hhjRhM hjRubh)}(h$``struct seq_file *m`` debugfs file h](j)}(h``struct seq_file *m``h]j)}(hjSh]hstruct seq_file *m}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM!hjRubj)}(hhh]h)}(h debugfs fileh]h debugfs file}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShM!hjSubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1hhjShM!hjRubeh}(h]h ]h"]h$]h&]uh1hhjiRubh)}(h**Description**h]jJ)}(hj;Sh]h Description}(hj=ShhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj9Subah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM#hjiRubh)}(h$Print BO information in debugfs fileh]h$Print BO information in debugfs file}(hjQShhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM#hjiRubh)}(h **Return**h]jJ)}(hjbSh]hReturn}(hjdShhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj`Subah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM%hjiRubh)}(hSize of the BO in bytes.h]hSize of the BO in bytes.}(hjxShhhNhNubah}(h]h ]h"]h$]h&]uh1hhr/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:167: ./drivers/gpu/drm/amd/amdgpu/amdgpu_object.chM%hjiRubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjhhhNhNubeh}(h]buffer-objectsah ]h"]buffer objectsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hPRIME Buffer Sharingh]hPRIME Buffer Sharing}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShhhhhKubh)}(hThe following callback implementations are used for :ref:`sharing GEM buffer objects between different devices via PRIME `.h](h4The following callback implementations are used for }(hjShhhNhNubh)}(h\:ref:`sharing GEM buffer objects between different devices via PRIME `h]j)}(hjSh]h>sharing GEM buffer objects between different devices via PRIME}(hjShhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]refdocj refdomainjSreftyperef refexplicitrefwarnjprime_buffer_sharinguh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:173: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhjSubh.}(hjShhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjShKhjShhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j dma_buf_attach_adev (C function)c.dma_buf_attach_adevhNtauh1jhjShhhNhNubj)}(hhh](j)}(hNstruct amdgpu_device * dma_buf_attach_adev (struct dma_buf_attachment *attach)h]j)}(hLstruct amdgpu_device *dma_buf_attach_adev(struct dma_buf_attachment *attach)h](jY)}(hj\h]hstruct}(hjShhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjShhhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chK1ubj)}(h h]h }(hjThhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjShhhjThK1ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjThhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]j)}jdma_buf_attach_adevsbc.dma_buf_attach_adevasbuh1hhjShhhjThK1ubj)}(h h]h }(hj3ThhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjShhhjThK1ubj)}(hj4h]h*}(hjAThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjShhhjThK1ubj,)}(hdma_buf_attach_adevh]j2)}(hj0Th]hdma_buf_attach_adev}(hjRThhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjNTubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjShhhjThK1ubjM)}(h#(struct dma_buf_attachment *attach)h]jS)}(h!struct dma_buf_attachment *attachh](jY)}(hj\h]hstruct}(hjmThhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjiTubj)}(h h]h }(hjzThhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjiTubh)}(hhh]j2)}(hdma_buf_attachmenth]hdma_buf_attachment}(hjThhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]j.Tc.dma_buf_attach_adevasbuh1hhjiTubj)}(h h]h }(hjThhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjiTubj)}(hj4h]h*}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiTubj2)}(hattachh]hattach}(hjThhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjiTubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjeTubah}(h]h ]h"]h$]h&]jJjKuh1jLhjShhhjThK1ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjShhhjThK1ubah}(h]jSah ](jjeh"]h$]h&]jj)jhuh1jhjThK1hjShhubj)}(hhh]h)}(h#Helper to get adev of an attachmenth]h#Helper to get adev of an attachment}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chK1hjThhubah}(h]h ]h"]h$]h&]uh1jhjShhhjThK1ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jUj6jUj7j8j9uh1jhhhjShNhNubj;)}(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]jJ)}(hjUh]h Parameters}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjUubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chK5hj Uubh)}(hhh]h)}(h1``struct dma_buf_attachment *attach`` attachment h](j)}(h%``struct dma_buf_attachment *attach``h]j)}(hj/Uh]h!struct dma_buf_attachment *attach}(hj1UhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-Uubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chK3hj)Uubj)}(hhh]h)}(h attachmenth]h attachment}(hjHUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDUhK3hjEUubah}(h]h ]h"]h$]h&]uh1jhj)Uubeh}(h]h ]h"]h$]h&]uh1hhjDUhK3hj&Uubah}(h]h ]h"]h$]h&]uh1hhj Uubh)}(h **Return**h]jJ)}(hjjUh]hReturn}(hjlUhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjhUubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chK5hj Uubh)}(hbA struct amdgpu_device * if the attaching device is an amdgpu device or partition, NULL otherwise.h]hbA struct amdgpu_device * if the attaching device is an amdgpu device or partition, NULL otherwise.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chK5hj Uubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjShhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"amdgpu_dma_buf_attach (C function)c.amdgpu_dma_buf_attachhNtauh1jhjShhhNhNubj)}(hhh](j)}(hUint amdgpu_dma_buf_attach (struct dma_buf *dmabuf, struct dma_buf_attachment *attach)h]j)}(hTint amdgpu_dma_buf_attach(struct dma_buf *dmabuf, struct dma_buf_attachment *attach)h](j )}(hinth]hint}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUhhhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKFubj)}(h h]h }(hjUhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjUhhhjUhKFubj,)}(hamdgpu_dma_buf_attachh]j2)}(hamdgpu_dma_buf_attachh]hamdgpu_dma_buf_attach}(hjUhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjUubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjUhhhjUhKFubjM)}(h;(struct dma_buf *dmabuf, struct dma_buf_attachment *attach)h](jS)}(hstruct dma_buf *dmabufh](jY)}(hj\h]hstruct}(hjUhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjUubj)}(h h]h }(hjUhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjUubh)}(hhh]j2)}(hdma_bufh]hdma_buf}(hj VhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj VmodnameN classnameNjj)}j]j)}jjUsbc.amdgpu_dma_buf_attachasbuh1hhjUubj)}(h h]h }(hj*VhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjUubj)}(hj4h]h*}(hj8VhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj2)}(hdmabufh]hdmabuf}(hjEVhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjUubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjUubjS)}(h!struct dma_buf_attachment *attachh](jY)}(hj\h]hstruct}(hj^VhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjZVubj)}(h h]h }(hjkVhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjZVubh)}(hhh]j2)}(hdma_buf_attachmenth]hdma_buf_attachment}(hj|VhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjyVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj~VmodnameN classnameNjj)}j]j&Vc.amdgpu_dma_buf_attachasbuh1hhjZVubj)}(h h]h }(hjVhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjZVubj)}(hj4h]h*}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZVubj2)}(hattachh]hattach}(hjVhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjZVubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjUubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjUhhhjUhKFubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjUhhhjUhKFubah}(h]jUah ](jjeh"]h$]h&]jj)jhuh1jhjUhKFhjUhhubj)}(hhh]h)}(h9:c:type:`dma_buf_ops.attach ` implementationh](h)}(h*:c:type:`dma_buf_ops.attach `h]j)}(hjVh]hdma_buf_ops.attach}(hjVhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]j&Vc.amdgpu_dma_buf_attachasbj dma_buf_opsuh1hhjThK1hjVubh implementation}(hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKFhjVhhubah}(h]h ]h"]h$]h&]uh1jhjUhhhjUhKFubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jWj6jWj7j8j9uh1jhhhjShNhNubj;)}(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]jJ)}(hj%Wh]h Parameters}(hj'WhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj#Wubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKJhjWubh)}(hhh](h)}(h6``struct dma_buf *dmabuf`` DMA-buf where we attach to h](j)}(h``struct dma_buf *dmabuf``h]j)}(hjDWh]hstruct dma_buf *dmabuf}(hjFWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBWubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKHhj>Wubj)}(hhh]h)}(hDMA-buf where we attach toh]hDMA-buf where we attach to}(hj]WhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYWhKHhjZWubah}(h]h ]h"]h$]h&]uh1jhj>Wubeh}(h]h ]h"]h$]h&]uh1hhjYWhKHhj;Wubh)}(h8``struct dma_buf_attachment *attach`` attachment to add h](j)}(h%``struct dma_buf_attachment *attach``h]j)}(hj}Wh]h!struct dma_buf_attachment *attach}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{Wubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKIhjwWubj)}(hhh]h)}(hattachment to addh]hattachment to add}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhKIhjWubah}(h]h ]h"]h$]h&]uh1jhjwWubeh}(h]h ]h"]h$]h&]uh1hhjWhKIhj;Wubeh}(h]h ]h"]h$]h&]uh1hhjWubh)}(h**Description**h]jJ)}(hjWh]h Description}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjWubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKKhjWubh)}(h3Add the attachment as user to the exported DMA-buf.h]h3Add the attachment as user to the exported DMA-buf.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKKhjWubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjShhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_dma_buf_pin (C function)c.amdgpu_dma_buf_pinhNtauh1jhjShhhNhNubj)}(hhh](j)}(h:int amdgpu_dma_buf_pin (struct dma_buf_attachment *attach)h]j)}(h9int amdgpu_dma_buf_pin(struct dma_buf_attachment *attach)h](j )}(hinth]hint}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWhhhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chK_ubj)}(h h]h }(hj XhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjWhhhj XhK_ubj,)}(hamdgpu_dma_buf_pinh]j2)}(hamdgpu_dma_buf_pinh]hamdgpu_dma_buf_pin}(hjXhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjXubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjWhhhj XhK_ubjM)}(h#(struct dma_buf_attachment *attach)h]jS)}(h!struct dma_buf_attachment *attachh](jY)}(hj\h]hstruct}(hj:XhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj6Xubj)}(h h]h }(hjGXhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj6Xubh)}(hhh]j2)}(hdma_buf_attachmenth]hdma_buf_attachment}(hjXXhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjUXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZXmodnameN classnameNjj)}j]j)}jj Xsbc.amdgpu_dma_buf_pinasbuh1hhj6Xubj)}(h h]h }(hjxXhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj6Xubj)}(hj4h]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6Xubj2)}(hattachh]hattach}(hjXhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj6Xubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj2Xubah}(h]h ]h"]h$]h&]jJjKuh1jLhjWhhhj XhK_ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjWhhhj XhK_ubah}(h]jWah ](jjeh"]h$]h&]jj)jhuh1jhj XhK_hjWhhubj)}(hhh]h)}(h6:c:type:`dma_buf_ops.pin ` implementationh](h)}(h':c:type:`dma_buf_ops.pin `h]j)}(hjXh]hdma_buf_ops.pin}(hjXhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]jtXc.amdgpu_dma_buf_pinasbj dma_buf_opsuh1hhjThK1hjXubh implementation}(hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chK_hjXhhubah}(h]h ]h"]h$]h&]uh1jhjWhhhj XhK_ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jXj6jXj7j8j9uh1jhhhjShNhNubj;)}(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]jJ)}(hjYh]h Parameters}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjYubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKchjXubh)}(hhh]h)}(h=``struct dma_buf_attachment *attach`` attachment to pin down h](j)}(h%``struct dma_buf_attachment *attach``h]j)}(hj"Yh]h!struct dma_buf_attachment *attach}(hj$YhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Yubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKahjYubj)}(hhh]h)}(hattachment to pin downh]hattachment to pin down}(hj;YhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7YhKahj8Yubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1hhj7YhKahjYubah}(h]h ]h"]h$]h&]uh1hhjXubh)}(h**Description**h]jJ)}(hj]Yh]h Description}(hj_YhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj[Yubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKchjXubh)}(hGPin the BO which is backing the DMA-buf so that it can't move any more.h]hIPin the BO which is backing the DMA-buf so that it can’t move any more.}(hjsYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKchjXubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjShhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!amdgpu_dma_buf_unpin (C function)c.amdgpu_dma_buf_unpinhNtauh1jhjShhhNhNubj)}(hhh](j)}(h=void amdgpu_dma_buf_unpin (struct dma_buf_attachment *attach)h]j)}(hah"]h$]h&]uh1j1hjYubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjYhhhjYhKubjM)}(h#(struct dma_buf_attachment *attach)h]jS)}(h!struct dma_buf_attachment *attachh](jY)}(hj\h]hstruct}(hjYhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjYubj)}(h h]h }(hjYhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjYubh)}(hhh]j2)}(hdma_buf_attachmenth]hdma_buf_attachment}(hjYhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjYubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjYmodnameN classnameNjj)}j]j)}jjYsbc.amdgpu_dma_buf_unpinasbuh1hhjYubj)}(h h]h }(hjZhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjYubj)}(hj4h]h*}(hj+ZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj2)}(hattachh]hattach}(hj8ZhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjYubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjYubah}(h]h ]h"]h$]h&]jJjKuh1jLhjYhhhjYhKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjYhhhjYhKubah}(h]jYah ](jjeh"]h$]h&]jj)jhuh1jhjYhKhjYhhubj)}(hhh]h)}(h8:c:type:`dma_buf_ops.unpin ` implementationh](h)}(h):c:type:`dma_buf_ops.unpin `h]j)}(hjhZh]hdma_buf_ops.unpin}(hjjZhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjfZubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]jZc.amdgpu_dma_buf_unpinasbj dma_buf_opsuh1hhjThK1hjbZubh implementation}(hjbZhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhj_Zhhubah}(h]h ]h"]h$]h&]uh1jhjYhhhjYhKubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jZj6jZj7j8j9uh1jhhhjShNhNubj;)}(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]jJ)}(hjZh]h Parameters}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjZubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhjZubh)}(hhh]h)}(h:``struct dma_buf_attachment *attach`` attachment to unpin h](j)}(h%``struct dma_buf_attachment *attach``h]j)}(hjZh]h!struct dma_buf_attachment *attach}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhjZubj)}(hhh]h)}(hattachment to unpinh]hattachment to unpin}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhKhjZubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1hhjZhKhjZubah}(h]h ]h"]h$]h&]uh1hhjZubh)}(h**Description**h]jJ)}(hj[h]h Description}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj[ubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhjZubh)}(h6Unpin a previously pinned BO to make it movable again.h]h6Unpin a previously pinned BO to make it movable again.}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhjZubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjShhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_dma_buf_map (C function)c.amdgpu_dma_buf_maphNtauh1jhjShhhNhNubj)}(hhh](j)}(hestruct sg_table * amdgpu_dma_buf_map (struct dma_buf_attachment *attach, enum dma_data_direction dir)h]j)}(hcstruct sg_table *amdgpu_dma_buf_map(struct dma_buf_attachment *attach, enum dma_data_direction dir)h](jY)}(hj\h]hstruct}(hjG[hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjC[hhhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKubj)}(h h]h }(hjU[hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjC[hhhjT[hKubh)}(hhh]j2)}(hsg_tableh]hsg_table}(hjf[hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjc[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjh[modnameN classnameNjj)}j]j)}jamdgpu_dma_buf_mapsbc.amdgpu_dma_buf_mapasbuh1hhjC[hhhjT[hKubj)}(h h]h }(hj[hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjC[hhhjT[hKubj)}(hj4h]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC[hhhjT[hKubj,)}(hamdgpu_dma_buf_maph]j2)}(hj[h]hamdgpu_dma_buf_map}(hj[hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj[ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjC[hhhjT[hKubjM)}(h@(struct dma_buf_attachment *attach, enum dma_data_direction dir)h](jS)}(h!struct dma_buf_attachment *attachh](jY)}(hj\h]hstruct}(hj[hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj[ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj[ubh)}(hhh]j2)}(hdma_buf_attachmenth]hdma_buf_attachment}(hj[hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]j[c.amdgpu_dma_buf_mapasbuh1hhj[ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj[ubj)}(hj4h]h*}(hj \hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj2)}(hattachh]hattach}(hj\hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj[ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj[ubjS)}(henum dma_data_direction dirh](jY)}(hjQDh]henum}(hj1\hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj-\ubj)}(h h]h }(hj>\hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj-\ubh)}(hhh]j2)}(hdma_data_directionh]hdma_data_direction}(hjO\hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjL\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQ\modnameN classnameNjj)}j]j[c.amdgpu_dma_buf_mapasbuh1hhj-\ubj)}(h h]h }(hjm\hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj-\ubj2)}(hdirh]hdir}(hj{\hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj-\ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj[ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjC[hhhjT[hKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj?[hhhjT[hKubah}(h]j:[ah ](jjeh"]h$]h&]jj)jhuh1jhjT[hKhj<[hhubj)}(hhh]h)}(h>:c:type:`dma_buf_ops.map_dma_buf ` implementationh](h)}(h/:c:type:`dma_buf_ops.map_dma_buf `h]j)}(hj\h]hdma_buf_ops.map_dma_buf}(hj\hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]j[c.amdgpu_dma_buf_mapasbj dma_buf_opsuh1hhjThK1hj\ubh implementation}(hj\hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhj\hhubah}(h]h ]h"]h$]h&]uh1jhj<[hhhjT[hKubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j\j6j\j7j8j9uh1jhhhjShNhNubj;)}(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]jJ)}(hj\h]h Parameters}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj\ubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhj\ubh)}(hhh](h)}(h9``struct dma_buf_attachment *attach`` DMA-buf attachment h](j)}(h%``struct dma_buf_attachment *attach``h]j)}(hj ]h]h!struct dma_buf_attachment *attach}(hj ]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhj]ubj)}(hhh]h)}(hDMA-buf attachmenth]hDMA-buf attachment}(hj#]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hKhj ]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1hhj]hKhj]ubh)}(h.``enum dma_data_direction dir`` DMA direction h](j)}(h``enum dma_data_direction dir``h]j)}(hjC]h]henum dma_data_direction dir}(hjE]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjA]ubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhj=]ubj)}(hhh]h)}(h DMA directionh]h DMA direction}(hj\]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjX]hKhjY]ubah}(h]h ]h"]h$]h&]uh1jhj=]ubeh}(h]h ]h"]h$]h&]uh1hhjX]hKhj]ubeh}(h]h ]h"]h$]h&]uh1hhj\ubh)}(h**Description**h]jJ)}(hj~]h]h Description}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj|]ubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhj\ubh)}(hMakes 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]hMakes 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.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhj\ubh)}(h **Return**h]jJ)}(hj]h]hReturn}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj]ubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhj\ubh)}(hRsg_table filled with the DMA addresses to use or ERR_PRT with negative error code.h]hRsg_table filled with the DMA addresses to use or ERR_PRT with negative error code.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhj\ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjShhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!amdgpu_dma_buf_unmap (C function)c.amdgpu_dma_buf_unmaphNtauh1jhjShhhNhNubj)}(hhh](j)}(hpvoid amdgpu_dma_buf_unmap (struct dma_buf_attachment *attach, struct sg_table *sgt, enum dma_data_direction dir)h]j)}(hovoid amdgpu_dma_buf_unmap(struct dma_buf_attachment *attach, struct sg_table *sgt, enum dma_data_direction dir)h](j )}(hvoidh]hvoid}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]hhhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKubj)}(h h]h }(hj]hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj]hhhj]hKubj,)}(hamdgpu_dma_buf_unmaph]j2)}(hamdgpu_dma_buf_unmaph]hamdgpu_dma_buf_unmap}(hj ^hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj^ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj]hhhj]hKubjM)}(hV(struct dma_buf_attachment *attach, struct sg_table *sgt, enum dma_data_direction dir)h](jS)}(h!struct dma_buf_attachment *attachh](jY)}(hj\h]hstruct}(hj'^hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj#^ubj)}(h h]h }(hj4^hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj#^ubh)}(hhh]j2)}(hdma_buf_attachmenth]hdma_buf_attachment}(hjE^hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjB^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjG^modnameN classnameNjj)}j]j)}jj ^sbc.amdgpu_dma_buf_unmapasbuh1hhj#^ubj)}(h h]h }(hje^hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj#^ubj)}(hj4h]h*}(hjs^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#^ubj2)}(hattachh]hattach}(hj^hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj#^ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj^ubjS)}(hstruct sg_table *sgth](jY)}(hj\h]hstruct}(hj^hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj^ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj^ubh)}(hhh]j2)}(hsg_tableh]hsg_table}(hj^hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNjj)}j]ja^c.amdgpu_dma_buf_unmapasbuh1hhj^ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj^ubj)}(hj4h]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj2)}(hsgth]hsgt}(hj^hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj^ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj^ubjS)}(henum dma_data_direction dirh](jY)}(hjQDh]henum}(hj _hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj_ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj_ubh)}(hhh]j2)}(hdma_data_directionh]hdma_data_direction}(hj'_hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj$_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)_modnameN classnameNjj)}j]ja^c.amdgpu_dma_buf_unmapasbuh1hhj_ubj)}(h h]h }(hjE_hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj_ubj2)}(hdirh]hdir}(hjS_hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj_ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj^ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj]hhhj]hKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj]hhhj]hKubah}(h]j]ah ](jjeh"]h$]h&]jj)jhuh1jhj]hKhj]hhubj)}(hhh]h)}(h@:c:type:`dma_buf_ops.unmap_dma_buf ` implementationh](h)}(h1:c:type:`dma_buf_ops.unmap_dma_buf `h]j)}(hj_h]hdma_buf_ops.unmap_dma_buf}(hj_hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]ja^c.amdgpu_dma_buf_unmapasbj dma_buf_opsuh1hhjThK1hj}_ubh implementation}(hj}_hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhjz_hhubah}(h]h ]h"]h$]h&]uh1jhj]hhhj]hKubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j_j6j_j7j8j9uh1jhhhjShNhNubj;)}(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]jJ)}(hj_h]h Parameters}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj_ubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhj_ubh)}(hhh](h)}(h9``struct dma_buf_attachment *attach`` DMA-buf attachment h](j)}(h%``struct dma_buf_attachment *attach``h]j)}(hj_h]h!struct dma_buf_attachment *attach}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhj_ubj)}(hhh]h)}(hDMA-buf attachmenth]hDMA-buf attachment}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hKhj_ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1hhj_hKhj_ubh)}(h+``struct sg_table *sgt`` sg_table to unmap h](j)}(h``struct sg_table *sgt``h]j)}(hj`h]hstruct sg_table *sgt}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhj`ubj)}(hhh]h)}(hsg_table to unmaph]hsg_table to unmap}(hj4`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0`hKhj1`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1hhj0`hKhj_ubh)}(h.``enum dma_data_direction dir`` DMA direction h](j)}(h``enum dma_data_direction dir``h]j)}(hjT`h]henum dma_data_direction dir}(hjV`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjR`ubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhjN`ubj)}(hhh]h)}(h DMA directionh]h DMA direction}(hjm`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhji`hKhjj`ubah}(h]h ]h"]h$]h&]uh1jhjN`ubeh}(h]h ]h"]h$]h&]uh1hhji`hKhj_ubeh}(h]h ]h"]h$]h&]uh1hhj_ubh)}(h**Description**h]jJ)}(hj`h]h Description}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj`ubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhj_ubh)}(hThis 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]hThis 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`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhj_ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjShhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j,amdgpu_dma_buf_begin_cpu_access (C function)!c.amdgpu_dma_buf_begin_cpu_accesshNtauh1jhjShhhNhNubj)}(hhh](j)}(h`int amdgpu_dma_buf_begin_cpu_access (struct dma_buf *dma_buf, enum dma_data_direction direction)h]j)}(h_int amdgpu_dma_buf_begin_cpu_access(struct dma_buf *dma_buf, enum dma_data_direction direction)h](j )}(hinth]hint}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`hhhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKubj)}(h h]h }(hj`hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj`hhhj`hKubj,)}(hamdgpu_dma_buf_begin_cpu_accessh]j2)}(hamdgpu_dma_buf_begin_cpu_accessh]hamdgpu_dma_buf_begin_cpu_access}(hj`hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj`ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj`hhhj`hKubjM)}(h<(struct dma_buf *dma_buf, enum dma_data_direction direction)h](jS)}(hstruct dma_buf *dma_bufh](jY)}(hj\h]hstruct}(hjahhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj aubj)}(h h]h }(hjahhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj aubh)}(hhh]j2)}(hdma_bufh]hdma_buf}(hj/ahhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj,aubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1amodnameN classnameNjj)}j]j)}jj`sb!c.amdgpu_dma_buf_begin_cpu_accessasbuh1hhj aubj)}(h h]h }(hjOahhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj aubj)}(hj4h]h*}(hj]ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj aubj2)}(hdma_bufh]hdma_buf}(hjjahhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj aubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj aubjS)}(h!enum dma_data_direction directionh](jY)}(hjQDh]henum}(hjahhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjaubh)}(hhh]j2)}(hdma_data_directionh]hdma_data_direction}(hjahhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjaubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjamodnameN classnameNjj)}j]jKa!c.amdgpu_dma_buf_begin_cpu_accessasbuh1hhjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjaubj2)}(h directionh]h direction}(hjahhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjaubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj aubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj`hhhj`hKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj`hhhj`hKubah}(h]j`ah ](jjeh"]h$]h&]jj)jhuh1jhj`hKhj`hhubj)}(hhh]h)}(hC:c:type:`dma_buf_ops.begin_cpu_access ` implementationh](h)}(h4:c:type:`dma_buf_ops.begin_cpu_access `h]j)}(hjah]hdma_buf_ops.begin_cpu_access}(hjahhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]jKa!c.amdgpu_dma_buf_begin_cpu_accessasbj dma_buf_opsuh1hhjThK1hjaubh implementation}(hjahhhNhNubeh}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhjahhubah}(h]h ]h"]h$]h&]uh1jhj`hhhj`hKubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j3bj6j3bj7j8j9uh1jhhhjShNhNubj;)}(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]jJ)}(hj=bh]h Parameters}(hj?bhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj;bubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhj7bubh)}(hhh](h)}(h.``struct dma_buf *dma_buf`` Shared DMA buffer h](j)}(h``struct dma_buf *dma_buf``h]j)}(hj\bh]hstruct dma_buf *dma_buf}(hj^bhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZbubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhjVbubj)}(hhh]h)}(hShared DMA bufferh]hShared DMA buffer}(hjubhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqbhKhjrbubah}(h]h ]h"]h$]h&]uh1jhjVbubeh}(h]h ]h"]h$]h&]uh1hhjqbhKhjSbubh)}(h@``enum dma_data_direction direction`` Direction of DMA transfer h](j)}(h%``enum dma_data_direction direction``h]j)}(hjbh]h!enum dma_data_direction direction}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhjbubj)}(hhh]h)}(hDirection of DMA transferh]hDirection of DMA transfer}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhKhjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1hhjbhKhjSbubeh}(h]h ]h"]h$]h&]uh1hhj7bubh)}(h**Description**h]jJ)}(hjbh]h Description}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjbubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhj7bubh)}(hThis 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]hThis 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.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chKhj7bubh)}(h **Return**h]jJ)}(hjbh]hReturn}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjbubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhj7bubh)}(h10 on success or a negative error code on failure.h]h10 on success or a negative error code on failure.}(hj chhhNhNubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhj7bubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjShhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$amdgpu_gem_prime_export (C function)c.amdgpu_gem_prime_exporthNtauh1jhjShhhNhNubj)}(hhh](j)}(hQstruct dma_buf * amdgpu_gem_prime_export (struct drm_gem_object *gobj, int flags)h]j)}(hOstruct dma_buf *amdgpu_gem_prime_export(struct drm_gem_object *gobj, int flags)h](jY)}(hj\h]hstruct}(hjah"]h$]h&]uh1j1hjXcubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj]cmodnameN classnameNjj)}j]j)}jamdgpu_gem_prime_exportsbc.amdgpu_gem_prime_exportasbuh1hhj8chhhjIchM.ubj)}(h h]h }(hj|chhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj8chhhjIchM.ubj)}(hj4h]h*}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8chhhjIchM.ubj,)}(hamdgpu_gem_prime_exporth]j2)}(hjych]hamdgpu_gem_prime_export}(hjchhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjcubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj8chhhjIchM.ubjM)}(h((struct drm_gem_object *gobj, int flags)h](jS)}(hstruct drm_gem_object *gobjh](jY)}(hj\h]hstruct}(hjchhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjcubj)}(h h]h }(hjchhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjcubh)}(hhh]j2)}(hdrm_gem_objecth]hdrm_gem_object}(hjchhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjcubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcmodnameN classnameNjj)}j]jwcc.amdgpu_gem_prime_exportasbuh1hhjcubj)}(h h]h }(hjchhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjcubj)}(hj4h]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj2)}(hgobjh]hgobj}(hj dhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjcubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjcubjS)}(h int flagsh](j )}(hinth]hint}(hj&dhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"dubj)}(h h]h }(hj4dhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj"dubj2)}(hflagsh]hflags}(hjBdhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj"dubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjcubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj8chhhjIchM.ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj4chhhjIchM.ubah}(h]j/cah ](jjeh"]h$]h&]jj)jhuh1jhjIchM.hj1chhubj)}(hhh]h)}(hA:c:type:`drm_driver.gem_prime_export ` implementationh](h)}(h2:c:type:`drm_driver.gem_prime_export `h]j)}(hjrdh]hdrm_driver.gem_prime_export}(hjtdhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjpdubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]jwcc.amdgpu_gem_prime_exportasbj drm_driveruh1hhjThK1hjldubh implementation}(hjldhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chM.hjidhhubah}(h]h ]h"]h$]h&]uh1jhj1chhhjIchM.ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jdj6jdj7j8j9uh1jhhhjShNhNubj;)}(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]jJ)}(hjdh]h Parameters}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjdubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chM2hjdubh)}(hhh](h)}(h'``struct drm_gem_object *gobj`` GEM BO h](j)}(h``struct drm_gem_object *gobj``h]j)}(hjdh]hstruct drm_gem_object *gobj}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chM/hjdubj)}(hhh]h)}(hGEM BOh]hGEM BO}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhM/hjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1hhjdhM/hjdubh)}(h6``int flags`` Flags such as DRM_CLOEXEC and DRM_RDWR. h](j)}(h ``int flags``h]j)}(hj eh]h int flags}(hj ehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chM0hjeubj)}(hhh]h)}(h'Flags such as DRM_CLOEXEC and DRM_RDWR.h]h'Flags such as DRM_CLOEXEC and DRM_RDWR.}(hj#ehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehM0hj eubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1hhjehM0hjdubeh}(h]h ]h"]h$]h&]uh1hhjdubh)}(h**Description**h]jJ)}(hjEeh]h Description}(hjGehhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjCeubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chM2hjdubh)}(hCThe main work is done by the :c:type:`drm_gem_prime_export` helper.h](hThe main work is done by the }(hj[ehhhNhNubh)}(h:c:type:`drm_gem_prime_export`h]j)}(hjeeh]hdrm_gem_prime_export}(hjgehhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjceubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjdrm_gem_prime_exportuh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chM2hj[eubh helper.}(hj[ehhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjehM2hjdubh)}(h **Return**h]jJ)}(hjeh]hReturn}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjeubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chM4hjdubh)}(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.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chM4hjdubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjShhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&amdgpu_dma_buf_create_obj (C function)c.amdgpu_dma_buf_create_objhNtauh1jhjShhhNhNubj)}(hhh](j)}(hcstruct drm_gem_object * amdgpu_dma_buf_create_obj (struct drm_device *dev, struct dma_buf *dma_buf)h]j)}(hastruct drm_gem_object *amdgpu_dma_buf_create_obj(struct drm_device *dev, struct dma_buf *dma_buf)h](jY)}(hj\h]hstruct}(hjehhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjehhhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMIubj)}(h h]h }(hjehhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjehhhjehMIubh)}(hhh]j2)}(hdrm_gem_objecth]hdrm_gem_object}(hjehhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjemodnameN classnameNjj)}j]j)}jamdgpu_dma_buf_create_objsbc.amdgpu_dma_buf_create_objasbuh1hhjehhhjehMIubj)}(h h]h }(hjfhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjehhhjehMIubj)}(hj4h]h*}(hj"fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjehhhjehMIubj,)}(hamdgpu_dma_buf_create_objh]j2)}(hjfh]hamdgpu_dma_buf_create_obj}(hj3fhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj/fubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjehhhjehMIubjM)}(h1(struct drm_device *dev, struct dma_buf *dma_buf)h](jS)}(hstruct drm_device *devh](jY)}(hj\h]hstruct}(hjNfhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjJfubj)}(h h]h }(hj[fhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjJfubh)}(hhh]j2)}(h drm_deviceh]h drm_device}(hjlfhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjifubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnfmodnameN classnameNjj)}j]jfc.amdgpu_dma_buf_create_objasbuh1hhjJfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjJfubj)}(hj4h]h*}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJfubj2)}(hdevh]hdev}(hjfhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjJfubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjFfubjS)}(hstruct dma_buf *dma_bufh](jY)}(hj\h]hstruct}(hjfhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjfubh)}(hhh]j2)}(hdma_bufh]hdma_buf}(hjfhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]jfc.amdgpu_dma_buf_create_objasbuh1hhjfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjfubj)}(hj4h]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj2)}(hdma_bufh]hdma_buf}(hjghhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjfubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjFfubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjehhhjehMIubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjehhhjehMIubah}(h]jeah ](jjeh"]h$]h&]jj)jhuh1jhjehMIhjehhubj)}(hhh]h)}(hcreate BO for DMA-buf importh]hcreate BO for DMA-buf import}(hj?ghhhNhNubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMIhjah"]h$]h&]uh1j1hj}hubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj\hhhhjnhhM|ubjM)}(h#(struct dma_buf_attachment *attach)h]jS)}(h!struct dma_buf_attachment *attachh](jY)}(hj\h]hstruct}(hjhhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjhubj)}(h h]h }(hjhhFhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjhubh)}(hhh]j2)}(hdma_buf_attachmenth]hdma_buf_attachment}(hjhhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjhubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjhmodnameN classnameNjj)}j]j)}jjhsbc.amdgpu_dma_buf_move_notifyasbuh1hhjhubj)}(h h]h }(hjhhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjhubj)}(hj4h]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj2)}(hattachh]hattach}(hjhhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjhubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjhubah}(h]h ]h"]h$]h&]jJjKuh1jLhj\hhhhjnhhM|ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjXhhhhjnhhM|ubah}(h]jShah ](jjeh"]h$]h&]jj)jhuh1jhjnhhM|hjUhhhubj)}(hhh]h)}(h4:c:type:`attach.move_notify ` implementationh](h)}(h%:c:type:`attach.move_notify `h]j)}(hj&ih]hattach.move_notify}(hj(ihhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj$iubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]jhc.amdgpu_dma_buf_move_notifyasbjattachuh1hhjThK1hj iubh implementation}(hj ihhhNhNubeh}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chM|hjihhubah}(h]h ]h"]h$]h&]uh1jhjUhhhhjnhhM|ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j\ij6j\ij7j8j9uh1jhhhjShNhNubj;)}(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]jJ)}(hjfih]h Parameters}(hjhihhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjdiubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhj`iubh)}(hhh]h)}(h=``struct dma_buf_attachment *attach`` the DMA-buf attachment h](j)}(h%``struct dma_buf_attachment *attach``h]j)}(hjih]h!struct dma_buf_attachment *attach}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chM~hjiubj)}(hhh]h)}(hthe DMA-buf attachmenth]hthe DMA-buf attachment}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihM~hjiubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1hhjihM~hj|iubah}(h]h ]h"]h$]h&]uh1hhj`iubh)}(h**Description**h]jJ)}(hjih]h Description}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjiubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhj`iubh)}(heInvalidate the DMA-buf attachment, making sure that the we re-create the mapping before the next use.h]heInvalidate the DMA-buf attachment, making sure that the we re-create the mapping before the next use.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhj`iubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjShhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$amdgpu_gem_prime_import (C function)c.amdgpu_gem_prime_importhNtauh1jhjShhhNhNubj)}(hhh](j)}(hastruct drm_gem_object * amdgpu_gem_prime_import (struct drm_device *dev, struct dma_buf *dma_buf)h]j)}(h_struct drm_gem_object *amdgpu_gem_prime_import(struct drm_device *dev, struct dma_buf *dma_buf)h](jY)}(hj\h]hstruct}(hjjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjjhhhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMubj)}(h h]h }(hjjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjjhhhjjhMubh)}(hhh]j2)}(hdrm_gem_objecth]hdrm_gem_object}(hj$jhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj!jubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj&jmodnameN classnameNjj)}j]j)}jamdgpu_gem_prime_importsbc.amdgpu_gem_prime_importasbuh1hhjjhhhjjhMubj)}(h h]h }(hjEjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjjhhhjjhMubj)}(hj4h]h*}(hjSjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjhhhjjhMubj,)}(hamdgpu_gem_prime_importh]j2)}(hjBjh]hamdgpu_gem_prime_import}(hjdjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj`jubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjjhhhjjhMubjM)}(h1(struct drm_device *dev, struct dma_buf *dma_buf)h](jS)}(hstruct drm_device *devh](jY)}(hj\h]hstruct}(hjjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj{jubj)}(h h]h }(hjjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj{jubh)}(hhh]j2)}(h drm_deviceh]h drm_device}(hjjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]j@jc.amdgpu_gem_prime_importasbuh1hhj{jubj)}(h h]h }(hjjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj{jubj)}(hj4h]h*}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{jubj2)}(hdevh]hdev}(hjjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj{jubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjwjubjS)}(hstruct dma_buf *dma_bufh](jY)}(hj\h]hstruct}(hjjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjjubj)}(h h]h }(hjjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjjubh)}(hhh]j2)}(hdma_bufh]hdma_buf}(hj khhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj kubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]j@jc.amdgpu_gem_prime_importasbuh1hhjjubj)}(h h]h }(hj+khhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjjubj)}(hj4h]h*}(hj9khhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj2)}(hdma_bufh]hdma_buf}(hjFkhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjwjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjjhhhjjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjihhhjjhMubah}(h]jiah ](jjeh"]h$]h&]jj)jhuh1jhjjhMhjihhubj)}(hhh]h)}(hA:c:type:`drm_driver.gem_prime_import ` implementationh](h)}(h2:c:type:`drm_driver.gem_prime_import `h]j)}(hjvkh]hdrm_driver.gem_prime_import}(hjxkhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjtkubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]j@jc.amdgpu_gem_prime_importasbj drm_driveruh1hhjThK1hjpkubh implementation}(hjpkhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhjmkhhubah}(h]h ]h"]h$]h&]uh1jhjihhhjjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jkj6jkj7j8j9uh1jhhhjShNhNubj;)}(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]jJ)}(hjkh]h Parameters}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjkubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhjkubh)}(hhh](h)}(h&``struct drm_device *dev`` DRM device h](j)}(h``struct drm_device *dev``h]j)}(hjkh]hstruct drm_device *dev}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhjkubj)}(hhh]h)}(h DRM deviceh]h DRM device}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkhMhjkubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1hhjkhMhjkubh)}(h.``struct dma_buf *dma_buf`` Shared DMA buffer h](j)}(h``struct dma_buf *dma_buf``h]j)}(hjlh]hstruct dma_buf *dma_buf}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj lubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhjlubj)}(hhh]h)}(hShared DMA bufferh]hShared DMA buffer}(hj'lhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#lhMhj$lubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1hhj#lhMhjkubeh}(h]h ]h"]h$]h&]uh1hhjkubh)}(h**Description**h]jJ)}(hjIlh]h Description}(hjKlhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjGlubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhjkubh)}(hKImport a dma_buf into a the driver and potentially create a new GEM object.h]hKImport a dma_buf into a the driver and potentially create a new GEM object.}(hj_lhhhNhNubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhjkubh)}(h **Return**h]jJ)}(hjplh]hReturn}(hjrlhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjnlubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhjkubh)}(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.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhjkubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjShhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j-amdgpu_dmabuf_is_xgmi_accessible (C function)"c.amdgpu_dmabuf_is_xgmi_accessiblehNtauh1jhjShhhNhNubj)}(hhh](j)}(hXbool amdgpu_dmabuf_is_xgmi_accessible (struct amdgpu_device *adev, struct amdgpu_bo *bo)h]j)}(hWbool amdgpu_dmabuf_is_xgmi_accessible(struct amdgpu_device *adev, struct amdgpu_bo *bo)h](j )}(hj h]hbool}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlhhhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMubj)}(h h]h }(hjlhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjlhhhjlhMubj,)}(h amdgpu_dmabuf_is_xgmi_accessibleh]j2)}(h amdgpu_dmabuf_is_xgmi_accessibleh]h amdgpu_dmabuf_is_xgmi_accessible}(hjlhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjlubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjlhhhjlhMubjM)}(h2(struct amdgpu_device *adev, struct amdgpu_bo *bo)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjlhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjlubj)}(h h]h }(hjlhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjlubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjmhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj mubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]j)}jjlsb"c.amdgpu_dmabuf_is_xgmi_accessibleasbuh1hhjlubj)}(h h]h }(hj/mhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjlubj)}(hj4h]h*}(hj=mhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubj2)}(hadevh]hadev}(hjJmhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjlubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjlubjS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hjcmhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj_mubj)}(h h]h }(hjpmhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj_mubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjmhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj~mubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]j+m"c.amdgpu_dmabuf_is_xgmi_accessibleasbuh1hhj_mubj)}(h h]h }(hjmhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj_mubj)}(hj4h]h*}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_mubj2)}(hboh]hbo}(hjmhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj_mubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjlubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjlhhhjlhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjlhhhjlhMubah}(h]jlah ](jjeh"]h$]h&]jj)jhuh1jhjlhMhjlhhubj)}(hhh]h)}(h(Check if xgmi available for P2P transferh]h(Check if xgmi available for P2P transfer}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhjmhhubah}(h]h ]h"]h$]h&]uh1jhjlhhhjlhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jmj6jmj7j8j9uh1jhhhjShNhNubj;)}(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]jJ)}(hjnh]h Parameters}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjnubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhjnubh)}(hhh](h)}(hE``struct amdgpu_device *adev`` amdgpu_device pointer of the importer h](j)}(h``struct amdgpu_device *adev``h]j)}(hj%nh]hstruct amdgpu_device *adev}(hj'nhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#nubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhjnubj)}(hhh]h)}(h%amdgpu_device pointer of the importerh]h%amdgpu_device pointer of the importer}(hj>nhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:nhMhj;nubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1hhj:nhMhjnubh)}(h.``struct amdgpu_bo *bo`` amdgpu buffer object h](j)}(h``struct amdgpu_bo *bo``h]j)}(hj^nh]hstruct amdgpu_bo *bo}(hj`nhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\nubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhjXnubj)}(hhh]h)}(hamdgpu buffer objecth]hamdgpu buffer object}(hjwnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjsnhMhjtnubah}(h]h ]h"]h$]h&]uh1jhjXnubeh}(h]h ]h"]h$]h&]uh1hhjsnhMhjnubeh}(h]h ]h"]h$]h&]uh1hhjnubh)}(h **Return**h]jJ)}(hjnh]hReturn}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjnubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhjnubh)}(h5True if dmabuf accessible over xgmi, false otherwise.h]h5True if dmabuf accessible over xgmi, false otherwise.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhs/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:176: ./drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.chMhjnubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjShhhNhNubeh}(h]prime-buffer-sharingah ]h"]prime buffer sharingah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h MMU Notifierh]h MMU Notifier}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhhhhhKubh)}(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.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:182: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chK hjnhhubh)}(hWhen 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]hWhen 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.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:182: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chK#hjnhhubh)}(hNew 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]hNew 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.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:182: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chK'hjnhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&amdgpu_hmm_invalidate_gfx (C function)c.amdgpu_hmm_invalidate_gfxhNtauh1jhjnhhhNhNubj)}(hhh](j)}(hbool amdgpu_hmm_invalidate_gfx (struct mmu_interval_notifier *mni, const struct mmu_notifier_range *range, unsigned long cur_seq)h]j)}(hbool amdgpu_hmm_invalidate_gfx(struct mmu_interval_notifier *mni, const struct mmu_notifier_range *range, unsigned long cur_seq)h](j )}(hj h]hbool}(hj$ohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ohhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chK9ubj)}(h h]h }(hj2ohhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj ohhhj1ohK9ubj,)}(hamdgpu_hmm_invalidate_gfxh]j2)}(hamdgpu_hmm_invalidate_gfxh]hamdgpu_hmm_invalidate_gfx}(hjDohhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj@oubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj ohhhj1ohK9ubjM)}(hb(struct mmu_interval_notifier *mni, const struct mmu_notifier_range *range, unsigned long cur_seq)h](jS)}(h!struct mmu_interval_notifier *mnih](jY)}(hj\h]hstruct}(hj`ohhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj\oubj)}(h h]h }(hjmohhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj\oubh)}(hhh]j2)}(hmmu_interval_notifierh]hmmu_interval_notifier}(hj~ohhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj{oubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNjj)}j]j)}jjFosbc.amdgpu_hmm_invalidate_gfxasbuh1hhj\oubj)}(h h]h }(hjohhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj\oubj)}(hj4h]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\oubj2)}(hmnih]hmni}(hjohhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj\oubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjXoubjS)}(h&const struct mmu_notifier_range *rangeh](jY)}(hconsth]hconst}(hjohhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjoubj)}(h h]h }(hjohhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjoubjY)}(hj\h]hstruct}(hjohhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjoubj)}(h h]h }(hjohhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjoubh)}(hhh]j2)}(hmmu_notifier_rangeh]hmmu_notifier_range}(hj phhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj pubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]joc.amdgpu_hmm_invalidate_gfxasbuh1hhjoubj)}(h h]h }(hj*phhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjoubj)}(hj4h]h*}(hj8phhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj2)}(hrangeh]hrange}(hjEphhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjoubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjXoubjS)}(hunsigned long cur_seqh](j )}(hunsignedh]hunsigned}(hj^phhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZpubj)}(h h]h }(hjlphhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjZpubj )}(hlongh]hlong}(hjzphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZpubj)}(h h]h }(hjphhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjZpubj2)}(hcur_seqh]hcur_seq}(hjphhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjZpubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjXoubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj ohhhj1ohK9ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjohhhj1ohK9ubah}(h]joah ](jjeh"]h$]h&]jj)jhuh1jhj1ohK9hjohhubj)}(hhh]h)}(h"callback to notify about mm changeh]h"callback to notify about mm change}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chK9hjphhubah}(h]h ]h"]h$]h&]uh1jhjohhhj1ohK9ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jpj6jpj7j8j9uh1jhhhjnhNhNubj;)}(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]jJ)}(hjph]h Parameters}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjpubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chK=hjpubh)}(hhh](h)}(hH``struct mmu_interval_notifier *mni`` the range (mm) is about to update h](j)}(h%``struct mmu_interval_notifier *mni``h]j)}(hjqh]h!struct mmu_interval_notifier *mni}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chK;hjpubj)}(hhh]h)}(h!the range (mm) is about to updateh]h!the range (mm) is about to update}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhK;hjqubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1hhjqhK;hjpubh)}(hG``const struct mmu_notifier_range *range`` details on the invalidation h](j)}(h*``const struct mmu_notifier_range *range``h]j)}(hj:qh]h&const struct mmu_notifier_range *range}(hjah"]h$]h&]uh1j1hjrubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjqhhhjrhK^ubjM)}(hb(struct mmu_interval_notifier *mni, const struct mmu_notifier_range *range, unsigned long cur_seq)h](jS)}(h!struct mmu_interval_notifier *mnih](jY)}(hj\h]hstruct}(hj/rhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj+rubj)}(h h]h }(hjah"]h$]h&]uh1j1hjJrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOrmodnameN classnameNjj)}j]j)}jjrsbc.amdgpu_hmm_invalidate_hsaasbuh1hhj+rubj)}(h h]h }(hjmrhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj+rubj)}(hj4h]h*}(hj{rhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+rubj2)}(hmnih]hmni}(hjrhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj+rubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj'rubjS)}(h&const struct mmu_notifier_range *rangeh](jY)}(hjoh]hconst}(hjrhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjrubjY)}(hj\h]hstruct}(hjrhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjrubh)}(hhh]j2)}(hmmu_notifier_rangeh]hmmu_notifier_range}(hjrhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]jirc.amdgpu_hmm_invalidate_hsaasbuh1hhjrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjrubj)}(hj4h]h*}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj2)}(hrangeh]hrange}(hjshhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjrubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj'rubjS)}(hunsigned long cur_seqh](j )}(hunsignedh]hunsigned}(hj,shhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(subj)}(h h]h }(hj:shhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj(subj )}(hlongh]hlong}(hjHshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(subj)}(h h]h }(hjVshhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj(subj2)}(hcur_seqh]hcur_seq}(hjdshhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj(subeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj'rubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjqhhhjrhK^ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjqhhhjrhK^ubah}(h]jqah ](jjeh"]h$]h&]jj)jhuh1jhjrhK^hjqhhubj)}(hhh]h)}(h"callback to notify about mm changeh]h"callback to notify about mm change}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chK^hjshhubah}(h]h ]h"]h$]h&]uh1jhjqhhhjrhK^ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jsj6jsj7j8j9uh1jhhhjnhNhNubj;)}(hXn**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** We temporarily evict the BO attached to this range. This necessitates evicting all user-mode queues of the process.h](h)}(h**Parameters**h]jJ)}(hjsh]h Parameters}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjsubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chKbhjsubh)}(hhh](h)}(hH``struct mmu_interval_notifier *mni`` the range (mm) is about to update h](j)}(h%``struct mmu_interval_notifier *mni``h]j)}(hjsh]h!struct mmu_interval_notifier *mni}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chK`hjsubj)}(hhh]h)}(h!the range (mm) is about to updateh]h!the range (mm) is about to update}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshK`hjsubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1hhjshK`hjsubh)}(hG``const struct mmu_notifier_range *range`` details on the invalidation h](j)}(h*``const struct mmu_notifier_range *range``h]j)}(hjth]h&const struct mmu_notifier_range *range}(hj thhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chKahjtubj)}(hhh]h)}(hdetails on the invalidationh]hdetails on the invalidation}(hj!thhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthKahjtubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1hhjthKahjsubh)}(hB``unsigned long cur_seq`` Value to pass to mmu_interval_set_seq() h](j)}(h``unsigned long cur_seq``h]j)}(hjAth]hunsigned long cur_seq}(hjCthhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?tubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chKbhj;tubj)}(hhh]h)}(h'Value to pass to mmu_interval_set_seq()h]h'Value to pass to mmu_interval_set_seq()}(hjZthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVthKbhjWtubah}(h]h ]h"]h$]h&]uh1jhj;tubeh}(h]h ]h"]h$]h&]uh1hhjVthKbhjsubeh}(h]h ]h"]h$]h&]uh1hhjsubh)}(h**Description**h]jJ)}(hj|th]h Description}(hj~thhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjztubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chKdhjsubh)}(hsWe temporarily evict the BO attached to this range. This necessitates evicting all user-mode queues of the process.h]hsWe temporarily evict the BO attached to this range. This necessitates evicting all user-mode queues of the process.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chKdhjsubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjnhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j amdgpu_hmm_register (C function)c.amdgpu_hmm_registerhNtauh1jhjnhhhNhNubj)}(hhh](j)}(hBint amdgpu_hmm_register (struct amdgpu_bo *bo, unsigned long addr)h]j)}(hAint amdgpu_hmm_register(struct amdgpu_bo *bo, unsigned long addr)h](j )}(hinth]hint}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjthhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chKzubj)}(h h]h }(hjthhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjthhhjthKzubj,)}(hamdgpu_hmm_registerh]j2)}(hamdgpu_hmm_registerh]hamdgpu_hmm_register}(hjthhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjtubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjthhhjthKzubjM)}(h*(struct amdgpu_bo *bo, unsigned long addr)h](jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hjthhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjtubj)}(h h]h }(hj uhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjtubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjuhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjuubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjumodnameN classnameNjj)}j]j)}jjtsbc.amdgpu_hmm_registerasbuh1hhjtubj)}(h h]h }(hjah"]h$]h&]uh1j1hjtubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjtubjS)}(hunsigned long addrh](j )}(hunsignedh]hunsigned}(hjpuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjluubj)}(h h]h }(hj~uhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjluubj )}(hlongh]hlong}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjluubj)}(h h]h }(hjuhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjluubj2)}(haddrh]haddr}(hjuhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjluubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjtubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjthhhjthKzubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjthhhjthKzubah}(h]jtah ](jjeh"]h$]h&]jj)jhuh1jhjthKzhjthhubj)}(hhh]h)}(h"register a BO for notifier updatesh]h"register a BO for notifier updates}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chKzhjuhhubah}(h]h ]h"]h$]h&]uh1jhjthhhjthKzubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5juj6juj7j8j9uh1jhhhjnhNhNubj;)}(hX**Parameters** ``struct amdgpu_bo *bo`` amdgpu buffer object ``unsigned long addr`` userptr addr we should monitor **Description** Registers a mmu_notifier for the given BO at the specified address. Returns 0 on success, -ERRNO if anything goes wrong.h](h)}(h**Parameters**h]jJ)}(hjuh]h Parameters}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjuubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chK~hjuubh)}(hhh](h)}(h.``struct amdgpu_bo *bo`` amdgpu buffer object h](j)}(h``struct amdgpu_bo *bo``h]j)}(hjvh]hstruct amdgpu_bo *bo}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chK|hj vubj)}(hhh]h)}(hamdgpu buffer objecth]hamdgpu buffer object}(hj,vhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(vhK|hj)vubah}(h]h ]h"]h$]h&]uh1jhj vubeh}(h]h ]h"]h$]h&]uh1hhj(vhK|hj vubh)}(h6``unsigned long addr`` userptr addr we should monitor h](j)}(h``unsigned long addr``h]j)}(hjLvh]hunsigned long addr}(hjNvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJvubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chK}hjFvubj)}(hhh]h)}(huserptr addr we should monitorh]huserptr addr we should monitor}(hjevhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjavhK}hjbvubah}(h]h ]h"]h$]h&]uh1jhjFvubeh}(h]h ]h"]h$]h&]uh1hhjavhK}hj vubeh}(h]h ]h"]h$]h&]uh1hhjuubh)}(h**Description**h]jJ)}(hjvh]h Description}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjvubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chKhjuubh)}(hxRegisters a mmu_notifier for the given BO at the specified address. Returns 0 on success, -ERRNO if anything goes wrong.h]hxRegisters a mmu_notifier for the given BO at the specified address. Returns 0 on success, -ERRNO if anything goes wrong.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chKhjuubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjnhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"amdgpu_hmm_unregister (C function)c.amdgpu_hmm_unregisterhNtauh1jhjnhhhNhNubj)}(hhh](j)}(h1void amdgpu_hmm_unregister (struct amdgpu_bo *bo)h]j)}(h0void amdgpu_hmm_unregister(struct amdgpu_bo *bo)h](j )}(hvoidh]hvoid}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvhhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chKubj)}(h h]h }(hjvhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjvhhhjvhKubj,)}(hamdgpu_hmm_unregisterh]j2)}(hamdgpu_hmm_unregisterh]hamdgpu_hmm_unregister}(hjvhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjvubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjvhhhjvhKubjM)}(h(struct amdgpu_bo *bo)h]jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hj whhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjwubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hj'whhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj$wubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)wmodnameN classnameNjj)}j]j)}jjvsbc.amdgpu_hmm_unregisterasbuh1hhjwubj)}(h h]h }(hjGwhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjwubj)}(hj4h]h*}(hjUwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj2)}(hboh]hbo}(hjbwhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjwubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjwubah}(h]h ]h"]h$]h&]jJjKuh1jLhjvhhhjvhKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjvhhhjvhKubah}(h]jvah ](jjeh"]h$]h&]jj)jhuh1jhjvhKhjvhhubj)}(hhh]h)}(h$unregister a BO for notifier updatesh]h$unregister a BO for notifier updates}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chKhjwhhubah}(h]h ]h"]h$]h&]uh1jhjvhhhjvhKubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jwj6jwj7j8j9uh1jhhhjnhNhNubj;)}(h**Parameters** ``struct amdgpu_bo *bo`` amdgpu buffer object **Description** Remove any registration of mmu notifier updates from the buffer object.h](h)}(h**Parameters**h]jJ)}(hjwh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjwubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chKhjwubh)}(hhh]h)}(h.``struct amdgpu_bo *bo`` amdgpu buffer object h](j)}(h``struct amdgpu_bo *bo``h]j)}(hjwh]hstruct amdgpu_bo *bo}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chKhjwubj)}(hhh]h)}(hamdgpu buffer objecth]hamdgpu buffer object}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhKhjwubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1hhjwhKhjwubah}(h]h ]h"]h$]h&]uh1hhjwubh)}(h**Description**h]jJ)}(hjxh]h Description}(hj xhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjxubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chKhjwubh)}(hGRemove any registration of mmu notifier updates from the buffer object.h]hGRemove any registration of mmu notifier updates from the buffer object.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:185: ./drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.chKhjwubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjnhhhNhNubeh}(h] mmu-notifierah ]h"] mmu notifierah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hAMDGPU Virtual Memoryh]hAMDGPU Virtual Memory}(hj?xhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjah"]h$]h&]uh1j1hjxubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjxhhhjxhKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjxhhhjxhKubah}(h]jxah ](jjeh"]h$]h&]jj)jhuh1jhjxhKhjxhhubj)}(hhh]h)}(hHHelper to disable partial resident texture feature from a fence callbackh]hHHelper to disable partial resident texture feature from a fence callback}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chKdhjxhhubah}(h]h ]h"]h$]h&]uh1jhjxhhhjxhKubeh}(h]h ](jstructeh"]h$]h&]j4jj5j yj6j yj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjzubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjyhhhjzhKuubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjyhhhjzhKuubah}(h]jyah ](jjeh"]h$]h&]jj)jhuh1jhjzhKuhjyhhubj)}(hhh]h)}(h*Helper to increment the TLB flush sequenceh]h*Helper to increment the TLB flush sequence}(hj7zhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chKthj4zhhubah}(h]h ]h"]h$]h&]uh1jhjyhhhjzhKuubeh}(h]h ](jstructeh"]h$]h&]j4jj5jOzj6jOzj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjT{ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj3{hhhjE{hKubjM)}(h=(struct amdgpu_device *adev, struct amdgpu_vm *vm, u32 pasid)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjt{hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjp{ubj)}(h h]h }(hj{hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjp{ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj{hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{modnameN classnameNjj)}j]j)}jjZ{sbc.amdgpu_vm_set_pasidasbuh1hhjp{ubj)}(h h]h }(hj{hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjp{ubj)}(hj4h]h*}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjp{ubj2)}(hadevh]hadev}(hj{hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjp{ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjl{ubjS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hj{hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj{ubj)}(h h]h }(hj{hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj{ubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hj|hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|modnameN classnameNjj)}j]j{c.amdgpu_vm_set_pasidasbuh1hhj{ubj)}(h h]h }(hj"|hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj{ubj)}(hj4h]h*}(hj0|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubj2)}(hvmh]hvm}(hj=|hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj{ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjl{ubjS)}(h u32 pasidh](h)}(hhh]j2)}(hu32h]hu32}(hjY|hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjV|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[|modnameN classnameNjj)}j]j{c.amdgpu_vm_set_pasidasbuh1hhjR|ubj)}(h h]h }(hjw|hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjR|ubj2)}(hpasidh]hpasid}(hj|hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjR|ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjl{ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj3{hhhjE{hKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj/{hhhjE{hKubah}(h]j*{ah ](jjeh"]h$]h&]jj)jhuh1jhjE{hKhj,{hhubj)}(hhh]h)}(hmanage pasid and vm ptr mappingh]hmanage pasid and vm ptr mapping}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chKhj|hhubah}(h]h ]h"]h$]h&]uh1jhj,{hhhjE{hKubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j|j6j|j7j8j9uh1jhhhj}hKhj?}ubah}(h]h ]h"]h$]h&]uh1jhj#}ubeh}(h]h ]h"]h$]h&]uh1hhj>}hKhj|ubh)}(h4``u32 pasid`` the pasid the VM is using on this GPU h](j)}(h ``u32 pasid``h]j)}(hjb}h]h u32 pasid}(hjd}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`}ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chKhj\}ubj)}(hhh]h)}(h%the pasid the VM is using on this GPUh]h%the pasid the VM is using on this GPU}(hj{}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjw}hKhjx}ubah}(h]h ]h"]h$]h&]uh1jhj\}ubeh}(h]h ]h"]h$]h&]uh1hhjw}hKhj|ubeh}(h]h ]h"]h$]h&]uh1hhj|ubh)}(h**Description**h]jJ)}(hj}h]h Description}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj}ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chKhj|ubh)}(hdSet the pasid this VM is using on this GPU, can also be used to remove the pasid by passing in zero.h]hdSet the pasid this VM is using on this GPU, can also be used to remove the pasid by passing in zero.}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chKhj|ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjah"]h$]h&]uh1j1hj}ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj}hhhj}hKubjM)}(h!(struct amdgpu_vm_bo_base *vm_bo)h]jS)}(hstruct amdgpu_vm_bo_base *vm_boh](jY)}(hj\h]hstruct}(hj~hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj~ubj)}(h h]h }(hj,~hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj~ubh)}(hhh]j2)}(hamdgpu_vm_bo_baseh]hamdgpu_vm_bo_base}(hj=~hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj:~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?~modnameN classnameNjj)}j]j)}jj~sbc.amdgpu_vm_bo_evictedasbuh1hhj~ubj)}(h h]h }(hj]~hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj~ubj)}(hj4h]h*}(hjk~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj2)}(hvm_boh]hvm_bo}(hjx~hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj~ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj~ubah}(h]h ]h"]h$]h&]jJjKuh1jLhj}hhhj}hKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj}hhhj}hKubah}(h]j}ah ](jjeh"]h$]h&]jj)jhuh1jhj}hKhj}hhubj)}(hhh]h)}(hvm_bo is evictedh]hvm_bo is evicted}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chKhj~hhubah}(h]h ]h"]h$]h&]uh1jhj}hhhj}hKubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j~j6j~j7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj_hhhjqhKubjM)}(h!(struct amdgpu_vm_bo_base *vm_bo)h]jS)}(hstruct amdgpu_vm_bo_base *vm_boh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(hamdgpu_vm_bo_baseh]hamdgpu_vm_bo_base}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_bo_movedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hvm_boh]hvm_bo}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubah}(h]h ]h"]h$]h&]jJjKuh1jLhj_hhhjqhKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj[hhhjqhKubah}(h]jVah ](jjeh"]h$]h&]jj)jhuh1jhjqhKhjXhhubj)}(hhh]h)}(hvm_bo is movedh]hvm_bo is moved}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chKhj hhubah}(h]h ]h"]h$]h&]uh1jhjXhhhjqhKubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j;j6j;j7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhKubjM)}(h!(struct amdgpu_vm_bo_base *vm_bo)h]jS)}(hstruct amdgpu_vm_bo_base *vm_boh](jY)}(hj\h]hstruct}(hj!hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hj.hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(hamdgpu_vm_bo_baseh]hamdgpu_vm_bo_base}(hj?hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_bo_idleasbuh1hhjubj)}(h h]h }(hj_hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hvm_boh]hvm_bo}(hjzhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubah}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj܀hhhjhKubah}(h]j׀ah ](jjeh"]h$]h&]jj)jhuh1jhjhKhjـhhubj)}(hhh]h)}(h vm_bo is idleh]h vm_bo is idle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chKhjhhubah}(h]h ]h"]h$]h&]uh1jhjـhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjvoid amdgpu_vm_bo_invalidated(struct amdgpu_vm_bo_base *vm_bo)h](j )}(hvoidh]hvoid}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjahhhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chKubj)}(h h]h }(hjthhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjahhhjshKubj,)}(hamdgpu_vm_bo_invalidatedh]j2)}(hamdgpu_vm_bo_invalidatedh]hamdgpu_vm_bo_invalidated}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjahhhjshKubjM)}(h!(struct amdgpu_vm_bo_base *vm_bo)h]jS)}(hstruct amdgpu_vm_bo_base *vm_boh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(hamdgpu_vm_bo_baseh]hamdgpu_vm_bo_base}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj‚modnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_bo_invalidatedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hvm_boh]hvm_bo}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubah}(h]h ]h"]h$]h&]jJjKuh1jLhjahhhjshKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj]hhhjshKubah}(h]jXah ](jjeh"]h$]h&]jj)jhuh1jhjshKhjZhhubj)}(hhh]h)}(hvm_bo is invalidatedh]hvm_bo is invalidated}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chKhj"hhubah}(h]h ]h"]h$]h&]uh1jhjZhhhjshKubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j=j6j=j7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhKubjM)}(h!(struct amdgpu_vm_bo_base *vm_bo)h]jS)}(hstruct amdgpu_vm_bo_base *vm_boh](jY)}(hj\h]hstruct}(hj#hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hj0hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(hamdgpu_vm_bo_baseh]hamdgpu_vm_bo_base}(hjAhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]j)}jj sbc.amdgpu_vm_bo_evicted_userasbuh1hhjubj)}(h h]h }(hjahhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hvm_boh]hvm_bo}(hj|hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubah}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjރhhhjhKubah}(h]jكah ](jjeh"]h$]h&]jj)jhuh1jhjhKhjۃhhubj)}(hhh]h)}(hvm_bo is evictedh]hvm_bo is evicted}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chKhjhhubah}(h]h ]h"]h$]h&]uh1jhjۃhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjchhhjuhKubjM)}(h!(struct amdgpu_vm_bo_base *vm_bo)h]jS)}(hstruct amdgpu_vm_bo_base *vm_boh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(hamdgpu_vm_bo_baseh]hamdgpu_vm_bo_base}(hj…hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjąmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_bo_relocatedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hvm_boh]hvm_bo}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubah}(h]h ]h"]h$]h&]jJjKuh1jLhjchhhjuhKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj_hhhjuhKubah}(h]jZah ](jjeh"]h$]h&]jj)jhuh1jhjuhKhj\hhubj)}(hhh]h)}(hvm_bo is reloactedh]hvm_bo is reloacted}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chKhj$hhubah}(h]h ]h"]h$]h&]uh1jhj\hhhjuhKubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j?j6j?j7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMubjM)}(h!(struct amdgpu_vm_bo_base *vm_bo)h]jS)}(hstruct amdgpu_vm_bo_base *vm_boh](jY)}(hj\h]hstruct}(hj%hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj!ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj!ubh)}(hhh]j2)}(hamdgpu_vm_bo_baseh]hamdgpu_vm_bo_base}(hjChhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEmodnameN classnameNjj)}j]j)}jj sbc.amdgpu_vm_bo_doneasbuh1hhj!ubj)}(h h]h }(hjchhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj!ubj)}(hj4h]h*}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj2)}(hvm_boh]hvm_bo}(hj~hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj!ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubah}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMubah}(h]jۆah ](jjeh"]h$]h&]jj)jhuh1jhjhMhj݆hhubj)}(hhh]h)}(h vm_bo is doneh]h vm_bo is done}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj݆hhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjehhhjwhM ubjM)}(h(struct amdgpu_vm *vm)h]jS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjĈhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjƈmodnameN classnameNjj)}j]j)}jjsb"c.amdgpu_vm_bo_reset_state_machineasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hvmh]hvm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubah}(h]h ]h"]h$]h&]jJjKuh1jLhjehhhjwhM ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjahhhjwhM ubah}(h]j\ah ](jjeh"]h$]h&]jj)jhuh1jhjwhM hj^hhubj)}(hhh]h)}(hreset the vm_bo state machineh]hreset the vm_bo state machine}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM hj&hhubah}(h]h ]h"]h$]h&]uh1jhj^hhhjwhM ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jAj6jAj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhM;ubjM)}(h (struct amdgpu_vm_bo_base *base)h]jS)}(hstruct amdgpu_vm_bo_base *baseh](jY)}(hj\h]hstruct}(hj'hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj#ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj#ubh)}(hhh]j2)}(hamdgpu_vm_bo_baseh]hamdgpu_vm_bo_base}(hjEhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGmodnameN classnameNjj)}j]j)}jj sbc.amdgpu_vm_update_sharedasbuh1hhj#ubj)}(h h]h }(hjehhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj#ubj)}(hj4h]h*}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj2)}(hbaseh]hbase}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj#ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubah}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhM;ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhM;ubah}(h]j݉ah ](jjeh"]h$]h&]jj)jhuh1jhjhM;hj߉hhubj)}(hhh]h)}(h#helper to update shared memory stath]h#helper to update shared memory stat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM;hjhhubah}(h]h ]h"]h$]h&]uh1jhj߉hhhjhM;ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jŠj6jŠj7j8j9uh1jhhhjhjƊubh)}(hTakes the vm status_lock and updates the shared memory stat. If the basic stat changed (e.g. buffer was moved) amdgpu_vm_update_stats need to be called as well.h]hTakes the vm status_lock and updates the shared memory stat. If the basic stat changed (e.g. buffer was moved) amdgpu_vm_update_stats need to be called as well.}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM>hjƊubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjghhhjyhMZubjM)}(h(struct amdgpu_bo *bo)h]jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjƋhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjËubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjȋmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_bo_update_sharedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hboh]hbo}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubah}(h]h ]h"]h$]h&]jJjKuh1jLhjghhhjyhMZubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjchhhjyhMZubah}(h]j^ah ](jjeh"]h$]h&]jj)jhuh1jhjyhMZhj`hhubj)}(hhh]h)}(h%callback when bo gets shared/unsharedh]h%callback when bo gets shared/unshared}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMZhj(hhubah}(h]h ]h"]h$]h&]uh1jhj`hhhjyhMZubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jCj6jCj7j8j9uh1jhhhjah"]h$]h&]uh1j1hj ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMiubjM)}(hD(struct amdgpu_vm_bo_base *base, struct ttm_resource *res, int sign)h](jS)}(hstruct amdgpu_vm_bo_base *baseh](jY)}(hj\h]hstruct}(hj)hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj%ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj%ubh)}(hhh]j2)}(hamdgpu_vm_bo_baseh]hamdgpu_vm_bo_base}(hjGhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjImodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_update_stats_lockedasbuh1hhj%ubj)}(h h]h }(hjghhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj%ubj)}(hj4h]h*}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj2)}(hbaseh]hbase}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj%ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj!ubjS)}(hstruct ttm_resource *resh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h ttm_resourceh]h ttm_resource}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jcc.amdgpu_vm_update_stats_lockedasbuh1hhjubj)}(h h]h }(hj׍hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hresh]hres}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj!ubjS)}(hint signh](j )}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hsignh]hsign}(hj'hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj!ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMiubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMiubah}(h]jߌah ](jjeh"]h$]h&]jj)jhuh1jhjhMihjhhubj)}(hhh]h)}(h#helper to update normal memory stath]h#helper to update normal memory stat}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMihjNhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMiubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jij6jij7j8j9uh1jhhhjtbo.resource ``int sign`` if we should add (+1) or subtract (-1) from the stat **Description** Caller need to have the vm status_lock held. Useful for when multiple update need to happen at the same time.h](h)}(h**Parameters**h]jJ)}(hjsh]h Parameters}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjqubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMmhjmubh)}(hhh](h)}(hP``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)}(hjh]hstruct amdgpu_vm_bo_base *base}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMjhjubj)}(hhh]h)}(h,base structure for tracking BO usage in a VMh]h,base structure for tracking BO usage in a VM}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMjhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhMjhjubh)}(hw``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]hstruct ttm_resource *res}(hj͎hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjɎubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMlhjŎubj)}(hhh]h)}(hYthe ttm_resource to use for the purpose of accounting, may or may not be bo->tbo.resourceh]hYthe ttm_resource to use for the purpose of accounting, may or may not be bo->tbo.resource}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMkhjubah}(h]h ]h"]h$]h&]uh1jhjŎubeh}(h]h ]h"]h$]h&]uh1hhjhMlhjubh)}(hB``int sign`` if we should add (+1) or subtract (-1) from the stat h](j)}(h ``int sign``h]j)}(hjh]hint sign}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMmhjubj)}(hhh]h)}(h4if we should add (+1) or subtract (-1) from the stath]h4if we should add (+1) or subtract (-1) from the stat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMmhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhMmhjubeh}(h]h ]h"]h$]h&]uh1hhjmubh)}(h**Description**h]jJ)}(hj@h]h Description}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj>ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMohjmubh)}(hmCaller need to have the vm status_lock held. Useful for when multiple update need to happen at the same time.h]hmCaller need to have the vm status_lock held. Useful for when multiple update need to happen at the same time.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMohjmubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMubjM)}(hD(struct amdgpu_vm_bo_base *base, struct ttm_resource *res, int sign)h](jS)}(hstruct amdgpu_vm_bo_base *baseh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjϏhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(hamdgpu_vm_bo_baseh]hamdgpu_vm_bo_base}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjݏubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_update_statsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hbaseh]hbase}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct ttm_resource *resh](jY)}(hj\h]hstruct}(hj4hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj0ubj)}(h h]h }(hjAhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj0ubh)}(hhh]j2)}(h ttm_resourceh]h ttm_resource}(hjRhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]jc.amdgpu_vm_update_statsasbuh1hhj0ubj)}(h h]h }(hjphhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj0ubj)}(hj4h]h*}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj2)}(hresh]hres}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj0ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hint signh](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hsignh]hsign}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj}hhhjhMubah}(h]jxah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjzhhubj)}(hhh]h)}(h#helper to update normal memory stath]h#helper to update normal memory stat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjzhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjtbo.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]jJ)}(hj h]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjubh)}(hhh](h)}(hP``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]hstruct amdgpu_vm_bo_base *base}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhj%ubj)}(hhh]h)}(h,base structure for tracking BO usage in a VMh]h,base structure for tracking BO usage in a VM}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hMhjAubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1hhj@hMhj"ubh)}(hw``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)}(hjdh]hstruct ttm_resource *res}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhj^ubj)}(hhh]h)}(hYthe ttm_resource to use for the purpose of accounting, may or may not be bo->tbo.resourceh]hYthe ttm_resource to use for the purpose of accounting, may or may not be bo->tbo.resource}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjzubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1hhjyhMhj"ubh)}(hB``int sign`` if we should add (+1) or subtract (-1) from the stat h](j)}(h ``int sign``h]j)}(hjh]hint sign}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjubj)}(hhh]h)}(h4if we should add (+1) or subtract (-1) from the stath]h4if we should add (+1) or subtract (-1) from the stat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhMhj"ubeh}(h]h ]h"]h$]h&]uh1hhjubh)}(h**Description**h]jJ)}(hjّh]h Description}(hjۑhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjבubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjah"]h$]h&]uh1j1hj;ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhj,hMubjM)}(hL(struct amdgpu_vm_bo_base *base, struct amdgpu_vm *vm, struct amdgpu_bo *bo)h](jS)}(hstruct amdgpu_vm_bo_base *baseh](jY)}(hj\h]hstruct}(hj[hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjWubj)}(h h]h }(hjhhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjWubh)}(hhh]j2)}(hamdgpu_vm_bo_baseh]hamdgpu_vm_bo_base}(hjyhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjvubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{modnameN classnameNjj)}j]j)}jjAsbc.amdgpu_vm_bo_base_initasbuh1hhjWubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjWubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj2)}(hbaseh]hbase}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjWubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjSubjS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hj͒hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjɒubj)}(h h]h }(hjڒhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjɒubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_vm_bo_base_initasbuh1hhjɒubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjɒubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjɒubj2)}(hvmh]hvm}(hj$hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjɒubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjSubjS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hj=hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj9ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj9ubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hj[hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj]modnameN classnameNjj)}j]jc.amdgpu_vm_bo_base_initasbuh1hhj9ubj)}(h h]h }(hjyhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj9ubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj2)}(hboh]hbo}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj9ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjSubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhj,hMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhj,hMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhj,hMhjhhubj)}(hhh]h)}(h1Adds bo to the list of bos associated with the vmh]h1Adds bo to the list of bos associated with the vm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj,hMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j֓j6j֓j7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMubjM)}(hF(struct amdgpu_vm *vm, struct drm_exec *exec, unsigned int num_fences)h](jS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hj.hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj*ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj*ubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjLhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjNmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_lock_pdasbuh1hhj*ubj)}(h h]h }(hjlhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj*ubj)}(hj4h]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj2)}(hvmh]hvm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj*ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj&ubjS)}(hstruct drm_exec *exech](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(hdrm_exech]hdrm_exec}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jhc.amdgpu_vm_lock_pdasbuh1hhjubj)}(h h]h }(hjܕhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hexech]hexec}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj&ubjS)}(hunsigned int num_fencesh](j )}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj ubj )}(hinth]hint}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj:hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj ubj2)}(h num_fencesh]h num_fences}(hjHhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj&ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]h)}(hlock PD in drm_exech]hlock PD in drm_exec}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjohhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhj``unsigned int num_fences`` number of extra fences to reserve h](j)}(h``unsigned int num_fences``h]j)}(hj%h]hunsigned int num_fences}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjubj)}(hhh]h)}(h!number of extra fences to reserveh]h!number of extra fences to reserve}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hMhj;ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhj:hMhjubeh}(h]h ]h"]h$]h&]uh1hhjubh)}(h**Description**h]jJ)}(hj`h]h Description}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj^ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjubh)}(h1Lock the VM root PD in the DRM execution context.h]h1Lock the VM root PD in the DRM execution context.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjah"]h$]h&]uh1j1hj—ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMubjM)}(h2(struct amdgpu_device *adev, struct amdgpu_vm *vm)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjޗubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjޗubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjȗsbc.amdgpu_vm_move_to_lru_tailasbuh1hhjޗubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjޗubj)}(hj4h]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjޗubj2)}(hadevh]hadev}(hj;hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjޗubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjڗubjS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hjThhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjPubj)}(h h]h }(hjahhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjPubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjrhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]jc.amdgpu_vm_move_to_lru_tailasbuh1hhjPubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjPubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj2)}(hvmh]hvm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjPubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjڗubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]h)}(hmove all BOs to the end of LRUh]hmove all BOs to the end of LRU}(hj՘hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjҘhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjϙubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjԙmodnameN classnameNjj)}j]j)}jamdgpu_vm_generationsbc.amdgpu_vm_generationasbuh1hhj˙hhhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj˙hhhjhMubj,)}(hamdgpu_vm_generationh]j2)}(hjh]hamdgpu_vm_generation}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj˙hhhjhMubjM)}(h2(struct amdgpu_device *adev, struct amdgpu_vm *vm)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj!hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hj.hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj?hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNjj)}j]jc.amdgpu_vm_generationasbuh1hhjubj)}(h h]h }(hj]hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjxhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_vm_generationasbuh1hhjubj)}(h h]h }(hj͚hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjۚhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hvmh]hvm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj˙hhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjǙhhhjhMubah}(h]j™ah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjęhhubj)}(hhh]h)}(h+return the page table re-generation counterh]h+return the page table re-generation counter}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjęhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j*j6j*j7j8j9uh1jhhhjah"]h$]h&]uh1j1hj)ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhM-ubjM)}(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](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjIhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjEubj)}(h h]h }(hjVhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjEubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjghhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjimodnameN classnameNjj)}j]j)}jj/sbc.amdgpu_vm_validateasbuh1hhjEubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjEubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjEubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjAubjS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjȜhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjٜhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj֜ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjۜmodnameN classnameNjj)}j]jc.amdgpu_vm_validateasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hvmh]hvm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjAubjS)}(hstruct ww_acquire_ctx *ticketh](jY)}(hj\h]hstruct}(hj+hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj'ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj'ubh)}(hhh]j2)}(hww_acquire_ctxh]hww_acquire_ctx}(hjIhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKmodnameN classnameNjj)}j]jc.amdgpu_vm_validateasbuh1hhj'ubj)}(h h]h }(hjghhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj'ubj)}(hj4h]h*}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj2)}(hticketh]hticket}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj'ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjAubjS)}(h.int (*validate)(void *p, struct amdgpu_bo *bo)h](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(h(h]h(}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjŝhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hvalidateh]hvalidate}(hjҝhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubj)}(h)h]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h(}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hjh]hp}(hj$hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubj)}(h,h]h,}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hj?hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubjY)}(hj\h]hstruct}(hjMhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjZhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjkhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjhubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]jc.amdgpu_vm_validateasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hboh]hbo}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubj)}(hjh]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjAubjS)}(h void *paramh](j )}(hvoidh]hvoid}(hjʞhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjƞubj)}(h h]h }(hj؞hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjƞubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjƞubj2)}(hparamh]hparam}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjƞubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjAubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhM-ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhM-ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhM-hjhhubj)}(hhh]h)}(h&validate evicted BOs tracked in the VMh]h&validate evicted BOs tracked in the VM}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM-hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM-ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j5j6j5j7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMubjM)}(h(struct amdgpu_vm *vm)h]jS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hj%hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj!ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj!ubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjChhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEmodnameN classnameNjj)}j]j)}jj sbc.amdgpu_vm_readyasbuh1hhj!ubj)}(h h]h }(hjchhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj!ubj)}(hj4h]h*}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj2)}(hvmh]hvm}(hj~hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj!ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubah}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMubah}(h]jܠah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjޠhhubj)}(hhh]h)}(hcheck VM is ready for updatesh]hcheck VM is ready for updates}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjޠhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMubjM)}(h(struct amdgpu_device *adev)h]jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj͢hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjɢubj)}(h h]h }(hjڢhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjɢubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_check_compute_bugasbuh1hhjɢubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjɢubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjɢubj2)}(hadevh]hadev}(hj&hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjɢubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjŢubah}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]h)}(h%check whether asic has compute vm bugh]h%check whether asic has compute vm bug}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjMhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jhj6jhj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMubjM)}(h2(struct amdgpu_ring *ring, struct amdgpu_job *job)h](jS)}(hstruct amdgpu_ring *ringh](jY)}(hj\h]hstruct}(hj'hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj#ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj#ubh)}(hhh]j2)}(h amdgpu_ringh]h amdgpu_ring}(hjEhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGmodnameN classnameNjj)}j]j)}jj sbc.amdgpu_vm_need_pipeline_syncasbuh1hhj#ubj)}(h h]h }(hjehhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj#ubj)}(hj4h]h*}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj2)}(hringh]hring}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj#ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct amdgpu_job *jobh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_jobh]h amdgpu_job}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jac.amdgpu_vm_need_pipeline_syncasbuh1hhjubj)}(h h]h }(hjդhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hjobh]hjob}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMubah}(h]jޣah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]h)}(h%Check if pipe sync is needed for job.h]h%Check if pipe sync is needed for job.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j2j6j2j7j8j9uh1jhhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj:ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhj6ubh)}(hhh](h)}(hE``struct amdgpu_ring *ring`` ring on which the job will be submitted h](j)}(h``struct amdgpu_ring *ring``h]j)}(hj[h]hstruct amdgpu_ring *ring}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjUubj)}(hhh]h)}(h'ring on which the job will be submittedh]h'ring on which the job will be submitted}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjphMhjqubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1hhjphMhjRubh)}(h)``struct amdgpu_job *job`` job to submit h](j)}(h``struct amdgpu_job *job``h]j)}(hjh]hstruct amdgpu_job *job}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjubj)}(hhh]h)}(h job to submith]h job to submit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhMhjRubeh}(h]h ]h"]h$]h&]uh1hhj6ubh)}(h **Return**h]jJ)}(hjϥh]hReturn}(hjѥhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjͥubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhj6ubh)}(hTrue if sync is needed.h]hTrue if sync is needed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhj6ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjah"]h$]h&]uh1j1hj1ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhj"hMubjM)}(hG(struct amdgpu_ring *ring, struct amdgpu_job *job, bool need_pipe_sync)h](jS)}(hstruct amdgpu_ring *ringh](jY)}(hj\h]hstruct}(hjQhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjMubj)}(h h]h }(hj^hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjMubh)}(hhh]j2)}(h amdgpu_ringh]h amdgpu_ring}(hjohhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]j)}jj7sbc.amdgpu_vm_flushasbuh1hhjMubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjMubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj2)}(hringh]hring}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjMubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjIubjS)}(hstruct amdgpu_job *jobh](jY)}(hj\h]hstruct}(hjæhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjЦhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_jobh]h amdgpu_job}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjަubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_vm_flushasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hjobh]hjob}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjIubjS)}(hbool need_pipe_synch](j )}(hj h]hbool}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj/ubj2)}(hneed_pipe_synch]hneed_pipe_sync}(hjNhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj/ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjIubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhj"hMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj hhhj"hMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhj"hMhj hhubj)}(hhh]h)}(hhardware flush the vmh]hhardware flush the vm}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjuhhubah}(h]h ]h"]h$]h&]uh1jhj hhhj"hMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jamdgpu_vm_bo_findsbc.amdgpu_vm_bo_findasbuh1hhjΨhhhjߨhMnubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjΨhhhjߨhMnubj)}(hj4h]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjΨhhhjߨhMnubj,)}(hamdgpu_vm_bo_findh]j2)}(hjh]hamdgpu_vm_bo_find}(hj1hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj-ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjΨhhhjߨhMnubjM)}(h,(struct amdgpu_vm *vm, struct amdgpu_bo *bo)h](jS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hjLhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjHubj)}(h h]h }(hjYhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjHubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjgubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjlmodnameN classnameNjj)}j]j c.amdgpu_vm_bo_findasbuh1hhjHubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjHubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj2)}(hvmh]hvm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjHubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjDubjS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjɩhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjکhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjשubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjܩmodnameN classnameNjj)}j]j c.amdgpu_vm_bo_findasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hboh]hbo}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjDubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjΨhhhjߨhMnubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjʨhhhjߨhMnubah}(h]jŨah ](jjeh"]h$]h&]jj)jhuh1jhjߨhMnhjǨhhubj)}(hhh]h)}(h%find the bo_va for a specific vm & boh]h%find the bo_va for a specific vm & bo}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMnhj:hhubah}(h]h ]h"]h$]h&]uh1jhjǨhhhjߨhMnubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jUj6jUj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jamdgpu_vm_map_gartsbc.amdgpu_vm_map_gartasbuh1hhjhhhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjhhhjhMubj,)}(hamdgpu_vm_map_garth]j2)}(hjh]hamdgpu_vm_map_gart}(hjȫhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjīubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMubjM)}(h-(const dma_addr_t *pages_addr, uint64_t addr)h](jS)}(hconst dma_addr_t *pages_addrh](jY)}(hjoh]hconst}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj߫ubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj߫ubh)}(hhh]j2)}(h dma_addr_th]h dma_addr_t}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_vm_map_gartasbuh1hhj߫ubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj߫ubj)}(hj4h]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj߫ubj2)}(h pages_addrh]h pages_addr}(hj:hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj߫ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj۫ubjS)}(h uint64_t addrh](h)}(hhh]j2)}(huint64_th]huint64_t}(hjVhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjSubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]jc.amdgpu_vm_map_gartasbuh1hhjOubj)}(h h]h }(hjthhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjOubj2)}(haddrh]haddr}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjOubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj۫ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]h)}(hResolve gart mapping of addrh]hResolve gart mapping of addr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jĬj6jĬj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjɭhhhjۭhMubjM)}(hB(struct amdgpu_device *adev, struct amdgpu_vm *vm, bool immediate)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj(hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*modnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_update_pdesasbuh1hhjubj)}(h h]h }(hjHhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjchhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hj|hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjxubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjxubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jDc.amdgpu_vm_update_pdesasbuh1hhjxubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjxubj)}(hj4h]h*}(hjƮhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj2)}(hvmh]hvm}(hjӮhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjxubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hbool immediateh](j )}(hj h]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(h immediateh]h immediate}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjɭhhhjۭhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjŭhhhjۭhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjۭhMhj­hhubj)}(hhh]h)}(h(make sure that all directories are validh]h(make sure that all directories are valid}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhj.hhubah}(h]h ]h"]h$]h&]uh1jhj­hhhjۭhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jIj6jIj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMubjM)}(h2(struct dma_fence *fence, struct dma_fence_cb *cb)h](jS)}(hstruct dma_fence *fenceh](jY)}(hj\h]hstruct}(hjȰhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjİubj)}(h h]h }(hjհhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjİubh)}(hhh]j2)}(h dma_fenceh]h dma_fence}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_tlb_seq_cbasbuh1hhjİubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjİubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjİubj2)}(hfenceh]hfence}(hj!hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjİubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct dma_fence_cb *cbh](jY)}(hj\h]hstruct}(hj:hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj6ubj)}(h h]h }(hjGhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj6ubh)}(hhh]j2)}(h dma_fence_cbh]h dma_fence_cb}(hjXhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjUubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZmodnameN classnameNjj)}j]jc.amdgpu_vm_tlb_seq_cbasbuh1hhj6ubj)}(h h]h }(hjvhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj6ubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj2)}(hcbh]hcb}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj6ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMubah}(h]j~ah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]h)}(h#make sure to increment tlb sequenceh]h#make sure to increment tlb sequence}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jӱj6jӱj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjҲubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjòhMubjM)}(hk(struct amdgpu_vm_update_params *params, struct dma_fence **fence, struct amdgpu_vm_tlb_seq_struct *tlb_cb)h](jS)}(h&struct amdgpu_vm_update_params *paramsh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(hamdgpu_vm_update_paramsh]hamdgpu_vm_update_params}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjزsbc.amdgpu_vm_tlb_flushasbuh1hhjubj)}(h h]h }(hj0hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hparamsh]hparams}(hjKhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct dma_fence **fenceh](jY)}(hj\h]hstruct}(hjdhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj`ubj)}(h h]h }(hjqhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj`ubh)}(hhh]j2)}(h dma_fenceh]h dma_fence}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j,c.amdgpu_vm_tlb_flushasbuh1hhj`ubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj`ubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj2)}(hfenceh]hfence}(hjȳhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj`ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(h'struct amdgpu_vm_tlb_seq_struct *tlb_cbh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjݳubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjݳubh)}(hhh]j2)}(hamdgpu_vm_tlb_seq_structh]hamdgpu_vm_tlb_seq_struct}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j,c.amdgpu_vm_tlb_flushasbuh1hhjݳubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjݳubj)}(hj4h]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjݳubj2)}(htlb_cbh]htlb_cb}(hj8hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjݳubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjòhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjòhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjòhMhjhhubj)}(hhh]h)}(hprepare TLB flushh]hprepare TLB flush}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhj_hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjòhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jzj6jzj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhM"ubjM)}(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](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjҵhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjεubj)}(h h]h }(hjߵhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjεubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_update_rangeasbuh1hhjεubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjεubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjεubj2)}(hadevh]hadev}(hj+hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjεubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjʵubjS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hjDhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj@ubj)}(h h]h }(hjQhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj@ubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjbhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdmodnameN classnameNjj)}j]j c.amdgpu_vm_update_rangeasbuh1hhj@ubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj@ubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj2)}(hvmh]hvm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj@ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjʵubjS)}(hbool immediateh](j )}(hj h]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(h immediateh]h immediate}(hj϶hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjʵubjS)}(h bool unlockedh](j )}(hj h]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hunlockedh]hunlocked}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjʵubjS)}(hbool flush_tlbh](j )}(hj h]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hj)hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(h flush_tlbh]h flush_tlb}(hj7hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjʵubjS)}(hbool allow_overrideh](j )}(hj h]hbool}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(h h]h }(hj]hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjLubj2)}(hallow_overrideh]hallow_override}(hjkhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjLubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjʵubjS)}(hstruct amdgpu_sync *synch](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_synch]h amdgpu_sync}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j c.amdgpu_vm_update_rangeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjηhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hsynch]hsync}(hj۷hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjʵubjS)}(huint64_t starth](h)}(hhh]j2)}(huint64_th]huint64_t}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j c.amdgpu_vm_update_rangeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hstarth]hstart}(hj#hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjʵubjS)}(h uint64_t lasth](h)}(hhh]j2)}(huint64_th]huint64_t}(hj?hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNjj)}j]j c.amdgpu_vm_update_rangeasbuh1hhj8ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj8ubj2)}(hlasth]hlast}(hjkhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj8ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjʵubjS)}(huint64_t flagsh](h)}(hhh]j2)}(huint64_th]huint64_t}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j c.amdgpu_vm_update_rangeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hflagsh]hflags}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjʵubjS)}(huint64_t offseth](h)}(hhh]j2)}(huint64_th]huint64_t}(hjϸhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj̸ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjѸmodnameN classnameNjj)}j]j c.amdgpu_vm_update_rangeasbuh1hhjȸubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjȸubj2)}(hoffseth]hoffset}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjȸubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjʵubjS)}(huint64_t vram_baseh](h)}(hhh]j2)}(huint64_th]huint64_t}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j c.amdgpu_vm_update_rangeasbuh1hhjubj)}(h h]h }(hj5hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(h vram_baseh]h vram_base}(hjChhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjʵubjS)}(hstruct ttm_resource *resh](jY)}(hj\h]hstruct}(hj\hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjXubj)}(h h]h }(hjihhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjXubh)}(hhh]j2)}(h ttm_resourceh]h ttm_resource}(hjzhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjwubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|modnameN classnameNjj)}j]j c.amdgpu_vm_update_rangeasbuh1hhjXubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjXubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj2)}(hresh]hres}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjXubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjʵubjS)}(hdma_addr_t *pages_addrh](h)}(hhh]j2)}(h dma_addr_th]h dma_addr_t}(hjϹhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj̹ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjѹmodnameN classnameNjj)}j]j c.amdgpu_vm_update_rangeasbuh1hhjȹubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjȹubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjȹubj2)}(h pages_addrh]h pages_addr}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjȹubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjʵubjS)}(hstruct dma_fence **fenceh](jY)}(hj\h]hstruct}(hj!hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hj.hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h dma_fenceh]h dma_fence}(hj?hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNjj)}j]j c.amdgpu_vm_update_rangeasbuh1hhjubj)}(h h]h }(hj]hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hfenceh]hfence}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjʵubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhM"ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhM"ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhM"hjhhubj)}(hhh]h)}(h#update a range in the vm page tableh]h#update a range in the vm page table}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM"hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM"ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jǺj6jǺj7j8j9uh1jhhhjhM%hj?ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1hhj>hM%hjubh)}(h8``bool immediate`` immediate submission in a page fault h](j)}(h``bool immediate``h]j)}(hjbh]hbool immediate}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM&hj\ubj)}(hhh]h)}(h$immediate submission in a page faulth]h$immediate submission in a page fault}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhM&hjxubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1hhjwhM&hjubh)}(h;``bool unlocked`` unlocked invalidation during MM callback h](j)}(h``bool unlocked``h]j)}(hjh]h bool unlocked}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM'hjubj)}(hhh]h)}(h(unlocked invalidation during MM callbackh]h(unlocked invalidation during MM callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM'hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhM'hjubh)}(hC``bool flush_tlb`` trigger tlb invalidation after update completed h](j)}(h``bool flush_tlb``h]j)}(hjԻh]hbool flush_tlb}(hjֻhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjһubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM(hjλubj)}(hhh]h)}(h/trigger tlb invalidation after update completedh]h/trigger tlb invalidation after update completed}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM(hjubah}(h]h ]h"]h$]h&]uh1jhjλubeh}(h]h ]h"]h$]h&]uh1hhjhM(hjubh)}(h:``bool allow_override`` change MTYPE for local NUMA nodes h](j)}(h``bool allow_override``h]j)}(hj h]hbool allow_override}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM)hjubj)}(hhh]h)}(h!change MTYPE for local NUMA nodesh]h!change MTYPE for local NUMA nodes}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hM)hj#ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhj"hM)hjubh)}(h7``struct amdgpu_sync *sync`` fences we need to sync to h](j)}(h``struct amdgpu_sync *sync``h]j)}(hjFh]hstruct amdgpu_sync *sync}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM*hj@ubj)}(hhh]h)}(hfences we need to sync toh]hfences we need to sync to}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[hM*hj\ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1hhj[hM*hjubh)}(h)``uint64_t start`` start of mapped range h](j)}(h``uint64_t start``h]j)}(hjh]huint64_t start}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM+hjyubj)}(hhh]h)}(hstart of mapped rangeh]hstart of mapped range}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM+hjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1hhjhM+hjubh)}(h$``uint64_t last`` last mapped entry h](j)}(h``uint64_t last``h]j)}(hjh]h uint64_t last}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM,hjubj)}(hhh]h)}(hlast mapped entryh]hlast mapped entry}(hjѼhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjͼhM,hjμubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjͼhM,hjubh)}(h)``uint64_t flags`` flags for the entries h](j)}(h``uint64_t flags``h]j)}(hjh]huint64_t flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM-hjubj)}(hhh]h)}(hflags for the entriesh]hflags for the entries}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM-hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhM-hjubh)}(h5``uint64_t offset`` offset into nodes and pages_addr h](j)}(h``uint64_t offset``h]j)}(hj*h]huint64_t offset}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM.hj$ubj)}(hhh]h)}(h offset into nodes and pages_addrh]h offset into nodes and pages_addr}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hM.hj@ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1hhj?hM.hjubh)}(h.``uint64_t vram_base`` base for vram mappings h](j)}(h``uint64_t vram_base``h]j)}(hjch]huint64_t vram_base}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM/hj]ubj)}(hhh]h)}(hbase for vram mappingsh]hbase for vram mappings}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhM/hjyubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1hhjxhM/hjubh)}(h1``struct ttm_resource *res`` ttm_resource to map h](j)}(h``struct ttm_resource *res``h]j)}(hjh]hstruct ttm_resource *res}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM0hjubj)}(hhh]h)}(httm_resource to maph]httm_resource to map}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM0hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhM0hjubh)}(h<``dma_addr_t *pages_addr`` DMA addresses to use for mapping h](j)}(h``dma_addr_t *pages_addr``h]j)}(hjսh]hdma_addr_t *pages_addr}(hj׽hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjӽubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM1hjϽubj)}(hhh]h)}(h DMA addresses to use for mappingh]h DMA addresses to use for mapping}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM1hjubah}(h]h ]h"]h$]h&]uh1jhjϽubeh}(h]h ]h"]h$]h&]uh1hhjhM1hjubh)}(h6``struct dma_fence **fence`` optional resulting fence h](j)}(h``struct dma_fence **fence``h]j)}(hjh]hstruct dma_fence **fence}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM2hjubj)}(hhh]h)}(hoptional resulting fenceh]hoptional resulting fence}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hM2hj$ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhj#hM2hjubeh}(h]h ]h"]h$]h&]uh1hhj˺ubh)}(h**Description**h]jJ)}(hjIh]h Description}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjGubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM4hj˺ubh)}(h>Fill in the page table entries between **start** and **last**.h](h'Fill in the page table entries between }(hj_hhhNhNubjJ)}(h **start**h]hstart}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj_ubh and }(hj_hhhNhNubjJ)}(h**last**h]hlast}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj_ubh.}(hj_hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM4hj˺ubh)}(h **Return**h]jJ)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM6hj˺ubh)}(h.0 for success, negative erro code for failure.h]h.0 for success, negative erro code for failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM6hj˺ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjվhhhjhMubjM)}(hD(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, bool clear)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hj#hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj4hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_bo_updateasbuh1hhjubj)}(h h]h }(hjThhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjohhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct amdgpu_bo_va *bo_vah](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_bo_vah]h amdgpu_bo_va}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jPc.amdgpu_vm_bo_updateasbuh1hhjubj)}(h h]h }(hjĿhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjҿhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hbo_vah]hbo_va}(hj߿hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(h bool clearh](j )}(hj h]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hclearh]hclear}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjվhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjѾhhhjhMubah}(h]j̾ah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjξhhubj)}(hhh]h)}(h+update all BO mappings in the vm page tableh]h+update all BO mappings in the vm page table}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhj:hhubah}(h]h ]h"]h$]h&]uh1jhjξhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jUj6jUj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMdubjM)}(h(struct amdgpu_device *adev)h]jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_update_prt_stateasbuh1hhjubj)}(h h]h }(hj$hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hj?hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubah}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMdubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMdubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMdhjhhubj)}(hhh]h)}(hupdate the global PRT stateh]hupdate the global PRT state}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMdhjfhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMdubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hj!ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMtubjM)}(h(struct amdgpu_device *adev)h]jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjAhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj=ubj)}(h h]h }(hjNhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj=ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj_hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjamodnameN classnameNjj)}j]j)}jj'sbc.amdgpu_vm_prt_getasbuh1hhj=ubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj=ubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj=ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj9ubah}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMtubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMtubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMthjhhubj)}(hhh]h)}(hadd a PRT userh]hadd a PRT user}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMthjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMtubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hj|ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj[hhhjmhMubjM)}(h(struct amdgpu_device *adev)h]jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_prt_putasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubah}(h]h ]h"]h$]h&]jJjKuh1jLhj[hhhjmhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjWhhhjmhMubah}(h]jRah ](jjeh"]h$]h&]jj)jhuh1jhjmhMhjThhubj)}(hhh]h)}(hdrop a PRT userh]hdrop a PRT user}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjThhhjmhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j7j6j7j7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMubjM)}(h3(struct dma_fence *fence, struct dma_fence_cb *_cb)h](jS)}(hstruct dma_fence *fenceh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h dma_fenceh]h dma_fence}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_prt_cbasbuh1hhjubj)}(h h]h }(hj5hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hfenceh]hfence}(hjPhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct dma_fence_cb *_cbh](jY)}(hj\h]hstruct}(hjihhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjeubj)}(h h]h }(hjvhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjeubh)}(hhh]j2)}(h dma_fence_cbh]h dma_fence_cb}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j1c.amdgpu_vm_prt_cbasbuh1hhjeubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjeubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubj2)}(h_cbh]h_cb}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjeubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]h)}(h$callback for updating the PRT statush]h$callback for updating the PRT status}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMubjM)}(h5(struct amdgpu_device *adev, struct dma_fence *fence)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_add_prt_cbasbuh1hhjubj)}(h h]h }(hj9hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjThhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct dma_fence *fenceh](jY)}(hj\h]hstruct}(hjmhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjiubj)}(h h]h }(hjzhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjiubh)}(hhh]j2)}(h dma_fenceh]h dma_fence}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j5c.amdgpu_vm_add_prt_cbasbuh1hhjiubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjiubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubj2)}(hfenceh]hfence}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjiubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]h)}(h(add callback for updating the PRT statush]h(add callback for updating the PRT status}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMubjM)}(hq(struct amdgpu_device *adev, struct amdgpu_vm *vm, struct amdgpu_bo_va_mapping *mapping, struct dma_fence *fence)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_free_mappingasbuh1hhjubj)}(h h]h }(hj=hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjXhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hjqhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjmubj)}(h h]h }(hj~hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjmubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j9c.amdgpu_vm_free_mappingasbuh1hhjmubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjmubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj2)}(hvmh]hvm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjmubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(h$struct amdgpu_bo_va_mapping *mappingh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(hamdgpu_bo_va_mappingh]hamdgpu_bo_va_mapping}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j9c.amdgpu_vm_free_mappingasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hmappingh]hmapping}(hj8hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct dma_fence *fenceh](jY)}(hj\h]hstruct}(hjQhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjMubj)}(h h]h }(hj^hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjMubh)}(hhh]j2)}(h dma_fenceh]h dma_fence}(hjohhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]j9c.amdgpu_vm_free_mappingasbuh1hhjMubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjMubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj2)}(hfenceh]hfence}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjMubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]h)}(hfree a mappingh]hfree a mapping}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:hhhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMubj)}(h h]h }(hjMhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj:hhhjLhMubj,)}(hamdgpu_vm_prt_finih]j2)}(hamdgpu_vm_prt_finih]hamdgpu_vm_prt_fini}(hj_hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj[ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj:hhhjLhMubjM)}(h2(struct amdgpu_device *adev, struct amdgpu_vm *vm)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj{hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjwubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjwubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjasbc.amdgpu_vm_prt_finiasbuh1hhjwubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjwubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjwubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjsubjS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.amdgpu_vm_prt_finiasbuh1hhjubj)}(h h]h }(hj)hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hvmh]hvm}(hjDhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjsubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj:hhhjLhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj6hhhjLhMubah}(h]j1ah ](jjeh"]h$]h&]jj)jhuh1jhjLhMhj3hhubj)}(hhh]h)}(hfinish all prt mappingsh]hfinish all prt mappings}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjkhhubah}(h]h ]h"]h$]h&]uh1jhj3hhhjLhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjdhhhjvhMubjM)}(hL(struct amdgpu_device *adev, struct amdgpu_vm *vm, struct dma_fence **fence)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_clear_freedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hj$hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hj5hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]jc.amdgpu_vm_clear_freedasbuh1hhjubj)}(h h]h }(hjShhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hvmh]hvm}(hjnhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct dma_fence **fenceh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h dma_fenceh]h dma_fence}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_vm_clear_freedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hfenceh]hfence}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjdhhhjvhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj`hhhjvhMubah}(h]j[ah ](jjeh"]h$]h&]jj)jhuh1jhjvhMhj]hhubj)}(hhh]h)}(hclear freed BOs in the PTh]hclear freed BOs in the PT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj]hhhjvhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j-j6j-j7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjlhhhj~hM ubjM)}(hQ(struct amdgpu_device *adev, struct amdgpu_vm *vm, struct ww_acquire_ctx *ticket)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_handle_movedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hj,hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hj=hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]jc.amdgpu_vm_handle_movedasbuh1hhjubj)}(h h]h }(hj[hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hvmh]hvm}(hjvhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct ww_acquire_ctx *ticketh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(hww_acquire_ctxh]hww_acquire_ctx}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_vm_handle_movedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hticketh]hticket}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjlhhhj~hM ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhhj~hM ubah}(h]jcah ](jjeh"]h$]h&]jj)jhuh1jhj~hM hjehhubj)}(hhh]h)}(hhandle moved BOs in the PTh]hhandle moved BOs in the PT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM hj hhubah}(h]h ]h"]h$]h&]uh1jhjehhhj~hM ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j(j6j(j7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjuhhhjhMoubjM)}(hZ(struct amdgpu_device *adev, struct amdgpu_vm *vm, uint32_t flush_type, uint32_t xcc_mask)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_flush_compute_tlbasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hj(hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj$ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj$ubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjFhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjCubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjHmodnameN classnameNjj)}j]jc.amdgpu_vm_flush_compute_tlbasbuh1hhj$ubj)}(h h]h }(hjdhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj$ubj)}(hj4h]h*}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj2)}(hvmh]hvm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj$ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(huint32_t flush_typeh](h)}(hhh]j2)}(huint32_th]huint32_t}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_vm_flush_compute_tlbasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(h flush_typeh]h flush_type}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(huint32_t xcc_maskh](h)}(hhh]j2)}(huint32_th]huint32_t}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_vm_flush_compute_tlbasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hxcc_maskh]hxcc_mask}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjuhhhjhMoubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjqhhhjhMoubah}(h]jlah ](jjeh"]h$]h&]jj)jhuh1jhjhMohjnhhubj)}(hhh]h)}(hFlush TLB on compute VMh]hFlush TLB on compute VM}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMohj6hhubah}(h]h ]h"]h$]h&]uh1jhjnhhhjhMoubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jQj6jQj7j8j9uh1jhhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hMthj;ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhj:hMthjqubeh}(h]h ]h"]h$]h&]uh1hhjUubh)}(h**Description**h]jJ)}(hj`h]h Description}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj^ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMvhjUubh)}(h%Flush TLB if needed for a compute VM.h]h%Flush TLB if needed for a compute VM.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMvhjUubh)}(h **Return**h]jJ)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMxhjUubh)}(h0 for success.h]h0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMxhjUubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jamdgpu_vm_bo_addsbc.amdgpu_vm_bo_addasbuh1hhjhhhjhMubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjhhhjhMubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj,)}(hamdgpu_vm_bo_addh]j2)}(hj h]hamdgpu_vm_bo_add}(hj+hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj'ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMubjM)}(hH(struct amdgpu_device *adev, struct amdgpu_vm *vm, struct amdgpu_bo *bo)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjFhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjBubj)}(h h]h }(hjShhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjBubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjdhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjaubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]jc.amdgpu_vm_bo_addasbuh1hhjBubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjBubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjBubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj>ubjS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_vm_bo_addasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hvmh]hvm}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj>ubjS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hj&hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj"ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj"ubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjDhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjAubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjFmodnameN classnameNjj)}j]jc.amdgpu_vm_bo_addasbuh1hhj"ubj)}(h h]h }(hjbhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj"ubj)}(hj4h]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj2)}(hboh]hbo}(hj}hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj"ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj>ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]h)}(hadd a bo to a specific vmh]hadd a bo to a specific vm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjQubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj0hhhjBhMubjM)}(h^(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, struct amdgpu_bo_va_mapping *mapping)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjqhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjmubj)}(h h]h }(hj~hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjmubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjWsbc.amdgpu_vm_bo_insert_mapasbuh1hhjmubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjmubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjmubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjiubjS)}(hstruct amdgpu_bo_va *bo_vah](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_bo_vah]h amdgpu_bo_va}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_vm_bo_insert_mapasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hbo_vah]hbo_va}(hj:hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjiubjS)}(h$struct amdgpu_bo_va_mapping *mappingh](jY)}(hj\h]hstruct}(hjShhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjOubj)}(h h]h }(hj`hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjOubh)}(hhh]j2)}(hamdgpu_bo_va_mappingh]hamdgpu_bo_va_mapping}(hjqhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsmodnameN classnameNjj)}j]jc.amdgpu_vm_bo_insert_mapasbuh1hhjOubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjOubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj2)}(hmappingh]hmapping}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjOubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjiubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj0hhhjBhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj,hhhjBhMubah}(h]j'ah ](jjeh"]h$]h&]jj)jhuh1jhjBhMhj)hhubj)}(hhh]h)}(hinsert a new mappingh]hinsert a new mapping}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj)hhhjBhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hj$ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMubjM)}(hx(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, uint64_t saddr, uint64_t offset, uint64_t size, uint64_t flags)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjDhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj@ubj)}(h h]h }(hjQhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj@ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjbhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdmodnameN classnameNjj)}j]j)}jj*sbc.amdgpu_vm_bo_mapasbuh1hhj@ubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj@ubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj@ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj<ubjS)}(hstruct amdgpu_bo_va *bo_vah](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_bo_vah]h amdgpu_bo_va}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j~c.amdgpu_vm_bo_mapasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hbo_vah]hbo_va}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj<ubjS)}(huint64_t saddrh](h)}(hhh]j2)}(huint64_th]huint64_t}(hj)hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj+modnameN classnameNjj)}j]j~c.amdgpu_vm_bo_mapasbuh1hhj"ubj)}(h h]h }(hjGhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj"ubj2)}(hsaddrh]hsaddr}(hjUhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj"ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj<ubjS)}(huint64_t offseth](h)}(hhh]j2)}(huint64_th]huint64_t}(hjqhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsmodnameN classnameNjj)}j]j~c.amdgpu_vm_bo_mapasbuh1hhjjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjjubj2)}(hoffseth]hoffset}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj<ubjS)}(h uint64_t sizeh](h)}(hhh]j2)}(huint64_th]huint64_t}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j~c.amdgpu_vm_bo_mapasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj<ubjS)}(huint64_t flagsh](h)}(hhh]j2)}(huint64_th]huint64_t}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j~c.amdgpu_vm_bo_mapasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hflagsh]hflags}(hj-hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj<ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]h)}(hmap bo inside a vmh]hmap bo inside a vm}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjThhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5joj6joj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjghhhjyhM@ubjM)}(hx(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, uint64_t saddr, uint64_t offset, uint64_t size, uint64_t flags)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_bo_replace_mapasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct amdgpu_bo_va *bo_vah](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hj'hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_bo_vah]h amdgpu_bo_va}(hj8hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]jc.amdgpu_vm_bo_replace_mapasbuh1hhjubj)}(h h]h }(hjVhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hbo_vah]hbo_va}(hjqhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(huint64_t saddrh](h)}(hhh]j2)}(huint64_th]huint64_t}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_vm_bo_replace_mapasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hsaddrh]hsaddr}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(huint64_t offseth](h)}(hhh]j2)}(huint64_th]huint64_t}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_vm_bo_replace_mapasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hoffseth]hoffset}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(h uint64_t sizeh](h)}(hhh]j2)}(huint64_th]huint64_t}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_vm_bo_replace_mapasbuh1hhjubj)}(h h]h }(hj;hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hsizeh]hsize}(hjIhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(huint64_t flagsh](h)}(hhh]j2)}(huint64_th]huint64_t}(hjehhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgmodnameN classnameNjj)}j]jc.amdgpu_vm_bo_replace_mapasbuh1hhj^ubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj^ubj2)}(hflagsh]hflags}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj^ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjghhhjyhM@ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjchhhjyhM@ubah}(h]j^ah ](jjeh"]h$]h&]jj)jhuh1jhjyhM@hj`hhubj)}(hhh]h)}(h/map bo inside a vm, replacing existing mappingsh]h/map bo inside a vm, replacing existing mappings}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM@hjhhubah}(h]h ]h"]h$]h&]uh1jhj`hhhjyhM@ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMxubjM)}(hH(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, uint64_t saddr)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj*hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,modnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_bo_unmapasbuh1hhjubj)}(h h]h }(hjJhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjehhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct amdgpu_bo_va *bo_vah](jY)}(hj\h]hstruct}(hj~hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjzubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjzubh)}(hhh]j2)}(h amdgpu_bo_vah]h amdgpu_bo_va}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jFc.amdgpu_vm_bo_unmapasbuh1hhjzubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjzubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj2)}(hbo_vah]hbo_va}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjzubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(huint64_t saddrh](h)}(hhh]j2)}(huint64_th]huint64_t}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jFc.amdgpu_vm_bo_unmapasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hsaddrh]hsaddr}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMxubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMxubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMxhjhhubj)}(hhh]h)}(hremove bo mapping from vmh]hremove bo mapping from vm}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMxhjDhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMxubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j_j6j_j7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMubjM)}(hQ(struct amdgpu_device *adev, struct amdgpu_vm *vm, uint64_t saddr, uint64_t size)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_bo_clear_mappingsasbuh1hhjubj)}(h h]h }(hj+hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjFhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hj_hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj[ubj)}(h h]h }(hjlhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj[ubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hj}hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j'c.amdgpu_vm_bo_clear_mappingsasbuh1hhj[ubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj[ubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj2)}(hvmh]hvm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj[ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(huint64_t saddrh](h)}(hhh]j2)}(huint64_th]huint64_t}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j'c.amdgpu_vm_bo_clear_mappingsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hsaddrh]hsaddr}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(h uint64_t sizeh](h)}(hhh]j2)}(huint64_th]huint64_t}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j'c.amdgpu_vm_bo_clear_mappingsasbuh1hhjubj)}(h h]h }(hj8hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hsizeh]hsize}(hjFhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]h)}(h'remove all mappings in a specific rangeh]h'remove all mappings in a specific range}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjmhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]j)}jamdgpu_vm_bo_lookup_mappingsbc.amdgpu_vm_bo_lookup_mappingasbuh1hhjhhhjhM'ubj)}(h h]h }(hjChhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjhhhjhM'ubj)}(hj4h]h*}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM'ubj,)}(hamdgpu_vm_bo_lookup_mappingh]j2)}(hj@h]hamdgpu_vm_bo_lookup_mapping}(hjbhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj^ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhM'ubjM)}(h%(struct amdgpu_vm *vm, uint64_t addr)h](jS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hj}hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjyubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjyubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j>c.amdgpu_vm_bo_lookup_mappingasbuh1hhjyubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjyubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj2)}(hvmh]hvm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjyubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjuubjS)}(h uint64_t addrh](h)}(hhh]j2)}(huint64_th]huint64_t}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j>c.amdgpu_vm_bo_lookup_mappingasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(haddrh]haddr}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjuubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhM'ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhM'ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhM'hjhhubj)}(hhh]h)}(hfind mapping by addressh]hfind mapping by address}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM'hjChhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM'ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j^j6j^j7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjchhhjuhM9ubjM)}(h5(struct amdgpu_vm *vm, struct ww_acquire_ctx *ticket)h](jS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_bo_trace_csasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hvmh]hvm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct ww_acquire_ctx *ticketh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hj#hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(hww_acquire_ctxh]hww_acquire_ctx}(hj4hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]jc.amdgpu_vm_bo_trace_csasbuh1hhjubj)}(h h]h }(hjRhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hticketh]hticket}(hjmhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjchhhjuhM9ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj_hhhjuhM9ubah}(h]jZah ](jjeh"]h$]h&]jj)jhuh1jhjuhM9hj\hhubj)}(hhh]h)}(htrace all reserved mappingsh]htrace all reserved mappings}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM9hjhhubah}(h]h ]h"]h$]h&]uh1jhj\hhhjuhM9ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjhjubh)}(h?Trace all mappings of BOs reserved during a command submission.h]h?Trace all mappings of BOs reserved during a command submission.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM>hjubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMWubjM)}(h8(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_bo_delasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hj'hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct amdgpu_bo_va *bo_vah](jY)}(hj\h]hstruct}(hj@hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj<ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj<ubh)}(hhh]j2)}(h amdgpu_bo_vah]h amdgpu_bo_va}(hj^hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]jc.amdgpu_vm_bo_delasbuh1hhj<ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj<ubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj2)}(hbo_vah]hbo_va}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj<ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMWubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMWubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMWhjhhubj)}(hhh]h)}(hremove a bo from a specific vmh]hremove a bo from a specific vm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMWhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMWubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjbo** from the requested vm. Object have to be reserved!h](h)}(h**Parameters**h]jJ)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM[hjubh)}(hhh](h)}(h5``struct amdgpu_device *adev`` amdgpu_device pointer h](j)}(h``struct amdgpu_device *adev``h]j)}(hjh]hstruct amdgpu_device *adev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMYhjubj)}(hhh]h)}(hamdgpu_device pointerh]hamdgpu_device pointer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMYhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhMYhjubh)}(h/``struct amdgpu_bo_va *bo_va`` requested bo_va h](j)}(h``struct amdgpu_bo_va *bo_va``h]j)}(hj;h]hstruct amdgpu_bo_va *bo_va}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMZhj5ubj)}(hhh]h)}(hrequested bo_vah]hrequested bo_va}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhMZhjQubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1hhjPhMZhjubeh}(h]h ]h"]h$]h&]uh1hhjubh)}(h**Description**h]jJ)}(hjvh]h Description}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjtubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM\hjubh)}(h+Remove **bo_va->bo** from the requested vm.h](hRemove }(hjhhhNhNubjJ)}(h **bo_va->bo**h]h bo_va->bo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubh from the requested vm.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM\hjubh)}(hObject have to be reserved!h]hObject have to be reserved!}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM^hjubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMubjM)}(h(struct amdgpu_bo *bo)h]jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hj%hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hj6hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_evictableasbuh1hhjubj)}(h h]h }(hjVhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hboh]hbo}(hjqhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubah}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]h)}(hcheck if we can evict a VMh]hcheck if we can evict a VM}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjyubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjXhhhjjhMubjM)}(h$(struct amdgpu_bo *bo, bool evicted)h](jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_bo_invalidateasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hboh]hbo}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(h bool evictedh](j )}(hj h]hbool}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hevictedh]hevicted}(hj&hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjXhhhjjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjThhhjjhMubah}(h]jOah ](jjeh"]h$]h&]jj)jhuh1jhjjhMhjQhhubj)}(hhh]h)}(hmark the bo as invalidh]hmark the bo as invalid}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjMhhubah}(h]h ]h"]h$]h&]uh1jhjQhhhjjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jhj6jhj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjyubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjXhhhjjhMubjM)}(hB(struct amdgpu_bo *bo, struct ttm_resource *new_mem, bool evicted)h](jS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_bo_moveasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hboh]hbo}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct ttm_resource *new_memh](jY)}(hj\h]hstruct}(hj hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h ttm_resourceh]h ttm_resource}(hj)hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj+modnameN classnameNjj)}j]jc.amdgpu_vm_bo_moveasbuh1hhjubj)}(h h]h }(hjGhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hnew_memh]hnew_mem}(hjbhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(h bool evictedh](j )}(hj h]hbool}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjwubj2)}(hevictedh]hevicted}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjwubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjXhhhjjhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjThhhjjhMubah}(h]jOah ](jjeh"]h$]h&]jj)jhuh1jhjjhMhjQhhubj)}(hhh]h)}(hhandle BO moveh]hhandle BO move}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjQhhhjjhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jamdgpu_vm_get_block_sizesbc.amdgpu_vm_get_block_sizeasbuh1hhjhhhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMubj)}(h h]h }(hj*hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjhhhj)hMubj,)}(hamdgpu_vm_get_block_sizeh]j2)}(hj&h]hamdgpu_vm_get_block_size}(hj<hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj8ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhj)hMubjM)}(h(uint64_t vm_size)h]jS)}(huint64_t vm_sizeh](h)}(hhh]j2)}(huint64_th]huint64_t}(hjZhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj\modnameN classnameNjj)}j]j$c.amdgpu_vm_get_block_sizeasbuh1hhjSubj)}(h h]h }(hjxhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjSubj2)}(hvm_sizeh]hvm_size}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjSubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjOubah}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhj)hMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhj)hMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhj)hMhjhhubj)}(hhh]h)}(h,calculate VM page table size as power of twoh]h,calculate VM page table size as power of two}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj)hMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjmhhhjhM ubjM)}(hy(struct amdgpu_device *adev, uint32_t min_vm_size, uint32_t fragment_size_default, unsigned max_level, unsigned max_bits)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_adjust_sizeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(huint32_t min_vm_sizeh](h)}(hhh]j2)}(huint32_th]huint32_t}(hj#hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%modnameN classnameNjj)}j]jc.amdgpu_vm_adjust_sizeasbuh1hhjubj)}(h h]h }(hjAhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(h min_vm_sizeh]h min_vm_size}(hjOhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(huint32_t fragment_size_defaulth](h)}(hhh]j2)}(huint32_th]huint32_t}(hjkhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjhubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]jc.amdgpu_vm_adjust_sizeasbuh1hhjdubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjdubj2)}(hfragment_size_defaulth]hfragment_size_default}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjdubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hunsigned max_levelh](j )}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(h max_levelh]h max_level}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hunsigned max_bitsh](j )}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hmax_bitsh]hmax_bits}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjmhhhjhM ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjihhhjhM ubah}(h]jdah ](jjeh"]h$]h&]jj)jhuh1jhjhM hjfhhubj)}(hhh]h)}(h,adjust vm size, block size and fragment sizeh]h,adjust vm size, block size and fragment size}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM hj(hhubah}(h]h ]h"]h$]h&]uh1jhjfhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jCj6jCj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMe ubjM)}(h$(struct amdgpu_vm *vm, long timeout)h](jS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_wait_idleasbuh1hhjubj)}(h h]h }(hj%hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hvmh]hvm}(hj@hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(h long timeouth](j )}(hlongh]hlong}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj)}(h h]h }(hjghhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjUubj2)}(htimeouth]htimeout}(hjuhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjUubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMe ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMe ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMe hjhhubj)}(hhh]h)}(hwait for the VM to become idleh]hwait for the VM to become idle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMe hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMe ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjohhhjhM ubjM)}(h$(struct amdgpu_task_info *task_info)h]jS)}(h"struct amdgpu_task_info *task_infoh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(hamdgpu_task_infoh]hamdgpu_task_info}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_put_task_infoasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(h task_infoh]h task_info}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubah}(h]h ]h"]h$]h&]jJjKuh1jLhjohhhjhM ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjkhhhjhM ubah}(h]jfah ](jjeh"]h$]h&]jj)jhuh1jhjhM hjhhhubj)}(hhh]h)}(h#reference down the vm task_info ptrh]h#reference down the vm task_info ptr}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM hj0hhubah}(h]h ]h"]h$]h&]uh1jhjhhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jKj6jKj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jamdgpu_vm_get_task_info_vmsbc.amdgpu_vm_get_task_info_vmasbuh1hhjhhhjhM ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjhhhjhM ubj)}(hj4h]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM ubj,)}(hamdgpu_vm_get_task_info_vmh]j2)}(hj1h]hamdgpu_vm_get_task_info_vm}(hjShhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjOubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhM ubjM)}(h(struct amdgpu_vm *vm)h]jS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hjnhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjjubj)}(h h]h }(hj{hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjjubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j/c.amdgpu_vm_get_task_info_vmasbuh1hhjjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj2)}(hvmh]hvm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjfubah}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhM ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhM ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhM hjhhubj)}(hhh]h)}(hExtracts task info for a vm.h]hExtracts task info for a vm.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jamdgpu_vm_get_task_info_pasidsbc.amdgpu_vm_get_task_info_pasidasbuh1hhjhhhjhM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjhhhjhM ubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM ubj,)}(hamdgpu_vm_get_task_info_pasidh]j2)}(hjh]hamdgpu_vm_get_task_info_pasid}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhM ubjM)}(h'(struct amdgpu_device *adev, u32 pasid)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj*hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj&ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj&ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjHhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]jc.amdgpu_vm_get_task_info_pasidasbuh1hhj&ubj)}(h h]h }(hjfhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj&ubj)}(hj4h]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj&ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj"ubjS)}(h u32 pasidh](h)}(hhh]j2)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_vm_get_task_info_pasidasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hpasidh]hpasid}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj"ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhM ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhM ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhM hjhhubj)}(hhh]h)}(hExtracts task info for a PASID.h]hExtracts task info for a PASID.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j j6j j7j8j9uh1jhhhjah"]h$]h&]uh1j1hj ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhM ubjM)}(h(struct amdgpu_vm *vm)h]jS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hj*hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj&ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj&ubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjHhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_set_task_infoasbuh1hhj&ubj)}(h h]h }(hjhhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj&ubj)}(hj4h]h*}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj2)}(hvmh]hvm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj&ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj"ubah}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhM ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhM ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhM hjhhubj)}(hhh]h)}(hSets VMs task info.h]hSets VMs task info.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjeubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjDhhhjVhM ubjM)}(hB(struct amdgpu_device *adev, struct amdgpu_vm *vm, int32_t xcp_id)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjksbc.amdgpu_vm_initasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj}ubjS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.amdgpu_vm_initasbuh1hhjubj)}(h h]h }(hj3 hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjA hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hvmh]hvm}(hjN hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj}ubjS)}(hint32_t xcp_idh](h)}(hhh]j2)}(hint32_th]hint32_t}(hjj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjg ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjl modnameN classnameNjj)}j]jc.amdgpu_vm_initasbuh1hhjc ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjc ubj2)}(hxcp_idh]hxcp_id}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjc ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj}ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjDhhhjVhM ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj@hhhjVhM ubah}(h]j;ah ](jjeh"]h$]h&]jj)jhuh1jhjVhM hj=hhubj)}(hhh]h)}(hinitialize a vm instanceh]hinitialize a vm instance}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM hj hhubah}(h]h ]h"]h$]h&]uh1jhj=hhhjVhM ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j j6j j7j8j9uh1jhhhjah"]h$]h&]uh1j1hjI ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj( hhhj: hMH ubjM)}(h2(struct amdgpu_device *adev, struct amdgpu_vm *vm)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hji hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhje ubj)}(h h]h }(hjv hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhje ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjO sbc.amdgpu_vm_make_computeasbuh1hhje ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhje ubj)}(hj4h]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje ubj2)}(hadevh]hadev}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hje ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhja ubjS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hj hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj ubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j c.amdgpu_vm_make_computeasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj ubj)}(hj4h]h*}(hj% hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj2)}(hvmh]hvm}(hj2 hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhja ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj( hhhj: hMH ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj$ hhhj: hMH ubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj: hMH hj! hhubj)}(hhh]h)}(hTurn a GFX VM into a compute VMh]hTurn a GFX VM into a compute VM}(hj\ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMH hjY hhubah}(h]h ]h"]h$]h&]uh1jhj! hhhj: hMH ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jt j6jt j7j8j9uh1jhhhjah"]h$]h&]uh1j1hj ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj hhhj hM ubjM)}(h2(struct amdgpu_device *adev, struct amdgpu_vm *vm)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.amdgpu_vm_finiasbuh1hhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj ubj)}(hj4h]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj2)}(hadevh]hadev}(hj1hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj ubjS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hjJhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjFubj)}(h h]h }(hjWhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjFubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjhhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]jc.amdgpu_vm_finiasbuh1hhjFubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjFubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj2)}(hvmh]hvm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjFubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj hhhj hM ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj hhhj hM ubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj hM hj hhubj)}(hhh]h)}(htear down a vm instanceh]htear down a vm instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM hjhhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hM ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhM ubjM)}(h(struct amdgpu_device *adev)h]jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hj!hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj2hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_manager_initasbuh1hhjubj)}(h h]h }(hjRhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjmhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj ubah}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhM ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhM ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhM hjhhubj)}(hhh]h)}(hinit the VM managerh]hinit the VM manager}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjuubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjThhhjfhM ubjM)}(h(struct amdgpu_device *adev)h]jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj{sbc.amdgpu_vm_manager_finiasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubah}(h]h ]h"]h$]h&]jJjKuh1jLhjThhhjfhM ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjPhhhjfhM ubah}(h]jKah ](jjeh"]h$]h&]jj)jhuh1jhjfhM hjMhhubj)}(hhh]h)}(hcleanup VM managerh]hcleanup VM manager}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM hjhhubah}(h]h ]h"]h$]h&]uh1jhjMhhhjfhM ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j0j6j0j7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhM! ubjM)}(h;(struct drm_device *dev, void *data, struct drm_file *filp)h](jS)}(hstruct drm_device *devh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hj#hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h drm_deviceh]h drm_device}(hj4hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_ioctlasbuh1hhjubj)}(h h]h }(hjThhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hdevh]hdev}(hjohhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(h void *datah](j )}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct drm_file *filph](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(hdrm_fileh]hdrm_file}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jPc.amdgpu_vm_ioctlasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hfilph]hfilp}(hj!hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhM! ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhM! ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhM! hjhhubj)}(hhh]h)}(h%Manages VMID reservation for vm hubs.h]h%Manages VMID reservation for vm hubs.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM! hjHhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM! ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jcj6jcj7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjzhhhjhMK ubjM)}(hl(struct amdgpu_device *adev, u32 pasid, u32 vmid, u32 node_id, uint64_t addr, uint64_t ts, bool write_fault)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_handle_faultasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(h u32 pasidh](h)}(hhh]j2)}(hu32h]hu32}(hj/hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1modnameN classnameNjj)}j]jc.amdgpu_vm_handle_faultasbuh1hhj(ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj(ubj2)}(hpasidh]hpasid}(hj[hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj(ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hu32 vmidh](h)}(hhh]j2)}(hu32h]hu32}(hjwhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]jc.amdgpu_vm_handle_faultasbuh1hhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjpubj2)}(hvmidh]hvmid}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjpubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(h u32 node_idh](h)}(hhh]j2)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_vm_handle_faultasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hnode_idh]hnode_id}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(h uint64_t addrh](h)}(hhh]j2)}(huint64_th]huint64_t}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.amdgpu_vm_handle_faultasbuh1hhjubj)}(h h]h }(hj%hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(haddrh]haddr}(hj3hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(h uint64_t tsh](h)}(hhh]j2)}(huint64_th]huint64_t}(hjOhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQmodnameN classnameNjj)}j]jc.amdgpu_vm_handle_faultasbuh1hhjHubj)}(h h]h }(hjmhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjHubj2)}(htsh]hts}(hj{hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjHubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hbool write_faulth](j )}(hj h]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(h write_faulth]h write_fault}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjzhhhjhMK ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjvhhhjhMK ubah}(h]jqah ](jjeh"]h$]h&]jj)jhuh1jhjhMK hjshhubj)}(hhh]h)}(hgraceful handling of VM faults.h]hgraceful handling of VM faults.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMK hjhhubah}(h]h ]h"]h$]h&]uh1jhjshhhjhMK ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6jj7j8j9uh1jhhhj``bool write_fault`` true is write fault, false is read fault h](j)}(h``bool write_fault``h]j)}(hjqh]hbool write_fault}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMS hjkubj)}(hhh]h)}(h(true is write fault, false is read faulth]h(true is write fault, false is read fault}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMS hjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1hhjhMS hjubeh}(h]h ]h"]h$]h&]uh1hhjubh)}(h**Description**h]jJ)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMU hjubh)}(hmTry to gracefully handle a VM fault. Return true if the fault was handled and shouldn't be reported any more.h]hoTry to gracefully handle a VM fault. Return true if the fault was handled and shouldn’t be reported any more.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMU hjubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhM ubjM)}(h*(struct amdgpu_vm *vm, struct seq_file *m)h](jS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hj.hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj*ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj*ubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hjLhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjNmodnameN classnameNjj)}j]j)}jjsbc.amdgpu_debugfs_vm_bo_infoasbuh1hhj*ubj)}(h h]h }(hjlhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj*ubj)}(hj4h]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj2)}(hvmh]hvm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj*ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj&ubjS)}(hstruct seq_file *mh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(hseq_fileh]hseq_file}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jhc.amdgpu_debugfs_vm_bo_infoasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hj%Rh]hm}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj&ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhM ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhM ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhM hjhhubj)}(hhh]h)}(hprint BO info for the VMh]hprint BO info for the VM}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j8j6j8j7j8j9uh1jhhhjah"]h$]h&]uh1j1hj7ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhj(hM ubjM)}(hd(struct amdgpu_device *adev, unsigned int pasid, uint64_t addr, uint32_t status, unsigned int vmhub)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjWhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjSubj)}(h h]h }(hjdhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjSubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjuhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjwmodnameN classnameNjj)}j]j)}jj=sbc.amdgpu_vm_update_fault_cacheasbuh1hhjSubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjSubj)}(hj4h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj2)}(hadevh]hadev}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjSubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjOubjS)}(hunsigned int pasidh](j )}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj )}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hpasidh]hpasid}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjOubjS)}(h uint64_t addrh](h)}(hhh]j2)}(huint64_th]huint64_t}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.amdgpu_vm_update_fault_cacheasbuh1hhjubj)}(h h]h }(hj;hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(haddrh]haddr}(hjIhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjOubjS)}(huint32_t statush](h)}(hhh]j2)}(huint32_th]huint32_t}(hjehhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgmodnameN classnameNjj)}j]jc.amdgpu_vm_update_fault_cacheasbuh1hhj^ubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj^ubj2)}(hstatush]hstatus}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj^ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjOubjS)}(hunsigned int vmhubh](j )}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj )}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj2)}(hvmhubh]hvmhub}(hjhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjOubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhj(hM ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhj(hM ubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj(hM hjhhubj)}(hhh]h)}(hupdate cached fault into.h]hupdate cached fault into.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chM hj hhubah}(h]h ]h"]h$]h&]uh1jhjhhhj(hM ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j$j6j$j7j8j9uh1jhhhjah"]h$]h&]uh1j1hjubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjhhhjhMK ubjM)}(h,(struct amdgpu_vm *vm, struct amdgpu_bo *bo)h](jS)}(hstruct amdgpu_vm *vmh](jY)}(hj\h]hstruct}(hjhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubh)}(hhh]j2)}(h amdgpu_vmh]h amdgpu_vm}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjsbc.amdgpu_vm_is_bo_always_validasbuh1hhjubj)}(h h]h }(hj+ hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjubj)}(hj4h]h*}(hj9 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj2)}(hvmh]hvm}(hjF hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubjS)}(hstruct amdgpu_bo *boh](jY)}(hj\h]hstruct}(hj_ hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj[ ubj)}(h h]h }(hjl hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj[ ubh)}(hhh]j2)}(h amdgpu_boh]h amdgpu_bo}(hj} hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjz ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j' c.amdgpu_vm_is_bo_always_validasbuh1hhj[ ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj[ ubj)}(hj4h]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ ubj2)}(hboh]hbo}(hj hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj[ ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjhhhjhMK ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhhhjhMK ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMK hjhhubj)}(hhh]h)}(h"check if the BO is VM always validh]h"check if the BO is VM always valid}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhn/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:194: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.chMK hj hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMK ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j j6j j7j8j9uh1jhhhjah"]h$]h&]uh1j1hj="ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj"hhhj."hKvubjM)}(h(struct amdgpu_device *adev)h]jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj]"hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjY"ubj)}(h h]h }(hjj"hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjY"ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj{"hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjx"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}"modnameN classnameNjj)}j]j)}jjC"sbc.amdgpu_irq_disable_allasbuh1hhjY"ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjY"ubj)}(hj4h]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY"ubj2)}(hadevh]hadev}(hj"hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjY"ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjU"ubah}(h]h ]h"]h$]h&]jJjKuh1jLhj"hhhj."hKvubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj"hhhj."hKvubah}(h]j"ah ](jjeh"]h$]h&]jj)jhuh1jhj."hKvhj"hhubj)}(hhh]h)}(hdisable *all* interruptsh](hdisable }(hj"hhhNhNubhemphasis)}(h*all*h]hall}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj"ubh interrupts}(hj"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKvhj"hhubah}(h]h ]h"]h$]h&]uh1jhj"hhhj."hKvubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j #j6j #j7j8j9uh1jhhhj!hNhNubj;)}(h**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer **Description** Disable all types of interrupts from all sources.h](h)}(h**Parameters**h]jJ)}(hj#h]h Parameters}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj#ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKzhj#ubh)}(hhh]h)}(h5``struct amdgpu_device *adev`` amdgpu device pointer h](j)}(h``struct amdgpu_device *adev``h]j)}(hj5#h]hstruct amdgpu_device *adev}(hj7#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3#ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKxhj/#ubj)}(hhh]h)}(hamdgpu device pointerh]hamdgpu device pointer}(hjN#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJ#hKxhjK#ubah}(h]h ]h"]h$]h&]uh1jhj/#ubeh}(h]h ]h"]h$]h&]uh1hhjJ#hKxhj,#ubah}(h]h ]h"]h$]h&]uh1hhj#ubh)}(h**Description**h]jJ)}(hjp#h]h Description}(hjr#hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjn#ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKzhj#ubh)}(h1Disable all types of interrupts from all sources.h]h1Disable all types of interrupts from all sources.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKzhj#ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_irq_handler (C function)c.amdgpu_irq_handlerhNtauh1jhj!hhhNhNubj)}(hhh](j)}(h3irqreturn_t amdgpu_irq_handler (int irq, void *arg)h]j)}(h2irqreturn_t amdgpu_irq_handler(int irq, void *arg)h](h)}(hhh]j2)}(h irqreturn_th]h irqreturn_t}(hj#hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#modnameN classnameNjj)}j]j)}jamdgpu_irq_handlersbc.amdgpu_irq_handlerasbuh1hhj#hhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKubj)}(h h]h }(hj#hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj#hhhj#hKubj,)}(hamdgpu_irq_handlerh]j2)}(hj#h]hamdgpu_irq_handler}(hj#hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj#ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj#hhhj#hKubjM)}(h(int irq, void *arg)h](jS)}(hint irqh](j )}(hinth]hint}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj)}(h h]h }(hj$hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj$ubj2)}(hirqh]hirq}(hj#$hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj$ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj#ubjS)}(h void *argh](j )}(hvoidh]hvoid}(hj<$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8$ubj)}(h h]h }(hjJ$hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj8$ubj)}(hj4h]h*}(hjX$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8$ubj2)}(hargh]harg}(hje$hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj8$ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj#ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj#hhhj#hKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj#hhhj#hKubah}(h]j#ah ](jjeh"]h$]h&]jj)jhuh1jhj#hKhj#hhubj)}(hhh]h)}(h IRQ handlerh]h IRQ handler}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj$hhubah}(h]h ]h"]h$]h&]uh1jhj#hhhj#hKubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j$j6j$j7j8j9uh1jhhhj!hNhNubj;)}(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]jJ)}(hj$h]h Parameters}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj$ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj$ubh)}(hhh](h)}(h ``int irq`` IRQ number (unused) h](j)}(h ``int irq``h]j)}(hj$h]hint irq}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj$ubj)}(hhh]h)}(hIRQ number (unused)h]hIRQ number (unused)}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hKhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1hhj$hKhj$ubh)}(h$``void *arg`` pointer to DRM device h](j)}(h ``void *arg``h]j)}(hj %h]h void *arg}(hj %hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj%ubj)}(hhh]h)}(hpointer to DRM deviceh]hpointer to DRM device}(hj"%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hKhj%ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1hhj%hKhj$ubeh}(h]h ]h"]h$]h&]uh1hhj$ubh)}(h**Description**h]jJ)}(hjD%h]h Description}(hjF%hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjB%ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj$ubh)}(h*IRQ handler for amdgpu driver (all ASICs).h]h*IRQ handler for amdgpu driver (all ASICs).}(hjZ%hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj$ubh)}(h **Return**h]jJ)}(hjk%h]hReturn}(hjm%hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhji%ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj$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%hhhNhNubh)}(h:c:type:`irqreturn_t`h]j)}(hj%h]h irqreturn_t}(hj%hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj irqreturn_tuh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj%ubeh}(h]h ]h"]h$]h&]uh1hhj%hKhj$ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"amdgpu_irq_handle_ih1 (C function)c.amdgpu_irq_handle_ih1hNtauh1jhj!hhhNhNubj)}(hhh](j)}(h5void amdgpu_irq_handle_ih1 (struct work_struct *work)h]j)}(h4void amdgpu_irq_handle_ih1(struct work_struct *work)h](j )}(hvoidh]hvoid}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%hhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKubj)}(h h]h }(hj%hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj%hhhj%hKubj,)}(hamdgpu_irq_handle_ih1h]j2)}(hamdgpu_irq_handle_ih1h]hamdgpu_irq_handle_ih1}(hj%hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj%ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj%hhhj%hKubjM)}(h(struct work_struct *work)h]jS)}(hstruct work_struct *workh](jY)}(hj\h]hstruct}(hj &hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj&ubj)}(h h]h }(hj&hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj&ubh)}(hhh]j2)}(h work_structh]h work_struct}(hj*&hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj'&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,&modnameN classnameNjj)}j]j)}jj%sbc.amdgpu_irq_handle_ih1asbuh1hhj&ubj)}(h h]h }(hjJ&hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj&ubj)}(hj4h]h*}(hjX&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj2)}(hworkh]hwork}(hje&hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj&ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj&ubah}(h]h ]h"]h$]h&]jJjKuh1jLhj%hhhj%hKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj%hhhj%hKubah}(h]j%ah ](jjeh"]h$]h&]jj)jhuh1jhj%hKhj%hhubj)}(hhh]h)}(hkick of processing for IH1h]hkick of processing for IH1}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj&hhubah}(h]h ]h"]h$]h&]uh1jhj%hhhj%hKubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j&j6j&j7j8j9uh1jhhhj!hNhNubj;)}(h**Parameters** ``struct work_struct *work`` work structure in struct amdgpu_irq **Description** Kick of processing IH ring 1.h](h)}(h**Parameters**h]jJ)}(hj&h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj&ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj&ubh)}(hhh]h)}(hA``struct work_struct *work`` work structure in struct amdgpu_irq h](j)}(h``struct work_struct *work``h]j)}(hj&h]hstruct work_struct *work}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj&ubj)}(hhh]h)}(h#work structure in struct amdgpu_irqh]h#work structure in struct amdgpu_irq}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hKhj&ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1hhj&hKhj&ubah}(h]h ]h"]h$]h&]uh1hhj&ubh)}(h**Description**h]jJ)}(hj 'h]h Description}(hj 'hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj 'ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj&ubh)}(hKick of processing IH ring 1.h]hKick of processing IH ring 1.}(hj!'hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"amdgpu_irq_handle_ih2 (C function)c.amdgpu_irq_handle_ih2hNtauh1jhj!hhhNhNubj)}(hhh](j)}(h5void amdgpu_irq_handle_ih2 (struct work_struct *work)h]j)}(h4void amdgpu_irq_handle_ih2(struct work_struct *work)h](j )}(hvoidh]hvoid}(hjP'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjL'hhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKubj)}(h h]h }(hj_'hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjL'hhhj^'hKubj,)}(hamdgpu_irq_handle_ih2h]j2)}(hamdgpu_irq_handle_ih2h]hamdgpu_irq_handle_ih2}(hjq'hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjm'ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjL'hhhj^'hKubjM)}(h(struct work_struct *work)h]jS)}(hstruct work_struct *workh](jY)}(hj\h]hstruct}(hj'hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj'ubh)}(hhh]j2)}(h work_structh]h work_struct}(hj'hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]j)}jjs'sbc.amdgpu_irq_handle_ih2asbuh1hhj'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj'ubj)}(hj4h]h*}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj2)}(hworkh]hwork}(hj'hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj'ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj'ubah}(h]h ]h"]h$]h&]jJjKuh1jLhjL'hhhj^'hKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjH'hhhj^'hKubah}(h]jC'ah ](jjeh"]h$]h&]jj)jhuh1jhj^'hKhjE'hhubj)}(hhh]h)}(hkick of processing for IH2h]hkick of processing for IH2}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj (hhubah}(h]h ]h"]h$]h&]uh1jhjE'hhhj^'hKubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j((j6j((j7j8j9uh1jhhhj!hNhNubj;)}(h**Parameters** ``struct work_struct *work`` work structure in struct amdgpu_irq **Description** Kick of processing IH ring 2.h](h)}(h**Parameters**h]jJ)}(hj2(h]h Parameters}(hj4(hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj0(ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj,(ubh)}(hhh]h)}(hA``struct work_struct *work`` work structure in struct amdgpu_irq h](j)}(h``struct work_struct *work``h]j)}(hjQ(h]hstruct work_struct *work}(hjS(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjO(ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhjK(ubj)}(hhh]h)}(h#work structure in struct amdgpu_irqh]h#work structure in struct amdgpu_irq}(hjj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjf(hKhjg(ubah}(h]h ]h"]h$]h&]uh1jhjK(ubeh}(h]h ]h"]h$]h&]uh1hhjf(hKhjH(ubah}(h]h ]h"]h$]h&]uh1hhj,(ubh)}(h**Description**h]jJ)}(hj(h]h Description}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj(ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj,(ubh)}(hKick of processing IH ring 2.h]hKick of processing IH ring 2.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj,(ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&amdgpu_irq_handle_ih_soft (C function)c.amdgpu_irq_handle_ih_softhNtauh1jhj!hhhNhNubj)}(hhh](j)}(h9void amdgpu_irq_handle_ih_soft (struct work_struct *work)h]j)}(h8void amdgpu_irq_handle_ih_soft(struct work_struct *work)h](j )}(hvoidh]hvoid}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(hhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKubj)}(h h]h }(hj(hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj(hhhj(hKubj,)}(hamdgpu_irq_handle_ih_softh]j2)}(hamdgpu_irq_handle_ih_softh]hamdgpu_irq_handle_ih_soft}(hj(hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj(ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj(hhhj(hKubjM)}(h(struct work_struct *work)h]jS)}(hstruct work_struct *workh](jY)}(hj\h]hstruct}(hj)hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj )ubj)}(h h]h }(hj)hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj )ubh)}(hhh]j2)}(h work_structh]h work_struct}(hj,)hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj))ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.)modnameN classnameNjj)}j]j)}jj(sbc.amdgpu_irq_handle_ih_softasbuh1hhj )ubj)}(h h]h }(hjL)hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj )ubj)}(hj4h]h*}(hjZ)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj )ubj2)}(hworkh]hwork}(hjg)hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj )ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj)ubah}(h]h ]h"]h$]h&]jJjKuh1jLhj(hhhj(hKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj(hhhj(hKubah}(h]j(ah ](jjeh"]h$]h&]jj)jhuh1jhj(hKhj(hhubj)}(hhh]h)}(hkick of processing for ih_softh]hkick of processing for ih_soft}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj)hhubah}(h]h ]h"]h$]h&]uh1jhj(hhhj(hKubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j)j6j)j7j8j9uh1jhhhj!hNhNubj;)}(h**Parameters** ``struct work_struct *work`` work structure in struct amdgpu_irq **Description** Kick of processing IH soft ring.h](h)}(h**Parameters**h]jJ)}(hj)h]h Parameters}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj)ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj)ubh)}(hhh]h)}(hA``struct work_struct *work`` work structure in struct amdgpu_irq h](j)}(h``struct work_struct *work``h]j)}(hj)h]hstruct work_struct *work}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj)ubj)}(hhh]h)}(h#work structure in struct amdgpu_irqh]h#work structure in struct amdgpu_irq}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)hKhj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1hhj)hKhj)ubah}(h]h ]h"]h$]h&]uh1hhj)ubh)}(h**Description**h]jJ)}(hj *h]h Description}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj *ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj)ubh)}(h Kick of processing IH soft ring.h]h Kick of processing IH soft ring.}(hj#*hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj)ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_msi_ok (C function)c.amdgpu_msi_okhNtauh1jhj!hhhNhNubj)}(hhh](j)}(h/bool amdgpu_msi_ok (struct amdgpu_device *adev)h]j)}(h.bool amdgpu_msi_ok(struct amdgpu_device *adev)h](j )}(hj h]hbool}(hjR*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN*hhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKubj)}(h h]h }(hj`*hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjN*hhhj_*hKubj,)}(h amdgpu_msi_okh]j2)}(h amdgpu_msi_okh]h amdgpu_msi_ok}(hjr*hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjn*ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjN*hhhj_*hKubjM)}(h(struct amdgpu_device *adev)h]jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj*hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj*ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj*ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj*hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*modnameN classnameNjj)}j]j)}jjt*sbc.amdgpu_msi_okasbuh1hhj*ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj*ubj)}(hj4h]h*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj2)}(hadevh]hadev}(hj*hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj*ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj*ubah}(h]h ]h"]h$]h&]jJjKuh1jLhjN*hhhj_*hKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjJ*hhhj_*hKubah}(h]jE*ah ](jjeh"]h$]h&]jj)jhuh1jhj_*hKhjG*hhubj)}(hhh]h)}(h*check whether MSI functionality is enabledh]h*check whether MSI functionality is enabled}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj+hhubah}(h]h ]h"]h$]h&]uh1jhjG*hhhj_*hKubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j)+j6j)+j7j8j9uh1jhhhj!hNhNubj;)}(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* otherwiseh](h)}(h**Parameters**h]jJ)}(hj3+h]h Parameters}(hj5+hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj1+ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj-+ubh)}(hhh]h)}(h>``struct amdgpu_device *adev`` amdgpu device pointer (unused) h](j)}(h``struct amdgpu_device *adev``h]j)}(hjR+h]hstruct amdgpu_device *adev}(hjT+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP+ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhjL+ubj)}(hhh]h)}(hamdgpu device pointer (unused)h]hamdgpu device pointer (unused)}(hjk+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjg+hKhjh+ubah}(h]h ]h"]h$]h&]uh1jhjL+ubeh}(h]h ]h"]h$]h&]uh1hhjg+hKhjI+ubah}(h]h ]h"]h$]h&]uh1hhj-+ubh)}(h**Description**h]jJ)}(hj+h]h Description}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj+ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj-+ubh)}(hTChecks whether MSI functionality has been disabled via module parameter (all ASICs).h]hTChecks whether MSI functionality has been disabled via module parameter (all ASICs).}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj-+ubh)}(h **Return**h]jJ)}(hj+h]hReturn}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj+ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj-+ubh)}(h=*true* if MSIs are allowed to be enabled or *false* otherwiseh](j")}(h*true*h]htrue}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj+ubh& if MSIs are allowed to be enabled or }(hj+hhhNhNubj")}(h*false*h]hfalse}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj+ubh otherwise}(hj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chKhj-+ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_irq_init (C function)c.amdgpu_irq_inithNtauh1jhj!hhhNhNubj)}(hhh](j)}(h0int amdgpu_irq_init (struct amdgpu_device *adev)h]j)}(h/int amdgpu_irq_init(struct amdgpu_device *adev)h](j )}(hinth]hint}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,hhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMubj)}(h h]h }(hj(,hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj,hhhj',hMubj,)}(hamdgpu_irq_inith]j2)}(hamdgpu_irq_inith]hamdgpu_irq_init}(hj:,hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj6,ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj,hhhj',hMubjM)}(h(struct amdgpu_device *adev)h]jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjV,hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjR,ubj)}(h h]h }(hjc,hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjR,ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjt,hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjq,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjv,modnameN classnameNjj)}j]j)}jj<,sbc.amdgpu_irq_initasbuh1hhjR,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjR,ubj)}(hj4h]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjR,ubj2)}(hadevh]hadev}(hj,hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjR,ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjN,ubah}(h]h ]h"]h$]h&]jJjKuh1jLhj,hhhj',hMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj,hhhj',hMubah}(h]j ,ah ](jjeh"]h$]h&]jj)jhuh1jhj',hMhj,hhubj)}(hhh]h)}(hinitialize interrupt handlingh]hinitialize interrupt handling}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj,hhubah}(h]h ]h"]h$]h&]uh1jhj,hhhj',hMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j,j6j,j7j8j9uh1jhhhj!hNhNubj;)}(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 failureh](h)}(h**Parameters**h]jJ)}(hj,h]h Parameters}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj,ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM hj,ubh)}(hhh]h)}(h5``struct amdgpu_device *adev`` amdgpu device pointer h](j)}(h``struct amdgpu_device *adev``h]j)}(hj-h]hstruct amdgpu_device *adev}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj-ubj)}(hhh]h)}(hamdgpu device pointerh]hamdgpu device pointer}(hj3-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/-hMhj0-ubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1hhj/-hMhj-ubah}(h]h ]h"]h$]h&]uh1hhj,ubh)}(h**Description**h]jJ)}(hjU-h]h Description}(hjW-hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjS-ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM hj,ubh)}(hSets up work functions for hotplug and reset interrupts, enables MSI functionality, initializes vblank, hotplug and reset interrupt handling.h]hSets up work functions for hotplug and reset interrupts, enables MSI functionality, initializes vblank, hotplug and reset interrupt handling.}(hjk-hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM hj,ubh)}(h **Return**h]jJ)}(hj|-h]hReturn}(hj~-hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjz-ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM hj,ubh)}(h%0 on success or error code on failureh]h%0 on success or error code on failure}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM hj,ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_irq_fini_sw (C function)c.amdgpu_irq_fini_swhNtauh1jhj!hhhNhNubj)}(hhh](j)}(h4void amdgpu_irq_fini_sw (struct amdgpu_device *adev)h]j)}(h3void amdgpu_irq_fini_sw(struct amdgpu_device *adev)h](j )}(hvoidh]hvoid}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-hhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMYubj)}(h h]h }(hj-hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj-hhhj-hMYubj,)}(hamdgpu_irq_fini_swh]j2)}(hamdgpu_irq_fini_swh]hamdgpu_irq_fini_sw}(hj-hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj-ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj-hhhj-hMYubjM)}(h(struct amdgpu_device *adev)h]jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj-hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj-ubj)}(h h]h }(hj .hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj-ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj.hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.modnameN classnameNjj)}j]j)}jj-sbc.amdgpu_irq_fini_swasbuh1hhj-ubj)}(h h]h }(hj<.hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj-ubj)}(hj4h]h*}(hjJ.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj2)}(hadevh]hadev}(hjW.hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj-ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj-ubah}(h]h ]h"]h$]h&]jJjKuh1jLhj-hhhj-hMYubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj-hhhj-hMYubah}(h]j-ah ](jjeh"]h$]h&]jj)jhuh1jhj-hMYhj-hhubj)}(hhh]h)}(hshut down interrupt handlingh]hshut down interrupt handling}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMYhj~.hhubah}(h]h ]h"]h$]h&]uh1jhj-hhhj-hMYubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j.j6j.j7j8j9uh1jhhhj!hNhNubj;)}(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]jJ)}(hj.h]h Parameters}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj.ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM]hj.ubh)}(hhh]h)}(h5``struct amdgpu_device *adev`` amdgpu device pointer h](j)}(h``struct amdgpu_device *adev``h]j)}(hj.h]hstruct amdgpu_device *adev}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM[hj.ubj)}(hhh]h)}(hamdgpu device pointerh]hamdgpu device pointer}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.hM[hj.ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1hhj.hM[hj.ubah}(h]h ]h"]h$]h&]uh1hhj.ubh)}(h**Description**h]jJ)}(hj.h]h Description}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj.ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM]hj.ubh)}(hTears 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]hTears 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).}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM]hj.ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_irq_add_id (C function)c.amdgpu_irq_add_idhNtauh1jhj!hhhNhNubj)}(hhh](j)}(h~int amdgpu_irq_add_id (struct amdgpu_device *adev, unsigned int client_id, unsigned int src_id, struct amdgpu_irq_src *source)h]j)}(0h}int amdgpu_irq_add_id(struct amdgpu_device *adev, unsigned int client_id, unsigned int src_id, struct amdgpu_irq_src *source)h](j )}(hinth]hint}(hjB/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>/hhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMxubj)}(h h]h }(hjQ/hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj>/hhhjP/hMxubj,)}(hamdgpu_irq_add_idh]j2)}(hamdgpu_irq_add_idh]hamdgpu_irq_add_id}(hjc/hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj_/ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj>/hhhjP/hMxubjM)}(hh(struct amdgpu_device *adev, unsigned int client_id, unsigned int src_id, struct amdgpu_irq_src *source)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj/hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj{/ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj{/ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj/hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]j)}jje/sbc.amdgpu_irq_add_idasbuh1hhj{/ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj{/ubj)}(hj4h]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{/ubj2)}(hadevh]hadev}(hj/hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj{/ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjw/ubjS)}(hunsigned int client_idh](j )}(hunsignedh]hunsigned}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj/ubj )}(hinth]hint}(hj 0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj/ubj2)}(h client_idh]h client_id}(hj)0hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj/ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjw/ubjS)}(hunsigned int src_idh](j )}(hunsignedh]hunsigned}(hjB0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>0ubj)}(h h]h }(hjP0hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj>0ubj )}(hinth]hint}(hj^0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>0ubj)}(h h]h }(hjl0hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj>0ubj2)}(hsrc_idh]hsrc_id}(hjz0hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj>0ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjw/ubjS)}(hstruct amdgpu_irq_src *sourceh](jY)}(hj\h]hstruct}(hj0hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj0ubh)}(hhh]j2)}(hamdgpu_irq_srch]hamdgpu_irq_src}(hj0hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]j/c.amdgpu_irq_add_idasbuh1hhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj0ubj)}(hj4h]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj2)}(hsourceh]hsource}(hj0hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj0ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjw/ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj>/hhhjP/hMxubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj:/hhhjP/hMxubah}(h]j5/ah ](jjeh"]h$]h&]jj)jhuh1jhjP/hMxhj7/hhubj)}(hhh]h)}(hregister IRQ sourceh]hregister IRQ source}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMxhj1hhubah}(h]h ]h"]h$]h&]uh1jhj7/hhhjP/hMxubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j,1j6j,1j7j8j9uh1jhhhj!hNhNubj;)}(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 otherwiseh](h)}(h**Parameters**h]jJ)}(hj61h]h Parameters}(hj81hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj41ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM|hj01ubh)}(hhh](h)}(h5``struct amdgpu_device *adev`` amdgpu device pointer h](j)}(h``struct amdgpu_device *adev``h]j)}(hjU1h]hstruct amdgpu_device *adev}(hjW1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjS1ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMzhjO1ubj)}(hhh]h)}(hamdgpu device pointerh]hamdgpu device pointer}(hjn1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjj1hMzhjk1ubah}(h]h ]h"]h$]h&]uh1jhjO1ubeh}(h]h ]h"]h$]h&]uh1hhjj1hMzhjL1ubh)}(h%``unsigned int client_id`` client id h](j)}(h``unsigned int client_id``h]j)}(hj1h]hunsigned int client_id}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM{hj1ubj)}(hhh]h)}(h client idh]h client id}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hM{hj1ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1hhj1hM{hjL1ubh)}(h"``unsigned int src_id`` source id h](j)}(h``unsigned int src_id``h]j)}(hj1h]hunsigned int src_id}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM|hj1ubj)}(hhh]h)}(h source idh]h source id}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hM|hj1ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1hhj1hM|hjL1ubh)}(h5``struct amdgpu_irq_src *source`` IRQ source pointer h](j)}(h!``struct amdgpu_irq_src *source``h]j)}(hj2h]hstruct amdgpu_irq_src *source}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM}hj1ubj)}(hhh]h)}(hIRQ source pointerh]hIRQ source pointer}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hM}hj2ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1hhj2hM}hjL1ubeh}(h]h ]h"]h$]h&]uh1hhj01ubh)}(h**Description**h]jJ)}(hj;2h]h Description}(hj=2hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj92ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj01ubh)}(h!Registers IRQ source on a client.h]h!Registers IRQ source on a client.}(hjQ2hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj01ubh)}(h **Return**h]jJ)}(hjb2h]hReturn}(hjd2hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj`2ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj01ubh)}(h$0 on success or error code otherwiseh]h$0 on success or error code otherwise}(hjx2hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj01ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j amdgpu_irq_dispatch (C function)c.amdgpu_irq_dispatchhNtauh1jhj!hhhNhNubj)}(hhh](j)}(hPvoid amdgpu_irq_dispatch (struct amdgpu_device *adev, struct amdgpu_ih_ring *ih)h]j)}(hOvoid amdgpu_irq_dispatch(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih)h](j )}(hvoidh]hvoid}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2hhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMubj)}(h h]h }(hj2hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj2hhhj2hMubj,)}(hamdgpu_irq_dispatchh]j2)}(hamdgpu_irq_dispatchh]hamdgpu_irq_dispatch}(hj2hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj2ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj2hhhj2hMubjM)}(h7(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj2hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj2ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj3hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3modnameN classnameNjj)}j]j)}jj2sbc.amdgpu_irq_dispatchasbuh1hhj2ubj)}(h h]h }(hj"3hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj2ubj)}(hj4h]h*}(hj03hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj2)}(hadevh]hadev}(hj=3hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj2ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj2ubjS)}(hstruct amdgpu_ih_ring *ihh](jY)}(hj\h]hstruct}(hjV3hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjR3ubj)}(h h]h }(hjc3hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjR3ubh)}(hhh]j2)}(hamdgpu_ih_ringh]hamdgpu_ih_ring}(hjt3hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjq3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjv3modnameN classnameNjj)}j]j3c.amdgpu_irq_dispatchasbuh1hhjR3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjR3ubj)}(hj4h]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjR3ubj2)}(hihh]hih}(hj3hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjR3ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj2ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj2hhhj2hMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj2hhhj2hMubah}(h]j2ah ](jjeh"]h$]h&]jj)jhuh1jhj2hMhj2hhubj)}(hhh]h)}(hdispatch IRQ to IP blocksh]hdispatch IRQ to IP blocks}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj3hhubah}(h]h ]h"]h$]h&]uh1jhj2hhhj2hMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j3j6j3j7j8j9uh1jhhhj!hNhNubj;)}(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]jJ)}(hj3h]h Parameters}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj3ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj3ubh)}(hhh](h)}(h5``struct amdgpu_device *adev`` amdgpu device pointer h](j)}(h``struct amdgpu_device *adev``h]j)}(hj4h]hstruct amdgpu_device *adev}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj4ubj)}(hhh]h)}(hamdgpu device pointerh]hamdgpu device pointer}(hj14hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-4hMhj.4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1hhj-4hMhj4ubh)}(h6``struct amdgpu_ih_ring *ih`` interrupt ring instance h](j)}(h``struct amdgpu_ih_ring *ih``h]j)}(hjQ4h]hstruct amdgpu_ih_ring *ih}(hjS4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjO4ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjK4ubj)}(hhh]h)}(hinterrupt ring instanceh]hinterrupt ring instance}(hjj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjf4hMhjg4ubah}(h]h ]h"]h$]h&]uh1jhjK4ubeh}(h]h ]h"]h$]h&]uh1hhjf4hMhj4ubeh}(h]h ]h"]h$]h&]uh1hhj3ubh)}(h**Description**h]jJ)}(hj4h]h Description}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj4ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj3ubh)}(hDispatches IRQ to IP blocks.h]hDispatches IRQ to IP blocks.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj3ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j amdgpu_irq_delegate (C function)c.amdgpu_irq_delegatehNtauh1jhj!hhhNhNubj)}(hhh](j)}(hivoid amdgpu_irq_delegate (struct amdgpu_device *adev, struct amdgpu_iv_entry *entry, unsigned int num_dw)h]j)}(hhvoid amdgpu_irq_delegate(struct amdgpu_device *adev, struct amdgpu_iv_entry *entry, unsigned int num_dw)h](j )}(hvoidh]hvoid}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4hhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMubj)}(h h]h }(hj4hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj4hhhj4hMubj,)}(hamdgpu_irq_delegateh]j2)}(hamdgpu_irq_delegateh]hamdgpu_irq_delegate}(hj4hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj4ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj4hhhj4hMubjM)}(hP(struct amdgpu_device *adev, struct amdgpu_iv_entry *entry, unsigned int num_dw)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj5hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj 5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj 5ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj,5hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj)5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.5modnameN classnameNjj)}j]j)}jj4sbc.amdgpu_irq_delegateasbuh1hhj 5ubj)}(h h]h }(hjL5hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj 5ubj)}(hj4h]h*}(hjZ5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 5ubj2)}(hadevh]hadev}(hjg5hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj 5ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj5ubjS)}(hstruct amdgpu_iv_entry *entryh](jY)}(hj\h]hstruct}(hj5hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj|5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj|5ubh)}(hhh]j2)}(hamdgpu_iv_entryh]hamdgpu_iv_entry}(hj5hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]jH5c.amdgpu_irq_delegateasbuh1hhj|5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj|5ubj)}(hj4h]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|5ubj2)}(hentryh]hentry}(hj5hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj|5ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj5ubjS)}(hunsigned int num_dwh](j )}(hunsignedh]hunsigned}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj5ubj )}(hinth]hint}(hj 6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj5ubj2)}(hnum_dwh]hnum_dw}(hj(6hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj5ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj5ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj4hhhj4hMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj4hhhj4hMubah}(h]j4ah ](jjeh"]h$]h&]jj)jhuh1jhj4hMhj4hhubj)}(hhh]h)}(hdelegate IV to soft IH ringh]hdelegate IV to soft IH ring}(hjR6hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjO6hhubah}(h]h ]h"]h$]h&]uh1jhj4hhhj4hMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jj6j6jj6j7j8j9uh1jhhhj!hNhNubj;)}(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]jJ)}(hjt6h]h Parameters}(hjv6hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjr6ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjn6ubh)}(hhh](h)}(h5``struct amdgpu_device *adev`` amdgpu device pointer h](j)}(h``struct amdgpu_device *adev``h]j)}(hj6h]hstruct amdgpu_device *adev}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj6ubj)}(hhh]h)}(hamdgpu device pointerh]hamdgpu device pointer}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hMhj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1hhj6hMhj6ubh)}(h+``struct amdgpu_iv_entry *entry`` IV entry h](j)}(h!``struct amdgpu_iv_entry *entry``h]j)}(hj6h]hstruct amdgpu_iv_entry *entry}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj6ubj)}(hhh]h)}(hIV entryh]hIV entry}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hMhj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1hhj6hMhj6ubh)}(h#``unsigned int num_dw`` size of IV h](j)}(h``unsigned int num_dw``h]j)}(hj7h]hunsigned int num_dw}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj6ubj)}(hhh]h)}(h size of IVh]h size of IV}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hMhj7ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1hhj7hMhj6ubeh}(h]h ]h"]h$]h&]uh1hhjn6ubh)}(h**Description**h]jJ)}(hj@7h]h Description}(hjB7hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj>7ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjn6ubh)}(hDelegate 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]hDelegate 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.}(hjV7hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjn6ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_irq_update (C function)c.amdgpu_irq_updatehNtauh1jhj!hhhNhNubj)}(hhh](j)}(haint amdgpu_irq_update (struct amdgpu_device *adev, struct amdgpu_irq_src *src, unsigned int type)h]j)}(h`int amdgpu_irq_update(struct amdgpu_device *adev, struct amdgpu_irq_src *src, unsigned int type)h](j )}(hinth]hint}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7hhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMubj)}(h h]h }(hj7hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj7hhhj7hMubj,)}(hamdgpu_irq_updateh]j2)}(hamdgpu_irq_updateh]hamdgpu_irq_update}(hj7hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj7ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj7hhhj7hMubjM)}(hK(struct amdgpu_device *adev, struct amdgpu_irq_src *src, unsigned int type)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj7hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj7ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj7hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]j)}jj7sbc.amdgpu_irq_updateasbuh1hhj7ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj7ubj)}(hj4h]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj2)}(hadevh]hadev}(hj8hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj7ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj7ubjS)}(hstruct amdgpu_irq_src *srch](jY)}(hj\h]hstruct}(hj48hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj08ubj)}(h h]h }(hjA8hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj08ubh)}(hhh]j2)}(hamdgpu_irq_srch]hamdgpu_irq_src}(hjR8hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjO8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjT8modnameN classnameNjj)}j]j7c.amdgpu_irq_updateasbuh1hhj08ubj)}(h h]h }(hjp8hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj08ubj)}(hj4h]h*}(hj~8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj08ubj2)}(hsrch]hsrc}(hj8hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj08ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj7ubjS)}(hunsigned int typeh](j )}(hunsignedh]hunsigned}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj8ubj )}(hinth]hint}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj8ubj2)}(htypeh]htype}(hj8hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj8ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj7ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj7hhhj7hMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj}7hhhj7hMubah}(h]jx7ah ](jjeh"]h$]h&]jj)jhuh1jhj7hMhjz7hhubj)}(hhh]h)}(hupdate hardware interrupt stateh]hupdate hardware interrupt state}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj9hhubah}(h]h ]h"]h$]h&]uh1jhjz7hhhj7hMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j9j6j9j7j8j9uh1jhhhj!hNhNubj;)}(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]jJ)}(hj(9h]h Parameters}(hj*9hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj&9ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM hj"9ubh)}(hhh](h)}(h5``struct amdgpu_device *adev`` amdgpu device pointer h](j)}(h``struct amdgpu_device *adev``h]j)}(hjG9h]hstruct amdgpu_device *adev}(hjI9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjE9ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjA9ubj)}(hhh]h)}(hamdgpu device pointerh]hamdgpu device pointer}(hj`9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\9hMhj]9ubah}(h]h ]h"]h$]h&]uh1jhjA9ubeh}(h]h ]h"]h$]h&]uh1hhj\9hMhj>9ubh)}(h8``struct amdgpu_irq_src *src`` interrupt source pointer h](j)}(h``struct amdgpu_irq_src *src``h]j)}(hj9h]hstruct amdgpu_irq_src *src}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~9ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjz9ubj)}(hhh]h)}(hinterrupt source pointerh]hinterrupt source pointer}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1jhjz9ubeh}(h]h ]h"]h$]h&]uh1hhj9hMhj>9ubh)}(h(``unsigned int type`` type of interrupt h](j)}(h``unsigned int type``h]j)}(hj9h]hunsigned int type}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM hj9ubj)}(hhh]h)}(htype of interrupth]htype of interrupt}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hM hj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1hhj9hM hj>9ubeh}(h]h ]h"]h$]h&]uh1hhj"9ubh)}(h**Description**h]jJ)}(hj9h]h Description}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj9ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM hj"9ubh)}(hah"]h$]h&]uh1j1hjV:ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj5:hhhjG:hM$ubjM)}(h(struct amdgpu_device *adev)h]jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjv:hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjr:ubj)}(h h]h }(hj:hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjr:ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj:hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]j)}jj\:sb$c.amdgpu_irq_gpu_reset_resume_helperasbuh1hhjr:ubj)}(h h]h }(hj:hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjr:ubj)}(hj4h]h*}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr:ubj2)}(hadevh]hadev}(hj:hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjr:ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjn:ubah}(h]h ]h"]h$]h&]jJjKuh1jLhj5:hhhjG:hM$ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj1:hhhjG:hM$ubah}(h]j,:ah ](jjeh"]h$]h&]jj)jhuh1jhjG:hM$hj.:hhubj)}(hhh]h)}(h&update interrupt states on all sourcesh]h&update interrupt states on all sources}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM$hj:hhubah}(h]h ]h"]h$]h&]uh1jhj.:hhhjG:hM$ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j;j6j;j7j8j9uh1jhhhj!hNhNubj;)}(h**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer **Description** Updates state of all types of interrupts on all sources on resume after reset.h](h)}(h**Parameters**h]jJ)}(hj;h]h Parameters}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj;ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM(hj;ubh)}(hhh]h)}(h5``struct amdgpu_device *adev`` amdgpu device pointer h](j)}(h``struct amdgpu_device *adev``h]j)}(hj:;h]hstruct amdgpu_device *adev}(hj<;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8;ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM&hj4;ubj)}(hhh]h)}(hamdgpu device pointerh]hamdgpu device pointer}(hjS;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjO;hM&hjP;ubah}(h]h ]h"]h$]h&]uh1jhj4;ubeh}(h]h ]h"]h$]h&]uh1hhjO;hM&hj1;ubah}(h]h ]h"]h$]h&]uh1hhj;ubh)}(h**Description**h]jJ)}(hju;h]h Description}(hjw;hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjs;ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM(hj;ubh)}(hNUpdates state of all types of interrupts on all sources on resume after reset.h]hNUpdates state of all types of interrupts on all sources on resume after reset.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM(hj;ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_irq_get (C function)c.amdgpu_irq_gethNtauh1jhj!hhhNhNubj)}(hhh](j)}(h^int amdgpu_irq_get (struct amdgpu_device *adev, struct amdgpu_irq_src *src, unsigned int type)h]j)}(h]int amdgpu_irq_get(struct amdgpu_device *adev, struct amdgpu_irq_src *src, unsigned int type)h](j )}(hinth]hint}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;hhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMBubj)}(h h]h }(hj;hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj;hhhj;hMBubj,)}(hamdgpu_irq_geth]j2)}(hamdgpu_irq_geth]hamdgpu_irq_get}(hj;hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj;ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj;hhhj;hMBubjM)}(hK(struct amdgpu_device *adev, struct amdgpu_irq_src *src, unsigned int type)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj;hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj;ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj;ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj<hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<modnameN classnameNjj)}j]j)}jj;sbc.amdgpu_irq_getasbuh1hhj;ubj)}(h h]h }(hj5<hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj;ubj)}(hj4h]h*}(hjC<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj2)}(hadevh]hadev}(hjP<hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj;ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj;ubjS)}(hstruct amdgpu_irq_src *srch](jY)}(hj\h]hstruct}(hji<hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhje<ubj)}(h h]h }(hjv<hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhje<ubh)}(hhh]j2)}(hamdgpu_irq_srch]hamdgpu_irq_src}(hj<hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<modnameN classnameNjj)}j]j1<c.amdgpu_irq_getasbuh1hhje<ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhje<ubj)}(hj4h]h*}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje<ubj2)}(hsrch]hsrc}(hj<hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hje<ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj;ubjS)}(hunsigned int typeh](j )}(hunsignedh]hunsigned}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj<ubj )}(hinth]hint}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj<ubj2)}(htypeh]htype}(hj=hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj<ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj;ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj;hhhj;hMBubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj;hhhj;hMBubah}(h]j;ah ](jjeh"]h$]h&]jj)jhuh1jhj;hMBhj;hhubj)}(hhh]h)}(henable interrupth]henable interrupt}(hj;=hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMBhj8=hhubah}(h]h ]h"]h$]h&]uh1jhj;hhhj;hMBubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jS=j6jS=j7j8j9uh1jhhhj!hNhNubj;)}(hX9**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer ``struct amdgpu_irq_src *src`` interrupt source pointer ``unsigned int type`` type of interrupt **Description** Enables specified type of interrupt on the specified source (all ASICs). **Return** 0 on success or error code otherwiseh](h)}(h**Parameters**h]jJ)}(hj]=h]h Parameters}(hj_=hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj[=ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMFhjW=ubh)}(hhh](h)}(h5``struct amdgpu_device *adev`` amdgpu device pointer h](j)}(h``struct amdgpu_device *adev``h]j)}(hj|=h]hstruct amdgpu_device *adev}(hj~=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjz=ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMDhjv=ubj)}(hhh]h)}(hamdgpu device pointerh]hamdgpu device pointer}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hMDhj=ubah}(h]h ]h"]h$]h&]uh1jhjv=ubeh}(h]h ]h"]h$]h&]uh1hhj=hMDhjs=ubh)}(h8``struct amdgpu_irq_src *src`` interrupt source pointer h](j)}(h``struct amdgpu_irq_src *src``h]j)}(hj=h]hstruct amdgpu_irq_src *src}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMEhj=ubj)}(hhh]h)}(hinterrupt source pointerh]hinterrupt source pointer}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hMEhj=ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1hhj=hMEhjs=ubh)}(h(``unsigned int type`` type of interrupt h](j)}(h``unsigned int type``h]j)}(hj=h]hunsigned int type}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMFhj=ubj)}(hhh]h)}(htype of interrupth]htype of interrupt}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hMFhj>ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1hhj>hMFhjs=ubeh}(h]h ]h"]h$]h&]uh1hhjW=ubh)}(h**Description**h]jJ)}(hj)>h]h Description}(hj+>hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj'>ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMHhjW=ubh)}(hHEnables specified type of interrupt on the specified source (all ASICs).h]hHEnables specified type of interrupt on the specified source (all ASICs).}(hj?>hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMHhjW=ubh)}(h **Return**h]jJ)}(hjP>h]hReturn}(hjR>hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjN>ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMJhjW=ubh)}(h$0 on success or error code otherwiseh]h$0 on success or error code otherwise}(hjf>hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMJhjW=ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_irq_put (C function)c.amdgpu_irq_puthNtauh1jhj!hhhNhNubj)}(hhh](j)}(h^int amdgpu_irq_put (struct amdgpu_device *adev, struct amdgpu_irq_src *src, unsigned int type)h]j)}(h]int amdgpu_irq_put(struct amdgpu_device *adev, struct amdgpu_irq_src *src, unsigned int type)h](j )}(hinth]hint}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>hhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM`ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj>hhhj>hM`ubj,)}(hamdgpu_irq_puth]j2)}(hamdgpu_irq_puth]hamdgpu_irq_put}(hj>hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj>ubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hj>hhhj>hM`ubjM)}(hK(struct amdgpu_device *adev, struct amdgpu_irq_src *src, unsigned int type)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hj>hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj>ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj>ubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj>hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj>modnameN classnameNjj)}j]j)}jj>sbc.amdgpu_irq_putasbuh1hhj>ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj>ubj)}(hj4h]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj2)}(hadevh]hadev}(hj+?hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj>ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj>ubjS)}(hstruct amdgpu_irq_src *srch](jY)}(hj\h]hstruct}(hjD?hhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhj@?ubj)}(h h]h }(hjQ?hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj@?ubh)}(hhh]j2)}(hamdgpu_irq_srch]hamdgpu_irq_src}(hjb?hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj_?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjd?modnameN classnameNjj)}j]j ?c.amdgpu_irq_putasbuh1hhj@?ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj@?ubj)}(hj4h]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@?ubj2)}(hsrch]hsrc}(hj?hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj@?ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj>ubjS)}(hunsigned int typeh](j )}(hunsignedh]hunsigned}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj?ubj )}(hinth]hint}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj?ubj2)}(htypeh]htype}(hj?hhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj?ubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhj>ubeh}(h]h ]h"]h$]h&]jJjKuh1jLhj>hhhj>hM`ubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj>hhhj>hM`ubah}(h]j>ah ](jjeh"]h$]h&]jj)jhuh1jhj>hM`hj>hhubj)}(hhh]h)}(hdisable interrupth]hdisable interrupt}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chM`hj@hhubah}(h]h ]h"]h$]h&]uh1jhj>hhhj>hM`ubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5j.@j6j.@j7j8j9uh1jhhhj!hNhNubj;)}(hX9**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer ``struct amdgpu_irq_src *src`` interrupt source pointer ``unsigned int type`` type of interrupt **Description** Enables specified type of interrupt on the specified source (all ASICs). **Return** 0 on success or error code otherwiseh](h)}(h**Parameters**h]jJ)}(hj8@h]h Parameters}(hj:@hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj6@ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMdhj2@ubh)}(hhh](h)}(h5``struct amdgpu_device *adev`` amdgpu device pointer h](j)}(h``struct amdgpu_device *adev``h]j)}(hjW@h]hstruct amdgpu_device *adev}(hjY@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjU@ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMbhjQ@ubj)}(hhh]h)}(hamdgpu device pointerh]hamdgpu device pointer}(hjp@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjl@hMbhjm@ubah}(h]h ]h"]h$]h&]uh1jhjQ@ubeh}(h]h ]h"]h$]h&]uh1hhjl@hMbhjN@ubh)}(h8``struct amdgpu_irq_src *src`` interrupt source pointer h](j)}(h``struct amdgpu_irq_src *src``h]j)}(hj@h]hstruct amdgpu_irq_src *src}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMchj@ubj)}(hhh]h)}(hinterrupt source pointerh]hinterrupt source pointer}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hMchj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1hhj@hMchjN@ubh)}(h(``unsigned int type`` type of interrupt h](j)}(h``unsigned int type``h]j)}(hj@h]hunsigned int type}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMdhj@ubj)}(hhh]h)}(htype of interrupth]htype of interrupt}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hMdhj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1hhj@hMdhjN@ubeh}(h]h ]h"]h$]h&]uh1hhj2@ubh)}(h**Description**h]jJ)}(hjAh]h Description}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjAubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMfhj2@ubh)}(hHEnables specified type of interrupt on the specified source (all ASICs).h]hHEnables specified type of interrupt on the specified source (all ASICs).}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMfhj2@ubh)}(h **Return**h]jJ)}(hj+Ah]hReturn}(hj-AhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj)Aubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhhj2@ubh)}(h$0 on success or error code otherwiseh]h$0 on success or error code otherwise}(hjAAhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhhj2@ubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamdgpu_irq_enabled (C function)c.amdgpu_irq_enabledhNtauh1jhj!hhhNhNubj)}(hhh](j)}(hcbool amdgpu_irq_enabled (struct amdgpu_device *adev, struct amdgpu_irq_src *src, unsigned int type)h]j)}(hbbool amdgpu_irq_enabled(struct amdgpu_device *adev, struct amdgpu_irq_src *src, unsigned int type)h](j )}(hj h]hbool}(hjpAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlAhhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMubj)}(h h]h }(hj~AhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjlAhhhj}AhMubj,)}(hamdgpu_irq_enabledh]j2)}(hamdgpu_irq_enabledh]hamdgpu_irq_enabled}(hjAhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjAubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjlAhhhj}AhMubjM)}(hK(struct amdgpu_device *adev, struct amdgpu_irq_src *src, unsigned int type)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjAhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjAubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjAhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjAubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNjj)}j]j)}jjAsbc.amdgpu_irq_enabledasbuh1hhjAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjAubj)}(hj4h]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj2)}(hadevh]hadev}(hjBhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjAubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjAubjS)}(hstruct amdgpu_irq_src *srch](jY)}(hj\h]hstruct}(hjBhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjBubj)}(h h]h }(hj+BhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjBubh)}(hhh]j2)}(hamdgpu_irq_srch]hamdgpu_irq_src}(hjah"]h$]h&]uh1j1hj9Bubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj>BmodnameN classnameNjj)}j]jAc.amdgpu_irq_enabledasbuh1hhjBubj)}(h h]h }(hjZBhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjBubj)}(hj4h]h*}(hjhBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj2)}(hsrch]hsrc}(hjuBhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjBubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjAubjS)}(hunsigned int typeh](j )}(hunsignedh]hunsigned}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjBubj )}(hinth]hint}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjBubj2)}(htypeh]htype}(hjBhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjBubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjAubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjlAhhhj}AhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjhAhhhj}AhMubah}(h]jcAah ](jjeh"]h$]h&]jj)jhuh1jhj}AhMhjeAhhubj)}(hhh]h)}(h)check whether interrupt is enabled or noth]h)check whether interrupt is enabled or not}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjBhhubah}(h]h ]h"]h$]h&]uh1jhjeAhhhj}AhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jCj6jCj7j8j9uh1jhhhj!hNhNubj;)}(hXp**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer ``struct amdgpu_irq_src *src`` interrupt source pointer ``unsigned int type`` type of interrupt **Description** Checks whether the given type of interrupt is enabled on the given source. **Return** *true* if interrupt is enabled, *false* if interrupt is disabled or on invalid parametersh](h)}(h**Parameters**h]jJ)}(hjCh]h Parameters}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjCubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj Cubh)}(hhh](h)}(h5``struct amdgpu_device *adev`` amdgpu device pointer h](j)}(h``struct amdgpu_device *adev``h]j)}(hj1Ch]hstruct amdgpu_device *adev}(hj3ChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/Cubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj+Cubj)}(hhh]h)}(hamdgpu device pointerh]hamdgpu device pointer}(hjJChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFChMhjGCubah}(h]h ]h"]h$]h&]uh1jhj+Cubeh}(h]h ]h"]h$]h&]uh1hhjFChMhj(Cubh)}(h8``struct amdgpu_irq_src *src`` interrupt source pointer h](j)}(h``struct amdgpu_irq_src *src``h]j)}(hjjCh]hstruct amdgpu_irq_src *src}(hjlChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhCubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjdCubj)}(hhh]h)}(hinterrupt source pointerh]hinterrupt source pointer}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChMhjCubah}(h]h ]h"]h$]h&]uh1jhjdCubeh}(h]h ]h"]h$]h&]uh1hhjChMhj(Cubh)}(h(``unsigned int type`` type of interrupt h](j)}(h``unsigned int type``h]j)}(hjCh]hunsigned int type}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjCubj)}(hhh]h)}(htype of interrupth]htype of interrupt}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChMhjCubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1hhjChMhj(Cubeh}(h]h ]h"]h$]h&]uh1hhj Cubh)}(h**Description**h]jJ)}(hjCh]h Description}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjCubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj Cubh)}(hJChecks whether the given type of interrupt is enabled on the given source.h]hJChecks whether the given type of interrupt is enabled on the given source.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj Cubh)}(h **Return**h]jJ)}(hjDh]hReturn}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjDubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj Cubh)}(hY*true* if interrupt is enabled, *false* if interrupt is disabled or on invalid parametersh](j")}(h*true*h]htrue}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjDubh if interrupt is enabled, }(hjDhhhNhNubj")}(h*false*h]hfalse}(hj1DhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjDubh2 if interrupt is disabled or on invalid parameters}(hjDhhhNhNubeh}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj Cubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!amdgpu_irqdomain_map (C function)c.amdgpu_irqdomain_maphNtauh1jhj!hhhNhNubj)}(hhh](j)}(hXint amdgpu_irqdomain_map (struct irq_domain *d, unsigned int irq, irq_hw_number_t hwirq)h]j)}(hWint amdgpu_irqdomain_map(struct irq_domain *d, unsigned int irq, irq_hw_number_t hwirq)h](j )}(hinth]hint}(hjjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfDhhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMubj)}(h h]h }(hjyDhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjfDhhhjxDhMubj,)}(hamdgpu_irqdomain_maph]j2)}(hamdgpu_irqdomain_maph]hamdgpu_irqdomain_map}(hjDhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjDubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjfDhhhjxDhMubjM)}(h?(struct irq_domain *d, unsigned int irq, irq_hw_number_t hwirq)h](jS)}(hstruct irq_domain *dh](jY)}(hj\h]hstruct}(hjDhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjDubj)}(h h]h }(hjDhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjDubh)}(hhh]j2)}(h irq_domainh]h irq_domain}(hjDhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN classnameNjj)}j]j)}jjDsbc.amdgpu_irqdomain_mapasbuh1hhjDubj)}(h h]h }(hjDhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjDubj)}(hj4h]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj2)}(hdh]hd}(hjEhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjDubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjDubjS)}(hunsigned int irqh](j )}(hunsignedh]hunsigned}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj)}(h h]h }(hj'EhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjEubj )}(hinth]hint}(hj5EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj)}(h h]h }(hjCEhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjEubj2)}(hirqh]hirq}(hjQEhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjEubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjDubjS)}(hirq_hw_number_t hwirqh](h)}(hhh]j2)}(hirq_hw_number_th]hirq_hw_number_t}(hjmEhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjoEmodnameN classnameNjj)}j]jDc.amdgpu_irqdomain_mapasbuh1hhjfEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjfEubj2)}(hhwirqh]hhwirq}(hjEhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjfEubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjDubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjfDhhhjxDhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjbDhhhjxDhMubah}(h]j]Dah ](jjeh"]h$]h&]jj)jhuh1jhjxDhMhj_Dhhubj)}(hhh]h)}(h7create mapping between virtual and hardware IRQ numbersh]h7create mapping between virtual and hardware IRQ numbers}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjEhhubah}(h]h ]h"]h$]h&]uh1jhj_DhhhjxDhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jEj6jEj7j8j9uh1jhhhj!hNhNubj;)}(hX?**Parameters** ``struct irq_domain *d`` amdgpu IRQ domain pointer (unused) ``unsigned int irq`` virtual IRQ number ``irq_hw_number_t hwirq`` hardware irq number **Description** Current implementation assigns simple interrupt handler to the given virtual IRQ. **Return** 0 on success or error code otherwiseh](h)}(h**Parameters**h]jJ)}(hjEh]h Parameters}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjEubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjEubh)}(hhh](h)}(h<``struct irq_domain *d`` amdgpu IRQ domain pointer (unused) h](j)}(h``struct irq_domain *d``h]j)}(hjFh]hstruct irq_domain *d}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjEubj)}(hhh]h)}(h"amdgpu IRQ domain pointer (unused)h]h"amdgpu IRQ domain pointer (unused)}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhMhjFubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1hhjFhMhjEubh)}(h(``unsigned int irq`` virtual IRQ number h](j)}(h``unsigned int irq``h]j)}(hj=Fh]hunsigned int irq}(hj?FhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;Fubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhj7Fubj)}(hhh]h)}(hvirtual IRQ numberh]hvirtual IRQ number}(hjVFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRFhMhjSFubah}(h]h ]h"]h$]h&]uh1jhj7Fubeh}(h]h ]h"]h$]h&]uh1hhjRFhMhjEubh)}(h.``irq_hw_number_t hwirq`` hardware irq number h](j)}(h``irq_hw_number_t hwirq``h]j)}(hjvFh]hirq_hw_number_t hwirq}(hjxFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtFubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjpFubj)}(hhh]h)}(hhardware irq numberh]hhardware irq number}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhMhjFubah}(h]h ]h"]h$]h&]uh1jhjpFubeh}(h]h ]h"]h$]h&]uh1hhjFhMhjEubeh}(h]h ]h"]h$]h&]uh1hhjEubh)}(h**Description**h]jJ)}(hjFh]h Description}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjFubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjEubh)}(hQCurrent implementation assigns simple interrupt handler to the given virtual IRQ.h]hQCurrent implementation assigns simple interrupt handler to the given virtual IRQ.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjEubh)}(h **Return**h]jJ)}(hjFh]hReturn}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjFubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjEubh)}(h$0 on success or error code otherwiseh]h$0 on success or error code otherwise}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjEubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"amdgpu_irq_add_domain (C function)c.amdgpu_irq_add_domainhNtauh1jhj!hhhNhNubj)}(hhh](j)}(h6int amdgpu_irq_add_domain (struct amdgpu_device *adev)h]j)}(h5int amdgpu_irq_add_domain(struct amdgpu_device *adev)h](j )}(hinth]hint}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGhhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMubj)}(h h]h }(hj,GhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjGhhhj+GhMubj,)}(hamdgpu_irq_add_domainh]j2)}(hamdgpu_irq_add_domainh]hamdgpu_irq_add_domain}(hj>GhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj:Gubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjGhhhj+GhMubjM)}(h(struct amdgpu_device *adev)h]jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjZGhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjVGubj)}(h h]h }(hjgGhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjVGubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjxGhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjuGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzGmodnameN classnameNjj)}j]j)}jj@Gsbc.amdgpu_irq_add_domainasbuh1hhjVGubj)}(h h]h }(hjGhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjVGubj)}(hj4h]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVGubj2)}(hadevh]hadev}(hjGhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjVGubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjRGubah}(h]h ]h"]h$]h&]jJjKuh1jLhjGhhhj+GhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjGhhhj+GhMubah}(h]jGah ](jjeh"]h$]h&]jj)jhuh1jhj+GhMhjGhhubj)}(hhh]h)}(hcreate a linear IRQ domainh]hcreate a linear IRQ domain}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjGhhubah}(h]h ]h"]h$]h&]uh1jhjGhhhj+GhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jGj6jGj7j8j9uh1jhhhj!hNhNubj;)}(h**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer **Description** Creates an IRQ domain for GPU interrupt sources that may be driven by another driver (e.g., ACP). **Return** 0 on success or error code otherwiseh](h)}(h**Parameters**h]jJ)}(hjGh]h Parameters}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjGubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjGubh)}(hhh]h)}(h5``struct amdgpu_device *adev`` amdgpu device pointer h](j)}(h``struct amdgpu_device *adev``h]j)}(hjHh]hstruct amdgpu_device *adev}(hj HhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjHubj)}(hhh]h)}(hamdgpu device pointerh]hamdgpu device pointer}(hj7HhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3HhMhj4Hubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1hhj3HhMhjHubah}(h]h ]h"]h$]h&]uh1hhjGubh)}(h**Description**h]jJ)}(hjYHh]h Description}(hj[HhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjWHubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjGubh)}(haCreates an IRQ domain for GPU interrupt sources that may be driven by another driver (e.g., ACP).h]haCreates an IRQ domain for GPU interrupt sources that may be driven by another driver (e.g., ACP).}(hjoHhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjGubh)}(h **Return**h]jJ)}(hjHh]hReturn}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj~Hubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjGubh)}(h$0 on success or error code otherwiseh]h$0 on success or error code otherwise}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjGubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%amdgpu_irq_remove_domain (C function)c.amdgpu_irq_remove_domainhNtauh1jhj!hhhNhNubj)}(hhh](j)}(h:void amdgpu_irq_remove_domain (struct amdgpu_device *adev)h]j)}(h9void amdgpu_irq_remove_domain(struct amdgpu_device *adev)h](j )}(hvoidh]hvoid}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHhhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMubj)}(h h]h }(hjHhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjHhhhjHhMubj,)}(hamdgpu_irq_remove_domainh]j2)}(hamdgpu_irq_remove_domainh]hamdgpu_irq_remove_domain}(hjHhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjHubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjHhhhjHhMubjM)}(h(struct amdgpu_device *adev)h]jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjIhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjHubj)}(h h]h }(hjIhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjHubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hj IhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"ImodnameN classnameNjj)}j]j)}jjHsbc.amdgpu_irq_remove_domainasbuh1hhjHubj)}(h h]h }(hj@IhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjHubj)}(hj4h]h*}(hjNIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj2)}(hadevh]hadev}(hj[IhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjHubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjHubah}(h]h ]h"]h$]h&]jJjKuh1jLhjHhhhjHhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjHhhhjHhMubah}(h]jHah ](jjeh"]h$]h&]jj)jhuh1jhjHhMhjHhhubj)}(hhh]h)}(hremove the IRQ domainh]hremove the IRQ domain}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjIhhubah}(h]h ]h"]h$]h&]uh1jhjHhhhjHhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jIj6jIj7j8j9uh1jhhhj!hNhNubj;)}(h**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer **Description** Removes the IRQ domain for GPU interrupt sources that may be driven by another driver (e.g., ACP).h](h)}(h**Parameters**h]jJ)}(hjIh]h Parameters}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjIubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjIubh)}(hhh]h)}(h5``struct amdgpu_device *adev`` amdgpu device pointer h](j)}(h``struct amdgpu_device *adev``h]j)}(hjIh]hstruct amdgpu_device *adev}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjIubj)}(hhh]h)}(hamdgpu device pointerh]hamdgpu device pointer}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhMhjIubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1hhjIhMhjIubah}(h]h ]h"]h$]h&]uh1hhjIubh)}(h**Description**h]jJ)}(hjJh]h Description}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjIubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjIubh)}(hbRemoves the IRQ domain for GPU interrupt sources that may be driven by another driver (e.g., ACP).h]hbRemoves the IRQ domain for GPU interrupt sources that may be driven by another driver (e.g., ACP).}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjIubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&amdgpu_irq_create_mapping (C function)c.amdgpu_irq_create_mappinghNtauh1jhj!hhhNhNubj)}(hhh](j)}(hXunsigned int amdgpu_irq_create_mapping (struct amdgpu_device *adev, unsigned int src_id)h]j)}(hWunsigned int amdgpu_irq_create_mapping(struct amdgpu_device *adev, unsigned int src_id)h](j )}(hunsignedh]hunsigned}(hjFJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBJhhho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMubj)}(h h]h }(hjUJhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjBJhhhjTJhMubj )}(hinth]hint}(hjcJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBJhhhjTJhMubj)}(h h]h }(hjqJhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjBJhhhjTJhMubj,)}(hamdgpu_irq_create_mappingh]j2)}(hamdgpu_irq_create_mappingh]hamdgpu_irq_create_mapping}(hjJhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjJubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjBJhhhjTJhMubjM)}(h1(struct amdgpu_device *adev, unsigned int src_id)h](jS)}(hstruct amdgpu_device *adevh](jY)}(hj\h]hstruct}(hjJhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjJubj)}(h h]h }(hjJhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjJubh)}(hhh]j2)}(h amdgpu_deviceh]h amdgpu_device}(hjJhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]j)}jjJsbc.amdgpu_irq_create_mappingasbuh1hhjJubj)}(h h]h }(hjJhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjJubj)}(hj4h]h*}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj2)}(hadevh]hadev}(hjJhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjJubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjJubjS)}(hunsigned int src_idh](j )}(hunsignedh]hunsigned}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Kubj)}(h h]h }(hjKhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj Kubj )}(hinth]hint}(hj-KhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Kubj)}(h h]h }(hj;KhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhj Kubj2)}(hsrc_idh]hsrc_id}(hjIKhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj Kubeh}(h]h ]h"]h$]h&]noemphjJjKuh1jRhjJubeh}(h]h ]h"]h$]h&]jJjKuh1jLhjBJhhhjTJhMubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhj>JhhhjTJhMubah}(h]j9Jah ](jjeh"]h$]h&]jj)jhuh1jhjTJhMhj;Jhhubj)}(hhh]h)}(h(create mapping between domain Linux IRQsh]h(create mapping between domain Linux IRQs}(hjsKhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjpKhhubah}(h]h ]h"]h$]h&]uh1jhj;JhhhjTJhMubeh}(h]h ](jfunctioneh"]h$]h&]j4jj5jKj6jKj7j8j9uh1jhhhj!hNhNubj;)}(hXE**Parameters** ``struct amdgpu_device *adev`` amdgpu device pointer ``unsigned int src_id`` IH source id **Description** Creates mapping between a domain IRQ (GPU IH src id) and a Linux IRQ Use this for components that generate a GPU interrupt, but are driven by a different driver (e.g., ACP). **Return** Linux IRQh](h)}(h**Parameters**h]jJ)}(hjKh]h Parameters}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjKubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjKubh)}(hhh](h)}(h5``struct amdgpu_device *adev`` amdgpu device pointer h](j)}(h``struct amdgpu_device *adev``h]j)}(hjKh]hstruct amdgpu_device *adev}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjKubj)}(hhh]h)}(hamdgpu device pointerh]hamdgpu device pointer}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhMhjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1hhjKhMhjKubh)}(h%``unsigned int src_id`` IH source id h](j)}(h``unsigned int src_id``h]j)}(hjKh]hunsigned int src_id}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjKubj)}(hhh]h)}(h IH source idh]h IH source id}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhMhjLubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1hhjLhMhjKubeh}(h]h ]h"]h$]h&]uh1hhjKubh)}(h**Description**h]jJ)}(hj(Lh]h Description}(hj*LhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj&Lubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjKubh)}(hCreates mapping between a domain IRQ (GPU IH src id) and a Linux IRQ Use this for components that generate a GPU interrupt, but are driven by a different driver (e.g., ACP).h]hCreates mapping between a domain IRQ (GPU IH src id) and a Linux IRQ Use this for components that generate a GPU interrupt, but are driven by a different driver (e.g., ACP).}(hj>LhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjKubh)}(h **Return**h]jJ)}(hjOLh]hReturn}(hjQLhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjMLubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjKubh)}(h Linux IRQh]h Linux IRQ}(hjeLhhhNhNubah}(h]h ]h"]h$]h&]uh1hho/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:203: ./drivers/gpu/drm/amd/amdgpu/amdgpu_irq.chMhjKubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hj!hhhNhNubeh}(h]interrupt-handlingah ]h"]interrupt handlingah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h IP Blocksh]h IP Blocks}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhhhhhKubh)}(hXGPUs are composed of IP (intellectual property) blocks. These IP blocks provide various functionalities: display, graphics, video decode, etc. The IP blocks that comprise a particular GPU are listed in the GPU's respective SoC file. amdgpu_device.c acquires the list of IP blocks for the GPU in use on initialization. It can then operate on this list to perform standard driver operations such as: init, fini, suspend, resume, etc.h]hXGPUs are composed of IP (intellectual property) blocks. These IP blocks provide various functionalities: display, graphics, video decode, etc. The IP blocks that comprise a particular GPU are listed in the GPU’s respective SoC file. amdgpu_device.c acquires the list of IP blocks for the GPU in use on initialization. It can then operate on this list to perform standard driver operations such as: init, fini, suspend, resume, etc.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:209: ./drivers/gpu/drm/amd/include/amd_shared.hhK9hjLhhubh)}(hoIP block implementations are named using the following convention: _v (E.g.: gfx_v6_0).h]hoIP block implementations are named using the following convention: _v (E.g.: gfx_v6_0).}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:209: ./drivers/gpu/drm/amd/include/amd_shared.hhKBhjLhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamd_ip_block_type (C enum)c.amd_ip_block_typehNtauh1jhjLhhhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhNubj)}(hhh](j)}(hamd_ip_block_typeh]j)}(henum amd_ip_block_typeh](jY)}(hjQDh]henum}(hjLhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjLhhhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKubj)}(h h]h }(hjLhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjLhhhjLhKubj,)}(hamd_ip_block_typeh]j2)}(hjLh]hamd_ip_block_type}(hjLhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjLubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjLhhhjLhKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjLhhhjLhKubah}(h]jLah ](jjeh"]h$]h&]jj)jhuh1jhjLhKhjLhhubj)}(hhh]h)}(h,Used to classify IP blocks by functionality.h]h,Used to classify IP blocks by functionality.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKIhj Mhhubah}(h]h ]h"]h$]h&]uh1jhjLhhhjLhKubeh}(h]h ](jenumeh"]h$]h&]j4jj5j&Mj6j&Mj7j8j9uh1jhhhjLhjLhNubj;)}(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_NUM`` Total number of IP block typesh](h)}(h **Constants**h]jJ)}(hj0Mh]h Constants}(hj2MhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj.Mubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKMhj*Mubh)}(hhh](h)}(h(``AMD_IP_BLOCK_TYPE_COMMON`` GPU Family h](j)}(h``AMD_IP_BLOCK_TYPE_COMMON``h]j)}(hjOMh]hAMD_IP_BLOCK_TYPE_COMMON}(hjQMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMMubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKPhjIMubj)}(hhh]h)}(h GPU Familyh]h GPU Family}(hjhMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdMhKPhjeMubah}(h]h ]h"]h$]h&]uh1jhjIMubeh}(h]h ]h"]h$]h&]uh1hhjdMhKPhjFMubh)}(h5``AMD_IP_BLOCK_TYPE_GMC`` Graphics Memory Controller h](j)}(h``AMD_IP_BLOCK_TYPE_GMC``h]j)}(hjMh]hAMD_IP_BLOCK_TYPE_GMC}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKShjMubj)}(hhh]h)}(hGraphics Memory Controllerh]hGraphics Memory Controller}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhKShjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1hhjMhKShjFMubh)}(h+``AMD_IP_BLOCK_TYPE_IH`` Interrupt Handler h](j)}(h``AMD_IP_BLOCK_TYPE_IH``h]j)}(hjMh]hAMD_IP_BLOCK_TYPE_IH}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKVhjMubj)}(hhh]h)}(hInterrupt Handlerh]hInterrupt Handler}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhKVhjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1hhjMhKVhjFMubh)}(h7``AMD_IP_BLOCK_TYPE_SMC`` System Management Controller h](j)}(h``AMD_IP_BLOCK_TYPE_SMC``h]j)}(hjMh]hAMD_IP_BLOCK_TYPE_SMC}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKYhjMubj)}(hhh]h)}(hSystem Management Controllerh]hSystem Management Controller}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhKYhjNubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1hhjNhKYhjFMubh)}(h6``AMD_IP_BLOCK_TYPE_PSP`` Platform Security Processor h](j)}(h``AMD_IP_BLOCK_TYPE_PSP``h]j)}(hj3Nh]hAMD_IP_BLOCK_TYPE_PSP}(hj5NhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1Nubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhK\hj-Nubj)}(hhh]h)}(hPlatform Security Processorh]hPlatform Security Processor}(hjLNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHNhK\hjINubah}(h]h ]h"]h$]h&]uh1jhj-Nubeh}(h]h ]h"]h$]h&]uh1hhjHNhK\hjFMubh)}(h9``AMD_IP_BLOCK_TYPE_DCE`` Display and Compositing Engine h](j)}(h``AMD_IP_BLOCK_TYPE_DCE``h]j)}(hjlNh]hAMD_IP_BLOCK_TYPE_DCE}(hjnNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhK_hjfNubj)}(hhh]h)}(hDisplay and Compositing Engineh]hDisplay and Compositing Engine}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhK_hjNubah}(h]h ]h"]h$]h&]uh1jhjfNubeh}(h]h ]h"]h$]h&]uh1hhjNhK_hjFMubh)}(h6``AMD_IP_BLOCK_TYPE_GFX`` Graphics and Compute Engine h](j)}(h``AMD_IP_BLOCK_TYPE_GFX``h]j)}(hjNh]hAMD_IP_BLOCK_TYPE_GFX}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKbhjNubj)}(hhh]h)}(hGraphics and Compute Engineh]hGraphics and Compute Engine}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhKbhjNubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1hhjNhKbhjFMubh)}(h-``AMD_IP_BLOCK_TYPE_SDMA`` System DMA Engine h](j)}(h``AMD_IP_BLOCK_TYPE_SDMA``h]j)}(hjNh]hAMD_IP_BLOCK_TYPE_SDMA}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKehjNubj)}(hhh]h)}(hSystem DMA Engineh]hSystem DMA Engine}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhKehjNubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1hhjNhKehjFMubh)}(h0``AMD_IP_BLOCK_TYPE_UVD`` Unified Video Decoder h](j)}(h``AMD_IP_BLOCK_TYPE_UVD``h]j)}(hjOh]hAMD_IP_BLOCK_TYPE_UVD}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKhhjOubj)}(hhh]h)}(hUnified Video Decoderh]hUnified Video Decoder}(hj0OhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,OhKhhj-Oubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1hhj,OhKhhjFMubh)}(h3``AMD_IP_BLOCK_TYPE_VCE`` Video Compression Engine h](j)}(h``AMD_IP_BLOCK_TYPE_VCE``h]j)}(hjPOh]hAMD_IP_BLOCK_TYPE_VCE}(hjROhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNOubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKkhjJOubj)}(hhh]h)}(hVideo Compression Engineh]hVideo Compression Engine}(hjiOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjeOhKkhjfOubah}(h]h ]h"]h$]h&]uh1jhjJOubeh}(h]h ]h"]h$]h&]uh1hhjeOhKkhjFMubh)}(h-``AMD_IP_BLOCK_TYPE_ACP`` Audio Co-Processor h](j)}(h``AMD_IP_BLOCK_TYPE_ACP``h]j)}(hjOh]hAMD_IP_BLOCK_TYPE_ACP}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKnhjOubj)}(hhh]h)}(hAudio Co-Processorh]hAudio Co-Processor}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhKnhjOubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1hhjOhKnhjFMubh)}(h0``AMD_IP_BLOCK_TYPE_VCN`` Video Core/Codec Next h](j)}(h``AMD_IP_BLOCK_TYPE_VCN``h]j)}(hjOh]hAMD_IP_BLOCK_TYPE_VCN}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKqhjOubj)}(hhh]h)}(hVideo Core/Codec Nexth]hVideo Core/Codec Next}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhKqhjOubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1hhjOhKqhjFMubh)}(h1``AMD_IP_BLOCK_TYPE_MES`` Micro-Engine Scheduler h](j)}(h``AMD_IP_BLOCK_TYPE_MES``h]j)}(hjOh]hAMD_IP_BLOCK_TYPE_MES}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKthjOubj)}(hhh]h)}(hMicro-Engine Schedulerh]hMicro-Engine Scheduler}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhKthjPubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1hhjPhKthjFMubh)}(h'``AMD_IP_BLOCK_TYPE_JPEG`` JPEG Engine h](j)}(h``AMD_IP_BLOCK_TYPE_JPEG``h]j)}(hj4Ph]hAMD_IP_BLOCK_TYPE_JPEG}(hj6PhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2Pubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKwhj.Pubj)}(hhh]h)}(h JPEG Engineh]h JPEG Engine}(hjMPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIPhKwhjJPubah}(h]h ]h"]h$]h&]uh1jhj.Pubeh}(h]h ]h"]h$]h&]uh1hhjIPhKwhjFMubh)}(h2``AMD_IP_BLOCK_TYPE_VPE`` Video Processing Engine h](j)}(h``AMD_IP_BLOCK_TYPE_VPE``h]j)}(hjmPh]hAMD_IP_BLOCK_TYPE_VPE}(hjoPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkPubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKzhjgPubj)}(hhh]h)}(hVideo Processing Engineh]hVideo Processing Engine}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhKzhjPubah}(h]h ]h"]h$]h&]uh1jhjgPubeh}(h]h ]h"]h$]h&]uh1hhjPhKzhjFMubh)}(hB``AMD_IP_BLOCK_TYPE_UMSCH_MM`` User Mode Scheduler for Multimedia h](j)}(h``AMD_IP_BLOCK_TYPE_UMSCH_MM``h]j)}(hjPh]hAMD_IP_BLOCK_TYPE_UMSCH_MM}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhK}hjPubj)}(hhh]h)}(h"User Mode Scheduler for Multimediah]h"User Mode Scheduler for Multimedia}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhK}hjPubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1hhjPhK}hjFMubh)}(h1``AMD_IP_BLOCK_TYPE_ISP`` Image Signal Processor h](j)}(h``AMD_IP_BLOCK_TYPE_ISP``h]j)}(hjPh]hAMD_IP_BLOCK_TYPE_ISP}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKhjPubj)}(hhh]h)}(hImage Signal Processorh]hImage Signal Processor}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhKhjPubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1hhjPhKhjFMubh)}(h8``AMD_IP_BLOCK_TYPE_NUM`` Total number of IP block typesh](j)}(h``AMD_IP_BLOCK_TYPE_NUM``h]j)}(hjQh]hAMD_IP_BLOCK_TYPE_NUM}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKhjQubj)}(hhh]h)}(hTotal number of IP block typesh]hTotal number of IP block types}(hj1QhhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKhj.Qubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1hhj-QhKhjFMubeh}(h]h ]h"]h$]h&]uh1hhj*Mubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjLhhhjLhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jDC_DEBUG_MASK (C enum)c.DC_DEBUG_MASKhNtauh1jhjLhhhjLhNubj)}(hhh](j)}(h DC_DEBUG_MASKh]j)}(henum DC_DEBUG_MASKh](jY)}(hjQDh]henum}(hjrQhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjnQhhhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhKubj)}(h h]h }(hjQhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjnQhhhjQhKubj,)}(h DC_DEBUG_MASKh]j2)}(hjlQh]h DC_DEBUG_MASK}(hjQhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hjQubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjnQhhhjQhKubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjjQhhhjQhKubah}(h]jeQah ](jjeh"]h$]h&]jj)jhuh1jhjQhKhjgQhhubj)}(hhh]h)}(h6Bits that are useful for debugging the Display Core IPh]h6Bits that are useful for debugging the Display Core IP}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjQhhubah}(h]h ]h"]h$]h&]uh1jhjgQhhhjQhKubeh}(h]h ](jenumeh"]h$]h&]j4jj5jQj6jQj7j8j9uh1jhhhjLhjLhNubj;)}(hX(**Constants** ``DC_DISABLE_PIPE_SPLIT`` If set, disable pipe-splitting ``DC_DISABLE_STUTTER`` If set, disable memory stutter mode ``DC_DISABLE_DSC`` If set, disable display stream compression ``DC_DISABLE_CLOCK_GATING`` If set, disable clock gating optimizations ``DC_DISABLE_PSR`` If set, disable Panel self refresh v1 and PSR-SU ``DC_FORCE_SUBVP_MCLK_SWITCH`` If set, force mclk switch in subvp, even if mclk switch in vblank is possible ``DC_DISABLE_MPO`` If set, disable multi-plane offloading ``DC_ENABLE_DPIA_TRACE`` If set, enable trace logging for DPIA ``DC_ENABLE_DML2`` If set, force usage of DML2, even if the DCN version does not default to it. ``DC_DISABLE_PSR_SU`` If set, disable PSR SU ``DC_DISABLE_REPLAY`` If set, disable Panel Replay ``DC_DISABLE_IPS`` 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. ``DC_DISABLE_IPS_DYNAMIC`` If set, disable all IPS, all the time, *except* when driver goes into suspend. ``DC_DISABLE_IPS2_DYNAMIC`` If set, disable IPS2 (IPS1 allowed) if there is an enabled display. Otherwise, enable all IPS. ``DC_FORCE_IPS_ENABLE`` If set, force enable all IPS, all the time. ``DC_DISABLE_ACPI_EDID`` If set, don't attempt to fetch EDID for eDP display from ACPI _DDC method. ``DC_DISABLE_HDMI_CEC`` If set, disable HDMI-CEC feature in amdgpu driver. ``DC_DISABLE_SUBVP_FAMS`` If set, disable DCN Sub-Viewport & Firmware Assisted Memory Clock Switching (FAMS) feature in amdgpu driver. ``DC_DISABLE_CUSTOM_BRIGHTNESS_CURVE`` If set, disable support for custom brightness curves ``DC_HDCP_LC_FORCE_FW_ENABLE`` If set, use HDCP Locality Check FW path regardless of reported HW capabilities. ``DC_HDCP_LC_ENABLE_SW_FALLBACK`` If set, upon HDCP Locality Check FW path failure, retry using legacy SW path. ``DC_SKIP_DETECTION_LT`` If set, skip detection link trainingh](h)}(h **Constants**h]jJ)}(hjQh]h Constants}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjQubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjQubh)}(hhh](h)}(h9``DC_DISABLE_PIPE_SPLIT`` If set, disable pipe-splitting h](j)}(h``DC_DISABLE_PIPE_SPLIT``h]j)}(hjQh]hDC_DISABLE_PIPE_SPLIT}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjQubj)}(hhh]h)}(hIf set, disable pipe-splittingh]hIf set, disable pipe-splitting}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj RhMhj Rubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1hhj RhMhjQubh)}(h;``DC_DISABLE_STUTTER`` If set, disable memory stutter mode h](j)}(h``DC_DISABLE_STUTTER``h]j)}(hj.Rh]hDC_DISABLE_STUTTER}(hj0RhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,Rubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhM hj(Rubj)}(hhh]h)}(h#If set, disable memory stutter modeh]h#If set, disable memory stutter mode}(hjGRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjCRhM hjDRubah}(h]h ]h"]h$]h&]uh1jhj(Rubeh}(h]h ]h"]h$]h&]uh1hhjCRhM hjQubh)}(h>``DC_DISABLE_DSC`` If set, disable display stream compression h](j)}(h``DC_DISABLE_DSC``h]j)}(hjgRh]hDC_DISABLE_DSC}(hjiRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeRubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjaRubj)}(hhh]h)}(h*If set, disable display stream compressionh]h*If set, disable display stream compression}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|RhMhj}Rubah}(h]h ]h"]h$]h&]uh1jhjaRubeh}(h]h ]h"]h$]h&]uh1hhj|RhMhjQubh)}(hG``DC_DISABLE_CLOCK_GATING`` If set, disable clock gating optimizations h](j)}(h``DC_DISABLE_CLOCK_GATING``h]j)}(hjRh]hDC_DISABLE_CLOCK_GATING}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjRubj)}(hhh]h)}(h*If set, disable clock gating optimizationsh]h*If set, disable clock gating optimizations}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhMhjRubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1hhjRhMhjQubh)}(hD``DC_DISABLE_PSR`` If set, disable Panel self refresh v1 and PSR-SU h](j)}(h``DC_DISABLE_PSR``h]j)}(hjRh]hDC_DISABLE_PSR}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjRubj)}(hhh]h)}(h0If set, disable Panel self refresh v1 and PSR-SUh]h0If set, disable Panel self refresh v1 and PSR-SU}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhMhjRubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1hhjRhMhjQubh)}(hm``DC_FORCE_SUBVP_MCLK_SWITCH`` If set, force mclk switch in subvp, even if mclk switch in vblank is possible h](j)}(h``DC_FORCE_SUBVP_MCLK_SWITCH``h]j)}(hjSh]hDC_FORCE_SUBVP_MCLK_SWITCH}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhj Subj)}(hhh]h)}(hMIf set, force mclk switch in subvp, even if mclk switch in vblank is possibleh]hMIf set, force mclk switch in subvp, even if mclk switch in vblank is possible}(hj+ShhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhj(Subah}(h]h ]h"]h$]h&]uh1jhj Subeh}(h]h ]h"]h$]h&]uh1hhj'ShMhjQubh)}(h:``DC_DISABLE_MPO`` If set, disable multi-plane offloading h](j)}(h``DC_DISABLE_MPO``h]j)}(hjLSh]hDC_DISABLE_MPO}(hjNShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJSubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjFSubj)}(hhh]h)}(h&If set, disable multi-plane offloadingh]h&If set, disable multi-plane offloading}(hjeShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjaShMhjbSubah}(h]h ]h"]h$]h&]uh1jhjFSubeh}(h]h ]h"]h$]h&]uh1hhjaShMhjQubh)}(h?``DC_ENABLE_DPIA_TRACE`` If set, enable trace logging for DPIA h](j)}(h``DC_ENABLE_DPIA_TRACE``h]j)}(hjSh]hDC_ENABLE_DPIA_TRACE}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjSubj)}(hhh]h)}(h%If set, enable trace logging for DPIAh]h%If set, enable trace logging for DPIA}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShMhjSubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1hhjShMhjQubh)}(h```DC_ENABLE_DML2`` If set, force usage of DML2, even if the DCN version does not default to it. h](j)}(h``DC_ENABLE_DML2``h]j)}(hjSh]hDC_ENABLE_DML2}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhM"hjSubj)}(hhh]h)}(hLIf set, force usage of DML2, even if the DCN version does not default to it.h]hLIf set, force usage of DML2, even if the DCN version does not default to it.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhM!hjSubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1hhjShM"hjQubh)}(h-``DC_DISABLE_PSR_SU`` If set, disable PSR SU h](j)}(h``DC_DISABLE_PSR_SU``h]j)}(hjSh]hDC_DISABLE_PSR_SU}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhM%hjSubj)}(hhh]h)}(hIf set, disable PSR SUh]hIf set, disable PSR SU}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ThM%hjTubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1hhj ThM%hjQubh)}(h3``DC_DISABLE_REPLAY`` If set, disable Panel Replay h](j)}(h``DC_DISABLE_REPLAY``h]j)}(hj1Th]hDC_DISABLE_REPLAY}(hj3ThhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/Tubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhM(hj+Tubj)}(hhh]h)}(hIf set, disable Panel Replayh]hIf set, disable Panel Replay}(hjJThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFThM(hjGTubah}(h]h ]h"]h$]h&]uh1jhj+Tubeh}(h]h ]h"]h$]h&]uh1hhjFThM(hjQubh)}(hX``DC_DISABLE_IPS`` 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)}(hjjTh]hDC_DISABLE_IPS}(hjlThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhTubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhM/hjdTubj)}(hhh]h)}(hIf 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]hIf 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.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhM+hjTubah}(h]h ]h"]h$]h&]uh1jhjdTubeh}(h]h ]h"]h$]h&]uh1hhjThM/hjQubh)}(hj``DC_DISABLE_IPS_DYNAMIC`` If set, disable all IPS, all the time, *except* when driver goes into suspend. h](j)}(h``DC_DISABLE_IPS_DYNAMIC``h]j)}(hjTh]hDC_DISABLE_IPS_DYNAMIC}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhM3hjTubj)}(hhh]h)}(hNIf set, disable all IPS, all the time, *except* when driver goes into suspend.h](h'If set, disable all IPS, all the time, }(hjThhhNhNubj")}(h*except*h]hexcept}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjTubh when driver goes into suspend.}(hjThhhNhNubeh}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhM2hjTubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1hhjThM3hjQubh)}(h{``DC_DISABLE_IPS2_DYNAMIC`` If set, disable IPS2 (IPS1 allowed) if there is an enabled display. Otherwise, enable all IPS. h](j)}(h``DC_DISABLE_IPS2_DYNAMIC``h]j)}(hjTh]hDC_DISABLE_IPS2_DYNAMIC}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhM7hjTubj)}(hhh]h)}(h^If set, disable IPS2 (IPS1 allowed) if there is an enabled display. Otherwise, enable all IPS.h]h^If set, disable IPS2 (IPS1 allowed) if there is an enabled display. Otherwise, enable all IPS.}(hj UhhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhM6hjUubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1hhjUhM7hjQubh)}(hD``DC_FORCE_IPS_ENABLE`` If set, force enable all IPS, all the time. h](j)}(h``DC_FORCE_IPS_ENABLE``h]j)}(hj*Uh]hDC_FORCE_IPS_ENABLE}(hj,UhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(Uubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhM:hj$Uubj)}(hhh]h)}(h+If set, force enable all IPS, all the time.h]h+If set, force enable all IPS, all the time.}(hjCUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?UhM:hj@Uubah}(h]h ]h"]h$]h&]uh1jhj$Uubeh}(h]h ]h"]h$]h&]uh1hhj?UhM:hjQubh)}(hd``DC_DISABLE_ACPI_EDID`` If set, don't attempt to fetch EDID for eDP display from ACPI _DDC method. h](j)}(h``DC_DISABLE_ACPI_EDID``h]j)}(hjcUh]hDC_DISABLE_ACPI_EDID}(hjeUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaUubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhM>hj]Uubj)}(hhh]h)}(hJIf set, don't attempt to fetch EDID for eDP display from ACPI _DDC method.h]hLIf set, don’t attempt to fetch EDID for eDP display from ACPI _DDC method.}(hj|UhhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhM=hjyUubah}(h]h ]h"]h$]h&]uh1jhj]Uubeh}(h]h ]h"]h$]h&]uh1hhjxUhM>hjQubh)}(hK``DC_DISABLE_HDMI_CEC`` If set, disable HDMI-CEC feature in amdgpu driver. h](j)}(h``DC_DISABLE_HDMI_CEC``h]j)}(hjUh]hDC_DISABLE_HDMI_CEC}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMAhjUubj)}(hhh]h)}(h2If set, disable HDMI-CEC feature in amdgpu driver.h]h2If set, disable HDMI-CEC feature in amdgpu driver.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhMAhjUubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1hhjUhMAhjQubh)}(h``DC_DISABLE_SUBVP_FAMS`` If set, disable DCN Sub-Viewport & Firmware Assisted Memory Clock Switching (FAMS) feature in amdgpu driver. h](j)}(h``DC_DISABLE_SUBVP_FAMS``h]j)}(hjUh]hDC_DISABLE_SUBVP_FAMS}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMEhjUubj)}(hhh]h)}(hlIf set, disable DCN Sub-Viewport & Firmware Assisted Memory Clock Switching (FAMS) feature in amdgpu driver.h]hlIf set, disable DCN Sub-Viewport & Firmware Assisted Memory Clock Switching (FAMS) feature in amdgpu driver.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMDhjUubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1hhjUhMEhjQubh)}(h\``DC_DISABLE_CUSTOM_BRIGHTNESS_CURVE`` If set, disable support for custom brightness curves h](j)}(h&``DC_DISABLE_CUSTOM_BRIGHTNESS_CURVE``h]j)}(hjVh]h"DC_DISABLE_CUSTOM_BRIGHTNESS_CURVE}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMHhj Vubj)}(hhh]h)}(h4If set, disable support for custom brightness curvesh]h4If set, disable support for custom brightness curves}(hj)VhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%VhMHhj&Vubah}(h]h ]h"]h$]h&]uh1jhj Vubeh}(h]h ]h"]h$]h&]uh1hhj%VhMHhjQubh)}(ho``DC_HDCP_LC_FORCE_FW_ENABLE`` If set, use HDCP Locality Check FW path regardless of reported HW capabilities. h](j)}(h``DC_HDCP_LC_FORCE_FW_ENABLE``h]j)}(hjIVh]hDC_HDCP_LC_FORCE_FW_ENABLE}(hjKVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGVubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMLhjCVubj)}(hhh]h)}(hOIf set, use HDCP Locality Check FW path regardless of reported HW capabilities.h]hOIf set, use HDCP Locality Check FW path regardless of reported HW capabilities.}(hjbVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMKhj_Vubah}(h]h ]h"]h$]h&]uh1jhjCVubeh}(h]h ]h"]h$]h&]uh1hhj^VhMLhjQubh)}(hp``DC_HDCP_LC_ENABLE_SW_FALLBACK`` 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)}(hjVh]hDC_HDCP_LC_ENABLE_SW_FALLBACK}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMPhj}Vubj)}(hhh]h)}(hMIf set, upon HDCP Locality Check FW path failure, retry using legacy SW path.h]hMIf set, upon HDCP Locality Check FW path failure, retry using legacy SW path.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMOhjVubah}(h]h ]h"]h$]h&]uh1jhj}Vubeh}(h]h ]h"]h$]h&]uh1hhjVhMPhjQubh)}(h=``DC_SKIP_DETECTION_LT`` If set, skip detection link trainingh](j)}(h``DC_SKIP_DETECTION_LT``h]j)}(hjVh]hDC_SKIP_DETECTION_LT}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMRhjVubj)}(hhh]h)}(h$If set, skip detection link trainingh]h$If set, skip detection link training}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMShjVubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1hhjVhMRhjQubeh}(h]h ]h"]h$]h&]uh1hhjQubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjLhhhjLhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jamd_ip_funcs (C struct)c.amd_ip_funcshNtauh1jhjLhhhjLhNubj)}(hhh](j)}(h amd_ip_funcsh]j)}(hstruct amd_ip_funcsh](jY)}(hj\h]hstruct}(hjWhhhNhNubah}(h]h ]jeah"]h$]h&]uh1jXhjWhhhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMXubj)}(h h]h }(hj%WhhhNhNubah}(h]h ]j'ah"]h$]h&]uh1jhjWhhhj$WhMXubj,)}(h amd_ip_funcsh]j2)}(hjWh]h amd_ip_funcs}(hj7WhhhNhNubah}(h]h ]j>ah"]h$]h&]uh1j1hj3Wubah}(h]h ](jEjFeh"]h$]h&]jJjKuh1j+hjWhhhj$WhMXubeh}(h]h ]h"]h$]h&]jJjKjuh1jjjhjWhhhj$WhMXubah}(h]j Wah ](jjeh"]h$]h&]jj)jhuh1jhj$WhMXhj Whhubj)}(hhh]h)}(h+general hooks for managing amdgpu IP Blocksh]h+general hooks for managing amdgpu IP Blocks}(hjYWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjVWhhubah}(h]h ]h"]h$]h&]uh1jhj Whhhj$WhMXubeh}(h]h ](jstructeh"]h$]h&]j4jj5jqWj6jqWj7j8j9uh1jhhhjLhjLhNubj;)}(hX7 **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); bool (*is_idle)(struct amdgpu_ip_block *ip_block); int (*wait_for_idle)(struct amdgpu_ip_block *ip_block); bool (*check_soft_reset)(struct amdgpu_ip_block *ip_block); int (*pre_soft_reset)(struct amdgpu_ip_block *ip_block); int (*soft_reset)(struct amdgpu_ip_block *ip_block); int (*post_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 ``is_idle`` returns current IP block idle status ``wait_for_idle`` poll for idle ``check_soft_reset`` check soft reset the IP block ``pre_soft_reset`` pre soft reset the IP block ``soft_reset`` soft reset the IP block ``post_soft_reset`` post 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 ASICh](h)}(h**Definition**::h](jJ)}(h**Definition**h]h Definition}(hj}WhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjyWubh:}(hjyWhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjuWubj1y)}(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); bool (*is_idle)(struct amdgpu_ip_block *ip_block); int (*wait_for_idle)(struct amdgpu_ip_block *ip_block); bool (*check_soft_reset)(struct amdgpu_ip_block *ip_block); int (*pre_soft_reset)(struct amdgpu_ip_block *ip_block); int (*soft_reset)(struct amdgpu_ip_block *ip_block); int (*post_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); bool (*is_idle)(struct amdgpu_ip_block *ip_block); int (*wait_for_idle)(struct amdgpu_ip_block *ip_block); bool (*check_soft_reset)(struct amdgpu_ip_block *ip_block); int (*pre_soft_reset)(struct amdgpu_ip_block *ip_block); int (*soft_reset)(struct amdgpu_ip_block *ip_block); int (*post_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); };U}hjWsbah}(h]h ]h"]h$]h&]jJjKuh1j0yhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjuWubh)}(h **Members**h]jJ)}(hjWh]hMembers}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjWubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjuWubh)}(hhh](h)}(h``name`` Name of IP block h](j)}(h``name``h]j)}(hjWh]hname}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjWubj)}(hhh]h)}(hName of IP blockh]hName of IP block}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhMhjWubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1hhjWhMhjWubh)}(hZ``early_init`` sets up early driver state (pre sw_init), does not configure hw - Optional h](j)}(h``early_init``h]j)}(hjWh]h early_init}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjWubj)}(hhh]h)}(hJsets up early driver state (pre sw_init), does not configure hw - Optionalh]hJsets up early driver state (pre sw_init), does not configure hw - Optional}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjXubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1hhjXhMhjWubh)}(hE``late_init`` sets up late driver/hw state (post hw_init) - Optional h](j)}(h ``late_init``h]j)}(hj9Xh]h late_init}(hj;XhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7Xubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhj3Xubj)}(hhh]h)}(h6sets up late driver/hw state (post hw_init) - Optionalh]h6sets up late driver/hw state (post hw_init) - Optional}(hjRXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNXhMhjOXubah}(h]h ]h"]h$]h&]uh1jhj3Xubeh}(h]h ]h"]h$]h&]uh1hhjNXhMhjWubh)}(h8``sw_init`` sets up driver state, does not configure hw h](j)}(h ``sw_init``h]j)}(hjrXh]hsw_init}(hjtXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpXubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjlXubj)}(hhh]h)}(h+sets up driver state, does not configure hwh]h+sets up driver state, does not configure hw}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhMhjXubah}(h]h ]h"]h$]h&]uh1jhjlXubeh}(h]h ]h"]h$]h&]uh1hhjXhMhjWubh)}(h;``sw_fini`` tears down driver state, does not configure hw h](j)}(h ``sw_fini``h]j)}(hjXh]hsw_fini}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjXubj)}(hhh]h)}(h.tears down driver state, does not configure hwh]h.tears down driver state, does not configure hw}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhMhjXubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1hhjXhMhjWubh)}(h@``early_fini`` tears down stuff before dev detached from driver h](j)}(h``early_fini``h]j)}(hjXh]h early_fini}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjXubj)}(hhh]h)}(h0tears down stuff before dev detached from driverh]h0tears down stuff before dev detached from driver}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhMhjXubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1hhjXhMhjWubh)}(h!``hw_init`` sets up the hw state h](j)}(h ``hw_init``h]j)}(hjYh]hhw_init}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjYubj)}(hhh]h)}(hsets up the hw stateh]hsets up the hw state}(hj6YhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2YhMhj3Yubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1hhj2YhMhjWubh)}(h$``hw_fini`` tears down the hw state h](j)}(h ``hw_fini``h]j)}(hjVYh]hhw_fini}(hjXYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTYubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjPYubj)}(hhh]h)}(htears down the hw stateh]htears down the hw state}(hjoYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkYhMhjlYubah}(h]h ]h"]h$]h&]uh1jhjPYubeh}(h]h ]h"]h$]h&]uh1hhjkYhMhjWubh)}(h``late_fini`` final cleanup h](j)}(h ``late_fini``h]j)}(hjYh]h late_fini}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjYubj)}(hhh]h)}(h final cleanuph]h final cleanup}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYhMhjYubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1hhjYhMhjWubh)}(ho``prepare_suspend`` handle IP specific changes to prepare for suspend (such as allocating any required memory) h](j)}(h``prepare_suspend``h]j)}(hjYh]hprepare_suspend}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjYubj)}(hhh]h)}(hZhandle IP specific changes to prepare for suspend (such as allocating any required memory)h]hZhandle IP specific changes to prepare for suspend (such as allocating any required memory)}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjYubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1hhjYhMhjWubh)}(h:``suspend`` handles IP specific hw/sw changes for suspend h](j)}(h ``suspend``h]j)}(hjZh]hsuspend}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjYubj)}(hhh]h)}(h-handles IP specific hw/sw changes for suspendh]h-handles IP specific hw/sw changes for suspend}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhMhjZubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1hhjZhMhjWubh)}(h8``resume`` handles IP specific hw/sw changes for resume h](j)}(h ``resume``h]j)}(hj;Zh]hresume}(hj=ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9Zubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhj5Zubj)}(hhh]h)}(h,handles IP specific hw/sw changes for resumeh]h,handles IP specific hw/sw changes for resume}(hjTZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPZhMhjQZubah}(h]h ]h"]h$]h&]uh1jhj5Zubeh}(h]h ]h"]h$]h&]uh1hhjPZhMhjWubh)}(h1``is_idle`` returns current IP block idle status h](j)}(h ``is_idle``h]j)}(hjtZh]his_idle}(hjvZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrZubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjnZubj)}(hhh]h)}(h$returns current IP block idle statush]h$returns current IP block idle status}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhMhjZubah}(h]h ]h"]h$]h&]uh1jhjnZubeh}(h]h ]h"]h$]h&]uh1hhjZhMhjWubh)}(h ``wait_for_idle`` poll for idle h](j)}(h``wait_for_idle``h]j)}(hjZh]h wait_for_idle}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjZubj)}(hhh]h)}(h poll for idleh]h poll for idle}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhMhjZubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1hhjZhMhjWubh)}(h3``check_soft_reset`` check soft reset the IP block h](j)}(h``check_soft_reset``h]j)}(hjZh]hcheck_soft_reset}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjZubj)}(hhh]h)}(hcheck soft reset the IP blockh]hcheck soft reset the IP block}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhMhjZubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1hhjZhMhjWubh)}(h/``pre_soft_reset`` pre soft reset the IP block h](j)}(h``pre_soft_reset``h]j)}(hj[h]hpre_soft_reset}(hj![hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhj[ubj)}(hhh]h)}(hpre soft reset the IP blockh]hpre soft reset the IP block}(hj8[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4[hMhj5[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1hhj4[hMhjWubh)}(h'``soft_reset`` soft reset the IP block h](j)}(h``soft_reset``h]j)}(hjX[h]h soft_reset}(hjZ[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV[ubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjR[ubj)}(hhh]h)}(hsoft reset the IP blockh]hsoft reset the IP block}(hjq[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjm[hMhjn[ubah}(h]h ]h"]h$]h&]uh1jhjR[ubeh}(h]h ]h"]h$]h&]uh1hhjm[hMhjWubh)}(h1``post_soft_reset`` post soft reset the IP block h](j)}(h``post_soft_reset``h]j)}(hj[h]hpost_soft_reset}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhj[ubj)}(hhh]h)}(hpost soft reset the IP blockh]hpost soft reset the IP block}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[hMhj[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1hhj[hMhjWubh)}(h=``set_clockgating_state`` enable/disable cg for the IP block h](j)}(h``set_clockgating_state``h]j)}(hj[h]hset_clockgating_state}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhj[ubj)}(hhh]h)}(h"enable/disable cg for the IP blockh]h"enable/disable cg for the IP block}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[hMhj[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1hhj[hMhjWubh)}(h=``set_powergating_state`` enable/disable pg for the IP block h](j)}(h``set_powergating_state``h]j)}(hj\h]hset_powergating_state}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhj[ubj)}(hhh]h)}(h"enable/disable pg for the IP blockh]h"enable/disable pg for the IP block}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\hMhj\ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1hhj\hMhjWubh)}(h9``get_clockgating_state`` get current clockgating status h](j)}(h``get_clockgating_state``h]j)}(hj<\h]hget_clockgating_state}(hj>\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:\ubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhj6\ubj)}(hhh]h)}(hget current clockgating statush]hget current clockgating status}(hjU\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQ\hMhjR\ubah}(h]h ]h"]h$]h&]uh1jhj6\ubeh}(h]h ]h"]h$]h&]uh1hhjQ\hMhjWubh)}(hB``dump_ip_state`` dump the IP state of the ASIC during a gpu hang h](j)}(h``dump_ip_state``h]j)}(hju\h]h dump_ip_state}(hjw\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs\ubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjo\ubj)}(hhh]h)}(h/dump the IP state of the ASIC during a gpu hangh]h/dump the IP state of the ASIC during a gpu hang}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\hMhj\ubah}(h]h ]h"]h$]h&]uh1jhjo\ubeh}(h]h ]h"]h$]h&]uh1hhj\hMhjWubh)}(hL``print_ip_state`` print the IP state in devcoredump for each IP of the ASICh](j)}(h``print_ip_state``h]j)}(hj\h]hprint_ip_state}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhj\ubj)}(hhh]h)}(h9print the IP state in devcoredump for each IP of the ASICh]h9print the IP state in devcoredump for each IP of the ASIC}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhj\ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1hhj\hMhjWubeh}(h]h ]h"]h$]h&]uh1hhjuWubeh}(h]h ] kernelindentah"]h$]h&]uh1j:hjLhhhjLhNubh)}(h**Description**h]jJ)}(hj\h]h Description}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj\ubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjLhhubh)}(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.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhp/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/driver-core:212: ./drivers/gpu/drm/amd/include/amd_shared.hhMhjLhhubeh}(h] ip-blocksah ]h"] ip blocksah$]h&]uh1hhhhhhhhKubeh}(h]core-driver-infrastructureah ]h"]core driver infrastructureah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjI]error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}(j]jaj]jaunameids}(j#]j ]jjj jj jjjjjjjjSjSjnjnj9xj6xj!j!jLj}Lj]j]u nametypes}(j#]jj j jjjjSjnj9xj!jLj]uh}(j ]hjhjjjjjjjjjjjSjjjjDjIje jj jyj~jajfjjjjjjjjj\!ja!j$#j)#j%j%j'j'j *j*j+j+j-j-j#/j(/jk1jp1j3j3j6j6j:j:jv=j{=j>j>j@j@j#Cj(CjFjFjIjIjDKjIKjLjLjNjNjPjPjnjSjSjSjUjUjWjWjYjYj:[j?[j]j]j`j`j/cj4cjejejShjXhjijijljlj6xjnjojojqjqjtjtjvjvj!jj>jcAjhAj]DjbDjGjGjHjHj9Jj>Jj]jLjLjLjeQjjQj WjWu footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages](hsystem_message)}(hhh]h)}(hhh]hBHyperlink target "pipes-and-queues-description" is not referenced.}hj]sbah}(h]h ]h"]h$]h&]uh1hhj]ubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehlineKPuh1j]ubj])}(hhh]h)}(hhh]h;Hyperlink target "amdgpu-memory-domains" is not referenced.}hj]sbah}(h]h ]h"]h$]h&]uh1hhj]ubah}(h]h ]h"]h$]h&]levelKtypej]sourcehlineKuh1j]ube transformerN include_log] decorationNhhub.