From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: Re: [PATCH 01/10] drm/atomic: Add __drm_atomic_helper_plane_reset Date: Tue, 24 Jul 2018 10:16:56 +0200 Message-ID: <20180724101656.0f472b0a@bbrezillon> References: <20180713161407.GQ20303@art_vandelay> <20180720211509.23605-1-alexandru-cosmin.gheorghe@arm.com> <20180720211509.23605-2-alexandru-cosmin.gheorghe@arm.com> <1532418533.4078.2.camel@pengutronix.de> <20180724081402.GB22689@e114479-lin.cambridge.arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180724081402.GB22689@e114479-lin.cambridge.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-Cosmin 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, 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 T24gVHVlLCAyNCBKdWwgMjAxOCAwOToxNDowMiArMDEwMApBbGV4YW5kcnUtQ29zbWluIEdoZW9y Z2hlIDxBbGV4YW5kcnUtQ29zbWluLkdoZW9yZ2hlQGFybS5jb20+IHdyb3RlOgoKPiBPbiBUdWUs IEp1bCAyNCwgMjAxOCBhdCAwOTo0ODo1M0FNICswMjAwLCBQaGlsaXBwIFphYmVsIHdyb3RlOgo+ ID4gSGkgQWxleGFuZHJ1LAo+ID4gCj4gPiBPbiBGcmksIDIwMTgtMDctMjAgYXQgMjI6MTUgKzAx MDAsIEFsZXhhbmRydSBHaGVvcmdoZSB3cm90ZTogIAo+ID4gPiBUaGVyZSBhcmUgYSBsb3Qgb2Yg ZHJpdmVycyB0aGF0IHN1YmNsYXNzIGRybV9wbGFuZV9zdGF0ZSwgYWxsIG9mIHRoZW0KPiA+ID4g ZHVwbGljYXRlIHRoZSBjb2RlIHRoYXQgbGlua3MgdG9naGV0aGVyIHRoZSBwbGFuZSB3aXRoIHBs YW5lX3N0YXRlLgo+ID4gPiAKPiA+ID4gT24gdG9wIG9mIHRoYXQsIGRyaXZlcnMgdGhhdCBlbmFi bGUgY29yZSBwcm9wZXJ0aWVzIGFsc28gaGF2ZSB0bwo+ID4gPiBkdXBsaWNhdGUgdGhlIGNvZGUg Zm9yIGluaXRpYWxpemluZyB0aGUgcHJvcGVydGllcyB0byB0aGVpciBkZWZhdWx0Cj4gPiA+IHZh bHVlcywgd2hpY2ggaW4gYWxsIGNhc2VzIGFyZSB0aGUgc2FtZSBhcyB0aGUgZGVmYXVsdHMgZnJv bSBjb3JlLgo+ID4gPiAKPiA+ID4gU2lnbmVkLW9mZi1ieTogQWxleGFuZHJ1IEdoZW9yZ2hlIDxh bGV4YW5kcnUtY29zbWluLmdoZW9yZ2hlQGFybS5jb20+Cj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgfCAzMiArKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLQo+ID4gPiAgaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaCAgICAgfCAgMiAr Kwo+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygt KQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiA+ID4gaW5kZXgg ODAwOGE3ZGUyZTEwLi5lMWM2ZjEwMTY1MmUgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljX2hlbHBlci5jCj4gPiA+IEBAIC0zNTA3LDYgKzM1MDcsMjggQEAgdm9pZCBkcm1fYXRv bWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4g PiAgfQo+ID4gPiAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lf c3RhdGUpOwo+ID4gPiAgCj4gPiA+ICsvKioKPiA+ID4gKyAqIF9fZHJtX2F0b21pY19oZWxwZXJf cGxhbmVfcmVzZXQgLSByZXNldHMgcGxhbmVzIHN0YXRlIHRvIGRlZmF1bHQgdmFsdWVzCj4gPiA+ ICsgKiBAcGxhbmU6IHBsYW5lIG9iamVjdAo+ID4gPiArICogQG5ld19zdGF0ZTogYXRvbWljIHBs YW5lIHN0YXRlCj4gPiA+ICsgKgo+ID4gPiArICogSW5pdGlhbGl6ZXMgcGxhbmUgc3RhdGUgdG8g ZGVmYXVsdC4gVGhpcyBpcyB1c2VmdWwgZm9yIGRyaXZlcnMgdGhhdCBzdWJjbGFzcwo+ID4gPiAr ICogdGhlIHBsYW5lIHN0YXRlLgo+ID4gPiArICovCj4gPiA+ICt2b2lkIF9fZHJtX2F0b21pY19o ZWxwZXJfcGxhbmVfcmVzZXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPiA+ICsJCQkJICAg ICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKPiA+ID4gK3sKPiA+ID4gKwlpZiAoc3Rh dGUpIHsKPiA+ID4gKwkJc3RhdGUtPnBsYW5lID0gcGxhbmU7Cj4gPiA+ICsJCXN0YXRlLT5yb3Rh dGlvbiA9IERSTV9NT0RFX1JPVEFURV8wOwo+ID4gPiArCQkvKiBSZXNldCB0aGUgYWxwaGEgdmFs dWUgdG8gZnVsbHkgb3BhcXVlIGlmIGl0IG1hdHRlcnMgKi8KPiA+ID4gKwkJaWYgKHBsYW5lLT5h bHBoYV9wcm9wZXJ0eSkKPiA+ID4gKwkJCXN0YXRlLT5hbHBoYSA9IHBsYW5lLT5hbHBoYV9wcm9w ZXJ0eS0+dmFsdWVzWzFdOwo+ID4gPiArCX0gIAo+ID4gCj4gPiBJcyB0aGlzIGZ1bmN0aW9uIHN1 cHBvc2VkIHRvIGJlIGNhbGxhYmxlIHdpdGggc3RhdGUgPT0gTlVMTCA/Cj4gPiAgIAo+ID4gPiAr CXBsYW5lLT5zdGF0ZSA9IHN0YXRlOyAgCj4gPiAKPiA+IElmIHNvLCB0aGUgY29tbWVudCBjb3Vs ZCBtZW50aW9uIHRoYXQgdGhpcyBzZXRzIHBsYW5lLT5zdGF0ZSB0byBOVUxMIGlmCj4gPiBzdGF0 ZSA9PSBOVUxMLCBhbmQgYSBmZXcgb2YgdGhlIGNhbGwgc2l0ZXMgY291bGQgYmUgc2ltcGxpZmll ZC4KPiA+IAo+ID4gSWYgbm90LCBJIHdvdWxkIHJlbW92ZSB0aGUgY29uZGl0aW9uYWwgaWYgKHN0 YXRlKSB7fSBwYXJ0IGFuZCBhbHNvCj4gPiBtZW50aW9uIHRoaXMgaW4gdGhlIGNvbW1lbnQuICAK PiAKPiBZZXMsIEl0J3MgaW50ZW5kZWQgdG8gYmUgY2FsbGFibGUgd2l0aCBudWxsLgoKTWF5IEkg YXNrIHdoeT8gSSdkIGFzc3VtZSBkcml2ZXJzIHRoYXQgY2FsbCB0aGlzIGZ1bmN0aW9uIHRvIHBh c3MgYQpub24tTlVMTCBwbGFuZSBzdGF0ZS4gV2hhdCdzIHRoZSB1c2UgY2FzZSBmb3IgcGFzc2lu ZyBhIE5VTEwgc3RhdGUgaGVyZT8KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: boris.brezillon@bootlin.com (Boris Brezillon) Date: Tue, 24 Jul 2018 10:16:56 +0200 Subject: [PATCH 01/10] drm/atomic: Add __drm_atomic_helper_plane_reset In-Reply-To: <20180724081402.GB22689@e114479-lin.cambridge.arm.com> References: <20180713161407.GQ20303@art_vandelay> <20180720211509.23605-1-alexandru-cosmin.gheorghe@arm.com> <20180720211509.23605-2-alexandru-cosmin.gheorghe@arm.com> <1532418533.4078.2.camel@pengutronix.de> <20180724081402.GB22689@e114479-lin.cambridge.arm.com> Message-ID: <20180724101656.0f472b0a@bbrezillon> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Tue, 24 Jul 2018 09:14:02 +0100 Alexandru-Cosmin Gheorghe wrote: > On Tue, Jul 24, 2018 at 09:48:53AM +0200, Philipp Zabel wrote: > > Hi Alexandru, > > > > On Fri, 2018-07-20 at 22:15 +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]; > > > + } > > > > Is this function supposed to be callable with state == NULL ? > > > > > + plane->state = state; > > > > If so, the comment could mention that this sets plane->state to NULL if > > state == NULL, and a few of the call sites could be simplified. > > > > If not, I would remove the conditional if (state) {} part and also > > mention this in the comment. > > Yes, It's intended to be callable with null. May I ask why? I'd assume drivers that call this function to pass a non-NULL plane state. What's the use case for passing a NULL state here?