ѝsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget"/translations/zh_CN/gpu/xe/xe_tilemodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/zh_TW/gpu/xe/xe_tilemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/it_IT/gpu/xe/xe_tilemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/ja_JP/gpu/xe/xe_tilemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/ko_KR/gpu/xe/xe_tilemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/sp_SP/gpu/xe/xe_tilemodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h*SPDX-License-Identifier: (GPL-2.0+ OR MIT)h]h*SPDX-License-Identifier: (GPL-2.0+ OR MIT)}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh= 13) h](hterm)}(h;Per-tile functionality (shared by all GTs within the tile):h]h;Per-tile functionality (shared by all GTs within the tile):}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chK@hhubh definition)}(hhh]h bullet_list)}(hhh](h list_item)}(h`Complete 4MB MMIO space (containing SGunit/SoC registers, GT registers, display registers, etc.)h]h)}(h`Complete 4MB MMIO space (containing SGunit/SoC registers, GT registers, display registers, etc.)h]h`Complete 4MB MMIO space (containing SGunit/SoC registers, GT registers, display registers, etc.)}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chK8hj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h Global GTTh]h)}(hj;h]h Global GTT}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chK:hj9ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hVRAM (if discrete)h]h)}(hjSh]hVRAM (if discrete)}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chK;hjQubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hInterrupt flowsh]h)}(hjkh]hInterrupt flows}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h Primary GTh]h)}(hjh]h Primary GT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chK?hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h"Media GT (if media version >= 13) h]h)}(h!Media GT (if media version >= 13)h]h!Media GT (if media version >= 13)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK@hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]bullet-uh1jhj2hK8hjubah}(h]h ]h"]h$]h&]uh1jhhubeh}(h]h ]h"]h$]h&]uh1hhjhK@hhubh)}(hXPer-GT functionality: - GuC - Hardware engines - Programmable hardware units (subslices, EUs) - GSI subset of registers (multiple copies of these registers reside within the complete MMIO space provided by the tile, but at different offsets --- 0 for render, 0x380000 for media) - Multicast register steering - TLBs to cache page table translations - Reset capability - Low-level power management (e.g., C6) - Clock frequency - MOCS and PAT programming h](j)}(hPer-GT functionality:h]hPer-GT functionality:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chKOhjubj)}(hhh]j)}(hhh](j)}(hGuCh]h)}(hjh]hGuC}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chKChjubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hHardware enginesh]h)}(hj(h]hHardware engines}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chKDhj&ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(h,Programmable hardware units (subslices, EUs)h]h)}(hj@h]h,Programmable hardware units (subslices, EUs)}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chKEhj>ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hGSI subset of registers (multiple copies of these registers reside within the complete MMIO space provided by the tile, but at different offsets --- 0 for render, 0x380000 for media)h]h)}(hGSI subset of registers (multiple copies of these registers reside within the complete MMIO space provided by the tile, but at different offsets --- 0 for render, 0x380000 for media)h]hGSI subset of registers (multiple copies of these registers reside within the complete MMIO space provided by the tile, but at different offsets --- 0 for render, 0x380000 for media)}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chKFhjVubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hMulticast register steeringh]h)}(hjqh]hMulticast register steering}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chKIhjoubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(h%TLBs to cache page table translationsh]h)}(hjh]h%TLBs to cache page table translations}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chKJhjubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hReset capabilityh]h)}(hjh]hReset capability}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chKKhjubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(h%Low-level power management (e.g., C6)h]h)}(hjh]h%Low-level power management (e.g., C6)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chKLhjubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hClock frequencyh]h)}(hjh]hClock frequency}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chKMhjubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hMOCS and PAT programming h]h)}(hMOCS and PAT programmingh]hMOCS and PAT programming}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chKNhjubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]jjuh1jhjhKChjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhKOhhubeh}(h]h ]h"]h$]h&]uh1hhhhhhNhNubh)}(hhh](h)}(h Internal APIh]h Internal API}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK ubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlexe_tile_alloc (C function)c.xe_tile_allochNtauh1j)hjhhhNhNubhdesc)}(hhh](hdesc_signature)}(h(int xe_tile_alloc (struct xe_tile *tile)h]hdesc_signature_line)}(h'int xe_tile_alloc(struct xe_tile *tile)h](hdesc_sig_keyword_type)}(hinth]hint}(hjMhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jKhjGhhh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKTubhdesc_sig_space)}(h h]h }(hj_hhhNhNubah}(h]h ]wah"]h$]h&]uh1j]hjGhhhj\hKTubh desc_name)}(h xe_tile_alloch]h desc_sig_name)}(h xe_tile_alloch]h xe_tile_alloc}(hjvhhhNhNubah}(h]h ]nah"]h$]h&]uh1jthjpubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jnhjGhhhj\hKTubhdesc_parameterlist)}(h(struct xe_tile *tile)h]hdesc_parameter)}(hstruct xe_tile *tileh](hdesc_sig_keyword)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjubj^)}(h h]h }(hjhhhNhNubah}(h]h ]jjah"]h$]h&]uh1j]hjubh)}(hhh]ju)}(hxe_tileh]hxe_tile}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jthjubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jjxsbc.xe_tile_allocasbuh1hhjubj^)}(h h]h }(hjhhhNhNubah}(h]h ]jjah"]h$]h&]uh1j]hjubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjubju)}(htileh]htile}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jthjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1jhjGhhhj\hKTubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1jEsphinx_line_type declaratorhjAhhhj\hKTubah}(h]j8ah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1j?hj\hKThj<hhubh desc_content)}(hhh]h)}(h"Perform per-tile memory allocationh]h"Perform per-tile memory allocation}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKThj4hhubah}(h]h ]h"]h$]h&]uh1j2hj<hhhj\hKTubeh}(h]h ](jfunctioneh"]h$]h&]domainjobjtypejOdesctypejOnoindex noindexentrynocontentsentryuh1j:hhhjhNhNubh container)}(h**Parameters** ``struct xe_tile *tile`` Tile to perform allocations for **Description** Allocates various per-tile data structures using DRM-managed allocations. Does not touch the hardware. Returns -ENOMEM if allocations fail, otherwise 0.h](h)}(h**Parameters**h]hstrong)}(hjah]h Parameters}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jchj_ubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKXhj[ubh)}(hhh]h)}(h9``struct xe_tile *tile`` Tile to perform allocations for h](j)}(h``struct xe_tile *tile``h]hliteral)}(hjh]hstruct xe_tile *tile}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKUhj|ubj)}(hhh]h)}(hTile to perform allocations forh]hTile to perform allocations for}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKUhjubah}(h]h ]h"]h$]h&]uh1jhj|ubeh}(h]h ]h"]h$]h&]uh1hhjhKUhjyubah}(h]h ]h"]h$]h&]uh1hhj[ubh)}(h**Description**h]jd)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jchjubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKWhj[ubh)}(hfAllocates various per-tile data structures using DRM-managed allocations. Does not touch the hardware.h]hfAllocates various per-tile data structures using DRM-managed allocations. Does not touch the hardware.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKVhj[ubh)}(h1Returns -ENOMEM if allocations fail, otherwise 0.h]h1Returns -ENOMEM if allocations fail, otherwise 0.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKYhj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jYhjhhhNhNubj*)}(hhh]h}(h]h ]h"]h$]h&]entries](j6xe_tile_alloc_vram (C function)c.xe_tile_alloc_vramhNtauh1j)hjhhhNhNubj;)}(hhh](j@)}(h-int xe_tile_alloc_vram (struct xe_tile *tile)h]jF)}(h,int xe_tile_alloc_vram(struct xe_tile *tile)h](jL)}(hinth]hint}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhhh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKjubj^)}(h h]h }(hj"hhhNhNubah}(h]h ]jjah"]h$]h&]uh1j]hjhhhj!hKjubjo)}(hxe_tile_alloc_vramh]ju)}(hxe_tile_alloc_vramh]hxe_tile_alloc_vram}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jthj0ubah}(h]h ](jjeh"]h$]h&]hhuh1jnhjhhhj!hKjubj)}(h(struct xe_tile *tile)h]j)}(hstruct xe_tile *tileh](j)}(hjh]hstruct}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj^)}(h h]h }(hj]hhhNhNubah}(h]h ]jjah"]h$]h&]uh1j]hjLubh)}(hhh]ju)}(hxe_tileh]hxe_tile}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jthjkubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]j)}jj6sbc.xe_tile_alloc_vramasbuh1hhjLubj^)}(h h]h }(hjhhhNhNubah}(h]h ]jjah"]h$]h&]uh1j]hjLubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubju)}(htileh]htile}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jthjLubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjHubah}(h]h ]h"]h$]h&]hhuh1jhjhhhj!hKjubeh}(h]h ]h"]h$]h&]hhj$uh1jEj%j&hj hhhj!hKjubah}(h]jah ](j*j+eh"]h$]h&]j/j0)j1huh1j?hj!hKjhjhhubj3)}(hhh]h)}(h(Perform per-tile VRAM structs allocationh]h(Perform per-tile VRAM structs allocation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKjhjhhubah}(h]h ]h"]h$]h&]uh1j2hjhhhj!hKjubeh}(h]h ](jfunctioneh"]h$]h&]jSjjTjjUjjVjWjXuh1j:hhhjhNhNubjZ)}(h**Parameters** ``struct xe_tile *tile`` Tile to perform allocations for **Description** Allocates VRAM per-tile data structures using DRM-managed allocations. Does not touch the hardware. Returns -ENOMEM if allocations fail, otherwise 0.h](h)}(h**Parameters**h]jd)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jchjubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKnhjubh)}(hhh]h)}(h9``struct xe_tile *tile`` Tile to perform allocations for h](j)}(h``struct xe_tile *tile``h]j)}(hjh]hstruct xe_tile *tile}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKkhjubj)}(hhh]h)}(hTile to perform allocations forh]hTile to perform allocations for}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)hKkhj*ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhj)hKkhj ubah}(h]h ]h"]h$]h&]uh1hhjubh)}(h**Description**h]jd)}(hjOh]h Description}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jchjMubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKmhjubh)}(hcAllocates VRAM per-tile data structures using DRM-managed allocations. Does not touch the hardware.h]hcAllocates VRAM per-tile data structures using DRM-managed allocations. Does not touch the hardware.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKlhjubh)}(h1Returns -ENOMEM if allocations fail, otherwise 0.h]h1Returns -ENOMEM if allocations fail, otherwise 0.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKohjubeh}(h]h ] kernelindentah"]h$]h&]uh1jYhjhhhNhNubj*)}(hhh]h}(h]h ]h"]h$]h&]entries](j6xe_tile_init_early (C function)c.xe_tile_init_earlyhNtauh1j)hjhhhNhNubj;)}(hhh](j@)}(hJint xe_tile_init_early (struct xe_tile *tile, struct xe_device *xe, u8 id)h]jF)}(hIint xe_tile_init_early(struct xe_tile *tile, struct xe_device *xe, u8 id)h](jL)}(hinth]hint}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhhh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKubj^)}(h h]h }(hjhhhNhNubah}(h]h ]jjah"]h$]h&]uh1j]hjhhhjhKubjo)}(hxe_tile_init_earlyh]ju)}(hxe_tile_init_earlyh]hxe_tile_init_early}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jthjubah}(h]h ](jjeh"]h$]h&]hhuh1jnhjhhhjhKubj)}(h3(struct xe_tile *tile, struct xe_device *xe, u8 id)h](j)}(hstruct xe_tile *tileh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj^)}(h h]h }(hjhhhNhNubah}(h]h ]jjah"]h$]h&]uh1j]hjubh)}(hhh]ju)}(hxe_tileh]hxe_tile}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jthjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.xe_tile_init_earlyasbuh1hhjubj^)}(h h]h }(hjhhhNhNubah}(h]h ]jjah"]h$]h&]uh1j]hjubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubju)}(htileh]htile}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jthjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj^)}(h h]h }(hj_hhhNhNubah}(h]h ]jjah"]h$]h&]uh1j]hjNubh)}(hhh]ju)}(h xe_deviceh]h xe_device}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jthjmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]jc.xe_tile_init_earlyasbuh1hhjNubj^)}(h h]h }(hjhhhNhNubah}(h]h ]jjah"]h$]h&]uh1j]hjNubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubju)}(hxeh]hxe}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jthjNubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu8 idh](h)}(hhh]ju)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jthjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.xe_tile_init_earlyasbuh1hhjubj^)}(h h]h }(hjhhhNhNubah}(h]h ]jjah"]h$]h&]uh1j]hjubju)}(hidh]hid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jthjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhj$uh1jEj%j&hjhhhjhKubah}(h]jah ](j*j+eh"]h$]h&]j/j0)j1huh1j?hjhKhjhhubj3)}(hhh]h)}(h"Initialize the tile and primary GTh]h"Initialize the tile and primary GT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjhhubah}(h]h ]h"]h$]h&]uh1j2hjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jSjjTj3jUj3jVjWjXuh1j:hhhjhNhNubjZ)}(hXU**Parameters** ``struct xe_tile *tile`` Tile to initialize ``struct xe_device *xe`` Parent Xe device ``u8 id`` Tile ID **Description** Initializes per-tile resources that don't require any interactions with the hardware or any knowledge about the Graphics/Media IP version. **Return** 0 on success, negative error code on error.h](h)}(h**Parameters**h]jd)}(hj=h]h Parameters}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jchj;ubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhj7ubh)}(hhh](h)}(h,``struct xe_tile *tile`` Tile to initialize h](j)}(h``struct xe_tile *tile``h]j)}(hj\h]hstruct xe_tile *tile}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjVubj)}(hhh]h)}(hTile to initializeh]hTile to initialize}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhKhjrubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1hhjqhKhjSubh)}(h*``struct xe_device *xe`` Parent Xe device h](j)}(h``struct xe_device *xe``h]j)}(hjh]hstruct xe_device *xe}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjubj)}(hhh]h)}(hParent Xe deviceh]hParent Xe device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjSubh)}(h``u8 id`` Tile ID h](j)}(h ``u8 id``h]j)}(hjh]hu8 id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjubj)}(hhh]h)}(hTile IDh]hTile ID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjSubeh}(h]h ]h"]h$]h&]uh1hhj7ubh)}(h**Description**h]jd)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jchj ubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhj7ubh)}(hInitializes per-tile resources that don't require any interactions with the hardware or any knowledge about the Graphics/Media IP version.h]hInitializes per-tile resources that don’t require any interactions with the hardware or any knowledge about the Graphics/Media IP version.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhj7ubh)}(h **Return**h]jd)}(hj0 h]hReturn}(hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1jchj. ubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhj7ubh)}(h+0 on success, negative error code on error.h]h+0 on success, negative error code on error.}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhj7ubeh}(h]h ] kernelindentah"]h$]h&]uh1jYhjhhhNhNubj*)}(hhh]h}(h]h ]h"]h$]h&]entries](j6!xe_tile_init_noalloc (C function)c.xe_tile_init_noallochNtauh1j)hjhhhNhNubj;)}(hhh](j@)}(h/int xe_tile_init_noalloc (struct xe_tile *tile)h]jF)}(h.int xe_tile_init_noalloc(struct xe_tile *tile)h](jL)}(hinth]hint}(hju hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjq hhh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKubj^)}(h h]h }(hj hhhNhNubah}(h]h ]jjah"]h$]h&]uh1j]hjq hhhj hKubjo)}(hxe_tile_init_noalloch]ju)}(hxe_tile_init_noalloch]hxe_tile_init_noalloc}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jthj ubah}(h]h ](jjeh"]h$]h&]hhuh1jnhjq hhhj hKubj)}(h(struct xe_tile *tile)h]j)}(hstruct xe_tile *tileh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj^)}(h h]h }(hj hhhNhNubah}(h]h ]jjah"]h$]h&]uh1j]hj ubh)}(hhh]ju)}(hxe_tileh]hxe_tile}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jthj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.xe_tile_init_noallocasbuh1hhj ubj^)}(h h]h }(hj hhhNhNubah}(h]h ]jjah"]h$]h&]uh1j]hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubju)}(htileh]htile}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jthj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubah}(h]h ]h"]h$]h&]hhuh1jhjq hhhj hKubeh}(h]h ]h"]h$]h&]hhj$uh1jEj%j&hjm hhhj hKubah}(h]jh ah ](j*j+eh"]h$]h&]j/j0)j1huh1j?hj hKhjj hhubj3)}(hhh]h)}(h7Init tile up to the point where allocations can happen.h]h7Init tile up to the point where allocations can happen.}(hj5 hhhNhNubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhj2 hhubah}(h]h ]h"]h$]h&]uh1j2hjj hhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]jSjjTjM jUjM jVjWjXuh1j:hhhjhNhNubjZ)}(hX***Parameters** ``struct xe_tile *tile`` The tile to initialize. **Description** This function prepares the tile to allow memory allocations to VRAM, but is not allowed to allocate memory itself. This state is useful for display readout, because the inherited display framebuffer will otherwise be overwritten as it is usually put at the start of VRAM. Note that since this is tile initialization, it should not perform any GT-specific operations, and thus does not need to hold GT forcewake. **Return** 0 on success, negative error code on error.h](h)}(h**Parameters**h]jd)}(hjW h]h Parameters}(hjY hhhNhNubah}(h]h ]h"]h$]h&]uh1jchjU ubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjQ ubh)}(hhh]h)}(h1``struct xe_tile *tile`` The tile to initialize. h](j)}(h``struct xe_tile *tile``h]j)}(hjv h]hstruct xe_tile *tile}(hjx hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjt ubah}(h]h ]h"]h$]h&]uh1jh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjp ubj)}(hhh]h)}(hThe tile to initialize.h]hThe tile to initialize.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhjp ubeh}(h]h ]h"]h$]h&]uh1hhj hKhjm ubah}(h]h ]h"]h$]h&]uh1hhjQ ubh)}(h**Description**h]jd)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jchj ubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjQ ubh)}(hXThis function prepares the tile to allow memory allocations to VRAM, but is not allowed to allocate memory itself. This state is useful for display readout, because the inherited display framebuffer will otherwise be overwritten as it is usually put at the start of VRAM.h]hXThis function prepares the tile to allow memory allocations to VRAM, but is not allowed to allocate memory itself. This state is useful for display readout, because the inherited display framebuffer will otherwise be overwritten as it is usually put at the start of VRAM.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjQ ubh)}(hNote that since this is tile initialization, it should not perform any GT-specific operations, and thus does not need to hold GT forcewake.h]hNote that since this is tile initialization, it should not perform any GT-specific operations, and thus does not need to hold GT forcewake.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjQ ubh)}(h **Return**h]jd)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jchj ubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjQ ubh)}(h+0 on success, negative error code on error.h]h+0 on success, negative error code on error.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjQ ubeh}(h]h ] kernelindentah"]h$]h&]uh1jYhjhhhNhNubeh}(h] internal-apiah ]h"] internal apiah$]h&]uh1hhhhhhhhK ubeh}(h]multi-tile-devicesah ]h"]multi-tile devicesah$]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_handlerjF 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}nameids}(j j j j u nametypes}(j j uh}(j hj jj8jAjj jjjh jm u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.