From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751290AbdBLM1t (ORCPT ); Sun, 12 Feb 2017 07:27:49 -0500 Received: from galahad.ideasonboard.com ([185.26.127.97]:39280 "EHLO galahad.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751194AbdBLM1s (ORCPT ); Sun, 12 Feb 2017 07:27:48 -0500 From: Laurent Pinchart To: dri-devel@lists.freedesktop.org Cc: Maxime Ripard , Daniel Vetter , David Airlie , Jani Nikula , Sean Paul , Stefan Christ , linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 1/2] drm/cma-helper: Add multi buffer support for cma fbdev Date: Sun, 12 Feb 2017 14:28:11 +0200 Message-ID: <2662533.Ps9k37FiVM@avalon> User-Agent: KMail/4.14.10 (Linux/4.9.6-gentoo-r1; KDE/4.14.24; x86_64; ; ) In-Reply-To: <9b4f80f213b50959d168e6f22b21ee784fe26da5.1486031436.git-series.maxime.ripard@free-electrons.com> References: <9b4f80f213b50959d168e6f22b21ee784fe26da5.1486031436.git-series.maxime.ripard@free-electrons.com> 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 Hi Maxime, Thank you for the patch. On Thursday 02 Feb 2017 11:31:56 Maxime Ripard wrote: > From: Xinliang Liu > > This patch add a config to support to create multi buffer for cma fbdev. > Such as double buffer and triple buffer. > > Cma fbdev is convient to add a legency fbdev. And still many Android > devices use fbdev now and at least double buffer is needed for these > Android devices, so that a buffer flip can be operated. It will need > some time for Android device vendors to abondon legency fbdev. So multi > buffer for fbdev is needed. How exactly do we expect Android to move away from fbdev if we add features to the fbdev compat layer ? I'd much rather make it clear to them that fbdev is a thing from the past and that they'd better migrate now. > Signed-off-by: Xinliang Liu > [s.christ@phytec.de: Picking patch from > https://lkml.org/lkml/2015/9/14/188] > Signed-off-by: Stefan Christ > Signed-off-by: Maxime Ripard > --- > drivers/gpu/drm/Kconfig | 8 ++++++++ > drivers/gpu/drm/drm_fb_cma_helper.c | 8 +++++++- > 2 files changed, 15 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig > index ebfe8404c25f..2ca9bb26a4e4 100644 > --- a/drivers/gpu/drm/Kconfig > +++ b/drivers/gpu/drm/Kconfig > @@ -121,6 +121,14 @@ config DRM_KMS_CMA_HELPER > help > Choose this if you need the KMS CMA helper functions > > +config DRM_CMA_FBDEV_BUFFER_NUM > + int "Cma Fbdev Buffer Number" > + depends on DRM_KMS_CMA_HELPER > + default 1 > + help > + Defines the buffer number of cma fbdev. Default is one buffer. > + For double buffer please set to 2 and 3 for triple buffer. > + > source "drivers/gpu/drm/i2c/Kconfig" > > source "drivers/gpu/drm/arm/Kconfig" > diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c > b/drivers/gpu/drm/drm_fb_cma_helper.c index 81b3558302b5..e3f8b9e720a0 > 100644 > --- a/drivers/gpu/drm/drm_fb_cma_helper.c > +++ b/drivers/gpu/drm/drm_fb_cma_helper.c > @@ -411,6 +411,12 @@ static void drm_fbdev_cma_defio_fini(struct fb_info > *fbi) kfree(fbi->fbops); > } > > +static int fbdev_num_buffers = CONFIG_DRM_CMA_FBDEV_BUFFER_NUM; > +module_param(fbdev_num_buffers, int, 0444); > +MODULE_PARM_DESC(fbdev_num_buffers, > + "Number of frame buffers to allocate [default=" > + __MODULE_STRING(CONFIG_DRM_CMA_FBDEV_BUFFER_NUM) "]"); > + > /* > * For use in a (struct drm_fb_helper_funcs *)->fb_probe callback function > that * needs custom struct drm_framebuffer_funcs, like dirty() for > deferred_io use. @@ -437,7 +443,7 @@ int > drm_fbdev_cma_create_with_funcs(struct drm_fb_helper *helper, > bytes_per_pixel = DIV_ROUND_UP(sizes->surface_bpp, 8); > > mode_cmd.width = sizes->surface_width; > - mode_cmd.height = sizes->surface_height; > + mode_cmd.height = sizes->surface_height * fbdev_num_buffers; > mode_cmd.pitches[0] = sizes->surface_width * bytes_per_pixel; > mode_cmd.pixel_format = drm_mode_legacy_fb_format(sizes->surface_bpp, > sizes->surface_depth); -- Regards, Laurent Pinchart From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v2 1/2] drm/cma-helper: Add multi buffer support for cma fbdev Date: Sun, 12 Feb 2017 14:28:11 +0200 Message-ID: <2662533.Ps9k37FiVM@avalon> References: <9b4f80f213b50959d168e6f22b21ee784fe26da5.1486031436.git-series.maxime.ripard@free-electrons.com> 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 22C6E6E03B for ; Sun, 12 Feb 2017 12:27:47 +0000 (UTC) In-Reply-To: <9b4f80f213b50959d168e6f22b21ee784fe26da5.1486031436.git-series.maxime.ripard@free-electrons.com> 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: linux-kernel@vger.kernel.org, Daniel Vetter , Maxime Ripard , Stefan Christ List-Id: dri-devel@lists.freedesktop.org SGkgTWF4aW1lLAoKVGhhbmsgeW91IGZvciB0aGUgcGF0Y2guCgpPbiBUaHVyc2RheSAwMiBGZWIg MjAxNyAxMTozMTo1NiBNYXhpbWUgUmlwYXJkIHdyb3RlOgo+IEZyb206IFhpbmxpYW5nIExpdSA8 eGlubGlhbmcubGl1QGxpbmFyby5vcmc+Cj4gCj4gVGhpcyBwYXRjaCBhZGQgYSBjb25maWcgdG8g c3VwcG9ydCB0byBjcmVhdGUgbXVsdGkgYnVmZmVyIGZvciBjbWEgZmJkZXYuCj4gU3VjaCBhcyBk b3VibGUgYnVmZmVyIGFuZCB0cmlwbGUgYnVmZmVyLgo+IAo+IENtYSBmYmRldiBpcyBjb252aWVu dCB0byBhZGQgYSBsZWdlbmN5IGZiZGV2LiBBbmQgc3RpbGwgbWFueSBBbmRyb2lkCj4gZGV2aWNl cyB1c2UgZmJkZXYgbm93IGFuZCBhdCBsZWFzdCBkb3VibGUgYnVmZmVyIGlzIG5lZWRlZCBmb3Ig dGhlc2UKPiBBbmRyb2lkIGRldmljZXMsIHNvIHRoYXQgYSBidWZmZXIgZmxpcCBjYW4gYmUgb3Bl cmF0ZWQuIEl0IHdpbGwgbmVlZAo+IHNvbWUgdGltZSBmb3IgQW5kcm9pZCBkZXZpY2UgdmVuZG9y cyB0byBhYm9uZG9uIGxlZ2VuY3kgZmJkZXYuIFNvIG11bHRpCj4gYnVmZmVyIGZvciBmYmRldiBp cyBuZWVkZWQuCgpIb3cgZXhhY3RseSBkbyB3ZSBleHBlY3QgQW5kcm9pZCB0byBtb3ZlIGF3YXkg ZnJvbSBmYmRldiBpZiB3ZSBhZGQgZmVhdHVyZXMgdG8gCnRoZSBmYmRldiBjb21wYXQgbGF5ZXIg PyBJJ2QgbXVjaCByYXRoZXIgbWFrZSBpdCBjbGVhciB0byB0aGVtIHRoYXQgZmJkZXYgaXMgYSAK dGhpbmcgZnJvbSB0aGUgcGFzdCBhbmQgdGhhdCB0aGV5J2QgYmV0dGVyIG1pZ3JhdGUgbm93LgoK PiBTaWduZWQtb2ZmLWJ5OiBYaW5saWFuZyBMaXUgPHhpbmxpYW5nLmxpdUBsaW5hcm8ub3JnPgo+ IFtzLmNocmlzdEBwaHl0ZWMuZGU6IFBpY2tpbmcgcGF0Y2ggZnJvbQo+ICAgICAgICAgICAgICAg ICAgICAgIGh0dHBzOi8vbGttbC5vcmcvbGttbC8yMDE1LzkvMTQvMTg4XQo+IFNpZ25lZC1vZmYt Ynk6IFN0ZWZhbiBDaHJpc3QgPHMuY2hyaXN0QHBoeXRlYy5kZT4KPiBTaWduZWQtb2ZmLWJ5OiBN YXhpbWUgUmlwYXJkIDxtYXhpbWUucmlwYXJkQGZyZWUtZWxlY3Ryb25zLmNvbT4KPiAtLS0KPiAg ZHJpdmVycy9ncHUvZHJtL0tjb25maWcgICAgICAgICAgICAgfCA4ICsrKysrKysrCj4gIGRyaXZl cnMvZ3B1L2RybS9kcm1fZmJfY21hX2hlbHBlci5jIHwgOCArKysrKysrLQo+ICAyIGZpbGVzIGNo YW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZwo+IGluZGV4 IGViZmU4NDA0YzI1Zi4uMmNhOWJiMjZhNGU0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKPiBAQCAtMTIxLDYgKzEy MSwxNCBAQCBjb25maWcgRFJNX0tNU19DTUFfSEVMUEVSCj4gIAloZWxwCj4gIAkgIENob29zZSB0 aGlzIGlmIHlvdSBuZWVkIHRoZSBLTVMgQ01BIGhlbHBlciBmdW5jdGlvbnMKPiAKPiArY29uZmln IERSTV9DTUFfRkJERVZfQlVGRkVSX05VTQo+ICsJaW50ICJDbWEgRmJkZXYgQnVmZmVyIE51bWJl ciIKPiArCWRlcGVuZHMgb24gRFJNX0tNU19DTUFfSEVMUEVSCj4gKwlkZWZhdWx0IDEKPiArCWhl bHAKPiArCSAgRGVmaW5lcyB0aGUgYnVmZmVyIG51bWJlciBvZiBjbWEgZmJkZXYuICBEZWZhdWx0 IGlzIG9uZSBidWZmZXIuCj4gKwkgIEZvciBkb3VibGUgYnVmZmVyIHBsZWFzZSBzZXQgdG8gMiBh bmQgMyBmb3IgdHJpcGxlIGJ1ZmZlci4KPiArCj4gIHNvdXJjZSAiZHJpdmVycy9ncHUvZHJtL2ky Yy9LY29uZmlnIgo+IAo+ICBzb3VyY2UgImRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZyIKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9jbWFfaGVscGVyLmMKPiBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fZmJfY21hX2hlbHBlci5jIGluZGV4IDgxYjM1NTgzMDJiNS4uZTNmOGI5 ZTcyMGEwCj4gMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9jbWFfaGVscGVy LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuYwo+IEBAIC00MTEs NiArNDExLDEyIEBAIHN0YXRpYyB2b2lkIGRybV9mYmRldl9jbWFfZGVmaW9fZmluaShzdHJ1Y3Qg ZmJfaW5mbwo+ICpmYmkpIGtmcmVlKGZiaS0+ZmJvcHMpOwo+ICB9Cj4gCj4gK3N0YXRpYyBpbnQg ZmJkZXZfbnVtX2J1ZmZlcnMgPSBDT05GSUdfRFJNX0NNQV9GQkRFVl9CVUZGRVJfTlVNOwo+ICtt b2R1bGVfcGFyYW0oZmJkZXZfbnVtX2J1ZmZlcnMsIGludCwgMDQ0NCk7Cj4gK01PRFVMRV9QQVJN X0RFU0MoZmJkZXZfbnVtX2J1ZmZlcnMsCj4gKwkJICJOdW1iZXIgb2YgZnJhbWUgYnVmZmVycyB0 byBhbGxvY2F0ZSBbZGVmYXVsdD0iCj4gKwkJIF9fTU9EVUxFX1NUUklORyhDT05GSUdfRFJNX0NN QV9GQkRFVl9CVUZGRVJfTlVNKSAiXSIpOwo+ICsKPiAgLyoKPiAgICogRm9yIHVzZSBpbiBhIChz dHJ1Y3QgZHJtX2ZiX2hlbHBlcl9mdW5jcyAqKS0+ZmJfcHJvYmUgY2FsbGJhY2sgZnVuY3Rpb24K PiB0aGF0ICogbmVlZHMgY3VzdG9tIHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3MsIGxpa2Ug ZGlydHkoKSBmb3IKPiBkZWZlcnJlZF9pbyB1c2UuIEBAIC00MzcsNyArNDQzLDcgQEAgaW50Cj4g ZHJtX2ZiZGV2X2NtYV9jcmVhdGVfd2l0aF9mdW5jcyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVs cGVyLAo+IGJ5dGVzX3Blcl9waXhlbCA9IERJVl9ST1VORF9VUChzaXplcy0+c3VyZmFjZV9icHAs IDgpOwo+IAo+ICAJbW9kZV9jbWQud2lkdGggPSBzaXplcy0+c3VyZmFjZV93aWR0aDsKPiAtCW1v ZGVfY21kLmhlaWdodCA9IHNpemVzLT5zdXJmYWNlX2hlaWdodDsKPiArCW1vZGVfY21kLmhlaWdo dCA9IHNpemVzLT5zdXJmYWNlX2hlaWdodCAqIGZiZGV2X251bV9idWZmZXJzOwo+ICAJbW9kZV9j bWQucGl0Y2hlc1swXSA9IHNpemVzLT5zdXJmYWNlX3dpZHRoICogYnl0ZXNfcGVyX3BpeGVsOwo+ ICAJbW9kZV9jbWQucGl4ZWxfZm9ybWF0ID0gZHJtX21vZGVfbGVnYWN5X2ZiX2Zvcm1hdChzaXpl cy0+c3VyZmFjZV9icHAsCj4gIAkJc2l6ZXMtPnN1cmZhY2VfZGVwdGgpOwoKLS0gClJlZ2FyZHMs CgpMYXVyZW50IFBpbmNoYXJ0CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwK