On Mon, Oct 24, 2022 at 01:47:56PM +0000, Lee, Shawn C wrote:
> 
> On Monday, October 24, 2022 9:17 PM, Ville Syrjälä 
> <[email protected]> wrote:
> >On Mon, Oct 24, 2022 at 02:40:04PM +0800, Lee Shawn C wrote:
> >> Driver always apply panel power off cycle delay before eDP enable.
> >> If eDP display was enabled at pre-os stage, driver would always 
> >> trigger modeset to optimize cdclk setting after boot into kernel.
> >> So last_power_on and last_backlight_off value will be updated.
> >> 
> >> We can check last_power_on and last_backlight_off before insert panel 
> >> power cycle delay. If these values are the same, it means eDP was off 
> >> until now and driver should bypass this delay to save some times to 
> >> speed up eDP power on sequence.
> >> 
> >> Cc: Shankar Uma <[email protected]>
> >> Cc: Jani Nikula <[email protected]>
> >> Cc: Ville Syrjälä <[email protected]>
> >> Signed-off-by: Lee Shawn C <[email protected]>
> >> ---
> >>  drivers/gpu/drm/i915/display/intel_pps.c | 13 +++++++++++--
> >>  1 file changed, 11 insertions(+), 2 deletions(-)
> >> 
> >> diff --git a/drivers/gpu/drm/i915/display/intel_pps.c 
> >> b/drivers/gpu/drm/i915/display/intel_pps.c
> >> index 21944f5bf3a8..f3485a4fbfd0 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_pps.c
> >> +++ b/drivers/gpu/drm/i915/display/intel_pps.c
> >> @@ -509,6 +509,13 @@ static void wait_panel_power_cycle(struct intel_dp 
> >> *intel_dp)
> >>    ktime_t panel_power_on_time;
> >>    s64 panel_power_off_duration;
> >>  
> >> +  /* When last_power_on equal to last_backlight_off, it means driver did 
> >> not
> >> +   * turn on or off eDP panel so far.
> >
> >But someone else may have turned it off just before we were handed control, 
> >we have no idea. The pessimistic estimate is the safe one.
> 
> Thanks! It looks to me this situation should not be happpened. Right?

What situation? We have no idea when the panel was powered off, so we
have to make a pessimistic estimate.

> 
> >
> >Also I don't understand what this has to do with the story in the comit 
> >message. In that story you say eDP was already on, so the power cycle delay 
> >is not relevant at all. /me confused.
> >
> 
> I will modify commit messages and send patch v2 later.
> 
> Best regards,
> Shawn
> 
> >> So we can bypass power cycle delay to
> >> +   * save some times here.
> >> +   */
> >> +  if (intel_dp->pps.last_power_on == intel_dp->pps.last_backlight_off)
> >> +          return;
> >> +
> >>    drm_dbg_kms(&i915->drm, "Wait for panel power cycle\n");
> >>  
> >>    /* take the difference of current time and panel power off time @@ 
> >> -1098,9 +1105,11 @@ bool intel_pps_have_panel_power_or_vdd(struct 
> >> intel_dp *intel_dp)
> >>  
> >>  static void pps_init_timestamps(struct intel_dp *intel_dp)  {
> >> +  unsigned long tmp_jiffies = jiffies;
> >> +
> >>    intel_dp->pps.panel_power_off_time = ktime_get_boottime();
> >> -  intel_dp->pps.last_power_on = jiffies;
> >> -  intel_dp->pps.last_backlight_off = jiffies;
> >> +  intel_dp->pps.last_power_on = tmp_jiffies;
> >> +  intel_dp->pps.last_backlight_off = tmp_jiffies;
> >>  }
> >>  
> >>  static void
> >> --
> >> 2.17.1
> >
> >--
> >Ville Syrjälä
> >Intel
> >

-- 
Ville Syrjälä
Intel

Reply via email to