aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/amd/display/dc/hubbub/dcn20/dcn20_hubbub.c27
-rw-r--r--drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h9
2 files changed, 32 insertions, 4 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/hubbub/dcn20/dcn20_hubbub.c b/drivers/gpu/drm/amd/display/dc/hubbub/dcn20/dcn20_hubbub.c
index c6f859871d11..8901bd80f7d1 100644
--- a/drivers/gpu/drm/amd/display/dc/hubbub/dcn20/dcn20_hubbub.c
+++ b/drivers/gpu/drm/amd/display/dc/hubbub/dcn20/dcn20_hubbub.c
@@ -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;
}
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h b/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
index 1511400fc56b..a73cb8f731b3 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
@@ -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 {