Use the vblank pointer instead of a dev, pipe pair to simplify code.

Signed-off-by: Jani Nikula <[email protected]>
---
 drivers/gpu/drm/drm_vblank.c | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
index 34d0b6939d52..955cea949d3d 100644
--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -209,27 +209,27 @@ static void store_vblank(struct drm_vblank_crtc *vblank,
        write_sequnlock(&vblank->seqlock);
 }
 
-static u32 drm_max_vblank_count(struct drm_device *dev, unsigned int pipe)
+static u32 drm_max_vblank_count(struct drm_vblank_crtc *vblank)
 {
-       struct drm_vblank_crtc *vblank = drm_vblank_crtc(dev, pipe);
-
-       return vblank->max_vblank_count ?: dev->max_vblank_count;
+       return vblank->max_vblank_count ?: vblank->dev->max_vblank_count;
 }
 
 /*
  * "No hw counter" fallback implementation of .get_vblank_counter() hook,
  * if there is no usable hardware frame counter available.
  */
-static u32 drm_vblank_no_hw_counter(struct drm_device *dev, unsigned int pipe)
+static u32 drm_vblank_no_hw_counter(struct drm_vblank_crtc *vblank)
 {
-       drm_WARN_ON_ONCE(dev, drm_max_vblank_count(dev, pipe) != 0);
+       drm_WARN_ON_ONCE(vblank->dev, drm_max_vblank_count(vblank) != 0);
        return 0;
 }
 
-static u32 __get_vblank_counter(struct drm_device *dev, unsigned int pipe)
+static u32 __get_vblank_counter(struct drm_vblank_crtc *vblank)
 {
+       struct drm_device *dev = vblank->dev;
+
        if (drm_core_check_feature(dev, DRIVER_MODESET)) {
-               struct drm_crtc *crtc = drm_crtc_from_index(dev, pipe);
+               struct drm_crtc *crtc = drm_crtc_from_vblank(vblank);
 
                if (drm_WARN_ON(dev, !crtc))
                        return 0;
@@ -238,7 +238,7 @@ static u32 __get_vblank_counter(struct drm_device *dev, 
unsigned int pipe)
                        return crtc->funcs->get_vblank_counter(crtc);
        }
 
-       return drm_vblank_no_hw_counter(dev, pipe);
+       return drm_vblank_no_hw_counter(vblank);
 }
 
 /*
@@ -266,9 +266,9 @@ static void drm_reset_vblank_timestamp(struct 
drm_vblank_crtc *vblank)
         * when drm_vblank_enable() applies the diff
         */
        do {
-               cur_vblank = __get_vblank_counter(dev, pipe);
+               cur_vblank = __get_vblank_counter(vblank);
                rc = drm_get_last_vbltimestamp(dev, pipe, &t_vblank, false);
-       } while (cur_vblank != __get_vblank_counter(dev, pipe) && --count > 0);
+       } while (cur_vblank != __get_vblank_counter(vblank) && --count > 0);
 
        /*
         * Only reinitialize corresponding vblank timestamp if high-precision 
query
@@ -309,7 +309,7 @@ static void drm_update_vblank_count(struct drm_vblank_crtc 
*vblank,
        ktime_t t_vblank;
        int count = DRM_TIMESTAMP_MAXRETRIES;
        int framedur_ns = vblank->framedur_ns;
-       u32 max_vblank_count = drm_max_vblank_count(dev, pipe);
+       u32 max_vblank_count = drm_max_vblank_count(vblank);
 
        /*
         * Interrupts were disabled prior to this call, so deal with counter
@@ -324,9 +324,9 @@ static void drm_update_vblank_count(struct drm_vblank_crtc 
*vblank,
         * corresponding vblank timestamp.
         */
        do {
-               cur_vblank = __get_vblank_counter(dev, pipe);
+               cur_vblank = __get_vblank_counter(vblank);
                rc = drm_get_last_vbltimestamp(dev, pipe, &t_vblank, 
in_vblank_irq);
-       } while (cur_vblank != __get_vblank_counter(dev, pipe) && --count > 0);
+       } while (cur_vblank != __get_vblank_counter(vblank) && --count > 0);
 
        if (max_vblank_count) {
                /* trust the hw counter when it's around */
@@ -1555,7 +1555,7 @@ void drm_crtc_vblank_restore(struct drm_crtc *crtc)
        u64 diff_ns;
        u32 cur_vblank, diff = 1;
        int count = DRM_TIMESTAMP_MAXRETRIES;
-       u32 max_vblank_count = drm_max_vblank_count(dev, pipe);
+       u32 max_vblank_count = drm_max_vblank_count(vblank);
 
        drm_WARN_ON_ONCE(dev, !crtc->funcs->get_vblank_timestamp);
        drm_WARN_ON_ONCE(dev, vblank->inmodeset);
@@ -1570,9 +1570,9 @@ void drm_crtc_vblank_restore(struct drm_crtc *crtc)
        framedur_ns = vblank->framedur_ns;
 
        do {
-               cur_vblank = __get_vblank_counter(dev, pipe);
+               cur_vblank = __get_vblank_counter(vblank);
                drm_get_last_vbltimestamp(dev, pipe, &t_vblank, false);
-       } while (cur_vblank != __get_vblank_counter(dev, pipe) && --count > 0);
+       } while (cur_vblank != __get_vblank_counter(vblank) && --count > 0);
 
        diff_ns = ktime_to_ns(ktime_sub(t_vblank, vblank->time));
        if (framedur_ns)
-- 
2.47.3

Reply via email to