Received: by mail.netbsd.org (Postfix, from userid 605) id E746914A1FD; Sun, 12 Apr 2015 20:00:43 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mail.netbsd.org (Postfix) with ESMTP id 24C7B14A1FC for ; Sun, 12 Apr 2015 20:00:43 +0000 (UTC) X-Virus-Scanned: amavisd-new at NetBSD.org Received: from mail.netbsd.org ([127.0.0.1]) by localhost (mail.NetBSD.org [127.0.0.1]) (amavisd-new, port 10025) with ESMTP id oW-J2vjq1yN9 for ; Sun, 12 Apr 2015 20:00:42 +0000 (UTC) Received: from cvs.netbsd.org (cvs.NetBSD.org [IPv6:2001:4f8:3:7:2e0:81ff:fe30:95bd]) by mail.netbsd.org (Postfix) with ESMTP id 310AD14A1F0 for ; Sun, 12 Apr 2015 20:00:42 +0000 (UTC) Received: by cvs.netbsd.org (Postfix, from userid 500) id 2A84598; Sun, 12 Apr 2015 20:00:42 +0000 (UTC) Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" MIME-Version: 1.0 Date: Sun, 12 Apr 2015 20:00:42 +0000 From: "Manuel Bouyer" Subject: CVS commit: src/sys/arch/arm/omap To: source-changes@NetBSD.org X-Mailer: log_accum Message-Id: <20150412200042.2A84598@cvs.netbsd.org> Sender: source-changes-owner@NetBSD.org List-Id: source-changes.NetBSD.org Precedence: bulk Reply-To: source-changes-d@NetBSD.org Mail-Reply-To: "Manuel Bouyer" Mail-Followup-To: source-changes-d@NetBSD.org Module Name: src Committed By: bouyer Date: Sun Apr 12 20:00:42 UTC 2015 Modified Files: src/sys/arch/arm/omap: tifb.c Log Message: flushing the framebuffer from interrupt has several problems: - As pointed out by Jared McNeill, this doesn't work for cold or ddb. Some specific handing for these cases would be needed, but there's no easy way to know if we're in ddb or not. - periodic bus_dmamap_sync() of the whole framebuffer isn't cheap (about 3% CPU constant on the beaglebone back). instead map the framebuffer BUS_DMA_PREFETCHABLE (undocumented flag, but is MI and properly handled by arm). This allows write-combining, which, in addition with a shadow framebuffer for rasops(9) gives a good performance boost too (difference with the cached+sync from intr isn't noticeable on a boot sequence). For X11, the framebuffer was already mapped BUS_DMA_PREFETCHABLE. A few tests shows that mapping it fully cached doesn't make a noticeable difference either (with or without xorg's shadow framebuffer). To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/omap/tifb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.