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=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT 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 60239C43331 for ; Thu, 7 Nov 2019 15:31:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2D713214D8 for ; Thu, 7 Nov 2019 15:31:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729985AbfKGPbA (ORCPT ); Thu, 7 Nov 2019 10:31:00 -0500 Received: from relay12.mail.gandi.net ([217.70.178.232]:43661 "EHLO relay12.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729656AbfKGPa7 (ORCPT ); Thu, 7 Nov 2019 10:30:59 -0500 Received: from localhost.localdomain (lfbn-tou-1-421-123.w86-206.abo.wanadoo.fr [86.206.246.123]) (Authenticated sender: paul.kocialkowski@bootlin.com) by relay12.mail.gandi.net (Postfix) with ESMTPSA id DF367200011; Thu, 7 Nov 2019 15:30:55 +0000 (UTC) From: Paul Kocialkowski To: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: Patrik Jakobsson , David Airlie , Daniel Vetter , Thomas Petazzoni , James Hilliard , Paul Kocialkowski Subject: [PATCH] drm/gma500: Fixup fbdev stolen size usage evaluation Date: Thu, 7 Nov 2019 16:30:48 +0100 Message-Id: <20191107153048.843881-1-paul.kocialkowski@bootlin.com> X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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) { 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=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT 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 3FB84C5DF60 for ; Thu, 7 Nov 2019 15:31:02 +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 2059F21882 for ; Thu, 7 Nov 2019 15:31:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2059F21882 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bootlin.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 AB0D26F6F2; Thu, 7 Nov 2019 15:31:01 +0000 (UTC) X-Greylist: delayed 107209 seconds by postgrey-1.36 at gabe; Thu, 07 Nov 2019 15:31:00 UTC Received: from relay12.mail.gandi.net (relay12.mail.gandi.net [217.70.178.232]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5ADDD6F6F2 for ; Thu, 7 Nov 2019 15:31:00 +0000 (UTC) Received: from localhost.localdomain (lfbn-tou-1-421-123.w86-206.abo.wanadoo.fr [86.206.246.123]) (Authenticated sender: paul.kocialkowski@bootlin.com) by relay12.mail.gandi.net (Postfix) with ESMTPSA id DF367200011; Thu, 7 Nov 2019 15:30:55 +0000 (UTC) From: Paul Kocialkowski To: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH] drm/gma500: Fixup fbdev stolen size usage evaluation Date: Thu, 7 Nov 2019 16:30:48 +0100 Message-Id: <20191107153048.843881-1-paul.kocialkowski@bootlin.com> X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 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: David Airlie , Paul Kocialkowski , James Hilliard , Thomas Petazzoni Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191107153048.apkBkCSj8D4x-PPaK38tkMLrPxmvPav9RtU_9QgOZHw@z> cHNiZmJfcHJvYmUgcGVyZm9ybXMgYW4gZXZhbHVhdGlvbiBvZiB0aGUgcmVxdWlyZWQgc2l6ZSBm cm9tIHRoZSBzdG9sZW4KR1RUIG1lbW9yeSwgYnV0IGdldHMgaXQgd3JvbmcgaW4gdHdvIGRpc3Rp bmN0IHdheXM6Ci0gVGhlIHJlc3VsdGluZyBzaXplIG11c3QgYmUgcGFnZS1zaXplLWFsaWduZWQ7 Ci0gVGhlIHNpemUgdG8gYWxsb2NhdGUgaXMgZGVyaXZlZCBmcm9tIHRoZSBzdXJmYWNlIGRpbWVu c2lvbnMsIG5vdCB0aGUgZmIKICBkaW1lbnNpb25zLgoKV2hlbiB0d28gY29ubmVjdG9ycyBhcmUg Y29ubmVjdGVkIHdpdGggZGlmZmVyZW50IG1vZGVzLCB0aGUgc21hbGxlc3Qgd2lsbApiZSBzdG9y ZWQgaW4gdGhlIGZiIGRpbWVuc2lvbnMsIGJ1dCB0aGUgc2l6ZSB0aGF0IG5lZWRzIHRvIGJlIGFs bG9jYXRlZCBtdXN0Cm1hdGNoIHRoZSBsYXJnZXN0IChzdXJmYWNlKSBkaW1lbnNpb25zLiBUaGlz IGlzIHdoYXQgaXMgdXNlZCBpbiB0aGUgYWN0dWFsCmFsbG9jYXRpb24gY29kZS4KCkZpeCB0aGlz IGJ5IGNvcnJlY3RpbmcgdGhlIGV2YWx1YXRpb24gdG8gY29uZm9ybSB0byB0aGUgdHdvIHBvaW50 cyBhYm92ZS4KSXQgYWxsb3dzIGNvcnJlY3RseSBzd2l0Y2hpbmcgdG8gMTZicHAgd2hlbiBvbmUg Y29ubmVjdG9yIGlzIGUuZy4gMTkyMHgxMDgwCmFuZCB0aGUgb3RoZXIgaXMgMTAyNHg3NjguCgpT aWduZWQtb2ZmLWJ5OiBQYXVsIEtvY2lhbGtvd3NraSA8cGF1bC5rb2NpYWxrb3dza2lAYm9vdGxp bi5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9mcmFtZWJ1ZmZlci5jIHwgOCArKysr KystLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2ZyYW1lYnVmZmVyLmMgYi9kcml2ZXJz L2dwdS9kcm0vZ21hNTAwL2ZyYW1lYnVmZmVyLmMKaW5kZXggMjE4ZjNiYjE1Mjc2Li45MDIzN2Fi ZWUwODggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvZnJhbWVidWZmZXIuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2ZyYW1lYnVmZmVyLmMKQEAgLTQ2Miw2ICs0NjIs NyBAQCBzdGF0aWMgaW50IHBzYmZiX3Byb2JlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIs CiAJCWNvbnRhaW5lcl9vZihoZWxwZXIsIHN0cnVjdCBwc2JfZmJkZXYsIHBzYl9mYl9oZWxwZXIp OwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwc2JfZmJkZXYtPnBzYl9mYl9oZWxwZXIuZGV2 OwogCXN0cnVjdCBkcm1fcHNiX3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK Kwl1bnNpZ25lZCBpbnQgZmJfc2l6ZTsKIAlpbnQgYnl0ZXNwcDsKIAogCWJ5dGVzcHAgPSBzaXpl cy0+c3VyZmFjZV9icHAgLyA4OwpAQCAtNDcxLDggKzQ3MiwxMSBAQCBzdGF0aWMgaW50IHBzYmZi X3Byb2JlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCiAJLyogSWYgdGhlIG1vZGUgd2ls bCBub3QgZml0IGluIDMyYml0IHRoZW4gc3dpdGNoIHRvIDE2Yml0IHRvIGdldAogCSAgIGEgY29u c29sZSBvbiBmdWxsIHJlc29sdXRpb24uIFRoZSBYIG1vZGUgc2V0dGluZyBzZXJ2ZXIgd2lsbAog CSAgIGFsbG9jYXRlIGl0cyBvd24gMzJiaXQgR0VNIGZyYW1lYnVmZmVyICovCi0JaWYgKEFMSUdO KHNpemVzLT5mYl93aWR0aCAqIGJ5dGVzcHAsIDY0KSAqIHNpemVzLT5mYl9oZWlnaHQgPgotCSAg ICAgICAgICAgICAgICBkZXZfcHJpdi0+dnJhbV9zdG9sZW5fc2l6ZSkgeworCWZiX3NpemUgPSBB TElHTihzaXplcy0+c3VyZmFjZV93aWR0aCAqIGJ5dGVzcHAsIDY0KSAqCisJCSAgc2l6ZXMtPnN1 cmZhY2VfaGVpZ2h0OworCWZiX3NpemUgPSBBTElHTihmYl9zaXplLCBQQUdFX1NJWkUpOworCisJ aWYgKGZiX3NpemUgPiBkZXZfcHJpdi0+dnJhbV9zdG9sZW5fc2l6ZSkgewogICAgICAgICAgICAg ICAgIHNpemVzLT5zdXJmYWNlX2JwcCA9IDE2OwogICAgICAgICAgICAgICAgIHNpemVzLT5zdXJm YWNlX2RlcHRoID0gMTY7CiAgICAgICAgIH0KLS0gCjIuMjMuMAoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs