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 ECB2EC48BC4 for ; Mon, 19 Feb 2024 02:29:06 +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:To:From:Reply-To:Cc:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=d0+uvfQ6BuAXLw4Rz/oTn8grXy6nHksQ+Mzx45rJZGw=; b=idUhCrLLbE11qr GT+3zFtsbs8I4wIYjt8Pr9+OsDLgN07/DnKcsiPeFSadMOokDXXe8Gm2a0tcvkmXdJKW4QjhMOnVd Wg+S5e+YpVu/ibZBrrXKviJerjHFPA3KNb/3A4gqmwwX8OlW4j/W9elJUb/R7tMUyxiTtGF1LaX91 erVlcQrT6Tj9G/0JOCRKQ/KLdNdRKhwmsGWdvgTUDu+dTp446EWb3ai8014dDPBeOKMxcxXIg3IgL l1AwKNYpiTZuP9oIuSVcISSqeb8/8TVt/zVRgpJdufiGXF+v2YR+D7VR1dBai560wIJOv5NZgh5uI lQ9Lb38GKjj3+9lb+tdA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rbtOl-00000008rh6-1yvc; Mon, 19 Feb 2024 02:28:51 +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 1rbtOi-00000008rf9-2He9; Mon, 19 Feb 2024 02:28:49 +0000 X-UUID: 99a8545ecece11ee9a263b4415211400-20240218 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:To:From; bh=Eo7+UwludMKaT6gc5shQLTImq8z66gVceiVNXPTMTLU=; b=sWoFqtSJ11zfyLHIwBFwYTuaXmyaLSjA027eNU5hju68V2eHC460nPJh5PwETp1hFWWalyCTHjcaV5zRVxZ/oJO4hj6lw8eUhcJmxf+WtB3at8Y4s4a51r0qeuDLxMV1KpYrK4bKRK/HaQGetK4XW32zRaG6w9wgG3Yf6fJS1+I=; X-CID-CACHE: Type:Local,Time:202402181917-07,HitQuantity:1 X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.37,REQID:3ddc3f97-6e09-4e03-b1e6-97f05d16ca25,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:0ec86f8f-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: 99a8545ecece11ee9a263b4415211400-20240218 Received: from mtkmbs11n2.mediatek.inc [(172.21.101.187)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 414826945; Sun, 18 Feb 2024 19:28:43 -0700 Received: from mtkmbs10n2.mediatek.inc (172.21.101.183) by mtkmbs11n1.mediatek.inc (172.21.101.185) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Mon, 19 Feb 2024 10:28:40 +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; Mon, 19 Feb 2024 10:28:40 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BGW/4/BmDNAADeIyffIFRGNTZDEtWTgzY+ykJb7xKFNUQlWmPUCldIiMjV5fJaxoUc5ZsXHIJX1FnhbRSRBb/poni+ZgnuPNJi+Bu4SOTC/5L95sLS5b7cXOforMMmEYAwlWfe8mIF7iYzQLdypxD1U4AHqQR0vFldegTYYtqhv0bjg3004tNv5iqu4HTo3RqwqyKQQxX3slxBurcS39Xofd5rTgb3IjT5INGIja4DfAU1flgrdeIZ8NWzhUNlpI/rBsqaqCdlL3QynwgxM3AjNPm8tGkEr/ZdLKiS91lHxHzTeB4tU8TqpEncMl/KUFCNiZKGbAIFdZgVKSKBOg+Q== 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=Eo7+UwludMKaT6gc5shQLTImq8z66gVceiVNXPTMTLU=; b=c6CYzxtpGTUhXAfVdYaHFlpknpH4MA+nWPA7pj0X9whDMrcm546fO7FQHnpZ+U+9idD0jfDRonti1AUY+7oORgAYrQl5eTo+sXc/aQcBlkivkV5eO7+ltuVYVk71DvInNvs6ibCkYbybP271PeYe2sQRmbXFRqJz8X7RAzxexoMgKSdD4xjor4Ty3VkjNlKVSzzPZ4yc1LMZsicDqUp/Ug4QjddJnitgM1PGyIS70iQLGGF/HyA0XHT2JavCtdbzSi6PS6W0bUCd8THRuvaSdQ7R+NL96Yyg6CktEkPVqQhvZkdLrT11RfIOb/T8/QNcUydbrHoF0LDKOPWZaK3HkA== 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=Eo7+UwludMKaT6gc5shQLTImq8z66gVceiVNXPTMTLU=; b=XVV+1y/QVw/K+ge2b9sttoGYHVEDytOA0M086/K+vKJtQ4aVvQ8H5bWi4JnaJDREOMdyUwdvzi9aOaInsiQQFMYTV/XyKOgphfZkVkYuM3kFusUO6PX8XGMCpWrgJHjyetlnGBl83A+V4vjqtdWfdx9Qjjcb4XWvSNVwB+uaOSY= Received: from TYZPR03MB6623.apcprd03.prod.outlook.com (2603:1096:400:1f5::13) by SEZPR03MB7631.apcprd03.prod.outlook.com (2603:1096:101:10d::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.32; Mon, 19 Feb 2024 02:28:38 +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; Mon, 19 Feb 2024 02:28:38 +0000 From: =?utf-8?B?U2hhd24gU3VuZyAo5a6L5a2d6KyZKQ==?= To: "linux-mediatek@lists.infradead.org" , "linux-kernel@vger.kernel.org" , =?utf-8?B?QmliYnkgSHNpZWggKOisnea/n+mBoCk=?= , "chunkuang.hu@kernel.org" , "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" , "angelogioacchino.delregno@collabora.com" 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/dpb4xX9vYSDEyAoA9XDt3r1rENNImAgAADoICAA76XgA== Date: Mon, 19 Feb 2024 02:28:38 +0000 Message-ID: <574c4d570ea4c1c7170ce7e0652c342b8ccbb5af.camel@mediatek.com> References: <20240215101119.12629-1-shawn.sung@mediatek.com> <20240215101119.12629-11-shawn.sung@mediatek.com> In-Reply-To: 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_|SEZPR03MB7631:EE_ x-ms-office365-filtering-correlation-id: 806efca4-67e2-4d43-467c-08dc30f27b2c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Da5oqXDfaJViro0zjVpwNNYuiVYI6MHvNYJTs2ExnKo+/kqlDnu3QpIGqwvxDXgGi46tV5GnAifnsXkMAjRDif0E78LYJyuEvEkJ7AQUL+YgvXoH+2Ziq6MTKyPqXPBsqBmivtbEZOgc6AnZzeLUKURZcQOMpu41fJYqro9NaKa47N5QSh7Rb+LOKtcMxWSj6wO+uiajto94UyJZ01f0tTsR06ZcjPf6ppLMKjSfUVS66s6/LAmA+YdUmzDvzW6VzTGQUjygC7Ny9E19eiX//aycilzmia6rLHIL/dTbn3cka9L4wUBxLSahXk9sYVQf1nbjtPViLApwUCiHUUOXNRZ3ZFrIo2IWNqfvCukaWn27lvRygcpm+ub8unJUz7SnZ4OIqHBYb+KrkxQHUwI+8lgGeKKMNPxirjLdG3Nhxpi54f681kuRXyapEa20xIxnyWdurKq+8wr49x1ZHtbV/WfReQo6Aa0NhRrrDG8+GoefTu79laSXa1zEc9efdtHwek38gaY64msFtS6BZCYS+1fb3kpiFQRyZl7TjCmrKXxN8O8dSAFIAmz0GIBPNm5H0VwD3wabR/7G1jxmNi+WcyT3mrsMvWa2QyTqSkL/VfN81V8B74/zm0oKYKFRNPxmpGY+ke90HzS50Sun6dnLYw== 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)(136003)(376002)(366004)(396003)(39860400002)(346002)(230273577357003)(230922051799003)(1800799012)(186009)(451199024)(64100799003)(83380400001)(122000001)(38100700002)(2906002)(64756008)(66946007)(8676002)(66446008)(76116006)(8936002)(7416002)(66476007)(66556008)(5660300002)(71200400001)(26005)(2616005)(110136005)(6506007)(478600001)(316002)(6512007)(6486002)(41300700001)(921011)(38070700009)(85182001)(86362001)(36756003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZGNvaXROeHlPZHliVTBuWXRXak5DNkxDWDl3RUdqMi9MWlVSLzE0MnNDM0Fr?= =?utf-8?B?ekhWRGdVV1hyYnNENnZvMFpTOFd1bEpXMHFJcnBDMFNzK09KMStrVHd4YXRK?= =?utf-8?B?dE8ydGo0UW1ZSld0WkZsc2VDYXl5TXM5Snhvd1dqb3lmZVEwTzcvTitHNkRS?= =?utf-8?B?dXRTb3NxVlVRL1RrbWVNcmNyYWUwcWwvRlJ0QlROUlpLa28wZ1Btb3FkQmdF?= =?utf-8?B?bS9sTU90d0pjSHpiZmQ0MWlKbklqazNwRVdNb2wreXNJc1ZDdWVWWWJXcTdQ?= =?utf-8?B?U3ZLSENmZlNpMVYvSEFYc0xsZ21OWnFicStvMTI0Wmt0aE43NFpFQjVFb05K?= =?utf-8?B?akovUXQ1aXNGd1Mwd1lqY0QxK3pIQ2M3TlIzcmU4TmdDZXBrQ1FIYm91UFRR?= =?utf-8?B?Z0IzSXNIa0IyeUVOUVRnWWt0a2lLNVBKa29HaTFTYXBuVWNxZzNiQnBKOW1o?= =?utf-8?B?Mm5WRXl5NXB1NGRCc3NJalVLMjQrOGVRbmFucEp1Z3JJNGhQc2VITzA2MnpV?= =?utf-8?B?ckwyajBVc0FFS3dQeEVSSG9DWEVEMkplSlJnTlZUV2V1R0pleU1YTVBzaUZm?= =?utf-8?B?bTRwMjhpekZQam1NYnl4RWorRzdpU0dadUJlUGJpdWx0SzVsU1EyZ3lYVlZP?= =?utf-8?B?MHhsR1RvT1VvTXExbXpVS09FUFVjVm9yemJvMWY1ZWoraGsyQS9IVFg2NGN0?= =?utf-8?B?TW9sMUc4Y0hHSlE0dEkyWTdzYUZoeHVuY2FDUm8yc2M2VWlRVldrNWk1Q1Zs?= =?utf-8?B?WjI4QWhLajlUZjJKMUNVOFBNdmZhb3BsMHpQdDRqL21SK0g0MkNHZVBwZHlp?= =?utf-8?B?b210TnBwQlU5V0NMWnZVQ1VyUm42OGxkT0hQbUZEb0VsZllWS1FRRnRKcExI?= =?utf-8?B?SlVCb2FGaDJINWY3cHdLclh1c2NMZEJScjlZREh2Y0lyZFE5MjlCVXl3RW1v?= =?utf-8?B?NmpZalhOZ2toa2ZaaUFxb3J5Q3NxR21BWEo5RmNoQ3ROaUtXUnN3eER4MVNL?= =?utf-8?B?azllcXFZSDRSY01YTVV3ZDY3YUtjMmpsb3hSMEc0VjRUUlptNmNiT2J3L2pU?= =?utf-8?B?OTlGMEJvMkgyK3hKSERSRENXZmtXOUNLTFdRL0FvcUIxai9STStkVzN0a01W?= =?utf-8?B?T2FlNCtWMEQvR1NnellGNVRwV3JiVC9kWTBsYVpjS3loTWRBTGtHWkVzSG9L?= =?utf-8?B?K3loSUtKdnNtYUZRQWdNQkt6SU1OZ3VYNHJuOHl0ZlJaRjh3QXJPazUwclF6?= =?utf-8?B?aFNFZU90MGQ2L2RHZ0pUbTdJNnAxVnlYYnVMOHBiRjdSZXVGL3VHTWpGRms5?= =?utf-8?B?djJUWTlCbXQzNXRDYUcvT1JNOXBlK2J1eDBxTURSMEdZbTQ0eEQxdjNldEFj?= =?utf-8?B?aVRWcng3bndnOXBpaUdRSVJmNmpDWkw3LzZyK2pqamJYZWlZR041dzVoUVlP?= =?utf-8?B?SnRYMUV1SVAwNGRUeUN4aXRiRGNsSzd5VzdlRDRHOUdpbTNFOUo3eWk2VjdK?= =?utf-8?B?bU54Z3BUdURvR3YxNVdtMU11MWVjVFNKa2tqWU1NNkczcXRJZnRhN2NMd2lB?= =?utf-8?B?VnRzdlUyWUFIaVdKSEZiQWZhYVVxWVJzclUrVHI0cis3eUNhYzFDbTJJVkIv?= =?utf-8?B?K3FkTTdzUmtFRVl4eGQ1eTlvWk1aSUJRMi9ZaFBKcTdqZ2N6ZnZpK0J0NENp?= =?utf-8?B?ckNQc1pudTcraGZNNiswVmlwUjRZaGF2YVZSNWZ4L1lyUk9WZlZOYzVxZGFO?= =?utf-8?B?Y0haUG04RVBOa21CVkZUSEgrY2NtdEZZOWQ4bXNjQllmd2JYQWE2V2Q0eW16?= =?utf-8?B?MThXaHFSNVpUVE9nb2RnRU5lVDBneHZ3MGg4OUc0VDdJSHJXYmltNUZBQmV1?= =?utf-8?B?ckFMRTJWK3R1Mk5naVFyakNwYmc0cEdKSFBxaHQzaFZKSEw5bHEvLy9uT2dH?= =?utf-8?B?WDVqd25YTDdPL2UyMWc3dCtlTlFzcjBJaHhDRGc1dnVMVm9OY2xMQlUreElB?= =?utf-8?B?c3VpODB4TVp3TzNZNWo1RHBwZGF4OUhUNWI3c3ovUmJocmVycmZPSGJZQmZZ?= =?utf-8?B?SmNRYm01ZkovK1RKaEdmQ0k3MGpKempvNlVhMDBWdENnQkIrQnk0STNlYU0r?= =?utf-8?B?RHc1WjQxSWJNYmxIY3h0Ly9Bb3lKL2M1aGlYSUtCbm1TQVJDaElpbzc0akVQ?= =?utf-8?B?eXc9PQ==?= Content-ID: <975340A571D04E488136E7EFBF02FED9@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: 806efca4-67e2-4d43-467c-08dc30f27b2c X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Feb 2024 02:28:38.6413 (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: 2rWRQJqa6sDrJD4zgqUDrpaPpy2rPVoumis9XpEfB7kCZaQ06DyEFfGyJka9gTi4mt8XdEiP30VSx720XQf96g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR03MB7631 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240218_182848_622404_9B3AF9F6 X-CRM114-Status: GOOD ( 32.80 ) 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 Daniel, On Fri, 2024-02-16 at 18:17 +0100, Daniel Vetter wrote: > > External email : Please do not click links or open attachments until > you have verified the sender or the content. > On Fri, Feb 16, 2024 at 06:04:43PM +0100, Daniel Vetter wrote: > > On Thu, Feb 15, 2024 at 06:11:16PM +0800, Hsiao Chien Sung wrote: > > > 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 mutexhw_lock; > > > boolconfig_updating; > > > + > > > +struct mtk_ddp_comp*crc_provider; > > > +unsigned intframes; > > > }; > > > > > > 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 > > > + */ > > > > Uh this looks really scary, especially since you put this before > the call > > to drm_crtc_handle_vblank in the function below, which really > shouldn't be > > unecessarily delayed (because that's the one that takes the vblank > > timestamp). > > > > This sounds like the perfect application for a vblank worker > though, so > > you please look into drm_vblank_work.h. And if that is not useable > due to > > hardware constraint, then please explain in a comment here and in > the > > commit message why you cannot use that and have to roll your own. > vblank > > work really should be your first choice here, because: > > - it's designed for expensive vblank work > > - it gives you all the flush/cancel_sync functions you need for > disabling > > crc again, and in a race-free implementation. Much better to use > common > > code than to reinvent synchronization wheels in drivers :-) > > > > > +if (crtc->crc.opened) { > > > > Because this is probably not race-free, so we need something solid > here. > > Since it's maybe a bit tricky to see how to use drm_vblank_work: > > - in your crtc initialization you also need to setup the crc work > with > drm_vblank_work_init(). > - Your mtk_drm_crtc_set_sourc needs to actually enable the crc by > calling > drm_vblank_work_schedule for current vblank + 1, so that it > immediately > starts > - your vblank worker itself needs to again re-arm itself with > drm_vblank_work_schedule, again for the very next vblank > - then your set_source also needs to handle the case where you > disable the > crc again (source == NULL) by calling drm_vblank_work_cancel_sync > - also you probably need to call drm_vblank_work_flush when shutting > down > the crtc, or you might have use-after-free issues on driver unload. > Could probably also just put that in your crtc release function. > > No changes to your interrupt handler needed, and also definitely no > digging around in drm_crtc->crc data structure without locking - > that's > entirely internal to the common crc code and drivers must never look > into it. > I am deeply appreciative for the information you have shared. Will try to implement it with DRM_vblank_work APIs. Sincerely, Shawn _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel