Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/amdgpu: add helper to load ip_discovery binary from file

To be used when ip_discovery binary is not carried by vbios

Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Hawking Zhang and committed by
Alex Deucher
43a80bd5 c40bdfb2

+30 -1
+30 -1
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
··· 67 67 #include "smuio_v11_0_6.h" 68 68 #include "smuio_v13_0.h" 69 69 70 - MODULE_FIRMWARE("amdgpu/ip_discovery.bin"); 70 + #define FIRMWARE_IP_DISCOVERY "amdgpu/ip_discovery.bin" 71 + MODULE_FIRMWARE(FIRMWARE_IP_DISCOVERY); 71 72 72 73 #define mmRCC_CONFIG_MEMSIZE 0xde3 73 74 #define mmMM_INDEX 0x0 ··· 187 186 188 187 amdgpu_device_vram_access(adev, pos, (uint32_t *)binary, 189 188 adev->mman.discovery_tmr_size, false); 189 + return 0; 190 + } 191 + 192 + static int amdgpu_discovery_read_binary_from_file(struct amdgpu_device *adev, uint8_t *binary) 193 + { 194 + const struct firmware *fw; 195 + const char *fw_name; 196 + int r; 197 + 198 + switch (amdgpu_discovery) { 199 + case 2: 200 + fw_name = FIRMWARE_IP_DISCOVERY; 201 + break; 202 + default: 203 + dev_warn(adev->dev, "amdgpu_discovery is not set properly\n"); 204 + return -EINVAL; 205 + } 206 + 207 + r = request_firmware(&fw, fw_name, adev->dev); 208 + if (r) { 209 + dev_err(adev->dev, "can't load firmware \"%s\"\n", 210 + fw_name); 211 + return r; 212 + } 213 + 214 + memcpy((u8 *)binary, (u8 *)fw->data, adev->mman.discovery_tmr_size); 215 + release_firmware(fw); 216 + 190 217 return 0; 191 218 } 192 219