Received: by 10.213.65.68 with SMTP id h4csp374176imn; Wed, 28 Mar 2018 05:25:26 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+wrjlmvtvhMEHQFG1c/a4Uwrra+mlMh5hjNDijkFnMSg5UoJyjuoBqWdwDwNjjf9D6rNyf X-Received: by 2002:a17:902:6bc3:: with SMTP id m3-v6mr3543643plt.363.1522239926735; Wed, 28 Mar 2018 05:25:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522239926; cv=none; d=google.com; s=arc-20160816; b=GRKIKQPz7PjU4jsMAB8KSCvzq6rKSRQgGO6t7M7v8gi4No+wwYjdmVOJ9r7mHEkHQb f6jwaLnDlXwG7xDf1ITA2V8UesauBaqh8meDHIU1jtdPDs+1WAiP+Y/MK0sG3tIETGr4 kzw5q3r/OHtSokkxik1b/GwWuoBvrTOoh03rZRFT3LYgzFe+CqAY1QVJgpH8qC9CnPpf YH0y7JT1hsigDp4x8gYPhEPb0kRb0ZuK2/4si7MS38DoyN8Mxcp5h3DiLrpDR1/wsIUG piKFqx1semciEnv6C9mjcvsuFTsTl3V/FeAfIAPC0KNoullmZtah5IqjmzuMO89Qf9JW ZKqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:mail-followup-to :message-id:subject:cc:to:from:date:dkim-signature :arc-authentication-results; bh=/8jAAbPLIQHG1fJIWWT2hLCUD5HeIZLgCxywKRprkN0=; b=q9uN+XDOK2flbwUJKeAG5hvfmztTZMf00nyTJLcFErtf4UKmPQBvC/CdgzoEyNMLBk zw/TDJjIz4jIS+MVTC0JL9Wujpvb4nd57IMlcQIG7vI/bV9sIzU0vQxwXPlh9qx8QfwP 8SuviQKyOXUSqR5unQchaon1XaQSeA1puqTfFLCUfLLknN7eQKAB/Is2NYqqmRaxnsPs /N4VCeaGIe/JdVPLRvhgJVAWp4lkdasup+1Ycz6Lf89Ln4UY8sIaS0rcCz2hWanlgl8C rsQWtBOIjF1Wxx+i6dw7vt+hj1wc5Lakq3uWnWNMXFjgjE1x4XGERFc3VbfMx6U/f6zu yZyQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@ffwll.ch header.s=google header.b=bczyYyye; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w18si2649046pfk.343.2018.03.28.05.25.12; Wed, 28 Mar 2018 05:25:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@ffwll.ch header.s=google header.b=bczyYyye; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752737AbeC1MWl (ORCPT + 99 others); Wed, 28 Mar 2018 08:22:41 -0400 Received: from mail-wm0-f50.google.com ([74.125.82.50]:51129 "EHLO mail-wm0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751207AbeC1MWk (ORCPT ); Wed, 28 Mar 2018 08:22:40 -0400 Received: by mail-wm0-f50.google.com with SMTP id l201so4586496wmg.0 for ; Wed, 28 Mar 2018 05:22:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=sender:date:from:to:cc:subject:message-id:mail-followup-to :references:mime-version:content-disposition:in-reply-to:user-agent; bh=/8jAAbPLIQHG1fJIWWT2hLCUD5HeIZLgCxywKRprkN0=; b=bczyYyyeCMyEeqLYN02QD4cDik+09jHxgAHJU41ka9HvHT2MmEEOIk9fvD/JOIxxNv mVwmDhwThpY/ZMSkA2rfQfXE/unq1aggzGlFlL3BxaHMB4E29Gav32J85OKTxYYMNj6D MkVT712UABpbaKQ4g2alqRymqengMxKyhG4us= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :in-reply-to:user-agent; bh=/8jAAbPLIQHG1fJIWWT2hLCUD5HeIZLgCxywKRprkN0=; b=jUfUk0I0eqcA1C+JeaInxFPyflz9Wwsga+WHtIpCjI0ERUJcLFsf/jABV+bIvJy8jS G28Q447sgxxdawFnj11h9rd7OpkBoEvS19atWbvyL5piNUTBRxFOwy2Q1o7jXRnAg1px cxLrAZoJwt3Ih1MH2uk4lWnqu/dNvngIE18sBxT9Nd8ZzsVeEGoyOBCLFewRUpBJu1HA KsiDQa8IRI8reo2Jd99+nBsqofHuwShoKWTeHzDTb8b8m3DqqTXSO4tO6r6wtP+DwK4U InkX5HcKjA/Ex4/zGhlMmamDv1Jt7VAD6T0Mnz2vAntW0thWEbTMdORjPJLTUVmjrkHZ nMjg== X-Gm-Message-State: AElRT7ElxU6NuERaxi7Wm7IcNw1MTtnSsUlIIB46DlNpjAlTgufi9tbL WaVv1lNeg/cj4qRsPwQaiF0GvQ== X-Received: by 10.80.164.179 with SMTP id w48mr3214067edb.35.1522239759085; Wed, 28 Mar 2018 05:22:39 -0700 (PDT) Received: from phenom.ffwll.local (212-51-149-109.fiber7.init7.net. [212.51.149.109]) by smtp.gmail.com with ESMTPSA id d89sm2238736edc.75.2018.03.28.05.22.37 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 28 Mar 2018 05:22:38 -0700 (PDT) Date: Wed, 28 Mar 2018 14:22:36 +0200 From: Daniel Vetter To: Boris Brezillon Cc: Peter Rosin , Egbert Eich , Boris Brezillon , Alexandre Belloni , David Airlie , Nicolas Ferre , Takashi Iwai , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH] drm/atmel-hlcdc: add command line option to specify preferred depth Message-ID: <20180328122236.GF14155@phenom.ffwll.local> Mail-Followup-To: Boris Brezillon , Peter Rosin , Egbert Eich , Boris Brezillon , Alexandre Belloni , David Airlie , Nicolas Ferre , Takashi Iwai , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org References: <20180326073502.19259-1-peda@axentia.se> <20180328093454.4149fa3b@bbrezillon> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180328093454.4149fa3b@bbrezillon> X-Operating-System: Linux phenom 4.15.0-1-amd64 User-Agent: Mutt/1.9.4 (2018-02-28) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Mar 28, 2018 at 09:34:54AM +0200, Boris Brezillon wrote: > Hi Peter, > > On Mon, 26 Mar 2018 09:35:02 +0200 > Peter Rosin wrote: > > > I have an sama5d31-based system with 64MB of memory and a 1920x1080 > > LVDS display wired for 16-bpp. When I enable legacy fbdev support, > > the contiguous memory allocator invariably fails with the order-11 > > allocation for a 1920x1080@24-bpp buffer (~6MB). But this HW can never > > make any good use of RGB888, so that is a wasted attempt anyway that > > would also waste precious memory should it succeed. > > > > Sure, I could rewrite user-space to go directly to KMS etc, and that > > makes the (attempted) order-11 allocation go away, replacing it with > > one order-10 allocation per application restart for a 1920x1080@16-bpp > > buffer (<4MB). But after a few restarts, order-10 allocations start to > > fail as well, which is only to be expected AFAIU. > > > > So, I'd rather not change user-space (which was originally written > > to target a smaller display) so that I at the same time get the > > benefit of an early pre-allocated fbdev frame-buffer that can be > > reused over and over. But to do that I need to tell the driver that > > 16-bpp is the preferred depth. Add a module parameter to do just that. > > > > Signed-off-by: Peter Rosin > > --- > > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 18 +++++++++++++++++- > > 1 file changed, 17 insertions(+), 1 deletion(-) > > > > I found some inspiration regarding naming and implementation here: > > https://patchwork.kernel.org/patch/9848631/ > > > > I have found no feedback on that patch though, which makes me wonder if > > I'm perhaps barking up the wronig tree? > > Hm, isn't that something you can already overload with the video= > parameter? > > video=:[-] > > AFAIR, encodes the color depth, so what is the benefit of adding > this new property to overload the default depth? > > Maybe I'm wrong and the default depth param is actually useful, but in > this case we should probably make it generic since other drivers seems > to need it too, and we might want to attach it to a specific display > engine instance. I think for the drm's fbdev emulation we ignore the bpp ... But yeah probably worth it to wire it up properly. -Daniel > > Thanks, > > Boris > > > > > Cheers, > > Peter > > > > diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > > index c1ea5c36b006..f0148627c221 100644 > > --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > > +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > > @@ -29,6 +29,11 @@ > > > > #define ATMEL_HLCDC_LAYER_IRQS_OFFSET 8 > > > > +static int atmel_hlcdc_preferred_depth __read_mostly; > > + > > +MODULE_PARM_DESC(preferreddepth, "Set preferred bpp"); > > +module_param_named(preferreddepth, atmel_hlcdc_preferred_depth, int, 0400); > > + > > static const struct atmel_hlcdc_layer_desc atmel_hlcdc_at91sam9n12_layers[] = { > > { > > .name = "base", > > @@ -590,6 +595,7 @@ static int atmel_hlcdc_dc_modeset_init(struct drm_device *dev) > > dev->mode_config.min_height = dc->desc->min_height; > > dev->mode_config.max_width = dc->desc->max_width; > > dev->mode_config.max_height = dc->desc->max_height; > > + dev->mode_config.preferred_depth = 24; > > dev->mode_config.funcs = &mode_config_funcs; > > > > return 0; > > @@ -658,7 +664,7 @@ static int atmel_hlcdc_dc_load(struct drm_device *dev) > > > > platform_set_drvdata(pdev, dev); > > > > - drm_fb_cma_fbdev_init(dev, 24, 0); > > + drm_fb_cma_fbdev_init(dev, atmel_hlcdc_preferred_depth, 0); > > > > drm_kms_helper_poll_init(dev); > > > > @@ -756,6 +762,16 @@ static int atmel_hlcdc_dc_drm_probe(struct platform_device *pdev) > > struct drm_device *ddev; > > int ret; > > > > + switch (atmel_hlcdc_preferred_depth) { > > + case 0: /* driver default */ > > + case 8: > > + case 16: > > + case 24: > > + break; > > + default: > > + return -EINVAL; > > + } > > + > > ddev = drm_dev_alloc(&atmel_hlcdc_dc_driver, &pdev->dev); > > if (IS_ERR(ddev)) > > return PTR_ERR(ddev); > > > > -- > Boris Brezillon, Bootlin (formerly Free Electrons) > Embedded Linux and Kernel engineering > https://bootlin.com > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch