drm/amd/display: Support new VA page table block size

[Why]
Page table definition increased up to 2MB.

[How]
Define new use case of page table for VA.

Reviewed-by: Alvin Lee <alvin.lee2@amd.com>
Acked-by: Zaeem Mohamed <zaeem.mohamed@amd.com>
Signed-off-by: Chris Park <chris.park@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Chris Park 2024-05-14 13:55:18 -04:00 committed by Alex Deucher
parent e902dd7f3e
commit 4002a6c55e
2 changed files with 32 additions and 4 deletions

View File

@ -339,15 +339,36 @@ static enum dcn_hubbub_page_table_block_size page_table_block_size_to_hw(unsigne
case 4096:
block_size = DCN_PAGE_TABLE_BLOCK_SIZE_4KB;
break;
case 65536:
block_size = DCN_PAGE_TABLE_BLOCK_SIZE_64KB;
case 8192:
block_size = DCN_PAGE_TABLE_BLOCK_SIZE_8KB;
break;
case 16384:
block_size = DCN_PAGE_TABLE_BLOCK_SIZE_16KB;
break;
case 32768:
block_size = DCN_PAGE_TABLE_BLOCK_SIZE_32KB;
break;
case 65536:
block_size = DCN_PAGE_TABLE_BLOCK_SIZE_64KB;
break;
case 131072:
block_size = DCN_PAGE_TABLE_BLOCK_SIZE_128KB;
break;
case 262144:
block_size = DCN_PAGE_TABLE_BLOCK_SIZE_256KB;
break;
case 524288:
block_size = DCN_PAGE_TABLE_BLOCK_SIZE_512KB;
break;
case 1048576:
block_size = DCN_PAGE_TABLE_BLOCK_SIZE_1024KB;
break;
case 2097152:
block_size = DCN_PAGE_TABLE_BLOCK_SIZE_2048KB;
break;
default:
ASSERT(false);
block_size = page_table_block_size;
block_size = DCN_PAGE_TABLE_BLOCK_SIZE_4KB;
break;
}

View File

@ -74,8 +74,15 @@ enum dcn_hubbub_page_table_depth {
enum dcn_hubbub_page_table_block_size {
DCN_PAGE_TABLE_BLOCK_SIZE_4KB = 0,
DCN_PAGE_TABLE_BLOCK_SIZE_8KB = 1,
DCN_PAGE_TABLE_BLOCK_SIZE_16KB = 2,
DCN_PAGE_TABLE_BLOCK_SIZE_32KB = 3,
DCN_PAGE_TABLE_BLOCK_SIZE_64KB = 4,
DCN_PAGE_TABLE_BLOCK_SIZE_32KB = 3
DCN_PAGE_TABLE_BLOCK_SIZE_128KB = 5,
DCN_PAGE_TABLE_BLOCK_SIZE_256KB = 6,
DCN_PAGE_TABLE_BLOCK_SIZE_512KB = 7,
DCN_PAGE_TABLE_BLOCK_SIZE_1024KB = 8,
DCN_PAGE_TABLE_BLOCK_SIZE_2048KB = 9
};
struct dcn_hubbub_phys_addr_config {