From: Sean Paul <seanpaul@chromium.org>
To: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Daniel Vetter <daniel.vetter@intel.com>,
Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
DRI Development <dri-devel@lists.freedesktop.org>
Subject: Re: [Intel-gfx] [PATCH 01/10] drm: Move a few macros away from drm_crtc.h
Date: Tue, 6 Sep 2016 12:59:46 -0400 [thread overview]
Message-ID: <CAOw6vbJCuT+KZcGfMV8M-ESW2xPwYBjZLDr18EbN7s31gfGxyA@mail.gmail.com> (raw)
In-Reply-To: <20160831160913.12991-2-daniel.vetter@ffwll.ch>
On Wed, Aug 31, 2016 at 12:09 PM, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
> Now that there's less stuff in there I noticed that I overlooked them.
> Sprinkle some docs over them while at it.
>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
> ---
> include/drm/drm_connector.h | 24 ++++++++++++++++++++++--
> include/drm/drm_crtc.h | 32 --------------------------------
> include/drm/drm_encoder.h | 22 ++++++++++++++++++++++
> include/drm/drm_framebuffer.h | 17 +++++++++++++++++
> include/drm/drm_modes.h | 2 ++
> include/drm/drm_property.h | 1 +
> 6 files changed, 64 insertions(+), 34 deletions(-)
>
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index 66b7d6744dd2..e4e545e9516d 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -181,14 +181,19 @@ int drm_display_info_set_bus_formats(struct drm_display_info *info,
> /**
> * struct drm_connector_state - mutable connector state
> * @connector: backpointer to the connector
> - * @crtc: CRTC to connect connector to, NULL if disabled
> * @best_encoder: can be used by helpers and drivers to select the encoder
> * @state: backpointer to global drm_atomic_state
> */
> struct drm_connector_state {
> struct drm_connector *connector;
>
> - struct drm_crtc *crtc; /* do not write directly, use drm_atomic_set_crtc_for_connector() */
> + /**
> + * @crtc: CRTC to connect connector to, NULL if disabled.
> + *
> + * Do not change this directly, use drm_atomic_set_crtc_for_connector()
> + * instead.
> + */
> + struct drm_crtc *crtc;
>
> struct drm_encoder *best_encoder;
>
> @@ -744,4 +749,19 @@ int drm_mode_connector_set_path_property(struct drm_connector *connector,
> int drm_mode_connector_set_tile_property(struct drm_connector *connector);
> int drm_mode_connector_update_edid_property(struct drm_connector *connector,
> const struct edid *edid);
> +
> +/**
> + * drm_for_each_connector - iterate over all connectors
> + * @connector: the loop cursor
> + * @dev: the DRM device
> + *
> + * Iterate over all connectors of @dev.
> + */
> +#define drm_for_each_connector(connector, dev) \
> + for (assert_drm_connector_list_read_locked(&(dev)->mode_config), \
> + connector = list_first_entry(&(dev)->mode_config.connector_list, \
> + struct drm_connector, head); \
> + &connector->head != (&(dev)->mode_config.connector_list); \
> + connector = list_next_entry(connector, head))
> +
> #endif
> diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
> index 4880606e2ffd..2a642ae96127 100644
> --- a/include/drm/drm_crtc.h
> +++ b/include/drm/drm_crtc.h
> @@ -1991,22 +1991,7 @@ struct drm_mode_config {
> list_for_each_entry((plane), &(dev)->mode_config.plane_list, head) \
> for_each_if ((plane_mask) & (1 << drm_plane_index(plane)))
>
> -/**
> - * drm_for_each_encoder_mask - iterate over encoders specified by bitmask
> - * @encoder: the loop cursor
> - * @dev: the DRM device
> - * @encoder_mask: bitmask of encoder indices
> - *
> - * Iterate over all encoders specified by bitmask.
> - */
> -#define drm_for_each_encoder_mask(encoder, dev, encoder_mask) \
> - list_for_each_entry((encoder), &(dev)->mode_config.encoder_list, head) \
> - for_each_if ((encoder_mask) & (1 << drm_encoder_index(encoder)))
> -
> #define obj_to_crtc(x) container_of(x, struct drm_crtc, base)
> -#define obj_to_mode(x) container_of(x, struct drm_display_mode, base)
> -#define obj_to_fb(x) container_of(x, struct drm_framebuffer, base)
> -#define obj_to_blob(x) container_of(x, struct drm_property_blob, base)
> #define obj_to_plane(x) container_of(x, struct drm_plane, base)
>
> extern __printf(6, 7)
> @@ -2174,23 +2159,6 @@ assert_drm_connector_list_read_locked(struct drm_mode_config *mode_config)
> !drm_modeset_is_locked(&mode_config->connection_mutex));
> }
>
> -#define drm_for_each_connector(connector, dev) \
> - for (assert_drm_connector_list_read_locked(&(dev)->mode_config), \
> - connector = list_first_entry(&(dev)->mode_config.connector_list, \
> - struct drm_connector, head); \
> - &connector->head != (&(dev)->mode_config.connector_list); \
> - connector = list_next_entry(connector, head))
> -
> -#define drm_for_each_encoder(encoder, dev) \
> - list_for_each_entry(encoder, &(dev)->mode_config.encoder_list, head)
> -
> -#define drm_for_each_fb(fb, dev) \
> - for (WARN_ON(!mutex_is_locked(&(dev)->mode_config.fb_lock)), \
> - fb = list_first_entry(&(dev)->mode_config.fb_list, \
> - struct drm_framebuffer, head); \
> - &fb->head != (&(dev)->mode_config.fb_list); \
> - fb = list_next_entry(fb, head))
> -
> /* drm_edid.c */
> bool drm_probe_ddc(struct i2c_adapter *adapter);
> struct edid *drm_get_edid(struct drm_connector *connector,
> diff --git a/include/drm/drm_encoder.h b/include/drm/drm_encoder.h
> index fce0203094f7..387e33a4d6ee 100644
> --- a/include/drm/drm_encoder.h
> +++ b/include/drm/drm_encoder.h
> @@ -224,4 +224,26 @@ static inline struct drm_encoder *drm_encoder_find(struct drm_device *dev,
>
> void drm_encoder_cleanup(struct drm_encoder *encoder);
>
> +/**
> + * drm_for_each_encoder_mask - iterate over encoders specified by bitmask
> + * @encoder: the loop cursor
> + * @dev: the DRM device
> + * @encoder_mask: bitmask of encoder indices
> + *
> + * Iterate over all encoders specified by bitmask.
> + */
> +#define drm_for_each_encoder_mask(encoder, dev, encoder_mask) \
> + list_for_each_entry((encoder), &(dev)->mode_config.encoder_list, head) \
> + for_each_if ((encoder_mask) & (1 << drm_encoder_index(encoder)))
> +
> +/**
> + * drm_for_each_encoder - iterate over all encoders
> + * @encoder: the loop cursor
> + * @dev: the DRM device
> + *
> + * Iterate over all encoders of @dev.
> + */
> +#define drm_for_each_encoder(encoder, dev) \
> + list_for_each_entry(encoder, &(dev)->mode_config.encoder_list, head)
> +
> #endif
> diff --git a/include/drm/drm_framebuffer.h b/include/drm/drm_framebuffer.h
> index b2554c50a903..f5ae1f436a4b 100644
> --- a/include/drm/drm_framebuffer.h
> +++ b/include/drm/drm_framebuffer.h
> @@ -206,6 +206,8 @@ struct drm_framebuffer {
> struct list_head filp_head;
> };
>
> +#define obj_to_fb(x) container_of(x, struct drm_framebuffer, base)
> +
> int drm_framebuffer_init(struct drm_device *dev,
> struct drm_framebuffer *fb,
> const struct drm_framebuffer_funcs *funcs);
> @@ -247,4 +249,19 @@ static inline uint32_t drm_framebuffer_read_refcount(struct drm_framebuffer *fb)
> {
> return atomic_read(&fb->base.refcount.refcount);
> }
> +
> +/**
> + * drm_for_each_fb - iterate over all framebuffers
> + * @fb: the loop cursor
> + * @dev: the DRM device
> + *
> + * Iterate over all framebuffers of @dev. User must hold the fb_lock from
> + * &drm_mode_config.
> + */
> +#define drm_for_each_fb(fb, dev) \
> + for (WARN_ON(!mutex_is_locked(&(dev)->mode_config.fb_lock)), \
> + fb = list_first_entry(&(dev)->mode_config.fb_list, \
> + struct drm_framebuffer, head); \
> + &fb->head != (&(dev)->mode_config.fb_list); \
> + fb = list_next_entry(fb, head))
> #endif
> diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h
> index 011f199d3bcf..986ed6ff635a 100644
> --- a/include/drm/drm_modes.h
> +++ b/include/drm/drm_modes.h
> @@ -403,6 +403,8 @@ struct drm_display_mode {
> enum hdmi_picture_aspect picture_aspect_ratio;
> };
>
> +#define obj_to_mode(x) container_of(x, struct drm_display_mode, base)
> +
> /**
> * drm_mode_is_stereo - check for stereo mode flags
> * @mode: drm_display_mode to check
> diff --git a/include/drm/drm_property.h b/include/drm/drm_property.h
> index 30ab289be05d..43c4b6a2046d 100644
> --- a/include/drm/drm_property.h
> +++ b/include/drm/drm_property.h
> @@ -219,6 +219,7 @@ struct drm_prop_enum_list {
> };
>
> #define obj_to_property(x) container_of(x, struct drm_property, base)
> +#define obj_to_blob(x) container_of(x, struct drm_property_blob, base)
>
> /**
> * drm_property_type_is - check the type of a property
> --
> 2.9.3
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2016-09-06 17:00 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-31 16:09 [PATCH 00/10] More splitting&documenting for drm_crtc.c Daniel Vetter
2016-08-31 16:09 ` [PATCH 01/10] drm: Move a few macros away from drm_crtc.h Daniel Vetter
2016-09-06 16:59 ` Sean Paul [this message]
2016-09-08 0:05 ` Carlos Santa
2016-08-31 16:09 ` [PATCH 02/10] drm: Extract drm_bridge.h Daniel Vetter
2016-09-02 9:25 ` Archit Taneja
2016-08-31 16:09 ` [PATCH 03/10] drm: Move all decl for drm_edid.c to drm_edid.h Daniel Vetter
2016-09-06 16:59 ` Sean Paul
2016-09-19 14:28 ` Daniel Vetter
2016-08-31 16:09 ` [PATCH 04/10] drm: Extract drm_plane.[hc] Daniel Vetter
2016-09-06 16:59 ` [Intel-gfx] " Sean Paul
2016-09-19 13:11 ` Daniel Vetter
2016-09-21 7:32 ` Sean Paul
2016-08-31 16:09 ` [PATCH 05/10] drm/doc: Polish for drm_plane.[hc] Daniel Vetter
2016-09-02 9:30 ` Archit Taneja
2016-09-19 13:13 ` Daniel Vetter
2016-09-21 6:38 ` Archit Taneja
2016-08-31 16:09 ` [PATCH 06/10] drm: Conslidate blending properties in drm_blend.[hc] Daniel Vetter
2016-09-06 16:59 ` Sean Paul
2016-08-31 16:09 ` [PATCH 07/10] drm/doc: Polish plane composition property docs Daniel Vetter
2016-09-06 16:59 ` Sean Paul
2016-08-31 16:09 ` [PATCH 08/10] drm: Extract drm_color_mgmt.[hc] Daniel Vetter
2016-09-01 9:51 ` [Intel-gfx] " Lionel Landwerlin
2016-08-31 16:09 ` [PATCH 09/10] drm/doc: Document color space handling Daniel Vetter
2016-09-01 10:16 ` Lionel Landwerlin
2016-09-06 16:59 ` [Intel-gfx] " Sean Paul
2016-08-31 16:09 ` [PATCH 10/10] drm: Remove dirty property from docs Daniel Vetter
2016-09-06 16:59 ` Sean Paul
2016-09-01 9:20 ` ✗ Fi.CI.BAT: failure for More splitting&documenting for drm_crtc.c 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=CAOw6vbJCuT+KZcGfMV8M-ESW2xPwYBjZLDr18EbN7s31gfGxyA@mail.gmail.com \
--to=seanpaul@chromium.org \
--cc=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.