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/amd/include : Update MES v12 API header

1. Add RRMT option support which will be used for remote die
register access
2. Update set_hw_resource1 for cooperative mode support
3. Add full_sh_mem_config_data for xnack support

v2: squash in compilation fix

Signed-off-by: Shaoyun Liu <shaoyun.liu@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Shaoyun Liu and committed by
Alex Deucher
25f687de 6fb01a20

+28 -4
+28 -4
drivers/gpu/drm/amd/include/mes_v12_api_def.h
··· 310 310 union { 311 311 struct { 312 312 uint32_t enable_mes_debug_ctx : 1; 313 - uint32_t reserved : 31; 313 + uint32_t mes_coop_mode : 1; /* 0: non-coop; 1: coop */ 314 + uint32_t reserved : 30; 314 315 }; 315 316 uint32_t uint32_all; 316 317 }; ··· 319 318 uint32_t mes_debug_ctx_size; 320 319 /* unit is 100ms */ 321 320 uint32_t mes_kiq_unmap_timeout; 322 - uint64_t reserved1; 321 + /* shared buffer of master/slaves, valid if mes_coop_mode=1 */ 322 + uint64_t coop_sch_shared_mc_addr; 323 323 uint64_t cleaner_shader_fence_mc_addr; 324 324 }; 325 325 ··· 385 383 uint32_t pipe_id; //used for mapping legacy kernel queue 386 384 uint32_t queue_id; 387 385 uint32_t alignment_mode_setting; 386 + uint32_t full_sh_mem_config_data; 388 387 }; 389 388 390 389 uint32_t max_dwords_in_api[API_FRAME_SIZE_IN_DWORDS]; ··· 675 672 uint32_t process_context_array_index; 676 673 677 674 uint32_t alignment_mode_setting; 675 + uint32_t full_sh_mem_config_data; 678 676 }; 679 677 680 678 uint32_t max_dwords_in_api[API_FRAME_SIZE_IN_DWORDS]; ··· 700 696 701 697 enum {MISC_DATA_MAX_SIZE_IN_DWORDS = 20}; 702 698 699 + /* 700 + * RRMT(Register Remapping Table), allow the firmware to modify the upper 701 + * address to correctly steer the register transaction to expected DIE 702 + */ 703 + struct RRMT_OPTION { 704 + union { 705 + struct { 706 + uint32_t mode : 4; 707 + uint32_t mid_die_id : 4; 708 + uint32_t xcd_die_id : 4; 709 + }; 710 + uint32_t all; 711 + }; 712 + }; 713 + 714 + 703 715 struct WRITE_REG { 704 - uint32_t reg_offset; 705 - uint32_t reg_value; 716 + uint32_t reg_offset; 717 + uint32_t reg_value; 718 + struct RRMT_OPTION rrmt_opt; 706 719 }; 707 720 708 721 struct READ_REG { ··· 732 711 } bits; 733 712 uint32_t all; 734 713 } option; 714 + struct RRMT_OPTION rrmt_opt; 735 715 }; 736 716 737 717 struct INV_GART { ··· 758 736 uint32_t mask; 759 737 uint32_t reg_offset1; 760 738 uint32_t reg_offset2; 739 + struct RRMT_OPTION rrmt_opt1; /* for reg1 */ 740 + struct RRMT_OPTION rrmt_opt2; /* for reg2 */ 761 741 }; 762 742 763 743 struct SET_SHADER_DEBUGGER {