All of lore.kernel.org
 help / color / mirror / Atom feed
From: Archit Taneja <architt@codeaurora.org>
To: Daniel Vetter <daniel.vetter@ffwll.ch>,
	DRI Development <dri-devel@lists.freedesktop.org>
Cc: Daniel Vetter <daniel.vetter@intel.com>,
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
	Archit Taneja <archit.taneja@gmail.com>
Subject: Re: [PATCH 02/10] drm: Extract drm_bridge.h
Date: Fri, 2 Sep 2016 14:55:57 +0530	[thread overview]
Message-ID: <57C945A5.8030902@codeaurora.org> (raw)
In-Reply-To: <20160831160913.12991-3-daniel.vetter@ffwll.ch>



On 8/31/2016 9:39 PM, Daniel Vetter wrote:
> We don't want to burry the bridge structures kerneldoc in drm_crtc.h.
>
> Cc: Archit Taneja <archit.taneja@gmail.com>

Reviewed-by: Archit Taneja <architt@codeaurora.org>

> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
>   Documentation/gpu/drm-kms-helpers.rst |   7 ++
>   drivers/gpu/drm/drm_bridge.c          |   5 +-
>   include/drm/drm_bridge.h              | 218 ++++++++++++++++++++++++++++++++++
>   include/drm/drm_connector.h           |   4 +
>   include/drm/drm_crtc.h                | 187 +----------------------------
>   include/drm/drm_mode_object.h         |   1 +
>   include/drm/drm_modes.h               |   4 +
>   7 files changed, 237 insertions(+), 189 deletions(-)
>   create mode 100644 include/drm/drm_bridge.h
>
> diff --git a/Documentation/gpu/drm-kms-helpers.rst b/Documentation/gpu/drm-kms-helpers.rst
> index 59fa3c11efab..48fc5a96bf95 100644
> --- a/Documentation/gpu/drm-kms-helpers.rst
> +++ b/Documentation/gpu/drm-kms-helpers.rst
> @@ -126,6 +126,13 @@ Default bridge callback sequence
>   .. kernel-doc:: drivers/gpu/drm/drm_bridge.c
>      :doc: bridge callbacks
>
> +
> +Bridge Helper Reference
> +-------------------------
> +
> +.. kernel-doc:: include/drm/drm_bridge.h
> +   :internal:
> +
>   .. kernel-doc:: drivers/gpu/drm/drm_bridge.c
>      :export:
>
> diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c
> index 484046664d6c..0ee052b7c21a 100644
> --- a/drivers/gpu/drm/drm_bridge.c
> +++ b/drivers/gpu/drm/drm_bridge.c
> @@ -23,10 +23,9 @@
>
>   #include <linux/err.h>
>   #include <linux/module.h>
> +#include <linux/mutex.h>
>
> -#include <drm/drm_crtc.h>
> -
> -#include "drm/drmP.h"
> +#include <drm/drm_bridge.h>
>
>   /**
>    * DOC: overview
> diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h
> new file mode 100644
> index 000000000000..530a1d6e8cde
> --- /dev/null
> +++ b/include/drm/drm_bridge.h
> @@ -0,0 +1,218 @@
> +/*
> + * Copyright (c) 2016 Intel Corporation
> + *
> + * Permission to use, copy, modify, distribute, and sell this software and its
> + * documentation for any purpose is hereby granted without fee, provided that
> + * the above copyright notice appear in all copies and that both that copyright
> + * notice and this permission notice appear in supporting documentation, and
> + * that the name of the copyright holders not be used in advertising or
> + * publicity pertaining to distribution of the software without specific,
> + * written prior permission.  The copyright holders make no representations
> + * about the suitability of this software for any purpose.  It is provided "as
> + * is" without express or implied warranty.
> + *
> + * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
> + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
> + * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
> + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
> + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
> + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
> + * OF THIS SOFTWARE.
> + */
> +
> +#ifndef __DRM_BRIDGE_H__
> +#define __DRM_BRIDGE_H__
> +
> +#include <linux/list.h>
> +#include <linux/ctype.h>
> +#include <drm/drm_mode_object.h>
> +#include <drm/drm_modes.h>
> +
> +struct drm_bridge;
> +
> +/**
> + * struct drm_bridge_funcs - drm_bridge control functions
> + */
> +struct drm_bridge_funcs {
> +	/**
> +	 * @attach:
> +	 *
> +	 * This callback is invoked whenever our bridge is being attached to a
> +	 * &drm_encoder.
> +	 *
> +	 * The attach callback is optional.
> +	 *
> +	 * RETURNS:
> +	 *
> +	 * Zero on success, error code on failure.
> +	 */
> +	int (*attach)(struct drm_bridge *bridge);
> +
> +	/**
> +	 * @detach:
> +	 *
> +	 * This callback is invoked whenever our bridge is being detached from a
> +	 * &drm_encoder.
> +	 *
> +	 * The detach callback is optional.
> +	 */
> +	void (*detach)(struct drm_bridge *bridge);
> +
> +	/**
> +	 * @mode_fixup:
> +	 *
> +	 * This callback is used to validate and adjust a mode. The paramater
> +	 * mode is the display mode that should be fed to the next element in
> +	 * the display chain, either the final &drm_connector or the next
> +	 * &drm_bridge. The parameter adjusted_mode is the input mode the bridge
> +	 * requires. It can be modified by this callback and does not need to
> +	 * match mode.
> +	 *
> +	 * This is the only hook that allows a bridge to reject a modeset. If
> +	 * this function passes all other callbacks must succeed for this
> +	 * configuration.
> +	 *
> +	 * The mode_fixup callback is optional.
> +	 *
> +	 * NOTE:
> +	 *
> +	 * This function is called in the check 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 @state parameter.
> +	 *
> +	 * RETURNS:
> +	 *
> +	 * True if an acceptable configuration is possible, false if the modeset
> +	 * operation should be rejected.
> +	 */
> +	bool (*mode_fixup)(struct drm_bridge *bridge,
> +			   const struct drm_display_mode *mode,
> +			   struct drm_display_mode *adjusted_mode);
> +	/**
> +	 * @disable:
> +	 *
> +	 * This callback should disable the bridge. It is called right before
> +	 * the preceding element in the display pipe is disabled. If the
> +	 * preceding element is a bridge this means it's called before that
> +	 * bridge's ->disable() function. If the preceding element is a
> +	 * &drm_encoder it's called right before the encoder's ->disable(),
> +	 * ->prepare() or ->dpms() hook from struct &drm_encoder_helper_funcs.
> +	 *
> +	 * The bridge can assume that the display pipe (i.e. clocks and timing
> +	 * signals) feeding it is still running when this callback is called.
> +	 *
> +	 * The disable callback is optional.
> +	 */
> +	void (*disable)(struct drm_bridge *bridge);
> +
> +	/**
> +	 * @post_disable:
> +	 *
> +	 * This callback should disable the bridge. It is called right after
> +	 * the preceding element in the display pipe is disabled. If the
> +	 * preceding element is a bridge this means it's called after that
> +	 * bridge's ->post_disable() function. If the preceding element is a
> +	 * &drm_encoder it's called right after the encoder's ->disable(),
> +	 * ->prepare() or ->dpms() hook from struct &drm_encoder_helper_funcs.
> +	 *
> +	 * The bridge must assume that the display pipe (i.e. clocks and timing
> +	 * singals) feeding it is no longer running when this callback is
> +	 * called.
> +	 *
> +	 * The post_disable callback is optional.
> +	 */
> +	void (*post_disable)(struct drm_bridge *bridge);
> +
> +	/**
> +	 * @mode_set:
> +	 *
> +	 * This callback should set the given mode on the bridge. It is called
> +	 * after the ->mode_set() callback for the preceding element in the
> +	 * display pipeline has been called already. The display pipe (i.e.
> +	 * clocks and timing signals) is off when this function is called.
> +	 */
> +	void (*mode_set)(struct drm_bridge *bridge,
> +			 struct drm_display_mode *mode,
> +			 struct drm_display_mode *adjusted_mode);
> +	/**
> +	 * @pre_enable:
> +	 *
> +	 * This callback should enable the bridge. It is called right before
> +	 * the preceding element in the display pipe is enabled. If the
> +	 * preceding element is a bridge this means it's called before that
> +	 * bridge's ->pre_enable() function. If the preceding element is a
> +	 * &drm_encoder it's called right before the encoder's ->enable(),
> +	 * ->commit() or ->dpms() hook from struct &drm_encoder_helper_funcs.
> +	 *
> +	 * The display pipe (i.e. clocks and timing signals) feeding this bridge
> +	 * will not yet be running when this callback is called. The bridge must
> +	 * not enable the display link feeding the next bridge in the chain (if
> +	 * there is one) when this callback is called.
> +	 *
> +	 * The pre_enable callback is optional.
> +	 */
> +	void (*pre_enable)(struct drm_bridge *bridge);
> +
> +	/**
> +	 * @enable:
> +	 *
> +	 * This callback should enable the bridge. It is called right after
> +	 * the preceding element in the display pipe is enabled. If the
> +	 * preceding element is a bridge this means it's called after that
> +	 * bridge's ->enable() function. If the preceding element is a
> +	 * &drm_encoder it's called right after the encoder's ->enable(),
> +	 * ->commit() or ->dpms() hook from struct &drm_encoder_helper_funcs.
> +	 *
> +	 * The bridge can assume that the display pipe (i.e. clocks and timing
> +	 * signals) feeding it is running when this callback is called. This
> +	 * callback must enable the display link feeding the next bridge in the
> +	 * chain if there is one.
> +	 *
> +	 * The enable callback is optional.
> +	 */
> +	void (*enable)(struct drm_bridge *bridge);
> +};
> +
> +/**
> + * struct drm_bridge - central DRM bridge control structure
> + * @dev: DRM device this bridge belongs to
> + * @encoder: encoder to which this bridge is connected
> + * @next: the next bridge in the encoder chain
> + * @of_node: device node pointer to the bridge
> + * @list: to keep track of all added bridges
> + * @funcs: control functions
> + * @driver_private: pointer to the bridge driver's internal context
> + */
> +struct drm_bridge {
> +	struct drm_device *dev;
> +	struct drm_encoder *encoder;
> +	struct drm_bridge *next;
> +#ifdef CONFIG_OF
> +	struct device_node *of_node;
> +#endif
> +	struct list_head list;
> +
> +	const struct drm_bridge_funcs *funcs;
> +	void *driver_private;
> +};
> +
> +int drm_bridge_add(struct drm_bridge *bridge);
> +void drm_bridge_remove(struct drm_bridge *bridge);
> +struct drm_bridge *of_drm_find_bridge(struct device_node *np);
> +int drm_bridge_attach(struct drm_device *dev, struct drm_bridge *bridge);
> +void drm_bridge_detach(struct drm_bridge *bridge);
> +
> +bool drm_bridge_mode_fixup(struct drm_bridge *bridge,
> +			const struct drm_display_mode *mode,
> +			struct drm_display_mode *adjusted_mode);
> +void drm_bridge_disable(struct drm_bridge *bridge);
> +void drm_bridge_post_disable(struct drm_bridge *bridge);
> +void drm_bridge_mode_set(struct drm_bridge *bridge,
> +			struct drm_display_mode *mode,
> +			struct drm_display_mode *adjusted_mode);
> +void drm_bridge_pre_enable(struct drm_bridge *bridge);
> +void drm_bridge_enable(struct drm_bridge *bridge);
> +
> +#endif
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index e4e545e9516d..51a15deda161 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -27,6 +27,10 @@
>   #include <linux/ctype.h>
>   #include <drm/drm_mode_object.h>
>
> +#include <uapi/drm/drm_mode.h>
> +
> +struct drm_device;
> +
>   struct drm_connector_helper_funcs;
>   struct drm_device;
>   struct drm_crtc;
> diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
> index 2a642ae96127..bf9ee1b97c26 100644
> --- a/include/drm/drm_crtc.h
> +++ b/include/drm/drm_crtc.h
> @@ -42,6 +42,7 @@
>   #include <drm/drm_connector.h>
>   #include <drm/drm_encoder.h>
>   #include <drm/drm_property.h>
> +#include <drm/drm_bridge.h>
>
>   struct drm_device;
>   struct drm_mode_set;
> @@ -1001,174 +1002,6 @@ struct drm_plane {
>   };
>
>   /**
> - * struct drm_bridge_funcs - drm_bridge control functions
> - */
> -struct drm_bridge_funcs {
> -	/**
> -	 * @attach:
> -	 *
> -	 * This callback is invoked whenever our bridge is being attached to a
> -	 * &drm_encoder.
> -	 *
> -	 * The attach callback is optional.
> -	 *
> -	 * RETURNS:
> -	 *
> -	 * Zero on success, error code on failure.
> -	 */
> -	int (*attach)(struct drm_bridge *bridge);
> -
> -	/**
> -	 * @detach:
> -	 *
> -	 * This callback is invoked whenever our bridge is being detached from a
> -	 * &drm_encoder.
> -	 *
> -	 * The detach callback is optional.
> -	 */
> -	void (*detach)(struct drm_bridge *bridge);
> -
> -	/**
> -	 * @mode_fixup:
> -	 *
> -	 * This callback is used to validate and adjust a mode. The paramater
> -	 * mode is the display mode that should be fed to the next element in
> -	 * the display chain, either the final &drm_connector or the next
> -	 * &drm_bridge. The parameter adjusted_mode is the input mode the bridge
> -	 * requires. It can be modified by this callback and does not need to
> -	 * match mode.
> -	 *
> -	 * This is the only hook that allows a bridge to reject a modeset. If
> -	 * this function passes all other callbacks must succeed for this
> -	 * configuration.
> -	 *
> -	 * The mode_fixup callback is optional.
> -	 *
> -	 * NOTE:
> -	 *
> -	 * This function is called in the check 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 @state parameter.
> -	 *
> -	 * RETURNS:
> -	 *
> -	 * True if an acceptable configuration is possible, false if the modeset
> -	 * operation should be rejected.
> -	 */
> -	bool (*mode_fixup)(struct drm_bridge *bridge,
> -			   const struct drm_display_mode *mode,
> -			   struct drm_display_mode *adjusted_mode);
> -	/**
> -	 * @disable:
> -	 *
> -	 * This callback should disable the bridge. It is called right before
> -	 * the preceding element in the display pipe is disabled. If the
> -	 * preceding element is a bridge this means it's called before that
> -	 * bridge's ->disable() function. If the preceding element is a
> -	 * &drm_encoder it's called right before the encoder's ->disable(),
> -	 * ->prepare() or ->dpms() hook from struct &drm_encoder_helper_funcs.
> -	 *
> -	 * The bridge can assume that the display pipe (i.e. clocks and timing
> -	 * signals) feeding it is still running when this callback is called.
> -	 *
> -	 * The disable callback is optional.
> -	 */
> -	void (*disable)(struct drm_bridge *bridge);
> -
> -	/**
> -	 * @post_disable:
> -	 *
> -	 * This callback should disable the bridge. It is called right after
> -	 * the preceding element in the display pipe is disabled. If the
> -	 * preceding element is a bridge this means it's called after that
> -	 * bridge's ->post_disable() function. If the preceding element is a
> -	 * &drm_encoder it's called right after the encoder's ->disable(),
> -	 * ->prepare() or ->dpms() hook from struct &drm_encoder_helper_funcs.
> -	 *
> -	 * The bridge must assume that the display pipe (i.e. clocks and timing
> -	 * singals) feeding it is no longer running when this callback is
> -	 * called.
> -	 *
> -	 * The post_disable callback is optional.
> -	 */
> -	void (*post_disable)(struct drm_bridge *bridge);
> -
> -	/**
> -	 * @mode_set:
> -	 *
> -	 * This callback should set the given mode on the bridge. It is called
> -	 * after the ->mode_set() callback for the preceding element in the
> -	 * display pipeline has been called already. The display pipe (i.e.
> -	 * clocks and timing signals) is off when this function is called.
> -	 */
> -	void (*mode_set)(struct drm_bridge *bridge,
> -			 struct drm_display_mode *mode,
> -			 struct drm_display_mode *adjusted_mode);
> -	/**
> -	 * @pre_enable:
> -	 *
> -	 * This callback should enable the bridge. It is called right before
> -	 * the preceding element in the display pipe is enabled. If the
> -	 * preceding element is a bridge this means it's called before that
> -	 * bridge's ->pre_enable() function. If the preceding element is a
> -	 * &drm_encoder it's called right before the encoder's ->enable(),
> -	 * ->commit() or ->dpms() hook from struct &drm_encoder_helper_funcs.
> -	 *
> -	 * The display pipe (i.e. clocks and timing signals) feeding this bridge
> -	 * will not yet be running when this callback is called. The bridge must
> -	 * not enable the display link feeding the next bridge in the chain (if
> -	 * there is one) when this callback is called.
> -	 *
> -	 * The pre_enable callback is optional.
> -	 */
> -	void (*pre_enable)(struct drm_bridge *bridge);
> -
> -	/**
> -	 * @enable:
> -	 *
> -	 * This callback should enable the bridge. It is called right after
> -	 * the preceding element in the display pipe is enabled. If the
> -	 * preceding element is a bridge this means it's called after that
> -	 * bridge's ->enable() function. If the preceding element is a
> -	 * &drm_encoder it's called right after the encoder's ->enable(),
> -	 * ->commit() or ->dpms() hook from struct &drm_encoder_helper_funcs.
> -	 *
> -	 * The bridge can assume that the display pipe (i.e. clocks and timing
> -	 * signals) feeding it is running when this callback is called. This
> -	 * callback must enable the display link feeding the next bridge in the
> -	 * chain if there is one.
> -	 *
> -	 * The enable callback is optional.
> -	 */
> -	void (*enable)(struct drm_bridge *bridge);
> -};
> -
> -/**
> - * struct drm_bridge - central DRM bridge control structure
> - * @dev: DRM device this bridge belongs to
> - * @encoder: encoder to which this bridge is connected
> - * @next: the next bridge in the encoder chain
> - * @of_node: device node pointer to the bridge
> - * @list: to keep track of all added bridges
> - * @funcs: control functions
> - * @driver_private: pointer to the bridge driver's internal context
> - */
> -struct drm_bridge {
> -	struct drm_device *dev;
> -	struct drm_encoder *encoder;
> -	struct drm_bridge *next;
> -#ifdef CONFIG_OF
> -	struct device_node *of_node;
> -#endif
> -	struct list_head list;
> -
> -	const struct drm_bridge_funcs *funcs;
> -	void *driver_private;
> -};
> -
> -/**
>    * struct drm_crtc_commit - track modeset commits on a CRTC
>    *
>    * This structure is used to track pending modeset changes and atomic commit on
> @@ -2188,22 +2021,4 @@ struct drm_display_mode *drm_mode_find_dmt(struct drm_device *dev,
>   					   int hsize, int vsize, int fresh,
>   					   bool rb);
>
> -/* drm_bridge.c */
> -extern int drm_bridge_add(struct drm_bridge *bridge);
> -extern void drm_bridge_remove(struct drm_bridge *bridge);
> -extern struct drm_bridge *of_drm_find_bridge(struct device_node *np);
> -extern int drm_bridge_attach(struct drm_device *dev, struct drm_bridge *bridge);
> -extern void drm_bridge_detach(struct drm_bridge *bridge);
> -
> -bool drm_bridge_mode_fixup(struct drm_bridge *bridge,
> -			const struct drm_display_mode *mode,
> -			struct drm_display_mode *adjusted_mode);
> -void drm_bridge_disable(struct drm_bridge *bridge);
> -void drm_bridge_post_disable(struct drm_bridge *bridge);
> -void drm_bridge_mode_set(struct drm_bridge *bridge,
> -			struct drm_display_mode *mode,
> -			struct drm_display_mode *adjusted_mode);
> -void drm_bridge_pre_enable(struct drm_bridge *bridge);
> -void drm_bridge_enable(struct drm_bridge *bridge);
> -
>   #endif /* __DRM_CRTC_H__ */
> diff --git a/include/drm/drm_mode_object.h b/include/drm/drm_mode_object.h
> index be3d93839ae2..43460b21d112 100644
> --- a/include/drm/drm_mode_object.h
> +++ b/include/drm/drm_mode_object.h
> @@ -26,6 +26,7 @@
>   #include <linux/kref.h>
>   struct drm_object_properties;
>   struct drm_property;
> +struct drm_device;
>
>   /**
>    * struct drm_mode_object - base structure for modeset objects
> diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h
> index 986ed6ff635a..9934d91619c1 100644
> --- a/include/drm/drm_modes.h
> +++ b/include/drm/drm_modes.h
> @@ -27,9 +27,13 @@
>   #ifndef __DRM_MODES_H__
>   #define __DRM_MODES_H__
>
> +#include <linux/hdmi.h>
> +
>   #include <drm/drm_mode_object.h>
>   #include <drm/drm_connector.h>
>
> +struct videomode;
> +
>   /*
>    * Note on terminology:  here, for brevity and convenience, we refer to connector
>    * control chips as 'CRTCs'.  They can control any type of connector, VGA, LVDS,
>

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2016-09-02  9:25 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   ` [Intel-gfx] " Sean Paul
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 [this message]
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=57C945A5.8030902@codeaurora.org \
    --to=architt@codeaurora.org \
    --cc=archit.taneja@gmail.com \
    --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.