write_sequnlock(&vblank->seqlock);
 }
 
+/*
+ * "No hw counter" fallback implementation of .get_vblank_counter() hook,
+ * if there is no useable hardware frame counter available.
+ */
+static u32 drm_vblank_no_hw_counter(struct drm_device *dev, unsigned int pipe)
+{
+       WARN_ON_ONCE(dev->max_vblank_count != 0);
+       return 0;
+}
+
 static u32 __get_vblank_counter(struct drm_device *dev, unsigned int pipe)
 {
        if (drm_core_check_feature(dev, DRIVER_MODESET)) {
        return drm_handle_vblank(crtc->dev, drm_crtc_index(crtc));
 }
 EXPORT_SYMBOL(drm_crtc_handle_vblank);
-
-/**
- * drm_vblank_no_hw_counter - "No hw counter" implementation of .get_vblank_counter()
- * @dev: DRM device
- * @pipe: CRTC for which to read the counter
- *
- * Drivers can plug this into the .get_vblank_counter() function if
- * there is no useable hardware frame counter available.
- *
- * Returns:
- * 0
- */
-u32 drm_vblank_no_hw_counter(struct drm_device *dev, unsigned int pipe)
-{
-       WARN_ON_ONCE(dev->max_vblank_count != 0);
-       return 0;
-}
-EXPORT_SYMBOL(drm_vblank_no_hw_counter);
 
         *
         * Driver callback for fetching a raw hardware vblank counter for the
         * CRTC specified with the pipe argument.  If a device doesn't have a
-        * hardware counter, the driver can simply use
-        * drm_vblank_no_hw_counter() function. The DRM core will account for
-        * missed vblank events while interrupts where disabled based on system
-        * timestamps.
+        * hardware counter, the driver can simply leave the hook as NULL.
+        * The DRM core will account for missed vblank events while interrupts
+        * where disabled based on system timestamps.
         *
         * Wraparound handling and loss of events due to modesetting is dealt
         * with in the DRM core code, as long as drivers call
 
 void drm_crtc_vblank_on(struct drm_crtc *crtc);
 void drm_vblank_cleanup(struct drm_device *dev);
 u32 drm_accurate_vblank_count(struct drm_crtc *crtc);
-u32 drm_vblank_no_hw_counter(struct drm_device *dev, unsigned int pipe);
 
 int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
                                          unsigned int pipe, int *max_error,