bdk: display: reduce display off waiting time
And align oled panel inside vblank. Assumes display deinit happens before the rest of deinit.
This commit is contained in:
@@ -694,8 +694,8 @@ static void _display_panel_and_hw_end(bool no_panel_deinit)
|
||||
DSI(DSI_WR_DATA) = (MIPI_DCS_SET_DISPLAY_OFF << 8) | MIPI_DSI_DCS_SHORT_WRITE;
|
||||
|
||||
// Wait for 5 frames (HOST1X_CH0_SYNC_SYNCPT_9).
|
||||
// Not here. Wait for 1 frame manually.
|
||||
usleep(20000);
|
||||
// Not here. Wait for 1 frame + transmission manually.
|
||||
usleep((_panel_id == PANEL_SAM_AMS699VC01) ? (15933 + 195) : (16666 + 230));
|
||||
|
||||
// Propagate changes to all register buffers and disable host cmd packets during video.
|
||||
DISPLAY_A(DC_CMD_STATE_ACCESS) = READ_MUX_ACTIVE | WRITE_MUX_ACTIVE;
|
||||
|
||||
@@ -470,7 +470,12 @@ void hw_init()
|
||||
|
||||
void hw_deinit(bool keep_display)
|
||||
{
|
||||
bool tegra_t210 = hw_get_chip_id() == GP_HIDREV_MAJOR_T210;
|
||||
// Seamless display or display power off.
|
||||
if (!keep_display)
|
||||
{
|
||||
display_end();
|
||||
clock_disable_host1x();
|
||||
}
|
||||
|
||||
// Scale down BPMP clock.
|
||||
bpmp_clk_rate_set(BPMP_CLK_NORMAL);
|
||||
@@ -495,16 +500,9 @@ void hw_deinit(bool keep_display)
|
||||
hw_config_arbiter(true);
|
||||
|
||||
// Re-enable clocks to Audio Processing Engine as a workaround to rerunning mbist war.
|
||||
if (tegra_t210)
|
||||
if (hw_get_chip_id() == GP_HIDREV_MAJOR_T210)
|
||||
{
|
||||
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_V_SET) = BIT(CLK_V_AHUB);
|
||||
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_Y_SET) = BIT(CLK_Y_APE);
|
||||
}
|
||||
|
||||
// Seamless display or display power off.
|
||||
if (!keep_display)
|
||||
{
|
||||
display_end();
|
||||
clock_disable_host1x();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user