From: "Dr. David Alan Gilbert" <linux@treblig.org>
drm_crtc_vblank_count_and_time() was explicitly added by
commit cf6483050e9b ("drm/irq: Add drm_crtc_vblank_count_and_time()")
in 2015, but never used.
Remove it, and rework comments that reference it.
Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>
---
drivers/gpu/drm/drm_vblank.c | 44 +++++++-----------------------------
include/drm/drm_vblank.h | 10 ++++----
2 files changed, 12 insertions(+), 42 deletions(-)
diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
index 94e45ed6869d..67d6367e9f4b 100644
--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -908,10 +908,10 @@ drm_get_last_vbltimestamp(struct drm_device *dev, unsigned int pipe,
* drm_crtc_accurate_vblank_count() for such use-cases.
*
* Note that for a given vblank counter value drm_crtc_handle_vblank()
- * and drm_crtc_vblank_count() or drm_crtc_vblank_count_and_time()
- * provide a barrier: Any writes done before calling
- * drm_crtc_handle_vblank() will be visible to callers of the later
- * functions, if the vblank count is the same or a later one.
+ * and drm_crtc_vblank_count() provide a barrier:
+ * Any writes done before calling drm_crtc_handle_vblank() will be
+ * visible to callers of the later functions, if the vblank count is
+ * the same or a later one.
*
* See also &drm_vblank_crtc.count.
*
@@ -936,7 +936,6 @@ EXPORT_SYMBOL(drm_crtc_vblank_count);
* modesetting activity. Returns corresponding system timestamp of the time
* of the vblank interval that corresponds to the current vblank counter value.
*
- * This is the legacy version of drm_crtc_vblank_count_and_time().
*/
static u64 drm_vblank_count_and_time(struct drm_device *dev, unsigned int pipe,
ktime_t *vblanktime)
@@ -959,33 +958,6 @@ static u64 drm_vblank_count_and_time(struct drm_device *dev, unsigned int pipe,
return vblank_count;
}
-/**
- * drm_crtc_vblank_count_and_time - retrieve "cooked" vblank counter value
- * and the system timestamp corresponding to that vblank counter value
- * @crtc: which counter to retrieve
- * @vblanktime: Pointer to time to receive the vblank timestamp.
- *
- * Fetches the "cooked" vblank count value that represents the number of
- * vblank events since the system was booted, including lost events due to
- * modesetting activity. Returns corresponding system timestamp of the time
- * of the vblank interval that corresponds to the current vblank counter value.
- *
- * Note that for a given vblank counter value drm_crtc_handle_vblank()
- * and drm_crtc_vblank_count() or drm_crtc_vblank_count_and_time()
- * provide a barrier: Any writes done before calling
- * drm_crtc_handle_vblank() will be visible to callers of the later
- * functions, if the vblank count is the same or a later one.
- *
- * See also &drm_vblank_crtc.count.
- */
-u64 drm_crtc_vblank_count_and_time(struct drm_crtc *crtc,
- ktime_t *vblanktime)
-{
- return drm_vblank_count_and_time(crtc->dev, drm_crtc_index(crtc),
- vblanktime);
-}
-EXPORT_SYMBOL(drm_crtc_vblank_count_and_time);
-
/**
* drm_crtc_next_vblank_start - calculate the time of the next vblank
* @crtc: the crtc for which to calculate next vblank time
@@ -1978,10 +1950,10 @@ EXPORT_SYMBOL(drm_handle_vblank);
* This is the native KMS version of drm_handle_vblank().
*
* Note that for a given vblank counter value drm_crtc_handle_vblank()
- * and drm_crtc_vblank_count() or drm_crtc_vblank_count_and_time()
- * provide a barrier: Any writes done before calling
- * drm_crtc_handle_vblank() will be visible to callers of the later
- * functions, if the vblank count is the same or a later one.
+ * and drm_crtc_vblank_count() * provide a barrier:
+ * Any writes done before calling * drm_crtc_handle_vblank() will be
+ * visible to callers of the later functions, if the vblank count is
+ * the same or a later one.
*
* See also &drm_vblank_crtc.count.
*
diff --git a/include/drm/drm_vblank.h b/include/drm/drm_vblank.h
index 151ab1e85b1b..572e54425970 100644
--- a/include/drm/drm_vblank.h
+++ b/include/drm/drm_vblank.h
@@ -141,10 +141,10 @@ struct drm_vblank_crtc {
* Current software vblank counter.
*
* Note that for a given vblank counter value drm_crtc_handle_vblank()
- * and drm_crtc_vblank_count() or drm_crtc_vblank_count_and_time()
- * provide a barrier: Any writes done before calling
- * drm_crtc_handle_vblank() will be visible to callers of the later
- * functions, iff the vblank count is the same or a later one.
+ * and drm_crtc_vblank_count() provide a barrier:
+ * Any writes done before calling drm_crtc_handle_vblank() will be
+ * visible to callers of the later functions, iff the vblank count is
+ * the same or a later one.
*
* IMPORTANT: This guarantee requires barriers, therefor never access
* this field directly. Use drm_crtc_vblank_count() instead.
@@ -260,8 +260,6 @@ struct drm_vblank_crtc *drm_crtc_vblank_crtc(struct drm_crtc *crtc);
int drm_vblank_init(struct drm_device *dev, unsigned int num_crtcs);
bool drm_dev_has_vblank(const struct drm_device *dev);
u64 drm_crtc_vblank_count(struct drm_crtc *crtc);
-u64 drm_crtc_vblank_count_and_time(struct drm_crtc *crtc,
- ktime_t *vblanktime);
int drm_crtc_next_vblank_start(struct drm_crtc *crtc, ktime_t *vblanktime);
void drm_crtc_send_vblank_event(struct drm_crtc *crtc,
struct drm_pending_vblank_event *e);
--
2.47.0
On Wed, Oct 23, 2024 at 12:29:32AM +0100, linux@treblig.org wrote: > From: "Dr. David Alan Gilbert" <linux@treblig.org> > > drm_crtc_vblank_count_and_time() was explicitly added by > commit cf6483050e9b ("drm/irq: Add drm_crtc_vblank_count_and_time()") > in 2015, but never used. I see a bunch of places that could trivially use it. That might be the more sensible thing to do so that we keep moving towards using the crtc for everything. The EXPORT_SYMBOL() looks completely pointless though. > > Remove it, and rework comments that reference it. > > Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org> > --- > drivers/gpu/drm/drm_vblank.c | 44 +++++++----------------------------- > include/drm/drm_vblank.h | 10 ++++---- > 2 files changed, 12 insertions(+), 42 deletions(-) > > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c > index 94e45ed6869d..67d6367e9f4b 100644 > --- a/drivers/gpu/drm/drm_vblank.c > +++ b/drivers/gpu/drm/drm_vblank.c > @@ -908,10 +908,10 @@ drm_get_last_vbltimestamp(struct drm_device *dev, unsigned int pipe, > * drm_crtc_accurate_vblank_count() for such use-cases. > * > * Note that for a given vblank counter value drm_crtc_handle_vblank() > - * and drm_crtc_vblank_count() or drm_crtc_vblank_count_and_time() > - * provide a barrier: Any writes done before calling > - * drm_crtc_handle_vblank() will be visible to callers of the later > - * functions, if the vblank count is the same or a later one. > + * and drm_crtc_vblank_count() provide a barrier: > + * Any writes done before calling drm_crtc_handle_vblank() will be > + * visible to callers of the later functions, if the vblank count is > + * the same or a later one. > * > * See also &drm_vblank_crtc.count. > * > @@ -936,7 +936,6 @@ EXPORT_SYMBOL(drm_crtc_vblank_count); > * modesetting activity. Returns corresponding system timestamp of the time > * of the vblank interval that corresponds to the current vblank counter value. > * > - * This is the legacy version of drm_crtc_vblank_count_and_time(). > */ > static u64 drm_vblank_count_and_time(struct drm_device *dev, unsigned int pipe, > ktime_t *vblanktime) > @@ -959,33 +958,6 @@ static u64 drm_vblank_count_and_time(struct drm_device *dev, unsigned int pipe, > return vblank_count; > } > > -/** > - * drm_crtc_vblank_count_and_time - retrieve "cooked" vblank counter value > - * and the system timestamp corresponding to that vblank counter value > - * @crtc: which counter to retrieve > - * @vblanktime: Pointer to time to receive the vblank timestamp. > - * > - * Fetches the "cooked" vblank count value that represents the number of > - * vblank events since the system was booted, including lost events due to > - * modesetting activity. Returns corresponding system timestamp of the time > - * of the vblank interval that corresponds to the current vblank counter value. > - * > - * Note that for a given vblank counter value drm_crtc_handle_vblank() > - * and drm_crtc_vblank_count() or drm_crtc_vblank_count_and_time() > - * provide a barrier: Any writes done before calling > - * drm_crtc_handle_vblank() will be visible to callers of the later > - * functions, if the vblank count is the same or a later one. > - * > - * See also &drm_vblank_crtc.count. > - */ > -u64 drm_crtc_vblank_count_and_time(struct drm_crtc *crtc, > - ktime_t *vblanktime) > -{ > - return drm_vblank_count_and_time(crtc->dev, drm_crtc_index(crtc), > - vblanktime); > -} > -EXPORT_SYMBOL(drm_crtc_vblank_count_and_time); > - > /** > * drm_crtc_next_vblank_start - calculate the time of the next vblank > * @crtc: the crtc for which to calculate next vblank time > @@ -1978,10 +1950,10 @@ EXPORT_SYMBOL(drm_handle_vblank); > * This is the native KMS version of drm_handle_vblank(). > * > * Note that for a given vblank counter value drm_crtc_handle_vblank() > - * and drm_crtc_vblank_count() or drm_crtc_vblank_count_and_time() > - * provide a barrier: Any writes done before calling > - * drm_crtc_handle_vblank() will be visible to callers of the later > - * functions, if the vblank count is the same or a later one. > + * and drm_crtc_vblank_count() * provide a barrier: > + * Any writes done before calling * drm_crtc_handle_vblank() will be > + * visible to callers of the later functions, if the vblank count is > + * the same or a later one. > * > * See also &drm_vblank_crtc.count. > * > diff --git a/include/drm/drm_vblank.h b/include/drm/drm_vblank.h > index 151ab1e85b1b..572e54425970 100644 > --- a/include/drm/drm_vblank.h > +++ b/include/drm/drm_vblank.h > @@ -141,10 +141,10 @@ struct drm_vblank_crtc { > * Current software vblank counter. > * > * Note that for a given vblank counter value drm_crtc_handle_vblank() > - * and drm_crtc_vblank_count() or drm_crtc_vblank_count_and_time() > - * provide a barrier: Any writes done before calling > - * drm_crtc_handle_vblank() will be visible to callers of the later > - * functions, iff the vblank count is the same or a later one. > + * and drm_crtc_vblank_count() provide a barrier: > + * Any writes done before calling drm_crtc_handle_vblank() will be > + * visible to callers of the later functions, iff the vblank count is > + * the same or a later one. > * > * IMPORTANT: This guarantee requires barriers, therefor never access > * this field directly. Use drm_crtc_vblank_count() instead. > @@ -260,8 +260,6 @@ struct drm_vblank_crtc *drm_crtc_vblank_crtc(struct drm_crtc *crtc); > int drm_vblank_init(struct drm_device *dev, unsigned int num_crtcs); > bool drm_dev_has_vblank(const struct drm_device *dev); > u64 drm_crtc_vblank_count(struct drm_crtc *crtc); > -u64 drm_crtc_vblank_count_and_time(struct drm_crtc *crtc, > - ktime_t *vblanktime); > int drm_crtc_next_vblank_start(struct drm_crtc *crtc, ktime_t *vblanktime); > void drm_crtc_send_vblank_event(struct drm_crtc *crtc, > struct drm_pending_vblank_event *e); > -- > 2.47.0 -- Ville Syrjälä Intel
* Ville Syrjälä (ville.syrjala@linux.intel.com) wrote: > On Wed, Oct 23, 2024 at 12:29:32AM +0100, linux@treblig.org wrote: > > From: "Dr. David Alan Gilbert" <linux@treblig.org> > > > > drm_crtc_vblank_count_and_time() was explicitly added by > > commit cf6483050e9b ("drm/irq: Add drm_crtc_vblank_count_and_time()") > > in 2015, but never used. > > I see a bunch of places that could trivially use it. > That might be the more sensible thing to do so that > we keep moving towards using the crtc for everything. Do you intend to send those since you understand it? > The EXPORT_SYMBOL() looks completely pointless though. Hmm, we probably shouldn't change that until something uses it? Dave > > > > Remove it, and rework comments that reference it. > > > > Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org> > > --- > > drivers/gpu/drm/drm_vblank.c | 44 +++++++----------------------------- > > include/drm/drm_vblank.h | 10 ++++---- > > 2 files changed, 12 insertions(+), 42 deletions(-) > > > > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c > > index 94e45ed6869d..67d6367e9f4b 100644 > > --- a/drivers/gpu/drm/drm_vblank.c > > +++ b/drivers/gpu/drm/drm_vblank.c > > @@ -908,10 +908,10 @@ drm_get_last_vbltimestamp(struct drm_device *dev, unsigned int pipe, > > * drm_crtc_accurate_vblank_count() for such use-cases. > > * > > * Note that for a given vblank counter value drm_crtc_handle_vblank() > > - * and drm_crtc_vblank_count() or drm_crtc_vblank_count_and_time() > > - * provide a barrier: Any writes done before calling > > - * drm_crtc_handle_vblank() will be visible to callers of the later > > - * functions, if the vblank count is the same or a later one. > > + * and drm_crtc_vblank_count() provide a barrier: > > + * Any writes done before calling drm_crtc_handle_vblank() will be > > + * visible to callers of the later functions, if the vblank count is > > + * the same or a later one. > > * > > * See also &drm_vblank_crtc.count. > > * > > @@ -936,7 +936,6 @@ EXPORT_SYMBOL(drm_crtc_vblank_count); > > * modesetting activity. Returns corresponding system timestamp of the time > > * of the vblank interval that corresponds to the current vblank counter value. > > * > > - * This is the legacy version of drm_crtc_vblank_count_and_time(). > > */ > > static u64 drm_vblank_count_and_time(struct drm_device *dev, unsigned int pipe, > > ktime_t *vblanktime) > > @@ -959,33 +958,6 @@ static u64 drm_vblank_count_and_time(struct drm_device *dev, unsigned int pipe, > > return vblank_count; > > } > > > > -/** > > - * drm_crtc_vblank_count_and_time - retrieve "cooked" vblank counter value > > - * and the system timestamp corresponding to that vblank counter value > > - * @crtc: which counter to retrieve > > - * @vblanktime: Pointer to time to receive the vblank timestamp. > > - * > > - * Fetches the "cooked" vblank count value that represents the number of > > - * vblank events since the system was booted, including lost events due to > > - * modesetting activity. Returns corresponding system timestamp of the time > > - * of the vblank interval that corresponds to the current vblank counter value. > > - * > > - * Note that for a given vblank counter value drm_crtc_handle_vblank() > > - * and drm_crtc_vblank_count() or drm_crtc_vblank_count_and_time() > > - * provide a barrier: Any writes done before calling > > - * drm_crtc_handle_vblank() will be visible to callers of the later > > - * functions, if the vblank count is the same or a later one. > > - * > > - * See also &drm_vblank_crtc.count. > > - */ > > -u64 drm_crtc_vblank_count_and_time(struct drm_crtc *crtc, > > - ktime_t *vblanktime) > > -{ > > - return drm_vblank_count_and_time(crtc->dev, drm_crtc_index(crtc), > > - vblanktime); > > -} > > -EXPORT_SYMBOL(drm_crtc_vblank_count_and_time); > > - > > /** > > * drm_crtc_next_vblank_start - calculate the time of the next vblank > > * @crtc: the crtc for which to calculate next vblank time > > @@ -1978,10 +1950,10 @@ EXPORT_SYMBOL(drm_handle_vblank); > > * This is the native KMS version of drm_handle_vblank(). > > * > > * Note that for a given vblank counter value drm_crtc_handle_vblank() > > - * and drm_crtc_vblank_count() or drm_crtc_vblank_count_and_time() > > - * provide a barrier: Any writes done before calling > > - * drm_crtc_handle_vblank() will be visible to callers of the later > > - * functions, if the vblank count is the same or a later one. > > + * and drm_crtc_vblank_count() * provide a barrier: > > + * Any writes done before calling * drm_crtc_handle_vblank() will be > > + * visible to callers of the later functions, if the vblank count is > > + * the same or a later one. > > * > > * See also &drm_vblank_crtc.count. > > * > > diff --git a/include/drm/drm_vblank.h b/include/drm/drm_vblank.h > > index 151ab1e85b1b..572e54425970 100644 > > --- a/include/drm/drm_vblank.h > > +++ b/include/drm/drm_vblank.h > > @@ -141,10 +141,10 @@ struct drm_vblank_crtc { > > * Current software vblank counter. > > * > > * Note that for a given vblank counter value drm_crtc_handle_vblank() > > - * and drm_crtc_vblank_count() or drm_crtc_vblank_count_and_time() > > - * provide a barrier: Any writes done before calling > > - * drm_crtc_handle_vblank() will be visible to callers of the later > > - * functions, iff the vblank count is the same or a later one. > > + * and drm_crtc_vblank_count() provide a barrier: > > + * Any writes done before calling drm_crtc_handle_vblank() will be > > + * visible to callers of the later functions, iff the vblank count is > > + * the same or a later one. > > * > > * IMPORTANT: This guarantee requires barriers, therefor never access > > * this field directly. Use drm_crtc_vblank_count() instead. > > @@ -260,8 +260,6 @@ struct drm_vblank_crtc *drm_crtc_vblank_crtc(struct drm_crtc *crtc); > > int drm_vblank_init(struct drm_device *dev, unsigned int num_crtcs); > > bool drm_dev_has_vblank(const struct drm_device *dev); > > u64 drm_crtc_vblank_count(struct drm_crtc *crtc); > > -u64 drm_crtc_vblank_count_and_time(struct drm_crtc *crtc, > > - ktime_t *vblanktime); > > int drm_crtc_next_vblank_start(struct drm_crtc *crtc, ktime_t *vblanktime); > > void drm_crtc_send_vblank_event(struct drm_crtc *crtc, > > struct drm_pending_vblank_event *e); > > -- > > 2.47.0 > > -- > Ville Syrjälä > Intel > -- -----Open up your eyes, open up your mind, open up your code ------- / Dr. David Alan Gilbert | Running GNU/Linux | Happy \ \ dave @ treblig.org | | In Hex / \ _________________________|_____ http://www.treblig.org |_______/
On Wed, Oct 23, 2024 at 12:29:32AM +0100, linux@treblig.org wrote: > From: "Dr. David Alan Gilbert" <linux@treblig.org> > > drm_crtc_vblank_count_and_time() was explicitly added by > commit cf6483050e9b ("drm/irq: Add drm_crtc_vblank_count_and_time()") > in 2015, but never used. > > Remove it, and rework comments that reference it. Not having the deep knowledge of the drm_vblank code, dropping the function unused since 2015 should be fine. Acked-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org> > --- > drivers/gpu/drm/drm_vblank.c | 44 +++++++----------------------------- > include/drm/drm_vblank.h | 10 ++++---- > 2 files changed, 12 insertions(+), 42 deletions(-) -- With best wishes Dmitry
© 2016 - 2024 Red Hat, Inc.