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 X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EA06BC5ACDA for ; Wed, 18 Mar 2020 15:09:41 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id B8D4120776 for ; Wed, 18 Mar 2020 15:09:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="qK2q0Wyf" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B8D4120776 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=sigxcpu.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To :From:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=05yM2wEc6QhYPiJLGmZWC7ay0QWNZw1UNi4u/c9wA7Q=; b=qK2q0Wyf+7V8P5 vcOVzvZ88G+GaUJqKcRvd1koERRIBOKm+/RL7cQy12GPi9bGnENwz66CPTfzltijZyYiKH/tDVakq WgKgdJZW8hHUuucpGc6gNyDrlC4XV+1209mBal3/Kl4fOTXEd96beoaxlFi7K5wnscJFqSsxAe6l9 +fAW3wELdgCXrf8fOxzUclkMRN9qK8a3ZSKn1bPWG2PPltBzszVkenRCPCfkHIjaYFP5FxZ+IuhN+ sxPF0Fn9SW0nqZszerqUVC22HfGO+a/AWFf6MzDTnE9NBXRReWxf0q/UpLIF9kbolLcbQJOKdXnz7 ChyugZ87zgHhPV9kxt5Q==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jEaKC-0004yE-KW; Wed, 18 Mar 2020 15:09:40 +0000 Received: from honk.sigxcpu.org ([24.134.29.49]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jEaJv-0004nh-Hv for linux-arm-kernel@lists.infradead.org; Wed, 18 Mar 2020 15:09:26 +0000 Received: from localhost (localhost [127.0.0.1]) by honk.sigxcpu.org (Postfix) with ESMTP id 0E6F7FB05; Wed, 18 Mar 2020 16:09:14 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at honk.sigxcpu.org Received: from honk.sigxcpu.org ([127.0.0.1]) by localhost (honk.sigxcpu.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1bdfLMJNkSUx; Wed, 18 Mar 2020 16:09:09 +0100 (CET) Received: by bogon.sigxcpu.org (Postfix, from userid 1000) id A5F0A412BE; Wed, 18 Mar 2020 16:09:08 +0100 (CET) From: =?UTF-8?q?Guido=20G=C3=BCnther?= To: David Airlie , Daniel Vetter , Rob Herring , Mark Rutland , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andrzej Hajda , Neil Armstrong , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Lee Jones , =?UTF-8?q?Guido=20G=C3=BCnther?= , dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Robert Chiras , Sam Ravnborg , Arnd Bergmann Subject: [PATCH v9 0/2] drm: bridge: Add NWL MIPI DSI host controller support Date: Wed, 18 Mar 2020 16:09:06 +0100 Message-Id: X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200318_080923_912013_ACC0961A X-CRM114-Status: GOOD ( 27.44 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org VGhpcyBhZGRzIGluaXRpYWwgc3VwcG9ydCBmb3IgdGhlIE5XTCBNSVBJIERTSSBIb3N0IGNvbnRy b2xsZXIgZm91bmQgb24gaS5NWDgKU29Dcy4KCkl0IGFkZHMgc3VwcG9ydCBmb3IgdGhlIGkuTVg4 TVEgYnV0IHRoZSBzYW1lIElQIGNvcmUgY2FuIGFsc28gYmUgZm91bmQgb24gZS5nLgppLk1YOFFY UC4gSSBhZGRlZCB0aGUgbmVjZXNzYXJ5IGhvb2tzIHRvIHN1cHBvcnQgb3RoZXIgaW14OCB2YXJp YW50cyBidXQgc2luY2UKSSBvbmx5IGhhdmUgaW14OG1xIGJvYXJkcyB0byB0ZXN0IEkgb21pdHRl ZCB0aGUgcGxhdGZvcm0gZGF0YSBmb3Igb3RoZXIgU29Dcy4KClRoZSBjb2RlIGlzIGJhc2VkIG9u IE5YUHMgQlNQIHNvIEkgYWRkZWQgUm9iZXJ0IENoaXJhcyBhcyBDby1hdXRob3JlZC1ieS4KClRo ZSBtb3N0IG5vdGFibGUgY2hhbmdlcyBvdmVyIHRoZSBCU1AgZHJpdmVyIGFyZQogLSBDYWxjdWxh dGUgSFMgbW9kZSB0aW1pbmcgZnJvbSBwaHlfY29uZmlndXJlX29wdHNfbWlwaV9kcGh5CiAtIFBl cmZvcm0gYWxsIGNsb2NrIHNldHVwIHZpYSBEVAogLSBNZXJnZSBud2wtaW14IGFuZCBud2wgZHJp dmVycwogLSBBZGQgQjAgc2lsaW9uIHJldmlzaW9uIHF1aXJrCiAtIGJlY29tZSBhIGJyaWRnZSBk cml2ZXIgdG8gaG9vayBpbnRvIG14c2ZiIC8gZGNzcwogICBpbXgtZGlzcGxheS1zdWJzeXN0ZW0g c28gaXQgbWFrZXMgc2Vuc2UgdG8gbWFrZSBpdCBkcml2ZSBhIGJyaWRnZSBmb3IgZHNpIGFzCiAg IHdlbGwpLgogLSBVc2UgcGFuZWxfYnJpZGdlIHRvIGF0dGFjaCB0aGUgcGFuZWwKIC0gVXNlIG11 bHRpcGxleCBmcmFtZXdvcmsgaW5zdGVhZCBvZiBhY2Nlc3Npbmcgc3lzY29uIGRpcmVjdGx5CgpU aGlzIGhhcyBiZWVuIHRlc3RlZCBvbiBhIExpYnJlbSA1IGRldmtpdCB1c2luZyBteHNmYiB3aXRo IFJvYmVydCdzIHBhdGNoZXNbMV0KYW5kIHRoZSBtYWlubGluZSByb2NrdGVjaC1qaDA1N24wMDkw MCBEU0kgcGFuZWwgZHJpdmVyIG9uIG5leHQtMjAyMDAyMjYgYW5kIG9uCnRoZSBMaWJyZW01IHdp dGggdGhlIGEgTWFudGl4IE1MQUYwNTdXRTUxLVggRFNJIHBhbmVsIGRyaXZlciAobm90IHlldCBt YWlubGluZSkKVGhlIERDU1MgKHN1Ym1pdHRlZCBmb3IgbWFpbmxpbmUgaW5jbHVzaW9uIG5vdyB0 b28pIGNhbiBhbHNvIGFjdCBhcyBpbnB1dApzb3VyY2UuCgpDaGFuZ2VzIGZyb20gdjk6Ci0gUGVy IHJldmlldyBjb21tZW50cyBieSBSb2JlcnQgQ2hpcmFzCiAgaHR0cHM6Ly9sb3JlLmtlcm5lbC5v cmcvZHJpLWRldmVsLzE1NzUzNjY1OTQuNjQyMy42MS5jYW1lbEBueHAuY29tLwogIC0gZG9uJ3Qg bWl4IERTSSBob3N0IGFuZCBicmlkZ2UgaW5pdGlhbGl6YXRpb24KICAtIG9ubHkgc2VsZWN0IG91 dHB1dCBzb3VyY2Ugb25jZQogIC0gZGVmZXIgcHJvYmUgd2hlbiBwYW5lbCBpcyBub3QgcmVhZHkg dG8gZml4IHVzYWdlIGFzIGEgbW9kdWxlCiAgLSB1c2UgY29ycmVjdCByZXNldCBzZXF1ZW5jZSBh cyBkZXNjcmliZWQgYnkgUm9iZXJ0CiAgICAoYW5kIHByb3ZpZGVkIGJ5IE5XTCkKICAtIHVzZSBt b2RlLT5jbG9jayBpbnN0ZWFkIG9mIG1vZGUtPmNydGNfY2xvY2sKLSBBZGQgdGVzdGVkIGJ5IGZy b20gTWFydGluIEtlcHBsaW5nZXIsIHRoYW5rcyEKLSBEcm9wIHBsYXRmb3JtIHNwZWNpZmljIGRh dGEgKGFzIHN1Z2dlc3RlZCBwcmV2aW91c2x5IGJ5IExhdXJlbnQgUGluY2hhcnQgYW5kCiAgQW5k cnplaiBIYWpkYSkgc2luY2UgaW14OHEqIG5lZWRzIGFub3RoZXIgc2V0IG9mIGFic3RyYWN0aW9u cyB3aXRoIHRoZSBuZXcKICByZXNldCBzZXF1ZW5jZSBhbmQgdGhhdCdzIGVhc2llciB0byBkbyB3 aGVuIGFkZGluZyBpbXg4cSogc3VwcG9ydCByYXRoZXIgdGhlbgogIGFkZGluZyB3cm9uZyBhYnN0 cmFjdGlvbiBub3cuCi0gVXBkYXRlIGJpbmRpbmdzIHRvIHVzZSBwcm9wZXIgY2xvY2sgYW5kIGly cSBuYW1lcyB0byBtYWtlIHRoZSBleGFtcGxlIG1hdGNoCiAgcmVhbGl0eSBtb3JlIGNsb3NlbHku Ci0gVXNlIGBmYWxsdGhyb3VnaDtgIGluc3RlYWQgb2YgLyogRmFsbCB0aHJvdWdoICovIGluIHN3 aXRjaCBzdGF0ZW1lbnRzCgpDaGFuZ2VzIGZyb20gdjg6Ci0gRHJvcCByZXNldCBxdWlyay4gSXQn cyBub3QgbmVlZGVkIHdpdGggbXhzZmIgYW5kIHNvbWV0aW1lcyB0cmlnZ2VycyBhIHNoaWZ0ZWQg ZGlzcGxheS4KCkNoYW5nZXMgZnJvbSB2NzoKLSBQZXIgcmV2aWV3IGNvbW1lbnRzIGJ5IEFuZHJ6 ZWogSGFqZGEKICBodHRwczovL2xvcmUua2VybmVsLm9yZy9saW51eC1hcm0ta2VybmVsL2M4NmI3 Y2EyLTc3OTktZWFmZC1jMzgwLWU0YjU1MTUyMDgzN0BzYW1zdW5nLmNvbS8KICAtIERyb3Agc3Bh cmUgZW1wdHkgbGluZQogIC0gaGFuZGxlIG53bF9kc2lfd3JpdGUgZXJyb3JzCiAgLSBiZXR0ZXIg aGFuZGxlIHJlYWQgZXJyb3JzCiAgLSB1bndpbmQgaW4gY2FzZSBvZiBlcnJvciBpbiBud2xfZHNp X2VuYWJsZQogIC0gdXNlIGJyaWRnZV90b19kc2koKSBpbnN0ZWFkIG9mIGFjY2Vzc2luZyBkcml2 ZXJfcHJpdmF0ZQogIC0gZG9uJ3QgbG9nIG9uIC1FUFJPQkVERUZFUiB3aGVuIGZldGhpbmcgdGhl IHJlc2V0IGNvbnRyb2xsZXIKICAtIHVzZSBlbmRwb2ludCBudW1iZXIgdG8gZGV0ZXJtaW5lIGlu cHV0Ci0gU3BvdHRlZCBieSBrYnVpbGQgdGVzdCByb2JvdCA8bGtwQGludGVsLmNvbT4KICBodHRw czovL2xvcmUua2VybmVsLm9yZy9saW51eC1hcm0ta2VybmVsLzIwMTkwOTIzMDY0NC5xZlNLYk5m OSUyNWxrcEBpbnRlbC5jb20vCiAgVXNlIHNpZ25lZCByZXR1cm4gdHlwZSBmb3IgbndsX2RzaV9n ZXRfZHBpX3BpeGVsX2Zvcm1hdAotIERyb3AgY29ubmVjdG9yIHR5cGUgZnJvbSBkcm1fcGFuZWxf YnJpZGdlX2FkZAotIERvbid0IGZvcmdldCB0byBzZXQgYW4gZXJyb3IgdmFsdWUgb24gZHNpIHJl YWRzCgpDaGFuZ2VzIGZyb20gdjU6Ci0gUGVyIHJldmlldyBjb21tZW50cyBieSBBbmRyemVqIEhh amRhCiAgaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIw MTktU2VwdGVtYmVyLzIzNTI4MS5odG1sCiAgLSBGaXggaW5jbHVkZSBmaWxlIG9yZGVyaW5nCiAg LSBBZGQgYSBjb21tZW50IHRvIG53bF9kc2lfcGxhdGZvcm1fZGF0YSB0aGF0IHdpbGwgYWxsb3cg dG8gYWRkIHN1cHBvcnQKICAgIGF0IGxlYXN0IGZvciB0aGUgaS5NWDhRTQogIC0gTWVyZ2UgZHJp dmVyIGludG8gYSBzaW5nbGUgZmlsZSBwbHVzIHRoZSByZWdpc3RlciBkZWZzIGluIGEgc2VwYXJh dGUgaGVhZGVyCi0gTWFrZSBtb3JlIGZ1bmN0aW9ucyBhbmQgc3RydWN0cyBzdGF0aWMKCkNoYW5n ZXMgZnJvbSB2NDoKLSBDb2xsZWN0IFJldmlld2VkLWJ5OiBmcm9tIFJvYiBIZXJyaW5nLCB0aGFu a3MhCiAgaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIw MTktU2VwdGVtYmVyLzIzMzk3OS5odG1sCi0gU3BvdHRlZCBieSBrYnVpbGQgdGVzdCByb2JvdCA8 bGtwQGludGVsLmNvbT4KICBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9k cmktZGV2ZWwvMjAxOS1TZXB0ZW1iZXIvMjMzODYwLmh0bWwKICBodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxOS1TZXB0ZW1iZXIvMjMzODYzLmh0bWwK ICAtIGZpeCBmb3JtYXQgc3RyaW5nIGZvciBzaXplX3QKICAtIFVzZSBESVY2NF9VNjRfUk9VTkRf VVAgdG8gZml4IGJ1aWxkIG9uIDMyIGJpdCBhcmNoaXRlY3R1cmVzCiAgICBXZSBjYW4ndCB1c2Ug c2ltcGxlIHNoaWZ0IHNpbmQgZCBhbmQgbiBhcmUgc2ltaWxhciBpbiBzaXplIGFuZAogICAgd2Ug bmVlZCBmdWxsIHByZWNpc2lvbgotIEZpeCBkZWJ1ZyBjZmdfdF9wb3N0IGRlYnVnIHByaW50IG91 dAotIEF2b2lkIFBTRUNfUEVSX1NFQwotIE1vdmUgdGltZW91dCAvIG92ZXJmbG93IGhhbmRsaW5n IG91dCBvZiBud2xfZHNpX2ZpbmlzaF90cmFuc21pc3Npb24sCiAgaXQgd291bGQgbmV2ZXIgZW5k IHVwIGJlaW5nIHJlcG9ydGVkIHNpbmNlIHRoZSBjYWxsIHRvIHRoZSBmdW5jdGlvbgogIHdhcyBn dWFyZGVkIGJ5IGZsYWdzLgotIERyb3AgJ3N1cHBvcnQgZm9yJyBmcm9tIEtDb25maWcgdGl0bGUg dG8gbWFrZSBpdCBtYXRjaCB0aGUgb3RoZXIKICBkcml2ZXJzIGluIHRoYXQgc3VibWVudQoKQ2hh bmdlcyBmcm9tIHYzOgotIFBlciByZXZpZXcgY29tbWVudHMgYnkgUm9iZXJ0IENoaXJhcwogIGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE5LUF1Z3Vz dC8yMzI1ODAuaHRtbAogIC0gQWRkIFJvYmVydCdzIHtTaWduZWQtb2ZmLFRlc3RlZH0tYnk6CiAg LSBSZXNwZWN0IG51bWJlciBvZiBsYW5lcyB3aGVuIGNhbGN1bHRpbmcgYmFuZHdpZHRoIGxpbWl0 cwogIC0gRHJvcCBkdXBsaWNhdGUgTldMX0RTSV9FTkFCTEVfTVVMVF9QS1RTIHNldHVwCi0gUGVy IHRlc3RpbmcgYnkgUm9iZXIgQ2hpcmFzCiAgaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv YXJjaGl2ZXMvZHJpLWRldmVsLzIwMTktQXVndXN0LzIzMzY4OC5odG1sCiAgLSBEcm9wIGR1cGxp Y2F0ZSAoYW5kIHRvbyBlYXJseSkgZHJtX2JyaWRnZV9hZGQoKSBpbiBud2xfZGlyX3Byb2JlKCkg dGhhdAogICAgbWFkZSBteHNmYiBmYWlsIHRvIGNvbm5lY3QgdG8gdGhlIGJyaWRnZSBzaW5jZSB0 aGUgcGFuZWxfYnJpZGdlIHdhcyBub3QgdXAKICAgIHlldC4gZHJtX2JyaWRnZV9hZGQoKSBoYXBw ZW5zIGluIG53bF9kc2lfaG9zdF9hdHRhY2goKSB3aGVyZSBhZnRlciB0aGUKICAgIHBhbmVsX2Jy aWRnZSB3YXMgc2V0IHVwLgotIFBlciByZXZpZXcgY29tbWVudHMgYnkgUm9iIEhlcnJpbmcgb24g YmluZGluZ3MKICBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2 ZWwvMjAxOS1BdWd1c3QvMjMzMTk2Lmh0bWwKICAtIGRyb3AgZGVzY3JpcHRpb24gZnJvbSBwb3dl ci1kb21haW5zIGFuZCByZXNldHMKICAtIGFsbG93IEJTRCAyIGNsYXVzZSBsaWNlbnNlIGFzIHdl bGwKICAtIG1ha2UgcG9ydHMgbW9yZSBzcGVjaWZpYwogIC0gYWRkICNhZGRyZXNzLWNlbGxzLCAj c2l6ZS1jZWxscyBhcyByZXF1aXJlZAogIC0gdXNlIGFkZGl0aW9uYWxQcm9wZXJ0aWVzCiAgLSBw YW5lbCBpcyBvZiB0eXBlIG9iamVjdAoKQ2hhbmdlcyBmcm9tIHYyOgotIFBlciByZXZpZXcgY29t bWVudHMgYnkgUm9iIEhlcnJpbmcKICBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNo aXZlcy9kcmktZGV2ZWwvMjAxOS1BdWd1c3QvMjMwNDQ4Lmh0bWwKICAtIGJpbmRpbmdzOgogICAg LSBTaW1wbGlmeSBieSByZXN0cmljdGluZyB0byBmc2wsaW14OG1xLW53bC1kc2kKICAgIC0gZG9j dW1lbnQgcmVzZXQgbGluZXMKICAgIC0gYWRkIHBvcnRAezAsMX0KICAgIC0gdXNlIGEgcmVhbCBj b21wYXRpYmxlIHN0cmluZyBmb3IgdGhlIHBhbmVsCiAgICAtIHJlc2V0cyBhcmUgcmVxdWlyZWQK LSBQZXIgcmV2aWV3IGNvbW1lbnRzIGJ5IEFybmQgQmVyZ21hbm4KICBodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxOS1BdWd1c3QvMjMwODY4Lmh0bWwK ICAtIERvbid0IGFjY2VzcyBpb211eGNfZ3ByIHJlZ3MgZGlyZWN0bHkuIFRoaXMgYWxsb3dzIHVz IHRvIGRyb3AgdGhlCiAgICBmaXJzdCBwYXRjaCBpbiB0aGUgc2VyaWVzIHdpdGggdGhlIGlvbXV4 Y19ncHIgZmllbGQgZGVmaW5lcy4KLSBQZXIgcmV2aWV3IGNvbW1lbnRzIGJ5IExhdXJlbnQgUGlu Y2hhcnQKICBGaXggd29yZGluZyBpbiBiaW5kaW5ncwotIEFkZCBtdXgtY29udHJvbHMgdG8gYmlu ZGluZ3MKLSBEb24ndCBwcmludCBlcnJvciBtZXNzYWdlIG9uIGRwaHkgcHJvYmUgZGVmZXJyYWwK CkNoYW5nZXMgZnJvbSB2MToKLSBQZXIgcmV2aWV3IGNvbW1lbnRzIGJ5IFNhbSBSYXZuYm9yZwog IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE5LUp1 bHkvMjI4MTMwLmh0bWwKICAtIENoYW5nZSBiaW5kaW5nIGRvY3MgdG8gWUFNTAogIC0gYnVpbGQ6 IERvbid0IGFsd2F5cyB2aXNpdCBpbXgtbndsLwogIC0gYnVpbGQ6IEFkZCBoZWFkZXItdGVzdC15 CiAgLSBTb3J0IGhlYWRlcnMgYWNjb3JkaW5nIHRvIERSTSBjb252ZW50aW9uCiAgLSBVc2UgZHJt X2Rpc3BsYXlfbW9kZSBpbnN0ZWFkIG9mIHZpZGVtb2RlCi0gUGVyIHJldmlldyBjb21tZW50cyBi eSBGYWJpbyBFc3RldmFtCiAgaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMv ZHJpLWRldmVsLzIwMTktSnVseS8yMjgyOTkuaHRtbAogIC0gRG9uJ3QgcmVzdHJpY3QgYnVpbGQg dG8gQVJDSF9NWEMKICAtIERyb3AgdW51c2VkIGluY2x1ZGVzCiAgLSBEcm9wIHVucmVhY2hhYmxl IGNvZGUgaW4gaW14X253bF9kc2lfYnJpZGdlX21vZGVfZml4dXAoKQogIC0gRHJvcCByZW1haW5p bmcgY2FsbHMgb2YgZGV2X2VycigpIGFuZCB1c2UgRFJNX0RFVl9FUlIoKQogICAgY29uc2lzdGVu dGx5LgogIC0gVXNlIGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZSgpCiAgLSBEcm9wIGRl dm1fZnJlZV9pcnEoKSBpbiBwcm9iZSgpIGVycm9yIHBhdGgKICAtIFVzZSBzaW5nbGUgbGluZSBj b21tZW50cyB3aGVyZSBzdWZmaWNpZW50CiAgLSBVc2UgPGxpbnV4L3RpbWU2NC5oPiBpbnN0ZWFk IG9mIGRlZmluaW5nIFVTRUNfUEVSX1NFQwogIC0gTWFrZSBpbnB1dCBzb3VyY2Ugc2VsZWN0IGlt eDggc3BlY2lmaWMKICAtIERyb3AgPGFzbS91bmFsaWduZWQuaD4gaW5jbHVzaW9uIChhZnRlciBy ZW1vdmFsIG9mIGdldF91bmFsaWduZWRfbGUzMikKICAtIERyb3AgYWxsIEVYUE9SVF9TWU1CT0xf R1BMKCkgZm9yIGZ1bmN0aW9ucyB1c2VkIGluIHRoZSBzYW1lIG1vZHVsZQogICAgYnV0IGRpZmZl cmVudCBzb3VyY2UgZmlsZXMuCiAgLSBEcm9wIG53bF9kc2lfZW5hYmxlX3tyeCx0eH1fY2xvY2so KSBieSBpbnZva2luZyBjbGtfcHJlcGFyZV9lbmFibGUoKQogICAgZGlyZWN0bHkKICAtIFJlbW92 ZSBwb2ludGxlc3MgY29tbWVudAotIExhdXJlbnQgUGluY2hhcnQKICBodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxOS1KdWx5LzIyODMxMy5odG1sCiAg aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIwMTktSnVs eS8yMjgzMDguaHRtbAogIC0gRHJvcCAob24gaU1YOE1RKSB1bnVzZWQgY3NyIHJlZ21hcAogIC0g VXNlIE5XTF9NQVhfUExBVEZPUk1fQ0xPQ0tTIGV2ZXJ5d2hlcmUKICAtIERyb3AgZ2V0X3VuYWxp Z25lZF9sZTMyKCkgdXNhZ2UKICAtIHJlbW92ZSBkdXBsaWNhdGUgJ2ZvciB0aGUnIGluIGJpbmRp bmcgZG9jcwogIC0gRG9uJ3QgaW5jbHVkZSB1bnVzZWQgPGxpbnV4L2Nsay1wcm92aWRlci5oPgog IC0gRG9uJ3QgaW5jbHVkZSB1bnVzZWQgPGxpbnV4L2NvbXBvbmVudC5oPgogIC0gRHJvcCBkcG1z X21vZGUgZm9yIHRyYWNraW5nIHN0YXRlLCB0cnVzdCB0aGUgZHJtIGxheWVyIG9uIHRoYXQKICAt IFVzZSBwbV9ydW50aW1lX3B1dCgpIGluc3RlYWQgb2YgcG1fcnVudGltZV9wdXRfc3luYygpCiAg LSBEb24ndCBvdmVyd3JpdGUgZW5jb2RlciB0eXBlCiAgLSBNYWtlIGlteF9ud2xfcGxhdGZvcm1f ZGF0YSBjb25zdAogIC0gVXNlIHRoZSByZXNldCBjb250cm9sbGVyIEFQSSBpbnN0ZWFkIG9mIG9w ZW4gY29kaW5nIHRoYXQgcGxhdGZvcm0gc3BlY2lmaWMKICAgIHBhcnQKICAtIFVzZSA8bGludXgv Yml0ZmllbGQuaD4gaW50ZWFkIG9mIG1ha2luZyB1cCBvdXIgb3duIGRlZmluZXMKICAtIG5hbWUg bWlwaV9kc2lfdHJhbnNmZXIgbGVzcyBnZW5lcmljOiBud2xfZHNpX3RyYW5zZmVyCiAgLSBlbnN1 cmUgY2xlYW4gaW4gLnJlbW92ZSBieSBjYWxsaW5nIG1pcGlfZHNpX2hvc3RfdW5yZWdpc3Rlci4K ICAtIHByZWZpeCBjb25zdGFudHMgYnkgTldMX0RTSV8KICAtIHByb3Blcmx5IGZvcm1hdCB0cmFu c2Zlcl9kaXJlY3Rpb24gZW51bQogIC0gc2ltcGxpZnkgcGxhdGZvcm0gY2xvY2sgaGFuZGxpbmcK ICAtIERvbid0IG1vZGlmeSBzdGF0ZSBpbiBtb2RlX2ZpeHVwKCkgYW5kIHVzZSBtb2RlX3NldCgp IGluc3RlYWQKICAtIERyb3AgYnJpZGdlIGRldGFjaCgpLCBhbHJlYWR5IGhhbmRsZSBieSBud2xf ZHNpX2hvc3RfZGV0YWNoKCkKICAtIERyb3AgVVNFXypfUVVJUksoKSBtYWNyb3MKLSBEcm9wIChm b3Igbm93KSB1bnVzZWQgY2xvY2sgZGVmbml0aW9ucy4gJ3BpeGVsJyBhbmQgJ2J5cGFzcycgY2xv Y2sgd2lsbCBiZQogIHVzZWQgZm9yIGkuTVg4IFNvQ3MgYnV0IHNpbmNlIHRoZXkncmUgdW51c2Vk IGF0bSBkcm9wIHRoZSBkZWZpbml0aW9ucyAtIGJ1dAogIGtlZXAgdGhlIGxvZ2ljIHRvIGVuYWJs ZS9kaXNhYmxlIHNldmVyYWwgY2xvY2tzIGluIHBsYWNlIHNpbmNlIHdlIGtub3cgd2UnbGwKICBu ZWVkIGl0IGluIHRoZSBmdXR1cmUuCgpDaGFuZ2VzIGZyb20gdjA6Ci0gQWRkIHF1aXJrIGZvciBJ TVE4TVEgc2lsaWNvbiBCMCByZXZpc2lvbiB0byBub3QgbWVzcyB3aXRoIHRoZQogIHN5c3RlbSBy ZXNldCBjb250cm9sbGVyIG9uIHBvd2VyIGRvd24gc2luY2UgZW5hYmxlKCkgd29uJ3Qgd29yawog IG90aGVyd2lzZS4KLSBEcm9wIGRldm1fZnJlZV9pcnEoKSBoYW5kbGVkIGJ5IHRoZSBkZXZpY2Ug ZHJpdmVyIGNvcmUKLSBEaXNhYmxlIHR4IGVzYyBjbG9jayBhZnRlciB0aGUgcGh5IHBvd2VyIGRv d24gdG8gdW5icmVhawogIGRpc2FibGUvZW5hYmxlICh1bmJsYW5rL2JsYW5rKQotIEFkZCBwb3J0 cyB0byBkdCBiaW5kaW5nIGRvY3MKLSBTZWxlY3QgR0VORVJJQ19QSFlfTUlQSV9EUEhZIGluc3Rl YWQgb2YgR0VORVJJQ19QSFkgZm9yCiAgcGh5X21pcGlfZHBoeV9nZXRfZGVmYXVsdF9jb25maWcK LSBTZWxlY3QgRFJNX01JUElfRFNJCi0gSW5jbHVkZSBkcm1fcHJpbnQuaCB0byBmaXggYnVpbGQg b24gbmV4dC0yMDE5MDQwOAotIERyb3Agc29tZSBkZWJ1Z2dpbmcgbWVzc2FnZXMKLSBOZXdsaW5l IHRlcm1pbmF0ZSBhbGwgRFJNXyBwcmludG91dHMKLSBUdXJuIGNvbXBvbmVudCBkcml2ZXIgaW50 byBhIGRybSBicmlkZ2UKClswXTogaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2 ZXMvZHJpLWRldmVsLzIwMTktTWF5LzIxOTQ4NC5odG1sClsxXTogaHR0cHM6Ly9wYXRjaHdvcmsu ZnJlZWRlc2t0b3Aub3JnL3Nlcmllcy82MjgyMi8KCkd1aWRvIEfDvG50aGVyICgyKToKICBkdC1i aW5kaW5nczogZGlzcGxheS9icmlkZ2U6IEFkZCBiaW5kaW5nIGZvciBOV0wgbWlwaSBkc2kgaG9z dAogICAgY29udHJvbGxlcgogIGRybS9icmlkZ2U6IEFkZCBOV0wgTUlQSSBEU0kgaG9zdCBjb250 cm9sbGVyIHN1cHBvcnQKCiAuLi4vYmluZGluZ3MvZGlzcGxheS9icmlkZ2UvbndsLWRzaS55YW1s ICAgICAgfCAgMjE2ICsrKwogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnICAgICAgICAg ICAgICAgIHwgICAxNiArCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL01ha2VmaWxlICAgICAgICAg ICAgICAgfCAgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvbndsLWRzaS5jICAgICAgICAg ICAgICB8IDEyMTMgKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvbnds LWRzaS5oICAgICAgICAgICAgICB8ICAxNDQgKysKIDUgZmlsZXMgY2hhbmdlZCwgMTU5MiBpbnNl cnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2Jp bmRpbmdzL2Rpc3BsYXkvYnJpZGdlL253bC1kc2kueWFtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS9icmlkZ2UvbndsLWRzaS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9ud2wtZHNpLmgKCi0tIAoyLjIzLjAKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcg bGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg== 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 X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 138C2C5ACD8 for ; Wed, 18 Mar 2020 15:09:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id DECB720757 for ; Wed, 18 Mar 2020 15:09:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727308AbgCRPJT (ORCPT ); Wed, 18 Mar 2020 11:09:19 -0400 Received: from honk.sigxcpu.org ([24.134.29.49]:33784 "EHLO honk.sigxcpu.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727291AbgCRPJT (ORCPT ); Wed, 18 Mar 2020 11:09:19 -0400 Received: from localhost (localhost [127.0.0.1]) by honk.sigxcpu.org (Postfix) with ESMTP id 0E6F7FB05; Wed, 18 Mar 2020 16:09:14 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at honk.sigxcpu.org Received: from honk.sigxcpu.org ([127.0.0.1]) by localhost (honk.sigxcpu.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1bdfLMJNkSUx; Wed, 18 Mar 2020 16:09:09 +0100 (CET) Received: by bogon.sigxcpu.org (Postfix, from userid 1000) id A5F0A412BE; Wed, 18 Mar 2020 16:09:08 +0100 (CET) From: =?UTF-8?q?Guido=20G=C3=BCnther?= To: David Airlie , Daniel Vetter , Rob Herring , Mark Rutland , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andrzej Hajda , Neil Armstrong , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Lee Jones , =?UTF-8?q?Guido=20G=C3=BCnther?= , dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Robert Chiras , Sam Ravnborg , Arnd Bergmann Subject: [PATCH v9 0/2] drm: bridge: Add NWL MIPI DSI host controller support Date: Wed, 18 Mar 2020 16:09:06 +0100 Message-Id: X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org This adds initial support for the NWL MIPI DSI Host controller found on i.MX8 SoCs. It adds support for the i.MX8MQ but the same IP core can also be found on e.g. i.MX8QXP. I added the necessary hooks to support other imx8 variants but since I only have imx8mq boards to test I omitted the platform data for other SoCs. The code is based on NXPs BSP so I added Robert Chiras as Co-authored-by. The most notable changes over the BSP driver are - Calculate HS mode timing from phy_configure_opts_mipi_dphy - Perform all clock setup via DT - Merge nwl-imx and nwl drivers - Add B0 silion revision quirk - become a bridge driver to hook into mxsfb / dcss imx-display-subsystem so it makes sense to make it drive a bridge for dsi as well). - Use panel_bridge to attach the panel - Use multiplex framework instead of accessing syscon directly This has been tested on a Librem 5 devkit using mxsfb with Robert's patches[1] and the mainline rocktech-jh057n00900 DSI panel driver on next-20200226 and on the Librem5 with the a Mantix MLAF057WE51-X DSI panel driver (not yet mainline) The DCSS (submitted for mainline inclusion now too) can also act as input source. Changes from v9: - Per review comments by Robert Chiras https://lore.kernel.org/dri-devel/1575366594.6423.61.camel@nxp.com/ - don't mix DSI host and bridge initialization - only select output source once - defer probe when panel is not ready to fix usage as a module - use correct reset sequence as described by Robert (and provided by NWL) - use mode->clock instead of mode->crtc_clock - Add tested by from Martin Kepplinger, thanks! - Drop platform specific data (as suggested previously by Laurent Pinchart and Andrzej Hajda) since imx8q* needs another set of abstractions with the new reset sequence and that's easier to do when adding imx8q* support rather then adding wrong abstraction now. - Update bindings to use proper clock and irq names to make the example match reality more closely. - Use `fallthrough;` instead of /* Fall through */ in switch statements Changes from v8: - Drop reset quirk. It's not needed with mxsfb and sometimes triggers a shifted display. Changes from v7: - Per review comments by Andrzej Hajda https://lore.kernel.org/linux-arm-kernel/c86b7ca2-7799-eafd-c380-e4b551520837@samsung.com/ - Drop spare empty line - handle nwl_dsi_write errors - better handle read errors - unwind in case of error in nwl_dsi_enable - use bridge_to_dsi() instead of accessing driver_private - don't log on -EPROBEDEFER when fething the reset controller - use endpoint number to determine input - Spotted by kbuild test robot https://lore.kernel.org/linux-arm-kernel/201909230644.qfSKbNf9%25lkp@intel.com/ Use signed return type for nwl_dsi_get_dpi_pixel_format - Drop connector type from drm_panel_bridge_add - Don't forget to set an error value on dsi reads Changes from v5: - Per review comments by Andrzej Hajda https://lists.freedesktop.org/archives/dri-devel/2019-September/235281.html - Fix include file ordering - Add a comment to nwl_dsi_platform_data that will allow to add support at least for the i.MX8QM - Merge driver into a single file plus the register defs in a separate header - Make more functions and structs static Changes from v4: - Collect Reviewed-by: from Rob Herring, thanks! https://lists.freedesktop.org/archives/dri-devel/2019-September/233979.html - Spotted by kbuild test robot https://lists.freedesktop.org/archives/dri-devel/2019-September/233860.html https://lists.freedesktop.org/archives/dri-devel/2019-September/233863.html - fix format string for size_t - Use DIV64_U64_ROUND_UP to fix build on 32 bit architectures We can't use simple shift sind d and n are similar in size and we need full precision - Fix debug cfg_t_post debug print out - Avoid PSEC_PER_SEC - Move timeout / overflow handling out of nwl_dsi_finish_transmission, it would never end up being reported since the call to the function was guarded by flags. - Drop 'support for' from KConfig title to make it match the other drivers in that submenu Changes from v3: - Per review comments by Robert Chiras https://lists.freedesktop.org/archives/dri-devel/2019-August/232580.html - Add Robert's {Signed-off,Tested}-by: - Respect number of lanes when calculting bandwidth limits - Drop duplicate NWL_DSI_ENABLE_MULT_PKTS setup - Per testing by Rober Chiras https://lists.freedesktop.org/archives/dri-devel/2019-August/233688.html - Drop duplicate (and too early) drm_bridge_add() in nwl_dir_probe() that made mxsfb fail to connect to the bridge since the panel_bridge was not up yet. drm_bridge_add() happens in nwl_dsi_host_attach() where after the panel_bridge was set up. - Per review comments by Rob Herring on bindings https://lists.freedesktop.org/archives/dri-devel/2019-August/233196.html - drop description from power-domains and resets - allow BSD 2 clause license as well - make ports more specific - add #address-cells, #size-cells as required - use additionalProperties - panel is of type object Changes from v2: - Per review comments by Rob Herring https://lists.freedesktop.org/archives/dri-devel/2019-August/230448.html - bindings: - Simplify by restricting to fsl,imx8mq-nwl-dsi - document reset lines - add port@{0,1} - use a real compatible string for the panel - resets are required - Per review comments by Arnd Bergmann https://lists.freedesktop.org/archives/dri-devel/2019-August/230868.html - Don't access iomuxc_gpr regs directly. This allows us to drop the first patch in the series with the iomuxc_gpr field defines. - Per review comments by Laurent Pinchart Fix wording in bindings - Add mux-controls to bindings - Don't print error message on dphy probe deferral Changes from v1: - Per review comments by Sam Ravnborg https://lists.freedesktop.org/archives/dri-devel/2019-July/228130.html - Change binding docs to YAML - build: Don't always visit imx-nwl/ - build: Add header-test-y - Sort headers according to DRM convention - Use drm_display_mode instead of videmode - Per review comments by Fabio Estevam https://lists.freedesktop.org/archives/dri-devel/2019-July/228299.html - Don't restrict build to ARCH_MXC - Drop unused includes - Drop unreachable code in imx_nwl_dsi_bridge_mode_fixup() - Drop remaining calls of dev_err() and use DRM_DEV_ERR() consistently. - Use devm_platform_ioremap_resource() - Drop devm_free_irq() in probe() error path - Use single line comments where sufficient - Use instead of defining USEC_PER_SEC - Make input source select imx8 specific - Drop inclusion (after removal of get_unaligned_le32) - Drop all EXPORT_SYMBOL_GPL() for functions used in the same module but different source files. - Drop nwl_dsi_enable_{rx,tx}_clock() by invoking clk_prepare_enable() directly - Remove pointless comment - Laurent Pinchart https://lists.freedesktop.org/archives/dri-devel/2019-July/228313.html https://lists.freedesktop.org/archives/dri-devel/2019-July/228308.html - Drop (on iMX8MQ) unused csr regmap - Use NWL_MAX_PLATFORM_CLOCKS everywhere - Drop get_unaligned_le32() usage - remove duplicate 'for the' in binding docs - Don't include unused - Don't include unused - Drop dpms_mode for tracking state, trust the drm layer on that - Use pm_runtime_put() instead of pm_runtime_put_sync() - Don't overwrite encoder type - Make imx_nwl_platform_data const - Use the reset controller API instead of open coding that platform specific part - Use intead of making up our own defines - name mipi_dsi_transfer less generic: nwl_dsi_transfer - ensure clean in .remove by calling mipi_dsi_host_unregister. - prefix constants by NWL_DSI_ - properly format transfer_direction enum - simplify platform clock handling - Don't modify state in mode_fixup() and use mode_set() instead - Drop bridge detach(), already handle by nwl_dsi_host_detach() - Drop USE_*_QUIRK() macros - Drop (for now) unused clock defnitions. 'pixel' and 'bypass' clock will be used for i.MX8 SoCs but since they're unused atm drop the definitions - but keep the logic to enable/disable several clocks in place since we know we'll need it in the future. Changes from v0: - Add quirk for IMQ8MQ silicon B0 revision to not mess with the system reset controller on power down since enable() won't work otherwise. - Drop devm_free_irq() handled by the device driver core - Disable tx esc clock after the phy power down to unbreak disable/enable (unblank/blank) - Add ports to dt binding docs - Select GENERIC_PHY_MIPI_DPHY instead of GENERIC_PHY for phy_mipi_dphy_get_default_config - Select DRM_MIPI_DSI - Include drm_print.h to fix build on next-20190408 - Drop some debugging messages - Newline terminate all DRM_ printouts - Turn component driver into a drm bridge [0]: https://lists.freedesktop.org/archives/dri-devel/2019-May/219484.html [1]: https://patchwork.freedesktop.org/series/62822/ Guido Günther (2): dt-bindings: display/bridge: Add binding for NWL mipi dsi host controller drm/bridge: Add NWL MIPI DSI host controller support .../bindings/display/bridge/nwl-dsi.yaml | 216 +++ drivers/gpu/drm/bridge/Kconfig | 16 + drivers/gpu/drm/bridge/Makefile | 3 + drivers/gpu/drm/bridge/nwl-dsi.c | 1213 +++++++++++++++++ drivers/gpu/drm/bridge/nwl-dsi.h | 144 ++ 5 files changed, 1592 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/bridge/nwl-dsi.yaml create mode 100644 drivers/gpu/drm/bridge/nwl-dsi.c create mode 100644 drivers/gpu/drm/bridge/nwl-dsi.h -- 2.23.0 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 X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EF5E7C10DCE for ; Wed, 18 Mar 2020 15:09:20 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id CF4F620757 for ; Wed, 18 Mar 2020 15:09:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CF4F620757 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=sigxcpu.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1A98E6E8AB; Wed, 18 Mar 2020 15:09:20 +0000 (UTC) Received: from honk.sigxcpu.org (honk.sigxcpu.org [24.134.29.49]) by gabe.freedesktop.org (Postfix) with ESMTPS id CAD1E6E2A3 for ; Wed, 18 Mar 2020 15:09:18 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by honk.sigxcpu.org (Postfix) with ESMTP id 0E6F7FB05; Wed, 18 Mar 2020 16:09:14 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at honk.sigxcpu.org Received: from honk.sigxcpu.org ([127.0.0.1]) by localhost (honk.sigxcpu.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1bdfLMJNkSUx; Wed, 18 Mar 2020 16:09:09 +0100 (CET) Received: by bogon.sigxcpu.org (Postfix, from userid 1000) id A5F0A412BE; Wed, 18 Mar 2020 16:09:08 +0100 (CET) From: =?UTF-8?q?Guido=20G=C3=BCnther?= To: David Airlie , Daniel Vetter , Rob Herring , Mark Rutland , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andrzej Hajda , Neil Armstrong , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Lee Jones , =?UTF-8?q?Guido=20G=C3=BCnther?= , dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Robert Chiras , Sam Ravnborg , Arnd Bergmann Subject: [PATCH v9 0/2] drm: bridge: Add NWL MIPI DSI host controller support Date: Wed, 18 Mar 2020 16:09:06 +0100 Message-Id: X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 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: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" VGhpcyBhZGRzIGluaXRpYWwgc3VwcG9ydCBmb3IgdGhlIE5XTCBNSVBJIERTSSBIb3N0IGNvbnRy b2xsZXIgZm91bmQgb24gaS5NWDgKU29Dcy4KCkl0IGFkZHMgc3VwcG9ydCBmb3IgdGhlIGkuTVg4 TVEgYnV0IHRoZSBzYW1lIElQIGNvcmUgY2FuIGFsc28gYmUgZm91bmQgb24gZS5nLgppLk1YOFFY UC4gSSBhZGRlZCB0aGUgbmVjZXNzYXJ5IGhvb2tzIHRvIHN1cHBvcnQgb3RoZXIgaW14OCB2YXJp YW50cyBidXQgc2luY2UKSSBvbmx5IGhhdmUgaW14OG1xIGJvYXJkcyB0byB0ZXN0IEkgb21pdHRl ZCB0aGUgcGxhdGZvcm0gZGF0YSBmb3Igb3RoZXIgU29Dcy4KClRoZSBjb2RlIGlzIGJhc2VkIG9u IE5YUHMgQlNQIHNvIEkgYWRkZWQgUm9iZXJ0IENoaXJhcyBhcyBDby1hdXRob3JlZC1ieS4KClRo ZSBtb3N0IG5vdGFibGUgY2hhbmdlcyBvdmVyIHRoZSBCU1AgZHJpdmVyIGFyZQogLSBDYWxjdWxh dGUgSFMgbW9kZSB0aW1pbmcgZnJvbSBwaHlfY29uZmlndXJlX29wdHNfbWlwaV9kcGh5CiAtIFBl cmZvcm0gYWxsIGNsb2NrIHNldHVwIHZpYSBEVAogLSBNZXJnZSBud2wtaW14IGFuZCBud2wgZHJp dmVycwogLSBBZGQgQjAgc2lsaW9uIHJldmlzaW9uIHF1aXJrCiAtIGJlY29tZSBhIGJyaWRnZSBk cml2ZXIgdG8gaG9vayBpbnRvIG14c2ZiIC8gZGNzcwogICBpbXgtZGlzcGxheS1zdWJzeXN0ZW0g c28gaXQgbWFrZXMgc2Vuc2UgdG8gbWFrZSBpdCBkcml2ZSBhIGJyaWRnZSBmb3IgZHNpIGFzCiAg IHdlbGwpLgogLSBVc2UgcGFuZWxfYnJpZGdlIHRvIGF0dGFjaCB0aGUgcGFuZWwKIC0gVXNlIG11 bHRpcGxleCBmcmFtZXdvcmsgaW5zdGVhZCBvZiBhY2Nlc3Npbmcgc3lzY29uIGRpcmVjdGx5CgpU aGlzIGhhcyBiZWVuIHRlc3RlZCBvbiBhIExpYnJlbSA1IGRldmtpdCB1c2luZyBteHNmYiB3aXRo IFJvYmVydCdzIHBhdGNoZXNbMV0KYW5kIHRoZSBtYWlubGluZSByb2NrdGVjaC1qaDA1N24wMDkw MCBEU0kgcGFuZWwgZHJpdmVyIG9uIG5leHQtMjAyMDAyMjYgYW5kIG9uCnRoZSBMaWJyZW01IHdp dGggdGhlIGEgTWFudGl4IE1MQUYwNTdXRTUxLVggRFNJIHBhbmVsIGRyaXZlciAobm90IHlldCBt YWlubGluZSkKVGhlIERDU1MgKHN1Ym1pdHRlZCBmb3IgbWFpbmxpbmUgaW5jbHVzaW9uIG5vdyB0 b28pIGNhbiBhbHNvIGFjdCBhcyBpbnB1dApzb3VyY2UuCgpDaGFuZ2VzIGZyb20gdjk6Ci0gUGVy IHJldmlldyBjb21tZW50cyBieSBSb2JlcnQgQ2hpcmFzCiAgaHR0cHM6Ly9sb3JlLmtlcm5lbC5v cmcvZHJpLWRldmVsLzE1NzUzNjY1OTQuNjQyMy42MS5jYW1lbEBueHAuY29tLwogIC0gZG9uJ3Qg bWl4IERTSSBob3N0IGFuZCBicmlkZ2UgaW5pdGlhbGl6YXRpb24KICAtIG9ubHkgc2VsZWN0IG91 dHB1dCBzb3VyY2Ugb25jZQogIC0gZGVmZXIgcHJvYmUgd2hlbiBwYW5lbCBpcyBub3QgcmVhZHkg dG8gZml4IHVzYWdlIGFzIGEgbW9kdWxlCiAgLSB1c2UgY29ycmVjdCByZXNldCBzZXF1ZW5jZSBh cyBkZXNjcmliZWQgYnkgUm9iZXJ0CiAgICAoYW5kIHByb3ZpZGVkIGJ5IE5XTCkKICAtIHVzZSBt b2RlLT5jbG9jayBpbnN0ZWFkIG9mIG1vZGUtPmNydGNfY2xvY2sKLSBBZGQgdGVzdGVkIGJ5IGZy b20gTWFydGluIEtlcHBsaW5nZXIsIHRoYW5rcyEKLSBEcm9wIHBsYXRmb3JtIHNwZWNpZmljIGRh dGEgKGFzIHN1Z2dlc3RlZCBwcmV2aW91c2x5IGJ5IExhdXJlbnQgUGluY2hhcnQgYW5kCiAgQW5k cnplaiBIYWpkYSkgc2luY2UgaW14OHEqIG5lZWRzIGFub3RoZXIgc2V0IG9mIGFic3RyYWN0aW9u cyB3aXRoIHRoZSBuZXcKICByZXNldCBzZXF1ZW5jZSBhbmQgdGhhdCdzIGVhc2llciB0byBkbyB3 aGVuIGFkZGluZyBpbXg4cSogc3VwcG9ydCByYXRoZXIgdGhlbgogIGFkZGluZyB3cm9uZyBhYnN0 cmFjdGlvbiBub3cuCi0gVXBkYXRlIGJpbmRpbmdzIHRvIHVzZSBwcm9wZXIgY2xvY2sgYW5kIGly cSBuYW1lcyB0byBtYWtlIHRoZSBleGFtcGxlIG1hdGNoCiAgcmVhbGl0eSBtb3JlIGNsb3NlbHku Ci0gVXNlIGBmYWxsdGhyb3VnaDtgIGluc3RlYWQgb2YgLyogRmFsbCB0aHJvdWdoICovIGluIHN3 aXRjaCBzdGF0ZW1lbnRzCgpDaGFuZ2VzIGZyb20gdjg6Ci0gRHJvcCByZXNldCBxdWlyay4gSXQn cyBub3QgbmVlZGVkIHdpdGggbXhzZmIgYW5kIHNvbWV0aW1lcyB0cmlnZ2VycyBhIHNoaWZ0ZWQg ZGlzcGxheS4KCkNoYW5nZXMgZnJvbSB2NzoKLSBQZXIgcmV2aWV3IGNvbW1lbnRzIGJ5IEFuZHJ6 ZWogSGFqZGEKICBodHRwczovL2xvcmUua2VybmVsLm9yZy9saW51eC1hcm0ta2VybmVsL2M4NmI3 Y2EyLTc3OTktZWFmZC1jMzgwLWU0YjU1MTUyMDgzN0BzYW1zdW5nLmNvbS8KICAtIERyb3Agc3Bh cmUgZW1wdHkgbGluZQogIC0gaGFuZGxlIG53bF9kc2lfd3JpdGUgZXJyb3JzCiAgLSBiZXR0ZXIg aGFuZGxlIHJlYWQgZXJyb3JzCiAgLSB1bndpbmQgaW4gY2FzZSBvZiBlcnJvciBpbiBud2xfZHNp X2VuYWJsZQogIC0gdXNlIGJyaWRnZV90b19kc2koKSBpbnN0ZWFkIG9mIGFjY2Vzc2luZyBkcml2 ZXJfcHJpdmF0ZQogIC0gZG9uJ3QgbG9nIG9uIC1FUFJPQkVERUZFUiB3aGVuIGZldGhpbmcgdGhl IHJlc2V0IGNvbnRyb2xsZXIKICAtIHVzZSBlbmRwb2ludCBudW1iZXIgdG8gZGV0ZXJtaW5lIGlu cHV0Ci0gU3BvdHRlZCBieSBrYnVpbGQgdGVzdCByb2JvdCA8bGtwQGludGVsLmNvbT4KICBodHRw czovL2xvcmUua2VybmVsLm9yZy9saW51eC1hcm0ta2VybmVsLzIwMTkwOTIzMDY0NC5xZlNLYk5m OSUyNWxrcEBpbnRlbC5jb20vCiAgVXNlIHNpZ25lZCByZXR1cm4gdHlwZSBmb3IgbndsX2RzaV9n ZXRfZHBpX3BpeGVsX2Zvcm1hdAotIERyb3AgY29ubmVjdG9yIHR5cGUgZnJvbSBkcm1fcGFuZWxf YnJpZGdlX2FkZAotIERvbid0IGZvcmdldCB0byBzZXQgYW4gZXJyb3IgdmFsdWUgb24gZHNpIHJl YWRzCgpDaGFuZ2VzIGZyb20gdjU6Ci0gUGVyIHJldmlldyBjb21tZW50cyBieSBBbmRyemVqIEhh amRhCiAgaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIw MTktU2VwdGVtYmVyLzIzNTI4MS5odG1sCiAgLSBGaXggaW5jbHVkZSBmaWxlIG9yZGVyaW5nCiAg LSBBZGQgYSBjb21tZW50IHRvIG53bF9kc2lfcGxhdGZvcm1fZGF0YSB0aGF0IHdpbGwgYWxsb3cg dG8gYWRkIHN1cHBvcnQKICAgIGF0IGxlYXN0IGZvciB0aGUgaS5NWDhRTQogIC0gTWVyZ2UgZHJp dmVyIGludG8gYSBzaW5nbGUgZmlsZSBwbHVzIHRoZSByZWdpc3RlciBkZWZzIGluIGEgc2VwYXJh dGUgaGVhZGVyCi0gTWFrZSBtb3JlIGZ1bmN0aW9ucyBhbmQgc3RydWN0cyBzdGF0aWMKCkNoYW5n ZXMgZnJvbSB2NDoKLSBDb2xsZWN0IFJldmlld2VkLWJ5OiBmcm9tIFJvYiBIZXJyaW5nLCB0aGFu a3MhCiAgaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIw MTktU2VwdGVtYmVyLzIzMzk3OS5odG1sCi0gU3BvdHRlZCBieSBrYnVpbGQgdGVzdCByb2JvdCA8 bGtwQGludGVsLmNvbT4KICBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9k cmktZGV2ZWwvMjAxOS1TZXB0ZW1iZXIvMjMzODYwLmh0bWwKICBodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxOS1TZXB0ZW1iZXIvMjMzODYzLmh0bWwK ICAtIGZpeCBmb3JtYXQgc3RyaW5nIGZvciBzaXplX3QKICAtIFVzZSBESVY2NF9VNjRfUk9VTkRf VVAgdG8gZml4IGJ1aWxkIG9uIDMyIGJpdCBhcmNoaXRlY3R1cmVzCiAgICBXZSBjYW4ndCB1c2Ug c2ltcGxlIHNoaWZ0IHNpbmQgZCBhbmQgbiBhcmUgc2ltaWxhciBpbiBzaXplIGFuZAogICAgd2Ug bmVlZCBmdWxsIHByZWNpc2lvbgotIEZpeCBkZWJ1ZyBjZmdfdF9wb3N0IGRlYnVnIHByaW50IG91 dAotIEF2b2lkIFBTRUNfUEVSX1NFQwotIE1vdmUgdGltZW91dCAvIG92ZXJmbG93IGhhbmRsaW5n IG91dCBvZiBud2xfZHNpX2ZpbmlzaF90cmFuc21pc3Npb24sCiAgaXQgd291bGQgbmV2ZXIgZW5k IHVwIGJlaW5nIHJlcG9ydGVkIHNpbmNlIHRoZSBjYWxsIHRvIHRoZSBmdW5jdGlvbgogIHdhcyBn dWFyZGVkIGJ5IGZsYWdzLgotIERyb3AgJ3N1cHBvcnQgZm9yJyBmcm9tIEtDb25maWcgdGl0bGUg dG8gbWFrZSBpdCBtYXRjaCB0aGUgb3RoZXIKICBkcml2ZXJzIGluIHRoYXQgc3VibWVudQoKQ2hh bmdlcyBmcm9tIHYzOgotIFBlciByZXZpZXcgY29tbWVudHMgYnkgUm9iZXJ0IENoaXJhcwogIGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE5LUF1Z3Vz dC8yMzI1ODAuaHRtbAogIC0gQWRkIFJvYmVydCdzIHtTaWduZWQtb2ZmLFRlc3RlZH0tYnk6CiAg LSBSZXNwZWN0IG51bWJlciBvZiBsYW5lcyB3aGVuIGNhbGN1bHRpbmcgYmFuZHdpZHRoIGxpbWl0 cwogIC0gRHJvcCBkdXBsaWNhdGUgTldMX0RTSV9FTkFCTEVfTVVMVF9QS1RTIHNldHVwCi0gUGVy IHRlc3RpbmcgYnkgUm9iZXIgQ2hpcmFzCiAgaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv YXJjaGl2ZXMvZHJpLWRldmVsLzIwMTktQXVndXN0LzIzMzY4OC5odG1sCiAgLSBEcm9wIGR1cGxp Y2F0ZSAoYW5kIHRvbyBlYXJseSkgZHJtX2JyaWRnZV9hZGQoKSBpbiBud2xfZGlyX3Byb2JlKCkg dGhhdAogICAgbWFkZSBteHNmYiBmYWlsIHRvIGNvbm5lY3QgdG8gdGhlIGJyaWRnZSBzaW5jZSB0 aGUgcGFuZWxfYnJpZGdlIHdhcyBub3QgdXAKICAgIHlldC4gZHJtX2JyaWRnZV9hZGQoKSBoYXBw ZW5zIGluIG53bF9kc2lfaG9zdF9hdHRhY2goKSB3aGVyZSBhZnRlciB0aGUKICAgIHBhbmVsX2Jy aWRnZSB3YXMgc2V0IHVwLgotIFBlciByZXZpZXcgY29tbWVudHMgYnkgUm9iIEhlcnJpbmcgb24g YmluZGluZ3MKICBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2 ZWwvMjAxOS1BdWd1c3QvMjMzMTk2Lmh0bWwKICAtIGRyb3AgZGVzY3JpcHRpb24gZnJvbSBwb3dl ci1kb21haW5zIGFuZCByZXNldHMKICAtIGFsbG93IEJTRCAyIGNsYXVzZSBsaWNlbnNlIGFzIHdl bGwKICAtIG1ha2UgcG9ydHMgbW9yZSBzcGVjaWZpYwogIC0gYWRkICNhZGRyZXNzLWNlbGxzLCAj c2l6ZS1jZWxscyBhcyByZXF1aXJlZAogIC0gdXNlIGFkZGl0aW9uYWxQcm9wZXJ0aWVzCiAgLSBw YW5lbCBpcyBvZiB0eXBlIG9iamVjdAoKQ2hhbmdlcyBmcm9tIHYyOgotIFBlciByZXZpZXcgY29t bWVudHMgYnkgUm9iIEhlcnJpbmcKICBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNo aXZlcy9kcmktZGV2ZWwvMjAxOS1BdWd1c3QvMjMwNDQ4Lmh0bWwKICAtIGJpbmRpbmdzOgogICAg LSBTaW1wbGlmeSBieSByZXN0cmljdGluZyB0byBmc2wsaW14OG1xLW53bC1kc2kKICAgIC0gZG9j dW1lbnQgcmVzZXQgbGluZXMKICAgIC0gYWRkIHBvcnRAezAsMX0KICAgIC0gdXNlIGEgcmVhbCBj b21wYXRpYmxlIHN0cmluZyBmb3IgdGhlIHBhbmVsCiAgICAtIHJlc2V0cyBhcmUgcmVxdWlyZWQK LSBQZXIgcmV2aWV3IGNvbW1lbnRzIGJ5IEFybmQgQmVyZ21hbm4KICBodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxOS1BdWd1c3QvMjMwODY4Lmh0bWwK ICAtIERvbid0IGFjY2VzcyBpb211eGNfZ3ByIHJlZ3MgZGlyZWN0bHkuIFRoaXMgYWxsb3dzIHVz IHRvIGRyb3AgdGhlCiAgICBmaXJzdCBwYXRjaCBpbiB0aGUgc2VyaWVzIHdpdGggdGhlIGlvbXV4 Y19ncHIgZmllbGQgZGVmaW5lcy4KLSBQZXIgcmV2aWV3IGNvbW1lbnRzIGJ5IExhdXJlbnQgUGlu Y2hhcnQKICBGaXggd29yZGluZyBpbiBiaW5kaW5ncwotIEFkZCBtdXgtY29udHJvbHMgdG8gYmlu ZGluZ3MKLSBEb24ndCBwcmludCBlcnJvciBtZXNzYWdlIG9uIGRwaHkgcHJvYmUgZGVmZXJyYWwK CkNoYW5nZXMgZnJvbSB2MToKLSBQZXIgcmV2aWV3IGNvbW1lbnRzIGJ5IFNhbSBSYXZuYm9yZwog IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE5LUp1 bHkvMjI4MTMwLmh0bWwKICAtIENoYW5nZSBiaW5kaW5nIGRvY3MgdG8gWUFNTAogIC0gYnVpbGQ6 IERvbid0IGFsd2F5cyB2aXNpdCBpbXgtbndsLwogIC0gYnVpbGQ6IEFkZCBoZWFkZXItdGVzdC15 CiAgLSBTb3J0IGhlYWRlcnMgYWNjb3JkaW5nIHRvIERSTSBjb252ZW50aW9uCiAgLSBVc2UgZHJt X2Rpc3BsYXlfbW9kZSBpbnN0ZWFkIG9mIHZpZGVtb2RlCi0gUGVyIHJldmlldyBjb21tZW50cyBi eSBGYWJpbyBFc3RldmFtCiAgaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMv ZHJpLWRldmVsLzIwMTktSnVseS8yMjgyOTkuaHRtbAogIC0gRG9uJ3QgcmVzdHJpY3QgYnVpbGQg dG8gQVJDSF9NWEMKICAtIERyb3AgdW51c2VkIGluY2x1ZGVzCiAgLSBEcm9wIHVucmVhY2hhYmxl IGNvZGUgaW4gaW14X253bF9kc2lfYnJpZGdlX21vZGVfZml4dXAoKQogIC0gRHJvcCByZW1haW5p bmcgY2FsbHMgb2YgZGV2X2VycigpIGFuZCB1c2UgRFJNX0RFVl9FUlIoKQogICAgY29uc2lzdGVu dGx5LgogIC0gVXNlIGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZSgpCiAgLSBEcm9wIGRl dm1fZnJlZV9pcnEoKSBpbiBwcm9iZSgpIGVycm9yIHBhdGgKICAtIFVzZSBzaW5nbGUgbGluZSBj b21tZW50cyB3aGVyZSBzdWZmaWNpZW50CiAgLSBVc2UgPGxpbnV4L3RpbWU2NC5oPiBpbnN0ZWFk IG9mIGRlZmluaW5nIFVTRUNfUEVSX1NFQwogIC0gTWFrZSBpbnB1dCBzb3VyY2Ugc2VsZWN0IGlt eDggc3BlY2lmaWMKICAtIERyb3AgPGFzbS91bmFsaWduZWQuaD4gaW5jbHVzaW9uIChhZnRlciBy ZW1vdmFsIG9mIGdldF91bmFsaWduZWRfbGUzMikKICAtIERyb3AgYWxsIEVYUE9SVF9TWU1CT0xf R1BMKCkgZm9yIGZ1bmN0aW9ucyB1c2VkIGluIHRoZSBzYW1lIG1vZHVsZQogICAgYnV0IGRpZmZl cmVudCBzb3VyY2UgZmlsZXMuCiAgLSBEcm9wIG53bF9kc2lfZW5hYmxlX3tyeCx0eH1fY2xvY2so KSBieSBpbnZva2luZyBjbGtfcHJlcGFyZV9lbmFibGUoKQogICAgZGlyZWN0bHkKICAtIFJlbW92 ZSBwb2ludGxlc3MgY29tbWVudAotIExhdXJlbnQgUGluY2hhcnQKICBodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxOS1KdWx5LzIyODMxMy5odG1sCiAg aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIwMTktSnVs eS8yMjgzMDguaHRtbAogIC0gRHJvcCAob24gaU1YOE1RKSB1bnVzZWQgY3NyIHJlZ21hcAogIC0g VXNlIE5XTF9NQVhfUExBVEZPUk1fQ0xPQ0tTIGV2ZXJ5d2hlcmUKICAtIERyb3AgZ2V0X3VuYWxp Z25lZF9sZTMyKCkgdXNhZ2UKICAtIHJlbW92ZSBkdXBsaWNhdGUgJ2ZvciB0aGUnIGluIGJpbmRp bmcgZG9jcwogIC0gRG9uJ3QgaW5jbHVkZSB1bnVzZWQgPGxpbnV4L2Nsay1wcm92aWRlci5oPgog IC0gRG9uJ3QgaW5jbHVkZSB1bnVzZWQgPGxpbnV4L2NvbXBvbmVudC5oPgogIC0gRHJvcCBkcG1z X21vZGUgZm9yIHRyYWNraW5nIHN0YXRlLCB0cnVzdCB0aGUgZHJtIGxheWVyIG9uIHRoYXQKICAt IFVzZSBwbV9ydW50aW1lX3B1dCgpIGluc3RlYWQgb2YgcG1fcnVudGltZV9wdXRfc3luYygpCiAg LSBEb24ndCBvdmVyd3JpdGUgZW5jb2RlciB0eXBlCiAgLSBNYWtlIGlteF9ud2xfcGxhdGZvcm1f ZGF0YSBjb25zdAogIC0gVXNlIHRoZSByZXNldCBjb250cm9sbGVyIEFQSSBpbnN0ZWFkIG9mIG9w ZW4gY29kaW5nIHRoYXQgcGxhdGZvcm0gc3BlY2lmaWMKICAgIHBhcnQKICAtIFVzZSA8bGludXgv Yml0ZmllbGQuaD4gaW50ZWFkIG9mIG1ha2luZyB1cCBvdXIgb3duIGRlZmluZXMKICAtIG5hbWUg bWlwaV9kc2lfdHJhbnNmZXIgbGVzcyBnZW5lcmljOiBud2xfZHNpX3RyYW5zZmVyCiAgLSBlbnN1 cmUgY2xlYW4gaW4gLnJlbW92ZSBieSBjYWxsaW5nIG1pcGlfZHNpX2hvc3RfdW5yZWdpc3Rlci4K ICAtIHByZWZpeCBjb25zdGFudHMgYnkgTldMX0RTSV8KICAtIHByb3Blcmx5IGZvcm1hdCB0cmFu c2Zlcl9kaXJlY3Rpb24gZW51bQogIC0gc2ltcGxpZnkgcGxhdGZvcm0gY2xvY2sgaGFuZGxpbmcK ICAtIERvbid0IG1vZGlmeSBzdGF0ZSBpbiBtb2RlX2ZpeHVwKCkgYW5kIHVzZSBtb2RlX3NldCgp IGluc3RlYWQKICAtIERyb3AgYnJpZGdlIGRldGFjaCgpLCBhbHJlYWR5IGhhbmRsZSBieSBud2xf ZHNpX2hvc3RfZGV0YWNoKCkKICAtIERyb3AgVVNFXypfUVVJUksoKSBtYWNyb3MKLSBEcm9wIChm b3Igbm93KSB1bnVzZWQgY2xvY2sgZGVmbml0aW9ucy4gJ3BpeGVsJyBhbmQgJ2J5cGFzcycgY2xv Y2sgd2lsbCBiZQogIHVzZWQgZm9yIGkuTVg4IFNvQ3MgYnV0IHNpbmNlIHRoZXkncmUgdW51c2Vk IGF0bSBkcm9wIHRoZSBkZWZpbml0aW9ucyAtIGJ1dAogIGtlZXAgdGhlIGxvZ2ljIHRvIGVuYWJs ZS9kaXNhYmxlIHNldmVyYWwgY2xvY2tzIGluIHBsYWNlIHNpbmNlIHdlIGtub3cgd2UnbGwKICBu ZWVkIGl0IGluIHRoZSBmdXR1cmUuCgpDaGFuZ2VzIGZyb20gdjA6Ci0gQWRkIHF1aXJrIGZvciBJ TVE4TVEgc2lsaWNvbiBCMCByZXZpc2lvbiB0byBub3QgbWVzcyB3aXRoIHRoZQogIHN5c3RlbSBy ZXNldCBjb250cm9sbGVyIG9uIHBvd2VyIGRvd24gc2luY2UgZW5hYmxlKCkgd29uJ3Qgd29yawog IG90aGVyd2lzZS4KLSBEcm9wIGRldm1fZnJlZV9pcnEoKSBoYW5kbGVkIGJ5IHRoZSBkZXZpY2Ug ZHJpdmVyIGNvcmUKLSBEaXNhYmxlIHR4IGVzYyBjbG9jayBhZnRlciB0aGUgcGh5IHBvd2VyIGRv d24gdG8gdW5icmVhawogIGRpc2FibGUvZW5hYmxlICh1bmJsYW5rL2JsYW5rKQotIEFkZCBwb3J0 cyB0byBkdCBiaW5kaW5nIGRvY3MKLSBTZWxlY3QgR0VORVJJQ19QSFlfTUlQSV9EUEhZIGluc3Rl YWQgb2YgR0VORVJJQ19QSFkgZm9yCiAgcGh5X21pcGlfZHBoeV9nZXRfZGVmYXVsdF9jb25maWcK LSBTZWxlY3QgRFJNX01JUElfRFNJCi0gSW5jbHVkZSBkcm1fcHJpbnQuaCB0byBmaXggYnVpbGQg b24gbmV4dC0yMDE5MDQwOAotIERyb3Agc29tZSBkZWJ1Z2dpbmcgbWVzc2FnZXMKLSBOZXdsaW5l IHRlcm1pbmF0ZSBhbGwgRFJNXyBwcmludG91dHMKLSBUdXJuIGNvbXBvbmVudCBkcml2ZXIgaW50 byBhIGRybSBicmlkZ2UKClswXTogaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2 ZXMvZHJpLWRldmVsLzIwMTktTWF5LzIxOTQ4NC5odG1sClsxXTogaHR0cHM6Ly9wYXRjaHdvcmsu ZnJlZWRlc2t0b3Aub3JnL3Nlcmllcy82MjgyMi8KCkd1aWRvIEfDvG50aGVyICgyKToKICBkdC1i aW5kaW5nczogZGlzcGxheS9icmlkZ2U6IEFkZCBiaW5kaW5nIGZvciBOV0wgbWlwaSBkc2kgaG9z dAogICAgY29udHJvbGxlcgogIGRybS9icmlkZ2U6IEFkZCBOV0wgTUlQSSBEU0kgaG9zdCBjb250 cm9sbGVyIHN1cHBvcnQKCiAuLi4vYmluZGluZ3MvZGlzcGxheS9icmlkZ2UvbndsLWRzaS55YW1s ICAgICAgfCAgMjE2ICsrKwogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnICAgICAgICAg ICAgICAgIHwgICAxNiArCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL01ha2VmaWxlICAgICAgICAg ICAgICAgfCAgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvbndsLWRzaS5jICAgICAgICAg ICAgICB8IDEyMTMgKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvbnds LWRzaS5oICAgICAgICAgICAgICB8ICAxNDQgKysKIDUgZmlsZXMgY2hhbmdlZCwgMTU5MiBpbnNl cnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2Jp bmRpbmdzL2Rpc3BsYXkvYnJpZGdlL253bC1kc2kueWFtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS9icmlkZ2UvbndsLWRzaS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9ud2wtZHNpLmgKCi0tIAoyLjIzLjAKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=