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 9E888C4167B for ; Tue, 28 Nov 2023 09:33:47 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=JnzYGWzNz8ze6/4xh5QExQp1L6ycAP9k6k4tCacHopA=; b=2iczKoD+y2icPR yQ+XSmMJtk037DHmvBCt9yAG9sdU/2sc/Vm/CeIfPTKVIoOawhumv2D5fLMbBP7JxsTexKoRkzO4Q LkC5UqHTqjycWgNC3Uv8b0FaKEpWesvZlrwk+JFpPba5AXy5v0EkDU3opU3uzozIk7CUbt6BF+nIv GeGLf+Nw2fdN8wHEiCkpcVKX97DYAwMu6NFgJZNe9xFvg2bERXbXKAaARs4KkXHcfmo/u9GdIO7+J FlunBcuqv+N5z/zOLuFaaa4N1vOEqOKLglP4wxNlBbQXs2SAHuRjP7RPe0p9UigLT4eMyBaIBoh9w 23d2lpBTADgD2FhSvddQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r7uT8-004kny-0Y; Tue, 28 Nov 2023 09:33:26 +0000 Received: from mail-m17218.xmail.ntesmail.com ([45.195.17.218]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r7uT4-004kmV-1h for linux-rockchip@lists.infradead.org; Tue, 28 Nov 2023 09:33:24 +0000 DKIM-Signature: a=rsa-sha256; b=DcLVgxkd4hRXhqcF3LFgwFiUkuAPVte4HOriks3qtqli+asr6UfOwv7yHAFzmCNlUz7Bf3c5/Bmhnrj/qEbFnUGyFThMExb+W/upEMTqz1W3kNPPB6p7lrjOUYeOjkn1+C2+dgJdnfIgDi8o8qSP0fKbohNU2w8kwVZMuLUenaQ=; s=default; c=relaxed/relaxed; d=rock-chips.com; v=1; bh=W++6O1OO0uiQqmpaiWwyK1zsoZBp0YmOXKt4LJxyAwk=; h=date:mime-version:subject:message-id:from; Received: from [172.16.12.141] (unknown [58.22.7.114]) by mail-m12762.qiye.163.com (Hmail) with ESMTPA id 7DFB25C03E3; Tue, 28 Nov 2023 17:32:55 +0800 (CST) Message-ID: Date: Tue, 28 Nov 2023 17:32:55 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 10/12] drm/rockchip: vop2: Add support for rk3588 Content-Language: en-US To: =?UTF-8?Q?Heiko_St=C3=BCbner?= , Andy Yan Cc: hjc@rock-chips.com, dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, krzysztof.kozlowski+dt@linaro.org, robh+dt@kernel.org, devicetree@vger.kernel.org, sebastian.reichel@collabora.com, kever.yang@rock-chips.com, chris.obbard@collabora.com, s.hauer@pengutronix.de References: <20231122125316.3454268-1-andyshrk@163.com> <20231122125544.3454918-1-andyshrk@163.com> <4788319.uZKlY2gecq@diego> From: Andy Yan In-Reply-To: <4788319.uZKlY2gecq@diego> X-HM-Spam-Status: e1kfGhgUHx5ZQUpXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly tZV1koWUFDSUNOT01LS0k3V1ktWUFJV1kPCRoVCBIfWUFZGkpDTlZPHk1CQ0MZH0sdHh5VEwETFh oSFyQUDg9ZV1kYEgtZQVlOQ1VJSVVMVUpKT1lXWRYaDxIVHRRZQVlPS0hVSk1PSU5JVUpLS1VKQl kG X-HM-Tid: 0a8c15464494b229kuuu7dfb25c03e3 X-HM-MType: 1 X-HM-Sender-Digest: e1kMHhlZQR0aFwgeV1kSHx4VD1lBWUc6NBA6Qjo4Mzw#Dh45Gi81ERw8 QjgwFAJVSlVKTEtKSk1IQkxNT0xNVTMWGhIXVRoVHwJVAhoVOwkUGBBWGBMSCwhVGBQWRVlXWRIL WUFZTkNVSUlVTFVKSk9ZV1kIAVlBTUJPSjcG X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231128_013323_069677_71816BF9 X-CRM114-Status: GOOD ( 30.15 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org SGkgSGVpa286CgpUaGFua3MgZm9yIHlvdSByZXZpZXcuCgpPbiAxMS8yNy8yMyAyMzoyOSwgSGVp a28gU3TDvGJuZXIgd3JvdGU6Cj4gSGkgQW5keSwKPgo+IEFtIE1pdHR3b2NoLCAyMi4gTm92ZW1i ZXIgMjAyMywgMTM6NTU6NDQgQ0VUIHNjaHJpZWIgQW5keSBZYW46Cj4+IEZyb206IEFuZHkgWWFu IDxhbmR5LnlhbkByb2NrLWNoaXBzLmNvbT4KPj4KPj4gVk9QMiBvbiByazM1ODg6Cj4+Cj4+IEZv dXIgdmlkZW8gcG9ydHM6Cj4+IFZQMCBNYXggNDA5NngyMTYwCj4+IFZQMSBNYXggNDA5NngyMTYw Cj4+IFZQMiBNYXggNDA5NngyMTYwCj4+IFZQMyBNYXggMjA0OHgxMDgwCj4+Cj4+IDQgNEsgQ2x1 c3RlciB3aW5kb3dzIHdpdGggQUZCQy9saW5lIFJHQiBhbmQgQUZCQy1vbmx5IFlVViBzdXBwb3J0 Cj4+IDQgNEsgRXNtYXJ0IHdpbmRvd3Mgd2l0aCBsaW5lIFJHQi9ZVVYgc3VwcG9ydAo+Pgo+PiBT aWduZWQtb2ZmLWJ5OiBBbmR5IFlhbiA8YW5keS55YW5Acm9jay1jaGlwcy5jb20+Cj4+Cj4+IC0t LQo+Pgo+PiBDaGFuZ2VzIGluIHYyOgo+PiAtIGFkZCByazM1ODhfIHByZWZpeCBmb3IgZnVuY3Rp b25zIHdoaWNoIGFyZSByazM1ODggb25seQo+PiAtIG1ha2Ugc29tZSBjYWxjdWxhdGlvbiBhcyBm aXhlZCB2YWx1ZSBhbmQga2VlcCBjYWxjdWxhdGlvbiBmb3JtdWxhIGFzCj4+ICAgIGNvbW1lbnQK Pj4gLSBjaGVjayByZXR1cm4gdmFsdWUgZm9yIHNvbWUgY3J1IGNhbGN1bGF0aW9uIGZ1bmN0aW9u cy4KPj4gLSBjaGVjayByZXR1cm4gdmFsdWUgZm9yIHN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X3Bo YW5kbGUKPj4gLSBhZGQgTlYyMC9OVjMwIGZvciBlc21hcnQgcGxhbmUKPj4KPj4gICBkcml2ZXJz L2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcDIuYyB8IDM4MSArKysrKysrKysrKysr KysrKystCj4+ICAgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AyLmgg fCAgNjYgKysrKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92b3AyX3Jl Zy5jIHwgMjIxICsrKysrKysrKysrCj4+ICAgMyBmaWxlcyBjaGFuZ2VkLCA2NjAgaW5zZXJ0aW9u cygrKSwgOCBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y b2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wMi5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3Jv Y2tjaGlwX2RybV92b3AyLmMKPj4gaW5kZXggNGJjYzQwNWJjZjExLi45ZWVjYmUxZjcxZjkgMTAw NjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wMi5j Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wMi5jCj4+ IEBAIC0yNzEsOSArMjgyLDEyIEBAIHN0YXRpYyBib29sIHZvcDJfY2x1c3Rlcl93aW5kb3coY29u c3Qgc3RydWN0IHZvcDJfd2luICp3aW4pCj4+ICAgc3RhdGljIHZvaWQgdm9wMl9jZmdfZG9uZShz dHJ1Y3Qgdm9wMl92aWRlb19wb3J0ICp2cCkKPj4gICB7Cj4+ICAgCXN0cnVjdCB2b3AyICp2b3Ay ID0gdnAtPnZvcDI7Cj4+ICsJdTMyIHZhbDsKPj4gKwo+PiArCXZhbCA9IEJJVCh2cC0+aWQpIHwg KEJJVCh2cC0+aWQpIDw8IDE2KSB8Cj4+ICsJCVJLMzU2OF9SRUdfQ0ZHX0RPTkVfX0dMQl9DRkdf RE9ORV9FTjsKPj4gICAKPj4gLQlyZWdtYXBfc2V0X2JpdHModm9wMi0+bWFwLCBSSzM1NjhfUkVH X0NGR19ET05FLAo+PiAtCQkJQklUKHZwLT5pZCkgfCBSSzM1NjhfUkVHX0NGR19ET05FX19HTEJf Q0ZHX0RPTkVfRU4pOwo+PiArCXJlZ21hcF9zZXRfYml0cyh2b3AyLT5tYXAsIFJLMzU2OF9SRUdf Q0ZHX0RPTkUsIHZhbCk7Cj4gSSBkb24ndCBmdWxseSB1bmRlcnN0YW5kIHRoYXQgY29kZToKPiAo MSkgdGhlIHdyaXRlIG1hc2sgaXMgYWxzbyBwcmVzZW50IG9uIHRoZSByazM1NjgsIHNvIHNob3Vs ZCB0aGlzIGNoYW5nZQo+ICAgICAgYmUgYSBzZXBhcmF0ZSBwYXRjaCB3aXRoIGEgZml4ZXMgdGFn PwoKVGhlIHdyaXRlIG1hc2sgb2YgVlAgY29uZmlnIGRvbmUgb24gcmszNTZ4IGlzIG1pc3Npbmcs IHRoYXQgbWVhbnMKCnlvdSBjYW4gd3JpdGUgdGhlIGNvcnJlc3BvbmRpbmcgbWFzayBiaXQsIGJ1 dCBpdCBoYXMgbm8gZWZmZWN0LgoKSSBvbmNlIGNvbnNpZGVyZWQgbWFraW5nIGl0IGEgc2VwYXJh dGUgcGF0Y2gswqAgSSBjYW4gc3BsaXQgaXQgYXMgYSBzZXBhcmF0ZSBwYXRjaCBpZgoKeW91IGxp a2UuCgo+ICgyKSBSSzM1NjhfUkVHX0NGR19ET05FX19HTEJfQ0ZHX0RPTkVfRU4gZG9lcyBub3Qg Y29udGFpbiB0aGUgcGFydCBmb3IKPiAgICAgIHRoZSB3cml0ZS1tYXNrCj4KPiAJI2RlZmluZSBS SzM1NjhfUkVHX0NGR19ET05FX19HTEJfQ0ZHX0RPTkVfRU4gICAgIEJJVCgxNSkKPgo+ICAgICAg d2h5IGlzIHRoaXMgd29ya2luZyB0aGVuPwoKCkFjdHVhbGx5IHRoaXMgYml0IGhhcyBubyB3cml0 ZS1tYXNrIGJpdC4g8J+ZggoKPgo+PiAgIH0KPj4gICAKPj4gICBzdGF0aWMgdm9pZCB2b3AyX3dp bl9kaXNhYmxlKHN0cnVjdCB2b3AyX3dpbiAqd2luKQo+IFsuLi5dCj4KPj4gQEAgLTEyOTgsNyAr MTM0NiwxMSBAQCBzdGF0aWMgdm9pZCB2b3AyX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCj4+ICAgCQkJdm9wMl93aW5fd3JpdGUod2luLCBWT1AyX1dJTl9BRkJD X0VOQUJMRSwgMSk7Cj4+ICAgCQl2b3AyX3dpbl93cml0ZSh3aW4sIFZPUDJfV0lOX0FGQkNfRk9S TUFULCBhZmJjX2Zvcm1hdCk7Cj4+ICAgCQl2b3AyX3dpbl93cml0ZSh3aW4sIFZPUDJfV0lOX0FG QkNfVVZfU1dBUCwgdXZfc3dhcCk7Cj4+IC0JCXZvcDJfd2luX3dyaXRlKHdpbiwgVk9QMl9XSU5f QUZCQ19BVVRPX0dBVElOR19FTiwgMCk7Cj4+ICsJCWlmICh2b3AyLT5kYXRhLT5zb2NfaWQgPT0g MzU2NiB8fCB2b3AyLT5kYXRhLT5zb2NfaWQgPT0gMzU2OCkKPj4gKwkJCXZvcDJfd2luX3dyaXRl KHdpbiwgVk9QMl9XSU5fQUZCQ19BVVRPX0dBVElOR19FTiwgMCk7Cj4+ICsJCWVsc2UKPj4gKwkJ CXZvcDJfd2luX3dyaXRlKHdpbiwgVk9QMl9XSU5fQUZCQ19BVVRPX0dBVElOR19FTiwgMSk7Cj4+ ICsKPiBJIHRoaW5rIHRoaXMgYXQgbGVhc3Qgd2FycmFudHMgYSBjb21tZW50LCB3aGF0IGlzIGhh cHBlbmluZyBoZXJlLiBBbHNvLAo+IGNhbiB5b3UgYWxyZWFkeSBzZWUgaG93IGZ1dHVyZSB2b3Ay LXVzZXJzIGFyZSBiZWhhdmluZyAtIGFrYSBhcmUgYWxsIG5ldwo+IHNvY3MgaW4gdGhlICJlbHNl IiBwYXJ0IG9mIHRoZSBjb25kaXRpb25hbCwgb3Igd291bGQgYSBzd2l0Y2gtY2FzZSBiZXR0ZXIK PiByZXByZXNlbnQgZnV0dXJlIHNvY3M/CgoKT24gcmszNTZ4LCB0aGlzIGJpdCBpcyBhdXRvIGdh dGluZyBlbmFibGUsIGJ1dCB0aGlzIGZ1bmN0aW9uIGlzIG5vdCB3b3JrIHdlbGwgc28KCndlIG5l ZWQgdG8gZGlzYWJsZSB0aGlzIGZ1bmN0aW9uLgoKT24gcmszNTg4LCBhbmQgdGhlIGZvbGxvd2lu ZyBuZXcgc29jKHJrMzUyOC9yazM1NzYpLCB0aGlzIGJpdCBpcyBnYXRpbmcgZGlzYWJsZSwKCndl IHNob3VsZCB3cml0ZSAxIHRvIGRpc2FibGUgZ2F0aW5nIHdoZW4gZW5hYmxlIGEgY2x1c3RlciB3 aW5kb3cuCgoKTWF5YmUgaSBhZGQgc29tZSBjb21tZW50cyBpbiBuZXh0IHZlcnNpb24gPwoKCgo+ Cj4+ICAgCQl2b3AyX3dpbl93cml0ZSh3aW4sIFZPUDJfV0lOX0FGQkNfQkxPQ0tfU1BMSVRfRU4s IDApOwo+PiAgIAkJdHJhbnNmb3JtX29mZnNldCA9IHZvcDJfYWZiY190cmFuc2Zvcm1fb2Zmc2V0 KHBzdGF0ZSwgaGFsZl9ibG9ja19lbik7Cj4+ICAgCQl2b3AyX3dpbl93cml0ZSh3aW4sIFZPUDJf V0lOX0FGQkNfSERSX1BUUiwgeXJnYl9tc3QpOwo+Cj4+IEBAIC0xNjI3LDkgKzE5MzcsMTcgQEAg c3RhdGljIHZvaWQgdm9wMl9jcnRjX2F0b21pY19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRj LAo+PiAgIAlkcm1fZm9yX2VhY2hfZW5jb2Rlcl9tYXNrKGVuY29kZXIsIGNydGMtPmRldiwgY3J0 Y19zdGF0ZS0+ZW5jb2Rlcl9tYXNrKSB7Cj4+ICAgCQlzdHJ1Y3Qgcm9ja2NoaXBfZW5jb2RlciAq cmtlbmNvZGVyID0gdG9fcm9ja2NoaXBfZW5jb2RlcihlbmNvZGVyKTsKPj4gICAKPj4gLQkJcmsz NTY4X3NldF9pbnRmX211eCh2cCwgcmtlbmNvZGVyLT5jcnRjX2VuZHBvaW50X2lkLCBwb2xmbGFn cyk7Cj4+ICsJCS8qCj4+ICsJCSAqIGZvciBkcml2ZSBhIGhpZ2ggcmVzb2x1dGlvbig0S1AxMjAs IDhLKSwgdm9wIG9uIHJrMzU4OC9yazM1NzYgbmVlZAo+PiArCQkgKiBwcm9jZXNzIG11bHRpKDEv Mi80LzgpIHBpeGVscyBwZXIgY3ljbGUsIHNvIHRoZSBkY2xrIGZlZWQgYnkgdGhlCj4+ICsJCSAq IHN5c3RlbSBjcnUgbWF5IGJlIHRoZSAxLzIgb3IgMS80IG9mIG1vZGUtPmNsb2NrLgo+PiArCQkg Ki8KPj4gKwkJY2xvY2sgPSB2b3AyX3NldF9pbnRmX211eCh2cCwgcmtlbmNvZGVyLT5jcnRjX2Vu ZHBvaW50X2lkLCBwb2xmbGFncyk7Cj4+ICAgCX0KPj4gICAKPj4gKwlpZiAoIWNsb2NrKQo+PiAr CQlyZXR1cm47Cj4+ICsKPiBobW0sIHNob3VsZG4ndCB0aGUgY2hlY2sgZm9yIHRoZSB2YWxpZGl0 eSBvZiBhIG1vZGUgaGFwcGVuIGJlZm9yZQo+IGF0b21pY19lbmFibGUgaXMgcnVuPyBTbyB0aGlz IHNob3VsZG4ndCBlcnJvciBvdXQgaW4gdGhlIG1pZGRsZSBvZiB0aGUKPiBmdW5jdGlvbj8KPgo+ Cj4+ICAgCWlmICh2Y3N0YXRlLT5vdXRwdXRfbW9kZSA9PSBST0NLQ0hJUF9PVVRfTU9ERV9BQUFB ICYmCj4+ICAgCSAgICAhKHZwX2RhdGEtPmZlYXR1cmUgJiBWT1BfRkVBVFVSRV9PVVRQVVRfMTBC SVQpKQo+PiAgIAkJb3V0X21vZGUgPSBST0NLQ0hJUF9PVVRfTU9ERV9QODg4Owo+Cj4gVGhhbmtz Cj4gSGVpa28KPgo+Cj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+IExpbnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdAo+IExpbnV4LXJvY2tjaGlwQGxp c3RzLmluZnJhZGVhZC5vcmcKPiBodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LXJvY2tjaGlwCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpMaW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBA bGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LXJvY2tjaGlwCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=rock-chips.com header.i=@rock-chips.com header.b="DcLVgxkd" Received: from mail-m17213.xmail.ntesmail.com (mail-m17213.xmail.ntesmail.com [45.195.17.213]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B79C492; Tue, 28 Nov 2023 01:33:32 -0800 (PST) DKIM-Signature: a=rsa-sha256; b=DcLVgxkd4hRXhqcF3LFgwFiUkuAPVte4HOriks3qtqli+asr6UfOwv7yHAFzmCNlUz7Bf3c5/Bmhnrj/qEbFnUGyFThMExb+W/upEMTqz1W3kNPPB6p7lrjOUYeOjkn1+C2+dgJdnfIgDi8o8qSP0fKbohNU2w8kwVZMuLUenaQ=; s=default; c=relaxed/relaxed; d=rock-chips.com; v=1; bh=W++6O1OO0uiQqmpaiWwyK1zsoZBp0YmOXKt4LJxyAwk=; h=date:mime-version:subject:message-id:from; Received: from [172.16.12.141] (unknown [58.22.7.114]) by mail-m12762.qiye.163.com (Hmail) with ESMTPA id 7DFB25C03E3; Tue, 28 Nov 2023 17:32:55 +0800 (CST) Message-ID: Date: Tue, 28 Nov 2023 17:32:55 +0800 Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 10/12] drm/rockchip: vop2: Add support for rk3588 Content-Language: en-US To: =?UTF-8?Q?Heiko_St=C3=BCbner?= , Andy Yan Cc: hjc@rock-chips.com, dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, krzysztof.kozlowski+dt@linaro.org, robh+dt@kernel.org, devicetree@vger.kernel.org, sebastian.reichel@collabora.com, kever.yang@rock-chips.com, chris.obbard@collabora.com, s.hauer@pengutronix.de References: <20231122125316.3454268-1-andyshrk@163.com> <20231122125544.3454918-1-andyshrk@163.com> <4788319.uZKlY2gecq@diego> From: Andy Yan In-Reply-To: <4788319.uZKlY2gecq@diego> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-HM-Spam-Status: e1kfGhgUHx5ZQUpXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly tZV1koWUFDSUNOT01LS0k3V1ktWUFJV1kPCRoVCBIfWUFZGkpDTlZPHk1CQ0MZH0sdHh5VEwETFh oSFyQUDg9ZV1kYEgtZQVlOQ1VJSVVMVUpKT1lXWRYaDxIVHRRZQVlPS0hVSk1PSU5JVUpLS1VKQl kG X-HM-Tid: 0a8c15464494b229kuuu7dfb25c03e3 X-HM-MType: 1 X-HM-Sender-Digest: e1kMHhlZQR0aFwgeV1kSHx4VD1lBWUc6NBA6Qjo4Mzw#Dh45Gi81ERw8 QjgwFAJVSlVKTEtKSk1IQkxNT0xNVTMWGhIXVRoVHwJVAhoVOwkUGBBWGBMSCwhVGBQWRVlXWRIL WUFZTkNVSUlVTFVKSk9ZV1kIAVlBTUJPSjcG Hi Heiko: Thanks for you review. On 11/27/23 23:29, Heiko Stübner wrote: > Hi Andy, > > Am Mittwoch, 22. November 2023, 13:55:44 CET schrieb Andy Yan: >> From: Andy Yan >> >> VOP2 on rk3588: >> >> Four video ports: >> VP0 Max 4096x2160 >> VP1 Max 4096x2160 >> VP2 Max 4096x2160 >> VP3 Max 2048x1080 >> >> 4 4K Cluster windows with AFBC/line RGB and AFBC-only YUV support >> 4 4K Esmart windows with line RGB/YUV support >> >> Signed-off-by: Andy Yan >> >> --- >> >> Changes in v2: >> - add rk3588_ prefix for functions which are rk3588 only >> - make some calculation as fixed value and keep calculation formula as >> comment >> - check return value for some cru calculation functions. >> - check return value for syscon_regmap_lookup_by_phandle >> - add NV20/NV30 for esmart plane >> >> drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 381 ++++++++++++++++++- >> drivers/gpu/drm/rockchip/rockchip_drm_vop2.h | 66 ++++ >> drivers/gpu/drm/rockchip/rockchip_vop2_reg.c | 221 +++++++++++ >> 3 files changed, 660 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c >> index 4bcc405bcf11..9eecbe1f71f9 100644 >> --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c >> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c >> @@ -271,9 +282,12 @@ static bool vop2_cluster_window(const struct vop2_win *win) >> static void vop2_cfg_done(struct vop2_video_port *vp) >> { >> struct vop2 *vop2 = vp->vop2; >> + u32 val; >> + >> + val = BIT(vp->id) | (BIT(vp->id) << 16) | >> + RK3568_REG_CFG_DONE__GLB_CFG_DONE_EN; >> >> - regmap_set_bits(vop2->map, RK3568_REG_CFG_DONE, >> - BIT(vp->id) | RK3568_REG_CFG_DONE__GLB_CFG_DONE_EN); >> + regmap_set_bits(vop2->map, RK3568_REG_CFG_DONE, val); > I don't fully understand that code: > (1) the write mask is also present on the rk3568, so should this change > be a separate patch with a fixes tag? The write mask of VP config done on rk356x is missing, that means you can write the corresponding mask bit, but it has no effect. I once considered making it a separate patch,  I can split it as a separate patch if you like. > (2) RK3568_REG_CFG_DONE__GLB_CFG_DONE_EN does not contain the part for > the write-mask > > #define RK3568_REG_CFG_DONE__GLB_CFG_DONE_EN BIT(15) > > why is this working then? Actually this bit has no write-mask bit. 🙂 > >> } >> >> static void vop2_win_disable(struct vop2_win *win) > [...] > >> @@ -1298,7 +1346,11 @@ static void vop2_plane_atomic_update(struct drm_plane *plane, >> vop2_win_write(win, VOP2_WIN_AFBC_ENABLE, 1); >> vop2_win_write(win, VOP2_WIN_AFBC_FORMAT, afbc_format); >> vop2_win_write(win, VOP2_WIN_AFBC_UV_SWAP, uv_swap); >> - vop2_win_write(win, VOP2_WIN_AFBC_AUTO_GATING_EN, 0); >> + if (vop2->data->soc_id == 3566 || vop2->data->soc_id == 3568) >> + vop2_win_write(win, VOP2_WIN_AFBC_AUTO_GATING_EN, 0); >> + else >> + vop2_win_write(win, VOP2_WIN_AFBC_AUTO_GATING_EN, 1); >> + > I think this at least warrants a comment, what is happening here. Also, > can you already see how future vop2-users are behaving - aka are all new > socs in the "else" part of the conditional, or would a switch-case better > represent future socs? On rk356x, this bit is auto gating enable, but this function is not work well so we need to disable this function. On rk3588, and the following new soc(rk3528/rk3576), this bit is gating disable, we should write 1 to disable gating when enable a cluster window. Maybe i add some comments in next version ? > >> vop2_win_write(win, VOP2_WIN_AFBC_BLOCK_SPLIT_EN, 0); >> transform_offset = vop2_afbc_transform_offset(pstate, half_block_en); >> vop2_win_write(win, VOP2_WIN_AFBC_HDR_PTR, yrgb_mst); > >> @@ -1627,9 +1937,17 @@ static void vop2_crtc_atomic_enable(struct drm_crtc *crtc, >> drm_for_each_encoder_mask(encoder, crtc->dev, crtc_state->encoder_mask) { >> struct rockchip_encoder *rkencoder = to_rockchip_encoder(encoder); >> >> - rk3568_set_intf_mux(vp, rkencoder->crtc_endpoint_id, polflags); >> + /* >> + * for drive a high resolution(4KP120, 8K), vop on rk3588/rk3576 need >> + * process multi(1/2/4/8) pixels per cycle, so the dclk feed by the >> + * system cru may be the 1/2 or 1/4 of mode->clock. >> + */ >> + clock = vop2_set_intf_mux(vp, rkencoder->crtc_endpoint_id, polflags); >> } >> >> + if (!clock) >> + return; >> + > hmm, shouldn't the check for the validity of a mode happen before > atomic_enable is run? So this shouldn't error out in the middle of the > function? > > >> if (vcstate->output_mode == ROCKCHIP_OUT_MODE_AAAA && >> !(vp_data->feature & VOP_FEATURE_OUTPUT_10BIT)) >> out_mode = ROCKCHIP_OUT_MODE_P888; > > Thanks > Heiko > > > > _______________________________________________ > Linux-rockchip mailing list > Linux-rockchip@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-rockchip 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 9B2FCC4167B for ; Tue, 28 Nov 2023 09:43:49 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 198D810E46D; Tue, 28 Nov 2023 09:43:49 +0000 (UTC) X-Greylist: delayed 645 seconds by postgrey-1.36 at gabe; Tue, 28 Nov 2023 09:43:47 UTC Received: from mail-m92233.xmail.ntesmail.com (mail-m92233.xmail.ntesmail.com [103.126.92.233]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5807C10E46D for ; Tue, 28 Nov 2023 09:43:47 +0000 (UTC) DKIM-Signature: a=rsa-sha256; b=DcLVgxkd4hRXhqcF3LFgwFiUkuAPVte4HOriks3qtqli+asr6UfOwv7yHAFzmCNlUz7Bf3c5/Bmhnrj/qEbFnUGyFThMExb+W/upEMTqz1W3kNPPB6p7lrjOUYeOjkn1+C2+dgJdnfIgDi8o8qSP0fKbohNU2w8kwVZMuLUenaQ=; s=default; c=relaxed/relaxed; d=rock-chips.com; v=1; bh=W++6O1OO0uiQqmpaiWwyK1zsoZBp0YmOXKt4LJxyAwk=; h=date:mime-version:subject:message-id:from; Received: from [172.16.12.141] (unknown [58.22.7.114]) by mail-m12762.qiye.163.com (Hmail) with ESMTPA id 7DFB25C03E3; Tue, 28 Nov 2023 17:32:55 +0800 (CST) Message-ID: Date: Tue, 28 Nov 2023 17:32:55 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 10/12] drm/rockchip: vop2: Add support for rk3588 Content-Language: en-US To: =?UTF-8?Q?Heiko_St=C3=BCbner?= , Andy Yan References: <20231122125316.3454268-1-andyshrk@163.com> <20231122125544.3454918-1-andyshrk@163.com> <4788319.uZKlY2gecq@diego> From: Andy Yan In-Reply-To: <4788319.uZKlY2gecq@diego> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-HM-Spam-Status: e1kfGhgUHx5ZQUpXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly tZV1koWUFDSUNOT01LS0k3V1ktWUFJV1kPCRoVCBIfWUFZGkpDTlZPHk1CQ0MZH0sdHh5VEwETFh oSFyQUDg9ZV1kYEgtZQVlOQ1VJSVVMVUpKT1lXWRYaDxIVHRRZQVlPS0hVSk1PSU5JVUpLS1VKQl kG X-HM-Tid: 0a8c15464494b229kuuu7dfb25c03e3 X-HM-MType: 1 X-HM-Sender-Digest: e1kMHhlZQR0aFwgeV1kSHx4VD1lBWUc6NBA6Qjo4Mzw#Dh45Gi81ERw8 QjgwFAJVSlVKTEtKSk1IQkxNT0xNVTMWGhIXVRoVHwJVAhoVOwkUGBBWGBMSCwhVGBQWRVlXWRIL WUFZTkNVSUlVTFVKSk9ZV1kIAVlBTUJPSjcG X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, s.hauer@pengutronix.de, chris.obbard@collabora.com, hjc@rock-chips.com, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, kever.yang@rock-chips.com, linux-rockchip@lists.infradead.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, sebastian.reichel@collabora.com Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Hi Heiko: Thanks for you review. On 11/27/23 23:29, Heiko Stübner wrote: > Hi Andy, > > Am Mittwoch, 22. November 2023, 13:55:44 CET schrieb Andy Yan: >> From: Andy Yan >> >> VOP2 on rk3588: >> >> Four video ports: >> VP0 Max 4096x2160 >> VP1 Max 4096x2160 >> VP2 Max 4096x2160 >> VP3 Max 2048x1080 >> >> 4 4K Cluster windows with AFBC/line RGB and AFBC-only YUV support >> 4 4K Esmart windows with line RGB/YUV support >> >> Signed-off-by: Andy Yan >> >> --- >> >> Changes in v2: >> - add rk3588_ prefix for functions which are rk3588 only >> - make some calculation as fixed value and keep calculation formula as >> comment >> - check return value for some cru calculation functions. >> - check return value for syscon_regmap_lookup_by_phandle >> - add NV20/NV30 for esmart plane >> >> drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 381 ++++++++++++++++++- >> drivers/gpu/drm/rockchip/rockchip_drm_vop2.h | 66 ++++ >> drivers/gpu/drm/rockchip/rockchip_vop2_reg.c | 221 +++++++++++ >> 3 files changed, 660 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c >> index 4bcc405bcf11..9eecbe1f71f9 100644 >> --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c >> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c >> @@ -271,9 +282,12 @@ static bool vop2_cluster_window(const struct vop2_win *win) >> static void vop2_cfg_done(struct vop2_video_port *vp) >> { >> struct vop2 *vop2 = vp->vop2; >> + u32 val; >> + >> + val = BIT(vp->id) | (BIT(vp->id) << 16) | >> + RK3568_REG_CFG_DONE__GLB_CFG_DONE_EN; >> >> - regmap_set_bits(vop2->map, RK3568_REG_CFG_DONE, >> - BIT(vp->id) | RK3568_REG_CFG_DONE__GLB_CFG_DONE_EN); >> + regmap_set_bits(vop2->map, RK3568_REG_CFG_DONE, val); > I don't fully understand that code: > (1) the write mask is also present on the rk3568, so should this change > be a separate patch with a fixes tag? The write mask of VP config done on rk356x is missing, that means you can write the corresponding mask bit, but it has no effect. I once considered making it a separate patch,  I can split it as a separate patch if you like. > (2) RK3568_REG_CFG_DONE__GLB_CFG_DONE_EN does not contain the part for > the write-mask > > #define RK3568_REG_CFG_DONE__GLB_CFG_DONE_EN BIT(15) > > why is this working then? Actually this bit has no write-mask bit. 🙂 > >> } >> >> static void vop2_win_disable(struct vop2_win *win) > [...] > >> @@ -1298,7 +1346,11 @@ static void vop2_plane_atomic_update(struct drm_plane *plane, >> vop2_win_write(win, VOP2_WIN_AFBC_ENABLE, 1); >> vop2_win_write(win, VOP2_WIN_AFBC_FORMAT, afbc_format); >> vop2_win_write(win, VOP2_WIN_AFBC_UV_SWAP, uv_swap); >> - vop2_win_write(win, VOP2_WIN_AFBC_AUTO_GATING_EN, 0); >> + if (vop2->data->soc_id == 3566 || vop2->data->soc_id == 3568) >> + vop2_win_write(win, VOP2_WIN_AFBC_AUTO_GATING_EN, 0); >> + else >> + vop2_win_write(win, VOP2_WIN_AFBC_AUTO_GATING_EN, 1); >> + > I think this at least warrants a comment, what is happening here. Also, > can you already see how future vop2-users are behaving - aka are all new > socs in the "else" part of the conditional, or would a switch-case better > represent future socs? On rk356x, this bit is auto gating enable, but this function is not work well so we need to disable this function. On rk3588, and the following new soc(rk3528/rk3576), this bit is gating disable, we should write 1 to disable gating when enable a cluster window. Maybe i add some comments in next version ? > >> vop2_win_write(win, VOP2_WIN_AFBC_BLOCK_SPLIT_EN, 0); >> transform_offset = vop2_afbc_transform_offset(pstate, half_block_en); >> vop2_win_write(win, VOP2_WIN_AFBC_HDR_PTR, yrgb_mst); > >> @@ -1627,9 +1937,17 @@ static void vop2_crtc_atomic_enable(struct drm_crtc *crtc, >> drm_for_each_encoder_mask(encoder, crtc->dev, crtc_state->encoder_mask) { >> struct rockchip_encoder *rkencoder = to_rockchip_encoder(encoder); >> >> - rk3568_set_intf_mux(vp, rkencoder->crtc_endpoint_id, polflags); >> + /* >> + * for drive a high resolution(4KP120, 8K), vop on rk3588/rk3576 need >> + * process multi(1/2/4/8) pixels per cycle, so the dclk feed by the >> + * system cru may be the 1/2 or 1/4 of mode->clock. >> + */ >> + clock = vop2_set_intf_mux(vp, rkencoder->crtc_endpoint_id, polflags); >> } >> >> + if (!clock) >> + return; >> + > hmm, shouldn't the check for the validity of a mode happen before > atomic_enable is run? So this shouldn't error out in the middle of the > function? > > >> if (vcstate->output_mode == ROCKCHIP_OUT_MODE_AAAA && >> !(vp_data->feature & VOP_FEATURE_OUTPUT_10BIT)) >> out_mode = ROCKCHIP_OUT_MODE_P888; > > Thanks > Heiko > > > > _______________________________________________ > Linux-rockchip mailing list > Linux-rockchip@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-rockchip