Message ID | 20161114090255.31595-4-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Am Montag, den 14.11.2016, 10:02 +0100 schrieb Daniel Vetter: > No one outside of drm_irq.c should ever need this. The correct way to > implement get_vblank_count for hw lacking a vblank counter is > drm_vblank_no_hw_counter. Fix this up in mtk, which is the only > offender left over. > > Cc: CK Hu <ck.hu@mediatek.com> > Cc: Philipp Zabel <p.zabel@pengutronix.de> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Acked-by: Philipp Zabel <p.zabel@pengutronix.de> regards Philipp > --- > drivers/gpu/drm/drm_irq.c | 37 +++++++++------------------------- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- > 2 files changed, 11 insertions(+), 28 deletions(-) > > diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c > index 2fb5861b04b7..1681e919b866 100644 > --- a/drivers/gpu/drm/drm_irq.c > +++ b/drivers/gpu/drm/drm_irq.c > @@ -234,6 +234,16 @@ static void drm_update_vblank_count(struct drm_device *dev, unsigned int pipe, > store_vblank(dev, pipe, diff, &t_vblank, cur_vblank); > } > > +static u32 drm_vblank_count(struct drm_device *dev, unsigned int pipe) > +{ > + struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; > + > + if (WARN_ON(pipe >= dev->num_crtcs)) > + return 0; > + > + return vblank->count; > +} > + > /** > * drm_accurate_vblank_count - retrieve the master vblank counter > * @crtc: which counter to retrieve > @@ -888,31 +898,6 @@ drm_get_last_vbltimestamp(struct drm_device *dev, unsigned int pipe, > } > > /** > - * drm_vblank_count - retrieve "cooked" vblank counter value > - * @dev: DRM device > - * @pipe: index of CRTC for which to retrieve the counter > - * > - * 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. > - * > - * This is the legacy version of drm_crtc_vblank_count(). > - * > - * Returns: > - * The software vblank counter. > - */ > -u32 drm_vblank_count(struct drm_device *dev, unsigned int pipe) > -{ > - struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; > - > - if (WARN_ON(pipe >= dev->num_crtcs)) > - return 0; > - > - return vblank->count; > -} > -EXPORT_SYMBOL(drm_vblank_count); > - > -/** > * drm_crtc_vblank_count - retrieve "cooked" vblank counter value > * @crtc: which counter to retrieve > * > @@ -920,8 +905,6 @@ EXPORT_SYMBOL(drm_vblank_count); > * vblank events since the system was booted, including lost events due to > * modesetting activity. > * > - * This is the native KMS version of drm_vblank_count(). > - * > * Returns: > * The software vblank counter. > */ > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > index d90152e85ed0..4b7fe7eaec01 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > @@ -256,7 +256,7 @@ static struct drm_driver mtk_drm_driver = { > .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_PRIME | > DRIVER_ATOMIC, > > - .get_vblank_counter = drm_vblank_count, > + .get_vblank_counter = drm_vblank_no_hw_counter, > .enable_vblank = mtk_drm_crtc_enable_vblank, > .disable_vblank = mtk_drm_crtc_disable_vblank, >
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c index 2fb5861b04b7..1681e919b866 100644 --- a/drivers/gpu/drm/drm_irq.c +++ b/drivers/gpu/drm/drm_irq.c @@ -234,6 +234,16 @@ static void drm_update_vblank_count(struct drm_device *dev, unsigned int pipe, store_vblank(dev, pipe, diff, &t_vblank, cur_vblank); } +static u32 drm_vblank_count(struct drm_device *dev, unsigned int pipe) +{ + struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; + + if (WARN_ON(pipe >= dev->num_crtcs)) + return 0; + + return vblank->count; +} + /** * drm_accurate_vblank_count - retrieve the master vblank counter * @crtc: which counter to retrieve @@ -888,31 +898,6 @@ drm_get_last_vbltimestamp(struct drm_device *dev, unsigned int pipe, } /** - * drm_vblank_count - retrieve "cooked" vblank counter value - * @dev: DRM device - * @pipe: index of CRTC for which to retrieve the counter - * - * 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. - * - * This is the legacy version of drm_crtc_vblank_count(). - * - * Returns: - * The software vblank counter. - */ -u32 drm_vblank_count(struct drm_device *dev, unsigned int pipe) -{ - struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; - - if (WARN_ON(pipe >= dev->num_crtcs)) - return 0; - - return vblank->count; -} -EXPORT_SYMBOL(drm_vblank_count); - -/** * drm_crtc_vblank_count - retrieve "cooked" vblank counter value * @crtc: which counter to retrieve * @@ -920,8 +905,6 @@ EXPORT_SYMBOL(drm_vblank_count); * vblank events since the system was booted, including lost events due to * modesetting activity. * - * This is the native KMS version of drm_vblank_count(). - * * Returns: * The software vblank counter. */ diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index d90152e85ed0..4b7fe7eaec01 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -256,7 +256,7 @@ static struct drm_driver mtk_drm_driver = { .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_PRIME | DRIVER_ATOMIC, - .get_vblank_counter = drm_vblank_count, + .get_vblank_counter = drm_vblank_no_hw_counter, .enable_vblank = mtk_drm_crtc_enable_vblank, .disable_vblank = mtk_drm_crtc_disable_vblank,
No one outside of drm_irq.c should ever need this. The correct way to implement get_vblank_count for hw lacking a vblank counter is drm_vblank_no_hw_counter. Fix this up in mtk, which is the only offender left over. Cc: CK Hu <ck.hu@mediatek.com> Cc: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> --- drivers/gpu/drm/drm_irq.c | 37 +++++++++------------------------- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 +- 2 files changed, 11 insertions(+), 28 deletions(-)