drm/amd/display: Error print when ATOM BIOS implementation is missing
authorHarry Wentland <harry.wentland@amd.com>
Mon, 27 Nov 2017 14:50:01 +0000 (09:50 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 20 Dec 2017 19:45:58 +0000 (14:45 -0500)
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>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/bios/command_table.c
drivers/gpu/drm/amd/display/dc/bios/command_table2.c

index 3f7b2da..1aefed8 100644 (file)
@@ -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;
        }
index ba68693..946db12 100644 (file)
@@ -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;
        }