Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp1499396pxb; Wed, 2 Feb 2022 06:23:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJxKWFgrG8URXYo7OKHocRe75eamW8wZQvUcZED0bJyw3JkMxzE8Y2J4R28sOvTDYpy6eQkH X-Received: by 2002:a17:90a:fa82:: with SMTP id cu2mr8290448pjb.212.1643811832935; Wed, 02 Feb 2022 06:23:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643811832; cv=none; d=google.com; s=arc-20160816; b=EnZsu39VOijXmpTudmhlnRz5w9n0/UGMofIaZLbNsMWb2m8mBVu2ND7uuKeI1d2CKw +J1m63WDJUbEb/LLs7mg2cyJ/Y5aNDQoSxceZnjNrfwcQ8cIzTjWaiBhmHUp1t21WCYp CzlW+xEVDOm3vJ2gRvv23ACa28e1om9wmalvxlcgxDzrM5fiu4mYVoTYcz1FCUe3HFqG DexaIh8Kd3BmMMHlXYtJf017+gCA5WjDTYelOIFIHTuqwR8iKilfttYIyk6CJaLOGS0D gU7hD5gTMP9/4zJ8JogDCnlxeMchDJWePRDmej8z+ql25XUqE9qKy4LFx/b1e8FGL+vL Pekw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:references :cc:to:from:content-language:subject:user-agent:mime-version:date :message-id:dkim-signature; bh=WHszLxBThrD3J7UA867brlSU81PpV68bvFvJAaxQkqE=; b=kJ2q3WHsJou7P5Kh3ZMaWrvIcmrRqn0/ihdb3PV9kGx/cPLRPkvKt1MEAPodzXfJUE 0QwNuXnALW5cf/iu25tztoiw+5kakU0uVLeN0gH1W7H7mE38DhO2mVay4rWLHacV0QC7 y/sFeSIR7OMbyyXsQVyQUBCBGProBNSe+MQq/UG9ELp4fHD65wlcUT4TPM9rePppx8vY V8UfYwTZh8qL9jJzG2Wuzf3YJmEC9tniFL0zbFZ0YxfTS1iKvygiP57xxZfrKCh2HPmD pGVEA9fBimYATGPpLaFV0qJRC2K1Y6lHpttdMBXkYduW11awREpgtGyw+RwphRlq5HHZ IQuQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmx.net header.s=badeba3b8450 header.b=Z0WOLlz8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmx.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i186si9411579pge.146.2022.02.02.06.23.40; Wed, 02 Feb 2022 06:23:52 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmx.net header.s=badeba3b8450 header.b=Z0WOLlz8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmx.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236513AbiBAKSO (ORCPT + 99 others); Tue, 1 Feb 2022 05:18:14 -0500 Received: from mout.gmx.net ([212.227.17.22]:38569 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232572AbiBAKSO (ORCPT ); Tue, 1 Feb 2022 05:18:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1643710667; bh=wmREK8PFq/vdn0l0vClE+30BQLaE2yxdPYhw57Lv93s=; h=X-UI-Sender-Class:Date:Subject:From:To:Cc:References:In-Reply-To; b=Z0WOLlz8BCqYtm9aPUCUPXil71JwcDLuhZNZHd7FHSTjquWIqTyuK7Nxr9bXKMr5M n7y7YVN+Gut/WezgN3lhFBOckPb49UQegA/8OQfYWC8aD15Eo/caFD+yl3rjwiqe4h oY1qTfesL9tHu5G/xB+F+phh6OqPL2vFOHQ+mwnU= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.20.60] ([92.116.146.124]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MaJ81-1mkzgl3Fkj-00WIVJ; Tue, 01 Feb 2022 11:17:46 +0100 Message-ID: <98bf57d3-de0f-7f0e-21ce-360f661f4e25@gmx.de> Date: Tue, 1 Feb 2022 11:17:44 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.0 Subject: Re: [PATCH 03/21] fbcon: Restore fbcon scrolling acceleration Content-Language: en-US From: Helge Deller To: Daniel Vetter , DRI Development Cc: Intel Graphics Development , linux-fbdev@vger.kernel.org, LKML , stable@vger.kernel.org, Claudio Suarez , Dave Airlie , Jani Nikula , Linus Torvalds , Pavel Machek , Sam Ravnborg , Greg Kroah-Hartman , Javier Martinez Canillas , Tomi Valkeinen , Geert Uytterhoeven , Thomas Zimmermann , Daniel Vetter , Sven Schnelle , Gerd Hoffmann References: <20220131210552.482606-1-daniel.vetter@ffwll.ch> <20220131210552.482606-4-daniel.vetter@ffwll.ch> <9c22b709-cbcf-6a29-a45e-5a57ba0b9c14@gmx.de> In-Reply-To: <9c22b709-cbcf-6a29-a45e-5a57ba0b9c14@gmx.de> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:BLEyQfaZyNddFkNU0iveVjwX+bqyCCzVzYZsG8dus0NPeKpzvO4 XUbCXA6kU8gOWMxNdCqVD8Dl6yj+eh5kaJ1hB66nR3wiTU1PBmihCXPgud0F+nPZUgKrgD1 iAgcqrAu2Uqo1Ldj8aR6HnTUupZzfhVPTpdd5dRPQo7LzSY/wh2w2odvcuiXKjD4SnOVL8j SiVVTKVwz9mxlCvDBA+eA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:nGL3C+F5Hog=:p8wqV+ZdqkrUkg+IP+YS7s +DxdKrHEQqv9JTrY9VpF/UKWI+QQPfrPOI/idsnfOAv7u8gg0z78MZk3wVy92ksSPzZuvje7p r+WusT7JH7K+b1BMwsmOi2Mfr5JowHH72hYqDg6Mf8lSIdKzIkVfClu8jsC0LB4fpBMN07Bg4 LKbqU1zssh6LApc8HtmSbnYkGtPvpVwv24uAUCvrG5gOTXQAqniM3aVG+1DoVHy7a4iP6ansv ytcJ1EPNAROjVjNM+M5fI8jYGVhM/41/c8hnqdOaxIHUCRb5eg7RSeBNbBJ1IXYmY0p2AjMXf RcLfcBhmeznw57AMTfqxXdnbdXS++R2Ctx8rIQtLkTXS3+8FXDrRr3s7VhzwgIKi13wUeNqgH YvlfLgKEFhjYSpL4SwhaTY7MWoQAf/HmLkQyYNRUrY5Cn8nMujGYsgIJybx9DLZhHWNqxjsOn BCccG235GotdHBHRHBH/F/+mW0obBJd3WN26OjJwtmxJ6DgUEMzJGbXxpP6T2tuxwVBRxWxIt Nxznf04GB5E5Pjbtl4pOx2ViFpqDFXZ/AGNtsIJtEla25rXJfPK/8mBL8tj/FhmXP82WJEBvp 5BfmMfciVmfu/hXPI7P2NF0mCIC74BG3w6rhJtKKy86OLm21ubJuFyeg9O/chPH4yziQGxMAv v1fwe2MfrvZ8dxOwaVsqmyG8GGppAo4GjXvT27IdyaoHkIqN7f4+xjHiPSCp3VrWQAvbKlVLj A7uxf0/0siWyXkueRPt+0cMhN8O2fXYM2jLaNwa5XMESWT0vSGixO1OoGpz7CQAdR3lptlxiZ OtktLj9Xmn8Kbt6vt26WIkFa/fGP4D/2EXhIaO7tzEgl0cEHCe03OJ75dLY6n0blPrVaq33gS KEDiHJfPJF34hQIBGXUEm+Sx+92pMpUyrHW//MLImEdh12W86FEeRQmY1HQ+lKBDIr+LJ+nUq d4DyemULDb2R4n07yJ572JdzPjfKgKL+MA3jlhe77R7sDRufmbbKU/PPvVLM+AvcWRKBsl3/m 2nP0gQx0nZZ9jvbXEjwYmg68DpDN/1THUAIKOqEakmu8xis8rx1SEjHjtvJQZjbxpvUb+Eoh2 36I9IRwtzdcy74= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2/1/22 11:16, Helge Deller wrote: > On 1/31/22 22:05, Daniel Vetter wrote: >> This functionally undoes 39aead8373b3 ("fbcon: Disable accelerated >> scrolling"), but behind the FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION >> option. > > you have two trivial copy-n-paste errors in this patch which still preve= nt the > console acceleration. > >> diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/cor= e/fbcon.c >> index 2ff90061c7f3..39dc18a5de86 100644 >> --- a/drivers/video/fbdev/core/fbcon.c >> +++ b/drivers/video/fbdev/core/fbcon.c >> @@ -1125,13 +1125,15 @@ static void fbcon_init(struct vc_data *vc, int = init) >> >> ops->graphics =3D 0; >> >> - /* >> - * No more hw acceleration for fbcon. >> - * >> - * FIXME: Garbage collect all the now dead code after sufficient time >> - * has passed. >> - */ >> +#ifdef CONFIG_FRAMEBUFFER_CONSOLE_ROTATION > > should be: > #ifdef CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION > > >> + if ((info->flags & FBINFO_HWACCEL_COPYAREA) && >> + !(info->flags & FBINFO_HWACCEL_DISABLED)) >> + p->scrollmode =3D SCROLL_MOVE; >> + else /* default to something safe */ >> + p->scrollmode =3D SCROLL_REDRAW; >> +#else >> p->scrollmode =3D SCROLL_REDRAW; >> +#endif >> >> /* >> * ++guenther: console.c:vc_allocate() relies on initializing >> @@ -1971,15 +1973,49 @@ static void updatescrollmode(struct fbcon_displ= ay *p, >> { >> struct fbcon_ops *ops =3D info->fbcon_par; >> int fh =3D vc->vc_font.height; >> + int cap =3D info->flags; >> + u16 t =3D 0; >> + int ypan =3D FBCON_SWAP(ops->rotate, info->fix.ypanstep, >> + info->fix.xpanstep); >> + int ywrap =3D FBCON_SWAP(ops->rotate, info->fix.ywrapstep, t); >> int yres =3D FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); >> int vyres =3D FBCON_SWAP(ops->rotate, info->var.yres_virtual, >> info->var.xres_virtual); >> + int good_pan =3D (cap & FBINFO_HWACCEL_YPAN) && >> + divides(ypan, vc->vc_font.height) && vyres > yres; >> + int good_wrap =3D (cap & FBINFO_HWACCEL_YWRAP) && >> + divides(ywrap, vc->vc_font.height) && >> + divides(vc->vc_font.height, vyres) && >> + divides(vc->vc_font.height, yres); >> + int reading_fast =3D cap & FBINFO_READS_FAST; >> + int fast_copyarea =3D (cap & FBINFO_HWACCEL_COPYAREA) && >> + !(cap & FBINFO_HWACCEL_DISABLED); >> + int fast_imageblit =3D (cap & FBINFO_HWACCEL_IMAGEBLIT) && >> + !(cap & FBINFO_HWACCEL_DISABLED); >> >> p->vrows =3D vyres/fh; >> if (yres > (fh * (vc->vc_rows + 1))) >> p->vrows -=3D (yres - (fh * vc->vc_rows)) / fh; >> if ((yres % fh) && (vyres % fh < yres % fh)) >> p->vrows--; >> + >> + if (good_wrap || good_pan) { >> + if (reading_fast || fast_copyarea) >> + p->scrollmode =3D good_wrap ? >> + SCROLL_WRAP_MOVE : SCROLL_PAN_MOVE; >> + else >> + p->scrollmode =3D good_wrap ? SCROLL_REDRAW : >> + SCROLL_PAN_REDRAW; >> + } else { >> + if (reading_fast || (fast_copyarea && !fast_imageblit)) >> + p->scrollmode =3D SCROLL_MOVE; >> + else >> + p->scrollmode =3D SCROLL_REDRAW; >> + } >> + >> +#ifndef CONFIG_FRAMEBUFFER_CONSOLE_ROTATION > > same here... it needs to be: > #ifdef CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION actually: #ifndef CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION > > >> + p->scrollmode =3D SCROLL_REDRAW; >> +#endif >> } >> >> #define PITCH(w) (((w) + 7) >> 3) >> > > still reviewing the other patches... > > Helge >