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 Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4AB17C433FE for ; Wed, 19 Oct 2022 11:26:47 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 25B1684FBB; Wed, 19 Oct 2022 13:25:29 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="MjsFZezj"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 172D184FDB; Wed, 19 Oct 2022 13:25:07 +0200 (CEST) Received: from mail-io1-xd2e.google.com (mail-io1-xd2e.google.com [IPv6:2607:f8b0:4864:20::d2e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id C1BFD84EA3 for ; Wed, 19 Oct 2022 13:24:42 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-io1-xd2e.google.com with SMTP id l127so14122824iof.12 for ; Wed, 19 Oct 2022 04:24:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=EuZ1jz40gRZBb56sbp8T4AlLt4YENtJHA0okjBPP+t4=; b=MjsFZezjo2U/8c3zuvfBvP0lpTrYv2ngnTqdcMXzAP7/ycvudD1ZvxGCtbitrkyZJy 6df0JZwEL47VPewLeeotTGsrbm7Mau9Yq0KpBOzZam9bc/1sN+323RPuaTA9NMTT4qUP rCqYNrtF/apNbQJ78eeVWd2Zn0jYbiH+xLBlg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EuZ1jz40gRZBb56sbp8T4AlLt4YENtJHA0okjBPP+t4=; b=eXu3oI14Pt25RYX0dVsjXynOWeaQc0iFXpwKNo1rW0AXF6TW/oPoZbWfK85Fw8tvtO ahw93nHUe6jqLEpYVWNqraGYKu2QQHJ9GbC1wDHjWX/hg+ri2bJ+eKcyrk4NNUy98ygz q1EEjiuwVPDkKOB/645UP9sbijYOFM4Qfobr7kuUmrVdLBR23EqooHfYhRFKtodAezsU oHGj1rTiTj059V/nuyqtjNjW7u3xLBA8JGyohH8rk29BkHsOuB5o91yjFgOvlKdIc/Qx 9mdoyyiPTxoEehsz9wpFnd3hiW5cIeB4JM5gBTOUooCFXWSsgEeZ2opnQ0g/oz9bXDOK VpIA== X-Gm-Message-State: ACrzQf1jgZCHDG4p8/ANtkijBRUbXJm2ZO6dLLuiNBji34dTWZSGnSyH BR6nOlqWL8ZfSDUjb3D1vCQRJjsTXtr2zA== X-Google-Smtp-Source: AMsMyM4mBNtCHNBo4GQKytsvS9TxJaBss5WAH50Xdzq/O8VqasGgBgBqTcEhW0SJxtFk2sV3a2w3ow== X-Received: by 2002:a6b:6709:0:b0:6bc:269e:e81a with SMTP id b9-20020a6b6709000000b006bc269ee81amr5317726ioc.174.1666178682075; Wed, 19 Oct 2022 04:24:42 -0700 (PDT) Received: from sjg1.roam.corp.google.com (c-67-190-102-125.hsd1.co.comcast.net. [67.190.102.125]) by smtp.gmail.com with ESMTPSA id g34-20020a022722000000b003634aa4a55asm2041156jaa.82.2022.10.19.04.24.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Oct 2022 04:24:41 -0700 (PDT) From: Simon Glass To: U-Boot Mailing List Cc: Anatolij Gustschin , Simon Glass , Matthias Brugger , Ovidiu Panait , Patrice Chotard , Patrick Delaunay , Rui Miguel Silva , Stefan Roese , Thomas Huth Subject: [PATCH 05/39] video: lcd: Drop console rotation Date: Wed, 19 Oct 2022 05:23:22 -0600 Message-Id: <20221019112356.1042065-6-sjg@chromium.org> X-Mailer: git-send-email 2.38.0.413.g74048e4d9e-goog In-Reply-To: <20221019112356.1042065-1-sjg@chromium.org> References: <20221019112356.1042065-1-sjg@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean This option is not used in U-Boot anymore. Drop it option and the associated implementation. Signed-off-by: Simon Glass --- README | 21 ---- common/Makefile | 1 - common/lcd_console_rotation.c | 194 ---------------------------------- 3 files changed, 216 deletions(-) delete mode 100644 common/lcd_console_rotation.c diff --git a/README b/README index 186f1f9a5ff..ec492f9926c 100644 --- a/README +++ b/README @@ -823,27 +823,6 @@ The following options need to be configured: here, since it is cheaper to change data cache settings on a per-section basis. - - CONFIG_LCD_ROTATION - - Sometimes, for example if the display is mounted in portrait - mode or even if it's mounted landscape but rotated by 180degree, - we need to rotate our content of the display relative to the - framebuffer, so that user can read the messages which are - printed out. - Once CONFIG_LCD_ROTATION is defined, the lcd_console will be - initialized with a given rotation from "vl_rot" out of - "vidinfo_t" which is provided by the board specific code. - The value for vl_rot is coded as following (matching to - fbcon=rotate: linux-kernel commandline): - 0 = no rotation respectively 0 degree - 1 = 90 degree rotation - 2 = 180 degree rotation - 3 = 270 degree rotation - - If CONFIG_LCD_ROTATION is not defined, the console will be - initialized with 0degree rotation. - - MII/PHY support: CONFIG_PHY_CLOCK_FREQ (ppc4xx) diff --git a/common/Makefile b/common/Makefile index 1d56c9f2895..d3175b7a854 100644 --- a/common/Makefile +++ b/common/Makefile @@ -38,7 +38,6 @@ obj-$(CONFIG_SPLASH_SOURCE) += splash_source.o ifndef CONFIG_DM_VIDEO obj-$(CONFIG_LCD) += lcd.o lcd_console.o endif -obj-$(CONFIG_LCD_ROTATION) += lcd_console_rotation.o obj-$(CONFIG_MENU) += menu.o obj-$(CONFIG_UPDATE_COMMON) += update.o obj-$(CONFIG_USB_KEYBOARD) += usb_kbd.o diff --git a/common/lcd_console_rotation.c b/common/lcd_console_rotation.c deleted file mode 100644 index a5f5c6da7be..00000000000 --- a/common/lcd_console_rotation.c +++ /dev/null @@ -1,194 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -/* - * (C) Copyright 2015 - * Bernecker & Rainer Industrieelektronik GmbH - http://www.br-automation.com - */ - -#include -#include -#include /* Get font data, width and height */ - -static void lcd_putc_xy90(struct console_t *pcons, ushort x, ushort y, char c) -{ - int fg_color = lcd_getfgcolor(); - int bg_color = lcd_getbgcolor(); - int col, i; - - fbptr_t *dst = (fbptr_t *)pcons->fbbase + - (x+1) * pcons->lcdsizex - - y; - - uchar msk = 0x80; - uchar *pfont = video_fontdata + c * VIDEO_FONT_HEIGHT; - for (col = 0; col < VIDEO_FONT_WIDTH; ++col) { - for (i = 0; i < VIDEO_FONT_HEIGHT; ++i) - *dst-- = (*(pfont + i) & msk) ? fg_color : bg_color; - msk >>= 1; - dst += (pcons->lcdsizex + VIDEO_FONT_HEIGHT); - } -} - -static inline void console_setrow90(struct console_t *pcons, u32 row, int clr) -{ - int i, j; - fbptr_t *dst = (fbptr_t *)pcons->fbbase + - pcons->lcdsizex - - row*VIDEO_FONT_HEIGHT+1; - - for (j = 0; j < pcons->lcdsizey; j++) { - for (i = 0; i < VIDEO_FONT_HEIGHT; i++) - *dst-- = clr; - dst += (pcons->lcdsizex + VIDEO_FONT_HEIGHT); - } -} - -static inline void console_moverow90(struct console_t *pcons, - u32 rowdst, u32 rowsrc) -{ - int i, j; - fbptr_t *dst = (fbptr_t *)pcons->fbbase + - pcons->lcdsizex - - (rowdst*VIDEO_FONT_HEIGHT+1); - - fbptr_t *src = (fbptr_t *)pcons->fbbase + - pcons->lcdsizex - - (rowsrc*VIDEO_FONT_HEIGHT+1); - - for (j = 0; j < pcons->lcdsizey; j++) { - for (i = 0; i < VIDEO_FONT_HEIGHT; i++) - *dst-- = *src--; - src += (pcons->lcdsizex + VIDEO_FONT_HEIGHT); - dst += (pcons->lcdsizex + VIDEO_FONT_HEIGHT); - } -} -static void lcd_putc_xy180(struct console_t *pcons, ushort x, ushort y, char c) -{ - int fg_color = lcd_getfgcolor(); - int bg_color = lcd_getbgcolor(); - int i, row; - fbptr_t *dst = (fbptr_t *)pcons->fbbase + - pcons->lcdsizex + - pcons->lcdsizey * pcons->lcdsizex - - y * pcons->lcdsizex - - (x+1); - - for (row = 0; row < VIDEO_FONT_HEIGHT; row++) { - uchar bits = video_fontdata[c * VIDEO_FONT_HEIGHT + row]; - - for (i = 0; i < VIDEO_FONT_WIDTH; ++i) { - *dst-- = (bits & 0x80) ? fg_color : bg_color; - bits <<= 1; - } - dst -= (pcons->lcdsizex - VIDEO_FONT_WIDTH); - } -} - -static inline void console_setrow180(struct console_t *pcons, u32 row, int clr) -{ - int i; - fbptr_t *dst = (fbptr_t *)pcons->fbbase + - (pcons->rows-row-1) * VIDEO_FONT_HEIGHT * - pcons->lcdsizex; - - for (i = 0; i < (VIDEO_FONT_HEIGHT * pcons->lcdsizex); i++) - *dst++ = clr; -} - -static inline void console_moverow180(struct console_t *pcons, - u32 rowdst, u32 rowsrc) -{ - int i; - fbptr_t *dst = (fbptr_t *)pcons->fbbase + - (pcons->rows-rowdst-1) * VIDEO_FONT_HEIGHT * - pcons->lcdsizex; - - fbptr_t *src = (fbptr_t *)pcons->fbbase + - (pcons->rows-rowsrc-1) * VIDEO_FONT_HEIGHT * - pcons->lcdsizex; - - for (i = 0; i < (VIDEO_FONT_HEIGHT * pcons->lcdsizex); i++) - *dst++ = *src++; -} - -static void lcd_putc_xy270(struct console_t *pcons, ushort x, ushort y, char c) -{ - int fg_color = lcd_getfgcolor(); - int bg_color = lcd_getbgcolor(); - int i, col; - fbptr_t *dst = (fbptr_t *)pcons->fbbase + - pcons->lcdsizey * pcons->lcdsizex - - (x+1) * pcons->lcdsizex + - y; - - uchar msk = 0x80; - uchar *pfont = video_fontdata + c * VIDEO_FONT_HEIGHT; - for (col = 0; col < VIDEO_FONT_WIDTH; ++col) { - for (i = 0; i < VIDEO_FONT_HEIGHT; ++i) - *dst++ = (*(pfont + i) & msk) ? fg_color : bg_color; - msk >>= 1; - dst -= (pcons->lcdsizex + VIDEO_FONT_HEIGHT); - } -} - -static inline void console_setrow270(struct console_t *pcons, u32 row, int clr) -{ - int i, j; - fbptr_t *dst = (fbptr_t *)pcons->fbbase + - row*VIDEO_FONT_HEIGHT; - - for (j = 0; j < pcons->lcdsizey; j++) { - for (i = 0; i < VIDEO_FONT_HEIGHT; i++) - *dst++ = clr; - dst += (pcons->lcdsizex - VIDEO_FONT_HEIGHT); - } -} - -static inline void console_moverow270(struct console_t *pcons, - u32 rowdst, u32 rowsrc) -{ - int i, j; - fbptr_t *dst = (fbptr_t *)pcons->fbbase + - rowdst*VIDEO_FONT_HEIGHT; - - fbptr_t *src = (fbptr_t *)pcons->fbbase + - rowsrc*VIDEO_FONT_HEIGHT; - - for (j = 0; j < pcons->lcdsizey; j++) { - for (i = 0; i < VIDEO_FONT_HEIGHT; i++) - *dst++ = *src++; - src += (pcons->lcdsizex - VIDEO_FONT_HEIGHT); - dst += (pcons->lcdsizex - VIDEO_FONT_HEIGHT); - } -} - -static void console_calc_rowcol_rot(struct console_t *pcons) -{ - if (pcons->lcdrot == 1 || pcons->lcdrot == 3) - console_calc_rowcol(pcons, pcons->lcdsizey, pcons->lcdsizex); - else - console_calc_rowcol(pcons, pcons->lcdsizex, pcons->lcdsizey); -} - -void lcd_init_console_rot(struct console_t *pcons) -{ - if (pcons->lcdrot == 0) { - return; - } else if (pcons->lcdrot == 1) { - pcons->fp_putc_xy = &lcd_putc_xy90; - pcons->fp_console_moverow = &console_moverow90; - pcons->fp_console_setrow = &console_setrow90; - } else if (pcons->lcdrot == 2) { - pcons->fp_putc_xy = &lcd_putc_xy180; - pcons->fp_console_moverow = &console_moverow180; - pcons->fp_console_setrow = &console_setrow180; - } else if (pcons->lcdrot == 3) { - pcons->fp_putc_xy = &lcd_putc_xy270; - pcons->fp_console_moverow = &console_moverow270; - pcons->fp_console_setrow = &console_setrow270; - } else { - printf("%s: invalid framebuffer rotation (%d)!\n", - __func__, pcons->lcdrot); - return; - } - console_calc_rowcol_rot(pcons); -} -- 2.38.0.413.g74048e4d9e-goog