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 8424CEB64DC for ; Tue, 27 Jun 2023 03:39:13 +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=Z1Mn7HfQqjfh6/POwSUPK2NKaKt+sglci6WgHZ77TVw=; b=YXYoKuvI3ksJVL uJakblOhCvvLye4q1eyf8xxfYBhekb+xlIrRzVrjeAaD2lRj3yKdD5YQABOJxmgHohH3sKWicj01l mGdpQ7xRBvrVl2QFYYLHFITGPUfv/td+K4UZB9PILTaZgYdOpYa2BZLlTL06jfdUU8jl2XOspUTBP NvXD9eKLFqeDSyzIF/zDp5Pojlc9sCtT9Eo6L7lycsKmduoxSkhVxgdnhpWTSKu/ejoVRCe9/79ML 6Rim8GBS8OI3mqmfTn2g0UqYekfiD38D3bGK7+1kYws2Fv50GrYJt5w1n59qtacApAVu9CUQEaZjb k8OyNYNK0B6yvX49WOgQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qDzXO-00BcEX-2x; Tue, 27 Jun 2023 03:38:42 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qDzXL-00BcDl-22; Tue, 27 Jun 2023 03:38:41 +0000 X-UUID: 195d9152149c11ee912e1518a6540028-20230626 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=WH992h0mq3C7ELQzOJUNHvrJ4aMUaUN/5rXB3c5+cN0=; b=iY/0CC7T9JHzd2mam78sXwQc53yfhvpn2QiWDlsaYGbOROONU0/DYebjw6oaED28OnUw66OV4blu2LnTY5DwqyRPpKgG9gg/sG0hgD3Kgm7i6dE7IgWLOs6DvU5bf+lV7fUgFwi+7GLX15uWadAj8AF2PjylqWE/EL47v2AYs5A=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.27,REQID:800f9fc1-db84-4c45-a9d2-e05f526914af,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:01c9525,CLOUDID:237f5782-5a99-42ae-a2dd-e4afb731b474,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:0,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR:NO X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-UUID: 195d9152149c11ee912e1518a6540028-20230626 Received: from mtkmbs13n2.mediatek.inc [(172.21.101.108)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 383480100; Mon, 26 Jun 2023 20:38:36 -0700 Received: from mtkmbs10n2.mediatek.inc (172.21.101.183) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Tue, 27 Jun 2023 11:37:59 +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; Tue, 27 Jun 2023 11:37:59 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WJ87VZaFvj8w+Uhx9r5TDSK1c4t5DDS3dIqs4DyxVHpV7yt8ZyzFJgxBoqBcxFb14sKtOqoFQV03xFrZFYGPAkJpxq7d9KlIr2HgyelEyc5tpvxACS7SwF00d6bn/thBrrkufQz+rlJ/aSO80vkkuKJW0ctfs7S0wTcfnPl7+11Z+rOpqu39Qh7Qbb8Z7ThVR5Amx6NUhL2xoHGxQQg1BXkd8vTB58Wo5uoxDNqg39JX9P2oWzq3R+JKZ6owyMc4zr+k0MkeC9XWS2h0nILBQYCYWm5GMA7RsEAxhP51Z7/26MKnNq1HhUUY09S9d9H5In8LRMoWx/9DtyCPp/MMdw== 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=WH992h0mq3C7ELQzOJUNHvrJ4aMUaUN/5rXB3c5+cN0=; b=L6c3FJ0hm8DFiBXsnqNPkOxsYICrhFfJpQGPflHPSwcPzpHnp3Cnebb5MgHi3i9oSq83ZO+w4W3f50asVu4+VJZaNmRJ5PxQaxn+B/23Gk/ujVqDmZeKsfCFZd9WIUc+UamViLZoSt1iW7F9a0vw03VQmNiT5Jxvk4HjMpuTDuBY1NPtRtP8gKgeplxQhXnkcmuWyzS6KthomSYPEeWshwmD5SD6Jk4Erx82uL363rMwd9RaUln1c/83pLu6GgpvHxe/baUpfWRWUgpXEnwQWQSrAYF7zvR5L1neE3BZiiAEYlPKvCnqT6jkVEAj+TrNDnVMFmyvLiGReVBnjrQnrA== 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=WH992h0mq3C7ELQzOJUNHvrJ4aMUaUN/5rXB3c5+cN0=; b=IEhNR+U6FIsZY/Lc0/+zTMuFQYKUSv9inJw5nydIq9Fo5+IMSlG7O5Npwtw8Fqa48Hl+xZa+FtK8AgN8jq0gXzX9inTZVY3Cl7EIubW/ADr8PikL/zq2uqQjfPN8rdXn9NI5r17URZvVSBQy5eduiUuzX47nftycIp/mPrXXzVw= Received: from TYZPR03MB6624.apcprd03.prod.outlook.com (2603:1096:400:1f4::13) by KL1PR03MB7174.apcprd03.prod.outlook.com (2603:1096:820:c9::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6500.46; Tue, 27 Jun 2023 03:37:57 +0000 Received: from TYZPR03MB6624.apcprd03.prod.outlook.com ([fe80::6fdb:ba2c:bcfc:d5ed]) by TYZPR03MB6624.apcprd03.prod.outlook.com ([fe80::6fdb:ba2c:bcfc:d5ed%7]) with mapi id 15.20.6521.023; Tue, 27 Jun 2023 03:37:57 +0000 From: =?utf-8?B?Q0sgSHUgKOiDoeS/iuWFiSk=?= To: "angelogioacchino.delregno@collabora.com" , "chunkuang.hu@kernel.org" CC: "linux-kernel@vger.kernel.org" , "linux-mediatek@lists.infradead.org" , "wenst@chromium.org" , =?utf-8?B?SmFzb24tSkggTGluICjmnpfnnb/npaUp?= , "kernel@collabora.com" , "dri-devel@lists.freedesktop.org" , "linux-arm-kernel@lists.infradead.org" , "matthias.bgg@gmail.com" Subject: Re: [PATCH v5 03/11] drm/mediatek: gamma: Support SoC specific LUT size Thread-Topic: [PATCH v5 03/11] drm/mediatek: gamma: Support SoC specific LUT size Thread-Index: AQHZlIIaExF5+QRysEaRPt3OoGHjMK+eKIEA Date: Tue, 27 Jun 2023 03:37:56 +0000 Message-ID: <2505a4a3d3e88629173fa266fd54084862d7e1a3.camel@mediatek.com> References: <20230601121022.2401844-1-angelogioacchino.delregno@collabora.com> <20230601121022.2401844-4-angelogioacchino.delregno@collabora.com> In-Reply-To: <20230601121022.2401844-4-angelogioacchino.delregno@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: TYZPR03MB6624:EE_|KL1PR03MB7174:EE_ x-ms-office365-filtering-correlation-id: 73b39a30-d25c-49a2-3caf-08db76bfe5d3 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: FKJayz08NUTIw+8rY1tpa1m91P2ifGLJC3NsI886QI/hN8lX2kqv6qyPsb+c5Gct/igvpow+k3S4f+pfCuakUXc8sellm7kQO8IwanrV5xnPCDWKqVVeyyxEUvC4TkrzULiq3uygOT2pX9zeUmj7PS9y4uIKlN+mAk1w2Ym2MwHrvDNH1zOBLXTxst2GXex3uFSei7OkXIqHwH5ktLA/h9HPMcR6tzvh3fo05ZUATA5+uCMwzwEWZ1X1U1xU7Y4Z7kLoKaL6nKYrYhqwzuSYFZyth/hsZRtkFkI6KwGufjH+Fb7rB3SpBErUxwRoNSO+zURDyswjm69oInH1nsPag+osucLtl1P5b0DgLEFh5KnZOz1S1WuCS1qC1wundgyy6H4G4FS7xJSGkooWkFJtu5NyyVnI8yWpI6jTOBZLh9dZyTQY+O78vz8CH2AT8kfIzd8dBxfqhgjXuNfLh+i6slIGe9PB0+VaJ5EQoABQFfCQ2nltxGOn92B54nhtAo7FVzPWL/o5mrsvooNRKY9EgYAc2nb8tmgp40xX9bj6fAT1d7ZZFJkqdO4ntwLRJ8c+HknyQZKiG/9oVO5/5+9iwLIm2AZEvtY5GgK+nz+rJsOrcigBv20nrVyDXX9qQVebxJMTaRx601n/yHEVpbk9/4zqZ5Sri3Ol/TjHC1pXjN4= 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:(13230028)(4636009)(366004)(346002)(376002)(39860400002)(396003)(136003)(451199021)(6512007)(2906002)(6486002)(71200400001)(2616005)(38100700002)(83380400001)(122000001)(26005)(186003)(6506007)(54906003)(41300700001)(86362001)(110136005)(478600001)(38070700005)(36756003)(66946007)(66476007)(64756008)(66556008)(76116006)(66446008)(4326008)(316002)(85182001)(8676002)(8936002)(5660300002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WHM5a013bGxnMHFGSFFHS1ZRVE4razdjN1hPcHRLVForNDV5TmRBUkV2NWtp?= =?utf-8?B?V092UExFWFVTeU1tQnlkUjA3Vld3VVprWGR6amZJRnErbGMzVUdEUU54bHAw?= =?utf-8?B?VkF0alNUWEV6M0t1TGtzZFlSZ2d2em5EalVMdGcwZGRYVXlQQTFueURGVmZw?= =?utf-8?B?V2tmdnA3Y001dDNxdWlQWWVGYzlMUmwzVmN4VTJXRTR3dkNjdER3WDV2NXdk?= =?utf-8?B?b1NXUTAwaDMzVklqWW5OVGtWci82ZHhyNEw4Z2l6bUZSeGIxK3k5VUc5QWF1?= =?utf-8?B?UFdhZU9tQTlibWNNbmtRT1ZUNElhbDA1ZkIwTHEzRkRpa1VvdG9UNFBSM0pi?= =?utf-8?B?K1FpVTkxTUtaanVBV1hYVjF0N2FPU2ZZVDNTMnZicGRSZXJpR0pxUlJXL1Jv?= =?utf-8?B?WHpXckNjU3kxZ0llYzFvaklzUjc0NDlodUd6L0JHaEhpYjMrK09ibXBpcVJR?= =?utf-8?B?ZisvV3RmaWFLMWpuZ0NYeC9wSUV3cnJ6VW9XZ04zMzhETHMzbnVFZk83bytW?= =?utf-8?B?NmszS1JKMkVEODVSUUxPVkFJT0dXbUR4UC9ZUDJacG1GZ1ZNQ01ZWGp5Sks5?= =?utf-8?B?ckk5WVZYNHdqdVNNaWZHdVdFbnZsNU95THg0bTk1SEtKMTQzeUFISS80SW9Y?= =?utf-8?B?RGZnN1RNek12V0FjRHBkSFdXU2hKMzlNdnljd00wQjlqS2RheWFHRmdqK2E2?= =?utf-8?B?K2NNWXlyWWgzYVgvc2dkd1c5SHF5UUFobi9FekRsUWx6cytQZUJZdTRCcC9w?= =?utf-8?B?R05rSjVQSnFZUGI2L3U0VVBjaVFHK01aRWxZMC9wTkhrUnZxWjJramtzdUlk?= =?utf-8?B?ZGN3VXo2TklWV1NSaXdBWVovNGhVMHU5c09kaVpDd3E0ZlYvRk9WM2JvNndq?= =?utf-8?B?eXQyWUlLVW80cEtsRFpFNVNJZ2xOQU5uRm9ydklCVTAyQWpRL3ZUaHlnTXor?= =?utf-8?B?NFdmK25hZFMwV3NVWklnOFJvdG9LUlc1UmJGbDZoVXpVL2tvWXN6blBLbWlC?= =?utf-8?B?TUtEcVJ2NVNBMWtrU21YWFpES3FhRHFjUkFNSVQ4MUtYYzk5aU9JeERJRkpN?= =?utf-8?B?bFpZb2VLZXFyUkVsK0NKYTNGT0JmTTRUaUpGY1RFQkMvaE12WjAveDVGUWFX?= =?utf-8?B?bDMrbzFHYk9FVVI0dUVEZUNkZEowaytVaGw4M0hvWEZ3UzVmNXNWMHgvOTll?= =?utf-8?B?ek9UMDZyRlE5WXFEdXByOE84bWIvTStpZU1nUGJVdHhkRExJM2Q2MU5mVnNG?= =?utf-8?B?bFpyeWg1OHJLT0cxamt5cE0wSW9zSWZSdS9EOTluOHlxRlF2OVhXa2VQVVFZ?= =?utf-8?B?MEtlN0FWZ1htdG9SUG40UXFwZVJlQWYrcjE1cFgrMDY5ZkVGSHZqaU5YUHI5?= =?utf-8?B?eGxLY1FlcG1YVzB6S0JiWG82RVJPdStWSjJQcDFEc3Irb25EaHNlT2krbUk1?= =?utf-8?B?L0x1cUs5bVBTTW05eHFzTTAyMlp1blBOcGZPWTdzK09uT3ByNzVlL1FiUE5N?= =?utf-8?B?Q0F3aVRpYUZtdnVNQzRhSmk3ckh1aHR0dWdMa2E0NVpNcUpGQTBqVi9ZWEZM?= =?utf-8?B?dGgwQVZVREdxZUhOZERLcWtaRDArTThGbjNoTzBWU0hOTSsyd05Ed2ZFS3cy?= =?utf-8?B?MlR5a1JrRnpyY2FhdmY3a1NJbEdSR1VLSythUmY5SEJEdDgzeEIrd2V0Z3Uv?= =?utf-8?B?dTh2UnYvTVUzb0JjejBpeXdsb2tOM0dnQXlwRnhhbCtBMWhEdWRGOGtlejhJ?= =?utf-8?B?R09TZHBsaWZjZ3htelljbGNCZnF5YmlJUVVOL1V2Ymo2VEpKZDlSVnIrRStN?= =?utf-8?B?a1gvUTFNc1NiNmJhbGEwN2xyN3FEQkN2RXdTNkF5ZG9PZjhKbkVEdHJTQ094?= =?utf-8?B?WHh5YThpOEl4U1JvSFp5UnlySkVrNEU4SlFYNXVyS0hLODBocW14N1FBdUNR?= =?utf-8?B?NHNKZFR2U1JWRC9NK3lvSTZwWXdXL3h6bVIyU1dzM2FPSU5LYVRIK0FicVpR?= =?utf-8?B?QWd5RWJFNGRSd0tWL0FReXVFYzF1LzhIcWM4WE5ITXpiRlRrTmhVVUxCamt0?= =?utf-8?B?MDVsSDlYbFBKODdERjVtTGU0WEZJdGU2ZThvWEdwbWxQb0crTWppTnRMQ1Jl?= =?utf-8?Q?hrs0mpZVwMNdL87Iw6HlO5LPZ?= 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: 73b39a30-d25c-49a2-3caf-08db76bfe5d3 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jun 2023 03:37:56.9238 (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: TaFUUzmYgY24K7mKB8UBnaTBxfpW+UWGg/l9ITe8CV7KrKWgUOTNRST8nhuY4twFK2IaxqQc0I9vpGspNRV+Nw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR03MB7174 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230626_203839_680526_9B8B44A2 X-CRM114-Status: GOOD ( 20.69 ) 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, 2023-06-01 at 14:10 +0200, AngeloGioacchino Del Regno wrote: > > External email : Please do not click links or open attachments until > you have verified the sender or the content. > Newer SoCs support a bigger Gamma LUT table: wire up a callback > to retrieve the correct LUT size for each different Gamma IP. > > Co-developed-by: Jason-JH.Lin > Signed-off-by: Jason-JH.Lin > [Angelo: Rewritten commit message/description + porting] > Signed-off-by: AngeloGioacchino Del Regno < > angelogioacchino.delregno@collabora.com> > Reviewed-by: Jason-JH.Lin > --- > drivers/gpu/drm/mediatek/mtk_disp_drv.h | 1 + > drivers/gpu/drm/mediatek/mtk_disp_gamma.c | 25 ++++++++++++++++++- > -- > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 4 ++-- > drivers/gpu/drm/mediatek/mtk_drm_crtc.h | 1 - > drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 1 + > drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h | 9 ++++++++ > 6 files changed, 35 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/mediatek/mtk_disp_drv.h > b/drivers/gpu/drm/mediatek/mtk_disp_drv.h > index 75045932353e..e554b19f4830 100644 > --- a/drivers/gpu/drm/mediatek/mtk_disp_drv.h > +++ b/drivers/gpu/drm/mediatek/mtk_disp_drv.h > @@ -53,6 +53,7 @@ void mtk_gamma_clk_disable(struct device *dev); > void mtk_gamma_config(struct device *dev, unsigned int w, > unsigned int h, unsigned int vrefresh, > unsigned int bpc, struct cmdq_pkt *cmdq_pkt); > +unsigned int mtk_gamma_get_lut_size(struct device *dev); > void mtk_gamma_set(struct device *dev, struct drm_crtc_state > *state); > void mtk_gamma_set_common(struct device *dev, void __iomem *regs, > struct drm_crtc_state *state); > void mtk_gamma_start(struct device *dev); > diff --git a/drivers/gpu/drm/mediatek/mtk_disp_gamma.c > b/drivers/gpu/drm/mediatek/mtk_disp_gamma.c > index ce6f2499b891..b25ba209e7a4 100644 > --- a/drivers/gpu/drm/mediatek/mtk_disp_gamma.c > +++ b/drivers/gpu/drm/mediatek/mtk_disp_gamma.c > @@ -25,10 +25,12 @@ > #define DISP_GAMMA_LUT 0x0700 > > #define LUT_10BIT_MASK 0x03ff > +#define LUT_SIZE_DEFAULT 512 Only AAL driver use this definition, so move this to AAL driver. Regards, CK > > struct mtk_disp_gamma_data { > bool has_dither; > bool lut_diff; > + u16 lut_size; > }; > > /* > @@ -55,6 +57,17 @@ void mtk_gamma_clk_disable(struct device *dev) > clk_disable_unprepare(gamma->clk); > } > > +unsigned int mtk_gamma_get_lut_size(struct device *dev) > +{ > + struct mtk_disp_gamma *gamma = dev_get_drvdata(dev); > + unsigned int lut_size = LUT_SIZE_DEFAULT; > + > + if (gamma && gamma->data) > + lut_size = gamma->data->lut_size; > + > + return lut_size; > +} > + > void mtk_gamma_set_common(struct device *dev, void __iomem *regs, > struct drm_crtc_state *state) > { > struct mtk_disp_gamma *gamma = dev_get_drvdata(dev); > @@ -62,6 +75,7 @@ void mtk_gamma_set_common(struct device *dev, void > __iomem *regs, struct drm_crt > struct drm_color_lut *lut; > void __iomem *lut_base; > bool lut_diff; > + u16 lut_size; > u32 word; > u32 diff[3] = {0}; > > @@ -69,17 +83,20 @@ void mtk_gamma_set_common(struct device *dev, > void __iomem *regs, struct drm_crt > if (!state->gamma_lut) > return; > > - if (gamma && gamma->data) > + if (gamma && gamma->data) { > lut_diff = gamma->data->lut_diff; > - else > + lut_size = gamma->data->lut_size; > + } else { > lut_diff = false; > + lut_size = LUT_SIZE_DEFAULT; > + } > > reg = readl(regs + DISP_GAMMA_CFG); > reg = reg | GAMMA_LUT_EN; > writel(reg, regs + DISP_GAMMA_CFG); > lut_base = regs + DISP_GAMMA_LUT; > lut = (struct drm_color_lut *)state->gamma_lut->data; > - for (i = 0; i < MTK_LUT_SIZE; i++) { > + for (i = 0; i < lut_size; i++) { > if (!lut_diff || (i % 2 == 0)) { > word = (((lut[i].red >> 6) & LUT_10BIT_MASK) << > 20) + > (((lut[i].green >> 6) & LUT_10BIT_MASK) > << 10) + > @@ -196,10 +213,12 @@ static int mtk_disp_gamma_remove(struct > platform_device *pdev) > > static const struct mtk_disp_gamma_data mt8173_gamma_driver_data = { > .has_dither = true, > + .lut_size = 512, > }; > > static const struct mtk_disp_gamma_data mt8183_gamma_driver_data = { > .lut_diff = true, > + .lut_size = 512, > }; > > static const struct of_device_id mtk_disp_gamma_driver_dt_match[] = > { > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > index d40142842f85..0df62b076f49 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > @@ -958,8 +958,8 @@ int mtk_drm_crtc_create(struct drm_device > *drm_dev, > mtk_crtc->ddp_comp[i] = comp; > > if (comp->funcs) { > - if (comp->funcs->gamma_set) > - gamma_lut_size = MTK_LUT_SIZE; > + if (comp->funcs->gamma_set && comp->funcs- > >gamma_get_lut_size) > + gamma_lut_size = > mtk_ddp_gamma_get_lut_size(comp); > > if (comp->funcs->ctm_set) > has_ctm = true; > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.h > b/drivers/gpu/drm/mediatek/mtk_drm_crtc.h > index 3e9046993d09..b2e50292e57d 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.h > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.h > @@ -10,7 +10,6 @@ > #include "mtk_drm_ddp_comp.h" > #include "mtk_drm_plane.h" > > -#define MTK_LUT_SIZE 512 > #define MTK_MAX_BPC 10 > #define MTK_MIN_BPC 3 > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c > b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c > index f114da4d36a9..c77af2e4000f 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c > @@ -322,6 +322,7 @@ static const struct mtk_ddp_comp_funcs ddp_dsi = > { > static const struct mtk_ddp_comp_funcs ddp_gamma = { > .clk_enable = mtk_gamma_clk_enable, > .clk_disable = mtk_gamma_clk_disable, > + .gamma_get_lut_size = mtk_gamma_get_lut_size, > .gamma_set = mtk_gamma_set, > .config = mtk_gamma_config, > .start = mtk_gamma_start, > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h > b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h > index febcaeef16a1..c1355960e195 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h > +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h > @@ -67,6 +67,7 @@ struct mtk_ddp_comp_funcs { > void (*layer_config)(struct device *dev, unsigned int idx, > struct mtk_plane_state *state, > struct cmdq_pkt *cmdq_pkt); > + unsigned int (*gamma_get_lut_size)(struct device *dev); > void (*gamma_set)(struct device *dev, > struct drm_crtc_state *state); > void (*bgclr_in_on)(struct device *dev); > @@ -186,6 +187,14 @@ static inline void > mtk_ddp_comp_layer_config(struct mtk_ddp_comp *comp, > comp->funcs->layer_config(comp->dev, idx, state, > cmdq_pkt); > } > > +static inline unsigned int mtk_ddp_gamma_get_lut_size(struct > mtk_ddp_comp *comp) > +{ > + if (comp->funcs && comp->funcs->gamma_get_lut_size) > + return comp->funcs->gamma_get_lut_size(comp->dev); > + > + return 0; > +} > + > static inline void mtk_ddp_gamma_set(struct mtk_ddp_comp *comp, > struct drm_crtc_state *state) > { > -- > 2.40.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel