From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ayan Halder Subject: Re: [PATCH 01/10] drm/atomic: Add __drm_atomic_helper_plane_reset Date: Mon, 23 Jul 2018 10:37:57 +0100 Message-ID: <20180723093757.GB26447@arm.com> References: <20180713161407.GQ20303@art_vandelay> <20180720211509.23605-1-alexandru-cosmin.gheorghe@arm.com> <20180720211509.23605-2-alexandru-cosmin.gheorghe@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180720211509.23605-2-alexandru-cosmin.gheorghe@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Alexandru Gheorghe Cc: alexandre.belloni@bootlin.com, airlied@linux.ie, liviu.dudau@arm.com, dri-devel@lists.freedesktop.org, laurent.pinchart@ideasonboard.com, thellstrom@vmware.com, krzk@kernel.org, maxime.ripard@bootlin.com, wens@csie.org, kgene@kernel.org, malidp@foss.arm.com, linux-graphics-maintainer@vmware.com, sunpeng.li@amd.com, boris.brezillon@bootlin.com, linux-samsung-soc@vger.kernel.org, nd@arm.com, Tony.Cheng@amd.com, linux-arm-kernel@lists.infradead.org, sw0312.kim@samsung.com, nicolas.ferre@microchip.com, shirish.s@amd.com, kyungmin.park@samsung.com, alexander.deucher@amd.com, christian.koenig@amd.com List-Id: linux-samsung-soc@vger.kernel.org T24gRnJpLCBKdWwgMjAsIDIwMTggYXQgMTA6MTU6MDBQTSArMDEwMCwgQWxleGFuZHJ1IEdoZW9y Z2hlIHdyb3RlOgo+IFRoZXJlIGFyZSBhIGxvdCBvZiBkcml2ZXJzIHRoYXQgc3ViY2xhc3MgZHJt X3BsYW5lX3N0YXRlLCBhbGwgb2YgdGhlbQo+IGR1cGxpY2F0ZSB0aGUgY29kZSB0aGF0IGxpbmtz IHRvZ2hldGhlciB0aGUgcGxhbmUgd2l0aCBwbGFuZV9zdGF0ZS4KPiAKPiBPbiB0b3Agb2YgdGhh dCwgZHJpdmVycyB0aGF0IGVuYWJsZSBjb3JlIHByb3BlcnRpZXMgYWxzbyBoYXZlIHRvCj4gZHVw bGljYXRlIHRoZSBjb2RlIGZvciBpbml0aWFsaXppbmcgdGhlIHByb3BlcnRpZXMgdG8gdGhlaXIg ZGVmYXVsdAo+IHZhbHVlcywgd2hpY2ggaW4gYWxsIGNhc2VzIGFyZSB0aGUgc2FtZSBhcyB0aGUg ZGVmYXVsdHMgZnJvbSBjb3JlLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRydSBHaGVvcmdo ZSA8YWxleGFuZHJ1LWNvc21pbi5naGVvcmdoZUBhcm0uY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyB8IDMyICsrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tCj4gIGluY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmggICAgIHwgIDIgKysKPiAgMiBm aWxlcyBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gaW5kZXggODAwOGE3ZGUyZTEwLi5lMWM2ZjEwMTY1 MmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+IEBAIC0zNTA3LDYgKzM1 MDcsMjggQEAgdm9pZCBkcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoc3RydWN0 IGRybV9jcnRjICpjcnRjLAo+ICB9Cj4gIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJf Y3J0Y19kZXN0cm95X3N0YXRlKTsKPiAgCj4gKy8qKgo+ICsgKiBfX2RybV9hdG9taWNfaGVscGVy X3BsYW5lX3Jlc2V0IC0gcmVzZXRzIHBsYW5lcyBzdGF0ZSB0byBkZWZhdWx0IHZhbHVlcwo+ICsg KiBAcGxhbmU6IHBsYW5lIG9iamVjdAo+ICsgKiBAbmV3X3N0YXRlOiBhdG9taWMgcGxhbmUgc3Rh dGUKPiArICoKPiArICogSW5pdGlhbGl6ZXMgcGxhbmUgc3RhdGUgdG8gZGVmYXVsdC4gVGhpcyBp cyB1c2VmdWwgZm9yIGRyaXZlcnMgdGhhdCBzdWJjbGFzcwo+ICsgKiB0aGUgcGxhbmUgc3RhdGUu Cj4gKyAqLwo+ICt2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfcmVzZXQoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCj4gKwkJCQkgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRl KQo+ICt7Cj4gKwlpZiAoc3RhdGUpIHsKPiArCQlzdGF0ZS0+cGxhbmUgPSBwbGFuZTsKPiArCQlz dGF0ZS0+cm90YXRpb24gPSBEUk1fTU9ERV9ST1RBVEVfMDsKPiArCQkvKiBSZXNldCB0aGUgYWxw aGEgdmFsdWUgdG8gZnVsbHkgb3BhcXVlIGlmIGl0IG1hdHRlcnMgKi8KPiArCQlpZiAocGxhbmUt PmFscGhhX3Byb3BlcnR5KQo+ICsJCQlzdGF0ZS0+YWxwaGEgPSBwbGFuZS0+YWxwaGFfcHJvcGVy dHktPnZhbHVlc1sxXTsKPiArCX0KPiArCXBsYW5lLT5zdGF0ZSA9IHN0YXRlOwo+ICt9Cj4gK0VY UE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9yZXNldCk7Cj4gKwo+ICAvKioK PiAgICogZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfcmVzZXQgLSBkZWZhdWx0ICZkcm1fcGxhbmVf ZnVuY3MucmVzZXQgaG9vayBmb3IgcGxhbmVzCj4gICAqIEBwbGFuZTogZHJtIHBsYW5lCj4gQEAg LTM1MjEsMTUgKzM1NDMsNyBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX3BsYW5lX3Jlc2V0KHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+ICAKPiAgCWtmcmVlKHBsYW5lLT5zdGF0ZSk7Cj4gIAlw bGFuZS0+c3RhdGUgPSBremFsbG9jKHNpemVvZigqcGxhbmUtPnN0YXRlKSwgR0ZQX0tFUk5FTCk7 Cj4gLQo+IC0JaWYgKHBsYW5lLT5zdGF0ZSkgewo+IC0JCXBsYW5lLT5zdGF0ZS0+cGxhbmUgPSBw bGFuZTsKPiAtCQlwbGFuZS0+c3RhdGUtPnJvdGF0aW9uID0gRFJNX01PREVfUk9UQVRFXzA7Cj4g LQo+IC0JCS8qIFJlc2V0IHRoZSBhbHBoYSB2YWx1ZSB0byBmdWxseSBvcGFxdWUgaWYgaXQgbWF0 dGVycyAqLwo+IC0JCWlmIChwbGFuZS0+YWxwaGFfcHJvcGVydHkpCj4gLQkJCXBsYW5lLT5zdGF0 ZS0+YWxwaGEgPSBwbGFuZS0+YWxwaGFfcHJvcGVydHktPnZhbHVlc1sxXTsKPiAtCX0KPiArCV9f ZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfcmVzZXQocGxhbmUsIHBsYW5lLT5zdGF0ZSk7Cj4gIH0K PiAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9yZXNldCk7Cj4gIAo+IGRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuaAo+IGluZGV4IDI2YWFiYTU4ZDZjZS4uMmRkNDBjNzYxZGZkIDEw MDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmgKPiArKysgYi9pbmNs dWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCj4gQEAgLTE1NSw2ICsxNTUsOCBAQCB2b2lkIF9f ZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fY3J0Y19zdGF0 ZSAqc3RhdGUpOwo+ICB2b2lkIGRybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZShz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJCQkJICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0 YXRlKTsKPiAgCj4gK3ZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9yZXNldChzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKPiArCQkJCSAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3Rh dGUpOwo+ICB2b2lkIGRybV9hdG9taWNfaGVscGVyX3BsYW5lX3Jlc2V0KHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lKTsKPiAgdm9pZCBfX2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9z dGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCQkJCQkgICAgICAgc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqc3RhdGUpOwo+IC0tIAo+IDIuMTguMAo+IApXaXRoIG15IGxpbWl0ZWQga25v d2xlZGdlIG9uIERSTSwgdGhpcyBsb29rcyBPSyB0byBtZTotClJldmlld2VkLWJ5IDotIEF5YW4g S3VtYXIgaGFsZGVyIDxheWFuLmhhbGRlckBhcm0uY29tPgo+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+IGRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: ayan.halder@arm.com (Ayan Halder) Date: Mon, 23 Jul 2018 10:37:57 +0100 Subject: [PATCH 01/10] drm/atomic: Add __drm_atomic_helper_plane_reset In-Reply-To: <20180720211509.23605-2-alexandru-cosmin.gheorghe@arm.com> References: <20180713161407.GQ20303@art_vandelay> <20180720211509.23605-1-alexandru-cosmin.gheorghe@arm.com> <20180720211509.23605-2-alexandru-cosmin.gheorghe@arm.com> Message-ID: <20180723093757.GB26447@arm.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Fri, Jul 20, 2018 at 10:15:00PM +0100, Alexandru Gheorghe wrote: > There are a lot of drivers that subclass drm_plane_state, all of them > duplicate the code that links toghether the plane with plane_state. > > On top of that, drivers that enable core properties also have to > duplicate the code for initializing the properties to their default > values, which in all cases are the same as the defaults from core. > > Signed-off-by: Alexandru Gheorghe > --- > drivers/gpu/drm/drm_atomic_helper.c | 32 +++++++++++++++++++++-------- > include/drm/drm_atomic_helper.h | 2 ++ > 2 files changed, 25 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c > index 8008a7de2e10..e1c6f101652e 100644 > --- a/drivers/gpu/drm/drm_atomic_helper.c > +++ b/drivers/gpu/drm/drm_atomic_helper.c > @@ -3507,6 +3507,28 @@ void drm_atomic_helper_crtc_destroy_state(struct drm_crtc *crtc, > } > EXPORT_SYMBOL(drm_atomic_helper_crtc_destroy_state); > > +/** > + * __drm_atomic_helper_plane_reset - resets planes state to default values > + * @plane: plane object > + * @new_state: atomic plane state > + * > + * Initializes plane state to default. This is useful for drivers that subclass > + * the plane state. > + */ > +void __drm_atomic_helper_plane_reset(struct drm_plane *plane, > + struct drm_plane_state *state) > +{ > + if (state) { > + state->plane = plane; > + state->rotation = DRM_MODE_ROTATE_0; > + /* Reset the alpha value to fully opaque if it matters */ > + if (plane->alpha_property) > + state->alpha = plane->alpha_property->values[1]; > + } > + plane->state = state; > +} > +EXPORT_SYMBOL(__drm_atomic_helper_plane_reset); > + > /** > * drm_atomic_helper_plane_reset - default &drm_plane_funcs.reset hook for planes > * @plane: drm plane > @@ -3521,15 +3543,7 @@ void drm_atomic_helper_plane_reset(struct drm_plane *plane) > > kfree(plane->state); > plane->state = kzalloc(sizeof(*plane->state), GFP_KERNEL); > - > - if (plane->state) { > - plane->state->plane = plane; > - plane->state->rotation = DRM_MODE_ROTATE_0; > - > - /* Reset the alpha value to fully opaque if it matters */ > - if (plane->alpha_property) > - plane->state->alpha = plane->alpha_property->values[1]; > - } > + __drm_atomic_helper_plane_reset(plane, plane->state); > } > EXPORT_SYMBOL(drm_atomic_helper_plane_reset); > > diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h > index 26aaba58d6ce..2dd40c761dfd 100644 > --- a/include/drm/drm_atomic_helper.h > +++ b/include/drm/drm_atomic_helper.h > @@ -155,6 +155,8 @@ void __drm_atomic_helper_crtc_destroy_state(struct drm_crtc_state *state); > void drm_atomic_helper_crtc_destroy_state(struct drm_crtc *crtc, > struct drm_crtc_state *state); > > +void __drm_atomic_helper_plane_reset(struct drm_plane *plane, > + struct drm_plane_state *state); > void drm_atomic_helper_plane_reset(struct drm_plane *plane); > void __drm_atomic_helper_plane_duplicate_state(struct drm_plane *plane, > struct drm_plane_state *state); > -- > 2.18.0 > With my limited knowledge on DRM, this looks OK to me:- Reviewed-by :- Ayan Kumar halder > _______________________________________________ > dri-devel mailing list > dri-devel at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel