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>,
	Daniel Vetter <daniel.vetter@intel.com>
Subject: [PATCH] drm/doc: Improve ioctl/fops docs a bit more
Date: Wed, 31 May 2017 11:20:45 +0200	[thread overview]
Message-ID: <20170531092045.3950-1-daniel.vetter@ffwll.ch> (raw)
In-Reply-To: <20170524145212.27837-7-daniel.vetter@ffwll.ch>

I spotted a markup issue, plus adding the descriptions in drm_driver.
Plus a few more links while at it.

I'm still mildly unhappy with the split between fops and ioctls, but I
still think having the ioctls in the uapi chapter makes more sense. Oh
well ...

v2: Rebase.

v3: Move misplace hunk to the right patch.

Cc: Stefan Agner <stefan@agner.ch>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 Documentation/gpu/drm-internals.rst |  2 ++
 Documentation/gpu/drm-uapi.rst      |  2 ++
 drivers/gpu/drm/drm_file.c          |  7 ++++++-
 drivers/gpu/drm/drm_ioctl.c         |  5 ++++-
 include/drm/drm_drv.h               | 18 ++++++++++++++++++
 5 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/Documentation/gpu/drm-internals.rst b/Documentation/gpu/drm-internals.rst
index babfb6143bd9..d218dd29221a 100644
--- a/Documentation/gpu/drm-internals.rst
+++ b/Documentation/gpu/drm-internals.rst
@@ -243,6 +243,8 @@ drivers.
 Open/Close, File Operations and IOCTLs
 ======================================
 
+.. _drm_driver_fops:
+
 File Operations
 ---------------
 
diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
index 858457567d3d..679373b4a03f 100644
--- a/Documentation/gpu/drm-uapi.rst
+++ b/Documentation/gpu/drm-uapi.rst
@@ -160,6 +160,8 @@ other hand, a driver requires shared state between clients which is
 visible to user-space and accessible beyond open-file boundaries, they
 cannot support render nodes.
 
+.. _drm_driver_ioctl:
+
 IOCTL Support on Device Nodes
 =============================
 
diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c
index caad93dab54b..6631f61b66ca 100644
--- a/drivers/gpu/drm/drm_file.c
+++ b/drivers/gpu/drm/drm_file.c
@@ -75,7 +75,7 @@ DEFINE_MUTEX(drm_global_mutex);
  * for drivers which use the CMA GEM helpers it's drm_gem_cma_mmap().
  *
  * No other file operations are supported by the DRM userspace API. Overall the
- * following is an example #file_operations structure::
+ * following is an example &file_operations structure::
  *
  *     static const example_drm_fops = {
  *             .owner = THIS_MODULE,
@@ -92,6 +92,11 @@ DEFINE_MUTEX(drm_global_mutex);
  * For plain GEM based drivers there is the DEFINE_DRM_GEM_FOPS() macro, and for
  * CMA based drivers there is the DEFINE_DRM_GEM_CMA_FOPS() macro to make this
  * simpler.
+ *
+ * The driver's &file_operations must be stored in &drm_driver.fops.
+ *
+ * For driver-private IOCTL handling see the more detailed discussion in
+ * :ref:`IOCTL support in the userland interfaces chapter<drm_driver_ioctl>`.
  */
 
 static int drm_open_helper(struct file *filp, struct drm_minor *minor);
diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
index a423bf60e230..3690706f051d 100644
--- a/drivers/gpu/drm/drm_ioctl.c
+++ b/drivers/gpu/drm/drm_ioctl.c
@@ -683,7 +683,7 @@ static const struct drm_ioctl_desc drm_ioctls[] = {
  * 
  * DRM driver private IOCTL must be in the range from DRM_COMMAND_BASE to
  * DRM_COMMAND_END. Finally you need an array of &struct drm_ioctl_desc to wire
- * up the handlers and set the access rights:
+ * up the handlers and set the access rights::
  *
  *     static const struct drm_ioctl_desc my_driver_ioctls[] = {
  *         DRM_IOCTL_DEF_DRV(MY_DRIVER_OPERATION, my_driver_operation,
@@ -692,6 +692,9 @@ static const struct drm_ioctl_desc drm_ioctls[] = {
  *
  * And then assign this to the &drm_driver.ioctls field in your driver
  * structure.
+ *
+ * See the separate chapter on :ref:`file operations<drm_driver_fops>` for how
+ * the driver-specific IOCTLs are wired up.
  */
 
 /**
diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
index 5d06c68bb00b..ebb41688581b 100644
--- a/include/drm/drm_drv.h
+++ b/include/drm/drm_drv.h
@@ -486,8 +486,26 @@ struct drm_driver {
 	char *date;
 
 	u32 driver_features;
+
+	/**
+	 * @ioctls:
+	 *
+	 * Array of driver-private IOCTL description entries. See the chapter on
+	 * :ref:`IOCTL support in the userland interfaces
+	 * chapter<drm_driver_ioctl>` for the full details.
+	 */
+
 	const struct drm_ioctl_desc *ioctls;
+	/** @num_ioctls: Number of entries in @ioctls. */
 	int num_ioctls;
+
+	/**
+	 * @fops:
+	 *
+	 * File operations for the DRM device node. See the discussion in
+	 * :ref:`file operations<drm_driver_fops>` for in-depth coverage and
+	 * some examples.
+	 */
 	const struct file_operations *fops;
 
 	/* Everything below here is for legacy driver, never use! */
-- 
2.11.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2017-05-31  9:20 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   ` Daniel Vetter [this message]
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 ` [PATCH 37/37] drm/vblank: Unexport drm_vblank_cleanup Daniel Vetter
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=20170531092045.3950-1-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 \
    /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.