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 DB673C4332E for ; Fri, 20 Mar 2020 18:49:36 +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 A31D720777 for ; Fri, 20 Mar 2020 18:49:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="a/FRqFWM" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A31D720777 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=Yt4weW1r+vntaEde/sFmE2mm/eVyVZ6xKEuhL4yjgnE=; b=a/FRqFWMGRi5Ts S4qSblEx8ZmAfrvsQp/CXc6iobcxbqonUYYM9e0y81ibxSeysNdit/bOY60sNwS4wracUYYu9kOUn hrQIEKQnT8sggLcnQfeha8Fxm9gnCTXPlrh2T6VV9UoP2flTYl/RlcvEts/MGwkP81HTrT66vLo/v +13WJjOvZ95E3PWT/FXCtKD0l66zi1F2CAtY4ehJMc+mCvCWmuA0ZGTlX3fj/fY6dB615v8CB3zab HxsexlEh0R6sMC7mAzqAILIQcJ7FKIp47ATKTJ7/KVgoyfWUeGNWwy2VKUcxHvwhsudTm9uEPWa2f kubaKdc9ly+XARLAeHoA==; 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 1jFMi7-0003tE-M9; Fri, 20 Mar 2020 18:49:35 +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 1jFMht-0003iz-7W for linux-arm-kernel@lists.infradead.org; Fri, 20 Mar 2020 18:49:23 +0000 Received: from localhost (localhost [127.0.0.1]) by honk.sigxcpu.org (Postfix) with ESMTP id 3AC0AFB03; Fri, 20 Mar 2020 19:49:17 +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 Ke2H9TpDlbit; Fri, 20 Mar 2020 19:49:11 +0100 (CET) Received: by bogon.sigxcpu.org (Postfix, from userid 1000) id D17E2412BE; Fri, 20 Mar 2020 19:49:10 +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 v10 0/2] drm: bridge: Add NWL MIPI DSI host controller support Date: Fri, 20 Mar 2020 19:49:08 +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-20200320_114921_593061_1CD11A0D X-CRM114-Status: GOOD ( 26.92 ) 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 MCBEU0kgcGFuZWwgZHJpdmVyIG9uIG5leHQtMjAyMDAzMTcgYW5kIG9uCnRoZSBMaWJyZW01IHdp dGggdGhlIGEgTWFudGl4IE1MQUYwNTdXRTUxLVggRFNJIHBhbmVsIGRyaXZlciAobm90IHlldCBt YWlubGluZSkKVGhlIERDU1MgKHN1Ym1pdHRlZCBmb3IgbWFpbmxpbmUgaW5jbHVzaW9uIG5vdyB0 b28pIGNhbiBhbHNvIGFjdCBhcyBpbnB1dApzb3VyY2UuCgpDaGFuZ2VzIGZyb20gdjEwOgotIFBl ciByZXZpZXcgY29tbWVudHMgYnkgU2FtIFJhdm5ib3JnCiAgaHR0cHM6Ly9sb3JlLmtlcm5lbC5v cmcvZHJpLWRldmVsLzIwMjAwMzE4MjE0NjM5LkdBOTcxQHJhdm5ib3JnLm9yZy8KICAtIERyb3Ag aGVhZGVyLXRlc3QteSBzaW5jZSBrZXJuZWwgbG9zdCBzdXBwb3J0CiAgLSBIYW5kbGUgZHJtX2Jy aWRnZV9hdHRhY2gncyBuZXcgZmxhZ3MgYXJndW1lbnQKICAtIEFkZCBBY2tlZC1ieTogdG8gYmlu ZGluZyBwYXRjaCwgdGhhbmtzIQotIE1vdmUgdG8gbmV4dC0yMDIwMDMxOQoKQ2hhbmdlcyBmcm9t IHY5OgotIFBlciByZXZpZXcgY29tbWVudHMgYnkgUm9iZXJ0IENoaXJhcwogIGh0dHBzOi8vbG9y ZS5rZXJuZWwub3JnL2RyaS1kZXZlbC8xNTc1MzY2NTk0LjY0MjMuNjEuY2FtZWxAbnhwLmNvbS8K ICAtIGRvbid0IG1peCBEU0kgaG9zdCBhbmQgYnJpZGdlIGluaXRpYWxpemF0aW9uCiAgLSBvbmx5 IHNlbGVjdCBvdXRwdXQgc291cmNlIG9uY2UKICAtIGRlZmVyIHByb2JlIHdoZW4gcGFuZWwgaXMg bm90IHJlYWR5IHRvIGZpeCB1c2FnZSBhcyBhIG1vZHVsZQogIC0gdXNlIGNvcnJlY3QgcmVzZXQg c2VxdWVuY2UgYXMgZGVzY3JpYmVkIGJ5IFJvYmVydAogICAgKGFuZCBwcm92aWRlZCBieSBOV0wp CiAgLSB1c2UgbW9kZS0+Y2xvY2sgaW5zdGVhZCBvZiBtb2RlLT5jcnRjX2Nsb2NrCi0gQWRkIHRl c3RlZCBieSBmcm9tIE1hcnRpbiBLZXBwbGluZ2VyLCB0aGFua3MhCi0gRHJvcCBwbGF0Zm9ybSBz cGVjaWZpYyBkYXRhIChhcyBzdWdnZXN0ZWQgcHJldmlvdXNseSBieSBMYXVyZW50IFBpbmNoYXJ0 IGFuZAogIEFuZHJ6ZWogSGFqZGEpIHNpbmNlIGlteDhxKiBuZWVkcyBhbm90aGVyIHNldCBvZiBh YnN0cmFjdGlvbnMgd2l0aCB0aGUgbmV3CiAgcmVzZXQgc2VxdWVuY2UgYW5kIHRoYXQncyBlYXNp ZXIgdG8gZG8gd2hlbiBhZGRpbmcgaW14OHEqIHN1cHBvcnQgcmF0aGVyIHRoZW4KICBhZGRpbmcg d3JvbmcgYWJzdHJhY3Rpb24gbm93LgotIFVwZGF0ZSBiaW5kaW5ncyB0byB1c2UgcHJvcGVyIGNs b2NrIGFuZCBpcnEgbmFtZXMgdG8gbWFrZSB0aGUgZXhhbXBsZSBtYXRjaAogIHJlYWxpdHkgbW9y ZSBjbG9zZWx5LgotIFVzZSBgZmFsbHRocm91Z2g7YCBpbnN0ZWFkIG9mIC8qIEZhbGwgdGhyb3Vn aCAqLyBpbiBzd2l0Y2ggc3RhdGVtZW50cwotIE1vdmUgdG8gbmV4dC0yMDIwMDIyNgoKQ2hhbmdl cyBmcm9tIHY4OgotIERyb3AgcmVzZXQgcXVpcmsuIEl0J3Mgbm90IG5lZWRlZCB3aXRoIG14c2Zi IGFuZCBzb21ldGltZXMgdHJpZ2dlcnMgYSBzaGlmdGVkIGRpc3BsYXkuCgpDaGFuZ2VzIGZyb20g djc6Ci0gUGVyIHJldmlldyBjb21tZW50cyBieSBBbmRyemVqIEhhamRhCiAgaHR0cHM6Ly9sb3Jl Lmtlcm5lbC5vcmcvbGludXgtYXJtLWtlcm5lbC9jODZiN2NhMi03Nzk5LWVhZmQtYzM4MC1lNGI1 NTE1MjA4MzdAc2Ftc3VuZy5jb20vCiAgLSBEcm9wIHNwYXJlIGVtcHR5IGxpbmUKICAtIGhhbmRs ZSBud2xfZHNpX3dyaXRlIGVycm9ycwogIC0gYmV0dGVyIGhhbmRsZSByZWFkIGVycm9ycwogIC0g dW53aW5kIGluIGNhc2Ugb2YgZXJyb3IgaW4gbndsX2RzaV9lbmFibGUKICAtIHVzZSBicmlkZ2Vf dG9fZHNpKCkgaW5zdGVhZCBvZiBhY2Nlc3NpbmcgZHJpdmVyX3ByaXZhdGUKICAtIGRvbid0IGxv ZyBvbiAtRVBST0JFREVGRVIgd2hlbiBmZXRoaW5nIHRoZSByZXNldCBjb250cm9sbGVyCiAgLSB1 c2UgZW5kcG9pbnQgbnVtYmVyIHRvIGRldGVybWluZSBpbnB1dAotIFNwb3R0ZWQgYnkga2J1aWxk IHRlc3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+CiAgaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGlu dXgtYXJtLWtlcm5lbC8yMDE5MDkyMzA2NDQucWZTS2JOZjklMjVsa3BAaW50ZWwuY29tLwogIFVz ZSBzaWduZWQgcmV0dXJuIHR5cGUgZm9yIG53bF9kc2lfZ2V0X2RwaV9waXhlbF9mb3JtYXQKLSBE cm9wIGNvbm5lY3RvciB0eXBlIGZyb20gZHJtX3BhbmVsX2JyaWRnZV9hZGQKLSBEb24ndCBmb3Jn ZXQgdG8gc2V0IGFuIGVycm9yIHZhbHVlIG9uIGRzaSByZWFkcwoKQ2hhbmdlcyBmcm9tIHY1Ogot IFBlciByZXZpZXcgY29tbWVudHMgYnkgQW5kcnplaiBIYWpkYQogIGh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE5LVNlcHRlbWJlci8yMzUyODEuaHRt bAogIC0gRml4IGluY2x1ZGUgZmlsZSBvcmRlcmluZwogIC0gQWRkIGEgY29tbWVudCB0byBud2xf ZHNpX3BsYXRmb3JtX2RhdGEgdGhhdCB3aWxsIGFsbG93IHRvIGFkZCBzdXBwb3J0CiAgICBhdCBs ZWFzdCBmb3IgdGhlIGkuTVg4UU0KICAtIE1lcmdlIGRyaXZlciBpbnRvIGEgc2luZ2xlIGZpbGUg cGx1cyB0aGUgcmVnaXN0ZXIgZGVmcyBpbiBhIHNlcGFyYXRlIGhlYWRlcgotIE1ha2UgbW9yZSBm dW5jdGlvbnMgYW5kIHN0cnVjdHMgc3RhdGljCgpDaGFuZ2VzIGZyb20gdjQ6Ci0gQ29sbGVjdCBS ZXZpZXdlZC1ieTogZnJvbSBSb2IgSGVycmluZywgdGhhbmtzIQogIGh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE5LVNlcHRlbWJlci8yMzM5NzkuaHRt bAotIFNwb3R0ZWQgYnkga2J1aWxkIHRlc3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+CiAgaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIwMTktU2VwdGVtYmVy LzIzMzg2MC5odG1sCiAgaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJp LWRldmVsLzIwMTktU2VwdGVtYmVyLzIzMzg2My5odG1sCiAgLSBmaXggZm9ybWF0IHN0cmluZyBm b3Igc2l6ZV90CiAgLSBVc2UgRElWNjRfVTY0X1JPVU5EX1VQIHRvIGZpeCBidWlsZCBvbiAzMiBi aXQgYXJjaGl0ZWN0dXJlcwogICAgV2UgY2FuJ3QgdXNlIHNpbXBsZSBzaGlmdCBzaW5kIGQgYW5k IG4gYXJlIHNpbWlsYXIgaW4gc2l6ZSBhbmQKICAgIHdlIG5lZWQgZnVsbCBwcmVjaXNpb24KLSBG aXggZGVidWcgY2ZnX3RfcG9zdCBkZWJ1ZyBwcmludCBvdXQKLSBBdm9pZCBQU0VDX1BFUl9TRUMK LSBNb3ZlIHRpbWVvdXQgLyBvdmVyZmxvdyBoYW5kbGluZyBvdXQgb2YgbndsX2RzaV9maW5pc2hf dHJhbnNtaXNzaW9uLAogIGl0IHdvdWxkIG5ldmVyIGVuZCB1cCBiZWluZyByZXBvcnRlZCBzaW5j ZSB0aGUgY2FsbCB0byB0aGUgZnVuY3Rpb24KICB3YXMgZ3VhcmRlZCBieSBmbGFncy4KLSBEcm9w ICdzdXBwb3J0IGZvcicgZnJvbSBLQ29uZmlnIHRpdGxlIHRvIG1ha2UgaXQgbWF0Y2ggdGhlIG90 aGVyCiAgZHJpdmVycyBpbiB0aGF0IHN1Ym1lbnUKCkNoYW5nZXMgZnJvbSB2MzoKLSBQZXIgcmV2 aWV3IGNvbW1lbnRzIGJ5IFJvYmVydCBDaGlyYXMKICBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxOS1BdWd1c3QvMjMyNTgwLmh0bWwKICAtIEFkZCBS b2JlcnQncyB7U2lnbmVkLW9mZixUZXN0ZWR9LWJ5OgogIC0gUmVzcGVjdCBudW1iZXIgb2YgbGFu ZXMgd2hlbiBjYWxjdWx0aW5nIGJhbmR3aWR0aCBsaW1pdHMKICAtIERyb3AgZHVwbGljYXRlIE5X TF9EU0lfRU5BQkxFX01VTFRfUEtUUyBzZXR1cAotIFBlciB0ZXN0aW5nIGJ5IFJvYmVyIENoaXJh cwogIGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE5 LUF1Z3VzdC8yMzM2ODguaHRtbAogIC0gRHJvcCBkdXBsaWNhdGUgKGFuZCB0b28gZWFybHkpIGRy bV9icmlkZ2VfYWRkKCkgaW4gbndsX2RzaV9wcm9iZSgpIHRoYXQKICAgIG1hZGUgbXhzZmIgZmFp bCB0byBjb25uZWN0IHRvIHRoZSBicmlkZ2Ugc2luY2UgdGhlIHBhbmVsX2JyaWRnZSB3YXMgbm90 IHVwCiAgICB5ZXQuIGRybV9icmlkZ2VfYWRkKCkgaGFwcGVucyBpbiBud2xfZHNpX2hvc3RfYXR0 YWNoKCkgd2hlcmUgYWZ0ZXIgdGhlCiAgICBwYW5lbF9icmlkZ2Ugd2FzIHNldCB1cC4KLSBQZXIg cmV2aWV3IGNvbW1lbnRzIGJ5IFJvYiBIZXJyaW5nIG9uIGJpbmRpbmdzCiAgaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIwMTktQXVndXN0LzIzMzE5Ni5o dG1sCiAgLSBkcm9wIGRlc2NyaXB0aW9uIGZyb20gcG93ZXItZG9tYWlucyBhbmQgcmVzZXRzCiAg LSBhbGxvdyBCU0QgMiBjbGF1c2UgbGljZW5zZSBhcyB3ZWxsCiAgLSBtYWtlIHBvcnRzIG1vcmUg c3BlY2lmaWMKICAtIGFkZCAjYWRkcmVzcy1jZWxscywgI3NpemUtY2VsbHMgYXMgcmVxdWlyZWQK ICAtIHVzZSBhZGRpdGlvbmFsUHJvcGVydGllcwogIC0gcGFuZWwgaXMgb2YgdHlwZSBvYmplY3QK CkNoYW5nZXMgZnJvbSB2MjoKLSBQZXIgcmV2aWV3IGNvbW1lbnRzIGJ5IFJvYiBIZXJyaW5nCiAg aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIwMTktQXVn dXN0LzIzMDQ0OC5odG1sCiAgLSBiaW5kaW5nczoKICAgIC0gU2ltcGxpZnkgYnkgcmVzdHJpY3Rp bmcgdG8gZnNsLGlteDhtcS1ud2wtZHNpCiAgICAtIGRvY3VtZW50IHJlc2V0IGxpbmVzCiAgICAt IGFkZCBwb3J0QHswLDF9CiAgICAtIHVzZSBhIHJlYWwgY29tcGF0aWJsZSBzdHJpbmcgZm9yIHRo ZSBwYW5lbAogICAgLSByZXNldHMgYXJlIHJlcXVpcmVkCi0gUGVyIHJldmlldyBjb21tZW50cyBi eSBBcm5kIEJlcmdtYW5uCiAgaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMv ZHJpLWRldmVsLzIwMTktQXVndXN0LzIzMDg2OC5odG1sCiAgLSBEb24ndCBhY2Nlc3MgaW9tdXhj X2dwciByZWdzIGRpcmVjdGx5LiBUaGlzIGFsbG93cyB1cyB0byBkcm9wIHRoZQogICAgZmlyc3Qg cGF0Y2ggaW4gdGhlIHNlcmllcyB3aXRoIHRoZSBpb211eGNfZ3ByIGZpZWxkIGRlZmluZXMuCi0g UGVyIHJldmlldyBjb21tZW50cyBieSBMYXVyZW50IFBpbmNoYXJ0CiAgRml4IHdvcmRpbmcgaW4g YmluZGluZ3MKLSBBZGQgbXV4LWNvbnRyb2xzIHRvIGJpbmRpbmdzCi0gRG9uJ3QgcHJpbnQgZXJy b3IgbWVzc2FnZSBvbiBkcGh5IHByb2JlIGRlZmVycmFsCgpDaGFuZ2VzIGZyb20gdjE6Ci0gUGVy IHJldmlldyBjb21tZW50cyBieSBTYW0gUmF2bmJvcmcKICBodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxOS1KdWx5LzIyODEzMC5odG1sCiAgLSBDaGFu Z2UgYmluZGluZyBkb2NzIHRvIFlBTUwKICAtIGJ1aWxkOiBEb24ndCBhbHdheXMgdmlzaXQgaW14 LW53bC8KICAtIGJ1aWxkOiBBZGQgaGVhZGVyLXRlc3QteQogIC0gU29ydCBoZWFkZXJzIGFjY29y ZGluZyB0byBEUk0gY29udmVudGlvbgogIC0gVXNlIGRybV9kaXNwbGF5X21vZGUgaW5zdGVhZCBv ZiB2aWRlbW9kZQotIFBlciByZXZpZXcgY29tbWVudHMgYnkgRmFiaW8gRXN0ZXZhbQogIGh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE5LUp1bHkvMjI4 Mjk5Lmh0bWwKICAtIERvbid0IHJlc3RyaWN0IGJ1aWxkIHRvIEFSQ0hfTVhDCiAgLSBEcm9wIHVu dXNlZCBpbmNsdWRlcwogIC0gRHJvcCB1bnJlYWNoYWJsZSBjb2RlIGluIGlteF9ud2xfZHNpX2Jy aWRnZV9tb2RlX2ZpeHVwKCkKICAtIERyb3AgcmVtYWluaW5nIGNhbGxzIG9mIGRldl9lcnIoKSBh bmQgdXNlIERSTV9ERVZfRVJSKCkKICAgIGNvbnNpc3RlbnRseS4KICAtIFVzZSBkZXZtX3BsYXRm b3JtX2lvcmVtYXBfcmVzb3VyY2UoKQogIC0gRHJvcCBkZXZtX2ZyZWVfaXJxKCkgaW4gcHJvYmUo KSBlcnJvciBwYXRoCiAgLSBVc2Ugc2luZ2xlIGxpbmUgY29tbWVudHMgd2hlcmUgc3VmZmljaWVu dAogIC0gVXNlIDxsaW51eC90aW1lNjQuaD4gaW5zdGVhZCBvZiBkZWZpbmluZyBVU0VDX1BFUl9T RUMKICAtIE1ha2UgaW5wdXQgc291cmNlIHNlbGVjdCBpbXg4IHNwZWNpZmljCiAgLSBEcm9wIDxh c20vdW5hbGlnbmVkLmg+IGluY2x1c2lvbiAoYWZ0ZXIgcmVtb3ZhbCBvZiBnZXRfdW5hbGlnbmVk X2xlMzIpCiAgLSBEcm9wIGFsbCBFWFBPUlRfU1lNQk9MX0dQTCgpIGZvciBmdW5jdGlvbnMgdXNl ZCBpbiB0aGUgc2FtZSBtb2R1bGUKICAgIGJ1dCBkaWZmZXJlbnQgc291cmNlIGZpbGVzLgogIC0g RHJvcCBud2xfZHNpX2VuYWJsZV97cngsdHh9X2Nsb2NrKCkgYnkgaW52b2tpbmcgY2xrX3ByZXBh cmVfZW5hYmxlKCkKICAgIGRpcmVjdGx5CiAgLSBSZW1vdmUgcG9pbnRsZXNzIGNvbW1lbnQKLSBM YXVyZW50IFBpbmNoYXJ0CiAgaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMv ZHJpLWRldmVsLzIwMTktSnVseS8yMjgzMTMuaHRtbAogIGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE5LUp1bHkvMjI4MzA4Lmh0bWwKICAtIERyb3Ag KG9uIGlNWDhNUSkgdW51c2VkIGNzciByZWdtYXAKICAtIFVzZSBOV0xfTUFYX1BMQVRGT1JNX0NM T0NLUyBldmVyeXdoZXJlCiAgLSBEcm9wIGdldF91bmFsaWduZWRfbGUzMigpIHVzYWdlCiAgLSBy ZW1vdmUgZHVwbGljYXRlICdmb3IgdGhlJyBpbiBiaW5kaW5nIGRvY3MKICAtIERvbid0IGluY2x1 ZGUgdW51c2VkIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICAtIERvbid0IGluY2x1ZGUgdW51c2Vk IDxsaW51eC9jb21wb25lbnQuaD4KICAtIERyb3AgZHBtc19tb2RlIGZvciB0cmFja2luZyBzdGF0 ZSwgdHJ1c3QgdGhlIGRybSBsYXllciBvbiB0aGF0CiAgLSBVc2UgcG1fcnVudGltZV9wdXQoKSBp bnN0ZWFkIG9mIHBtX3J1bnRpbWVfcHV0X3N5bmMoKQogIC0gRG9uJ3Qgb3ZlcndyaXRlIGVuY29k ZXIgdHlwZQogIC0gTWFrZSBpbXhfbndsX3BsYXRmb3JtX2RhdGEgY29uc3QKICAtIFVzZSB0aGUg cmVzZXQgY29udHJvbGxlciBBUEkgaW5zdGVhZCBvZiBvcGVuIGNvZGluZyB0aGF0IHBsYXRmb3Jt IHNwZWNpZmljCiAgICBwYXJ0CiAgLSBVc2UgPGxpbnV4L2JpdGZpZWxkLmg+IGludGVhZCBvZiBt YWtpbmcgdXAgb3VyIG93biBkZWZpbmVzCiAgLSBuYW1lIG1pcGlfZHNpX3RyYW5zZmVyIGxlc3Mg Z2VuZXJpYzogbndsX2RzaV90cmFuc2ZlcgogIC0gZW5zdXJlIGNsZWFuIGluIC5yZW1vdmUgYnkg Y2FsbGluZyBtaXBpX2RzaV9ob3N0X3VucmVnaXN0ZXIuCiAgLSBwcmVmaXggY29uc3RhbnRzIGJ5 IE5XTF9EU0lfCiAgLSBwcm9wZXJseSBmb3JtYXQgdHJhbnNmZXJfZGlyZWN0aW9uIGVudW0KICAt IHNpbXBsaWZ5IHBsYXRmb3JtIGNsb2NrIGhhbmRsaW5nCiAgLSBEb24ndCBtb2RpZnkgc3RhdGUg aW4gbW9kZV9maXh1cCgpIGFuZCB1c2UgbW9kZV9zZXQoKSBpbnN0ZWFkCiAgLSBEcm9wIGJyaWRn ZSBkZXRhY2goKSwgYWxyZWFkeSBoYW5kbGUgYnkgbndsX2RzaV9ob3N0X2RldGFjaCgpCiAgLSBE cm9wIFVTRV8qX1FVSVJLKCkgbWFjcm9zCi0gRHJvcCAoZm9yIG5vdykgdW51c2VkIGNsb2NrIGRl Zm5pdGlvbnMuICdwaXhlbCcgYW5kICdieXBhc3MnIGNsb2NrIHdpbGwgYmUKICB1c2VkIGZvciBp Lk1YOCBTb0NzIGJ1dCBzaW5jZSB0aGV5J3JlIHVudXNlZCBhdG0gZHJvcCB0aGUgZGVmaW5pdGlv bnMgLSBidXQKICBrZWVwIHRoZSBsb2dpYyB0byBlbmFibGUvZGlzYWJsZSBzZXZlcmFsIGNsb2Nr cyBpbiBwbGFjZSBzaW5jZSB3ZSBrbm93IHdlJ2xsCiAgbmVlZCBpdCBpbiB0aGUgZnV0dXJlLgoK Q2hhbmdlcyBmcm9tIHYwOgotIEFkZCBxdWlyayBmb3IgSU1ROE1RIHNpbGljb24gQjAgcmV2aXNp b24gdG8gbm90IG1lc3Mgd2l0aCB0aGUKICBzeXN0ZW0gcmVzZXQgY29udHJvbGxlciBvbiBwb3dl ciBkb3duIHNpbmNlIGVuYWJsZSgpIHdvbid0IHdvcmsKICBvdGhlcndpc2UuCi0gRHJvcCBkZXZt X2ZyZWVfaXJxKCkgaGFuZGxlZCBieSB0aGUgZGV2aWNlIGRyaXZlciBjb3JlCi0gRGlzYWJsZSB0 eCBlc2MgY2xvY2sgYWZ0ZXIgdGhlIHBoeSBwb3dlciBkb3duIHRvIHVuYnJlYWsKICBkaXNhYmxl L2VuYWJsZSAodW5ibGFuay9ibGFuaykKLSBBZGQgcG9ydHMgdG8gZHQgYmluZGluZyBkb2NzCi0g U2VsZWN0IEdFTkVSSUNfUEhZX01JUElfRFBIWSBpbnN0ZWFkIG9mIEdFTkVSSUNfUEhZIGZvcgog IHBoeV9taXBpX2RwaHlfZ2V0X2RlZmF1bHRfY29uZmlnCi0gU2VsZWN0IERSTV9NSVBJX0RTSQot IEluY2x1ZGUgZHJtX3ByaW50LmggdG8gZml4IGJ1aWxkIG9uIG5leHQtMjAxOTA0MDgKLSBEcm9w IHNvbWUgZGVidWdnaW5nIG1lc3NhZ2VzCi0gTmV3bGluZSB0ZXJtaW5hdGUgYWxsIERSTV8gcHJp bnRvdXRzCi0gVHVybiBjb21wb25lbnQgZHJpdmVyIGludG8gYSBkcm0gYnJpZGdlCgpbMF06IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE5LU1heS8y MTk0ODQuaHRtbApbMV06IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9zZXJpZXMv NjI4MjIvCgpHdWlkbyBHw7xudGhlciAoMik6CiAgZHQtYmluZGluZ3M6IGRpc3BsYXkvYnJpZGdl OiBBZGQgYmluZGluZyBmb3IgTldMIG1pcGkgZHNpIGhvc3QKICAgIGNvbnRyb2xsZXIKICBkcm0v YnJpZGdlOiBBZGQgTldMIE1JUEkgRFNJIGhvc3QgY29udHJvbGxlciBzdXBwb3J0CgogLi4uL2Jp bmRpbmdzL2Rpc3BsYXkvYnJpZGdlL253bC1kc2kueWFtbCAgICAgIHwgIDIxNiArKysKIGRyaXZl cnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZyAgICAgICAgICAgICAgICB8ICAgMTYgKwogZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZSAgICAgICAgICAgICAgIHwgICAgMSArCiBkcml2ZXJz L2dwdS9kcm0vYnJpZGdlL253bC1kc2kuYyAgICAgICAgICAgICAgfCAxMjE4ICsrKysrKysrKysr KysrKysrCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL253bC1kc2kuaCAgICAgICAgICAgICAgfCAg MTQ0ICsrCiA1IGZpbGVzIGNoYW5nZWQsIDE1OTUgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUg MTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2JyaWRnZS9u d2wtZHNpLnlhbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL253 bC1kc2kuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvbndsLWRz aS5oCgotLSAKMi4yMy4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtYXJtLWtlcm5lbAo= 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 35107C4332E for ; Fri, 20 Mar 2020 18:49:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 076DD20786 for ; Fri, 20 Mar 2020 18:49:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725446AbgCTStW (ORCPT ); Fri, 20 Mar 2020 14:49:22 -0400 Received: from honk.sigxcpu.org ([24.134.29.49]:48270 "EHLO honk.sigxcpu.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726738AbgCTStV (ORCPT ); Fri, 20 Mar 2020 14:49:21 -0400 Received: from localhost (localhost [127.0.0.1]) by honk.sigxcpu.org (Postfix) with ESMTP id 3AC0AFB03; Fri, 20 Mar 2020 19:49:17 +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 Ke2H9TpDlbit; Fri, 20 Mar 2020 19:49:11 +0100 (CET) Received: by bogon.sigxcpu.org (Postfix, from userid 1000) id D17E2412BE; Fri, 20 Mar 2020 19:49:10 +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 v10 0/2] drm: bridge: Add NWL MIPI DSI host controller support Date: Fri, 20 Mar 2020 19:49:08 +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-20200317 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 v10: - Per review comments by Sam Ravnborg https://lore.kernel.org/dri-devel/20200318214639.GA971@ravnborg.org/ - Drop header-test-y since kernel lost support - Handle drm_bridge_attach's new flags argument - Add Acked-by: to binding patch, thanks! - Move to next-20200319 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 - Move to next-20200226 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_dsi_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 | 1 + drivers/gpu/drm/bridge/nwl-dsi.c | 1218 +++++++++++++++++ drivers/gpu/drm/bridge/nwl-dsi.h | 144 ++ 5 files changed, 1595 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 517D5C4332B for ; Fri, 20 Mar 2020 18:49:25 +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 358D520775 for ; Fri, 20 Mar 2020 18:49:25 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 358D520775 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 017AD6EB47; Fri, 20 Mar 2020 18:49:23 +0000 (UTC) Received: from honk.sigxcpu.org (honk.sigxcpu.org [24.134.29.49]) by gabe.freedesktop.org (Postfix) with ESMTPS id 98F676EB47 for ; Fri, 20 Mar 2020 18:49:19 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by honk.sigxcpu.org (Postfix) with ESMTP id 3AC0AFB03; Fri, 20 Mar 2020 19:49:17 +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 Ke2H9TpDlbit; Fri, 20 Mar 2020 19:49:11 +0100 (CET) Received: by bogon.sigxcpu.org (Postfix, from userid 1000) id D17E2412BE; Fri, 20 Mar 2020 19:49:10 +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 v10 0/2] drm: bridge: Add NWL MIPI DSI host controller support Date: Fri, 20 Mar 2020 19:49:08 +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 MCBEU0kgcGFuZWwgZHJpdmVyIG9uIG5leHQtMjAyMDAzMTcgYW5kIG9uCnRoZSBMaWJyZW01IHdp dGggdGhlIGEgTWFudGl4IE1MQUYwNTdXRTUxLVggRFNJIHBhbmVsIGRyaXZlciAobm90IHlldCBt YWlubGluZSkKVGhlIERDU1MgKHN1Ym1pdHRlZCBmb3IgbWFpbmxpbmUgaW5jbHVzaW9uIG5vdyB0 b28pIGNhbiBhbHNvIGFjdCBhcyBpbnB1dApzb3VyY2UuCgpDaGFuZ2VzIGZyb20gdjEwOgotIFBl ciByZXZpZXcgY29tbWVudHMgYnkgU2FtIFJhdm5ib3JnCiAgaHR0cHM6Ly9sb3JlLmtlcm5lbC5v cmcvZHJpLWRldmVsLzIwMjAwMzE4MjE0NjM5LkdBOTcxQHJhdm5ib3JnLm9yZy8KICAtIERyb3Ag aGVhZGVyLXRlc3QteSBzaW5jZSBrZXJuZWwgbG9zdCBzdXBwb3J0CiAgLSBIYW5kbGUgZHJtX2Jy aWRnZV9hdHRhY2gncyBuZXcgZmxhZ3MgYXJndW1lbnQKICAtIEFkZCBBY2tlZC1ieTogdG8gYmlu ZGluZyBwYXRjaCwgdGhhbmtzIQotIE1vdmUgdG8gbmV4dC0yMDIwMDMxOQoKQ2hhbmdlcyBmcm9t IHY5OgotIFBlciByZXZpZXcgY29tbWVudHMgYnkgUm9iZXJ0IENoaXJhcwogIGh0dHBzOi8vbG9y ZS5rZXJuZWwub3JnL2RyaS1kZXZlbC8xNTc1MzY2NTk0LjY0MjMuNjEuY2FtZWxAbnhwLmNvbS8K ICAtIGRvbid0IG1peCBEU0kgaG9zdCBhbmQgYnJpZGdlIGluaXRpYWxpemF0aW9uCiAgLSBvbmx5 IHNlbGVjdCBvdXRwdXQgc291cmNlIG9uY2UKICAtIGRlZmVyIHByb2JlIHdoZW4gcGFuZWwgaXMg bm90IHJlYWR5IHRvIGZpeCB1c2FnZSBhcyBhIG1vZHVsZQogIC0gdXNlIGNvcnJlY3QgcmVzZXQg c2VxdWVuY2UgYXMgZGVzY3JpYmVkIGJ5IFJvYmVydAogICAgKGFuZCBwcm92aWRlZCBieSBOV0wp CiAgLSB1c2UgbW9kZS0+Y2xvY2sgaW5zdGVhZCBvZiBtb2RlLT5jcnRjX2Nsb2NrCi0gQWRkIHRl c3RlZCBieSBmcm9tIE1hcnRpbiBLZXBwbGluZ2VyLCB0aGFua3MhCi0gRHJvcCBwbGF0Zm9ybSBz cGVjaWZpYyBkYXRhIChhcyBzdWdnZXN0ZWQgcHJldmlvdXNseSBieSBMYXVyZW50IFBpbmNoYXJ0 IGFuZAogIEFuZHJ6ZWogSGFqZGEpIHNpbmNlIGlteDhxKiBuZWVkcyBhbm90aGVyIHNldCBvZiBh YnN0cmFjdGlvbnMgd2l0aCB0aGUgbmV3CiAgcmVzZXQgc2VxdWVuY2UgYW5kIHRoYXQncyBlYXNp ZXIgdG8gZG8gd2hlbiBhZGRpbmcgaW14OHEqIHN1cHBvcnQgcmF0aGVyIHRoZW4KICBhZGRpbmcg d3JvbmcgYWJzdHJhY3Rpb24gbm93LgotIFVwZGF0ZSBiaW5kaW5ncyB0byB1c2UgcHJvcGVyIGNs b2NrIGFuZCBpcnEgbmFtZXMgdG8gbWFrZSB0aGUgZXhhbXBsZSBtYXRjaAogIHJlYWxpdHkgbW9y ZSBjbG9zZWx5LgotIFVzZSBgZmFsbHRocm91Z2g7YCBpbnN0ZWFkIG9mIC8qIEZhbGwgdGhyb3Vn aCAqLyBpbiBzd2l0Y2ggc3RhdGVtZW50cwotIE1vdmUgdG8gbmV4dC0yMDIwMDIyNgoKQ2hhbmdl cyBmcm9tIHY4OgotIERyb3AgcmVzZXQgcXVpcmsuIEl0J3Mgbm90IG5lZWRlZCB3aXRoIG14c2Zi IGFuZCBzb21ldGltZXMgdHJpZ2dlcnMgYSBzaGlmdGVkIGRpc3BsYXkuCgpDaGFuZ2VzIGZyb20g djc6Ci0gUGVyIHJldmlldyBjb21tZW50cyBieSBBbmRyemVqIEhhamRhCiAgaHR0cHM6Ly9sb3Jl Lmtlcm5lbC5vcmcvbGludXgtYXJtLWtlcm5lbC9jODZiN2NhMi03Nzk5LWVhZmQtYzM4MC1lNGI1 NTE1MjA4MzdAc2Ftc3VuZy5jb20vCiAgLSBEcm9wIHNwYXJlIGVtcHR5IGxpbmUKICAtIGhhbmRs ZSBud2xfZHNpX3dyaXRlIGVycm9ycwogIC0gYmV0dGVyIGhhbmRsZSByZWFkIGVycm9ycwogIC0g dW53aW5kIGluIGNhc2Ugb2YgZXJyb3IgaW4gbndsX2RzaV9lbmFibGUKICAtIHVzZSBicmlkZ2Vf dG9fZHNpKCkgaW5zdGVhZCBvZiBhY2Nlc3NpbmcgZHJpdmVyX3ByaXZhdGUKICAtIGRvbid0IGxv ZyBvbiAtRVBST0JFREVGRVIgd2hlbiBmZXRoaW5nIHRoZSByZXNldCBjb250cm9sbGVyCiAgLSB1 c2UgZW5kcG9pbnQgbnVtYmVyIHRvIGRldGVybWluZSBpbnB1dAotIFNwb3R0ZWQgYnkga2J1aWxk IHRlc3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+CiAgaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGlu dXgtYXJtLWtlcm5lbC8yMDE5MDkyMzA2NDQucWZTS2JOZjklMjVsa3BAaW50ZWwuY29tLwogIFVz ZSBzaWduZWQgcmV0dXJuIHR5cGUgZm9yIG53bF9kc2lfZ2V0X2RwaV9waXhlbF9mb3JtYXQKLSBE cm9wIGNvbm5lY3RvciB0eXBlIGZyb20gZHJtX3BhbmVsX2JyaWRnZV9hZGQKLSBEb24ndCBmb3Jn ZXQgdG8gc2V0IGFuIGVycm9yIHZhbHVlIG9uIGRzaSByZWFkcwoKQ2hhbmdlcyBmcm9tIHY1Ogot IFBlciByZXZpZXcgY29tbWVudHMgYnkgQW5kcnplaiBIYWpkYQogIGh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE5LVNlcHRlbWJlci8yMzUyODEuaHRt bAogIC0gRml4IGluY2x1ZGUgZmlsZSBvcmRlcmluZwogIC0gQWRkIGEgY29tbWVudCB0byBud2xf ZHNpX3BsYXRmb3JtX2RhdGEgdGhhdCB3aWxsIGFsbG93IHRvIGFkZCBzdXBwb3J0CiAgICBhdCBs ZWFzdCBmb3IgdGhlIGkuTVg4UU0KICAtIE1lcmdlIGRyaXZlciBpbnRvIGEgc2luZ2xlIGZpbGUg cGx1cyB0aGUgcmVnaXN0ZXIgZGVmcyBpbiBhIHNlcGFyYXRlIGhlYWRlcgotIE1ha2UgbW9yZSBm dW5jdGlvbnMgYW5kIHN0cnVjdHMgc3RhdGljCgpDaGFuZ2VzIGZyb20gdjQ6Ci0gQ29sbGVjdCBS ZXZpZXdlZC1ieTogZnJvbSBSb2IgSGVycmluZywgdGhhbmtzIQogIGh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE5LVNlcHRlbWJlci8yMzM5NzkuaHRt bAotIFNwb3R0ZWQgYnkga2J1aWxkIHRlc3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+CiAgaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIwMTktU2VwdGVtYmVy LzIzMzg2MC5odG1sCiAgaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJp LWRldmVsLzIwMTktU2VwdGVtYmVyLzIzMzg2My5odG1sCiAgLSBmaXggZm9ybWF0IHN0cmluZyBm b3Igc2l6ZV90CiAgLSBVc2UgRElWNjRfVTY0X1JPVU5EX1VQIHRvIGZpeCBidWlsZCBvbiAzMiBi aXQgYXJjaGl0ZWN0dXJlcwogICAgV2UgY2FuJ3QgdXNlIHNpbXBsZSBzaGlmdCBzaW5kIGQgYW5k IG4gYXJlIHNpbWlsYXIgaW4gc2l6ZSBhbmQKICAgIHdlIG5lZWQgZnVsbCBwcmVjaXNpb24KLSBG aXggZGVidWcgY2ZnX3RfcG9zdCBkZWJ1ZyBwcmludCBvdXQKLSBBdm9pZCBQU0VDX1BFUl9TRUMK LSBNb3ZlIHRpbWVvdXQgLyBvdmVyZmxvdyBoYW5kbGluZyBvdXQgb2YgbndsX2RzaV9maW5pc2hf dHJhbnNtaXNzaW9uLAogIGl0IHdvdWxkIG5ldmVyIGVuZCB1cCBiZWluZyByZXBvcnRlZCBzaW5j ZSB0aGUgY2FsbCB0byB0aGUgZnVuY3Rpb24KICB3YXMgZ3VhcmRlZCBieSBmbGFncy4KLSBEcm9w ICdzdXBwb3J0IGZvcicgZnJvbSBLQ29uZmlnIHRpdGxlIHRvIG1ha2UgaXQgbWF0Y2ggdGhlIG90 aGVyCiAgZHJpdmVycyBpbiB0aGF0IHN1Ym1lbnUKCkNoYW5nZXMgZnJvbSB2MzoKLSBQZXIgcmV2 aWV3IGNvbW1lbnRzIGJ5IFJvYmVydCBDaGlyYXMKICBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxOS1BdWd1c3QvMjMyNTgwLmh0bWwKICAtIEFkZCBS b2JlcnQncyB7U2lnbmVkLW9mZixUZXN0ZWR9LWJ5OgogIC0gUmVzcGVjdCBudW1iZXIgb2YgbGFu ZXMgd2hlbiBjYWxjdWx0aW5nIGJhbmR3aWR0aCBsaW1pdHMKICAtIERyb3AgZHVwbGljYXRlIE5X TF9EU0lfRU5BQkxFX01VTFRfUEtUUyBzZXR1cAotIFBlciB0ZXN0aW5nIGJ5IFJvYmVyIENoaXJh cwogIGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE5 LUF1Z3VzdC8yMzM2ODguaHRtbAogIC0gRHJvcCBkdXBsaWNhdGUgKGFuZCB0b28gZWFybHkpIGRy bV9icmlkZ2VfYWRkKCkgaW4gbndsX2RzaV9wcm9iZSgpIHRoYXQKICAgIG1hZGUgbXhzZmIgZmFp bCB0byBjb25uZWN0IHRvIHRoZSBicmlkZ2Ugc2luY2UgdGhlIHBhbmVsX2JyaWRnZSB3YXMgbm90 IHVwCiAgICB5ZXQuIGRybV9icmlkZ2VfYWRkKCkgaGFwcGVucyBpbiBud2xfZHNpX2hvc3RfYXR0 YWNoKCkgd2hlcmUgYWZ0ZXIgdGhlCiAgICBwYW5lbF9icmlkZ2Ugd2FzIHNldCB1cC4KLSBQZXIg cmV2aWV3IGNvbW1lbnRzIGJ5IFJvYiBIZXJyaW5nIG9uIGJpbmRpbmdzCiAgaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIwMTktQXVndXN0LzIzMzE5Ni5o dG1sCiAgLSBkcm9wIGRlc2NyaXB0aW9uIGZyb20gcG93ZXItZG9tYWlucyBhbmQgcmVzZXRzCiAg LSBhbGxvdyBCU0QgMiBjbGF1c2UgbGljZW5zZSBhcyB3ZWxsCiAgLSBtYWtlIHBvcnRzIG1vcmUg c3BlY2lmaWMKICAtIGFkZCAjYWRkcmVzcy1jZWxscywgI3NpemUtY2VsbHMgYXMgcmVxdWlyZWQK ICAtIHVzZSBhZGRpdGlvbmFsUHJvcGVydGllcwogIC0gcGFuZWwgaXMgb2YgdHlwZSBvYmplY3QK CkNoYW5nZXMgZnJvbSB2MjoKLSBQZXIgcmV2aWV3IGNvbW1lbnRzIGJ5IFJvYiBIZXJyaW5nCiAg aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIwMTktQXVn dXN0LzIzMDQ0OC5odG1sCiAgLSBiaW5kaW5nczoKICAgIC0gU2ltcGxpZnkgYnkgcmVzdHJpY3Rp bmcgdG8gZnNsLGlteDhtcS1ud2wtZHNpCiAgICAtIGRvY3VtZW50IHJlc2V0IGxpbmVzCiAgICAt IGFkZCBwb3J0QHswLDF9CiAgICAtIHVzZSBhIHJlYWwgY29tcGF0aWJsZSBzdHJpbmcgZm9yIHRo ZSBwYW5lbAogICAgLSByZXNldHMgYXJlIHJlcXVpcmVkCi0gUGVyIHJldmlldyBjb21tZW50cyBi eSBBcm5kIEJlcmdtYW5uCiAgaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMv ZHJpLWRldmVsLzIwMTktQXVndXN0LzIzMDg2OC5odG1sCiAgLSBEb24ndCBhY2Nlc3MgaW9tdXhj X2dwciByZWdzIGRpcmVjdGx5LiBUaGlzIGFsbG93cyB1cyB0byBkcm9wIHRoZQogICAgZmlyc3Qg cGF0Y2ggaW4gdGhlIHNlcmllcyB3aXRoIHRoZSBpb211eGNfZ3ByIGZpZWxkIGRlZmluZXMuCi0g UGVyIHJldmlldyBjb21tZW50cyBieSBMYXVyZW50IFBpbmNoYXJ0CiAgRml4IHdvcmRpbmcgaW4g YmluZGluZ3MKLSBBZGQgbXV4LWNvbnRyb2xzIHRvIGJpbmRpbmdzCi0gRG9uJ3QgcHJpbnQgZXJy b3IgbWVzc2FnZSBvbiBkcGh5IHByb2JlIGRlZmVycmFsCgpDaGFuZ2VzIGZyb20gdjE6Ci0gUGVy IHJldmlldyBjb21tZW50cyBieSBTYW0gUmF2bmJvcmcKICBodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxOS1KdWx5LzIyODEzMC5odG1sCiAgLSBDaGFu Z2UgYmluZGluZyBkb2NzIHRvIFlBTUwKICAtIGJ1aWxkOiBEb24ndCBhbHdheXMgdmlzaXQgaW14 LW53bC8KICAtIGJ1aWxkOiBBZGQgaGVhZGVyLXRlc3QteQogIC0gU29ydCBoZWFkZXJzIGFjY29y ZGluZyB0byBEUk0gY29udmVudGlvbgogIC0gVXNlIGRybV9kaXNwbGF5X21vZGUgaW5zdGVhZCBv ZiB2aWRlbW9kZQotIFBlciByZXZpZXcgY29tbWVudHMgYnkgRmFiaW8gRXN0ZXZhbQogIGh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE5LUp1bHkvMjI4 Mjk5Lmh0bWwKICAtIERvbid0IHJlc3RyaWN0IGJ1aWxkIHRvIEFSQ0hfTVhDCiAgLSBEcm9wIHVu dXNlZCBpbmNsdWRlcwogIC0gRHJvcCB1bnJlYWNoYWJsZSBjb2RlIGluIGlteF9ud2xfZHNpX2Jy aWRnZV9tb2RlX2ZpeHVwKCkKICAtIERyb3AgcmVtYWluaW5nIGNhbGxzIG9mIGRldl9lcnIoKSBh bmQgdXNlIERSTV9ERVZfRVJSKCkKICAgIGNvbnNpc3RlbnRseS4KICAtIFVzZSBkZXZtX3BsYXRm b3JtX2lvcmVtYXBfcmVzb3VyY2UoKQogIC0gRHJvcCBkZXZtX2ZyZWVfaXJxKCkgaW4gcHJvYmUo KSBlcnJvciBwYXRoCiAgLSBVc2Ugc2luZ2xlIGxpbmUgY29tbWVudHMgd2hlcmUgc3VmZmljaWVu dAogIC0gVXNlIDxsaW51eC90aW1lNjQuaD4gaW5zdGVhZCBvZiBkZWZpbmluZyBVU0VDX1BFUl9T RUMKICAtIE1ha2UgaW5wdXQgc291cmNlIHNlbGVjdCBpbXg4IHNwZWNpZmljCiAgLSBEcm9wIDxh c20vdW5hbGlnbmVkLmg+IGluY2x1c2lvbiAoYWZ0ZXIgcmVtb3ZhbCBvZiBnZXRfdW5hbGlnbmVk X2xlMzIpCiAgLSBEcm9wIGFsbCBFWFBPUlRfU1lNQk9MX0dQTCgpIGZvciBmdW5jdGlvbnMgdXNl ZCBpbiB0aGUgc2FtZSBtb2R1bGUKICAgIGJ1dCBkaWZmZXJlbnQgc291cmNlIGZpbGVzLgogIC0g RHJvcCBud2xfZHNpX2VuYWJsZV97cngsdHh9X2Nsb2NrKCkgYnkgaW52b2tpbmcgY2xrX3ByZXBh cmVfZW5hYmxlKCkKICAgIGRpcmVjdGx5CiAgLSBSZW1vdmUgcG9pbnRsZXNzIGNvbW1lbnQKLSBM YXVyZW50IFBpbmNoYXJ0CiAgaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMv ZHJpLWRldmVsLzIwMTktSnVseS8yMjgzMTMuaHRtbAogIGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE5LUp1bHkvMjI4MzA4Lmh0bWwKICAtIERyb3Ag KG9uIGlNWDhNUSkgdW51c2VkIGNzciByZWdtYXAKICAtIFVzZSBOV0xfTUFYX1BMQVRGT1JNX0NM T0NLUyBldmVyeXdoZXJlCiAgLSBEcm9wIGdldF91bmFsaWduZWRfbGUzMigpIHVzYWdlCiAgLSBy ZW1vdmUgZHVwbGljYXRlICdmb3IgdGhlJyBpbiBiaW5kaW5nIGRvY3MKICAtIERvbid0IGluY2x1 ZGUgdW51c2VkIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICAtIERvbid0IGluY2x1ZGUgdW51c2Vk IDxsaW51eC9jb21wb25lbnQuaD4KICAtIERyb3AgZHBtc19tb2RlIGZvciB0cmFja2luZyBzdGF0 ZSwgdHJ1c3QgdGhlIGRybSBsYXllciBvbiB0aGF0CiAgLSBVc2UgcG1fcnVudGltZV9wdXQoKSBp bnN0ZWFkIG9mIHBtX3J1bnRpbWVfcHV0X3N5bmMoKQogIC0gRG9uJ3Qgb3ZlcndyaXRlIGVuY29k ZXIgdHlwZQogIC0gTWFrZSBpbXhfbndsX3BsYXRmb3JtX2RhdGEgY29uc3QKICAtIFVzZSB0aGUg cmVzZXQgY29udHJvbGxlciBBUEkgaW5zdGVhZCBvZiBvcGVuIGNvZGluZyB0aGF0IHBsYXRmb3Jt IHNwZWNpZmljCiAgICBwYXJ0CiAgLSBVc2UgPGxpbnV4L2JpdGZpZWxkLmg+IGludGVhZCBvZiBt YWtpbmcgdXAgb3VyIG93biBkZWZpbmVzCiAgLSBuYW1lIG1pcGlfZHNpX3RyYW5zZmVyIGxlc3Mg Z2VuZXJpYzogbndsX2RzaV90cmFuc2ZlcgogIC0gZW5zdXJlIGNsZWFuIGluIC5yZW1vdmUgYnkg Y2FsbGluZyBtaXBpX2RzaV9ob3N0X3VucmVnaXN0ZXIuCiAgLSBwcmVmaXggY29uc3RhbnRzIGJ5 IE5XTF9EU0lfCiAgLSBwcm9wZXJseSBmb3JtYXQgdHJhbnNmZXJfZGlyZWN0aW9uIGVudW0KICAt IHNpbXBsaWZ5IHBsYXRmb3JtIGNsb2NrIGhhbmRsaW5nCiAgLSBEb24ndCBtb2RpZnkgc3RhdGUg aW4gbW9kZV9maXh1cCgpIGFuZCB1c2UgbW9kZV9zZXQoKSBpbnN0ZWFkCiAgLSBEcm9wIGJyaWRn ZSBkZXRhY2goKSwgYWxyZWFkeSBoYW5kbGUgYnkgbndsX2RzaV9ob3N0X2RldGFjaCgpCiAgLSBE cm9wIFVTRV8qX1FVSVJLKCkgbWFjcm9zCi0gRHJvcCAoZm9yIG5vdykgdW51c2VkIGNsb2NrIGRl Zm5pdGlvbnMuICdwaXhlbCcgYW5kICdieXBhc3MnIGNsb2NrIHdpbGwgYmUKICB1c2VkIGZvciBp Lk1YOCBTb0NzIGJ1dCBzaW5jZSB0aGV5J3JlIHVudXNlZCBhdG0gZHJvcCB0aGUgZGVmaW5pdGlv bnMgLSBidXQKICBrZWVwIHRoZSBsb2dpYyB0byBlbmFibGUvZGlzYWJsZSBzZXZlcmFsIGNsb2Nr cyBpbiBwbGFjZSBzaW5jZSB3ZSBrbm93IHdlJ2xsCiAgbmVlZCBpdCBpbiB0aGUgZnV0dXJlLgoK Q2hhbmdlcyBmcm9tIHYwOgotIEFkZCBxdWlyayBmb3IgSU1ROE1RIHNpbGljb24gQjAgcmV2aXNp b24gdG8gbm90IG1lc3Mgd2l0aCB0aGUKICBzeXN0ZW0gcmVzZXQgY29udHJvbGxlciBvbiBwb3dl ciBkb3duIHNpbmNlIGVuYWJsZSgpIHdvbid0IHdvcmsKICBvdGhlcndpc2UuCi0gRHJvcCBkZXZt X2ZyZWVfaXJxKCkgaGFuZGxlZCBieSB0aGUgZGV2aWNlIGRyaXZlciBjb3JlCi0gRGlzYWJsZSB0 eCBlc2MgY2xvY2sgYWZ0ZXIgdGhlIHBoeSBwb3dlciBkb3duIHRvIHVuYnJlYWsKICBkaXNhYmxl L2VuYWJsZSAodW5ibGFuay9ibGFuaykKLSBBZGQgcG9ydHMgdG8gZHQgYmluZGluZyBkb2NzCi0g U2VsZWN0IEdFTkVSSUNfUEhZX01JUElfRFBIWSBpbnN0ZWFkIG9mIEdFTkVSSUNfUEhZIGZvcgog IHBoeV9taXBpX2RwaHlfZ2V0X2RlZmF1bHRfY29uZmlnCi0gU2VsZWN0IERSTV9NSVBJX0RTSQot IEluY2x1ZGUgZHJtX3ByaW50LmggdG8gZml4IGJ1aWxkIG9uIG5leHQtMjAxOTA0MDgKLSBEcm9w IHNvbWUgZGVidWdnaW5nIG1lc3NhZ2VzCi0gTmV3bGluZSB0ZXJtaW5hdGUgYWxsIERSTV8gcHJp bnRvdXRzCi0gVHVybiBjb21wb25lbnQgZHJpdmVyIGludG8gYSBkcm0gYnJpZGdlCgpbMF06IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE5LU1heS8y MTk0ODQuaHRtbApbMV06IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9zZXJpZXMv NjI4MjIvCgpHdWlkbyBHw7xudGhlciAoMik6CiAgZHQtYmluZGluZ3M6IGRpc3BsYXkvYnJpZGdl OiBBZGQgYmluZGluZyBmb3IgTldMIG1pcGkgZHNpIGhvc3QKICAgIGNvbnRyb2xsZXIKICBkcm0v YnJpZGdlOiBBZGQgTldMIE1JUEkgRFNJIGhvc3QgY29udHJvbGxlciBzdXBwb3J0CgogLi4uL2Jp bmRpbmdzL2Rpc3BsYXkvYnJpZGdlL253bC1kc2kueWFtbCAgICAgIHwgIDIxNiArKysKIGRyaXZl cnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZyAgICAgICAgICAgICAgICB8ICAgMTYgKwogZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZSAgICAgICAgICAgICAgIHwgICAgMSArCiBkcml2ZXJz L2dwdS9kcm0vYnJpZGdlL253bC1kc2kuYyAgICAgICAgICAgICAgfCAxMjE4ICsrKysrKysrKysr KysrKysrCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL253bC1kc2kuaCAgICAgICAgICAgICAgfCAg MTQ0ICsrCiA1IGZpbGVzIGNoYW5nZWQsIDE1OTUgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUg MTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2JyaWRnZS9u d2wtZHNpLnlhbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL253 bC1kc2kuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvbndsLWRz aS5oCgotLSAKMi4yMy4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK