From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 77BCAC43331 for ; Tue, 12 Nov 2019 10:20:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4F2952196E for ; Tue, 12 Nov 2019 10:20:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="XlbA2lkx" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727233AbfKLKUl (ORCPT ); Tue, 12 Nov 2019 05:20:41 -0500 Received: from mail-lj1-f195.google.com ([209.85.208.195]:35307 "EHLO mail-lj1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727196AbfKLKUk (ORCPT ); Tue, 12 Nov 2019 05:20:40 -0500 Received: by mail-lj1-f195.google.com with SMTP id r7so17145313ljg.2 for ; Tue, 12 Nov 2019 02:20:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Wt2tEGTMbBPb9EywvqOKOcH2ynL0iBFpbMNN4+VttJ0=; b=XlbA2lkx5U6xHQpjpbtaPonUBRx8Bgbc9b0c0WsGCtpccg3XNabQSjfxQQMRs7LSy3 CeEJEksFBroPrS6PWgQTN0XTRgomAjXS8WglIacf4vA7CL73qKqSptdAFrwiIazmgRob eJMFRZyuN2xgrDkcOa1epW+7vPZ+o4En9jvvNp3/xqkhqGgalnSPBlre1FjB/GoFsSEt xXvhXF6o4D3fdmSq5BdJ8gtMSi72WfQ3Zewzq1QIfdw/cCSAGnuR9Ke9UxQGitkIo3DS Enf6jzQVgg2rirgr4fquWQ6GEcJkfCW5pl/D+f6spNU+IzR2emUgHHl01u76fAi67ubk NHOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Wt2tEGTMbBPb9EywvqOKOcH2ynL0iBFpbMNN4+VttJ0=; b=OVRrGHfooNiXsXfxsilOR1VJHf8DlHGVLmV5BVi97nqaI9pCdnSIe4Yj1lMtgUMWPD 8B+aHG3eV4Xn7BrV1xzPTGkS2Qaskh1Xkezhj2IsPZSZaQdB1+LG8Pw6MBXonGye1LKS iLAnOFmy2iKAoxYjgCPJIIwyFig9tBdVxXnXI5utijQ+B1rUF4kft4Qjfc0lMJT0QMB5 MId/qEaBMsYZA5wIUR3HDxZJk45sVp2QWYxysEVRhxnHxVBjR+7QItIulfW/56ft7m5h yT6hmFK0F4qj4F/c5L3eUgAJDFzbjdQ3CJkxHE0+G5e7Ib0M6VLKKzFsahYXsuJHSxFV X1Iw== X-Gm-Message-State: APjAAAU3AJTsytiFzQ28p6nqnRZTDxut5gslgOfbPTiROOgk/7jkda+N 84f5T7mUGb/UX8hDqfWWtKCfSz2K11MS8PjxJkvgBu7H X-Google-Smtp-Source: APXvYqwLv1QgL2LY5NF5oc3QxBBclz4En9VtQbqxmqlW3vDAlGPhSJ+CTuktQ/HjVllWY5WHsgIXoLqwTbvrEiWLmT8= X-Received: by 2002:a2e:9e45:: with SMTP id g5mr17502010ljk.58.1573554038403; Tue, 12 Nov 2019 02:20:38 -0800 (PST) MIME-Version: 1.0 References: <20191107153048.843881-1-paul.kocialkowski@bootlin.com> In-Reply-To: <20191107153048.843881-1-paul.kocialkowski@bootlin.com> From: Patrik Jakobsson Date: Tue, 12 Nov 2019 11:20:27 +0100 Message-ID: Subject: Re: [PATCH] drm/gma500: Fixup fbdev stolen size usage evaluation To: Paul Kocialkowski Cc: dri-devel , linux-kernel , David Airlie , Daniel Vetter , Thomas Petazzoni , James Hilliard Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Nov 7, 2019 at 4:30 PM Paul Kocialkowski wrote: > > psbfb_probe performs an evaluation of the required size from the stolen > GTT memory, but gets it wrong in two distinct ways: > - The resulting size must be page-size-aligned; > - The size to allocate is derived from the surface dimensions, not the fb > dimensions. > > When two connectors are connected with different modes, the smallest will > be stored in the fb dimensions, but the size that needs to be allocated must > match the largest (surface) dimensions. This is what is used in the actual > allocation code. > > Fix this by correcting the evaluation to conform to the two points above. > It allows correctly switching to 16bpp when one connector is e.g. 1920x1080 > and the other is 1024x768. > > Signed-off-by: Paul Kocialkowski > --- > drivers/gpu/drm/gma500/framebuffer.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c > index 218f3bb15276..90237abee088 100644 > --- a/drivers/gpu/drm/gma500/framebuffer.c > +++ b/drivers/gpu/drm/gma500/framebuffer.c > @@ -462,6 +462,7 @@ static int psbfb_probe(struct drm_fb_helper *helper, > container_of(helper, struct psb_fbdev, psb_fb_helper); > struct drm_device *dev = psb_fbdev->psb_fb_helper.dev; > struct drm_psb_private *dev_priv = dev->dev_private; > + unsigned int fb_size; > int bytespp; > > bytespp = sizes->surface_bpp / 8; > @@ -471,8 +472,11 @@ static int psbfb_probe(struct drm_fb_helper *helper, > /* If the mode will not fit in 32bit then switch to 16bit to get > a console on full resolution. The X mode setting server will > allocate its own 32bit GEM framebuffer */ > - if (ALIGN(sizes->fb_width * bytespp, 64) * sizes->fb_height > > - dev_priv->vram_stolen_size) { > + fb_size = ALIGN(sizes->surface_width * bytespp, 64) * > + sizes->surface_height; > + fb_size = ALIGN(fb_size, PAGE_SIZE); > + > + if (fb_size > dev_priv->vram_stolen_size) { psb_gtt_alloc_range() already aligns by PAGE_SIZE for us. Looks like we align a couple of times extra for luck. This needs cleaning up instead of adding even more aligns. Your size calculation looks correct and indeed makes my 1024x600 + 1920x1080 setup actually display something, but for some reason I get an incorrect panning on the smaller screen and stale data on the surface only visible by the larger CRTC. Any idea what's going on? > sizes->surface_bpp = 16; > sizes->surface_depth = 16; > } > -- > 2.23.0 > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2E254C17441 for ; Tue, 12 Nov 2019 10:20:43 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0F7212196E for ; Tue, 12 Nov 2019 10:20:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0F7212196E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 111A46E39C; Tue, 12 Nov 2019 10:20:42 +0000 (UTC) Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7A48A6E39C for ; Tue, 12 Nov 2019 10:20:40 +0000 (UTC) Received: by mail-lj1-x241.google.com with SMTP id g3so17106896ljl.11 for ; Tue, 12 Nov 2019 02:20:40 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Wt2tEGTMbBPb9EywvqOKOcH2ynL0iBFpbMNN4+VttJ0=; b=f+bjJF8xL30kmb+HOuMu7Iohx9o9BUyjAJPZnHWgmOm0NLcW4N3GgAOgxoc6JuOofi sf2JgbiGROAynPQ5Y1Wft+yY0K+55U7sZCHji35u4fD5ICStPgp4gVv7faMlAHJrUegq nSUtOq6dJKydYVXdVxagM98RpigzYkUdKiqBRauxmpAvLSlCRK2xkrXaqVuM5Hip/PsP LC017PL6y3PIM/Nq/b+wkVDiHWQALL9kCmKs+VO5N8uxyZsr/NljlWFnfKW3REk2lmQi CviyStOe1WO/ol5HC3b2pS40KyBDl6uPk6hHbixtE2TojprwLMrnD3IG9x199LwZjXf8 Gdjg== X-Gm-Message-State: APjAAAW3cNQbneMO8CLfRUTtls2hsW4wtcNwdeoLLRPA0xwJ34aQ9+qC kyAeU6aZDq3MRyjH4FcCrn5g/5itMBX9VM/aVCI= X-Google-Smtp-Source: APXvYqwLv1QgL2LY5NF5oc3QxBBclz4En9VtQbqxmqlW3vDAlGPhSJ+CTuktQ/HjVllWY5WHsgIXoLqwTbvrEiWLmT8= X-Received: by 2002:a2e:9e45:: with SMTP id g5mr17502010ljk.58.1573554038403; Tue, 12 Nov 2019 02:20:38 -0800 (PST) MIME-Version: 1.0 References: <20191107153048.843881-1-paul.kocialkowski@bootlin.com> In-Reply-To: <20191107153048.843881-1-paul.kocialkowski@bootlin.com> From: Patrik Jakobsson Date: Tue, 12 Nov 2019 11:20:27 +0100 Message-ID: Subject: Re: [PATCH] drm/gma500: Fixup fbdev stolen size usage evaluation To: Paul Kocialkowski X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Wt2tEGTMbBPb9EywvqOKOcH2ynL0iBFpbMNN4+VttJ0=; b=XlbA2lkx5U6xHQpjpbtaPonUBRx8Bgbc9b0c0WsGCtpccg3XNabQSjfxQQMRs7LSy3 CeEJEksFBroPrS6PWgQTN0XTRgomAjXS8WglIacf4vA7CL73qKqSptdAFrwiIazmgRob eJMFRZyuN2xgrDkcOa1epW+7vPZ+o4En9jvvNp3/xqkhqGgalnSPBlre1FjB/GoFsSEt xXvhXF6o4D3fdmSq5BdJ8gtMSi72WfQ3Zewzq1QIfdw/cCSAGnuR9Ke9UxQGitkIo3DS Enf6jzQVgg2rirgr4fquWQ6GEcJkfCW5pl/D+f6spNU+IzR2emUgHHl01u76fAi67ubk NHOg== X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Petazzoni , David Airlie , linux-kernel , dri-devel , James Hilliard Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191112102027.KIqvhRR4Lwkxe8mqJImjzyfa_1jqPrcO9bIP-rJBN2M@z> T24gVGh1LCBOb3YgNywgMjAxOSBhdCA0OjMwIFBNIFBhdWwgS29jaWFsa293c2tpCjxwYXVsLmtv Y2lhbGtvd3NraUBib290bGluLmNvbT4gd3JvdGU6Cj4KPiBwc2JmYl9wcm9iZSBwZXJmb3JtcyBh biBldmFsdWF0aW9uIG9mIHRoZSByZXF1aXJlZCBzaXplIGZyb20gdGhlIHN0b2xlbgo+IEdUVCBt ZW1vcnksIGJ1dCBnZXRzIGl0IHdyb25nIGluIHR3byBkaXN0aW5jdCB3YXlzOgo+IC0gVGhlIHJl c3VsdGluZyBzaXplIG11c3QgYmUgcGFnZS1zaXplLWFsaWduZWQ7Cj4gLSBUaGUgc2l6ZSB0byBh bGxvY2F0ZSBpcyBkZXJpdmVkIGZyb20gdGhlIHN1cmZhY2UgZGltZW5zaW9ucywgbm90IHRoZSBm Ygo+ICAgZGltZW5zaW9ucy4KPgo+IFdoZW4gdHdvIGNvbm5lY3RvcnMgYXJlIGNvbm5lY3RlZCB3 aXRoIGRpZmZlcmVudCBtb2RlcywgdGhlIHNtYWxsZXN0IHdpbGwKPiBiZSBzdG9yZWQgaW4gdGhl IGZiIGRpbWVuc2lvbnMsIGJ1dCB0aGUgc2l6ZSB0aGF0IG5lZWRzIHRvIGJlIGFsbG9jYXRlZCBt dXN0Cj4gbWF0Y2ggdGhlIGxhcmdlc3QgKHN1cmZhY2UpIGRpbWVuc2lvbnMuIFRoaXMgaXMgd2hh dCBpcyB1c2VkIGluIHRoZSBhY3R1YWwKPiBhbGxvY2F0aW9uIGNvZGUuCj4KPiBGaXggdGhpcyBi eSBjb3JyZWN0aW5nIHRoZSBldmFsdWF0aW9uIHRvIGNvbmZvcm0gdG8gdGhlIHR3byBwb2ludHMg YWJvdmUuCj4gSXQgYWxsb3dzIGNvcnJlY3RseSBzd2l0Y2hpbmcgdG8gMTZicHAgd2hlbiBvbmUg Y29ubmVjdG9yIGlzIGUuZy4gMTkyMHgxMDgwCj4gYW5kIHRoZSBvdGhlciBpcyAxMDI0eDc2OC4K Pgo+IFNpZ25lZC1vZmYtYnk6IFBhdWwgS29jaWFsa293c2tpIDxwYXVsLmtvY2lhbGtvd3NraUBi b290bGluLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9mcmFtZWJ1ZmZlci5j IHwgOCArKysrKystLQo+ICAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvZnJhbWVidWZm ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvZnJhbWVidWZmZXIuYwo+IGluZGV4IDIxOGYz YmIxNTI3Ni4uOTAyMzdhYmVlMDg4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1 MDAvZnJhbWVidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvZnJhbWVidWZm ZXIuYwo+IEBAIC00NjIsNiArNDYyLDcgQEAgc3RhdGljIGludCBwc2JmYl9wcm9iZShzdHJ1Y3Qg ZHJtX2ZiX2hlbHBlciAqaGVscGVyLAo+ICAgICAgICAgICAgICAgICBjb250YWluZXJfb2YoaGVs cGVyLCBzdHJ1Y3QgcHNiX2ZiZGV2LCBwc2JfZmJfaGVscGVyKTsKPiAgICAgICAgIHN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBwc2JfZmJkZXYtPnBzYl9mYl9oZWxwZXIuZGV2Owo+ICAgICAgICAg c3RydWN0IGRybV9wc2JfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsg ICAgICAgdW5zaWduZWQgaW50IGZiX3NpemU7Cj4gICAgICAgICBpbnQgYnl0ZXNwcDsKPgo+ICAg ICAgICAgYnl0ZXNwcCA9IHNpemVzLT5zdXJmYWNlX2JwcCAvIDg7Cj4gQEAgLTQ3MSw4ICs0NzIs MTEgQEAgc3RhdGljIGludCBwc2JmYl9wcm9iZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVy LAo+ICAgICAgICAgLyogSWYgdGhlIG1vZGUgd2lsbCBub3QgZml0IGluIDMyYml0IHRoZW4gc3dp dGNoIHRvIDE2Yml0IHRvIGdldAo+ICAgICAgICAgICAgYSBjb25zb2xlIG9uIGZ1bGwgcmVzb2x1 dGlvbi4gVGhlIFggbW9kZSBzZXR0aW5nIHNlcnZlciB3aWxsCj4gICAgICAgICAgICBhbGxvY2F0 ZSBpdHMgb3duIDMyYml0IEdFTSBmcmFtZWJ1ZmZlciAqLwo+IC0gICAgICAgaWYgKEFMSUdOKHNp emVzLT5mYl93aWR0aCAqIGJ5dGVzcHAsIDY0KSAqIHNpemVzLT5mYl9oZWlnaHQgPgo+IC0gICAg ICAgICAgICAgICAgICAgICAgIGRldl9wcml2LT52cmFtX3N0b2xlbl9zaXplKSB7Cj4gKyAgICAg ICBmYl9zaXplID0gQUxJR04oc2l6ZXMtPnN1cmZhY2Vfd2lkdGggKiBieXRlc3BwLCA2NCkgKgo+ ICsgICAgICAgICAgICAgICAgIHNpemVzLT5zdXJmYWNlX2hlaWdodDsKPiArICAgICAgIGZiX3Np emUgPSBBTElHTihmYl9zaXplLCBQQUdFX1NJWkUpOwo+ICsKPiArICAgICAgIGlmIChmYl9zaXpl ID4gZGV2X3ByaXYtPnZyYW1fc3RvbGVuX3NpemUpIHsKCnBzYl9ndHRfYWxsb2NfcmFuZ2UoKSBh bHJlYWR5IGFsaWducyBieSBQQUdFX1NJWkUgZm9yIHVzLiBMb29rcyBsaWtlCndlIGFsaWduIGEg Y291cGxlIG9mIHRpbWVzIGV4dHJhIGZvciBsdWNrLiBUaGlzIG5lZWRzIGNsZWFuaW5nIHVwCmlu c3RlYWQgb2YgYWRkaW5nIGV2ZW4gbW9yZSBhbGlnbnMuCgpZb3VyIHNpemUgY2FsY3VsYXRpb24g bG9va3MgY29ycmVjdCBhbmQgaW5kZWVkIG1ha2VzIG15IDEwMjR4NjAwICsKMTkyMHgxMDgwIHNl dHVwIGFjdHVhbGx5IGRpc3BsYXkgc29tZXRoaW5nLCBidXQgZm9yIHNvbWUgcmVhc29uIEkgZ2V0 CmFuIGluY29ycmVjdCBwYW5uaW5nIG9uIHRoZSBzbWFsbGVyIHNjcmVlbiBhbmQgc3RhbGUgZGF0 YSBvbiB0aGUKc3VyZmFjZSBvbmx5IHZpc2libGUgYnkgdGhlIGxhcmdlciBDUlRDLiBBbnkgaWRl YSB3aGF0J3MgZ29pbmcgb24/Cgo+ICAgICAgICAgICAgICAgICAgc2l6ZXMtPnN1cmZhY2VfYnBw ID0gMTY7Cj4gICAgICAgICAgICAgICAgICBzaXplcy0+c3VyZmFjZV9kZXB0aCA9IDE2Owo+ICAg ICAgICAgIH0KPiAtLQo+IDIuMjMuMAo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbA==