@@ -72,7 +72,7 @@ void amdgpu_amdkfd_device_probe(struct amdgpu_device *adev)
72
72
if (!kfd_initialized )
73
73
return ;
74
74
75
- adev -> kfd .dev = kgd2kfd_probe (( struct kgd_dev * ) adev , vf );
75
+ adev -> kfd .dev = kgd2kfd_probe (adev , vf );
76
76
77
77
if (adev -> kfd .dev )
78
78
amdgpu_amdkfd_total_mem_size += adev -> gmc .real_vram_size ;
@@ -233,19 +233,16 @@ int amdgpu_amdkfd_post_reset(struct amdgpu_device *adev)
233
233
return r ;
234
234
}
235
235
236
- void amdgpu_amdkfd_gpu_reset (struct kgd_dev * kgd )
236
+ void amdgpu_amdkfd_gpu_reset (struct amdgpu_device * adev )
237
237
{
238
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
239
-
240
238
if (amdgpu_device_should_recover_gpu (adev ))
241
239
amdgpu_device_gpu_recover (adev , NULL );
242
240
}
243
241
244
- int amdgpu_amdkfd_alloc_gtt_mem (struct kgd_dev * kgd , size_t size ,
242
+ int amdgpu_amdkfd_alloc_gtt_mem (struct amdgpu_device * adev , size_t size ,
245
243
void * * mem_obj , uint64_t * gpu_addr ,
246
244
void * * cpu_ptr , bool cp_mqd_gfx9 )
247
245
{
248
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
249
246
struct amdgpu_bo * bo = NULL ;
250
247
struct amdgpu_bo_param bp ;
251
248
int r ;
@@ -314,7 +311,7 @@ int amdgpu_amdkfd_alloc_gtt_mem(struct kgd_dev *kgd, size_t size,
314
311
return r ;
315
312
}
316
313
317
- void amdgpu_amdkfd_free_gtt_mem (struct kgd_dev * kgd , void * mem_obj )
314
+ void amdgpu_amdkfd_free_gtt_mem (struct amdgpu_device * adev , void * mem_obj )
318
315
{
319
316
struct amdgpu_bo * bo = (struct amdgpu_bo * ) mem_obj ;
320
317
@@ -325,10 +322,9 @@ void amdgpu_amdkfd_free_gtt_mem(struct kgd_dev *kgd, void *mem_obj)
325
322
amdgpu_bo_unref (& (bo ));
326
323
}
327
324
328
- int amdgpu_amdkfd_alloc_gws (struct kgd_dev * kgd , size_t size ,
325
+ int amdgpu_amdkfd_alloc_gws (struct amdgpu_device * adev , size_t size ,
329
326
void * * mem_obj )
330
327
{
331
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
332
328
struct amdgpu_bo * bo = NULL ;
333
329
struct amdgpu_bo_user * ubo ;
334
330
struct amdgpu_bo_param bp ;
@@ -355,18 +351,16 @@ int amdgpu_amdkfd_alloc_gws(struct kgd_dev *kgd, size_t size,
355
351
return 0 ;
356
352
}
357
353
358
- void amdgpu_amdkfd_free_gws (struct kgd_dev * kgd , void * mem_obj )
354
+ void amdgpu_amdkfd_free_gws (struct amdgpu_device * adev , void * mem_obj )
359
355
{
360
356
struct amdgpu_bo * bo = (struct amdgpu_bo * )mem_obj ;
361
357
362
358
amdgpu_bo_unref (& bo );
363
359
}
364
360
365
- uint32_t amdgpu_amdkfd_get_fw_version (struct kgd_dev * kgd ,
361
+ uint32_t amdgpu_amdkfd_get_fw_version (struct amdgpu_device * adev ,
366
362
enum kgd_engine_type type )
367
363
{
368
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
369
-
370
364
switch (type ) {
371
365
case KGD_ENGINE_PFP :
372
366
return adev -> gfx .pfp_fw_version ;
@@ -399,11 +393,9 @@ uint32_t amdgpu_amdkfd_get_fw_version(struct kgd_dev *kgd,
399
393
return 0 ;
400
394
}
401
395
402
- void amdgpu_amdkfd_get_local_mem_info (struct kgd_dev * kgd ,
396
+ void amdgpu_amdkfd_get_local_mem_info (struct amdgpu_device * adev ,
403
397
struct kfd_local_mem_info * mem_info )
404
398
{
405
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
406
-
407
399
memset (mem_info , 0 , sizeof (* mem_info ));
408
400
409
401
mem_info -> local_mem_size_public = adev -> gmc .visible_vram_size ;
@@ -428,19 +420,15 @@ void amdgpu_amdkfd_get_local_mem_info(struct kgd_dev *kgd,
428
420
mem_info -> mem_clk_max = 100 ;
429
421
}
430
422
431
- uint64_t amdgpu_amdkfd_get_gpu_clock_counter (struct kgd_dev * kgd )
423
+ uint64_t amdgpu_amdkfd_get_gpu_clock_counter (struct amdgpu_device * adev )
432
424
{
433
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
434
-
435
425
if (adev -> gfx .funcs -> get_gpu_clock_counter )
436
426
return adev -> gfx .funcs -> get_gpu_clock_counter (adev );
437
427
return 0 ;
438
428
}
439
429
440
- uint32_t amdgpu_amdkfd_get_max_engine_clock_in_mhz (struct kgd_dev * kgd )
430
+ uint32_t amdgpu_amdkfd_get_max_engine_clock_in_mhz (struct amdgpu_device * adev )
441
431
{
442
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
443
-
444
432
/* the sclk is in quantas of 10kHz */
445
433
if (amdgpu_sriov_vf (adev ))
446
434
return adev -> clock .default_sclk / 100 ;
@@ -450,9 +438,8 @@ uint32_t amdgpu_amdkfd_get_max_engine_clock_in_mhz(struct kgd_dev *kgd)
450
438
return 100 ;
451
439
}
452
440
453
- void amdgpu_amdkfd_get_cu_info (struct kgd_dev * kgd , struct kfd_cu_info * cu_info )
441
+ void amdgpu_amdkfd_get_cu_info (struct amdgpu_device * adev , struct kfd_cu_info * cu_info )
454
442
{
455
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
456
443
struct amdgpu_cu_info acu_info = adev -> gfx .cu_info ;
457
444
458
445
memset (cu_info , 0 , sizeof (* cu_info ));
@@ -473,13 +460,12 @@ void amdgpu_amdkfd_get_cu_info(struct kgd_dev *kgd, struct kfd_cu_info *cu_info)
473
460
cu_info -> lds_size = acu_info .lds_size ;
474
461
}
475
462
476
- int amdgpu_amdkfd_get_dmabuf_info (struct kgd_dev * kgd , int dma_buf_fd ,
477
- struct kgd_dev * * dma_buf_kgd ,
463
+ int amdgpu_amdkfd_get_dmabuf_info (struct amdgpu_device * adev , int dma_buf_fd ,
464
+ struct amdgpu_device * * dmabuf_adev ,
478
465
uint64_t * bo_size , void * metadata_buffer ,
479
466
size_t buffer_size , uint32_t * metadata_size ,
480
467
uint32_t * flags )
481
468
{
482
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
483
469
struct dma_buf * dma_buf ;
484
470
struct drm_gem_object * obj ;
485
471
struct amdgpu_bo * bo ;
@@ -507,8 +493,8 @@ int amdgpu_amdkfd_get_dmabuf_info(struct kgd_dev *kgd, int dma_buf_fd,
507
493
goto out_put ;
508
494
509
495
r = 0 ;
510
- if (dma_buf_kgd )
511
- * dma_buf_kgd = ( struct kgd_dev * ) adev ;
496
+ if (dmabuf_adev )
497
+ * dmabuf_adev = adev ;
512
498
if (bo_size )
513
499
* bo_size = amdgpu_bo_size (bo );
514
500
if (metadata_buffer )
@@ -528,32 +514,18 @@ int amdgpu_amdkfd_get_dmabuf_info(struct kgd_dev *kgd, int dma_buf_fd,
528
514
return r ;
529
515
}
530
516
531
- uint64_t amdgpu_amdkfd_get_vram_usage (struct kgd_dev * kgd )
517
+ uint64_t amdgpu_amdkfd_get_vram_usage (struct amdgpu_device * adev )
532
518
{
533
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
534
519
struct ttm_resource_manager * vram_man = ttm_manager_type (& adev -> mman .bdev , TTM_PL_VRAM );
535
520
536
521
return amdgpu_vram_mgr_usage (vram_man );
537
522
}
538
523
539
- uint64_t amdgpu_amdkfd_get_hive_id (struct kgd_dev * kgd )
540
- {
541
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
542
-
543
- return adev -> gmc .xgmi .hive_id ;
544
- }
545
-
546
- uint64_t amdgpu_amdkfd_get_unique_id (struct kgd_dev * kgd )
547
- {
548
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
549
-
550
- return adev -> unique_id ;
551
- }
552
-
553
- uint8_t amdgpu_amdkfd_get_xgmi_hops_count (struct kgd_dev * dst , struct kgd_dev * src )
524
+ uint8_t amdgpu_amdkfd_get_xgmi_hops_count (struct amdgpu_device * dst ,
525
+ struct amdgpu_device * src )
554
526
{
555
- struct amdgpu_device * peer_adev = ( struct amdgpu_device * ) src ;
556
- struct amdgpu_device * adev = ( struct amdgpu_device * ) dst ;
527
+ struct amdgpu_device * peer_adev = src ;
528
+ struct amdgpu_device * adev = dst ;
557
529
int ret = amdgpu_xgmi_get_hops_count (adev , peer_adev );
558
530
559
531
if (ret < 0 ) {
@@ -565,16 +537,18 @@ uint8_t amdgpu_amdkfd_get_xgmi_hops_count(struct kgd_dev *dst, struct kgd_dev *s
565
537
return (uint8_t )ret ;
566
538
}
567
539
568
- int amdgpu_amdkfd_get_xgmi_bandwidth_mbytes (struct kgd_dev * dst , struct kgd_dev * src , bool is_min )
540
+ int amdgpu_amdkfd_get_xgmi_bandwidth_mbytes (struct amdgpu_device * dst ,
541
+ struct amdgpu_device * src ,
542
+ bool is_min )
569
543
{
570
- struct amdgpu_device * adev = ( struct amdgpu_device * ) dst , * peer_adev ;
544
+ struct amdgpu_device * adev = dst , * peer_adev ;
571
545
int num_links ;
572
546
573
547
if (adev -> asic_type != CHIP_ALDEBARAN )
574
548
return 0 ;
575
549
576
550
if (src )
577
- peer_adev = ( struct amdgpu_device * ) src ;
551
+ peer_adev = src ;
578
552
579
553
/* num links returns 0 for indirect peers since indirect route is unknown. */
580
554
num_links = is_min ? 1 : amdgpu_xgmi_get_num_links (adev , peer_adev );
@@ -589,9 +563,8 @@ int amdgpu_amdkfd_get_xgmi_bandwidth_mbytes(struct kgd_dev *dst, struct kgd_dev
589
563
return (num_links * 16 * 25000 )/BITS_PER_BYTE ;
590
564
}
591
565
592
- int amdgpu_amdkfd_get_pcie_bandwidth_mbytes (struct kgd_dev * dev , bool is_min )
566
+ int amdgpu_amdkfd_get_pcie_bandwidth_mbytes (struct amdgpu_device * adev , bool is_min )
593
567
{
594
- struct amdgpu_device * adev = (struct amdgpu_device * )dev ;
595
568
int num_lanes_shift = (is_min ? ffs (adev -> pm .pcie_mlw_mask ) :
596
569
fls (adev -> pm .pcie_mlw_mask )) - 1 ;
597
570
int gen_speed_shift = (is_min ? ffs (adev -> pm .pcie_gen_mask &
@@ -647,39 +620,11 @@ int amdgpu_amdkfd_get_pcie_bandwidth_mbytes(struct kgd_dev *dev, bool is_min)
647
620
return (num_lanes_factor * gen_speed_mbits_factor )/BITS_PER_BYTE ;
648
621
}
649
622
650
- uint64_t amdgpu_amdkfd_get_mmio_remap_phys_addr (struct kgd_dev * kgd )
651
- {
652
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
653
-
654
- return adev -> rmmio_remap .bus_addr ;
655
- }
656
-
657
- uint32_t amdgpu_amdkfd_get_num_gws (struct kgd_dev * kgd )
658
- {
659
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
660
-
661
- return adev -> gds .gws_size ;
662
- }
663
-
664
- uint32_t amdgpu_amdkfd_get_asic_rev_id (struct kgd_dev * kgd )
665
- {
666
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
667
-
668
- return adev -> rev_id ;
669
- }
670
-
671
- int amdgpu_amdkfd_get_noretry (struct kgd_dev * kgd )
672
- {
673
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
674
-
675
- return adev -> gmc .noretry ;
676
- }
677
-
678
- int amdgpu_amdkfd_submit_ib (struct kgd_dev * kgd , enum kgd_engine_type engine ,
623
+ int amdgpu_amdkfd_submit_ib (struct amdgpu_device * adev ,
624
+ enum kgd_engine_type engine ,
679
625
uint32_t vmid , uint64_t gpu_addr ,
680
626
uint32_t * ib_cmd , uint32_t ib_len )
681
627
{
682
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
683
628
struct amdgpu_job * job ;
684
629
struct amdgpu_ib * ib ;
685
630
struct amdgpu_ring * ring ;
@@ -730,10 +675,8 @@ int amdgpu_amdkfd_submit_ib(struct kgd_dev *kgd, enum kgd_engine_type engine,
730
675
return ret ;
731
676
}
732
677
733
- void amdgpu_amdkfd_set_compute_idle (struct kgd_dev * kgd , bool idle )
678
+ void amdgpu_amdkfd_set_compute_idle (struct amdgpu_device * adev , bool idle )
734
679
{
735
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
736
-
737
680
amdgpu_dpm_switch_power_profile (adev ,
738
681
PP_SMC_POWER_PROFILE_COMPUTE ,
739
682
!idle );
@@ -747,10 +690,9 @@ bool amdgpu_amdkfd_is_kfd_vmid(struct amdgpu_device *adev, u32 vmid)
747
690
return false;
748
691
}
749
692
750
- int amdgpu_amdkfd_flush_gpu_tlb_vmid (struct kgd_dev * kgd , uint16_t vmid )
693
+ int amdgpu_amdkfd_flush_gpu_tlb_vmid (struct amdgpu_device * adev ,
694
+ uint16_t vmid )
751
695
{
752
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
753
-
754
696
if (adev -> family == AMDGPU_FAMILY_AI ) {
755
697
int i ;
756
698
@@ -763,10 +705,9 @@ int amdgpu_amdkfd_flush_gpu_tlb_vmid(struct kgd_dev *kgd, uint16_t vmid)
763
705
return 0 ;
764
706
}
765
707
766
- int amdgpu_amdkfd_flush_gpu_tlb_pasid (struct kgd_dev * kgd , uint16_t pasid ,
767
- enum TLB_FLUSH_TYPE flush_type )
708
+ int amdgpu_amdkfd_flush_gpu_tlb_pasid (struct amdgpu_device * adev ,
709
+ uint16_t pasid , enum TLB_FLUSH_TYPE flush_type )
768
710
{
769
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
770
711
bool all_hub = false;
771
712
772
713
if (adev -> family == AMDGPU_FAMILY_AI )
@@ -775,21 +716,18 @@ int amdgpu_amdkfd_flush_gpu_tlb_pasid(struct kgd_dev *kgd, uint16_t pasid,
775
716
return amdgpu_gmc_flush_gpu_tlb_pasid (adev , pasid , flush_type , all_hub );
776
717
}
777
718
778
- bool amdgpu_amdkfd_have_atomics_support (struct kgd_dev * kgd )
719
+ bool amdgpu_amdkfd_have_atomics_support (struct amdgpu_device * adev )
779
720
{
780
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
781
-
782
721
return adev -> have_atomics_support ;
783
722
}
784
723
785
- void amdgpu_amdkfd_ras_poison_consumption_handler (struct kgd_dev * kgd )
724
+ void amdgpu_amdkfd_ras_poison_consumption_handler (struct amdgpu_device * adev )
786
725
{
787
- struct amdgpu_device * adev = (struct amdgpu_device * )kgd ;
788
726
struct ras_err_data err_data = {0 , 0 , 0 , NULL };
789
727
790
728
/* CPU MCA will handle page retirement if connected_to_cpu is 1 */
791
729
if (!adev -> gmc .xgmi .connected_to_cpu )
792
730
amdgpu_umc_process_ras_data_cb (adev , & err_data , NULL );
793
731
else
794
- amdgpu_amdkfd_gpu_reset (kgd );
732
+ amdgpu_amdkfd_gpu_reset (adev );
795
733
}
0 commit comments