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 02FAFC4332F for ; Wed, 4 Jan 2023 12:50:53 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 3944785353; Wed, 4 Jan 2023 13:50:51 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; secure) header.d=gmx.de header.i=@gmx.de header.b="iPWKbFAU"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 9C0AC85477; Wed, 4 Jan 2023 13:50:48 +0100 (CET) Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 81EBC851EE for ; Wed, 4 Jan 2023 13:50:45 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=xypron.glpk@gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1672836636; bh=NIcLtSrGBLXlEu4KrdkOBtj81sTlg1NukJV/luPbQAc=; h=X-UI-Sender-Class:Date:Subject:To:Cc:References:From:In-Reply-To; b=iPWKbFAUe7e7rkrr4gcka8qnf72YvO+GJyHntjTfdGXFgnOO/KurwxHkCsoDwqQXh nS9JY6tw+C4/DHod5MLoMYQQWLtSMwF2W/T435O+OWpA5F6kv9FgO6iRqJN9C9ZcPX bmDQzc9HjE1nkWX3vkYygznfws7IWr2uhDAmpPxS5jY1ex7ioGXEHbflq7zoMcppvM GNepNbeGwXF5EgJkfU0OBN1MeSEiultF7Zt7YgGYzNRjhv8+K0VNtIZJAJ0jkp3o6R i7pVDg2qKj5tzh9sdjDOdMlLZo2wjqP4vrKzyb9QHjL/Qm9+L+pBFUXxjF/j8Gup6j LY9nchni+X0ig== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.123.94] ([88.152.145.137]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MtfNf-1owtql0DyJ-00v6D3; Wed, 04 Jan 2023 13:50:36 +0100 Message-ID: <9a6fa7c3-7ff2-1530-f884-fad0e54da72f@gmx.de> Date: Wed, 4 Jan 2023 13:50:33 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 Subject: Re: [PATCH v4 5/9] efi_loader: GOP: Add damage notification on BLT To: Alexander Graf Cc: Matthias Brugger , Anatolij Gustschin , Simon Glass , Da Xue , Ilias Apalodimas , Jagan Teki , Andre Przywara , Neil Armstrong , Philipp Tomsich , Patrick Delaunay , Patrice Chotard , uboot-stm32@st-md-mailman.stormreply.com, u-boot-amlogic@groups.io, u-boot@lists.denx.de, Kever Yang References: <20230103215004.22646-1-agraf@csgraf.de> <20230103215004.22646-6-agraf@csgraf.de> Content-Language: en-US From: Heinrich Schuchardt In-Reply-To: <20230103215004.22646-6-agraf@csgraf.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:LwjdPE4huN3WwW5PT8w+VL+LC9VgAxMDd1mf9Lzv/1bJQJHHoEp Q1ZFIG07zayPMWoYsugOWc2Ultti2030Lh4G4ENkZkDjpFkPwP9Q+TjFnP5F9OFR7BqqGPU EZjF41l25/HW58LJ7CTdaQYt9h5pIeP4bwImMtI8V7jLrCj1eK2jyqzvMCrKBN00M0McIqn Ql5lUU7IRCImnavVyOdDQ== UI-OutboundReport: notjunk:1;M01:P0:MGZRjeo5Ntg=;8/5r8ZR6aNalrHychuBFEEyaYPa tv+2Hda2EP+QUeKm80X0qFrDblEv68Ort9feHLZIcnn2zYoYR5g5+3EMAflbp3alK8BlSdeN9 YMEx5sL8Z742QeuQEw63320s7j7g4vGh1y+mJe934jFw0Vo9EKAV8C8VzMbi+BizPPi1Q0QCh sOM9XENZV/rlsEUa2Uk+LD2Yd50lyEL2gXxyEL7odUaFUhp8qpBcwqp2iHiXH9o+s2PpTCFSi h28HvdRQhywp1FFFG5v70zhxC+/nGB9IRiuV6K1obNoic0rHtDT7fKaz9zY+fu/PiXI3h6fxR EeciQAfUIa0QBIUcZSeH19qkTAbdzPaRQAX2geEXhgO8p+nsTKpAk4SQvPSCIDVCP4mMt0PwJ sMs8GDzQmLY9dWBpCkr+0obdeW7i5tUhyXWOE7fBBjcLKkPfYwf4F8XYkH7VhzjqwQCltnl/u TXIeR1laLL/kWmzlmLpedL/A7r1lmnjnNRHDN6HARhlQIZfplh5UjJwELlnzwaxDZBXWovRjb YsFbQ3yi5TC5Zg9oHaBkiUnzKFiuHi3XBk7X9WRhgoRnB/Rsx6YKcilmi/+EVDH2rO70oyMYW nR94IdFpZ3txPNIna2bG5vT+jnX9s3gKE7vU/5ZnW9vAizVj80gjEnPI3qlJJJmUFWYnCXpDQ 7+gAXoBh1VgrHgY9YUsIM4tP0fTf6f4Hm9XJkUajdt3Q4nYkYgJZluOrJSypvUrZvKf1EnUq/ NmTKBuLlFOUqKx2WWVHFWHMtIq66Tsxt0kCIYuR/zOMS3rB01CoMZRX+Q9bUnwr9i56PVHf/K 53YifHPfnXeiiD+Jvp9oFJJNCx8MNy7lFm6S4dXN8K9Jvpm2+3l9FpY+7QXq534eVghQKDTVB gpQSDnnKFYQMdetB08jPkBeodhZsy6Xq824huD2loKO93+ShmXFAuodQ6RmsHOgxb6NhY0Lg9 Q/et0ojwNZqxFVqCEAWuqBuPkgs= 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 On 1/3/23 22:50, Alexander Graf wrote: > Now that we have a damage tracking API, let's populate damage done by > UEFI payloads when they BLT data onto the screen. > > Signed-off-by: Alexander Graf > Reported-by: Da Xue > > --- > > v1 -> v2: > > - Remove ifdefs from gop > > v2 -> v3: > > - Adapt to always assume DM is used > > v3 -> v4: > > - Skip damage on EfiBltVideoToBltBuffer > --- > lib/efi_loader/efi_gop.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/lib/efi_loader/efi_gop.c b/lib/efi_loader/efi_gop.c > index d1dc2f22d0..425dcbf6b1 100644 > --- a/lib/efi_loader/efi_gop.c > +++ b/lib/efi_loader/efi_gop.c > @@ -32,6 +32,7 @@ struct efi_gop_obj { > struct efi_gop ops; > struct efi_gop_mode_info info; > struct efi_gop_mode mode; > + struct udevice *vdev; > /* Fields we only have access to during init */ > u32 bpix; > void *fb; > @@ -120,6 +121,7 @@ static __always_inline efi_status_t gop_blt_int(stru= ct efi_gop *this, > u32 *fb32 =3D gopobj->fb; > u16 *fb16 =3D gopobj->fb; > struct efi_gop_pixel *buffer =3D __builtin_assume_aligned(bufferp, 4)= ; > + bool blt_to_video =3D (operation !=3D EFI_BLT_VIDEO_TO_BLT_BUFFER); Using a variable is not really necessary but it could make the code more accessible to readers. Reviewed-by: Heinrich Schuchardt > > if (delta) { > /* Check for 4 byte alignment */ > @@ -243,6 +245,9 @@ static __always_inline efi_status_t gop_blt_int(stru= ct efi_gop *this, > dlineoff +=3D dwidth; > } > > + if (blt_to_video) > + video_damage(gopobj->vdev, dx, dy, width, height); > + > return EFI_SUCCESS; > } > > @@ -547,6 +552,7 @@ efi_status_t efi_gop_register(void) > gopobj->info.pixels_per_scanline =3D col; > gopobj->bpix =3D bpix; > gopobj->fb =3D fb; > + gopobj->vdev =3D vdev; > > return EFI_SUCCESS; > }