From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v2] drm/stm: drv: Improve data transfers Date: Tue, 30 Jan 2018 17:28:57 +0200 Message-ID: <878tcfwekm.fsf@intel.com> References: <20180130104200.21602-1-philippe.cornu@st.com> <9032382.xZ397EfsLU@avalon> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 464BC6E993 for ; Tue, 30 Jan 2018 15:29:06 +0000 (UTC) In-Reply-To: <9032382.xZ397EfsLU@avalon> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Laurent Pinchart , Benjamin Gaignard Cc: Alexandre Torgue , David Airlie , Linux Kernel Mailing List , dri-devel@lists.freedesktop.org, Philippe Cornu , Yannick Fertre , Fabien Dessenne , Maxime Coquelin , Mickael Reulier , Vincent Abriou , Ludovic Barre List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCAzMCBKYW4gMjAxOCwgTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBp ZGVhc29uYm9hcmQuY29tPiB3cm90ZToKPiBIaSBCZW5qYW1pbiwKPgo+IE9uIFR1ZXNkYXksIDMw IEphbnVhcnkgMjAxOCAxMjo1MToyNSBFRVQgQmVuamFtaW4gR2FpZ25hcmQgd3JvdGU6Cj4+IDIw MTgtMDEtMzAgMTE6NDIgR01UKzAxOjAwIFBoaWxpcHBlIENvcm51IDxwaGlsaXBwZS5jb3JudUBz dC5jb20+Ogo+PiA+IFRvIG9wdGltaXplIGRhdGEgdHJhbnNmZXJzLCBhbGlnbiBwaXRjaCBvbiAx MjggYnl0ZXMgJiBoZWlnaHQKPj4gPiBvbiA0IGJ5dGVzLiBUaGlzIG9wdGltaXphdGlvbiBpcyBu b3QgYXBwbGljYWJsZSBvbiBodyB3aXRob3V0IE1NVS4KPj4gPiAKPj4gPiBTaWduZWQtb2ZmLWJ5 OiBZYW5uaWNrIEZlcnRyZSA8eWFubmljay5mZXJ0cmVAc3QuY29tPgo+PiA+IFNpZ25lZC1vZmYt Ynk6IFZpbmNlbnQgQWJyaW91IDx2aW5jZW50LmFicmlvdUBzdC5jb20+Cj4+ID4gU2lnbmVkLW9m Zi1ieTogUGhpbGlwcGUgQ29ybnUgPHBoaWxpcHBlLmNvcm51QHN0LmNvbT4KPj4gCj4+IEFwcGxp ZWQgb24gZHJtLW1pc2MtbmV4dC4KPgo+IEEgOSBtaW51dGVzIHJldmlldyB3aW5kb3cgaXMgcHJl dHR5IHNtYWxsLi4uIEkndmUgYmVlbiB0b2xkIGJlZm9yZSB0aGF0IEkgCj4gc2hvdWxkIHRoZW4g cmV2aWV3IHYxIGluc3RlYWQgb2YgY29tcGxhaW5pbmcgYWJvdXQgc2hvcnQgcmV2aWV3IHRpbWVz IGZvciB2MiwgCj4gYnV0IGluIHRoaXMgY2FzZSB2MiBpbnRyb2R1Y2VzIGEgYnVnIHRoYXQgd2Fz bid0IHByZXNlbnQgaW4gdjEuCgpJTU8gbm8gcGF0Y2ggZXZlciBuZWVkcyB0byBiZSBhcHBsaWVk IHRoaXMgZmFzdC4gR2l2ZSBtb3JlIGV5ZWJhbGxzIGEKY2hhbmNlLgoKQlIsCkphbmkuCgoKPgo+ PiA+IC0tLQo+PiA+IENoYW5nZXMgaW4gdjI6IFJlbmFtZSBzdG1fZHVtYl9jcmVhdGUoKSB0byBz dG1fZ2VtX2NtYV9kdW1iX2NyZWF0ZSgpIGFuZAo+PiA+IAo+PiA+ICAgbW92ZSBDT05GSUdfTU1V IGluc2lkZSB0aGUgZnVuY3Rpb24gZm9sbG93aW5nIGNvbW1lbnRzIGZyb20gQmVuamFtaW4KPj4g PiAgIEdhaWduYXJkLgo+PiA+ICAKPj4gPiAgZHJpdmVycy9ncHUvZHJtL3N0bS9kcnYuYyB8IDIw ICsrKysrKysrKysrKysrKysrKystCj4+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCj4+ID4gCj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9zdG0vZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vc3RtL2Rydi5jCj4+ID4gaW5kZXggOGZlOTU0 YzI3ZmJhLi44YmM3ZTg0MThiOGQgMTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N0 bS9kcnYuYwo+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdG0vZHJ2LmMKPj4gPiBAQCAtMzEs NiArMzEsMjQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3MKPj4g PiBkcnZfbW9kZV9jb25maWdfZnVuY3MgPSB7PiAKPj4gPiAgICAgICAgIC5hdG9taWNfY29tbWl0 ID0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0LAo+PiA+ICAKPj4gPiAgfTsKPj4gPiAKPj4gPiAr c3RhdGljIGludCBzdG1fZ2VtX2NtYV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUs Cj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRy bV9tb2RlX2NyZWF0ZV9kdW1iICphcmdzKQo+PiA+ICt7Cj4+ID4gKyNpZmRlZiBDT05GSUdfTU1V Cj4+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgbWluX3BpdGNoID0gRElWX1JPVU5EX1VQKGFyZ3Mt PndpZHRoICogYXJncy0+YnBwLCA4KTsKPj4gPiArCj4+ID4gKyAgICAgICAvKgo+PiA+ICsgICAg ICAgICogaW4gb3JkZXIgdG8gb3B0aW1pemUgZGF0YSB0cmFuc2ZlciwgcGl0Y2ggaXMgYWxpZ25l ZCBvbgo+PiA+ICsgICAgICAgICogMTI4IGJ5dGVzLCBoZWlnaHQgaXMgYWxpZ25lZCBvbiA0IGJ5 dGVzCj4+ID4gKyAgICAgICAgKi8KPj4gPiArICAgICAgIGFyZ3MtPnBpdGNoID0gcm91bmR1cCht aW5fcGl0Y2gsIDEyOCk7Cj4+ID4gKyAgICAgICBhcmdzLT5oZWlnaHQgPSByb3VuZHVwKGFyZ3Mt PmhlaWdodCwgNCk7Cj4+ID4gKyNlbmRpZgo+PiA+ICsKPj4gPiArICAgICAgIHJldHVybiBkcm1f Z2VtX2NtYV9kdW1iX2NyZWF0ZV9pbnRlcm5hbChmaWxlLCBkZXYsIGFyZ3MpOwo+PiA+ICt9Cj4+ ID4gKwo+PiA+IAo+PiA+ICBERUZJTkVfRFJNX0dFTV9DTUFfRk9QUyhkcnZfZHJpdmVyX2ZvcHMp Owo+PiA+ICAKPj4gPiAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGRydl9kcml2ZXIgPSB7Cj4+ ID4gCj4+ID4gQEAgLTQ0LDcgKzYyLDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGRydl9k cml2ZXIgPSB7Cj4+ID4gCj4+ID4gICAgICAgICAubWlub3IgPSAwLAo+PiA+ICAgICAgICAgLnBh dGNobGV2ZWwgPSAwLAo+PiA+ICAgICAgICAgLmZvcHMgPSAmZHJ2X2RyaXZlcl9mb3BzLAo+PiA+ IAo+PiA+IC0gICAgICAgLmR1bWJfY3JlYXRlID0gZHJtX2dlbV9jbWFfZHVtYl9jcmVhdGUsCj4+ ID4gKyAgICAgICAuZHVtYl9jcmVhdGUgPSBzdG1fZ2VtX2NtYV9kdW1iX2NyZWF0ZSwKPj4gPiAK Pj4gPiAgICAgICAgIC5wcmltZV9oYW5kbGVfdG9fZmQgPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90 b19mZCwKPj4gPiAgICAgICAgIC5wcmltZV9mZF90b19oYW5kbGUgPSBkcm1fZ2VtX3ByaW1lX2Zk X3RvX2hhbmRsZSwKPj4gPiAgICAgICAgIC5nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQgPSBkcm1f Z2VtX2NtYV9mcmVlX29iamVjdCwKPj4gPiAKPj4gPiAtLQo+PiA+IDIuMTUuMQoKLS0gCkphbmkg TmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753199AbeA3P3H (ORCPT ); Tue, 30 Jan 2018 10:29:07 -0500 Received: from mga09.intel.com ([134.134.136.24]:10600 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752127AbeA3P3G (ORCPT ); Tue, 30 Jan 2018 10:29:06 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,435,1511856000"; d="scan'208";a="26654562" From: Jani Nikula To: Laurent Pinchart , Benjamin Gaignard Cc: Alexandre Torgue , David Airlie , Philippe Cornu , dri-devel@lists.freedesktop.org, Linux Kernel Mailing List , Yannick Fertre , Fabien Dessenne , Maxime Coquelin , Mickael Reulier , Vincent Abriou , Ludovic Barre Subject: Re: [PATCH v2] drm/stm: drv: Improve data transfers In-Reply-To: <9032382.xZ397EfsLU@avalon> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20180130104200.21602-1-philippe.cornu@st.com> <9032382.xZ397EfsLU@avalon> Date: Tue, 30 Jan 2018 17:28:57 +0200 Message-ID: <878tcfwekm.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 30 Jan 2018, Laurent Pinchart wrote: > Hi Benjamin, > > On Tuesday, 30 January 2018 12:51:25 EET Benjamin Gaignard wrote: >> 2018-01-30 11:42 GMT+01:00 Philippe Cornu : >> > To optimize data transfers, align pitch on 128 bytes & height >> > on 4 bytes. This optimization is not applicable on hw without MMU. >> > >> > Signed-off-by: Yannick Fertre >> > Signed-off-by: Vincent Abriou >> > Signed-off-by: Philippe Cornu >> >> Applied on drm-misc-next. > > A 9 minutes review window is pretty small... I've been told before that I > should then review v1 instead of complaining about short review times for v2, > but in this case v2 introduces a bug that wasn't present in v1. IMO no patch ever needs to be applied this fast. Give more eyeballs a chance. BR, Jani. > >> > --- >> > Changes in v2: Rename stm_dumb_create() to stm_gem_cma_dumb_create() and >> > >> > move CONFIG_MMU inside the function following comments from Benjamin >> > Gaignard. >> > >> > drivers/gpu/drm/stm/drv.c | 20 +++++++++++++++++++- >> > 1 file changed, 19 insertions(+), 1 deletion(-) >> > >> > diff --git a/drivers/gpu/drm/stm/drv.c b/drivers/gpu/drm/stm/drv.c >> > index 8fe954c27fba..8bc7e8418b8d 100644 >> > --- a/drivers/gpu/drm/stm/drv.c >> > +++ b/drivers/gpu/drm/stm/drv.c >> > @@ -31,6 +31,24 @@ static const struct drm_mode_config_funcs >> > drv_mode_config_funcs = {> >> > .atomic_commit = drm_atomic_helper_commit, >> > >> > }; >> > >> > +static int stm_gem_cma_dumb_create(struct drm_file *file, >> > + struct drm_device *dev, >> > + struct drm_mode_create_dumb *args) >> > +{ >> > +#ifdef CONFIG_MMU >> > + unsigned int min_pitch = DIV_ROUND_UP(args->width * args->bpp, 8); >> > + >> > + /* >> > + * in order to optimize data transfer, pitch is aligned on >> > + * 128 bytes, height is aligned on 4 bytes >> > + */ >> > + args->pitch = roundup(min_pitch, 128); >> > + args->height = roundup(args->height, 4); >> > +#endif >> > + >> > + return drm_gem_cma_dumb_create_internal(file, dev, args); >> > +} >> > + >> > >> > DEFINE_DRM_GEM_CMA_FOPS(drv_driver_fops); >> > >> > static struct drm_driver drv_driver = { >> > >> > @@ -44,7 +62,7 @@ static struct drm_driver drv_driver = { >> > >> > .minor = 0, >> > .patchlevel = 0, >> > .fops = &drv_driver_fops, >> > >> > - .dumb_create = drm_gem_cma_dumb_create, >> > + .dumb_create = stm_gem_cma_dumb_create, >> > >> > .prime_handle_to_fd = drm_gem_prime_handle_to_fd, >> > .prime_fd_to_handle = drm_gem_prime_fd_to_handle, >> > .gem_free_object_unlocked = drm_gem_cma_free_object, >> > >> > -- >> > 2.15.1 -- Jani Nikula, Intel Open Source Technology Center