From: Mario Kleiner <mario.kleiner.de@gmail.com>
To: Daniel Vetter <daniel.vetter@ffwll.ch>,
DRI Development <dri-devel@lists.freedesktop.org>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Subject: Re: [PATCH 3/4] drm: Simplify return value of drm_get_last_vbltimestamp
Date: Thu, 11 Sep 2014 13:28:23 +0200 [thread overview]
Message-ID: <54118757.7030506@gmail.com> (raw)
In-Reply-To: <1410363371-11282-3-git-send-email-daniel.vetter@ffwll.ch>
On 09/10/2014 05:36 PM, Daniel Vetter wrote:
> Imo u32 hints at a register value, but in reality all callers only
> care whether the sampled timestamp is precise or not. So give them
> just a bool.
>
> Also move the declaration out of drmP.h, it's only used in drm_irq.c.
All good. Maybe then also remove
EXPORT_SYMBOL(drm_get_last_vbltimestamp);
in this patch if the method is now static to drm_irq.c ? Up to you.
For all 4 patches...
Reviewed-by: Mario Kleiner <mario.kleiner.de@gmail.com>
-mario
> Cc: Mario Kleiner <mario.kleiner.de@gmail.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
> drivers/gpu/drm/drm_irq.c | 24 +++++++++++++++---------
> include/drm/drmP.h | 2 --
> 2 files changed, 15 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
> index 922721ead29a..b16f0bcef959 100644
> --- a/drivers/gpu/drm/drm_irq.c
> +++ b/drivers/gpu/drm/drm_irq.c
> @@ -70,6 +70,10 @@ module_param_named(vblankoffdelay, drm_vblank_offdelay, int, 0600);
> module_param_named(timestamp_precision_usec, drm_timestamp_precision, int, 0600);
> module_param_named(timestamp_monotonic, drm_timestamp_monotonic, int, 0600);
>
> +static bool
> +drm_get_last_vbltimestamp(struct drm_device *dev, int crtc,
> + struct timeval *tvblank, unsigned flags);
> +
> /**
> * drm_update_vblank_count - update the master vblank counter
> * @dev: DRM device
> @@ -89,7 +93,8 @@ module_param_named(timestamp_monotonic, drm_timestamp_monotonic, int, 0600);
> static void drm_update_vblank_count(struct drm_device *dev, int crtc)
> {
> struct drm_vblank_crtc *vblank = &dev->vblank[crtc];
> - u32 cur_vblank, diff, tslot, rc;
> + u32 cur_vblank, diff, tslot;
> + bool rc;
> struct timeval t_vblank;
>
> /*
> @@ -147,7 +152,7 @@ static void vblank_disable_and_save(struct drm_device *dev, int crtc)
> unsigned long irqflags;
> u32 vblcount;
> s64 diff_ns;
> - int vblrc;
> + bool vblrc;
> struct timeval tvblank;
> int count = DRM_TIMESTAMP_MAXRETRIES;
>
> @@ -171,7 +176,7 @@ static void vblank_disable_and_save(struct drm_device *dev, int crtc)
> * vblank interrupt is disabled.
> */
> if (!vblank->enabled &&
> - drm_get_last_vbltimestamp(dev, crtc, &tvblank, 0) > 0) {
> + drm_get_last_vbltimestamp(dev, crtc, &tvblank, 0)) {
> drm_update_vblank_count(dev, crtc);
> spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags);
> return;
> @@ -219,7 +224,7 @@ static void vblank_disable_and_save(struct drm_device *dev, int crtc)
> * available. In that case we can't account for this and just
> * hope for the best.
> */
> - if ((vblrc > 0) && (abs64(diff_ns) > 1000000)) {
> + if (vblrc && (abs64(diff_ns) > 1000000)) {
> /* Store new timestamp in ringbuffer. */
> vblanktimestamp(dev, crtc, vblcount + 1) = tvblank;
>
> @@ -786,10 +791,11 @@ static struct timeval get_drm_timestamp(void)
> * call, i.e., it isn't very precisely locked to the true vblank.
> *
> * Returns:
> - * Non-zero if timestamp is considered to be very precise, zero otherwise.
> + * True if timestamp is considered to be very precise, false otherwise.
> */
> -u32 drm_get_last_vbltimestamp(struct drm_device *dev, int crtc,
> - struct timeval *tvblank, unsigned flags)
> +static bool
> +drm_get_last_vbltimestamp(struct drm_device *dev, int crtc,
> + struct timeval *tvblank, unsigned flags)
> {
> int ret;
>
> @@ -801,7 +807,7 @@ u32 drm_get_last_vbltimestamp(struct drm_device *dev, int crtc,
> ret = dev->driver->get_vblank_timestamp(dev, crtc, &max_error,
> tvblank, flags);
> if (ret > 0)
> - return (u32) ret;
> + return true;
> }
>
> /* GPU high precision timestamp query unsupported or failed.
> @@ -809,7 +815,7 @@ u32 drm_get_last_vbltimestamp(struct drm_device *dev, int crtc,
> */
> *tvblank = get_drm_timestamp();
>
> - return 0;
> + return false;
> }
> EXPORT_SYMBOL(drm_get_last_vbltimestamp);
>
> diff --git a/include/drm/drmP.h b/include/drm/drmP.h
> index ad952b08711e..2ccb0e715569 100644
> --- a/include/drm/drmP.h
> +++ b/include/drm/drmP.h
> @@ -1004,8 +1004,6 @@ extern void drm_crtc_vblank_off(struct drm_crtc *crtc);
> extern void drm_crtc_vblank_on(struct drm_crtc *crtc);
> extern void drm_vblank_cleanup(struct drm_device *dev);
>
> -extern u32 drm_get_last_vbltimestamp(struct drm_device *dev, int crtc,
> - struct timeval *tvblank, unsigned flags);
> extern int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
> int crtc, int *max_error,
> struct timeval *vblank_time,
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2014-09-11 11:28 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-10 15:36 [PATCH 1/4] drm: Really never disable vblank irqs for offdelay==0 Daniel Vetter
2014-09-10 15:36 ` [PATCH 2/4] drm: Only update final vblank count when precise ts is available Daniel Vetter
2014-09-11 14:09 ` Matt Roper
2014-09-10 15:36 ` [PATCH 3/4] drm: Simplify return value of drm_get_last_vbltimestamp Daniel Vetter
2014-09-11 11:28 ` Mario Kleiner [this message]
2014-09-11 11:30 ` Daniel Vetter
2014-09-10 15:36 ` [PATCH 4/4] drm: Clarify vblank ts/scanoutpos sampling #defines Daniel Vetter
2014-09-10 22:24 ` [PATCH 1/4] drm: Really never disable vblank irqs for offdelay==0 Matt Roper
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54118757.7030506@gmail.com \
--to=mario.kleiner.de@gmail.com \
--cc=daniel.vetter@ffwll.ch \
--cc=daniel.vetter@intel.com \
--cc=dri-devel@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.