<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{mso-style-priority:99;
mso-style-link:"Plain Text Char";
margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
span.PlainTextChar
{mso-style-name:"Plain Text Char";
mso-style-priority:99;
mso-style-link:"Plain Text";
font-family:"Calibri",sans-serif;}
span.EmailStyle19
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoPlainText">This is for Chrome os perspective which is using upstream kernel. We have S3 suspend and resume time limit of 1sec.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Currently suspend of i915 driver takes 280ms and resume takes 600ms. To make resume faster and also follow edp spec this patch will move<o:p></o:p></p>
<p class="MsoPlainText">Half of t12 time from resume path to suspend path. <o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Will take care of comment in next patchset.<o:p></o:p></p>
<p class="MsoPlainText"><img width="1572" height="483" id="Picture_x0020_1" src="cid:image001.png@01D130F9.DFFC0300"><o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><a name="_MailEndCompose"><o:p> </o:p></a></p>
<p class="MsoPlainText">-----Original Message-----<br>
From: Paulo Zanoni [mailto:przanoni@gmail.com] <br>
Sent: Monday, December 7, 2015 12:52 PM<br>
To: Kumar, Abhay<br>
Cc: Intel Graphics Development<br>
Subject: Re: [Intel-gfx] [PATCH] drm/i915: Suspend resume timing optimization.</p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">2015-12-07 18:28 GMT-02:00 <<a href="mailto:abhay.kumar@intel.com"><span style="color:windowtext;text-decoration:none">abhay.kumar@intel.com</span></a>>:<o:p></o:p></p>
<p class="MsoPlainText">> From: Abhay Kumar <<a href="mailto:abhay.kumar@intel.com"><span style="color:windowtext;text-decoration:none">abhay.kumar@intel.com</span></a>><o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> Moving 250ms from T12 timing to suspend path so that resume path will
<o:p></o:p></p>
<p class="MsoPlainText">> be faster.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Can you please elaborate more on your motivation for this patch? I'm a little confused. You're trying to make resume faster by making suspend slower? What are your main arguments for this?<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> Signed-off-by: Abhay Kumar <<a href="mailto:abhay.kumar@intel.com"><span style="color:windowtext;text-decoration:none">abhay.kumar@intel.com</span></a>><o:p></o:p></p>
<p class="MsoPlainText">> ---<o:p></o:p></p>
<p class="MsoPlainText">> drivers/gpu/drm/i915/intel_ddi.c | 6 ++++++<o:p></o:p></p>
<p class="MsoPlainText">> 1 file changed, 6 insertions(+)<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> diff --git a/drivers/gpu/drm/i915/intel_ddi.c <o:p></o:p></p>
<p class="MsoPlainText">> b/drivers/gpu/drm/i915/intel_ddi.c<o:p></o:p></p>
<p class="MsoPlainText">> index 7f618cf..2679c9e 100644<o:p></o:p></p>
<p class="MsoPlainText">> --- a/drivers/gpu/drm/i915/intel_ddi.c<o:p></o:p></p>
<p class="MsoPlainText">> +++ b/drivers/gpu/drm/i915/intel_ddi.c<o:p></o:p></p>
<p class="MsoPlainText">> @@ -2389,6 +2389,12 @@ static void intel_ddi_post_disable(struct
<o:p></o:p></p>
<p class="MsoPlainText">> intel_encoder *intel_encoder)<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Funcion intel_ddi_post_disable() doesn't only run on suspend situations, yet your commit message suggests you're optimizing suspend. Maybe this commit makes non-suspend modesets slower because now we need to wait the panel power cycle
earlier? Have you measured the possible downsides?<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">> intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF);<o:p></o:p></p>
<p class="MsoPlainText">> intel_edp_panel_vdd_on(intel_dp);<o:p></o:p></p>
<p class="MsoPlainText">> intel_edp_panel_off(intel_dp);<o:p></o:p></p>
<p class="MsoPlainText">> +<o:p></o:p></p>
<p class="MsoPlainText">> + /* Give additional delay of 250 ms so that resume time will<o:p></o:p></p>
<p class="MsoPlainText">> + be faster and also meets T12 delay.<o:p></o:p></p>
<p class="MsoPlainText">> + */<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">The comment says 250ms, but the code doesn't. Also, there's a missing '*' char in the comment.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">> + wait_remaining_ms_from_jiffies(intel_dp->last_power_cycle,<o:p></o:p></p>
<p class="MsoPlainText">> + <o:p></o:p></p>
<p class="MsoPlainText">> + (intel_dp->panel_power_cycle_delay/2));<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Why wait half the panel power cycle? Why did you choose exactly this value?<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Thanks,<o:p></o:p></p>
<p class="MsoPlainText">Paulo<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">> }<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> if (IS_SKYLAKE(dev) || IS_KABYLAKE(dev))<o:p></o:p></p>
<p class="MsoPlainText">> --<o:p></o:p></p>
<p class="MsoPlainText">> 1.9.1<o:p></o:p></p>
<p class="MsoPlainText">><o:p> </o:p></p>
<p class="MsoPlainText">> _______________________________________________<o:p></o:p></p>
<p class="MsoPlainText">> Intel-gfx mailing list<o:p></o:p></p>
<p class="MsoPlainText">> <a href="mailto:Intel-gfx@lists.freedesktop.org"><span style="color:windowtext;text-decoration:none">Intel-gfx@lists.freedesktop.org</span></a><o:p></o:p></p>
<p class="MsoPlainText">> <a href="http://lists.freedesktop.org/mailman/listinfo/intel-gfx">
<span style="color:windowtext;text-decoration:none">http://lists.freedesktop.org/mailman/listinfo/intel-gfx</span></a><o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">--<o:p></o:p></p>
<p class="MsoPlainText">Paulo Zanoni<o:p></o:p></p>
</div>
</body>
</html>