Commit 4002a6c5 authored by Chris Park's avatar Chris Park Committed by Alex Deucher

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: default avatarAlvin Lee <alvin.lee2@amd.com>
Acked-by: default avatarZaeem Mohamed <zaeem.mohamed@amd.com>
Signed-off-by: default avatarChris Park <chris.park@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent e902dd7f
...@@ -339,15 +339,36 @@ static enum dcn_hubbub_page_table_block_size page_table_block_size_to_hw(unsigne ...@@ -339,15 +339,36 @@ static enum dcn_hubbub_page_table_block_size page_table_block_size_to_hw(unsigne
case 4096: case 4096:
block_size = DCN_PAGE_TABLE_BLOCK_SIZE_4KB; block_size = DCN_PAGE_TABLE_BLOCK_SIZE_4KB;
break; break;
case 65536: case 8192:
block_size = DCN_PAGE_TABLE_BLOCK_SIZE_64KB; block_size = DCN_PAGE_TABLE_BLOCK_SIZE_8KB;
break;
case 16384:
block_size = DCN_PAGE_TABLE_BLOCK_SIZE_16KB;
break; break;
case 32768: case 32768:
block_size = DCN_PAGE_TABLE_BLOCK_SIZE_32KB; block_size = DCN_PAGE_TABLE_BLOCK_SIZE_32KB;
break; 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: default:
ASSERT(false); ASSERT(false);
block_size = page_table_block_size; block_size = DCN_PAGE_TABLE_BLOCK_SIZE_4KB;
break; break;
} }
......
...@@ -74,8 +74,15 @@ enum dcn_hubbub_page_table_depth { ...@@ -74,8 +74,15 @@ enum dcn_hubbub_page_table_depth {
enum dcn_hubbub_page_table_block_size { enum dcn_hubbub_page_table_block_size {
DCN_PAGE_TABLE_BLOCK_SIZE_4KB = 0, 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_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 { struct dcn_hubbub_phys_addr_config {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment