All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel.vetter@ffwll.ch>
To: DRI Development <dri-devel@lists.freedesktop.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
	Jerome Glisse <jglisse@redhat.com>,
	Daniel Vetter <daniel.vetter@intel.com>
Subject: [PATCH 37/37] drm/vblank: Unexport drm_vblank_cleanup
Date: Wed, 24 May 2017 16:52:12 +0200	[thread overview]
Message-ID: <20170524145212.27837-38-daniel.vetter@ffwll.ch> (raw)
In-Reply-To: <20170524145212.27837-1-daniel.vetter@ffwll.ch>

There's no reason for drivers to call this, and all the ones I've
removed looked very fishy:
- Proper quiescenting of the vblank machinery should be done by
  calling drm_crtc_vblank_off(), which is best done by shutting down
  the entire display engine with drm_atomic_helper_shutdown.

- Releasing of allocated memory is done by the core already, it calls
  drm_vblank_cleanup as a fallback.

- drm_vblank_cleanup also has checks for drivers which forget to clean
  up vblank interrupts.

This essentially reverts

commit e77cef9c2d87db835ad9d70cde4a9b00b0ca2262
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Thu Jan 7 15:39:13 2010 +0100

    drm: Avoid calling vblank function is vblank wasn't initialized

which was done to fix a bug in radeon code with msi interrupts:

commit 003e69f9862bcda89a75c27750efdbc17ac02945
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Thu Jan 7 15:39:14 2010 +0100

    drm/radeon/kms: Don't try to enable IRQ if we have no handler installed

Afaict from digging around in old code, this was needed to avoid
blowing up in the ums fallback, and has stopped serving it's purpose
long ago - if irq init fails, the driver fails to load, and there's
really no way to blow up anymore.

Long story short, this was most likely a small ums compat/fallback
hack that became a thing of it's own and got cargo-cult duplicated all
over the drm codebase for essentially no gain at all.

Cc: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/drm_internal.h |  1 +
 drivers/gpu/drm/drm_vblank.c   | 16 ----------------
 include/drm/drm_vblank.h       |  1 -
 3 files changed, 1 insertion(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/drm_internal.h b/drivers/gpu/drm/drm_internal.h
index 116de27cf8f3..61666e669b43 100644
--- a/drivers/gpu/drm/drm_internal.h
+++ b/drivers/gpu/drm/drm_internal.h
@@ -57,6 +57,7 @@ int drm_gem_name_info(struct seq_file *m, void *data);
 /* drm_vblank.c */
 extern unsigned int drm_timestamp_monotonic;
 void drm_vblank_disable_and_save(struct drm_device *dev, unsigned int pipe);
+void drm_vblank_cleanup(struct drm_device *dev);
 
 /* IOCTLS */
 int drm_wait_vblank_ioctl(struct drm_device *dev, void *data,
diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
index 9263bacb6ebd..b387814da47d 100644
--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -394,19 +394,6 @@ static void vblank_disable_fn(unsigned long arg)
 	spin_unlock_irqrestore(&dev->vbl_lock, irqflags);
 }
 
-/**
- * drm_vblank_cleanup - cleanup vblank support
- * @dev: DRM device
- *
- * This function cleans up any resources allocated in drm_vblank_init(). It is
- * called by the DRM core when @dev is finalized.
- *
- * Drivers can call drm_vblank_cleanup() if they need to quiescent the vblank
- * interrupt in their unload code. But in general this should be handled by
- * disabling all active &drm_crtc through e.g. drm_atomic_helper_shutdown, which
- * should end up calling drm_crtc_vblank_off().
- *
- */
 void drm_vblank_cleanup(struct drm_device *dev)
 {
 	unsigned int pipe;
@@ -428,7 +415,6 @@ void drm_vblank_cleanup(struct drm_device *dev)
 
 	dev->num_crtcs = 0;
 }
-EXPORT_SYMBOL(drm_vblank_cleanup);
 
 /**
  * drm_vblank_init - initialize vblank support
@@ -436,8 +422,6 @@ EXPORT_SYMBOL(drm_vblank_cleanup);
  * @num_crtcs: number of CRTCs supported by @dev
  *
  * This function initializes vblank support for @num_crtcs display pipelines.
- * Drivers do not need to call drm_vblank_cleanup(), cleanup is already handled
- * by the DRM core.
  *
  * Returns:
  * Zero on success or a negative error code on failure.
diff --git a/include/drm/drm_vblank.h b/include/drm/drm_vblank.h
index 4ceef128582f..7fba9efe4951 100644
--- a/include/drm/drm_vblank.h
+++ b/include/drm/drm_vblank.h
@@ -168,7 +168,6 @@ void drm_crtc_wait_one_vblank(struct drm_crtc *crtc);
 void drm_crtc_vblank_off(struct drm_crtc *crtc);
 void drm_crtc_vblank_reset(struct drm_crtc *crtc);
 void drm_crtc_vblank_on(struct drm_crtc *crtc);
-void drm_vblank_cleanup(struct drm_device *dev);
 u32 drm_crtc_accurate_vblank_count(struct drm_crtc *crtc);
 
 bool drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
-- 
2.11.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2017-05-24 14:52 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-24 14:51 [PATCH 00/37] drm: more doc work&cleanup, mostly vblank related Daniel Vetter
2017-05-24 14:51 ` [PATCH 01/37] drm/doc: move printf helpers out of drmP.h Daniel Vetter
2017-05-30  7:33   ` Neil Armstrong
2017-05-24 14:51 ` [PATCH 02/37] drm: Remove drm_device->virtdev Daniel Vetter
2017-05-24 14:51 ` Daniel Vetter
2017-05-29  6:52   ` Gerd Hoffmann
2017-05-29  6:52   ` Gerd Hoffmann
2017-05-30  7:33   ` Neil Armstrong
2017-05-30  7:33   ` Neil Armstrong
2017-05-24 14:51 ` [PATCH 03/37] drm/udl: Remove dummy busid callback Daniel Vetter
2017-05-24 14:51 ` [PATCH 04/37] drm: Remove drm_driver->set_busid hook Daniel Vetter
2017-05-24 14:51 ` [PATCH 05/37] drm/pci: Deprecate drm_pci_init/exit completely Daniel Vetter
2017-05-24 14:51 ` [PATCH 06/37] drm/doc: Improve ioctl/fops docs a bit more Daniel Vetter
2017-05-31  9:20   ` [PATCH] " Daniel Vetter
2017-05-24 14:51 ` [PATCH 07/37] drm: Extract drm_vblank.[hc] Daniel Vetter
2017-05-29 19:36   ` Stefan Agner
2017-05-31  8:04     ` Daniel Vetter
2017-05-31  9:21   ` [PATCH] " Daniel Vetter
2017-05-31 17:51     ` Stefan Agner
2017-06-01  5:55       ` Daniel Vetter
2017-05-31 18:22     ` kbuild test robot
2017-05-24 14:51 ` [PATCH 08/37] drm/doc: Polish irq helper documentation Daniel Vetter
2017-05-25  7:46   ` Stefan Agner
2017-05-29 18:58     ` Daniel Vetter
2017-05-31  9:22   ` [PATCH] " Daniel Vetter
2017-05-24 14:51 ` [PATCH 09/37] drm/doc: Drop empty include for drm_color_mgmt.h Daniel Vetter
2017-05-24 14:51 ` [PATCH 10/37] drm/doc: vblank cleanup Daniel Vetter
2017-06-15 12:58   ` Thierry Reding
2017-06-20  8:18     ` Daniel Vetter
2017-05-24 14:51 ` [PATCH 11/37] drm/vblank: _ioctl posfix for ioctl handler Daniel Vetter
2017-05-24 14:51 ` [PATCH 12/37] drm/vblank: Consistent drm_crtc_ prefix Daniel Vetter
2017-05-24 14:51 ` [PATCH 13/37] drm: better document how to send out the crtc disable event Daniel Vetter
2017-05-24 14:54   ` Boris Brezillon
2017-05-30  7:35   ` Neil Armstrong
2017-05-24 14:51 ` [PATCH 14/37] drm/amd|radeon: Drop drm_vblank_cleanup Daniel Vetter
2017-05-24 14:51 ` [PATCH 15/37] drm/arcgpu: " Daniel Vetter
2017-05-24 14:57   ` Alexey Brodkin
2017-05-24 14:51 ` [PATCH 16/37] drm/hdlcd|mali: " Daniel Vetter
2017-05-31 10:57   ` Liviu Dudau
2017-05-31 11:03     ` Daniel Vetter
2017-05-31 11:22       ` Liviu Dudau
2017-05-31 16:41         ` Daniel Vetter
2017-05-31 16:57           ` Liviu Dudau
2017-06-01  5:55             ` Daniel Vetter
2017-05-31 16:37   ` Liviu Dudau
2017-06-01  6:01     ` [Intel-gfx] " Daniel Vetter
2017-05-24 14:51 ` [PATCH 17/37] drm/atmel: " Daniel Vetter
2017-05-24 15:19   ` Boris Brezillon
2017-05-24 14:51 ` [PATCH 18/37] drm/exynos: " Daniel Vetter
2017-05-30  0:03   ` Inki Dae
2017-05-31  8:45     ` Daniel Vetter
2017-06-01  6:15       ` Inki Dae
2017-06-01  9:44         ` Daniel Vetter
2017-05-24 14:51 ` [PATCH 19/37] drm/fsl: " Daniel Vetter
2017-05-25  8:18   ` Stefan Agner
2017-05-26  7:00     ` Daniel Vetter
2017-05-30 21:17       ` Stefan Agner
2017-05-31  8:52         ` Daniel Vetter
2017-06-08 21:42           ` Stefan Agner
2017-05-24 14:51 ` [PATCH 20/37] drm/hibmc: " Daniel Vetter
2017-05-24 14:51 ` [PATCH 21/37] drm/kirin: " Daniel Vetter
2017-05-24 14:51 ` [PATCH 22/37] drm/i915: " Daniel Vetter
2017-05-24 14:51 ` [PATCH 23/37] drm/imx: " Daniel Vetter
2017-05-29 11:07   ` Philipp Zabel
2017-05-31  8:51     ` Daniel Vetter
2017-05-24 14:51 ` [PATCH 24/37] drm/mtk: " Daniel Vetter
2017-05-24 14:52 ` [PATCH 25/37] drm/meson: " Daniel Vetter
2017-05-24 15:46   ` Neil Armstrong
2017-05-24 14:52 ` [PATCH 26/37] drm/mxsfb: " Daniel Vetter
     [not found] ` <20170524145212.27837-1-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2017-05-24 14:52   ` [PATCH 27/37] drm/nouveau: " Daniel Vetter
2017-05-24 14:52 ` [PATCH 28/37] drm/rockchip: " Daniel Vetter
2017-05-24 14:52 ` [PATCH 29/37] drm/shmob: " Daniel Vetter
2017-05-24 14:52 ` [PATCH 30/37] drm/sti: " Daniel Vetter
2017-06-01 15:37   ` Vincent ABRIOU
2017-06-20  8:20     ` Daniel Vetter
2017-05-24 14:52 ` [PATCH 31/37] drm/stm: " Daniel Vetter
2017-05-29  8:09   ` Philippe CORNU
2017-05-24 14:52 ` [PATCH 32/37] drm/sun4i: " Daniel Vetter
2017-05-29  7:43   ` Maxime Ripard
2017-05-24 14:52 ` [PATCH 33/37] drm/tegra: " Daniel Vetter
2017-06-15 13:00   ` Thierry Reding
2017-06-20  8:21     ` Daniel Vetter
2017-05-24 14:52 ` [PATCH 34/37] drm/udl: " Daniel Vetter
2017-05-24 14:52 ` [PATCH 35/37] drm/vmwgfx: " Daniel Vetter
2017-06-03  5:10   ` Sinclair Yeh
2017-05-24 14:52 ` [PATCH 36/37] drm/zte: " Daniel Vetter
2017-05-25  3:01   ` Shawn Guo
2017-05-26  6:57     ` Daniel Vetter
2017-05-26 11:04       ` Shawn Guo
2017-05-24 14:52 ` Daniel Vetter [this message]
2017-05-24 15:12 ` ✓ Fi.CI.BAT: success for drm: more doc work&cleanup, mostly vblank related Patchwork
2017-05-24 15:19 ` [PATCH 00/37] " Chris Wilson
2017-05-24 15:54   ` [Intel-gfx] " Daniel Vetter
2017-05-31 10:05 ` ✓ Fi.CI.BAT: success for drm: more doc work&cleanup, mostly vblank related (rev4) Patchwork

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=20170524145212.27837-38-daniel.vetter@ffwll.ch \
    --to=daniel.vetter@ffwll.ch \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jglisse@redhat.com \
    /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.