On Wednesday, November 16, 2022 11:45 PM, Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> wrote: >On Mon, 14 Nov 2022, Lee Shawn C <shawn.c.lee@xxxxxxxxx> wrote: >> After i915 dirver initialized, a panel power off cycle delay always >> append before turn eDP on. If eDP display did not power on before. >> With this change, power off duration might longer than power cycle >> delay. So driver can save power cycle delay to speed up driver >> initialization time. >> >> v2: fix commit messages >> v3: refine panel_power_off_time default value and modify >> commit messages >> v4: add eDP power off cycle delay at the path to unload i915 module >> >> Cc: Shankar Uma <uma.shankar@xxxxxxxxx> >> Cc: Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> >> Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> >> Signed-off-by: Lee Shawn C <shawn.c.lee@xxxxxxxxx> >> --- >> drivers/gpu/drm/i915/display/intel_pps.c | 2 +- >> drivers/gpu/drm/i915/i915_driver.c | 4 ++++ >> 2 files changed, 5 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/i915/display/intel_pps.c >> b/drivers/gpu/drm/i915/display/intel_pps.c >> index 81ee7f3aadf6..ab4118b38120 100644 >> --- a/drivers/gpu/drm/i915/display/intel_pps.c >> +++ b/drivers/gpu/drm/i915/display/intel_pps.c >> @@ -1100,7 +1100,7 @@ bool intel_pps_have_panel_power_or_vdd(struct >> intel_dp *intel_dp) >> >> static void pps_init_timestamps(struct intel_dp *intel_dp) { >> - intel_dp->pps.panel_power_off_time = ktime_get_boottime(); >> + intel_dp->pps.panel_power_off_time = 0; >> intel_dp->pps.last_power_on = jiffies; >> intel_dp->pps.last_backlight_off = jiffies; } diff --git >> a/drivers/gpu/drm/i915/i915_driver.c >> b/drivers/gpu/drm/i915/i915_driver.c >> index c3d43f9b1e45..0e3cbd129055 100644 >> --- a/drivers/gpu/drm/i915/i915_driver.c >> +++ b/drivers/gpu/drm/i915/i915_driver.c >> @@ -107,6 +107,8 @@ static const char irst_name[] = "INT3392"; >> >> static const struct drm_driver i915_drm_driver; >> >> +static void intel_shutdown_encoders(struct drm_i915_private >> +*dev_priv); >> + >> static void i915_release_bridge_dev(struct drm_device *dev, >> void *bridge) >> { >> @@ -796,6 +798,8 @@ static void i915_driver_unregister(struct >> drm_i915_private *dev_priv) >> >> intel_display_driver_unregister(dev_priv); >> >> + intel_shutdown_encoders(dev_priv); >> + > >Per Ville's comments on IRC, this is still too early. See [1] for another approach. > >BR, >Jani. > Thank you! I've tested this patch and it works properly. Detail kernel log is attached on [2]. Please help to review and merge that patch ASAP. Best regards, Shawn > >[1] https://patchwork.freedesktop.org/patch/msgid/20221116150657.1347504-1-jani.nikula@xxxxxxxxx [2] https://gitlab.freedesktop.org/drm/intel/-/issues/7417#note_1643009 > > >> for_each_gt(gt, dev_priv, i) >> intel_gt_driver_unregister(gt); > >-- >Jani Nikula, Intel Open Source Graphics Center