111
111
#include "amdgpu_isp.h"
112
112
#endif
113
113
114
- #define FIRMWARE_IP_DISCOVERY "amdgpu/ip_discovery.bin"
115
- MODULE_FIRMWARE (FIRMWARE_IP_DISCOVERY );
114
+ MODULE_FIRMWARE ("amdgpu/ip_discovery.bin" );
116
115
117
116
#define mmIP_DISCOVERY_VERSION 0x16A00
118
117
#define mmRCC_CONFIG_MEMSIZE 0xde3
@@ -295,21 +294,13 @@ static int amdgpu_discovery_read_binary_from_mem(struct amdgpu_device *adev,
295
294
return ret ;
296
295
}
297
296
298
- static int amdgpu_discovery_read_binary_from_file (struct amdgpu_device * adev , uint8_t * binary )
297
+ static int amdgpu_discovery_read_binary_from_file (struct amdgpu_device * adev ,
298
+ uint8_t * binary ,
299
+ const char * fw_name )
299
300
{
300
301
const struct firmware * fw ;
301
- const char * fw_name ;
302
302
int r ;
303
303
304
- switch (amdgpu_discovery ) {
305
- case 2 :
306
- fw_name = FIRMWARE_IP_DISCOVERY ;
307
- break ;
308
- default :
309
- dev_warn (adev -> dev , "amdgpu_discovery is not set properly\n" );
310
- return - EINVAL ;
311
- }
312
-
313
304
r = request_firmware (& fw , fw_name , adev -> dev );
314
305
if (r ) {
315
306
dev_err (adev -> dev , "can't load firmware \"%s\"\n" ,
@@ -402,10 +393,19 @@ static int amdgpu_discovery_verify_npsinfo(struct amdgpu_device *adev,
402
393
return 0 ;
403
394
}
404
395
396
+ static const char * amdgpu_discovery_get_fw_name (struct amdgpu_device * adev )
397
+ {
398
+ if (amdgpu_discovery == 2 )
399
+ return "amdgpu/ip_discovery.bin" ;
400
+
401
+ return NULL ;
402
+ }
403
+
405
404
static int amdgpu_discovery_init (struct amdgpu_device * adev )
406
405
{
407
406
struct table_info * info ;
408
407
struct binary_header * bhdr ;
408
+ const char * fw_name ;
409
409
uint16_t offset ;
410
410
uint16_t size ;
411
411
uint16_t checksum ;
@@ -417,9 +417,10 @@ static int amdgpu_discovery_init(struct amdgpu_device *adev)
417
417
return - ENOMEM ;
418
418
419
419
/* Read from file if it is the preferred option */
420
- if (amdgpu_discovery == 2 ) {
420
+ fw_name = amdgpu_discovery_get_fw_name (adev );
421
+ if (fw_name != NULL ) {
421
422
dev_info (adev -> dev , "use ip discovery information from file" );
422
- r = amdgpu_discovery_read_binary_from_file (adev , adev -> mman .discovery_bin );
423
+ r = amdgpu_discovery_read_binary_from_file (adev , adev -> mman .discovery_bin , fw_name );
423
424
424
425
if (r ) {
425
426
dev_err (adev -> dev , "failed to read ip discovery binary from file\n" );
0 commit comments