From mboxrd@z Thu Jan 1 00:00:00 1970 From: laurent.pinchart@ideasonboard.com (Laurent Pinchart) Date: Tue, 09 Jan 2018 14:37:03 +0200 Subject: [PATCH 08/19] drm/rcar-du: Convert to the new generic alpha property In-Reply-To: References: Message-ID: <3654152.TXp4725KCx@avalon> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Maxime, Thank you for the patch. On Tuesday, 9 January 2018 12:56:27 EET Maxime Ripard wrote: > Now that we have support for per-plane alpha in the core, let's use it. > > Cc: Laurent Pinchart > Signed-off-by: Maxime Ripard Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/rcar-du/rcar_du_drv.h | 1 +- > drivers/gpu/drm/rcar-du/rcar_du_kms.c | 5 +--- > drivers/gpu/drm/rcar-du/rcar_du_plane.c | 15 +++------ > drivers/gpu/drm/rcar-du/rcar_du_plane.h | 2 +- > drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 42 ++------------------------ > drivers/gpu/drm/rcar-du/rcar_du_vsp.h | 2 +- > 6 files changed, 9 insertions(+), 58 deletions(-) > > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.h > b/drivers/gpu/drm/rcar-du/rcar_du_drv.h index f8cd79488ece..aff04adaae53 > 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.h > +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.h > @@ -89,7 +89,6 @@ struct rcar_du_device { > struct rcar_du_vsp vsps[RCAR_DU_MAX_VSPS]; > > struct { > - struct drm_property *alpha; > struct drm_property *colorkey; > } props; > > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_kms.c > b/drivers/gpu/drm/rcar-du/rcar_du_kms.c index 566d1a948c8f..e1b5a7b460cc > 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_kms.c > +++ b/drivers/gpu/drm/rcar-du/rcar_du_kms.c > @@ -417,11 +417,6 @@ static int rcar_du_encoders_init(struct rcar_du_device > *rcdu) > > static int rcar_du_properties_init(struct rcar_du_device *rcdu) > { > - rcdu->props.alpha = > - drm_property_create_range(rcdu->ddev, 0, "alpha", 0, 255); > - if (rcdu->props.alpha == NULL) > - return -ENOMEM; > - > /* > * The color key is expressed as an RGB888 triplet stored in a 32-bit > * integer in XRGB8888 format. Bit 24 is used as a flag to disable (0) > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.c > b/drivers/gpu/drm/rcar-du/rcar_du_plane.c index 61833cc1c699..5b34e8092c8b > 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_plane.c > +++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.c > @@ -423,7 +423,7 @@ static void rcar_du_plane_setup_mode(struct > rcar_du_group *rgrp, rcar_du_plane_write(rgrp, index, PnALPHAR, > PnALPHAR_ABIT_0); > else > rcar_du_plane_write(rgrp, index, PnALPHAR, > - PnALPHAR_ABIT_X | state->alpha); > + PnALPHAR_ABIT_X | state->state.alpha); > > pnmr = PnMR_BM_MD | state->format->pnmr; > > @@ -667,11 +667,11 @@ static void rcar_du_plane_reset(struct drm_plane > *plane) > > state->hwindex = -1; > state->source = RCAR_DU_PLANE_MEMORY; > - state->alpha = 255; > state->colorkey = RCAR_DU_COLORKEY_NONE; > state->state.zpos = plane->type == DRM_PLANE_TYPE_PRIMARY ? 0 : 1; > > plane->state = &state->state; > + plane->state->alpha = 255; > plane->state->plane = plane; > } > > @@ -683,9 +683,7 @@ static int rcar_du_plane_atomic_set_property(struct > drm_plane *plane, struct rcar_du_plane_state *rstate = > to_rcar_plane_state(state); struct rcar_du_device *rcdu = > to_rcar_plane(plane)->group->dev; > > - if (property == rcdu->props.alpha) > - rstate->alpha = val; > - else if (property == rcdu->props.colorkey) > + if (property == rcdu->props.colorkey) > rstate->colorkey = val; > else > return -EINVAL; > @@ -701,9 +699,7 @@ static int rcar_du_plane_atomic_get_property(struct > drm_plane *plane, container_of(state, const struct rcar_du_plane_state, > state); > struct rcar_du_device *rcdu = to_rcar_plane(plane)->group->dev; > > - if (property == rcdu->props.alpha) > - *val = rstate->alpha; > - else if (property == rcdu->props.colorkey) > + if (property == rcdu->props.colorkey) > *val = rstate->colorkey; > else > return -EINVAL; > @@ -772,10 +768,9 @@ int rcar_du_planes_init(struct rcar_du_group *rgrp) > continue; > > drm_object_attach_property(&plane->plane.base, > - rcdu->props.alpha, 255); > - drm_object_attach_property(&plane->plane.base, > rcdu->props.colorkey, > RCAR_DU_COLORKEY_NONE); > + drm_plane_create_alpha_property(&plane->plane, 255); > drm_plane_create_zpos_property(&plane->plane, 1, 1, 7); > } > > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.h > b/drivers/gpu/drm/rcar-du/rcar_du_plane.h index f62e09f195de..2dc793ebd1a2 > 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_plane.h > +++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.h > @@ -50,7 +50,6 @@ static inline struct rcar_du_plane *to_rcar_plane(struct > drm_plane *plane) * @state: base DRM plane state > * @format: information about the pixel format used by the plane > * @hwindex: 0-based hardware plane index, -1 means unused > - * @alpha: value of the plane alpha property > * @colorkey: value of the plane colorkey property > */ > struct rcar_du_plane_state { > @@ -60,7 +59,6 @@ struct rcar_du_plane_state { > int hwindex; > enum rcar_du_plane_source source; > > - unsigned int alpha; > unsigned int colorkey; > }; > > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c > b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c index 2c96147bc444..ee85f6fdffad > 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c > +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c > @@ -54,6 +54,7 @@ void rcar_du_vsp_enable(struct rcar_du_crtc *crtc) > }; > struct rcar_du_plane_state state = { > .state = { > + .alpha = 255, > .crtc = &crtc->crtc, > .crtc_x = 0, > .crtc_y = 0, > @@ -67,7 +68,6 @@ void rcar_du_vsp_enable(struct rcar_du_crtc *crtc) > }, > .format = rcar_du_format_info(DRM_FORMAT_ARGB8888), > .source = RCAR_DU_PLANE_VSPD1, > - .alpha = 255, > .colorkey = 0, > }; > > @@ -173,7 +173,7 @@ static void rcar_du_vsp_plane_setup(struct > rcar_du_vsp_plane *plane) struct vsp1_du_atomic_config cfg = { > .pixelformat = 0, > .pitch = fb->pitches[0], > - .alpha = state->alpha, > + .alpha = state->state.alpha, > .zpos = state->state.zpos, > }; > unsigned int i; > @@ -351,44 +351,13 @@ static void rcar_du_vsp_plane_reset(struct drm_plane > *plane) if (state == NULL) > return; > > - state->alpha = 255; > + state->state.alpha = 255; > state->state.zpos = plane->type == DRM_PLANE_TYPE_PRIMARY ? 0 : 1; > > plane->state = &state->state; > plane->state->plane = plane; > } > > -static int rcar_du_vsp_plane_atomic_set_property(struct drm_plane *plane, > - struct drm_plane_state *state, struct drm_property *property, > - uint64_t val) > -{ > - struct rcar_du_vsp_plane_state *rstate = to_rcar_vsp_plane_state(state); > - struct rcar_du_device *rcdu = to_rcar_vsp_plane(plane)->vsp->dev; > - > - if (property == rcdu->props.alpha) > - rstate->alpha = val; > - else > - return -EINVAL; > - > - return 0; > -} > - > -static int rcar_du_vsp_plane_atomic_get_property(struct drm_plane *plane, > - const struct drm_plane_state *state, struct drm_property *property, > - uint64_t *val) > -{ > - const struct rcar_du_vsp_plane_state *rstate = > - container_of(state, const struct rcar_du_vsp_plane_state, state); > - struct rcar_du_device *rcdu = to_rcar_vsp_plane(plane)->vsp->dev; > - > - if (property == rcdu->props.alpha) > - *val = rstate->alpha; > - else > - return -EINVAL; > - > - return 0; > -} > - > static const struct drm_plane_funcs rcar_du_vsp_plane_funcs = { > .update_plane = drm_atomic_helper_update_plane, > .disable_plane = drm_atomic_helper_disable_plane, > @@ -396,8 +365,6 @@ static const struct drm_plane_funcs > rcar_du_vsp_plane_funcs = { .destroy = drm_plane_cleanup, > .atomic_duplicate_state = rcar_du_vsp_plane_atomic_duplicate_state, > .atomic_destroy_state = rcar_du_vsp_plane_atomic_destroy_state, > - .atomic_set_property = rcar_du_vsp_plane_atomic_set_property, > - .atomic_get_property = rcar_du_vsp_plane_atomic_get_property, > }; > > int rcar_du_vsp_init(struct rcar_du_vsp *vsp, struct device_node *np, > @@ -454,8 +421,7 @@ int rcar_du_vsp_init(struct rcar_du_vsp *vsp, struct > device_node *np, if (type == DRM_PLANE_TYPE_PRIMARY) > continue; > > - drm_object_attach_property(&plane->plane.base, > - rcdu->props.alpha, 255); > + drm_plane_create_alpha_property(&plane->plane, 255); > drm_plane_create_zpos_property(&plane->plane, 1, 1, > vsp->num_planes - 1); > } > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.h > b/drivers/gpu/drm/rcar-du/rcar_du_vsp.h index f876c512163c..8b19914761e4 > 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.h > +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.h > @@ -44,7 +44,6 @@ static inline struct rcar_du_vsp_plane > *to_rcar_vsp_plane(struct drm_plane *p) * @state: base DRM plane state > * @format: information about the pixel format used by the plane > * @sg_tables: scatter-gather tables for the frame buffer memory > - * @alpha: value of the plane alpha property > * @zpos: value of the plane zpos property > */ > struct rcar_du_vsp_plane_state { > @@ -53,7 +52,6 @@ struct rcar_du_vsp_plane_state { > const struct rcar_du_format_info *format; > struct sg_table sg_tables[3]; > > - unsigned int alpha; > unsigned int zpos; > }; -- Regards, Laurent Pinchart From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 08/19] drm/rcar-du: Convert to the new generic alpha property Date: Tue, 09 Jan 2018 14:37:03 +0200 Message-ID: <3654152.TXp4725KCx@avalon> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from galahad.ideasonboard.com (galahad.ideasonboard.com [IPv6:2001:4b98:dc2:45:216:3eff:febb:480d]) by gabe.freedesktop.org (Postfix) with ESMTPS id ED95E89C69 for ; Tue, 9 Jan 2018 12:36:32 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Thomas Petazzoni , linux-kernel@vger.kernel.org, Chen-Yu Tsai , Daniel Vetter , Maxime Ripard , linux-arm-kernel@lists.infradead.org, thomas@vitsch.nl List-Id: dri-devel@lists.freedesktop.org SGkgTWF4aW1lLAoKVGhhbmsgeW91IGZvciB0aGUgcGF0Y2guCgpPbiBUdWVzZGF5LCA5IEphbnVh cnkgMjAxOCAxMjo1NjoyNyBFRVQgTWF4aW1lIFJpcGFyZCB3cm90ZToKPiBOb3cgdGhhdCB3ZSBo YXZlIHN1cHBvcnQgZm9yIHBlci1wbGFuZSBhbHBoYSBpbiB0aGUgY29yZSwgbGV0J3MgdXNlIGl0 Lgo+IAo+IENjOiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2Fy ZC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTWF4aW1lIFJpcGFyZCA8bWF4aW1lLnJpcGFyZEBmcmVl LWVsZWN0cm9ucy5jb20+CgpSZXZpZXdlZC1ieTogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5w aW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL3JjYXIt ZHUvcmNhcl9kdV9kcnYuaCAgIHwgIDEgKy0KPiAgZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNh cl9kdV9rbXMuYyAgIHwgIDUgKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1 X3BsYW5lLmMgfCAxNSArKystLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9k dV9wbGFuZS5oIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV92c3Au YyAgIHwgNDIgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL3Jj YXItZHUvcmNhcl9kdV92c3AuaCAgIHwgIDIgKy0KPiAgNiBmaWxlcyBjaGFuZ2VkLCA5IGluc2Vy dGlvbnMoKyksIDU4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcmNhci1kdS9yY2FyX2R1X2Rydi5oCj4gYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2Fy X2R1X2Rydi5oIGluZGV4IGY4Y2Q3OTQ4OGVjZS4uYWZmMDRhZGFhZTUzCj4gMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZHJ2LmgKPiBAQCAtODksNyArODksNiBAQCBzdHJ1Y3Qg cmNhcl9kdV9kZXZpY2Ugewo+ICAJc3RydWN0IHJjYXJfZHVfdnNwIHZzcHNbUkNBUl9EVV9NQVhf VlNQU107Cj4gCj4gIAlzdHJ1Y3Qgewo+IC0JCXN0cnVjdCBkcm1fcHJvcGVydHkgKmFscGhhOwo+ ICAJCXN0cnVjdCBkcm1fcHJvcGVydHkgKmNvbG9ya2V5Owo+ICAJfSBwcm9wczsKPiAKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9rbXMuYwo+IGIvZHJpdmVy cy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9rbXMuYyBpbmRleCA1NjZkMWE5NDhjOGYuLmUxYjVh N2I0NjBjYwo+IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVf a21zLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2ttcy5jCj4gQEAg LTQxNywxMSArNDE3LDYgQEAgc3RhdGljIGludCByY2FyX2R1X2VuY29kZXJzX2luaXQoc3RydWN0 IHJjYXJfZHVfZGV2aWNlCj4gKnJjZHUpCj4gCj4gIHN0YXRpYyBpbnQgcmNhcl9kdV9wcm9wZXJ0 aWVzX2luaXQoc3RydWN0IHJjYXJfZHVfZGV2aWNlICpyY2R1KQo+ICB7Cj4gLQlyY2R1LT5wcm9w cy5hbHBoYSA9Cj4gLQkJZHJtX3Byb3BlcnR5X2NyZWF0ZV9yYW5nZShyY2R1LT5kZGV2LCAwLCAi YWxwaGEiLCAwLCAyNTUpOwo+IC0JaWYgKHJjZHUtPnByb3BzLmFscGhhID09IE5VTEwpCj4gLQkJ cmV0dXJuIC1FTk9NRU07Cj4gLQo+ICAJLyoKPiAgCSAqIFRoZSBjb2xvciBrZXkgaXMgZXhwcmVz c2VkIGFzIGFuIFJHQjg4OCB0cmlwbGV0IHN0b3JlZCBpbiBhIDMyLWJpdAo+ICAJICogaW50ZWdl ciBpbiBYUkdCODg4OCBmb3JtYXQuIEJpdCAyNCBpcyB1c2VkIGFzIGEgZmxhZyB0byBkaXNhYmxl ICgwKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3BsYW5l LmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfcGxhbmUuYyBpbmRleCA2MTgz M2NjMWM2OTkuLjViMzRlODA5MmM4Ygo+IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9y Y2FyLWR1L3JjYXJfZHVfcGxhbmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3Jj YXJfZHVfcGxhbmUuYwo+IEBAIC00MjMsNyArNDIzLDcgQEAgc3RhdGljIHZvaWQgcmNhcl9kdV9w bGFuZV9zZXR1cF9tb2RlKHN0cnVjdAo+IHJjYXJfZHVfZ3JvdXAgKnJncnAsIHJjYXJfZHVfcGxh bmVfd3JpdGUocmdycCwgaW5kZXgsIFBuQUxQSEFSLAo+IFBuQUxQSEFSX0FCSVRfMCk7Cj4gIAll bHNlCj4gIAkJcmNhcl9kdV9wbGFuZV93cml0ZShyZ3JwLCBpbmRleCwgUG5BTFBIQVIsCj4gLQkJ CQkgICAgUG5BTFBIQVJfQUJJVF9YIHwgc3RhdGUtPmFscGhhKTsKPiArCQkJCSAgICBQbkFMUEhB Ul9BQklUX1ggfCBzdGF0ZS0+c3RhdGUuYWxwaGEpOwo+IAo+ICAJcG5tciA9IFBuTVJfQk1fTUQg fCBzdGF0ZS0+Zm9ybWF0LT5wbm1yOwo+IAo+IEBAIC02NjcsMTEgKzY2NywxMSBAQCBzdGF0aWMg dm9pZCByY2FyX2R1X3BsYW5lX3Jlc2V0KHN0cnVjdCBkcm1fcGxhbmUKPiAqcGxhbmUpCj4gCj4g IAlzdGF0ZS0+aHdpbmRleCA9IC0xOwo+ICAJc3RhdGUtPnNvdXJjZSA9IFJDQVJfRFVfUExBTkVf TUVNT1JZOwo+IC0Jc3RhdGUtPmFscGhhID0gMjU1Owo+ICAJc3RhdGUtPmNvbG9ya2V5ID0gUkNB Ul9EVV9DT0xPUktFWV9OT05FOwo+ICAJc3RhdGUtPnN0YXRlLnpwb3MgPSBwbGFuZS0+dHlwZSA9 PSBEUk1fUExBTkVfVFlQRV9QUklNQVJZID8gMCA6IDE7Cj4gCj4gIAlwbGFuZS0+c3RhdGUgPSAm c3RhdGUtPnN0YXRlOwo+ICsJcGxhbmUtPnN0YXRlLT5hbHBoYSA9IDI1NTsKPiAgCXBsYW5lLT5z dGF0ZS0+cGxhbmUgPSBwbGFuZTsKPiAgfQo+IAo+IEBAIC02ODMsOSArNjgzLDcgQEAgc3RhdGlj IGludCByY2FyX2R1X3BsYW5lX2F0b21pY19zZXRfcHJvcGVydHkoc3RydWN0Cj4gZHJtX3BsYW5l ICpwbGFuZSwgc3RydWN0IHJjYXJfZHVfcGxhbmVfc3RhdGUgKnJzdGF0ZSA9Cj4gdG9fcmNhcl9w bGFuZV9zdGF0ZShzdGF0ZSk7IHN0cnVjdCByY2FyX2R1X2RldmljZSAqcmNkdSA9Cj4gdG9fcmNh cl9wbGFuZShwbGFuZSktPmdyb3VwLT5kZXY7Cj4gCj4gLQlpZiAocHJvcGVydHkgPT0gcmNkdS0+ cHJvcHMuYWxwaGEpCj4gLQkJcnN0YXRlLT5hbHBoYSA9IHZhbDsKPiAtCWVsc2UgaWYgKHByb3Bl cnR5ID09IHJjZHUtPnByb3BzLmNvbG9ya2V5KQo+ICsJaWYgKHByb3BlcnR5ID09IHJjZHUtPnBy b3BzLmNvbG9ya2V5KQo+ICAJCXJzdGF0ZS0+Y29sb3JrZXkgPSB2YWw7Cj4gIAllbHNlCj4gIAkJ cmV0dXJuIC1FSU5WQUw7Cj4gQEAgLTcwMSw5ICs2OTksNyBAQCBzdGF0aWMgaW50IHJjYXJfZHVf cGxhbmVfYXRvbWljX2dldF9wcm9wZXJ0eShzdHJ1Y3QKPiBkcm1fcGxhbmUgKnBsYW5lLCBjb250 YWluZXJfb2Yoc3RhdGUsIGNvbnN0IHN0cnVjdCByY2FyX2R1X3BsYW5lX3N0YXRlLAo+IHN0YXRl KTsKPiAgCXN0cnVjdCByY2FyX2R1X2RldmljZSAqcmNkdSA9IHRvX3JjYXJfcGxhbmUocGxhbmUp LT5ncm91cC0+ZGV2Owo+IAo+IC0JaWYgKHByb3BlcnR5ID09IHJjZHUtPnByb3BzLmFscGhhKQo+ IC0JCSp2YWwgPSByc3RhdGUtPmFscGhhOwo+IC0JZWxzZSBpZiAocHJvcGVydHkgPT0gcmNkdS0+ cHJvcHMuY29sb3JrZXkpCj4gKwlpZiAocHJvcGVydHkgPT0gcmNkdS0+cHJvcHMuY29sb3JrZXkp Cj4gIAkJKnZhbCA9IHJzdGF0ZS0+Y29sb3JrZXk7Cj4gIAllbHNlCj4gIAkJcmV0dXJuIC1FSU5W QUw7Cj4gQEAgLTc3MiwxMCArNzY4LDkgQEAgaW50IHJjYXJfZHVfcGxhbmVzX2luaXQoc3RydWN0 IHJjYXJfZHVfZ3JvdXAgKnJncnApCj4gIAkJCWNvbnRpbnVlOwo+IAo+ICAJCWRybV9vYmplY3Rf YXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+cGxhbmUuYmFzZSwKPiAtCQkJCQkgICByY2R1LT5wcm9w cy5hbHBoYSwgMjU1KTsKPiAtCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPnBs YW5lLmJhc2UsCj4gIAkJCQkJICAgcmNkdS0+cHJvcHMuY29sb3JrZXksCj4gIAkJCQkJICAgUkNB Ul9EVV9DT0xPUktFWV9OT05FKTsKPiArCQlkcm1fcGxhbmVfY3JlYXRlX2FscGhhX3Byb3BlcnR5 KCZwbGFuZS0+cGxhbmUsIDI1NSk7Cj4gIAkJZHJtX3BsYW5lX2NyZWF0ZV96cG9zX3Byb3BlcnR5 KCZwbGFuZS0+cGxhbmUsIDEsIDEsIDcpOwo+ICAJfQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3BsYW5lLmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9yY2Fy LWR1L3JjYXJfZHVfcGxhbmUuaCBpbmRleCBmNjJlMDlmMTk1ZGUuLjJkYzc5M2ViZDFhMgo+IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfcGxhbmUuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfcGxhbmUuaAo+IEBAIC01MCw3ICs1 MCw2IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHJjYXJfZHVfcGxhbmUgKnRvX3JjYXJfcGxhbmUo c3RydWN0Cj4gZHJtX3BsYW5lICpwbGFuZSkgKiBAc3RhdGU6IGJhc2UgRFJNIHBsYW5lIHN0YXRl Cj4gICAqIEBmb3JtYXQ6IGluZm9ybWF0aW9uIGFib3V0IHRoZSBwaXhlbCBmb3JtYXQgdXNlZCBi eSB0aGUgcGxhbmUKPiAgICogQGh3aW5kZXg6IDAtYmFzZWQgaGFyZHdhcmUgcGxhbmUgaW5kZXgs IC0xIG1lYW5zIHVudXNlZAo+IC0gKiBAYWxwaGE6IHZhbHVlIG9mIHRoZSBwbGFuZSBhbHBoYSBw cm9wZXJ0eQo+ICAgKiBAY29sb3JrZXk6IHZhbHVlIG9mIHRoZSBwbGFuZSBjb2xvcmtleSBwcm9w ZXJ0eQo+ICAgKi8KPiAgc3RydWN0IHJjYXJfZHVfcGxhbmVfc3RhdGUgewo+IEBAIC02MCw3ICs1 OSw2IEBAIHN0cnVjdCByY2FyX2R1X3BsYW5lX3N0YXRlIHsKPiAgCWludCBod2luZGV4Owo+ICAJ ZW51bSByY2FyX2R1X3BsYW5lX3NvdXJjZSBzb3VyY2U7Cj4gCj4gLQl1bnNpZ25lZCBpbnQgYWxw aGE7Cj4gIAl1bnNpZ25lZCBpbnQgY29sb3JrZXk7Cj4gIH07Cj4gCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfdnNwLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9y Y2FyLWR1L3JjYXJfZHVfdnNwLmMgaW5kZXggMmM5NjE0N2JjNDQ0Li5lZTg1ZjZmZGZmYWQKPiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3ZzcC5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV92c3AuYwo+IEBAIC01NCw2ICs1NCw3 IEBAIHZvaWQgcmNhcl9kdV92c3BfZW5hYmxlKHN0cnVjdCByY2FyX2R1X2NydGMgKmNydGMpCj4g IAl9Owo+ICAJc3RydWN0IHJjYXJfZHVfcGxhbmVfc3RhdGUgc3RhdGUgPSB7Cj4gIAkJLnN0YXRl ID0gewo+ICsJCQkuYWxwaGEgPSAyNTUsCj4gIAkJCS5jcnRjID0gJmNydGMtPmNydGMsCj4gIAkJ CS5jcnRjX3ggPSAwLAo+ICAJCQkuY3J0Y195ID0gMCwKPiBAQCAtNjcsNyArNjgsNiBAQCB2b2lk IHJjYXJfZHVfdnNwX2VuYWJsZShzdHJ1Y3QgcmNhcl9kdV9jcnRjICpjcnRjKQo+ICAJCX0sCj4g IAkJLmZvcm1hdCA9IHJjYXJfZHVfZm9ybWF0X2luZm8oRFJNX0ZPUk1BVF9BUkdCODg4OCksCj4g IAkJLnNvdXJjZSA9IFJDQVJfRFVfUExBTkVfVlNQRDEsCj4gLQkJLmFscGhhID0gMjU1LAo+ICAJ CS5jb2xvcmtleSA9IDAsCj4gIAl9Owo+IAo+IEBAIC0xNzMsNyArMTczLDcgQEAgc3RhdGljIHZv aWQgcmNhcl9kdV92c3BfcGxhbmVfc2V0dXAoc3RydWN0Cj4gcmNhcl9kdV92c3BfcGxhbmUgKnBs YW5lKSBzdHJ1Y3QgdnNwMV9kdV9hdG9taWNfY29uZmlnIGNmZyA9IHsKPiAgCQkucGl4ZWxmb3Jt YXQgPSAwLAo+ICAJCS5waXRjaCA9IGZiLT5waXRjaGVzWzBdLAo+IC0JCS5hbHBoYSA9IHN0YXRl LT5hbHBoYSwKPiArCQkuYWxwaGEgPSBzdGF0ZS0+c3RhdGUuYWxwaGEsCj4gIAkJLnpwb3MgPSBz dGF0ZS0+c3RhdGUuenBvcywKPiAgCX07Cj4gIAl1bnNpZ25lZCBpbnQgaTsKPiBAQCAtMzUxLDQ0 ICszNTEsMTMgQEAgc3RhdGljIHZvaWQgcmNhcl9kdV92c3BfcGxhbmVfcmVzZXQoc3RydWN0IGRy bV9wbGFuZQo+ICpwbGFuZSkgaWYgKHN0YXRlID09IE5VTEwpCj4gIAkJcmV0dXJuOwo+IAo+IC0J c3RhdGUtPmFscGhhID0gMjU1Owo+ICsJc3RhdGUtPnN0YXRlLmFscGhhID0gMjU1Owo+ICAJc3Rh dGUtPnN0YXRlLnpwb3MgPSBwbGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9QUklNQVJZID8g MCA6IDE7Cj4gCj4gIAlwbGFuZS0+c3RhdGUgPSAmc3RhdGUtPnN0YXRlOwo+ICAJcGxhbmUtPnN0 YXRlLT5wbGFuZSA9IHBsYW5lOwo+ICB9Cj4gCj4gLXN0YXRpYyBpbnQgcmNhcl9kdV92c3BfcGxh bmVfYXRvbWljX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAtCXN0cnVj dCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlLCBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwK PiAtCXVpbnQ2NF90IHZhbCkKPiAtewo+IC0Jc3RydWN0IHJjYXJfZHVfdnNwX3BsYW5lX3N0YXRl ICpyc3RhdGUgPSB0b19yY2FyX3ZzcF9wbGFuZV9zdGF0ZShzdGF0ZSk7Cj4gLQlzdHJ1Y3QgcmNh cl9kdV9kZXZpY2UgKnJjZHUgPSB0b19yY2FyX3ZzcF9wbGFuZShwbGFuZSktPnZzcC0+ZGV2Owo+ IC0KPiAtCWlmIChwcm9wZXJ0eSA9PSByY2R1LT5wcm9wcy5hbHBoYSkKPiAtCQlyc3RhdGUtPmFs cGhhID0gdmFsOwo+IC0JZWxzZQo+IC0JCXJldHVybiAtRUlOVkFMOwo+IC0KPiAtCXJldHVybiAw Owo+IC19Cj4gLQo+IC1zdGF0aWMgaW50IHJjYXJfZHVfdnNwX3BsYW5lX2F0b21pY19nZXRfcHJv cGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gLQljb25zdCBzdHJ1Y3QgZHJtX3BsYW5l X3N0YXRlICpzdGF0ZSwgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCj4gLQl1aW50NjRf dCAqdmFsKQo+IC17Cj4gLQljb25zdCBzdHJ1Y3QgcmNhcl9kdV92c3BfcGxhbmVfc3RhdGUgKnJz dGF0ZSA9Cj4gLQkJY29udGFpbmVyX29mKHN0YXRlLCBjb25zdCBzdHJ1Y3QgcmNhcl9kdV92c3Bf cGxhbmVfc3RhdGUsIHN0YXRlKTsKPiAtCXN0cnVjdCByY2FyX2R1X2RldmljZSAqcmNkdSA9IHRv X3JjYXJfdnNwX3BsYW5lKHBsYW5lKS0+dnNwLT5kZXY7Cj4gLQo+IC0JaWYgKHByb3BlcnR5ID09 IHJjZHUtPnByb3BzLmFscGhhKQo+IC0JCSp2YWwgPSByc3RhdGUtPmFscGhhOwo+IC0JZWxzZQo+ IC0JCXJldHVybiAtRUlOVkFMOwo+IC0KPiAtCXJldHVybiAwOwo+IC19Cj4gLQo+ICBzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyByY2FyX2R1X3ZzcF9wbGFuZV9mdW5jcyA9IHsK PiAgCS51cGRhdGVfcGxhbmUgPSBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfcGxhbmUsCj4gIAku ZGlzYWJsZV9wbGFuZSA9IGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUsCj4gQEAgLTM5 Niw4ICszNjUsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcwo+IHJjYXJf ZHVfdnNwX3BsYW5lX2Z1bmNzID0geyAuZGVzdHJveSA9IGRybV9wbGFuZV9jbGVhbnVwLAo+ICAJ LmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSByY2FyX2R1X3ZzcF9wbGFuZV9hdG9taWNfZHVwbGlj YXRlX3N0YXRlLAo+ICAJLmF0b21pY19kZXN0cm95X3N0YXRlID0gcmNhcl9kdV92c3BfcGxhbmVf YXRvbWljX2Rlc3Ryb3lfc3RhdGUsCj4gLQkuYXRvbWljX3NldF9wcm9wZXJ0eSA9IHJjYXJfZHVf dnNwX3BsYW5lX2F0b21pY19zZXRfcHJvcGVydHksCj4gLQkuYXRvbWljX2dldF9wcm9wZXJ0eSA9 IHJjYXJfZHVfdnNwX3BsYW5lX2F0b21pY19nZXRfcHJvcGVydHksCj4gIH07Cj4gCj4gIGludCBy Y2FyX2R1X3ZzcF9pbml0KHN0cnVjdCByY2FyX2R1X3ZzcCAqdnNwLCBzdHJ1Y3QgZGV2aWNlX25v ZGUgKm5wLAo+IEBAIC00NTQsOCArNDIxLDcgQEAgaW50IHJjYXJfZHVfdnNwX2luaXQoc3RydWN0 IHJjYXJfZHVfdnNwICp2c3AsIHN0cnVjdAo+IGRldmljZV9ub2RlICpucCwgaWYgKHR5cGUgPT0g RFJNX1BMQU5FX1RZUEVfUFJJTUFSWSkKPiAgCQkJY29udGludWU7Cj4gCj4gLQkJZHJtX29iamVj dF9hdHRhY2hfcHJvcGVydHkoJnBsYW5lLT5wbGFuZS5iYXNlLAo+IC0JCQkJCSAgIHJjZHUtPnBy b3BzLmFscGhhLCAyNTUpOwo+ICsJCWRybV9wbGFuZV9jcmVhdGVfYWxwaGFfcHJvcGVydHkoJnBs YW5lLT5wbGFuZSwgMjU1KTsKPiAgCQlkcm1fcGxhbmVfY3JlYXRlX3pwb3NfcHJvcGVydHkoJnBs YW5lLT5wbGFuZSwgMSwgMSwKPiAgCQkJCQkgICAgICAgdnNwLT5udW1fcGxhbmVzIC0gMSk7Cj4g IAl9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfdnNwLmgK PiBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfdnNwLmggaW5kZXggZjg3NmM1MTIx NjNjLi44YjE5OTE0NzYxZTQKPiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1k dS9yY2FyX2R1X3ZzcC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV92 c3AuaAo+IEBAIC00NCw3ICs0NCw2IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHJjYXJfZHVfdnNw X3BsYW5lCj4gKnRvX3JjYXJfdnNwX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnApICogQHN0YXRl OiBiYXNlIERSTSBwbGFuZSBzdGF0ZQo+ICAgKiBAZm9ybWF0OiBpbmZvcm1hdGlvbiBhYm91dCB0 aGUgcGl4ZWwgZm9ybWF0IHVzZWQgYnkgdGhlIHBsYW5lCj4gICAqIEBzZ190YWJsZXM6IHNjYXR0 ZXItZ2F0aGVyIHRhYmxlcyBmb3IgdGhlIGZyYW1lIGJ1ZmZlciBtZW1vcnkKPiAtICogQGFscGhh OiB2YWx1ZSBvZiB0aGUgcGxhbmUgYWxwaGEgcHJvcGVydHkKPiAgICogQHpwb3M6IHZhbHVlIG9m IHRoZSBwbGFuZSB6cG9zIHByb3BlcnR5Cj4gICAqLwo+ICBzdHJ1Y3QgcmNhcl9kdV92c3BfcGxh bmVfc3RhdGUgewo+IEBAIC01Myw3ICs1Miw2IEBAIHN0cnVjdCByY2FyX2R1X3ZzcF9wbGFuZV9z dGF0ZSB7Cj4gIAljb25zdCBzdHJ1Y3QgcmNhcl9kdV9mb3JtYXRfaW5mbyAqZm9ybWF0Owo+ICAJ c3RydWN0IHNnX3RhYmxlIHNnX3RhYmxlc1szXTsKPiAKPiAtCXVuc2lnbmVkIGludCBhbHBoYTsK PiAgCXVuc2lnbmVkIGludCB6cG9zOwo+ICB9OwoKLS0gClJlZ2FyZHMsCgpMYXVyZW50IFBpbmNo YXJ0CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755732AbeAIMge (ORCPT + 1 other); Tue, 9 Jan 2018 07:36:34 -0500 Received: from galahad.ideasonboard.com ([185.26.127.97]:56213 "EHLO galahad.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752737AbeAIMgc (ORCPT ); Tue, 9 Jan 2018 07:36:32 -0500 From: Laurent Pinchart To: dri-devel@lists.freedesktop.org Cc: Maxime Ripard , Chen-Yu Tsai , Daniel Vetter , Jani Nikula , Sean Paul , Thomas Petazzoni , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, thomas@vitsch.nl Subject: Re: [PATCH 08/19] drm/rcar-du: Convert to the new generic alpha property Date: Tue, 09 Jan 2018 14:37:03 +0200 Message-ID: <3654152.TXp4725KCx@avalon> Organization: Ideas on Board Oy In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: Hi Maxime, Thank you for the patch. On Tuesday, 9 January 2018 12:56:27 EET Maxime Ripard wrote: > Now that we have support for per-plane alpha in the core, let's use it. > > Cc: Laurent Pinchart > Signed-off-by: Maxime Ripard Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/rcar-du/rcar_du_drv.h | 1 +- > drivers/gpu/drm/rcar-du/rcar_du_kms.c | 5 +--- > drivers/gpu/drm/rcar-du/rcar_du_plane.c | 15 +++------ > drivers/gpu/drm/rcar-du/rcar_du_plane.h | 2 +- > drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 42 ++------------------------ > drivers/gpu/drm/rcar-du/rcar_du_vsp.h | 2 +- > 6 files changed, 9 insertions(+), 58 deletions(-) > > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.h > b/drivers/gpu/drm/rcar-du/rcar_du_drv.h index f8cd79488ece..aff04adaae53 > 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.h > +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.h > @@ -89,7 +89,6 @@ struct rcar_du_device { > struct rcar_du_vsp vsps[RCAR_DU_MAX_VSPS]; > > struct { > - struct drm_property *alpha; > struct drm_property *colorkey; > } props; > > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_kms.c > b/drivers/gpu/drm/rcar-du/rcar_du_kms.c index 566d1a948c8f..e1b5a7b460cc > 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_kms.c > +++ b/drivers/gpu/drm/rcar-du/rcar_du_kms.c > @@ -417,11 +417,6 @@ static int rcar_du_encoders_init(struct rcar_du_device > *rcdu) > > static int rcar_du_properties_init(struct rcar_du_device *rcdu) > { > - rcdu->props.alpha = > - drm_property_create_range(rcdu->ddev, 0, "alpha", 0, 255); > - if (rcdu->props.alpha == NULL) > - return -ENOMEM; > - > /* > * The color key is expressed as an RGB888 triplet stored in a 32-bit > * integer in XRGB8888 format. Bit 24 is used as a flag to disable (0) > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.c > b/drivers/gpu/drm/rcar-du/rcar_du_plane.c index 61833cc1c699..5b34e8092c8b > 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_plane.c > +++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.c > @@ -423,7 +423,7 @@ static void rcar_du_plane_setup_mode(struct > rcar_du_group *rgrp, rcar_du_plane_write(rgrp, index, PnALPHAR, > PnALPHAR_ABIT_0); > else > rcar_du_plane_write(rgrp, index, PnALPHAR, > - PnALPHAR_ABIT_X | state->alpha); > + PnALPHAR_ABIT_X | state->state.alpha); > > pnmr = PnMR_BM_MD | state->format->pnmr; > > @@ -667,11 +667,11 @@ static void rcar_du_plane_reset(struct drm_plane > *plane) > > state->hwindex = -1; > state->source = RCAR_DU_PLANE_MEMORY; > - state->alpha = 255; > state->colorkey = RCAR_DU_COLORKEY_NONE; > state->state.zpos = plane->type == DRM_PLANE_TYPE_PRIMARY ? 0 : 1; > > plane->state = &state->state; > + plane->state->alpha = 255; > plane->state->plane = plane; > } > > @@ -683,9 +683,7 @@ static int rcar_du_plane_atomic_set_property(struct > drm_plane *plane, struct rcar_du_plane_state *rstate = > to_rcar_plane_state(state); struct rcar_du_device *rcdu = > to_rcar_plane(plane)->group->dev; > > - if (property == rcdu->props.alpha) > - rstate->alpha = val; > - else if (property == rcdu->props.colorkey) > + if (property == rcdu->props.colorkey) > rstate->colorkey = val; > else > return -EINVAL; > @@ -701,9 +699,7 @@ static int rcar_du_plane_atomic_get_property(struct > drm_plane *plane, container_of(state, const struct rcar_du_plane_state, > state); > struct rcar_du_device *rcdu = to_rcar_plane(plane)->group->dev; > > - if (property == rcdu->props.alpha) > - *val = rstate->alpha; > - else if (property == rcdu->props.colorkey) > + if (property == rcdu->props.colorkey) > *val = rstate->colorkey; > else > return -EINVAL; > @@ -772,10 +768,9 @@ int rcar_du_planes_init(struct rcar_du_group *rgrp) > continue; > > drm_object_attach_property(&plane->plane.base, > - rcdu->props.alpha, 255); > - drm_object_attach_property(&plane->plane.base, > rcdu->props.colorkey, > RCAR_DU_COLORKEY_NONE); > + drm_plane_create_alpha_property(&plane->plane, 255); > drm_plane_create_zpos_property(&plane->plane, 1, 1, 7); > } > > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.h > b/drivers/gpu/drm/rcar-du/rcar_du_plane.h index f62e09f195de..2dc793ebd1a2 > 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_plane.h > +++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.h > @@ -50,7 +50,6 @@ static inline struct rcar_du_plane *to_rcar_plane(struct > drm_plane *plane) * @state: base DRM plane state > * @format: information about the pixel format used by the plane > * @hwindex: 0-based hardware plane index, -1 means unused > - * @alpha: value of the plane alpha property > * @colorkey: value of the plane colorkey property > */ > struct rcar_du_plane_state { > @@ -60,7 +59,6 @@ struct rcar_du_plane_state { > int hwindex; > enum rcar_du_plane_source source; > > - unsigned int alpha; > unsigned int colorkey; > }; > > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c > b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c index 2c96147bc444..ee85f6fdffad > 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c > +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c > @@ -54,6 +54,7 @@ void rcar_du_vsp_enable(struct rcar_du_crtc *crtc) > }; > struct rcar_du_plane_state state = { > .state = { > + .alpha = 255, > .crtc = &crtc->crtc, > .crtc_x = 0, > .crtc_y = 0, > @@ -67,7 +68,6 @@ void rcar_du_vsp_enable(struct rcar_du_crtc *crtc) > }, > .format = rcar_du_format_info(DRM_FORMAT_ARGB8888), > .source = RCAR_DU_PLANE_VSPD1, > - .alpha = 255, > .colorkey = 0, > }; > > @@ -173,7 +173,7 @@ static void rcar_du_vsp_plane_setup(struct > rcar_du_vsp_plane *plane) struct vsp1_du_atomic_config cfg = { > .pixelformat = 0, > .pitch = fb->pitches[0], > - .alpha = state->alpha, > + .alpha = state->state.alpha, > .zpos = state->state.zpos, > }; > unsigned int i; > @@ -351,44 +351,13 @@ static void rcar_du_vsp_plane_reset(struct drm_plane > *plane) if (state == NULL) > return; > > - state->alpha = 255; > + state->state.alpha = 255; > state->state.zpos = plane->type == DRM_PLANE_TYPE_PRIMARY ? 0 : 1; > > plane->state = &state->state; > plane->state->plane = plane; > } > > -static int rcar_du_vsp_plane_atomic_set_property(struct drm_plane *plane, > - struct drm_plane_state *state, struct drm_property *property, > - uint64_t val) > -{ > - struct rcar_du_vsp_plane_state *rstate = to_rcar_vsp_plane_state(state); > - struct rcar_du_device *rcdu = to_rcar_vsp_plane(plane)->vsp->dev; > - > - if (property == rcdu->props.alpha) > - rstate->alpha = val; > - else > - return -EINVAL; > - > - return 0; > -} > - > -static int rcar_du_vsp_plane_atomic_get_property(struct drm_plane *plane, > - const struct drm_plane_state *state, struct drm_property *property, > - uint64_t *val) > -{ > - const struct rcar_du_vsp_plane_state *rstate = > - container_of(state, const struct rcar_du_vsp_plane_state, state); > - struct rcar_du_device *rcdu = to_rcar_vsp_plane(plane)->vsp->dev; > - > - if (property == rcdu->props.alpha) > - *val = rstate->alpha; > - else > - return -EINVAL; > - > - return 0; > -} > - > static const struct drm_plane_funcs rcar_du_vsp_plane_funcs = { > .update_plane = drm_atomic_helper_update_plane, > .disable_plane = drm_atomic_helper_disable_plane, > @@ -396,8 +365,6 @@ static const struct drm_plane_funcs > rcar_du_vsp_plane_funcs = { .destroy = drm_plane_cleanup, > .atomic_duplicate_state = rcar_du_vsp_plane_atomic_duplicate_state, > .atomic_destroy_state = rcar_du_vsp_plane_atomic_destroy_state, > - .atomic_set_property = rcar_du_vsp_plane_atomic_set_property, > - .atomic_get_property = rcar_du_vsp_plane_atomic_get_property, > }; > > int rcar_du_vsp_init(struct rcar_du_vsp *vsp, struct device_node *np, > @@ -454,8 +421,7 @@ int rcar_du_vsp_init(struct rcar_du_vsp *vsp, struct > device_node *np, if (type == DRM_PLANE_TYPE_PRIMARY) > continue; > > - drm_object_attach_property(&plane->plane.base, > - rcdu->props.alpha, 255); > + drm_plane_create_alpha_property(&plane->plane, 255); > drm_plane_create_zpos_property(&plane->plane, 1, 1, > vsp->num_planes - 1); > } > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.h > b/drivers/gpu/drm/rcar-du/rcar_du_vsp.h index f876c512163c..8b19914761e4 > 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.h > +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.h > @@ -44,7 +44,6 @@ static inline struct rcar_du_vsp_plane > *to_rcar_vsp_plane(struct drm_plane *p) * @state: base DRM plane state > * @format: information about the pixel format used by the plane > * @sg_tables: scatter-gather tables for the frame buffer memory > - * @alpha: value of the plane alpha property > * @zpos: value of the plane zpos property > */ > struct rcar_du_vsp_plane_state { > @@ -53,7 +52,6 @@ struct rcar_du_vsp_plane_state { > const struct rcar_du_format_info *format; > struct sg_table sg_tables[3]; > > - unsigned int alpha; > unsigned int zpos; > }; -- Regards, Laurent Pinchart