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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id EECA2C25B76 for ; Tue, 11 Jun 2024 09:41:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-ID:In-Reply-To: References:Message-ID:Date:Subject:CC:To:From:Reply-To:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=giWBlx7MCMB+eKjHkgTRVJ0JDhGgGVI+AKP4qL1nOtE=; b=TqyXQxBlZbRQIS aIuC8KwVsbDuC6C2GkhbclgIhpg6OE18os60j5dlQ5ZiX6Wsddc2BtClBzBO4zKOztTOffZ21ZG0Q J4BFrRYl59CCySum5foz4Q04FXDFaBgMCkOsY0FyNn+yugr3q/6uz+rVvsAqBZfZqplKZoArf2yo1 L7A3cpcEkjyxp3B0BDk82Mw/TRg0OmznqiRGXiV0yr6KX+3Qlg7BU+TsnueDwkug4CrOnAaRRH3Fl hhK3fVE7w+ItIf1OJdvCImT5C55SDdEcqnu6OGVknCtvtgSBe3egkZ0RiXevi6SlcPIkx0u3VYsPq hO41sZhXnEdCHoAyZ+vA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sGxzd-00000008KBB-0NzK; Tue, 11 Jun 2024 09:40:41 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sGxzY-00000008KAT-3zxD; Tue, 11 Jun 2024 09:40:38 +0000 X-UUID: a677988227d611efaf04eb0598667787-20240611 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=MIME-Version:Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References:Message-ID:Date:Subject:CC:To:From; bh=G/zZY20CCigJFpcmil2zua4vkR+IKrafK5fD/ISVV08=; b=rWdV2bj/yGDw4U4kulbbEQWHaGmOAzHDsu07QWPAz9HCnTFThvqHINhDG9BQEQ0sjJ2xCG5pY29zRtXhE05WJo8m3bwfrEATsaFljXEXRT1ONZDTOxioXC7OxEesXfDBzrUw0Z0mExSvwLGpsueeFaHgfbPAOdmcwEdJfXn3ORU=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.39,REQID:caf0cdaa-2617-4fd9-9a7a-0c5aa9056ea1,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:393d96e,CLOUDID:6e577388-8d4f-477b-89d2-1e3bdbef96d1,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:0,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1, SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0,ARC:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-UUID: a677988227d611efaf04eb0598667787-20240611 Received: from mtkmbs11n1.mediatek.inc [(172.21.101.185)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 2118274950; Tue, 11 Jun 2024 02:40:34 -0700 Received: from mtkmbs10n2.mediatek.inc (172.21.101.183) by mtkmbs13n1.mediatek.inc (172.21.101.193) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Tue, 11 Jun 2024 17:40:31 +0800 Received: from APC01-SG2-obe.outbound.protection.outlook.com (172.21.101.237) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server id 15.2.1118.26 via Frontend Transport; Tue, 11 Jun 2024 17:40:31 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kmzH32kWc442VvVtpwiiM4egRlw5v6Yqe5fAPJVi86hAJW5Qfh0hNo3TgzzFV/NOYh0hDlztGjolvcfnnyxFMVx46uQkEF9Xk9T4ThlXMtVISxLHCaBWWIOzk1fv3UddlkYRis73RJabqwjsDDbRKpyN22fwZwqXf43PHtQirSaITL/dqzj1xLhfCqP4PfugzBWipTCKhj70ITgqBV48C+HmHdNMKDJGgG7hTiaGFyY5cErDCUrtldM28VyLf+FqYZEytrV4vUgG5UfYhpkIdOlGDj/G315VWv89bUBlk04lgc0w5U9eifZwA6X88ouJ7ohilElN46/FoEhI1vMFdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=G/zZY20CCigJFpcmil2zua4vkR+IKrafK5fD/ISVV08=; b=DjNTS4XAnymliNzz207Ea0R3Z645Fbs4Vschj9xt7kVKWxgSFZJAkD2SHgIm2Qt/+zrulJOsOyd0w/jg/6LD2As8HFKeGQK6K+qv7zum36/iKU5Ilc3wBrYRDp8Iu4CPexSf9n9fzZ3onzRm7JpanRoZTW492ukWHTL5rcow4ldvb7TuKUDGgU1WksZwi7W5T2NDbixWyUQoG4Cs1pdxLuWCJrCZfv6nBV0JzW1T/ctPHPuY7yVsm19zZs2j2FDUm19Sy+pvPnddiS9OlDVIcAP1bkKXxKjoW4pg8NpLergJUZep8yjjMnX2iPSXYEAD91EDd0QjssRYzLA0FecTSw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mediatek.com; dmarc=pass action=none header.from=mediatek.com; dkim=pass header.d=mediatek.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mediateko365.onmicrosoft.com; s=selector2-mediateko365-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=G/zZY20CCigJFpcmil2zua4vkR+IKrafK5fD/ISVV08=; b=Hb7nRvSSHADGz2OdszQGUalP0eV/DuaejB6C3+Mu+Ah1ImaUM5FOx1OQpRJ61H0uVYZQ83LqA7i3seTcTC2+XvObM0TsDE45qMdvSOEnq6CovCd90+sOV52y6UMGhfK181nQH/E1K009TIub8upDARximswedziIA/fQ46fz6y0= Received: from TYZPR03MB6624.apcprd03.prod.outlook.com (2603:1096:400:1f4::13) by TYZPR03MB6471.apcprd03.prod.outlook.com (2603:1096:400:1c9::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.17; Tue, 11 Jun 2024 09:39:24 +0000 Received: from TYZPR03MB6624.apcprd03.prod.outlook.com ([fe80::9ce6:1e85:c4a7:2a54]) by TYZPR03MB6624.apcprd03.prod.outlook.com ([fe80::9ce6:1e85:c4a7:2a54%6]) with mapi id 15.20.7677.014; Tue, 11 Jun 2024 09:39:24 +0000 From: =?utf-8?B?Q0sgSHUgKOiDoeS/iuWFiSk=?= To: =?utf-8?B?U2hhd24gU3VuZyAo5a6L5a2d6KyZKQ==?= , "chunkuang.hu@kernel.org" CC: "linux-mediatek@lists.infradead.org" , "linux-kernel@vger.kernel.org" , =?utf-8?B?QmliYnkgSHNpZWggKOisnea/n+mBoCk=?= , "jason-ch.chen@mediatek.corp-partner.google.com" , =?utf-8?B?TmFuY3kgTGluICjmnpfmrKPonqIp?= , "daniel@ffwll.ch" , "p.zabel@pengutronix.de" , "dri-devel@lists.freedesktop.org" , "airlied@gmail.com" , "sean@poorly.run" , "matthias.bgg@gmail.com" , "fshao@chromium.org" , "linux-arm-kernel@lists.infradead.org" , "angelogioacchino.delregno@collabora.com" Subject: Re: [PATCH v8 11/16] drm/mediatek: Support "Pre-multiplied" blending in OVL Thread-Topic: [PATCH v8 11/16] drm/mediatek: Support "Pre-multiplied" blending in OVL Thread-Index: AQHat/PF4atSFGFZx0GsCBYRfQE5MLHCVpSA Date: Tue, 11 Jun 2024 09:39:24 +0000 Message-ID: References: <20240606092635.27981-1-shawn.sung@mediatek.com> <20240606092635.27981-12-shawn.sung@mediatek.com> In-Reply-To: <20240606092635.27981-12-shawn.sung@mediatek.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mediatek.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYZPR03MB6624:EE_|TYZPR03MB6471:EE_ x-ms-office365-filtering-correlation-id: 8f6954d5-23f2-4c83-15b0-08dc89fa6156 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230031|7416005|376005|1800799015|366007|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?MUxBenJuRzJmWUdBRFhpM096QXVwQVBzOFRadEpNaFB2ZEFVWlN4MEhkNThs?= =?utf-8?B?MkxOUkJ1TGkzYkRxYzZrWlpRcmpDM2Q1blRjOGhNU3BWTjhHZGdmQW1DbHZa?= =?utf-8?B?QWJKVWFqcUhPTU5McjRmRXJYby9YVzRtcDZ1VGJpNlR1K0t1SDFldER3aElD?= =?utf-8?B?YlVHNGFJWWhIdVNLWDVvUVhXU25iNEprN0J5UVcxbzV1WDJnYlB1eXo5Y1NO?= =?utf-8?B?alA5L01SeXB5ZUZpS0orWWVlWUZpU09JQ0RPVHZ0eFRmY0xlNjZzdC9kVHRZ?= =?utf-8?B?ai9yR3Z6aXUzWEhiRVJIbENLaXU0REswV3h2a3VIQkxrZU1ja0xEcW9EQ2hD?= =?utf-8?B?ZVNvemNPNzhTV1BHT1RXVUhvd1NmRUVTNlN6elBxRU9GNDZINkdmMWdhK3lX?= =?utf-8?B?eVRXK3k3ZmJ3TVR3dENocEkzRWxHQS8zT3IyeFFzS1JZUHFKNSs5dkQycTJH?= =?utf-8?B?enU0cjliTVZqZnFad2Nwa2kzTmV4REZHNHY2YlFBOFBMdE9zbnVuc3BnRkdD?= =?utf-8?B?RFZidnNsRzVKaDJsTDFYQklZR3d3SnRZa01RTDhUblgzeVYvdzRRV2tpNkM5?= =?utf-8?B?R2xLeXQxZk1ITVdOSlVVaTE3YzQ5clh1YlRNVDBpNG8xbEhNVzUyYjRIL0Fi?= =?utf-8?B?dlhYbzh6WG8vV093YzV5cUJyUjZTRm9BaDY1eWNWWVpDek1sa21zTGIrb21n?= =?utf-8?B?VGNSZExYYmF5VitDMDZqTTZHd3VOVmw2OVJSVzU1VElzSXZjcEo0YmZ4Sm1z?= =?utf-8?B?ck1Yc1VJY1FYY0t1RkNwYnV0QklCYnd5SlN3dWJ6amhPUW53ZjRDSlgwMzhN?= =?utf-8?B?R2t1bkNIaXROcWtjMTZZUkRQQndqYjNNZm9NN2szN0VsTm1WM2JITEY3WDJC?= =?utf-8?B?a08xcmU1UUVwVlk0dzQxSzZVUFptejhGYThUalYrcEQrV3hmQzdLS0tIaUNt?= =?utf-8?B?NHcybWc0RXJWWm5kWXBrN2lXNlJmdWFtbmozOWVUZW9RelhZQUpwdjhTbkhk?= =?utf-8?B?ZEo4YStOdy9kOG5UT3RiSnJ4MDcrUzdwSTVZMWNxTVJramMxSHd5YkE1eDgw?= =?utf-8?B?anhxZTFDM1NyRWpnQ3loY0dCQlJaVWxUZ01WdEMwV2s2UUhEcFRpeFNXMGFJ?= =?utf-8?B?ZzhUOE1UUExCQjdTa3N1a0hnZCtINkRBL1JmQjROdVhmRXJOTU8vWEdHOG1D?= =?utf-8?B?OTQ2V3M3Q1VEQVVXbndldHdkN1VpK0ovb2RBZGlvdDdoYUVJemxzVUpUN0d6?= =?utf-8?B?d0MxZWhRY3duYUIxYklJaXR1dE9NQ3IrZDErWUl5dnV6elRSbTFrVFg1SXdX?= =?utf-8?B?RDR2TUZ5YS96VGQ2SzM0cjFBbzRuYWJPb2xhTmJQUkVLRzk3S1FFNzh4SnJq?= =?utf-8?B?TTgwbzhmOVFSK2V1OGloS0lzVm4xd0RBOVlZcW0zWWZBWEVGaytTUFYrNDdY?= =?utf-8?B?VDRTdHZmdExReGdIbERVcG5ydFk4U2tlWTNTY2RxUFVveHlXdXZ4UkZEZjdK?= =?utf-8?B?VFFDWjNSYTJYMVBUMXhjcThSU0hXTUJrOVNQcjk2QlZHbzN4NHNPS2lGQytK?= =?utf-8?B?ZHdwZWpQN24zRHp4ZTZqNXJ5TUtoTk5LSzZUWUJZRG92Rm5STkFodzU2RU81?= =?utf-8?B?d3FjYXhHalloQkxFRlJoclVYSi9HaXVwZks4enpGQVpRVXdPSXlPRTFaTW44?= =?utf-8?B?WlNLMzNhZGxpd2hwaUFZWUJZVC9mWDdLdWVtRFdTTGU0K2E0Qm5GOW9OWkFN?= =?utf-8?B?Zlo4eWQzdW9NSlN4TVVkdUtqU2sxR1Nkb00ya1QxdWxCYmhhT3I0MWlGZm1Q?= =?utf-8?Q?qlkOnCpxoBo9Uwr3uDxNJuHVwy0kTULc85GCQ=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR03MB6624.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(7416005)(376005)(1800799015)(366007)(38070700009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Z0FjNTVjQUhtSkNEMEV2Vitsei9UL3lxWTh1QWx4ZklRclZ4a1ZaN3ExZ1hm?= =?utf-8?B?Ynh6NkgrT0tMN1ZDOTFiWjYyemNvanQwSm9iSVQ3ZGFhKzZtV3R6L0FnV2Nx?= =?utf-8?B?ZktQYzlyb3NPdEljWmNrVU1uT0syT25GZkU0WFJrM2FQMEVFSGVQSWJoNzVH?= =?utf-8?B?anpscXBLdzVmSTltM3psektXWFN0cWJoeG9pb0VXdWlFOGNadzJacjUxdHQ5?= =?utf-8?B?RWhlL3BLakdUN2hEVFZJZm1zdnNXQ1JvenBNa2JNUXI3RlpFSFRpTVpzUERu?= =?utf-8?B?SFB6TXNRSTBxbnNGTHg0NHp2U0JjKzRHa0wySzdyR2t1NXFQa1VOOWd4RXZz?= =?utf-8?B?VWxTR3NQd3JldjNCSmxuaDFYNG5UcXRuT3Q2bW1EMUVZUXB2dUw1M2RUdnpy?= =?utf-8?B?N3dGRVNrcEVKSTdQNkdoL1ZidXZHSzY2dFB3di9PeTBrd1JkeUFFeEUxWUFU?= =?utf-8?B?RG1EbEhWUTJpY1VPOFh3Tm1Od2RaeTMvNzF5cUI1UkovRWd0cUNsaWR1Y2Zx?= =?utf-8?B?M2MyclVXNlh6eDVWNzM4blNEeGR4OHh4TWpiRXFnR0FDK0FaMCswSUZaSk0r?= =?utf-8?B?aEhWSkFjcFdMc3pMUUtCNmh3VjMyeEwwKzhvb2tqZHYwV0ExLzZaT3pIZTUz?= =?utf-8?B?L0pZUzU1NjN6elpWM1JhTi9oRnEwcjZmbzE5dkwrWGluSXRnd09aZ0hIbVZS?= =?utf-8?B?RVZSb2tTR1lXcWJpRDlaR1h5ZEZGYkNlY0dMdEVqcm1Md2d6Z2hQV2FKYUM0?= =?utf-8?B?ODVJWGVuSFBZSjA2Y0RoaXhpdllaaHE5RDhBUnJIT2dFRzNxMTk1Y2hOSk4x?= =?utf-8?B?NzRmR0tIeStPNncyY3Q5Y2pGOGR6NlFZNWF1UGNSNkZaSFI3Vm0xd2VBYkFS?= =?utf-8?B?WXRISEh6VnJDVjV2bTgrd2t2YjVzNllBWTlSa3M1ckU3TlM4VFNMNFdsM1hv?= =?utf-8?B?cC9BM1hxWDBaZU1na001MSt1UmJyWHBMSlN6NSt0QjVodXVYdUNkdHVsNDl6?= =?utf-8?B?UUNvTjZacktlajAzN3dhMWorWXBnblJ3UW1TU20xOXhBL3A2Q0xvWnJ1SXdn?= =?utf-8?B?SzBja2ZvdHg0NmxqdHVHRkhaQ0lVMy8xcHVHQmc2a0xLL2ZzODU3TWZ2d1hy?= =?utf-8?B?ak5XeUdHVXhNRjZrbnpvN09DOWc1MzN2NFlYSk1TWmwyMGwyYUdyMHdZODVk?= =?utf-8?B?Q2lJM3Q2QkFBM0VYbzM3RnlMY1luL29ad1J5ZGdNRE5pbEtjQTcvUDhLZjlC?= =?utf-8?B?WXBMeDdKREc4TnFTcVFJUGlYUW5jQzJFWmFvWU5ReW05Zm1QL3RJaU9xR213?= =?utf-8?B?VklWMVRpc2d0eExMaHBjVE9WbHBDQVhiZXpkU2lEWmRiR3d1QjlUQWpuS0lq?= =?utf-8?B?TjdoUnJXZzlVd1hmcWFsNmJHNXBYWkw4WmpLclhEQ2dtaS84MEN3VC9EcnZv?= =?utf-8?B?YmpwdzRFZ0ZxYi8xY2t6WXg3V3ZidTY5bmw0ZVNSVlgrUTRDMUljbm9DMFhT?= =?utf-8?B?T3R3M053eDZudkFiUkJkM0UwalhhNWQ1VmRROCtoUmtMQUdQT1h2OURpUjAv?= =?utf-8?B?d1hOdEtwcjBkOEd0RTgySGlWTGlNQWRISkhlV1l6Mk1pbUtuSXFGbG5EeFJS?= =?utf-8?B?cGg2VVE5bXhvYklzNHVuSzROWjMxR2NhRHkvR3ZBMWo3WHR3bkxSSGpMVWJC?= =?utf-8?B?UEVNWG1SWUJqQzR4RWtrczFiYW9qWm5zc1c2Q2c4ajFFVU5LMjhUUFQrTnU0?= =?utf-8?B?QjBsTXNFR1lWbWNJNjVFcmZEQjY1cTJtNU1KWWNRcHJXekRNSm5uVlhHRVVy?= =?utf-8?B?K2lTZS8zM1NiZEU5bXZhVnFqcktOM2R0OEtyU1ZZbEJRdVJrTnUyZ0pMNGJS?= =?utf-8?B?NU1pSERhL0dMaE1TNWl4a2VmdithekFzZ21wUVBxVXNJejlTWlVSZjBDamk5?= =?utf-8?B?ZFFna29iV2FYSjhKbVVKUmd1cWFhZjNlci9DYS9oWXI1TTd3U0tLallOOUhY?= =?utf-8?B?YURlYVFYR0xzMStHMUNrWWJTaXMxR1lyN2ZtczhFL0tzc3VsTEM1RVFMWHV0?= =?utf-8?B?TERuN1hFNlNIVzNnRGFTTmFHUytNdXFsQ3U3ZjduOENrV1ZSZmRHUDFMMHRE?= =?utf-8?Q?1vwQocPK9DnT+FUqLYgx+gf5h?= Content-ID: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYZPR03MB6624.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8f6954d5-23f2-4c83-15b0-08dc89fa6156 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jun 2024 09:39:24.7075 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a7687ede-7a6b-4ef6-bace-642f677fbe31 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: tYAHcc1AVTcK18XSw5JfrrSxRQ0m4ck6TS2odXXmC4nh5h9Tks1gdgoJP1aTDdTHZwdJYeuyz/fj1avzGHE3Aw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR03MB6471 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240611_024037_033329_A2B7D79F X-CRM114-Status: GOOD ( 16.55 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi, Shawn: On Thu, 2024-06-06 at 17:26 +0800, Shawn Sung wrote: > From: Hsiao Chien Sung > > Support "Pre-multiplied" alpha blending mode on in OVL. > Before this patch, only the "coverage" mode is supported. > > Signed-off-by: Hsiao Chien Sung > --- > drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 40 +++++++++++++++++++++---- > 1 file changed, 34 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c > index 54a6f11aa867..de1633988921 100644 > --- a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c > +++ b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c > @@ -52,13 +52,16 @@ > #define GMC_THRESHOLD_HIGH ((1 << GMC_THRESHOLD_BITS) / 4) > #define GMC_THRESHOLD_LOW ((1 << GMC_THRESHOLD_BITS) / 8) > > +#define OVL_CON_CLRFMT_MAN BIT(23) > #define OVL_CON_BYTE_SWAP BIT(24) > -#define OVL_CON_MTX_YUV_TO_RGB (6 << 16) > +#define OVL_CON_RGB_SWAP BIT(25) > #define OVL_CON_CLRFMT_RGB (1 << 12) > #define OVL_CON_CLRFMT_RGBA8888 (2 << 12) > #define OVL_CON_CLRFMT_ARGB8888 (3 << 12) > #define OVL_CON_CLRFMT_UYVY (4 << 12) > #define OVL_CON_CLRFMT_YUYV (5 << 12) > +#define OVL_CON_MTX_YUV_TO_RGB (6 << 16) > +#define OVL_CON_CLRFMT_PARGB8888 (OVL_CON_CLRFMT_ARGB8888 | OVL_CON_CLRFMT_MAN) > #define OVL_CON_CLRFMT_RGB565(ovl) ((ovl)->data->fmt_rgb565_is_0 ? \ > 0 : OVL_CON_CLRFMT_RGB) > #define OVL_CON_CLRFMT_RGB888(ovl) ((ovl)->data->fmt_rgb565_is_0 ? \ > @@ -72,6 +75,8 @@ > #define OVL_CON_VIRT_FLIP BIT(9) > #define OVL_CON_HORZ_FLIP BIT(10) > > +#define OVL_COLOR_ALPHA GENMASK(31, 24) > + > static inline bool is_10bit_rgb(u32 fmt) > { > switch (fmt) { > @@ -296,7 +301,13 @@ void mtk_ovl_config(struct device *dev, unsigned int w, > if (w != 0 && h != 0) > mtk_ddp_write_relaxed(cmdq_pkt, h << 16 | w, &ovl->cmdq_reg, ovl->regs, > DISP_REG_OVL_ROI_SIZE); > - mtk_ddp_write_relaxed(cmdq_pkt, 0x0, &ovl->cmdq_reg, ovl->regs, DISP_REG_OVL_ROI_BGCLR); > + > + /* > + * The background color must be opaque black (ARGB), > + * otherwise the alpha blending will have no effect > + */ > + mtk_ddp_write_relaxed(cmdq_pkt, OVL_COLOR_ALPHA, &ovl->cmdq_reg, > + ovl->regs, DISP_REG_OVL_ROI_BGCLR); The coverage mode formula is: dst.RGB = src.RGB * src.A + dst.RGB * (1 - src.A) The pre-multiplied mode formula is: dst.RGB = src.RGB + dst.RGB * (1 - src.A) Both formula has no destination alpha (I think background color is last destination), why coverage mode work fine but pre-multiplied mode has something wrong? > > mtk_ddp_write(cmdq_pkt, 0x1, &ovl->cmdq_reg, ovl->regs, DISP_REG_OVL_RST); > mtk_ddp_write(cmdq_pkt, 0x0, &ovl->cmdq_reg, ovl->regs, DISP_REG_OVL_RST); > @@ -372,7 +383,8 @@ void mtk_ovl_layer_off(struct device *dev, unsigned int idx, > DISP_REG_OVL_RDMA_CTRL(idx)); > } > > -static unsigned int ovl_fmt_convert(struct mtk_disp_ovl *ovl, unsigned int fmt) > +static unsigned int ovl_fmt_convert(struct mtk_disp_ovl *ovl, unsigned int fmt, > + unsigned int blend_mode) > { > /* The return value in switch "MEM_MODE_INPUT_FORMAT_XXX" > * is defined in mediatek HW data sheet. > @@ -391,21 +403,35 @@ static unsigned int ovl_fmt_convert(struct mtk_disp_ovl *ovl, unsigned int fmt) > return OVL_CON_CLRFMT_RGB888(ovl) | OVL_CON_BYTE_SWAP; > case DRM_FORMAT_RGBX8888: > case DRM_FORMAT_RGBA8888: > + return blend_mode == DRM_MODE_BLEND_COVERAGE ? > + OVL_CON_CLRFMT_ARGB8888 : > + OVL_CON_CLRFMT_PARGB8888; > case DRM_FORMAT_RGBX1010102: > case DRM_FORMAT_RGBA1010102: > return OVL_CON_CLRFMT_ARGB8888; > case DRM_FORMAT_BGRX8888: > case DRM_FORMAT_BGRA8888: > + return OVL_CON_BYTE_SWAP | > + (blend_mode == DRM_MODE_BLEND_COVERAGE ? > + OVL_CON_CLRFMT_ARGB8888 : > + OVL_CON_CLRFMT_PARGB8888); > case DRM_FORMAT_BGRX1010102: > case DRM_FORMAT_BGRA1010102: > return OVL_CON_CLRFMT_ARGB8888 | OVL_CON_BYTE_SWAP; > case DRM_FORMAT_XRGB8888: > case DRM_FORMAT_ARGB8888: > + return blend_mode == DRM_MODE_BLEND_COVERAGE ? > + OVL_CON_CLRFMT_RGBA8888 : > + OVL_CON_CLRFMT_PARGB8888; In pre-multiplied mode, DRM_FORMAT_RGBA8888 and DRM_FORMAT_ARGB8888 would return the same value OVL_CON_CLRFMT_PARGB8888, so how does hardware distinguish these two format? > case DRM_FORMAT_XRGB2101010: > case DRM_FORMAT_ARGB2101010: > return OVL_CON_CLRFMT_RGBA8888; > case DRM_FORMAT_XBGR8888: > case DRM_FORMAT_ABGR8888: > + return OVL_CON_RGB_SWAP | > + (blend_mode == DRM_MODE_BLEND_COVERAGE ? > + OVL_CON_CLRFMT_RGBA8888 : > + OVL_CON_CLRFMT_PARGB8888); Originally, DRM_MODE_BLEND_COVERAGE and DRM_FORMAT_ABGR8888 would return OVL_CON_CLRFMT_RGBA8888 | OVL_CON_BYTE_SWAP but this patch return OVL_CON_CLRFMT_RGBA8888 | OVL_CON_RGB_SWAP This is not related to pre-multiplied, so separate this to another patch. > case DRM_FORMAT_XBGR2101010: > case DRM_FORMAT_ABGR2101010: > return OVL_CON_CLRFMT_RGBA8888 | OVL_CON_BYTE_SWAP; > @@ -448,9 +474,11 @@ void mtk_ovl_layer_config(struct device *dev, unsigned int idx, > return; > } > > - con = ovl_fmt_convert(ovl, fmt); > - if (state->base.fb && state->base.fb->format->has_alpha) > - con |= OVL_CON_AEN | OVL_CON_ALPHA; > + con = ovl_fmt_convert(ovl, fmt, blend_mode); > + if (state->base.fb) { > + con |= OVL_CON_AEN; > + con |= state->base.alpha & OVL_CON_ALPHA; This modification is to support constant alpha, not related to pre-multiplied alpha. So separate this to another patch. Regards, CK > + } > > /* CONST_BLD must be enabled for XRGB formats although the alpha channel > * can be ignored, or OVL will still read the value from memory. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel