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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/pt_BR/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@hjubh 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.)}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chK8hj4ubah}(h]h ]h"]h$]h&]uh1j2hj/ubj3)}(h Global GTTh]h)}(hjOh]h Global GTT}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chK:hjMubah}(h]h ]h"]h$]h&]uh1j2hj/ubj3)}(hVRAM (if discrete)h]h)}(hjgh]hVRAM (if discrete)}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chK;hjeubah}(h]h ]h"]h$]h&]uh1j2hj/ubj3)}(hInterrupt flowsh]h)}(hjh]hInterrupt flows}(hjhhhNhNubah}(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&]uh1j2hj/ubj3)}(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&]uh1j2hj/ubj3)}(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&]uh1hhj'hK@hjubah}(h]h ]h"]h$]h&]uh1j2hj/ubeh}(h]h ]h"]h$]h&]bullet-uh1j-hjFhK8hj*ubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhj'hK@hjubj)}(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:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chKOhj ubj))}(hhh]j.)}(hhh](j3)}(hGuCh]h)}(hj$h]hGuC}(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.chKChj"ubah}(h]h ]h"]h$]h&]uh1j2hjubj3)}(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&]uh1j2hjubj3)}(h,Programmable hardware units (subslices, EUs)h]h)}(hjTh]h,Programmable hardware units (subslices, EUs)}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chKEhjRubah}(h]h ]h"]h$]h&]uh1j2hjubj3)}(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)}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chKFhjjubah}(h]h ]h"]h$]h&]uh1j2hjubj3)}(hMulticast register steeringh]h)}(hjh]hMulticast register steering}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:7: ./drivers/gpu/drm/xe/xe_tile.chKIhjubah}(h]h ]h"]h$]h&]uh1j2hjubj3)}(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&]uh1j2hjubj3)}(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&]uh1j2hjubj3)}(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&]uh1j2hjubj3)}(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&]uh1j2hjubj3)}(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&]uh1j2hjubeh}(h]h ]h"]h$]h&]jjuh1j-hj3hKChjubah}(h]h ]h"]h$]h&]uh1j(hj ubeh}(h]h ]h"]h$]h&]uh1jhjhKOhjubeh}(h]h ]h"]h$]h&]uh1j hhhhhNhNubh)}(hhh](h)}(h Internal APIh]h Internal API}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hhhhhK ubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlexe_tile_alloc (C function)c.xe_tile_allochNtauh1j=hj,hhhNhNubhdesc)}(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}(hjahhhNhNubah}(h]h ]ktah"]h$]h&]uh1j_hj[hhh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKTubhdesc_sig_space)}(h h]h }(hjshhhNhNubah}(h]h ]wah"]h$]h&]uh1jqhj[hhhjphKTubh desc_name)}(h xe_tile_alloch]h desc_sig_name)}(h xe_tile_alloch]h xe_tile_alloc}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jhj[hhhjphKTubhdesc_parameterlist)}(h(struct xe_tile *tile)h]hdesc_parameter)}(hstruct xe_tile *tileh](hdesc_sig_keyword)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjubjr)}(h h]h }(hjhhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhjubh)}(hhh]j)}(hxe_tileh]hxe_tile}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jjsbc.xe_tile_allocasbuh1hhjubjr)}(h h]h }(hjhhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhjubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjubj)}(htileh]htile}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1jhj[hhhjphKTubeh}(h]h ]h"]h$]h&]hhƌ add_permalinkuh1jYsphinx_line_type declaratorhjUhhhjphKTubah}(h]jLah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jShjphKThjPhhubh desc_content)}(hhh]h)}(h"Perform per-tile memory allocationh]h"Perform per-tile memory allocation}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKThjHhhubah}(h]h ]h"]h$]h&]uh1jFhjPhhhjphKTubeh}(h]h ](jfunctioneh"]h$]h&]domainjobjtypejcdesctypejcnoindex noindexentrynocontentsentryuh1jNhhhj,hNhNubh 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)}(hjuh]h Parameters}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jwhjsubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKXhjoubj )}(hhh]j)}(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.chKUhjubj))}(hhh]h)}(hTile to perform allocations forh]hTile to perform allocations for}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKUhjubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhjhKUhjubah}(h]h ]h"]h$]h&]uh1j hjoubh)}(h**Description**h]jx)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jwhjubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKWhjoubh)}(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.chKVhjoubh)}(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.chKYhjoubeh}(h]h ] kernelindentah"]h$]h&]uh1jmhj,hhhNhNubj>)}(hhh]h}(h]h ]h"]h$]h&]entries](jJxe_tile_alloc_vram (C function)c.xe_tile_alloc_vramhNtauh1j=hj,hhhNhNubjO)}(hhh](jT)}(h-int xe_tile_alloc_vram (struct xe_tile *tile)h]jZ)}(h,int xe_tile_alloc_vram(struct xe_tile *tile)h](j`)}(hinth]hint}(hj'hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj#hhh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKjubjr)}(h h]h }(hj6hhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhj#hhhj5hKjubj)}(hxe_tile_alloc_vramh]j)}(hxe_tile_alloc_vramh]hxe_tile_alloc_vram}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubah}(h]h ](jjeh"]h$]h&]hhuh1jhj#hhhj5hKjubj)}(h(struct xe_tile *tile)h]j)}(hstruct xe_tile *tileh](j)}(hjh]hstruct}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubjr)}(h h]h }(hjqhhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhj`ubh)}(hhh]j)}(hxe_tileh]hxe_tile}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjJsbc.xe_tile_alloc_vramasbuh1hhj`ubjr)}(h h]h }(hjhhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhj`ubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj)}(htileh]htile}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj\ubah}(h]h ]h"]h$]h&]hhuh1jhj#hhhj5hKjubeh}(h]h ]h"]h$]h&]hhj8uh1jYj9j:hjhhhj5hKjubah}(h]jah ](j>j?eh"]h$]h&]jCjD)jEhuh1jShj5hKjhjhhubjG)}(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&]uh1jFhjhhhj5hKjubeh}(h]h ](jfunctioneh"]h$]h&]jgjjhjjijjjjkjluh1jNhhhj,hNhNubjn)}(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]jx)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jwhjubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKnhjubj )}(hhh]j)}(h9``struct xe_tile *tile`` Tile to perform allocations for h](j)}(h``struct xe_tile *tile``h]j)}(hj(h]hstruct xe_tile *tile}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKkhj"ubj))}(hhh]h)}(hTile to perform allocations forh]hTile to perform allocations for}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hKkhj>ubah}(h]h ]h"]h$]h&]uh1j(hj"ubeh}(h]h ]h"]h$]h&]uh1jhj=hKkhjubah}(h]h ]h"]h$]h&]uh1j hjubh)}(h**Description**h]jx)}(hjch]h Description}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jwhjaubah}(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.}(hjyhhhNhNubah}(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.}(hjhhhNhNubah}(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&]uh1jmhj,hhhNhNubj>)}(hhh]h}(h]h ]h"]h$]h&]entries](jJxe_tile_init_early (C function)c.xe_tile_init_earlyhNtauh1j=hj,hhhNhNubjO)}(hhh](jT)}(hJint xe_tile_init_early (struct xe_tile *tile, struct xe_device *xe, u8 id)h]jZ)}(hIint xe_tile_init_early(struct xe_tile *tile, struct xe_device *xe, u8 id)h](j`)}(hinth]hint}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjhhh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKubjr)}(h h]h }(hjhhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhjhhhjhKubj)}(hxe_tile_init_earlyh]j)}(hxe_tile_init_earlyh]hxe_tile_init_early}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKubj)}(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&]uh1jhjubjr)}(h h]h }(hjhhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhjubh)}(hhh]j)}(hxe_tileh]hxe_tile}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.xe_tile_init_earlyasbuh1hhjubjr)}(h h]h }(hj2hhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhjubj)}(hj h]h*}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(htileh]htile}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct xe_device *xeh](j)}(hjh]hstruct}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubjr)}(h h]h }(hjshhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhjbubh)}(hhh]j)}(h xe_deviceh]h xe_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j.c.xe_tile_init_earlyasbuh1hhjbubjr)}(h h]h }(hjhhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhjbubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj)}(hxeh]hxe}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu8 idh](h)}(hhh]j)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j.c.xe_tile_init_earlyasbuh1hhjubjr)}(h h]h }(hjhhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhjubj)}(hidh]hid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhj8uh1jYj9j:hjhhhjhKubah}(h]jah ](j>j?eh"]h$]h&]jCjD)jEhuh1jShjhKhjhhubjG)}(hhh]h)}(h"Initialize the tile and primary GTh]h"Initialize the tile and primary GT}(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.chKhj,hhubah}(h]h ]h"]h$]h&]uh1jFhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jgjjhjGjijGjjjkjluh1jNhhhj,hNhNubjn)}(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]jx)}(hjQh]h Parameters}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jwhjOubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjKubj )}(hhh](j)}(h,``struct xe_tile *tile`` Tile to initialize h](j)}(h``struct xe_tile *tile``h]j)}(hjph]hstruct xe_tile *tile}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjjubj))}(hhh]h)}(hTile to initializeh]hTile to initialize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j(hjjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjgubj)}(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&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjgubj)}(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&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjgubeh}(h]h ]h"]h$]h&]uh1j hjKubh)}(h**Description**h]jx)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jwhj ubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjKubh)}(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.}(hj3 hhhNhNubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjKubh)}(h **Return**h]jx)}(hjD h]hReturn}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1jwhjB ubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjKubh)}(h+0 on success, negative error code on error.h]h+0 on success, negative error code on error.}(hjZ hhhNhNubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjKubeh}(h]h ] kernelindentah"]h$]h&]uh1jmhj,hhhNhNubj>)}(hhh]h}(h]h ]h"]h$]h&]entries](jJ!xe_tile_init_noalloc (C function)c.xe_tile_init_noallochNtauh1j=hj,hhhNhNubjO)}(hhh](jT)}(h/int xe_tile_init_noalloc (struct xe_tile *tile)h]jZ)}(h.int xe_tile_init_noalloc(struct xe_tile *tile)h](j`)}(hinth]hint}(hj hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj hhh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKubjr)}(h h]h }(hj hhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhj hhhj hKubj)}(hxe_tile_init_noalloch]j)}(hxe_tile_init_noalloch]hxe_tile_init_noalloc}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj hhhj hKubj)}(h(struct xe_tile *tile)h]j)}(hstruct xe_tile *tileh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjr)}(h h]h }(hj hhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhj ubh)}(hhh]j)}(hxe_tileh]hxe_tile}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.xe_tile_init_noallocasbuh1hhj ubjr)}(h h]h }(hj hhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhj ubj)}(hj h]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(htileh]htile}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubah}(h]h ]h"]h$]h&]hhuh1jhj hhhj hKubeh}(h]h ]h"]h$]h&]hhj8uh1jYj9j:hj hhhj hKubah}(h]j| ah ](j>j?eh"]h$]h&]jCjD)jEhuh1jShj hKhj~ hhubjG)}(hhh]h)}(h7Init tile up to the point where allocations can happen.h]h7Init tile up to the point where allocations can happen.}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjF hhubah}(h]h ]h"]h$]h&]uh1jFhj~ hhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]jgjjhja jija jjjkjluh1jNhhhj,hNhNubjn)}(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]jx)}(hjk h]h Parameters}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1jwhji ubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhje ubj )}(hhh]j)}(h1``struct xe_tile *tile`` The 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&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhj 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&]uh1j(hj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubah}(h]h ]h"]h$]h&]uh1j hje ubh)}(h**Description**h]jx)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jwhj ubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhje 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.chKhje 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.chKhje ubh)}(h **Return**h]jx)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jwhj ubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhje 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.chKhje ubeh}(h]h ] kernelindentah"]h$]h&]uh1jmhj,hhhNhNubj>)}(hhh]h}(h]h ]h"]h$]h&]entries](jJ"xe_tile_local_pagemap (C function)c.xe_tile_local_pagemaphNtauh1j=hj,hhhNhNubjO)}(hhh](jT)}(hAstruct drm_pagemap * xe_tile_local_pagemap (struct xe_tile *tile)h]jZ)}(h?struct drm_pagemap *xe_tile_local_pagemap(struct xe_tile *tile)h](j)}(hjh]hstruct}(hj@ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj< hhh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKubjr)}(h h]h }(hjN hhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhj< hhhjM hKubh)}(hhh]j)}(h drm_pagemaph]h drm_pagemap}(hj_ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetja modnameN classnameNjj)}j]j)}jxe_tile_local_pagemapsbc.xe_tile_local_pagemapasbuh1hhj< hhhjM hKubjr)}(h h]h }(hj hhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhj< hhhjM hKubj)}(hj h]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj< hhhjM hKubj)}(hxe_tile_local_pagemaph]j)}(hj} h]hxe_tile_local_pagemap}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj< hhhjM hKubj)}(h(struct xe_tile *tile)h]j)}(hstruct xe_tile *tileh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjr)}(h h]h }(hj hhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhj ubh)}(hhh]j)}(hxe_tileh]hxe_tile}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j{ c.xe_tile_local_pagemapasbuh1hhj ubjr)}(h h]h }(hj hhhNhNubah}(h]h ]j~ah"]h$]h&]uh1jqhj ubj)}(hj h]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(htileh]htile}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubah}(h]h ]h"]h$]h&]hhuh1jhj< hhhjM hKubeh}(h]h ]h"]h$]h&]hhj8uh1jYj9j:hj8 hhhjM hKubah}(h]j3 ah ](j>j?eh"]h$]h&]jCjD)jEhuh1jShjM hKhj5 hhubjG)}(hhh]h)}(h7Return a pointer to the tile's local drm_pagemap if anyh]h9Return a pointer to the tile’s local drm_pagemap if any}(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.chKhj8 hhubah}(h]h ]h"]h$]h&]uh1jFhj5 hhhjM hKubeh}(h]h ](jfunctioneh"]h$]h&]jgjjhjS jijS jjjkjluh1jNhhhj,hNhNubjn)}(h**Parameters** ``struct xe_tile *tile`` The tile. **Return** A pointer to the tile's local drm_pagemap, or NULL if local pagemap support has been compiled out.h](h)}(h**Parameters**h]jx)}(hj] h]h Parameters}(hj_ hhhNhNubah}(h]h ]h"]h$]h&]uh1jwhj[ ubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjW ubj )}(hhh]j)}(h#``struct xe_tile *tile`` The tile. h](j)}(h``struct xe_tile *tile``h]j)}(hj| h]hstruct xe_tile *tile}(hj~ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjz ubah}(h]h ]h"]h$]h&]uh1jh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjv ubj))}(hhh]h)}(h The tile.h]h The tile.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j(hjv ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjs ubah}(h]h ]h"]h$]h&]uh1j hjW ubh)}(h **Return**h]jx)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jwhj ubah}(h]h ]h"]h$]h&]uh1hh[/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_tile:13: ./drivers/gpu/drm/xe/xe_tile.chKhjW ubh)}(hbA pointer to the tile's local drm_pagemap, or NULL if local pagemap support has been compiled out.h]hdA pointer to the tile’s local drm_pagemap, or NULL if local pagemap support has been compiled out.}(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.chKhjW ubeh}(h]h ] kernelindentah"]h$]h&]uh1jmhj,hhhNhNubeh}(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_handlerj error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _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 j,jLjUjjjjj| j j3 j8 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.