diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2998-drm-amd-display-Error-print-when-ATOM-BIOS-implement.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2998-drm-amd-display-Error-print-when-ATOM-BIOS-implement.patch | 201 |
1 files changed, 201 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2998-drm-amd-display-Error-print-when-ATOM-BIOS-implement.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2998-drm-amd-display-Error-print-when-ATOM-BIOS-implement.patch new file mode 100644 index 00000000..cf87999f --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2998-drm-amd-display-Error-print-when-ATOM-BIOS-implement.patch @@ -0,0 +1,201 @@ +From 15c17a786e6dfc0db28eb10a6d2a09cebb3edaea Mon Sep 17 00:00:00 2001 +From: Harry Wentland <harry.wentland@amd.com> +Date: Mon, 27 Nov 2017 09:50:01 -0500 +Subject: [PATCH 2998/4131] drm/amd/display: Error print when ATOM BIOS + implementation is missing + +We fail apply_ctx_to_hw when crtc_source_select is missing. This isn't +really helpful at this point. It would aid ASIC bringup if we log an error +when we can't find the implementation for the ATOM version. + +Do the same for all other function points in the command table that do a +NULL check before being called. + +Signed-off-by: Harry Wentland <harry.wentland@amd.com> +Reviewed-by: Roman Li <Roman.Li@amd.com> +Reviewed-by: Jordan Lazare <Jordan.Lazare@amd.com> +Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> +Acked-by: Harry Wentland <harry.wentland@amd.com> +--- + drivers/gpu/drm/amd/display/dc/bios/command_table.c | 21 +++++++++++++++++++++ + .../gpu/drm/amd/display/dc/bios/command_table2.c | 13 +++++++++++++ + 2 files changed, 34 insertions(+) + +diff --git a/drivers/gpu/drm/amd/display/dc/bios/command_table.c b/drivers/gpu/drm/amd/display/dc/bios/command_table.c +index 3f7b2da..1aefed8 100644 +--- a/drivers/gpu/drm/amd/display/dc/bios/command_table.c ++++ b/drivers/gpu/drm/amd/display/dc/bios/command_table.c +@@ -387,6 +387,7 @@ static void init_transmitter_control(struct bios_parser *bp) + bp->cmd_tbl.transmitter_control = transmitter_control_v1_6; + break; + default: ++ dm_error("Don't have transmitter_control for v%d\n", crev); + bp->cmd_tbl.transmitter_control = NULL; + break; + } +@@ -910,6 +911,8 @@ static void init_set_pixel_clock(struct bios_parser *bp) + bp->cmd_tbl.set_pixel_clock = set_pixel_clock_v7; + break; + default: ++ dm_error("Don't have set_pixel_clock for v%d\n", ++ BIOS_CMD_TABLE_PARA_REVISION(SetPixelClock)); + bp->cmd_tbl.set_pixel_clock = NULL; + break; + } +@@ -1227,6 +1230,8 @@ static void init_enable_spread_spectrum_on_ppll(struct bios_parser *bp) + enable_spread_spectrum_on_ppll_v3; + break; + default: ++ dm_error("Don't have enable_spread_spectrum_on_ppll for v%d\n", ++ BIOS_CMD_TABLE_PARA_REVISION(EnableSpreadSpectrumOnPPLL)); + bp->cmd_tbl.enable_spread_spectrum_on_ppll = NULL; + break; + } +@@ -1422,6 +1427,8 @@ static void init_adjust_display_pll(struct bios_parser *bp) + bp->cmd_tbl.adjust_display_pll = adjust_display_pll_v3; + break; + default: ++ dm_error("Don't have adjust_display_pll for v%d\n", ++ BIOS_CMD_TABLE_PARA_REVISION(AdjustDisplayPll)); + bp->cmd_tbl.adjust_display_pll = NULL; + break; + } +@@ -1695,6 +1702,8 @@ static void init_set_crtc_timing(struct bios_parser *bp) + set_crtc_using_dtd_timing_v3; + break; + default: ++ dm_error("Don't have set_crtc_timing for dtd v%d\n", ++ dtd_version); + bp->cmd_tbl.set_crtc_timing = NULL; + break; + } +@@ -1704,6 +1713,8 @@ static void init_set_crtc_timing(struct bios_parser *bp) + bp->cmd_tbl.set_crtc_timing = set_crtc_timing_v1; + break; + default: ++ dm_error("Don't have set_crtc_timing for v%d\n", ++ BIOS_CMD_TABLE_PARA_REVISION(SetCRTC_Timing)); + bp->cmd_tbl.set_crtc_timing = NULL; + break; + } +@@ -1890,6 +1901,8 @@ static void init_select_crtc_source(struct bios_parser *bp) + bp->cmd_tbl.select_crtc_source = select_crtc_source_v3; + break; + default: ++ dm_error("Don't select_crtc_source enable_crtc for v%d\n", ++ BIOS_CMD_TABLE_PARA_REVISION(SelectCRTC_Source)); + bp->cmd_tbl.select_crtc_source = NULL; + break; + } +@@ -1997,6 +2010,8 @@ static void init_enable_crtc(struct bios_parser *bp) + bp->cmd_tbl.enable_crtc = enable_crtc_v1; + break; + default: ++ dm_error("Don't have enable_crtc for v%d\n", ++ BIOS_CMD_TABLE_PARA_REVISION(EnableCRTC)); + bp->cmd_tbl.enable_crtc = NULL; + break; + } +@@ -2103,6 +2118,8 @@ static void init_program_clock(struct bios_parser *bp) + bp->cmd_tbl.program_clock = program_clock_v6; + break; + default: ++ dm_error("Don't have program_clock for v%d\n", ++ BIOS_CMD_TABLE_PARA_REVISION(SetPixelClock)); + bp->cmd_tbl.program_clock = NULL; + break; + } +@@ -2324,6 +2341,8 @@ static void init_enable_disp_power_gating( + enable_disp_power_gating_v2_1; + break; + default: ++ dm_error("Don't enable_disp_power_gating enable_crtc for v%d\n", ++ BIOS_CMD_TABLE_PARA_REVISION(EnableDispPowerGating)); + bp->cmd_tbl.enable_disp_power_gating = NULL; + break; + } +@@ -2371,6 +2390,8 @@ static void init_set_dce_clock(struct bios_parser *bp) + bp->cmd_tbl.set_dce_clock = set_dce_clock_v2_1; + break; + default: ++ dm_error("Don't have set_dce_clock for v%d\n", ++ BIOS_CMD_TABLE_PARA_REVISION(SetDCEClock)); + bp->cmd_tbl.set_dce_clock = NULL; + break; + } +diff --git a/drivers/gpu/drm/amd/display/dc/bios/command_table2.c b/drivers/gpu/drm/amd/display/dc/bios/command_table2.c +index ba68693..946db12 100644 +--- a/drivers/gpu/drm/amd/display/dc/bios/command_table2.c ++++ b/drivers/gpu/drm/amd/display/dc/bios/command_table2.c +@@ -118,6 +118,7 @@ static void init_dig_encoder_control(struct bios_parser *bp) + bp->cmd_tbl.dig_encoder_control = encoder_control_digx_v1_5; + break; + default: ++ dm_error("Don't have dig_encoder_control for v%d\n", version); + bp->cmd_tbl.dig_encoder_control = NULL; + break; + } +@@ -205,6 +206,7 @@ static void init_transmitter_control(struct bios_parser *bp) + bp->cmd_tbl.transmitter_control = transmitter_control_v1_6; + break; + default: ++ dm_error("Don't have transmitter_control for v%d\n", crev); + bp->cmd_tbl.transmitter_control = NULL; + break; + } +@@ -268,6 +270,8 @@ static void init_set_pixel_clock(struct bios_parser *bp) + bp->cmd_tbl.set_pixel_clock = set_pixel_clock_v7; + break; + default: ++ dm_error("Don't have set_pixel_clock for v%d\n", ++ BIOS_CMD_TABLE_PARA_REVISION(setpixelclock)); + bp->cmd_tbl.set_pixel_clock = NULL; + break; + } +@@ -379,6 +383,7 @@ static void init_set_crtc_timing(struct bios_parser *bp) + set_crtc_using_dtd_timing_v3; + break; + default: ++ dm_error("Don't have set_crtc_timing for v%d\n", dtd_version); + bp->cmd_tbl.set_crtc_timing = NULL; + break; + } +@@ -498,6 +503,8 @@ static void init_select_crtc_source(struct bios_parser *bp) + bp->cmd_tbl.select_crtc_source = select_crtc_source_v3; + break; + default: ++ dm_error("Don't select_crtc_source enable_crtc for v%d\n", ++ BIOS_CMD_TABLE_PARA_REVISION(selectcrtc_source)); + bp->cmd_tbl.select_crtc_source = NULL; + break; + } +@@ -565,6 +572,8 @@ static void init_enable_crtc(struct bios_parser *bp) + bp->cmd_tbl.enable_crtc = enable_crtc_v1; + break; + default: ++ dm_error("Don't have enable_crtc for v%d\n", ++ BIOS_CMD_TABLE_PARA_REVISION(enablecrtc)); + bp->cmd_tbl.enable_crtc = NULL; + break; + } +@@ -661,6 +670,8 @@ static void init_enable_disp_power_gating( + enable_disp_power_gating_v2_1; + break; + default: ++ dm_error("Don't enable_disp_power_gating enable_crtc for v%d\n", ++ BIOS_CMD_TABLE_PARA_REVISION(enabledisppowergating)); + bp->cmd_tbl.enable_disp_power_gating = NULL; + break; + } +@@ -710,6 +721,8 @@ static void init_set_dce_clock(struct bios_parser *bp) + bp->cmd_tbl.set_dce_clock = set_dce_clock_v2_1; + break; + default: ++ dm_error("Don't have set_dce_clock for v%d\n", ++ BIOS_CMD_TABLE_PARA_REVISION(setdceclock)); + bp->cmd_tbl.set_dce_clock = NULL; + break; + } +-- +2.7.4 + |