From: Daniel Vetter <daniel@ffwll.ch>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
DRI Development <dri-devel@lists.freedesktop.org>,
Daniel Vetter <daniel.vetter@intel.com>
Subject: Re: [PATCH 07/28] drm: Update drm_plane_funcs kerneldoc
Date: Mon, 7 Dec 2015 13:34:16 +0100 [thread overview]
Message-ID: <20151207123416.GF10243@phenom.ffwll.local> (raw)
In-Reply-To: <20151207114638.GJ13177@ulmo>
On Mon, Dec 07, 2015 at 12:46:38PM +0100, Thierry Reding wrote:
> On Fri, Dec 04, 2015 at 09:45:48AM +0100, Daniel Vetter wrote:
> > diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
> [...]
> > + /**
> > + * @destroy:
> > + *
> > + * Clean up CRTC resources. This is only called at driver unload time
>
> Perhaps drop "only" because there are more than a single potential
> usage?
It's for driver unload only since you can't hotplug planes. The only
hotpluggable thing in drm atm are connectors, and I've added these blurbs
to highlight that.
>
> > + /**
> > + * @set_property:
> > + *
> > + * This is the legacy entry point to update a property attach to the
>
> "attached to"
>
> > - /* atomic update handling */
> > + /**
> > + * @atomic_duplicate_state:
> > + *
> > + * Duplicate the current atomic state for this CRTC and return it.
> > + * The core and helpers gurantee that any atomic state duplicated with
> > + * this hook and still owned by the caller (i.e. not transferred to the
> > + * driver by calling ->atomic_commit() from struct
> > + * &drm_mode_config_funcs) will be cleaned up by calling the
> > + * @atomic_destroy_state hook in this structure.
> > + *
> > + * Atomic drivers which don't subclass struct &drm_crtc should use
> > + * drm_atomic_helper_crtc_duplicate_state(). Drivers that subclass the
> > + * state structure to extend it with driver-private state should use
> > + * __drm_atomic_helper_crtc_duplicate_state() to make sure shared state is
> > + * duplicated in a consisten fashion across drivers.
>
> "consistent"
>
> > + /**
> > + * @atomic_set_property:
> > + *
> > + * Decode a driver-private property value and store the decoded value
> > + * into the passed-in state structure. Since the atomic core decodes all
> > + * standardized properties (even for extensions beyond the core set of
> > + * properties which might not be implemented by all drivers) this
> > + * requires drivers to subclass the state structure.
> > + *
> > + * Such driver-private properties should really only implemented for
>
> "be implemented"
>
> > + * This function is called in the state assembly phase of atomic
> > + * modesets, which can be aborted for any reason (including on
> > + * userspace's request to just check whether a configuration would be
> > + * possible). Drivers MUST NOT touch any persistent state (hardware or
> > + * software) or data structures except the passed in adjusted_mode
>
> Copy-paste error? Should be "... the passed in @state parameter."
>
> > + *
> > + * Also since userspace controls in which order properties are set this
> > + * function must not do any input validation (since the state update is
> > + * incompletely and hence likely inconsistent). Instead any such input
>
> "incomplete"
>
> > + * validation must be done in the various atomic_check callbacks.
> > + *
> > + * RETURNS:
> > + *
> > + * 0 if the property has been found, -EINVAL if the property isn't
> > + * implemented by the driver (which shouldn't ever happen, the core only
>
> s/shouldn't ever/should never/?
>
> > + * asks for properties attached to this CRTC). No other
>
> Seems like you could put more text on the above line.
>
> > + * validation is allowed by the driver. The core checks that the
> > + * property value is within the range (integer, valid enum value, ...)
> > + * the driver set when registering the property already.
>
> I'd put the "already" after "The core", otherwise it reads weird in my
> opinion.
>
> > + */
> > int (*atomic_set_property)(struct drm_crtc *crtc,
> > struct drm_crtc_state *state,
> > struct drm_property *property,
> > uint64_t val);
> > + /**
> > + * @atomic_get_property:
> > + *
> > + * Reads out the decoded driver-private property. This is used to
> > + * implement the GETCRTC ioctl.
> > + *
> > + * Do not call this function directly, use
> > + * drm_atomic_crtc_get_property() instead.
> > + *
> > + * This callback is optional if the driver does not support any
> > + * driver-private atomic properties.
> > + *
> > + * RETURNS:
> > + *
> > + * 0 on success, -EINVAL if ther property isn't implemented by the
>
> s/ther/the/
>
> > + * driver (which shouldn't ever happen, the core only asks for
>
> s/shouldn't ever/should never/?
>
> > + * properties attached on this CRTC).
>
> "attached to"
>
> > @@ -539,19 +662,142 @@ struct drm_connector_funcs {
> > enum drm_connector_status (*detect)(struct drm_connector *connector,
> > bool force);
> > int (*fill_modes)(struct drm_connector *connector, uint32_t max_width, uint32_t max_height);
> > +
> > + /**
> > + * @set_property:
> > + *
> > + * This is the legacy entry point to update a property attach to the
>
> "attached to"
>
> > + /**
> > + * @destroy:
> > + *
> > + * Clean up connector resources. This is only called at driver unload time
> > + * through drm_mode_config_cleanup(), but can also be called at runtime
> > + * when a connector is being hot-unplugged.
>
> Again, perhaps drop the "only" because it's inconsistent when followed
> by "but can also".
Yeah here the only is wrong so removed it. Also reworded the 2nd part
slightly to add DP MST as an expample and make it clear that you need a
driver which can hotplug connectors for this.
> Most of the comments on the CRTC helpers do apply to the connector
> helpers as well, so I haven't repeated them.
Yeah, I think I found all 3 instances of each.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2015-12-07 12:34 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-04 8:45 [PATCH 00/28] kerneldoc for display vtables Daniel Vetter
2015-12-04 8:45 ` [PATCH 01/28] drm: Polish fbdev helper struct docs Daniel Vetter
2015-12-07 10:45 ` Thierry Reding
2015-12-07 11:50 ` Daniel Vetter
2015-12-07 11:53 ` Thierry Reding
2015-12-04 8:45 ` [PATCH 02/28] drm: Move LEAVE/ENTER_ATOMIC_MODESET to fbdev helpers Daniel Vetter
2015-12-07 11:00 ` Thierry Reding
2015-12-04 8:45 ` [PATCH 03/28] drm: Reorganize helper vtables and their docs Daniel Vetter
2015-12-07 11:00 ` Thierry Reding
2015-12-07 11:59 ` Daniel Vetter
2015-12-07 12:26 ` Thierry Reding
2015-12-04 8:45 ` [PATCH 04/28] drm: Make helper vtable pointers type-safe Daniel Vetter
2015-12-07 11:01 ` Thierry Reding
2015-12-04 8:45 ` [PATCH 05/28] drm: Merge helper docbook into kerneldoc comments Daniel Vetter
2015-12-07 11:15 ` Thierry Reding
2015-12-04 8:45 ` [PATCH 06/28] drm/bridge: Improve kerneldoc Daniel Vetter
2015-12-04 10:43 ` Archit Taneja
2015-12-07 11:31 ` Thierry Reding
2015-12-04 8:45 ` [PATCH 07/28] drm: Update drm_plane_funcs kerneldoc Daniel Vetter
2015-12-07 11:46 ` Thierry Reding
2015-12-07 12:34 ` Daniel Vetter [this message]
2015-12-07 12:43 ` Thierry Reding
2015-12-07 13:00 ` Daniel Vetter
2015-12-04 8:45 ` [PATCH 08/28] drm/noveau: Ditch NULL save/restore hook assignments Daniel Vetter
2015-12-07 11:47 ` Thierry Reding
2015-12-04 8:45 ` [PATCH 09/28] drm/qxl: Drop dummy save/restore hooks Daniel Vetter
2015-12-07 11:47 ` Thierry Reding
2015-12-04 8:45 ` [PATCH 10/28] drm/virtio: Drop dummy save/restore functions Daniel Vetter
2015-12-07 11:47 ` Thierry Reding
2015-12-04 8:45 ` [PATCH 11/28] drm/vmwgfx: Drop dummy save/restore hooks Daniel Vetter
2015-12-07 11:48 ` Thierry Reding
2015-12-08 11:55 ` Thomas Hellstrom
2015-12-04 8:45 ` [PATCH 12/28] drm/gma500: Move to private " Daniel Vetter
2015-12-07 11:51 ` Thierry Reding
2015-12-04 8:45 ` [PATCH 13/28] drm/nouveau: Use " Daniel Vetter
2015-12-04 14:31 ` Ilia Mirkin
2015-12-04 16:06 ` Daniel Vetter
2015-12-04 16:13 ` [PATCH] drm/nouveau: Use private save/restore hooks for CRTCs Daniel Vetter
2015-12-07 11:51 ` Thierry Reding
2015-12-04 8:45 ` [PATCH 14/28] drm: Remove crtc/connector->save/restore hooks Daniel Vetter
2015-12-07 11:55 ` Thierry Reding
2015-12-04 8:45 ` [PATCH 15/28] drm: Move encoder->save/restore into nouveau Daniel Vetter
2015-12-04 16:14 ` [PATCH] " Daniel Vetter
2015-12-07 11:59 ` Thierry Reding
2015-12-04 8:45 ` [PATCH 16/28] drm: Document drm_atomic_*_get_property Daniel Vetter
2015-12-07 12:01 ` Thierry Reding
2015-12-07 12:51 ` Daniel Vetter
2015-12-04 8:45 ` [PATCH 17/28] drm: Document drm_connector_funcs Daniel Vetter
2015-12-07 12:05 ` Thierry Reding
2015-12-04 8:45 ` [PATCH 18/28] drm: connector->dpms is not optional Daniel Vetter
2015-12-07 12:06 ` Thierry Reding
2015-12-04 8:46 ` [PATCH 19/28] drm: document drm_crtc_funcs Daniel Vetter
2015-12-07 12:25 ` Thierry Reding
2015-12-04 8:46 ` [PATCH 20/28] drm: Add kerneldoc for drm_framebuffer_funcs Daniel Vetter
2015-12-07 12:37 ` Thierry Reding
2015-12-04 8:46 ` [PATCH 21/28] drm: Kerneldoc for drm_mode_config_funcs Daniel Vetter
2015-12-07 13:14 ` Thierry Reding
2015-12-07 13:34 ` Daniel Vetter
2015-12-04 8:46 ` [PATCH 22/28] drm/atomic-helper: Reject attempts at re-stealing encoders Daniel Vetter
2015-12-07 13:26 ` Thierry Reding
2015-12-07 13:40 ` Daniel Vetter
2015-12-04 8:46 ` [PATCH 23/28] drm: Document drm_plane_helper_funcs Daniel Vetter
2015-12-07 14:27 ` Thierry Reding
2015-12-07 14:43 ` Daniel Vetter
2015-12-04 8:46 ` [PATCH 24/28] drm: Document drm_connector_helper_funcs Daniel Vetter
2015-12-07 14:42 ` Thierry Reding
2015-12-07 14:48 ` Daniel Vetter
2015-12-07 15:27 ` Thierry Reding
2015-12-04 8:46 ` [PATCH 25/28] drm/atomic-helper: Mention the new system/resume helpers the docs Daniel Vetter
2015-12-07 14:45 ` Thierry Reding
2015-12-04 8:46 ` [PATCH 26/28] drm: Move drm_display_mode an related docs into kerneldoc Daniel Vetter
2015-12-07 13:39 ` Ville Syrjälä
2015-12-07 15:02 ` Thierry Reding
2015-12-07 15:33 ` Daniel Vetter
2015-12-04 8:46 ` [PATCH 27/28] drm: Document drm_encoder/crtc_helper_funcs Daniel Vetter
2015-12-07 15:21 ` Thierry Reding
2015-12-04 8:46 ` [PATCH 28/28] drm/atomic-helper: Reject legacy flips on a disabled pipe Daniel Vetter
2015-12-07 13:42 ` Ville Syrjälä
2015-12-07 15:25 ` Thierry Reding
2015-12-07 15:33 ` Daniel Stone
2015-12-08 8:23 ` Daniel Vetter
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=20151207123416.GF10243@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=daniel.vetter@ffwll.ch \
--cc=daniel.vetter@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=thierry.reding@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox