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 AC4ABC4829E for ; Fri, 16 Feb 2024 02:17:36 +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=kx6NB3zkZkohe54yOw6TeegPxNra76mQBVZuJXAZQKY=; b=D4ARGTSfQLiYvg I9ci7gzgWDRZdoZ5oJSzPxtNl95kAK55glkrSQqLI2zsKQomLC7SYpFqGlff1m12IsTjdRgm051fY ppVSxwdNnoU+cIHPCSv2cxwlY89sslSv86LbpvneMlWXy0g6KedLsftakZnYgPi8nN57bsxct3vu6 aWpd/Iok87RGKU2HmEyjjWRMoyTqHWKDEyw23TBQWM4Zwlv6FA5dTzZCKuwe9quFvZC3FXyyGrp0Y QV6+F2kC6e7V+u6Tiynq5zPkMZSzcSASG0kI0JrJArGteGR0ZdyxVyBEpvWcmPtU8eTG9NRRMbNhO /yZuN43rI69uglNDLm/Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1ranmy-00000000owB-0eVY; Fri, 16 Feb 2024 02:17:20 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1ranmu-00000000ov9-348Q; Fri, 16 Feb 2024 02:17:18 +0000 X-UUID: 7d254288cc7111eea0bf134e88e6c2dc-20240215 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=Qpxb6hlI21+yGVEYcu1Q4tqzGTbfzy6RztKOHM56AEc=; b=IY6Gn8t4qt2jiNNE4xy9GhQLsI/9lzmxfG2UYVaeHvJyQoqpRA7hxiKHPbUZS1YQFauknW8Xam9cVxg/6E3hOkbUp1b9aZnKLYsr8+GW/qtajzGfJKNhvzCMXfVcI60gsiAq2DEHgUNsLCY4g361tefxN6Jzcg812Zz1kkDBBjk=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.37,REQID:fe9a99a8-1147-4465-9a12-bd82a56e7690,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:6f543d0,CLOUDID:0ee8578f-e2c0-40b0-a8fe-7c7e47299109,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 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-UUID: 7d254288cc7111eea0bf134e88e6c2dc-20240215 Received: from mtkmbs11n1.mediatek.inc [(172.21.101.185)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 994404671; Thu, 15 Feb 2024 19:17:09 -0700 Received: from mtkmbs10n2.mediatek.inc (172.21.101.183) by MTKMBS14N1.mediatek.inc (172.21.101.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Fri, 16 Feb 2024 10:17:01 +0800 Received: from APC01-TYZ-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; Fri, 16 Feb 2024 10:17:01 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hmzK/9kZovbXdKdSPJDiCVooTnVarqBJdJ/cOleUQ3OXleIiNI3+eQYhojNX0fui6x9PHOI5SelEqapkS95B/siHAZWSGC8PDN9FyCFFzWa7VN5DcCMhgbFGBe6fwMTlQ+p98xT9LH0HUqa1PyxxdMkIGR6bNtKVLry9qxW9KFmOv/wTJB+yObTO5TyCjcg6tudVfPfMr03uEd8pGFeouOZf6i2J0Lfq4o1aR3OOtv69zdxUNwyzjJtJibQw+4+02sbVqj9JRkLBgmb4UxDlJ3L2eyhU//FAV8RhX4t/JJP7d/EdGCFdhmh7eoqR51vTVX9BUdZuE/nKqEjQg3CBiA== 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=Qpxb6hlI21+yGVEYcu1Q4tqzGTbfzy6RztKOHM56AEc=; b=XCPxsf07ODzJequLVmaQgzKF/JL19e5m2G77yTiJ5XbQOZuPbo8/j3Lugf8vVhbTfKFYM9HJOP0oRPlR+dUu6K9IuzgJLEqsxcDPly8WPAi/7Jf5pLSCLRdo8F6hDPkgmgzEA+QVrz+qwFXA/CkdvIIPgmHrhDmkOEmvJAuc3We/fri+J3sZ/jMGnBHd2dCm6O7trwoccHGVtFiyhWb/ddojfYeipUpLtqDhubAmWGI3xAreh9774FZvUDCE7jenHwDjhvSYy5HcFczEnASIR8ERS9b7VhkeYxQF3Yv/HZVJzlhluNpJYp3boKGiW9uBdEft0SkCFnUn6n8BGIpWyg== 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=Qpxb6hlI21+yGVEYcu1Q4tqzGTbfzy6RztKOHM56AEc=; b=Pgeuk+Gb3Xd8jlvgHFtCUTERsqi7TRlTB349AvRpP5Aaxrsf9KUpHjLB+6wlOnZWAVom+aSIKe17D41AIiKHF0rr7/TAmmQJLeSwtW3Mhikda/QsJrtQaIK6x9w4/ZDVRW6ma4qK6w/9J5OUYqTARmMpMV7Nbhr895fTp+7dLN4= Received: from TYZPR03MB6623.apcprd03.prod.outlook.com (2603:1096:400:1f5::13) by TY0PR03MB6533.apcprd03.prod.outlook.com (2603:1096:400:21f::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.31; Fri, 16 Feb 2024 02:16:58 +0000 Received: from TYZPR03MB6623.apcprd03.prod.outlook.com ([fe80::a93d:863e:c0fd:109b]) by TYZPR03MB6623.apcprd03.prod.outlook.com ([fe80::a93d:863e:c0fd:109b%6]) with mapi id 15.20.7292.026; Fri, 16 Feb 2024 02:16:58 +0000 From: =?utf-8?B?U2hhd24gU3VuZyAo5a6L5a2d6KyZKQ==?= To: "angelogioacchino.delregno@collabora.com" , "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" , =?utf-8?B?Q0sgSHUgKOiDoeS/iuWFiSk=?= , "seanpaul@chromium.org" , "dri-devel@lists.freedesktop.org" , "airlied@gmail.com" , "linux-arm-kernel@lists.infradead.org" , "matthias.bgg@gmail.com" , "fshao@chromium.org" Subject: Re: [PATCH v5 10/13] drm/mediatek: Support CRC in display driver Thread-Topic: [PATCH v5 10/13] drm/mediatek: Support CRC in display driver Thread-Index: AQHaX/dpb4xX9vYSDEyAoA9XDt3r1rELPigAgAD+WAA= Date: Fri, 16 Feb 2024 02:16:58 +0000 Message-ID: <56eec57c795bdea59baac3ad3d25e015d4c596c3.camel@mediatek.com> References: <20240215101119.12629-1-shawn.sung@mediatek.com> <20240215101119.12629-11-shawn.sung@mediatek.com> <44529502-250b-4c8a-94c3-2c481d1385cf@collabora.com> In-Reply-To: <44529502-250b-4c8a-94c3-2c481d1385cf@collabora.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: TYZPR03MB6623:EE_|TY0PR03MB6533:EE_ x-ms-office365-filtering-correlation-id: 7f548a8b-034a-4b8e-33b4-08dc2e955ac5 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2mb5OP1D3QVCOHKHktG4lI8mJm/qta7+ZuekL+72B/mQd2rykfUS/J7tajmtL4IGvMQDO3zNz5k1psRMEew7CuR7H7B24hDF9Tv2bUeDu/4IzEvRXouDgV8zwU6GrK6bhpablVb2Gp0OraP5IgmrE9wslhrHDK4y2gJFLByZgfnvWK9cIhgmzAc0wBgrDIzdmvGbh1jtP+2qlPkoxvekXlcZVxAhBbR7m3b74KrHFYN0OYO+rxvHiyYlnp4Dmk4d4eurHP/Q9KgIY+iQHDiuwgVSuEyosXrxJrHA8iKccZEF6FKk6CMSwZwP3wI51ot0gtVbBaQm39fJ2/a2CAuJNfMrAjewASg8GlbrR5vbu0LodZEvT3L7T13CjLhw5N/vr0VcJsn3XCsEcJD1YM1Nqx1dol+G9I9PtXjSBGIUki+Qh8OUZppTmrQ7cMkGCHdThHd/2gmTj6mL+aPjlCsQwMnem5RoohsEyEay8Pf7AzCCgfUEyri9xJPreUh2y57SBjudy32cci7+p+LOkpi5xijb58QRcEHSirpz+nKjQ/aH51GkImEDjK46F2LcUpPAOUEGM75wpXkm7tKpzyBFR59bbXujdQl0g0+ghf0GyuBMFX5Bwgadf6PQl1hEMZSp x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR03MB6623.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(396003)(366004)(39860400002)(136003)(376002)(230922051799003)(1800799012)(186009)(64100799003)(451199024)(2906002)(8676002)(8936002)(4326008)(7416002)(5660300002)(83380400001)(2616005)(26005)(122000001)(36756003)(38100700002)(85182001)(86362001)(38070700009)(66946007)(66556008)(76116006)(54906003)(316002)(64756008)(66446008)(110136005)(66476007)(6506007)(6512007)(478600001)(6486002)(71200400001)(41300700001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MTJHcENMZERtL0JEMHQ0S0toaUM3WGV2SkNweGxYeWJzcU9IRWN0UG5RTm5o?= =?utf-8?B?aklNWDJWSDV3Ryttc2JaUDhaZ0FCYnkxUE1STjAza3M4dkpkK2NoNVRVQytv?= =?utf-8?B?akpCUFlNUmJnMmlzaStVd2FjcVpJUEJMYWNMNVdtSW8vVW5meWx5Q1Ywd295?= =?utf-8?B?KzVlTjh1VlRDR2tJYURGWEw1L1hYOVNZdW1mRWQzdXNoMktMZkxVUE5lM1pu?= =?utf-8?B?NENUQ01wQ24wQTh0NDQ3S3c3ZEdkU0ZqMlJNK0hCRGZkOEFyNWhVQXFEeko3?= =?utf-8?B?SzBUeDJObGJqdlVtUVV0bi9EZUhvelVieXpZbllDNks4U3pUMGhLMDNQY0NJ?= =?utf-8?B?b1JUZGF0N3pKcXhNSzdmd3pNSUUrSzRhWXBLK2tkYS9Xd1B0WEVFbmcrVmwz?= =?utf-8?B?dGY4VDJ0UElNLzZEbnZDbzFvYmU1ak1sZFhXWjVab1ZudHdDNFRsVlJFZkRv?= =?utf-8?B?ZXRUL24yOUFmQXdPYng2YTlKY3RvUThVUUtHazBDdEZNcVNSQXNrVWRmQU1H?= =?utf-8?B?dXJVcFpQV1M3cTZWczFuRGN4UXp5MkR4WDEzV3VqY21ZR09QZ29DdVFXZC82?= =?utf-8?B?SlZ2MGhISzZoQnpXTzVnUC96UCt1SS9wMVNGTW05L2YwR1BOeHBNZnY3ekR6?= =?utf-8?B?enBkZ1ZSRFFHUlRxa2RyKzNHak5pOUw4SHdhQ3Q1TWNOY0VNbXVpbjhXR21o?= =?utf-8?B?Q252NWRNTEFGcmZ5U3YycFpkU1l2SGZLNndSREw0Mmk0d0RTUXRSYlgxamtZ?= =?utf-8?B?MmJLUnc4eExuZU1yMFhjQ0x6YnMweGRsOTdLVDd5ZTA3cTFBcFBGem44V0Zu?= =?utf-8?B?cDBJTndKS3JSOHNBZ3p0eXN1ZU8rR3lSTXZkZVZLVWJZcnBHci9BS29RQUYy?= =?utf-8?B?N21CamxwY0c1WXVienF5cUxaNDVXZGFDbldWSUhlM254TEdyamFXcllDaGVB?= =?utf-8?B?alNDbEh3RThFN0sxME9sakdYYzVGUGIwWkNNMld3Q1dEMXV2ZTg5cTFWaDdZ?= =?utf-8?B?ajZ6aVdFalZRUndCcmYxKytramRGbjdiVmFwUUxQYzVKUzJiNmUzSFNibmJs?= =?utf-8?B?U0UvaUxPR0RXRWdCNGpPOGZpcWVTVnM0dG5GQnE2WStFL0lNV2RlVnhLU1NP?= =?utf-8?B?QXdDaVg2S0lFSnNDWTV2UXhSRDh1ODE3dTNqV0hkanhrY1Z4SWhYZzlKeXh5?= =?utf-8?B?MElRaU12K1FoWmlOOG1XZnk3R0duWGRrUlF4SHprOUkzQVJiMFd4RHZvSUlF?= =?utf-8?B?RDJvYTZick9RT3BVMy8ybFJKVit3SHpJZ2NIUkFDa1Vkd3ZUWFFyVHRZY0Zo?= =?utf-8?B?RTdzUHpJQWZ0UzJoSlVhcUUxdmRSNzEvcDBiOUtJcjFvYjRhWWVjdHJtUU1J?= =?utf-8?B?aVVydnMzbHBiT2lXbkYzL3o4ZzFZR3FXSzlRT1pmZm51R244NGpHOWJOelVs?= =?utf-8?B?VEdRUk5pbU1iMUxvTXhpc1RQWTBaNVdJU2NWUDBnUEdueHprVzlod0VhWm05?= =?utf-8?B?WDFCcThWOGVncG5uM2t1SXE5cmI4VlhyUk9WNDR4RTE2MVhhTDdUTDhwVWdu?= =?utf-8?B?bTQwcEczRUVSQldJYjhocERxRmw4UzdhMHdITVVkZkNvMCtndi9YbUl2MXVM?= =?utf-8?B?TXBCT0V0OC93a25oaVlrc2doN0gvQ2pZb29HcGJob3d5cFJ1Qk1VS1dseWtp?= =?utf-8?B?Nmc5eVZFOVB4dVFWNXVZd1NJNjMxZmVVaXJYajg0dTdNK0N2VzlPaVd4S3FV?= =?utf-8?B?aUhaZWREM2l5bWFvWnJxalJ1WDFodDVJTDVZZW9DMmxuSnJsaGNNeFBiMzJC?= =?utf-8?B?SVpiWjVWMW5GVW5OWHNWaGR2MlQ1eGFNZ2hwc0drNFUwQjdpejNMMm40Y3Bs?= =?utf-8?B?ekRDUitPQWI2OXMvNGtyS3pLREpCZlJteWxXR3M2RHRYRC9rYUVPV0E5SU41?= =?utf-8?B?OVpzSXhxREZMR0lLVktUNkp6TFlRdEkwMENmaUFHS05Za25KV1lObWxoalJP?= =?utf-8?B?UlNRQlZmZWlwZlZMZTZ0dGIvMiszcUZsVHZHWWRhcHVsTi9EYzBZaHU3Tjhu?= =?utf-8?B?RWxmdERCSHdHd2k3Y0dEVUZiSm5DWEJmZEtXUUxwQlhGdzdZSExBR0lIVEVE?= =?utf-8?B?QXhSN0ZNV2tCampFWUlOVVc5dllyK0tPaVowd0ZXallWRjg5V2RkVzdjUTI2?= =?utf-8?B?cmc9PQ==?= Content-ID: <5E477D7427617F4FAF3318AEA9717901@apcprd03.prod.outlook.com> MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYZPR03MB6623.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7f548a8b-034a-4b8e-33b4-08dc2e955ac5 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Feb 2024 02:16:58.7593 (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: NFiMq69qVsTCMsTghAWrEmoCbMRAdyCvOdalo1vHPy6FGOz2ZLkkTWQm2fAgFZGEXroj7rlygHJioonprlfJwQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY0PR03MB6533 X-TM-AS-Product-Ver: SMEX-14.0.0.3152-9.1.1006-23728.005 X-TM-AS-Result: No-10--18.228100-8.000000 X-TMASE-MatchedRID: UWn79NfEZzbUL3YCMmnG4kD6z8N1m1ALjLOy13Cgb49qSjxROy+AU/wt lOVHF2NRUmsNbSHn8eCpfqpJhVojO6LCTO1UKypvQ4srjeRbxTZKPIx+MJF9o99RlPzeVuQQJWJ 3QmcoR79RUHsj/YINIJaZO/nIoe7v7U4NkBX42MaSwdo9pBBGwI4lnIgC6UzTTDoylMQmcK+So7 YBtVK4/OZvMxhRgyXOh+fw4x1yHCBmcP5F4hatbZ1v5WrnSRXhi/ymJ2FVg5Tfc2Xd6VJ+ysRLB g/IHlC9EiMeEgy/WOZLTtKDoVocJnHPBvSspzfjI0cHLI6lhgIXjpi5ffY2fywSWHxGIdT19acv YWZbwBNJ3EMno0ksGYdziXCvHmFESSOWVJeuO1DSBVVc2BozSnJnzNw42kCxxEHRux+uk8jpP8t MOyYmaA== X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--18.228100-8.000000 X-TMASE-Version: SMEX-14.0.0.3152-9.1.1006-23728.005 X-TM-SNTS-SMTP: FE7AAD5ACC3C53850255C8DAB033FB27A73BF739C4C3B3CD62D855B91D6334282000:8 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240215_181716_789628_C19AF0A1 X-CRM114-Status: GOOD ( 23.66 ) 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 Angelo, On Thu, 2024-02-15 at 12:06 +0100, AngeloGioacchino Del Regno wrote: > Il 15/02/24 11:11, Hsiao Chien Sung ha scritto: > > Register CRC related function pointers to support > > CRC retrieval. > > > > Signed-off-by: Hsiao Chien Sung > > --- > > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 239 > > ++++++++++++++++++++ > > drivers/gpu/drm/mediatek/mtk_drm_crtc.h | 39 ++++ > > drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h | 3 + > > 3 files changed, 281 insertions(+) > > > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > index 14cf75fa217f9..6cb1ed419dee7 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > > @@ -68,6 +68,9 @@ struct mtk_drm_crtc { > > /* lock for display hardware access */ > > struct mutex hw_lock; > > bool config_updating; > > + > > + struct mtk_ddp_comp *crc_provider; > > + unsigned int frames; > > }; > > > > struct mtk_crtc_state { > > @@ -635,6 +638,14 @@ static void mtk_crtc_ddp_irq(void *data) > > struct drm_crtc *crtc = data; > > struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); > > struct mtk_drm_private *priv = crtc->dev->dev_private; > > + struct mtk_ddp_comp *comp = mtk_crtc->crc_provider; > > + > > + /* > > + * crc providers should make sure the crc is always correct > > + * by resetting it in .crc_read() > > + */ > > + if (crtc->crc.opened) > > + comp->funcs->crc_read(comp->dev); > > > > #if IS_REACHABLE(CONFIG_MTK_CMDQ) > > if (!priv->data->shadow_register && !mtk_crtc- > > >cmdq_client.chan) > > @@ -646,6 +657,24 @@ static void mtk_crtc_ddp_irq(void *data) > > if (!priv->data->shadow_register) > > mtk_crtc_ddp_config(crtc, NULL); > > #endif > > + > > + /* > > + * drm_crtc_add_crc_entry() could take more than 50ms to finish > > + * put it at the end of the isr > > + */ > > + if (crtc->crc.opened) { > > + /* > > + * skip the first crc because the first frame is > > configured by > > + * mtk_crtc_ddp_hw_init() when atomic enable > > + */ > > + if (++mtk_crtc->frames > 1) { > > + drm_crtc_add_crc_entry(crtc, true, > > + drm_crtc_vblank_count(cr > > tc), > > + comp->funcs- > > >crc_entry(comp->dev)); > > + } > > + } else { > > + mtk_crtc->frames = 0; > > + } > > mtk_drm_finish_page_flip(mtk_crtc); > > } > > > > @@ -704,6 +733,40 @@ static void mtk_drm_crtc_update_output(struct > > drm_crtc *crtc, > > } > > } > > > > +static int mtk_drm_crtc_set_crc_source(struct drm_crtc *crtc, > > const char *src) > > +{ > > + if (src && strcmp(src, "auto") != 0) { > > + DRM_ERROR("%s(crtc-%d): unknown source '%s'\n", > > + __func__, drm_crtc_index(crtc), src); > > + return -EINVAL; > > + } > > + return 0; > > +} > > + > > +static int mtk_drm_crtc_verify_crc_source(struct drm_crtc *crtc, > > + const char *src, > > + size_t *cnt) > > +{ > > + struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); > > + struct mtk_ddp_comp *comp = mtk_crtc->crc_provider; > > + > > + if (!comp) { > > + DRM_ERROR("%s(crtc-%d): no crc provider\n", > > + __func__, drm_crtc_index(crtc)); > > + return -ENOENT; > > + } > > + > > + if (src && strcmp(src, "auto") != 0) { > > + DRM_ERROR("%s(crtc-%d): unknown source '%s'\n", > > + __func__, drm_crtc_index(crtc), src); > > + return -EINVAL; > > + } > > + > > + *cnt = comp->funcs->crc_cnt(comp->dev); > > + > > + return 0; > > +} > > + > > int mtk_drm_crtc_plane_check(struct drm_crtc *crtc, struct > > drm_plane *plane, > > struct mtk_plane_state *state) > > { > > @@ -841,6 +904,8 @@ static const struct drm_crtc_funcs > > mtk_crtc_funcs = { > > .atomic_destroy_state = mtk_drm_crtc_destroy_state, > > .enable_vblank = mtk_drm_crtc_enable_vblank, > > .disable_vblank = mtk_drm_crtc_disable_vblank, > > + .set_crc_source = mtk_drm_crtc_set_crc_source, > > + .verify_crc_source = mtk_drm_crtc_verify_crc_source, > > }; > > > > static const struct drm_crtc_helper_funcs mtk_crtc_helper_funcs = > > { > > @@ -1033,6 +1098,11 @@ int mtk_drm_crtc_create(struct drm_device > > *drm_dev, > > > > if (comp->funcs->ctm_set) > > has_ctm = true; > > + > > + if (comp->funcs->crc_cnt && > > + comp->funcs->crc_entry && > > + comp->funcs->crc_read) > > + mtk_crtc->crc_provider = comp; > > } > > > > mtk_ddp_comp_register_vblank_cb(comp, mtk_crtc_ddp_irq, > > @@ -1137,3 +1207,172 @@ int mtk_drm_crtc_create(struct drm_device > > *drm_dev, > > > > return 0; > > } > > + > > +void mtk_drm_crc_init(struct mtk_drm_crc *crc, > > + const u32 *crc_offset_table, size_t crc_count, > > + u32 reset_offset, u32 reset_mask) > > +{ > > + crc->ofs = crc_offset_table; > > + crc->cnt = crc_count; > > + crc->rst_ofs = reset_offset; > > + crc->rst_msk = reset_mask; > > + crc->va = kcalloc(crc->cnt, sizeof(*crc->va), GFP_KERNEL); > > + if (!crc->va) { > > + DRM_ERROR("failed to allocate memory for crc\n"); > > + crc->cnt = 0; > > + } > > +} > > + > > +void mtk_drm_crc_read(struct mtk_drm_crc *crc, void __iomem *reg) > > +{ > > u32 n; goes here > > > + if (!crc->cnt || !crc->ofs || !crc->va) > > + return; > > + > > +#if IS_REACHABLE(CONFIG_MTK_CMDQ) > > + /* sync to see the most up-to-date copy of the DMA buffer */ > > + dma_sync_single_for_cpu(crc->cmdq_client.chan->mbox->dev, > > + crc->pa, crc->cnt * sizeof(*crc->va), > > + DMA_FROM_DEVICE); > > +#else > > + /* read crc with cpu for the platforms without cmdq */ > > + { > > then you don't need the braces. > > Regards, > Angelo > The variable n is placed within the braces because when CONFIG_MTK_CMDQ is defined, the variable is not being used and causes a build error. This is a workaround in order to have only one #if macro in that function for a more clean code. Thanks, Shawn _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel