[Cezanne/Green Sardine] `amdgpu_read_mm_registers` function always succeeds
Brief summary of the problem:
amdgpu_read_mm_registers(
device_handle,
offset,
1, // count
0xFFFF_FFFF, // instance mask, full mask
0, // flags
&out,
)
When the above function is called via libdrm_amdgpu, it returns an error (-14) if register offset is not allowed, but in Cezanne/GreenSardine APU it always succeeds. (even if the register offset is a value such as 0xDEAD_BEEF)
In the case of Polaris11, it returns an error normally for register offsets that are not allowed.
-
amdgpu_allowed_register_entry
/drivers/gpu/drm/amd/amdgpu/vi.c
-
soc15_allowed_register_entry
/drivers/gpu/drm/amd/amdgpu/soc15.c
Hardware description:
- CPU: Ryzen 5 5600G
- GPU: AMD Radeon Graphics (0x1638:0xC9)
- System Memory: DDR4 16GB
System information:
- Kernel version: v6.1.13
- drm version: 3.49.0
How to reproduce the issue:
- test code: https://github.com/Umio-Yasuno/libdrm-amdgpu-sys-rs/blob/test-read-reg/examples/read_reg.rs
- Command:
cargo run --example read_reg