From patchwork Wed Feb 5 16:49:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anatolij Gustschin X-Patchwork-Id: 1233911 X-Patchwork-Delegate: agust@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=denx.de header.i=@denx.de header.a=rsa-sha256 header.s=phobos-20191101 header.b=f2Hbtad3; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48CSH73KPHz9sRQ for ; Thu, 6 Feb 2020 03:50:27 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id AECA881B61; Wed, 5 Feb 2020 17:50:08 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=denx.de; s=phobos-20191101; t=1580921408; bh=qsSvHkKGSYOVUAfOcMrHE0nND3pTdDs5JcEIIH044I8=; h=From:To:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: Cc:From; b=f2Hbtad3/+Z2zklcU9EQgR6P9ycBudrlZ9JOYubbtRaE/VgmFmtm/1Jfyas3xxDBF GtarnU94ugMwnPjsWVqlq36SP76N4CAqO6lLXbn/l/Y9hkfZgDnoDThvM3R3ZFI3Uy GSSdQgbXPetxQg1Z2e1pgGRqSk0IMlehzdjzdrnaTofUtFgOXntH5IZX4Qu6sUQnM4 2x0vLGR6CKV4DLLviP2KojR2g5AAIxLMMX8+DMwMbTA/AfROGV1DeG0lBr2U6nIs03 OsU7ete0w7BBFaXoebcj55qhRXpNPrjFC/ndJTgIQeyQoowE4ieYWMJwGtNwQW6pbr WrQQFajCOu0CQ== Received: by phobos.denx.de (Postfix, from userid 109) id 4D67F81AD8; Wed, 5 Feb 2020 17:50:05 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-out.m-online.net (mail-out.m-online.net [212.18.0.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id D4E9281A8D for ; Wed, 5 Feb 2020 17:50:01 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: phobos.denx.de; spf=none smtp.mailfrom=agust@denx.de Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 48CSGd3W1Jz1qqkv; Wed, 5 Feb 2020 17:50:01 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 48CSGd3MVxz1rJS9; Wed, 5 Feb 2020 17:50:01 +0100 (CET) Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id W1CgAyRnTzjc; Wed, 5 Feb 2020 17:50:00 +0100 (CET) X-Auth-Info: tb2AtnWlhw5ldEtXsivSgALo2NNd0Raj2Q+d19cS/fo= Received: from crub.agik.hopto.org (pD95F1BAA.dip0.t-ipconnect.de [217.95.27.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Wed, 5 Feb 2020 17:50:00 +0100 (CET) From: Anatolij Gustschin To: u-boot@lists.denx.de Subject: [PATCH 2/3] splash: fix banner output on small displays Date: Wed, 5 Feb 2020 17:49:58 +0100 Message-Id: <20200205164959.31404-2-agust@denx.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200205164959.31404-1-agust@denx.de> References: <20200205164959.31404-1-agust@denx.de> X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: uboot-imx@nxp.com Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean On boards with small displays (i.e. 480x272) the banner output on video console can sometimes overwrite the logo (depending on the logo size and banner length). Check for free space right of the logo before drawing the banner and adjust the starting position to draw the banner string below the logo. Also adjust the cursor position after banner output to avoid overwriting the rendered banner when the user switches stdout to the vidconsole. Signed-off-by: Anatolij Gustschin --- common/splash.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/common/splash.c b/common/splash.c index e7d847726d..c12dd38975 100644 --- a/common/splash.c +++ b/common/splash.c @@ -123,26 +123,38 @@ void splash_get_pos(int *x, int *y) void splash_display_banner(void) { + struct vidconsole_priv *priv; struct udevice *dev; char buf[DISPLAY_OPTIONS_BANNER_LENGTH]; int col, row, ret; + size_t banner_len; ret = uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &dev); if (ret) return; + priv = dev_get_uclass_priv(dev); + if (!priv) + return; + #ifdef CONFIG_VIDEO_LOGO col = BMP_LOGO_WIDTH / VIDEO_FONT_WIDTH + 1; row = BMP_LOGO_HEIGHT / VIDEO_FONT_HEIGHT + 1; #else col = 0; - row = 0; + row = 1; #endif - display_options_get_banner(false, buf, sizeof(buf)); - vidconsole_position_cursor(dev, col, 1); + + banner_len = strlen(buf); + if (priv->cols <= (col + banner_len)) + col = 0; + + vidconsole_position_cursor(dev, col, row); vidconsole_put_string(dev, buf); - vidconsole_position_cursor(dev, 0, row); + if (priv->cols < banner_len) + row++; + vidconsole_position_cursor(dev, 0, row + 1); } #endif /* CONFIG_DM_VIDEO && !CONFIG_HIDE_LOGO_VERSION */