<div dir="ltr"><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Thu, Jul 31, 2025 at 9:38 PM Alex Deucher <<a href="mailto:alexdeucher@gmail.com">alexdeucher@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thu, Jul 31, 2025 at 3:33 AM Philipp Zabel <<a href="mailto:philipp.zabel@gmail.com" target="_blank">philipp.zabel@gmail.com</a>> wrote:<br>
><br>
> Don't wake the GPU if libdrm queries the mmGB_ADDR_CONFIG register<br>
> value during amdgpu_query_gpu_info_init(). Instead, return the already<br>
> cached value adev->gfx.config.gb_addr_config.<br>
><br>
> Link: <a href="https://gitlab.freedesktop.org/drm/amd/-/issues/2295" rel="noreferrer" target="_blank">https://gitlab.freedesktop.org/drm/amd/-/issues/2295</a><br>
> Signed-off-by: Philipp Zabel <<a href="mailto:philipp.zabel@gmail.com" target="_blank">philipp.zabel@gmail.com</a>><br>
> ---<br>
>  drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 10 ++++++++++<br>
>  1 file changed, 10 insertions(+)<br>
><br>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c<br>
> index fe1347a4075c4..ed4d7d72f2065 100644<br>
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c<br>
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c<br>
> @@ -883,6 +883,16 @@ int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)<br>
><br>
>                 alloc_size = info->read_mmr_reg.count * sizeof(*regs);<br>
><br>
> +               if (info->read_mmr_reg.dword_offset == 0x263e &&<br>
<br>
I think the offset of this register varies across chip families.<br>
You'll need some way to determine what the offset is for each family.<br></blockquote><div><br></div><div style="font-family:courier new,monospace" class="gmail_default">Thank you. This workaround was specifically intended for the following call in libdrm [1]:<br><br>        r = amdgpu_read_mm_registers(dev, 0x263e, 1, 0xffffffff, 0,<br>                                             &dev->info.gb_addr_cfg);<br><br>[1] <a href="https://gitlab.freedesktop.org/mesa/libdrm/-/blob/9ea8a8e93d542fe61d82716d1a721e8d1d257405/amdgpu/amdgpu_gpu_info.c#L215-216">https://gitlab.freedesktop.org/mesa/libdrm/-/blob/9ea8a8e93d542fe61d82716d1a721e8d1d257405/amdgpu/amdgpu_gpu_info.c#L215-216</a><br><br>which also seem to hard-code the dword_offset?</div><div style="font-family:courier new,monospace" class="gmail_default"><br></div><div style="font-family:courier new,monospace" class="gmail_default">The same is now copied into Mesa [2] as:<br><br>   r = ac_drm_read_mm_registers(dev, 0x263e, 1, 0xffffffff, 0, &info->gb_addr_cfg);<br><br>[2] <a href="https://gitlab.freedesktop.org/mesa/mesa/-/blob/c64c6a0c31f9cb1339bc700d236932171f7444a3/src/amd/common/ac_linux_drm.c#L722">https://gitlab.freedesktop.org/mesa/mesa/-/blob/c64c6a0c31f9cb1339bc700d236932171f7444a3/src/amd/common/ac_linux_drm.c#L722</a></div></div><div class="gmail_quote gmail_quote_container"><br><div style="font-family:courier new,monospace" class="gmail_default">regards</div><div style="font-family:courier new,monospace" class="gmail_default">Philipp</div><br></div></div>