€•ŠšŒsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ'/translations/zh_CN/gpu/amdgpu/flashing”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/zh_TW/gpu/amdgpu/flashing”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/it_IT/gpu/amdgpu/flashing”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/ja_JP/gpu/amdgpu/flashing”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/ko_KR/gpu/amdgpu/flashing”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/pt_BR/gpu/amdgpu/flashing”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/sp_SP/gpu/amdgpu/flashing”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒdGPU firmware flashing”h]”hŒdGPU firmware flashing”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒA/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing.rst”h´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒIFWI”h]”hŒIFWI”…”�”}”(hhÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhhËh²hh³hÊh´KubhŒ paragraph”“”)�”}”(hŒóFlashing the dGPU integrated firmware image (IFWI) is supported by GPUs that use the PSP to orchestrate the update (Navi3x or newer GPUs). For supported GPUs, `amdgpu` will export a series of sysfs files that can be used for the flash process.”h]”(hŒŸFlashing the dGPU integrated firmware image (IFWI) is supported by GPUs that use the PSP to orchestrate the update (Navi3x or newer GPUs). For supported GPUs, ”…”�”}”(hhÞh²hh³Nh´NubhŒtitle_reference”“”)�”}”(hŒ`amdgpu`”h]”hŒamdgpu”…”�”}”(hhèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhhÞubhŒL will export a series of sysfs files that can be used for the flash process.”…”�”}”(hhÞh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KhhËh²hubhÝ)�”}”(hŒThe IFWI flash process is:”h]”hŒThe IFWI flash process is:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K hhËh²hubhŒenumerated_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒ=Ensure the IFWI image is intended for the dGPU on the system.”h]”hÝ)�”}”(hjh]”hŒ=Ensure the IFWI image is intended for the dGPU on the system.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÊh´Nubj)�”}”(hŒ["Write" the IFWI image to the sysfs file `psp_vbflash`. This will stage the IFWI in memory.”h]”hÝ)�”}”(hj.h]”(hŒ-“Writeâ€� the IFWI image to the sysfs file ”…”�”}”(hj0h²hh³Nh´Nubhç)�”}”(hŒ `psp_vbflash`”h]”hŒ psp_vbflash”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj0ubhŒ%. This will stage the IFWI in memory.”…”�”}”(hj0h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Khj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÊh´Nubj)�”}”(hŒG"Read" from the `psp_vbflash` sysfs file to initiate the flash process.”h]”hÝ)�”}”(hjWh]”(hŒ“Readâ€� from the ”…”�”}”(hjYh²hh³Nh´Nubhç)�”}”(hŒ `psp_vbflash`”h]”hŒ psp_vbflash”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjYubhŒ* sysfs file to initiate the flash process.”…”�”}”(hjYh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KhjUubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÊh´Nubj)�”}”(hŒXPoll the `psp_vbflash_status` sysfs file to determine when the flash process completes. ”h]”hÝ)�”}”(hŒWPoll the `psp_vbflash_status` sysfs file to determine when the flash process completes.”h]”(hŒ Poll the ”…”�”}”(hj‚h²hh³Nh´Nubhç)�”}”(hŒ`psp_vbflash_status`”h]”hŒpsp_vbflash_status”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj‚ubhŒ: sysfs file to determine when the flash process completes.”…”�”}”(hj‚h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Khj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÊh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1jhhËh²hh³hÊh´Kubeh}”(h]”Œifwi”ah ]”h"]”Œifwi”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒ USB-C PD F/W”h]”hŒ USB-C PD F/W”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj»h²hh³hÊh´KubhÝ)�”}”(hŒxOn GPUs that support flashing an updated USB-C PD firmware image, the process is done using the `usbc_pd_fw` sysfs file.”h]”(hŒ`On GPUs that support flashing an updated USB-C PD firmware image, the process is done using the ”…”�”}”(hjÌh²hh³Nh´Nubhç)�”}”(hŒ `usbc_pd_fw`”h]”hŒ usbc_pd_fw”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjÌubhŒ sysfs file.”…”�”}”(hjÌh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Khj»h²hubhŒ bullet_list”“”)�”}”(hhh]”(j)�”}”(hŒ;Reading the file will provide the current firmware version.”h]”hÝ)�”}”(hjóh]”hŒ;Reading the file will provide the current firmware version.”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Khjñubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjîh²hh³hÊh´Nubj)�”}”(hŒ{Writing the name of a firmware payload stored in `/lib/firmware/amdgpu` to the sysfs file will initiate the flash process. ”h]”hÝ)�”}”(hŒzWriting the name of a firmware payload stored in `/lib/firmware/amdgpu` to the sysfs file will initiate the flash process.”h]”(hŒ1Writing the name of a firmware payload stored in ”…”�”}”(hj h²hh³Nh´Nubhç)�”}”(hŒ`/lib/firmware/amdgpu`”h]”hŒ/lib/firmware/amdgpu”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj ubhŒ3 to the sysfs file will initiate the flash process.”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjîh²hh³hÊh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1jìh³hÊh´Khj»h²hubhÝ)�”}”(hŒ¢The firmware payload stored in `/lib/firmware/amdgpu` can be named any name as long as it doesn't conflict with other existing binaries that are used by `amdgpu`.”h]”(hŒThe firmware payload stored in ”…”�”}”(hj:h²hh³Nh´Nubhç)�”}”(hŒ`/lib/firmware/amdgpu`”h]”hŒ/lib/firmware/amdgpu”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj:ubhŒf can be named any name as long as it doesn’t conflict with other existing binaries that are used by ”…”�”}”(hj:h²hh³Nh´Nubhç)�”}”(hŒ`amdgpu`”h]”hŒamdgpu”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj:ubhŒ.”…”�”}”(hj:h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Khj»h²hubeh}”(h]”Œ usb-c-pd-f-w”ah ]”h"]”Œ usb-c pd f/w”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒ sysfs files”h]”hŒ sysfs files”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjth²hh³hÊh´K ubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œ(amdgpu_psp_irq_mgr_dispatch (C function)”Œc.amdgpu_psp_irq_mgr_dispatch”hNt”auh1j…hjth²hh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒ`void amdgpu_psp_irq_mgr_dispatch (struct amdgpu_psp_irq_mgr *mgr, struct amdgpu_iv_entry *entry)”h]”hŒdesc_signature_line”“”)�”}”(hŒ_void amdgpu_psp_irq_mgr_dispatch(struct amdgpu_psp_irq_mgr *mgr, struct amdgpu_iv_entry *entry)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1j¨hj¤h²hh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´M ubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1jºhj¤h²hh³j¹h´M ubhŒ desc_name”“”)�”}”(hŒamdgpu_psp_irq_mgr_dispatch”h]”hŒ desc_sig_name”“”)�”}”(hŒamdgpu_psp_irq_mgr_dispatch”h]”hŒamdgpu_psp_irq_mgr_dispatch”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jÑhjÍubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jËhj¤h²hh³j¹h´M ubhŒdesc_parameterlist”“”)�”}”(hŒ?(struct amdgpu_psp_irq_mgr *mgr, struct amdgpu_iv_entry *entry)”h]”(hŒdesc_parameter”“”)�”}”(hŒstruct amdgpu_psp_irq_mgr *mgr”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1jøhjôubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjôubh)�”}”(hhh]”jÒ)�”}”(hŒamdgpu_psp_irq_mgr”h]”hŒamdgpu_psp_irq_mgr”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÞah"]”h$]”h&]”uh1jÑhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”Œc”Œreftype”Œ identifier”Œ reftarget”jŒmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”j6Œ ASTIdentifier”“”)�”}”j1jÕsbŒc.amdgpu_psp_irq_mgr_dispatch”†”asbuh1hhjôubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjôubhŒdesc_sig_punctuation”“”)�”}”(hj9h]”hŒ*”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1jQhjôubjÒ)�”}”(hŒmgr”h]”hŒmgr”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”jÞah"]”h$]”h&]”uh1jÑhjôubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjêjëuh1jòhjîubjó)�”}”(hŒstruct amdgpu_iv_entry *entry”h]”(jù)�”}”(hjüh]”hŒstruct”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jøhjvubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjvubh)�”}”(hhh]”jÒ)�”}”(hŒamdgpu_iv_entry”h]”hŒamdgpu_iv_entry”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”jÞah"]”h$]”h&]”uh1jÑhj•ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j/Œreftype”j1Œ reftarget”jšŒmodname”NŒ classname”Nj5j8)�”}”j;]”j?Œc.amdgpu_psp_irq_mgr_dispatch”†”asbuh1hhjvubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjvubjR)�”}”(hj9h]”hŒ*”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jQhjvubjÒ)�”}”(hŒentry”h]”hŒentry”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”jÞah"]”h$]”h&]”uh1jÑhjvubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjêjëuh1jòhjîubeh}”(h]”h ]”h"]”h$]”h&]”jêjëuh1jìhj¤h²hh³j¹h´M ubeh}”(h]”h ]”h"]”h$]”h&]”jêjëŒ add_permalink”ˆuh1j¢Œsphinx_line_type”Œ declarator”hjžh²hh³j¹h´M ubah}”(h]”j”ah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jœh³j¹h´M hj™h²hubhŒ desc_content”“”)�”}”(hhh]”hÝ)�”}”(hŒ*run the registered handler for a PSP event”h]”hŒ*run the registered handler for a PSP event”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´M hjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj™h²hh³j¹h´M ubeh}”(h]”h ]”(j/Œfunction”eh"]”h$]”h&]”Œdomain”j/Œobjtype”jŒdesctype”jŒnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1j—h²hhjth³j–h´NubhŒ container”“”)�”}”(hX,**Parameters** ``struct amdgpu_psp_irq_mgr *mgr`` IRQ manager ``struct amdgpu_iv_entry *entry`` IH entry from the PSP soft ring **Description** Invokes the handler for the entry's event id (or the default handler) in process context. Call from the .process callback for PSP soft ring entries.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”hŒstrong”“”)�”}”(hj/h]”hŒ Parameters”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j1hj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´Mhj)ubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ/``struct amdgpu_psp_irq_mgr *mgr`` IRQ manager ”h]”(hŒterm”“”)�”}”(hŒ"``struct amdgpu_psp_irq_mgr *mgr``”h]”hŒliteral”“”)�”}”(hjVh]”hŒstruct amdgpu_psp_irq_mgr *mgr”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjTubah}”(h]”h ]”h"]”h$]”h&]”uh1jRh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´M hjNubhŒ definition”“”)�”}”(hhh]”hÝ)�”}”(hŒ IRQ manager”h]”hŒ IRQ manager”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jmh´M hjpubah}”(h]”h ]”h"]”h$]”h&]”uh1jnhjNubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLh³jmh´M hjIubjM)�”}”(hŒB``struct amdgpu_iv_entry *entry`` IH entry from the PSP soft ring ”h]”(jS)�”}”(hŒ!``struct amdgpu_iv_entry *entry``”h]”jY)�”}”(hj“h]”hŒstruct amdgpu_iv_entry *entry”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jRh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´M hj�ubjo)�”}”(hhh]”hÝ)�”}”(hŒIH entry from the PSP soft ring”h]”hŒIH entry from the PSP soft ring”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¨h´M hj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jnhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLh³j¨h´M hjIubeh}”(h]”h ]”h"]”h$]”h&]”uh1jGhj)ubhÝ)�”}”(hŒ**Description**”h]”j2)�”}”(hjÎh]”hŒ Description”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j1hjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´Mhj)ubhÝ)�”}”(hŒ”Invokes the handler for the entry's event id (or the default handler) in process context. Call from the .process callback for PSP soft ring entries.”h]”hŒ–Invokes the handler for the entry’s event id (or the default handler) in process context. Call from the .process callback for PSP soft ring entries.”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´M hj)ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j'hjth²hh³j–h´Nubj†)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j’Œ(amdgpu_psp_irq_mgr_register (C function)”Œc.amdgpu_psp_irq_mgr_register”hNt”auh1j…hjth²hh³j–h´Nubj˜)�”}”(hhh]”(j�)�”}”(hŒ°int amdgpu_psp_irq_mgr_register (struct amdgpu_psp_irq_mgr *mgr, const struct amdgpu_psp_irq_handler *handlers, int count, const struct amdgpu_psp_irq_handler *default_handler)”h]”j£)�”}”(hŒ¯int amdgpu_psp_irq_mgr_register(struct amdgpu_psp_irq_mgr *mgr, const struct amdgpu_psp_irq_handler *handlers, int count, const struct amdgpu_psp_irq_handler *default_handler)”h]”(j©)�”}”(hŒint”h]”hŒint”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jµah"]”h$]”h&]”uh1j¨hjh²hh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´MBubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjh²hh³j!h´MBubjÌ)�”}”(hŒamdgpu_psp_irq_mgr_register”h]”jÒ)�”}”(hŒamdgpu_psp_irq_mgr_register”h]”hŒamdgpu_psp_irq_mgr_register”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”jÞah"]”h$]”h&]”uh1jÑhj0ubah}”(h]”h ]”(jåjæeh"]”h$]”h&]”jêjëuh1jËhjh²hh³j!h´MBubjí)�”}”(hŒ�(struct amdgpu_psp_irq_mgr *mgr, const struct amdgpu_psp_irq_handler *handlers, int count, const struct amdgpu_psp_irq_handler *default_handler)”h]”(jó)�”}”(hŒstruct amdgpu_psp_irq_mgr *mgr”h]”(jù)�”}”(hjüh]”hŒstruct”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jøhjLubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjLubh)�”}”(hhh]”jÒ)�”}”(hŒamdgpu_psp_irq_mgr”h]”hŒamdgpu_psp_irq_mgr”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”jÞah"]”h$]”h&]”uh1jÑhjkubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j/Œreftype”j1Œ reftarget”jpŒmodname”NŒ classname”Nj5j8)�”}”j;]”j>)�”}”j1j6sbŒc.amdgpu_psp_irq_mgr_register”†”asbuh1hhjLubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjLubjR)�”}”(hj9h]”hŒ*”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jQhjLubjÒ)�”}”(hŒmgr”h]”hŒmgr”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”jÞah"]”h$]”h&]”uh1jÑhjLubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjêjëuh1jòhjHubjó)�”}”(hŒ-const struct amdgpu_psp_irq_handler *handlers”h]”(jù)�”}”(hŒconst”h]”hŒconst”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jøhj¾ubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhj¾ubjù)�”}”(hjüh]”hŒstruct”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jøhj¾ubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhj¾ubh)�”}”(hhh]”jÒ)�”}”(hŒamdgpu_psp_irq_handler”h]”hŒamdgpu_psp_irq_handler”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”jÞah"]”h$]”h&]”uh1jÑhjùubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j/Œreftype”j1Œ reftarget”jþŒmodname”NŒ classname”Nj5j8)�”}”j;]”jŠŒc.amdgpu_psp_irq_mgr_register”†”asbuh1hhj¾ubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhj¾ubjR)�”}”(hj9h]”hŒ*”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jQhj¾ubjÒ)�”}”(hŒhandlers”h]”hŒhandlers”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”jÞah"]”h$]”h&]”uh1jÑhj¾ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjêjëuh1jòhjHubjó)�”}”(hŒ int count”h]”(j©)�”}”(hŒint”h]”hŒint”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”jµah"]”h$]”h&]”uh1j¨hjJubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjJubjÒ)�”}”(hŒcount”h]”hŒcount”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”jÞah"]”h$]”h&]”uh1jÑhjJubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjêjëuh1jòhjHubjó)�”}”(hŒ4const struct amdgpu_psp_irq_handler *default_handler”h]”(jù)�”}”(hjÄh]”hŒconst”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jøhjubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjubjù)�”}”(hjüh]”hŒstruct”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jøhjubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjubh)�”}”(hhh]”jÒ)�”}”(hŒamdgpu_psp_irq_handler”h]”hŒamdgpu_psp_irq_handler”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”jÞah"]”h$]”h&]”uh1jÑhj¹ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j/Œreftype”j1Œ reftarget”j¾Œmodname”NŒ classname”Nj5j8)�”}”j;]”jŠŒc.amdgpu_psp_irq_mgr_register”†”asbuh1hhjubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjubjR)�”}”(hj9h]”hŒ*”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jQhjubjÒ)�”}”(hŒdefault_handler”h]”hŒdefault_handler”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”jÞah"]”h$]”h&]”uh1jÑhjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjêjëuh1jòhjHubeh}”(h]”h ]”h"]”h$]”h&]”jêjëuh1jìhjh²hh³j!h´MBubeh}”(h]”h ]”h"]”h$]”h&]”jêjëjòˆuh1j¢jójôhj h²hh³j!h´MBubah}”(h]”jah ]”(jøjùeh"]”h$]”h&]”jýˆjþ)jÿhuh1jœh³j!h´MBhjh²hubj)�”}”(hhh]”hÝ)�”}”(hŒ+register PSP interrupt handlers by event id”h]”hŒ+register PSP interrupt handlers by event id”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´MBhjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³j!h´MBubeh}”(h]”h ]”(j/Œfunction”eh"]”h$]”h&]”j!j/j"j7j#j7j$‰j%‰j&‰uh1j—h²hhjth³j–h´Nubj()�”}”(hXá**Parameters** ``struct amdgpu_psp_irq_mgr *mgr`` PSP interrupt manager ``const struct amdgpu_psp_irq_handler *handlers`` per-event handlers, or NULL ``int count`` number of **handlers** ``const struct amdgpu_psp_irq_handler *default_handler`` fallback for unregistered event ids, or NULL **Description** Handlers must be statically allocated and stay valid until psp_irq_mgr_fini(). **Return** 0 on success, negative error from xa_insert (e.g. duplicate event_id).”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j2)�”}”(hjAh]”hŒ Parameters”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j1hj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´MFhj;ubjH)�”}”(hhh]”(jM)�”}”(hŒ9``struct amdgpu_psp_irq_mgr *mgr`` PSP interrupt manager ”h]”(jS)�”}”(hŒ"``struct amdgpu_psp_irq_mgr *mgr``”h]”jY)�”}”(hj`h]”hŒstruct amdgpu_psp_irq_mgr *mgr”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jRh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´MChjZubjo)�”}”(hhh]”hÝ)�”}”(hŒPSP interrupt manager”h]”hŒPSP interrupt manager”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³juh´MChjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jnhjZubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLh³juh´MChjWubjM)�”}”(hŒN``const struct amdgpu_psp_irq_handler *handlers`` per-event handlers, or NULL ”h]”(jS)�”}”(hŒ1``const struct amdgpu_psp_irq_handler *handlers``”h]”jY)�”}”(hj™h]”hŒ-const struct amdgpu_psp_irq_handler *handlers”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jRh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´MDhj“ubjo)�”}”(hhh]”hÝ)�”}”(hŒper-event handlers, or NULL”h]”hŒper-event handlers, or NULL”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j®h´MDhj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jnhj“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLh³j®h´MDhjWubjM)�”}”(hŒ%``int count`` number of **handlers** ”h]”(jS)�”}”(hŒ ``int count``”h]”jY)�”}”(hjÒh]”hŒ int count”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjÐubah}”(h]”h ]”h"]”h$]”h&]”uh1jRh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´MEhjÌubjo)�”}”(hhh]”hÝ)�”}”(hŒnumber of **handlers**”h]”(hŒ number of ”…”�”}”(hjëh²hh³Nh´Nubj2)�”}”(hŒ **handlers**”h]”hŒhandlers”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j1hjëubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jçh´MEhjèubah}”(h]”h ]”h"]”h$]”h&]”uh1jnhjÌubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLh³jçh´MEhjWubjM)�”}”(hŒf``const struct amdgpu_psp_irq_handler *default_handler`` fallback for unregistered event ids, or NULL ”h]”(jS)�”}”(hŒ8``const struct amdgpu_psp_irq_handler *default_handler``”h]”jY)�”}”(hjh]”hŒ4const struct amdgpu_psp_irq_handler *default_handler”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jRh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´MFhjubjo)�”}”(hhh]”hÝ)�”}”(hŒ,fallback for unregistered event ids, or NULL”h]”hŒ,fallback for unregistered event ids, or NULL”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j.h´MFhj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jnhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLh³j.h´MFhjWubeh}”(h]”h ]”h"]”h$]”h&]”uh1jGhj;ubhÝ)�”}”(hŒ**Description**”h]”j2)�”}”(hjTh]”hŒ Description”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j1hjRubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´MHhj;ubhÝ)�”}”(hŒNHandlers must be statically allocated and stay valid until psp_irq_mgr_fini().”h]”hŒNHandlers must be statically allocated and stay valid until psp_irq_mgr_fini().”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´MGhj;ubhÝ)�”}”(hŒ **Return**”h]”j2)�”}”(hj{h]”hŒReturn”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j1hjyubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´MIhj;ubhÝ)�”}”(hŒF0 on success, negative error from xa_insert (e.g. duplicate event_id).”h]”hŒF0 on success, negative error from xa_insert (e.g. duplicate event_id).”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´MJhj;ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j'hjth²hh³j–h´Nubj†)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j’Œ(parse_psp_v1_bin_descriptor (C function)”Œc.parse_psp_v1_bin_descriptor”hNt”auh1j…hjth²hh³j–h´Nubj˜)�”}”(hhh]”(j�)�”}”(hŒgint parse_psp_v1_bin_descriptor (struct psp_bin_desc *desc, const struct psp_firmware_header_v1_0 *hdr)”h]”j£)�”}”(hŒfint parse_psp_v1_bin_descriptor(struct psp_bin_desc *desc, const struct psp_firmware_header_v1_0 *hdr)”h]”(j©)�”}”(hŒint”h]”hŒint”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”jµah"]”h$]”h&]”uh1j¨hj¼h²hh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´MTubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhj¼h²hh³jÎh´MTubjÌ)�”}”(hŒparse_psp_v1_bin_descriptor”h]”jÒ)�”}”(hŒparse_psp_v1_bin_descriptor”h]”hŒparse_psp_v1_bin_descriptor”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”jÞah"]”h$]”h&]”uh1jÑhjÝubah}”(h]”h ]”(jåjæeh"]”h$]”h&]”jêjëuh1jËhj¼h²hh³jÎh´MTubjí)�”}”(hŒG(struct psp_bin_desc *desc, const struct psp_firmware_header_v1_0 *hdr)”h]”(jó)�”}”(hŒstruct psp_bin_desc *desc”h]”(jù)�”}”(hjüh]”hŒstruct”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jøhjùubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjùubh)�”}”(hhh]”jÒ)�”}”(hŒ psp_bin_desc”h]”hŒ psp_bin_desc”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÞah"]”h$]”h&]”uh1jÑhj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j/Œreftype”j1Œ reftarget”j Œmodname”NŒ classname”Nj5j8)�”}”j;]”j>)�”}”j1jãsbŒc.parse_psp_v1_bin_descriptor”†”asbuh1hhjùubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj; h²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjùubjR)�”}”(hj9h]”hŒ*”…”�”}”(hjI h²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jQhjùubjÒ)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hjV h²hh³Nh´Nubah}”(h]”h ]”jÞah"]”h$]”h&]”uh1jÑhjùubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjêjëuh1jòhjõubjó)�”}”(hŒ*const struct psp_firmware_header_v1_0 *hdr”h]”(jù)�”}”(hjÄh]”hŒconst”…”�”}”(hjo h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jøhjk ubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj| h²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjk ubjù)�”}”(hjüh]”hŒstruct”…”�”}”(hjŠ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jøhjk ubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj— h²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjk ubh)�”}”(hhh]”jÒ)�”}”(hŒpsp_firmware_header_v1_0”h]”hŒpsp_firmware_header_v1_0”…”�”}”(hj¨ h²hh³Nh´Nubah}”(h]”h ]”jÞah"]”h$]”h&]”uh1jÑhj¥ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j/Œreftype”j1Œ reftarget”jª Œmodname”NŒ classname”Nj5j8)�”}”j;]”j7 Œc.parse_psp_v1_bin_descriptor”†”asbuh1hhjk ubj»)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÆ h²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjk ubjR)�”}”(hj9h]”hŒ*”…”�”}”(hjÔ h²hh³Nh´Nubah}”(h]”h ]”j]ah"]”h$]”h&]”uh1jQhjk ubjÒ)�”}”(hŒhdr”h]”hŒhdr”…”�”}”(hjá h²hh³Nh´Nubah}”(h]”h ]”jÞah"]”h$]”h&]”uh1jÑhjk ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjêjëuh1jòhjõubeh}”(h]”h ]”h"]”h$]”h&]”jêjëuh1jìhj¼h²hh³jÎh´MTubeh}”(h]”h ]”h"]”h$]”h&]”jêjëjòˆuh1j¢jójôhj¸h²hh³jÎh´MTubah}”(h]”j³ah ]”(jøjùeh"]”h$]”h&]”jýˆjþ)jÿhuh1jœh³jÎh´MThjµh²hubj)�”}”(hhh]”hÝ)�”}”(hŒdPopulate struct psp_bin_desc from a v1.0 PSP firmware header (standalone images such as ASD or TOC).”h]”hŒdPopulate struct psp_bin_desc from a v1.0 PSP firmware header (standalone images such as ASD or TOC).”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´MThj h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjµh²hh³jÎh´MTubeh}”(h]”h ]”(j/Œfunction”eh"]”h$]”h&]”j!j/j"j# j#j# j$‰j%‰j&‰uh1j—h²hhjth³j–h´Nubj()�”}”(hŒ}**Parameters** ``struct psp_bin_desc *desc`` *undescribed* ``const struct psp_firmware_header_v1_0 *hdr`` *undescribed*”h]”(hÝ)�”}”(hŒ**Parameters**”h]”j2)�”}”(hj- h]”hŒ Parameters”…”�”}”(hj/ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j1hj+ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´MXhj' ubjH)�”}”(hhh]”(jM)�”}”(hŒ,``struct psp_bin_desc *desc`` *undescribed* ”h]”(jS)�”}”(hŒ``struct psp_bin_desc *desc``”h]”jY)�”}”(hjL h]”hŒstruct psp_bin_desc *desc”…”�”}”(hjN h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjJ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jRh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´KhjF ubjo)�”}”(hhh]”hÝ)�”}”(hŒ *undescribed*”h]”hŒemphasis”“”)�”}”(hjg h]”hŒ undescribed”…”�”}”(hjk h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hje ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ja h´Khjb ubah}”(h]”h ]”h"]”h$]”h&]”uh1jnhjF ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLh³ja h´KhjC ubjM)�”}”(hŒ<``const struct psp_firmware_header_v1_0 *hdr`` *undescribed*”h]”(jS)�”}”(hŒ.``const struct psp_firmware_header_v1_0 *hdr``”h]”jY)�”}”(hj� h]”hŒ*const struct psp_firmware_header_v1_0 *hdr”…”�”}”(hj’ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjŽ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jRh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´KhjŠ ubjo)�”}”(hhh]”hÝ)�”}”(hŒ *undescribed*”h]”jj )�”}”(hj« h]”hŒ undescribed”…”�”}”(hj­ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj© ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´Khj¦ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jnhjŠ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLh³j¥ h´KhjC ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jGhj' ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j'hjth²hh³j–h´NubhŒtarget”“”)�”}”(hŒ.. _usbc_pd_fw:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œ usbc-pd-fw”uh1jÚ h´KAhjth²hh³j–ubhÝ)�”}”(hŒ**usbc_pd_fw**”h]”j2)�”}”(hjê h]”hŒ usbc_pd_fw”…”�”}”(hjì h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j1hjè ubah}”(h]”jç ah ]”h"]”Œ usbc_pd_fw”ah$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´Khjth²hŒexpect_referenced_by_name”}”jý jÜ sŒexpect_referenced_by_id”}”jç jÜ subhÝ)�”}”(hŒyReading from this file will retrieve the USB-C PD firmware version. Writing to this file will trigger the update process.”h]”hŒyReading from this file will retrieve the USB-C PD firmware version. Writing to this file will trigger the update process.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´M7hjth²hubjÛ )�”}”(hŒ.. _PTL sysfs attributes:”h]”h}”(h]”h ]”h"]”h$]”h&]”jæ Œptl-sysfs-attributes”uh1jÚ h´KIhjth²hh³j–ubhÝ)�”}”(hŒ**PTL sysfs attributes**”h]”j2)�”}”(hj! h]”hŒPTL sysfs attributes”…”�”}”(hj# h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j1hj ubah}”(h]”j ah ]”h"]”Œptl sysfs attributes”ah$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´M=hjth²hj }”j4 j sj }”j j subhÝ)�”}”(hŒÅThese sysfs files under /sys/class/drm/cardX/device/ptl allow users to enable or disable the Peak Tops Limiter (PTL), configure preferred PTL data formats, and query supported formats for each GPU.”h]”hŒÅThese sysfs files under /sys/class/drm/cardX/device/ptl allow users to enable or disable the Peak Tops Limiter (PTL), configure preferred PTL data formats, and query supported formats for each GPU.”…”�”}”(hj: h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´M?hjth²hubjÛ )�”}”(hŒ.. _psp_vbflash:”h]”h}”(h]”h ]”h"]”h$]”h&]”jæ Œ psp-vbflash”uh1jÚ h´KRhjth²hh³j–ubhÝ)�”}”(hŒ**psp_vbflash**”h]”j2)�”}”(hjV h]”hŒ psp_vbflash”…”�”}”(hjX h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j1hjT ubah}”(h]”jS ah ]”h"]”Œ psp_vbflash”ah$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´MFhjth²hj }”ji jI sj }”jS jI subhÝ)�”}”(hŒkWriting to this file will stage an IFWI for update. Reading from this file will trigger the update process.”h]”hŒkWriting to this file will stage an IFWI for update. Reading from this file will trigger the update process.”…”�”}”(hjo h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´Mµhjth²hubjÛ )�”}”(hŒ.. _psp_vbflash_status:”h]”h}”(h]”h ]”h"]”h$]”h&]”jæ Œpsp-vbflash-status”uh1jÚ h´KZhjth²hh³j–ubhÝ)�”}”(hŒ**psp_vbflash_status**”h]”j2)�”}”(hj‹ h]”hŒpsp_vbflash_status”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j1hj‰ ubah}”(h]”jˆ ah ]”h"]”Œpsp_vbflash_status”ah$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´M»hjth²hj }”jž j~ sj }”jˆ j~ subhÝ)�”}”(hŒTThe status of the flash process. 0: IFWI flash not complete. 1: IFWI flash complete.”h]”hŒTThe status of the flash process. 0: IFWI flash not complete. 1: IFWI flash complete.”…”�”}”(hj¤ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œk/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/flashing:33: ./drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c”h´MÁhjth²hubeh}”(h]”Œ sysfs-files”ah ]”h"]”Œ sysfs files”ah$]”h&]”uh1hµhh·h²hh³hÊh´K ubeh}”(h]”Œdgpu-firmware-flashing”ah ]”h"]”Œdgpu firmware flashing”ah$]”h&]”uh1hµhhh²hh³hÊh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÊuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hºNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jæ Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÊŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”(jç ]”jÜ aj ]”j ajS ]”jI ajˆ ]”j~ auŒnameids”}”(jÀ j½ j¸jµjqjnj¸ jµ jý jç j4 j ji jS jž jˆ uŒ nametypes”}”(jÀ ‰j¸‰jq‰j¸ ‰jý ˆj4 ˆji ˆjž ˆuh}”(j½ h·jµhËjnj»jµ jtj”jžjj j³j¸jç jè j j jS jT jˆ j‰ uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”(hŒsystem_message”“”)�”}”(hhh]”hÝ)�”}”(hhh]”hŒ0Hyperlink target "usbc-pd-fw" is not referenced.”…”�”}”hjS sbah}”(h]”h ]”h"]”h$]”h&]”uh1hÜhjP ubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”j–Œline”KAuh1jN ubjO )�”}”(hhh]”hÝ)�”}”(hhh]”hŒ:Hyperlink target "ptl-sysfs-attributes" is not referenced.”…”�”}”hjn sbah}”(h]”h ]”h"]”h$]”h&]”uh1hÜhjk ubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”jh Œsource”j–Œline”KIuh1jN ubjO )�”}”(hhh]”hÝ)�”}”(hhh]”hŒ1Hyperlink target "psp-vbflash" is not referenced.”…”�”}”hjˆ sbah}”(h]”h ]”h"]”h$]”h&]”uh1hÜhj… ubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”jh Œsource”j–Œline”KRuh1jN ubjO )�”}”(hhh]”hÝ)�”}”(hhh]”hŒ8Hyperlink target "psp-vbflash-status" is not referenced.”…”�”}”hj¢ sbah}”(h]”h ]”h"]”h$]”h&]”uh1hÜhjŸ ubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”jh Œsource”j–Œline”KZuh1jN ubeŒ transformer”NŒ include_log”]”Œ decoration”Nh²hub.