From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 80/89] drm/i915/skl: Augment the latency debugfs files for SKL Date: Fri, 19 Sep 2014 13:53:31 +0300 Message-ID: <20140919105331.GI12416@intel.com> References: <1409830075-11139-1-git-send-email-damien.lespiau@intel.com> <1409830075-11139-81-git-send-email-damien.lespiau@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 4A11D6E14B for ; Fri, 19 Sep 2014 03:53:36 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1409830075-11139-81-git-send-email-damien.lespiau@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Damien Lespiau Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Thu, Sep 04, 2014 at 12:27:46PM +0100, Damien Lespiau wrote: > Signed-off-by: Damien Lespiau > --- > drivers/gpu/drm/i915/i915_debugfs.c | 76 ++++++++++++++++++++++++++++++-= ------ > 1 file changed, 62 insertions(+), 14 deletions(-) > = > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i= 915_debugfs.c > index 02cb310..1520d1f 100644 > --- a/drivers/gpu/drm/i915/i915_debugfs.c > +++ b/drivers/gpu/drm/i915/i915_debugfs.c > @@ -3499,7 +3499,7 @@ static const struct file_operations i915_display_cr= c_ctl_fops =3D { > .write =3D display_crc_ctl_write > }; > = > -static void wm_latency_show(struct seq_file *m, const uint16_t wm[5]) > +static void wm_latency_show(struct seq_file *m, const uint16_t wm[8]) > { > struct drm_device *dev =3D m->private; > int num_levels =3D ilk_wm_max_level(dev) + 1; > @@ -3510,13 +3510,17 @@ static void wm_latency_show(struct seq_file *m, c= onst uint16_t wm[5]) > for (level =3D 0; level < num_levels; level++) { > unsigned int latency =3D wm[level]; > = > - /* WM1+ latency values in 0.5us units */ > - if (level > 0) > + /* > + * - WM1+ latency values in 0.5us units > + * - latencies are in us on gen9 > + */ > + if (IS_GEN9(dev)) gen >=3D 9 here to perhaps? Apart from that it looks ok to me. Reviewed-by: Ville Syrj=E4l=E4 > + latency *=3D 10; > + else if (level > 0) > latency *=3D 5; > = > seq_printf(m, "WM%d %u (%u.%u usec)\n", > - level, wm[level], > - latency / 10, latency % 10); > + level, wm[level], latency / 10, latency % 10); > } > = > drm_modeset_unlock_all(dev); > @@ -3525,8 +3529,15 @@ static void wm_latency_show(struct seq_file *m, co= nst uint16_t wm[5]) > static int pri_wm_latency_show(struct seq_file *m, void *data) > { > struct drm_device *dev =3D m->private; > + struct drm_i915_private *dev_priv =3D dev->dev_private; > + const uint16_t *latencies; > + > + if (INTEL_INFO(dev)->gen >=3D 9) > + latencies =3D dev_priv->wm.skl_latency; > + else > + latencies =3D to_i915(dev)->wm.pri_latency; > = > - wm_latency_show(m, to_i915(dev)->wm.pri_latency); > + wm_latency_show(m, latencies); > = > return 0; > } > @@ -3534,8 +3545,15 @@ static int pri_wm_latency_show(struct seq_file *m,= void *data) > static int spr_wm_latency_show(struct seq_file *m, void *data) > { > struct drm_device *dev =3D m->private; > + struct drm_i915_private *dev_priv =3D dev->dev_private; > + const uint16_t *latencies; > + > + if (INTEL_INFO(dev)->gen >=3D 9) > + latencies =3D dev_priv->wm.skl_latency; > + else > + latencies =3D to_i915(dev)->wm.spr_latency; > = > - wm_latency_show(m, to_i915(dev)->wm.spr_latency); > + wm_latency_show(m, latencies); > = > return 0; > } > @@ -3543,8 +3561,15 @@ static int spr_wm_latency_show(struct seq_file *m,= void *data) > static int cur_wm_latency_show(struct seq_file *m, void *data) > { > struct drm_device *dev =3D m->private; > + struct drm_i915_private *dev_priv =3D dev->dev_private; > + const uint16_t *latencies; > + > + if (INTEL_INFO(dev)->gen >=3D 9) > + latencies =3D dev_priv->wm.skl_latency; > + else > + latencies =3D to_i915(dev)->wm.cur_latency; > = > - wm_latency_show(m, to_i915(dev)->wm.cur_latency); > + wm_latency_show(m, latencies); > = > return 0; > } > @@ -3580,11 +3605,11 @@ static int cur_wm_latency_open(struct inode *inod= e, struct file *file) > } > = > static ssize_t wm_latency_write(struct file *file, const char __user *ub= uf, > - size_t len, loff_t *offp, uint16_t wm[5]) > + size_t len, loff_t *offp, uint16_t wm[8]) > { > struct seq_file *m =3D file->private_data; > struct drm_device *dev =3D m->private; > - uint16_t new[5] =3D { 0 }; > + uint16_t new[8] =3D { 0 }; > int num_levels =3D ilk_wm_max_level(dev) + 1; > int level; > int ret; > @@ -3598,7 +3623,9 @@ static ssize_t wm_latency_write(struct file *file, = const char __user *ubuf, > = > tmp[len] =3D '\0'; > = > - ret =3D sscanf(tmp, "%hu %hu %hu %hu %hu", &new[0], &new[1], &new[2], &= new[3], &new[4]); > + ret =3D sscanf(tmp, "%hu %hu %hu %hu %hu %hu %hu %hu", > + &new[0], &new[1], &new[2], &new[3], > + &new[4], &new[5], &new[6], &new[7]); > if (ret !=3D num_levels) > return -EINVAL; > = > @@ -3618,8 +3645,15 @@ static ssize_t pri_wm_latency_write(struct file *f= ile, const char __user *ubuf, > { > struct seq_file *m =3D file->private_data; > struct drm_device *dev =3D m->private; > + struct drm_i915_private *dev_priv =3D dev->dev_private; > + uint16_t *latencies; > = > - return wm_latency_write(file, ubuf, len, offp, to_i915(dev)->wm.pri_lat= ency); > + if (INTEL_INFO(dev)->gen >=3D 9) > + latencies =3D dev_priv->wm.skl_latency; > + else > + latencies =3D to_i915(dev)->wm.pri_latency; > + > + return wm_latency_write(file, ubuf, len, offp, latencies); > } > = > static ssize_t spr_wm_latency_write(struct file *file, const char __user= *ubuf, > @@ -3627,8 +3661,15 @@ static ssize_t spr_wm_latency_write(struct file *f= ile, const char __user *ubuf, > { > struct seq_file *m =3D file->private_data; > struct drm_device *dev =3D m->private; > + struct drm_i915_private *dev_priv =3D dev->dev_private; > + uint16_t *latencies; > = > - return wm_latency_write(file, ubuf, len, offp, to_i915(dev)->wm.spr_lat= ency); > + if (INTEL_INFO(dev)->gen >=3D 9) > + latencies =3D dev_priv->wm.skl_latency; > + else > + latencies =3D to_i915(dev)->wm.spr_latency; > + > + return wm_latency_write(file, ubuf, len, offp, latencies); > } > = > static ssize_t cur_wm_latency_write(struct file *file, const char __user= *ubuf, > @@ -3636,8 +3677,15 @@ static ssize_t cur_wm_latency_write(struct file *f= ile, const char __user *ubuf, > { > struct seq_file *m =3D file->private_data; > struct drm_device *dev =3D m->private; > + struct drm_i915_private *dev_priv =3D dev->dev_private; > + uint16_t *latencies; > + > + if (INTEL_INFO(dev)->gen >=3D 9) > + latencies =3D dev_priv->wm.skl_latency; > + else > + latencies =3D to_i915(dev)->wm.cur_latency; > = > - return wm_latency_write(file, ubuf, len, offp, to_i915(dev)->wm.cur_lat= ency); > + return wm_latency_write(file, ubuf, len, offp, latencies); > } > = > static const struct file_operations i915_pri_wm_latency_fops =3D { > -- = > 1.8.3.1 > = > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- = Ville Syrj=E4l=E4 Intel OTC