All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime.ripard@free-electrons.com>
To: Icenowy Zheng <icenowy@aosc.io>
Cc: Rob Herring <robh+dt@kernel.org>, Chen-Yu Tsai <wens@csie.org>,
	Jernej Skrabec <jernej.skrabec@siol.net>,
	linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	linux-sunxi@googlegroups.com
Subject: Re: [PATCH v3 04/11] drm/sun4i: abstract the layer type
Date: Mon, 3 Apr 2017 10:14:23 +0200	[thread overview]
Message-ID: <20170403081423.p6x4ytfoga2krygv@lukather> (raw)
In-Reply-To: <20170329194613.55548-5-icenowy@aosc.io>

[-- Attachment #1: Type: text/plain, Size: 3582 bytes --]

Hi,

On Thu, Mar 30, 2017 at 03:46:06AM +0800, Icenowy Zheng wrote:
> As we are going to add support for the Allwinner DE2 Mixer in sun4i-drm
> driver, we will finally have two types of layer.
> 
> Abstract the layer type to void * and a ops struct, which contains the
> only function used by crtc -- get the drm_plane struct of the layer.
> 
> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> ---
> Refactored patch in v3.
> 
>  drivers/gpu/drm/sun4i/sun4i_crtc.c  | 19 +++++++++++--------
>  drivers/gpu/drm/sun4i/sun4i_crtc.h  |  3 ++-
>  drivers/gpu/drm/sun4i/sun4i_layer.c | 19 ++++++++++++++++++-
>  drivers/gpu/drm/sun4i/sun4i_layer.h |  2 +-
>  drivers/gpu/drm/sun4i/sunxi_layer.h | 17 +++++++++++++++++
>  5 files changed, 49 insertions(+), 11 deletions(-)
>  create mode 100644 drivers/gpu/drm/sun4i/sunxi_layer.h
> 
> diff --git a/drivers/gpu/drm/sun4i/sun4i_crtc.c b/drivers/gpu/drm/sun4i/sun4i_crtc.c
> index 3c876c3a356a..33854ee7f636 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_crtc.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_crtc.c
> @@ -29,6 +29,7 @@
>  #include "sun4i_crtc.h"
>  #include "sun4i_drv.h"
>  #include "sun4i_layer.h"
> +#include "sunxi_layer.h"
>  #include "sun4i_tcon.h"
>  
>  static void sun4i_crtc_atomic_begin(struct drm_crtc *crtc,
> @@ -149,7 +150,7 @@ struct sun4i_crtc *sun4i_crtc_init(struct drm_device *drm,
>  	scrtc->tcon = tcon;
>  
>  	/* Create our layers */
> -	scrtc->layers = sun4i_layers_init(drm, scrtc->backend);
> +	scrtc->layers = (void **)sun4i_layers_init(drm, scrtc);
>  	if (IS_ERR(scrtc->layers)) {
>  		dev_err(drm->dev, "Couldn't create the planes\n");
>  		return NULL;
> @@ -157,14 +158,15 @@ struct sun4i_crtc *sun4i_crtc_init(struct drm_device *drm,
>  
>  	/* find primary and cursor planes for drm_crtc_init_with_planes */
>  	for (i = 0; scrtc->layers[i]; i++) {
> -		struct sun4i_layer *layer = scrtc->layers[i];
> +		void *layer = scrtc->layers[i];
> +		struct drm_plane *plane = scrtc->layer_ops->get_plane(layer);
>  
> -		switch (layer->plane.type) {
> +		switch (plane->type) {
>  		case DRM_PLANE_TYPE_PRIMARY:
> -			primary = &layer->plane;
> +			primary = plane;
>  			break;
>  		case DRM_PLANE_TYPE_CURSOR:
> -			cursor = &layer->plane;
> +			cursor = plane;
>  			break;
>  		default:
>  			break;
> @@ -190,10 +192,11 @@ struct sun4i_crtc *sun4i_crtc_init(struct drm_device *drm,
>  	/* Set possible_crtcs to this crtc for overlay planes */
>  	for (i = 0; scrtc->layers[i]; i++) {
>  		uint32_t possible_crtcs = BIT(drm_crtc_index(&scrtc->crtc));
> -		struct sun4i_layer *layer = scrtc->layers[i];
> +		void *layer = scrtc->layers[i];
> +		struct drm_plane *plane = scrtc->layer_ops->get_plane(layer);
>  
> -		if (layer->plane.type == DRM_PLANE_TYPE_OVERLAY)
> -			layer->plane.possible_crtcs = possible_crtcs;
> +		if (plane->type == DRM_PLANE_TYPE_OVERLAY)
> +			plane->possible_crtcs = possible_crtcs;

I think the logic should be reversed here, the CRTC shouldn't care
(much) about the layers at all.

We should modify sun4i_crtc_init to get the argument it needs (primary
and cursor planes for example) through its parameters, and have the
caller (which iirc is sun4i_drv) call it with the right parameters
depending on whether you're using DE or DE2.

If we're doing that, I don't think we even need the pointer to the
array of layers in struct sun4i_crtc, which will make it easier to
deal with.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Maxime Ripard <maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
To: Icenowy Zheng <icenowy-h8G6r0blFSE@public.gmane.org>
Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>,
	Jernej Skrabec <jernej.skrabec-gGgVlfcn5nU@public.gmane.org>,
	linux-clk-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
	linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
Subject: Re: [PATCH v3 04/11] drm/sun4i: abstract the layer type
Date: Mon, 3 Apr 2017 10:14:23 +0200	[thread overview]
Message-ID: <20170403081423.p6x4ytfoga2krygv@lukather> (raw)
In-Reply-To: <20170329194613.55548-5-icenowy-h8G6r0blFSE@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 3509 bytes --]

Hi,

On Thu, Mar 30, 2017 at 03:46:06AM +0800, Icenowy Zheng wrote:
> As we are going to add support for the Allwinner DE2 Mixer in sun4i-drm
> driver, we will finally have two types of layer.
> 
> Abstract the layer type to void * and a ops struct, which contains the
> only function used by crtc -- get the drm_plane struct of the layer.
> 
> Signed-off-by: Icenowy Zheng <icenowy-h8G6r0blFSE@public.gmane.org>
> ---
> Refactored patch in v3.
> 
>  drivers/gpu/drm/sun4i/sun4i_crtc.c  | 19 +++++++++++--------
>  drivers/gpu/drm/sun4i/sun4i_crtc.h  |  3 ++-
>  drivers/gpu/drm/sun4i/sun4i_layer.c | 19 ++++++++++++++++++-
>  drivers/gpu/drm/sun4i/sun4i_layer.h |  2 +-
>  drivers/gpu/drm/sun4i/sunxi_layer.h | 17 +++++++++++++++++
>  5 files changed, 49 insertions(+), 11 deletions(-)
>  create mode 100644 drivers/gpu/drm/sun4i/sunxi_layer.h
> 
> diff --git a/drivers/gpu/drm/sun4i/sun4i_crtc.c b/drivers/gpu/drm/sun4i/sun4i_crtc.c
> index 3c876c3a356a..33854ee7f636 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_crtc.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_crtc.c
> @@ -29,6 +29,7 @@
>  #include "sun4i_crtc.h"
>  #include "sun4i_drv.h"
>  #include "sun4i_layer.h"
> +#include "sunxi_layer.h"
>  #include "sun4i_tcon.h"
>  
>  static void sun4i_crtc_atomic_begin(struct drm_crtc *crtc,
> @@ -149,7 +150,7 @@ struct sun4i_crtc *sun4i_crtc_init(struct drm_device *drm,
>  	scrtc->tcon = tcon;
>  
>  	/* Create our layers */
> -	scrtc->layers = sun4i_layers_init(drm, scrtc->backend);
> +	scrtc->layers = (void **)sun4i_layers_init(drm, scrtc);
>  	if (IS_ERR(scrtc->layers)) {
>  		dev_err(drm->dev, "Couldn't create the planes\n");
>  		return NULL;
> @@ -157,14 +158,15 @@ struct sun4i_crtc *sun4i_crtc_init(struct drm_device *drm,
>  
>  	/* find primary and cursor planes for drm_crtc_init_with_planes */
>  	for (i = 0; scrtc->layers[i]; i++) {
> -		struct sun4i_layer *layer = scrtc->layers[i];
> +		void *layer = scrtc->layers[i];
> +		struct drm_plane *plane = scrtc->layer_ops->get_plane(layer);
>  
> -		switch (layer->plane.type) {
> +		switch (plane->type) {
>  		case DRM_PLANE_TYPE_PRIMARY:
> -			primary = &layer->plane;
> +			primary = plane;
>  			break;
>  		case DRM_PLANE_TYPE_CURSOR:
> -			cursor = &layer->plane;
> +			cursor = plane;
>  			break;
>  		default:
>  			break;
> @@ -190,10 +192,11 @@ struct sun4i_crtc *sun4i_crtc_init(struct drm_device *drm,
>  	/* Set possible_crtcs to this crtc for overlay planes */
>  	for (i = 0; scrtc->layers[i]; i++) {
>  		uint32_t possible_crtcs = BIT(drm_crtc_index(&scrtc->crtc));
> -		struct sun4i_layer *layer = scrtc->layers[i];
> +		void *layer = scrtc->layers[i];
> +		struct drm_plane *plane = scrtc->layer_ops->get_plane(layer);
>  
> -		if (layer->plane.type == DRM_PLANE_TYPE_OVERLAY)
> -			layer->plane.possible_crtcs = possible_crtcs;
> +		if (plane->type == DRM_PLANE_TYPE_OVERLAY)
> +			plane->possible_crtcs = possible_crtcs;

I think the logic should be reversed here, the CRTC shouldn't care
(much) about the layers at all.

We should modify sun4i_crtc_init to get the argument it needs (primary
and cursor planes for example) through its parameters, and have the
caller (which iirc is sun4i_drv) call it with the right parameters
depending on whether you're using DE or DE2.

If we're doing that, I don't think we even need the pointer to the
array of layers in struct sun4i_crtc, which will make it easier to
deal with.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

WARNING: multiple messages have this Message-ID (diff)
From: Maxime Ripard <maxime.ripard@free-electrons.com>
To: Icenowy Zheng <icenowy@aosc.io>
Cc: devicetree@vger.kernel.org,
	Jernej Skrabec <jernej.skrabec@siol.net>,
	linux-sunxi@googlegroups.com, linux-kernel@vger.kernel.org,
	dri-devel@lists.freedesktop.org, Chen-Yu Tsai <wens@csie.org>,
	Rob Herring <robh+dt@kernel.org>,
	linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 04/11] drm/sun4i: abstract the layer type
Date: Mon, 3 Apr 2017 10:14:23 +0200	[thread overview]
Message-ID: <20170403081423.p6x4ytfoga2krygv@lukather> (raw)
In-Reply-To: <20170329194613.55548-5-icenowy@aosc.io>


[-- Attachment #1.1: Type: text/plain, Size: 3582 bytes --]

Hi,

On Thu, Mar 30, 2017 at 03:46:06AM +0800, Icenowy Zheng wrote:
> As we are going to add support for the Allwinner DE2 Mixer in sun4i-drm
> driver, we will finally have two types of layer.
> 
> Abstract the layer type to void * and a ops struct, which contains the
> only function used by crtc -- get the drm_plane struct of the layer.
> 
> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> ---
> Refactored patch in v3.
> 
>  drivers/gpu/drm/sun4i/sun4i_crtc.c  | 19 +++++++++++--------
>  drivers/gpu/drm/sun4i/sun4i_crtc.h  |  3 ++-
>  drivers/gpu/drm/sun4i/sun4i_layer.c | 19 ++++++++++++++++++-
>  drivers/gpu/drm/sun4i/sun4i_layer.h |  2 +-
>  drivers/gpu/drm/sun4i/sunxi_layer.h | 17 +++++++++++++++++
>  5 files changed, 49 insertions(+), 11 deletions(-)
>  create mode 100644 drivers/gpu/drm/sun4i/sunxi_layer.h
> 
> diff --git a/drivers/gpu/drm/sun4i/sun4i_crtc.c b/drivers/gpu/drm/sun4i/sun4i_crtc.c
> index 3c876c3a356a..33854ee7f636 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_crtc.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_crtc.c
> @@ -29,6 +29,7 @@
>  #include "sun4i_crtc.h"
>  #include "sun4i_drv.h"
>  #include "sun4i_layer.h"
> +#include "sunxi_layer.h"
>  #include "sun4i_tcon.h"
>  
>  static void sun4i_crtc_atomic_begin(struct drm_crtc *crtc,
> @@ -149,7 +150,7 @@ struct sun4i_crtc *sun4i_crtc_init(struct drm_device *drm,
>  	scrtc->tcon = tcon;
>  
>  	/* Create our layers */
> -	scrtc->layers = sun4i_layers_init(drm, scrtc->backend);
> +	scrtc->layers = (void **)sun4i_layers_init(drm, scrtc);
>  	if (IS_ERR(scrtc->layers)) {
>  		dev_err(drm->dev, "Couldn't create the planes\n");
>  		return NULL;
> @@ -157,14 +158,15 @@ struct sun4i_crtc *sun4i_crtc_init(struct drm_device *drm,
>  
>  	/* find primary and cursor planes for drm_crtc_init_with_planes */
>  	for (i = 0; scrtc->layers[i]; i++) {
> -		struct sun4i_layer *layer = scrtc->layers[i];
> +		void *layer = scrtc->layers[i];
> +		struct drm_plane *plane = scrtc->layer_ops->get_plane(layer);
>  
> -		switch (layer->plane.type) {
> +		switch (plane->type) {
>  		case DRM_PLANE_TYPE_PRIMARY:
> -			primary = &layer->plane;
> +			primary = plane;
>  			break;
>  		case DRM_PLANE_TYPE_CURSOR:
> -			cursor = &layer->plane;
> +			cursor = plane;
>  			break;
>  		default:
>  			break;
> @@ -190,10 +192,11 @@ struct sun4i_crtc *sun4i_crtc_init(struct drm_device *drm,
>  	/* Set possible_crtcs to this crtc for overlay planes */
>  	for (i = 0; scrtc->layers[i]; i++) {
>  		uint32_t possible_crtcs = BIT(drm_crtc_index(&scrtc->crtc));
> -		struct sun4i_layer *layer = scrtc->layers[i];
> +		void *layer = scrtc->layers[i];
> +		struct drm_plane *plane = scrtc->layer_ops->get_plane(layer);
>  
> -		if (layer->plane.type == DRM_PLANE_TYPE_OVERLAY)
> -			layer->plane.possible_crtcs = possible_crtcs;
> +		if (plane->type == DRM_PLANE_TYPE_OVERLAY)
> +			plane->possible_crtcs = possible_crtcs;

I think the logic should be reversed here, the CRTC shouldn't care
(much) about the layers at all.

We should modify sun4i_crtc_init to get the argument it needs (primary
and cursor planes for example) through its parameters, and have the
caller (which iirc is sun4i_drv) call it with the right parameters
depending on whether you're using DE or DE2.

If we're doing that, I don't think we even need the pointer to the
array of layers in struct sun4i_crtc, which will make it easier to
deal with.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: maxime.ripard@free-electrons.com (Maxime Ripard)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 04/11] drm/sun4i: abstract the layer type
Date: Mon, 3 Apr 2017 10:14:23 +0200	[thread overview]
Message-ID: <20170403081423.p6x4ytfoga2krygv@lukather> (raw)
In-Reply-To: <20170329194613.55548-5-icenowy@aosc.io>

Hi,

On Thu, Mar 30, 2017 at 03:46:06AM +0800, Icenowy Zheng wrote:
> As we are going to add support for the Allwinner DE2 Mixer in sun4i-drm
> driver, we will finally have two types of layer.
> 
> Abstract the layer type to void * and a ops struct, which contains the
> only function used by crtc -- get the drm_plane struct of the layer.
> 
> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> ---
> Refactored patch in v3.
> 
>  drivers/gpu/drm/sun4i/sun4i_crtc.c  | 19 +++++++++++--------
>  drivers/gpu/drm/sun4i/sun4i_crtc.h  |  3 ++-
>  drivers/gpu/drm/sun4i/sun4i_layer.c | 19 ++++++++++++++++++-
>  drivers/gpu/drm/sun4i/sun4i_layer.h |  2 +-
>  drivers/gpu/drm/sun4i/sunxi_layer.h | 17 +++++++++++++++++
>  5 files changed, 49 insertions(+), 11 deletions(-)
>  create mode 100644 drivers/gpu/drm/sun4i/sunxi_layer.h
> 
> diff --git a/drivers/gpu/drm/sun4i/sun4i_crtc.c b/drivers/gpu/drm/sun4i/sun4i_crtc.c
> index 3c876c3a356a..33854ee7f636 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_crtc.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_crtc.c
> @@ -29,6 +29,7 @@
>  #include "sun4i_crtc.h"
>  #include "sun4i_drv.h"
>  #include "sun4i_layer.h"
> +#include "sunxi_layer.h"
>  #include "sun4i_tcon.h"
>  
>  static void sun4i_crtc_atomic_begin(struct drm_crtc *crtc,
> @@ -149,7 +150,7 @@ struct sun4i_crtc *sun4i_crtc_init(struct drm_device *drm,
>  	scrtc->tcon = tcon;
>  
>  	/* Create our layers */
> -	scrtc->layers = sun4i_layers_init(drm, scrtc->backend);
> +	scrtc->layers = (void **)sun4i_layers_init(drm, scrtc);
>  	if (IS_ERR(scrtc->layers)) {
>  		dev_err(drm->dev, "Couldn't create the planes\n");
>  		return NULL;
> @@ -157,14 +158,15 @@ struct sun4i_crtc *sun4i_crtc_init(struct drm_device *drm,
>  
>  	/* find primary and cursor planes for drm_crtc_init_with_planes */
>  	for (i = 0; scrtc->layers[i]; i++) {
> -		struct sun4i_layer *layer = scrtc->layers[i];
> +		void *layer = scrtc->layers[i];
> +		struct drm_plane *plane = scrtc->layer_ops->get_plane(layer);
>  
> -		switch (layer->plane.type) {
> +		switch (plane->type) {
>  		case DRM_PLANE_TYPE_PRIMARY:
> -			primary = &layer->plane;
> +			primary = plane;
>  			break;
>  		case DRM_PLANE_TYPE_CURSOR:
> -			cursor = &layer->plane;
> +			cursor = plane;
>  			break;
>  		default:
>  			break;
> @@ -190,10 +192,11 @@ struct sun4i_crtc *sun4i_crtc_init(struct drm_device *drm,
>  	/* Set possible_crtcs to this crtc for overlay planes */
>  	for (i = 0; scrtc->layers[i]; i++) {
>  		uint32_t possible_crtcs = BIT(drm_crtc_index(&scrtc->crtc));
> -		struct sun4i_layer *layer = scrtc->layers[i];
> +		void *layer = scrtc->layers[i];
> +		struct drm_plane *plane = scrtc->layer_ops->get_plane(layer);
>  
> -		if (layer->plane.type == DRM_PLANE_TYPE_OVERLAY)
> -			layer->plane.possible_crtcs = possible_crtcs;
> +		if (plane->type == DRM_PLANE_TYPE_OVERLAY)
> +			plane->possible_crtcs = possible_crtcs;

I think the logic should be reversed here, the CRTC shouldn't care
(much) about the layers at all.

We should modify sun4i_crtc_init to get the argument it needs (primary
and cursor planes for example) through its parameters, and have the
caller (which iirc is sun4i_drv) call it with the right parameters
depending on whether you're using DE or DE2.

If we're doing that, I don't think we even need the pointer to the
array of layers in struct sun4i_crtc, which will make it easier to
deal with.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170403/045d7d47/attachment.sig>

  reply	other threads:[~2017-04-03  8:14 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-29 19:46 [PATCH v3 00/11] Initial Allwinner Display Engine 2.0 Support Icenowy Zheng
2017-03-29 19:46 ` Icenowy Zheng
2017-03-29 19:46 ` Icenowy Zheng
2017-03-29 19:46 ` [PATCH v3 01/11] dt-bindings: add binding for the Allwinner DE2 CCU Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-04-03 15:33   ` Rob Herring
2017-04-03 15:33     ` Rob Herring
2017-04-03 15:33     ` Rob Herring
2017-04-03 15:33     ` Rob Herring
2017-04-03 16:18     ` Icenowy Zheng
2017-04-03 16:18       ` Icenowy Zheng
2017-04-03 16:18       ` Icenowy Zheng
2017-03-29 19:46 ` [PATCH v3 02/11] clk: sunxi-ng: add support for " Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46 ` [PATCH v3 03/11] dt-bindings: add bindings for DE2 on V3s SoC Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-04-03  8:00   ` Maxime Ripard
2017-04-03  8:00     ` Maxime Ripard
2017-04-03  8:00     ` Maxime Ripard
2017-04-03  8:00     ` Maxime Ripard
2017-03-29 19:46 ` [PATCH v3 04/11] drm/sun4i: abstract the layer type Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-04-03  8:14   ` Maxime Ripard [this message]
2017-04-03  8:14     ` Maxime Ripard
2017-04-03  8:14     ` Maxime Ripard
2017-04-03  8:14     ` Maxime Ripard
2017-04-03 10:51     ` Chen-Yu Tsai
2017-04-03 10:51       ` Chen-Yu Tsai
2017-04-03 10:51       ` Chen-Yu Tsai
2017-04-04 19:28   ` Sean Paul
2017-04-04 19:28     ` Sean Paul
2017-04-04 19:53     ` Icenowy Zheng
2017-04-04 19:53       ` Icenowy Zheng
2017-04-04 19:53       ` Icenowy Zheng
2017-04-05  2:27       ` [linux-sunxi] " Chen-Yu Tsai
2017-04-05  2:27         ` Chen-Yu Tsai
2017-04-05  2:27         ` Chen-Yu Tsai
2017-04-05 17:14         ` [linux-sunxi] " icenowy
2017-04-05 17:14           ` icenowy at aosc.io
2017-04-05 17:14           ` icenowy
2017-04-05 17:14           ` icenowy-h8G6r0blFSE
2017-03-29 19:46 ` [PATCH v3 05/11] drm/sun4i: abstract a mixer type Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-04-03  8:24   ` Maxime Ripard
2017-04-03  8:24     ` Maxime Ripard
2017-04-03  8:24     ` Maxime Ripard
2017-03-29 19:46 ` [PATCH v3 06/11] drm/sun4i: add support for Allwinner DE2 mixers Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 22:33   ` [linux-sunxi] " Jernej Škrabec
2017-03-29 22:33     ` Jernej Škrabec
2017-03-29 22:33     ` Jernej Škrabec
2017-03-29 19:46 ` [PATCH v3 07/11] drm/sun4i: Add compatible string for V3s display engine Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46 ` [PATCH v3 08/11] drm/sun4i: tcon: add support for V3s TCON Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46 ` [PATCH v3 09/11] ARM: dts: sun8i: add DE2 nodes for V3s SoC Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46 ` [PATCH v3 10/11] ARM: dts: sun8i: add pinmux for LCD pins of " Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46 ` [PATCH v3 11/11] [DO NOT MERGE] ARM: dts: sun8i: enable LCD panel of Lichee Pi Zero Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng
2017-03-29 19:46   ` Icenowy Zheng

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=20170403081423.p6x4ytfoga2krygv@lukather \
    --to=maxime.ripard@free-electrons.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=icenowy@aosc.io \
    --cc=jernej.skrabec@siol.net \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=robh+dt@kernel.org \
    --cc=wens@csie.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.