From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0AC4AC433FE for ; Thu, 24 Nov 2022 09:02:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=vOeLXeIEo7TP5rwOBY2yUw4aeGhuxmc2YN1sYvIiY+w=; b=JbV5xu62up07zZ PgfXZT+JZKa8lTgmjNNFt9YQFSK5beEfP/KR1VmgnMq2KVNFiPPpx6vdPJfVXwsgQMycYBnATaDoz WUgq3UPo4QHc3GDN1BYV8nEom+pjZPnCsxiaeum76g/u2x3ZGveGGk5MoA+B8OTYOwakXb16tc6tg UoOwcJD77xhS2zrar6C/kN2kj6JPaDfyJU4nwvE4Od0TUs2Ch7RbcM1uKT2caUnXEeqyt3ikNTQj+ 2i6E4SZi6bMJq7xctjEBd2YW/yyx3Q5nE8HJ5csaBlGTNEmUHz48dh3+u8QrRhPQEy79PFjXFR15q 9yo+rWFqRlyK+L0CtjZw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oy86A-006nlt-UG; Thu, 24 Nov 2022 09:00:47 +0000 Received: from mail-pg1-x52e.google.com ([2607:f8b0:4864:20::52e]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oy866-006ngz-K8 for linux-arm-kernel@lists.infradead.org; Thu, 24 Nov 2022 09:00:44 +0000 Received: by mail-pg1-x52e.google.com with SMTP id r18so1037334pgr.12 for ; Thu, 24 Nov 2022 01:00:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=w+w4tmZDiPM69E7coV2CH15uQShu4W0QLk13WRdoYqo=; b=dD5T/z9NKIJhTp/gaxnDGrU96mZ28E5PpqSuka/NwlG93DRTeTfBa75wdv99Fncy8D puavEF4RcN5c2+Y35jocuaOW69CtUX+kkBEPhWsa0eGlGNPUCoHrwrUgLL5xC/puH3FM q81wpISgFha+xw6j6WpjkF0/Kkt+KyMMNf/UgPGc1V9Q3kcuMkG2xO8Z6MCBYeT15/8S j15flgsrb0Em9z5rcHvTlnMyD36xcdaPycMktGq18iOKEnrm1y+TCYKBGge3vWd39AWe 9nKKii5tMvSfR4TvKT7SiYnX5aczyB5llNYPkWBlfVp2ZziByxguNNW59TcJytD7KMC+ DW/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=w+w4tmZDiPM69E7coV2CH15uQShu4W0QLk13WRdoYqo=; b=gtgvbHyGX8HySdr5olH4PbeTMQqq7aCtQMEcGv66b6nry6p7jdH9y3uU/NTJvgNU4t zQWJzDGd+nE66syZYeLOOoLeR89tpOqbG3Xn+P4ollf96TQPUdOEzvvYMs17WT5nr4+s 433Uz0ArKq0O3nighdGqqrSU7Q/pEmDDdGVqQorVzIAdhBr3EozqnhL7XEwfvIlV3uk8 q0/BKBIR7d3VmLHkbSGtYbocVTGOupK0e9y3Xm4TMCLYEJT8vbHLJNn72ch6d5d5Eb+b DHt5pGX5tOnpYuP+BIG+ZOmfZ73z47wdNSysG4y+PotaqHJuuW2UUrVAGNaXhCpuP+Q4 1voA== X-Gm-Message-State: ANoB5pknwwRnmvEgrYTmMo2kL5GYlh69c1DDi9YBPPguR92ZG3p+iNX8 iW7Od9VzSUfDKPVKrBxrszKz X-Google-Smtp-Source: AA0mqf61Q3kR3fx0rJaTtcPJhpcU3lR6pU8IQfMAubF9oJ8HCJATlfXwTnvlGQZa466xICWBLj/+jQ== X-Received: by 2002:a63:f241:0:b0:46f:da0:f093 with SMTP id d1-20020a63f241000000b0046f0da0f093mr10972642pgk.441.1669280439701; Thu, 24 Nov 2022 01:00:39 -0800 (PST) Received: from thinkpad ([59.92.97.13]) by smtp.gmail.com with ESMTPSA id g16-20020aa796b0000000b005385e2e86eesm700314pfk.18.2022.11.24.01.00.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Nov 2022 01:00:38 -0800 (PST) Date: Thu, 24 Nov 2022 14:30:28 +0530 From: Manivannan Sadhasivam To: Frank Li Cc: lpieralisi@kernel.org, aisheng.dong@nxp.com, bhelgaas@google.com, devicetree@vger.kernel.org, festevam@gmail.com, imx@lists.linux.dev, jdmason@kudzu.us, kernel@pengutronix.de, kishon@ti.com, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lorenzo.pieralisi@arm.com, lznuaa@gmail.com, maz@kernel.org, ntb@lists.linux.dev, peng.fan@nxp.com, robh+dt@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org, tglx@linutronix.de Subject: Re: [PATCH v13 2/2] PCI: endpoint: pci-epf-vntb: using platform MSI as doorbell Message-ID: <20221124090028.GC5119@thinkpad> References: <20221124055036.1630573-1-Frank.Li@nxp.com> <20221124055036.1630573-3-Frank.Li@nxp.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221124055036.1630573-3-Frank.Li@nxp.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221124_010042_776744_8CA699C1 X-CRM114-Status: GOOD ( 43.47 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVGh1LCBOb3YgMjQsIDIwMjIgYXQgMTI6NTA6MzZBTSAtMDUwMCwgRnJhbmsgTGkgd3JvdGU6 Cj4g4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQICAg4pSM4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQICAg4pSM4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQCj4g4pSCICAgICAg ICAgICAg4pSCICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICDi lIIgICAgICAgICAgICAgICAg4pSCCj4g4pSCICAgICAgICAgICAg4pSCICAg4pSCIFBDSSBFbmRw b2ludCAgICAgICAgICAgICAgICAgICAgICDilIIgICDilIIgUENJIEhvc3QgICAgICAg4pSCCj4g 4pSCICAgICAgICAgICAg4pSCICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICDilIIgICDilIIgICAgICAgICAgICAgICAg4pSCCj4g4pSCICAgICAgICAgICAg4pSC4peE4pSA 4pSA4pSkIDEucGxhdGZvcm1fbXNpX2RvbWFpbl9hbGxvY19pcnFzKCnilIIgICDilIIgICAgICAg ICAgICAgICAg4pSCCj4g4pSCICAgICAgICAgICAg4pSCICAg4pSCICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICDilIIgICDilIIgICAgICAgICAgICAgICAg4pSCCj4g4pSCIE1TSSAg ICAgICAg4pSc4pSA4pSA4pa64pSCIDIud3JpdGVfbXNpX21zZygpICAgICAgICAgICAgICAgICDi lJzilIDilIDilrrilJzilIBCQVI8bj4gICAgICAgICDilIIKPiDilIIgQ29udHJvbGxlciDilIIg ICDilIIgICB1cGRhdGUgZG9vcmJlbGwgcmVnaXN0ZXIgYWRkcmVzc+KUgiAgIOKUgiAgICAgICAg ICAgICAgICDilIIKPiDilIIgICAgICAgICAgICDilIIgICDilIIgICBmb3IgQkFSICAgICAgICAg ICAgICAgICAgICAgICAgIOKUgiAgIOKUgiAgICAgICAgICAgICAgICDilIIKPiDilIIgICAgICAg ICAgICDilIIgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgIOKU giAzLiBXcml0ZSBCQVI8bj7ilIIKPiDilIIgICAgICAgICAgICDilILil4TilIDilIDilLzilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilLzilIDilIDilIDi lKQgICAgICAgICAgICAgICAg4pSCCj4g4pSCICAgICAgICAgICAg4pSCICAg4pSCICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICDilIIgICAgICAgICAgICAgICAg4pSCCj4g 4pSCICAgICAgICAgICAg4pSc4pSA4pSA4pa64pSCIDQuSXJxIEhhbmRsZSAgICAgICAgICAgICAg ICAgICAgICDilIIgICDilIIgICAgICAgICAgICAgICAg4pSCCj4g4pSCICAgICAgICAgICAg4pSC ICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICDilIIgICAgICAg ICAgICAgICAg4pSCCj4g4pSCICAgICAgICAgICAg4pSCICAg4pSCICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICDilIIgICDilIIgICAgICAgICAgICAgICAg4pSCCj4g4pSU4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYCj4gCgpUaGVyZSBhcmUgYXQgbGVhc3Qg Y291cGxlIG9mIEJBUiByZWdpb25zIHVzZWQgaW4gdGhpcyBwYXRjaCBidXQgdGhleSB3ZXJlIG5v dAptZW50aW9uZWQgaW4gdGhlIGFib3ZlIGRpYWdyYW0uCgpUaGUgc3ViamVjdCBzaG91bGQgYmU6 CgoiUENJOiBlbmRwb2ludDogcGNpLWVwZi12bnRiOiBVc2UgRVAgTVNJIGNvbnRyb2xsZXIgdG8g aGFuZGxlIERCIGZyb20gaG9zdCIKCj4gVXNpbmcgcGxhdGZvcm0gTVNJIGludGVycnVwdCBjb250 cm9sbGVyIGFzIGVuZHBvaW50KEVQKSdzIGRvb3JiZWxsLgo+IAoKQWJvdmUgbGluZSBpcyBub3Qg bmVlZGVkLgoKPiBUaGUgbWVtb3J5IGFzc2lnbmVkIGZvciBCQVIgcmVnaW9uIGJ5IHRoZSBQQ0kg aG9zdCBpcyBtYXBwZWQgdG8gdGhlCgpXaGljaCBCQVI/IChCQVIgMSBha2EuIERCIEJBUik/IFRo ZXJlIGFyZSBtdWx0aXBsZSBCQVIgcmVnaW9ucyBleHBvc2VkIGJ5IHRoaXMgZnVuY3Rpb24gZHJp dmVyLgoKPiBtZXNzYWdlIGFkZHJlc3Mgb2YgcGxhdGZvcm0gbXNpIGludGVycnVwdCBjb250cm9s bGVyIGluIFBDSSBFbmRwb2ludC4KCnMvbXNpL01TSS4gQWxzbywgdXNlIGVpdGhlciBFbmRwb2lu dCBvciBFUCwgcGljayBvbmUgYnV0IG5vdCBib3RoLgoKPiBTdWNoIHRoYXQsIHdoZW5ldmVyIHRo ZSBQQ0kgaG9zdCB3cml0ZXMgdG8gdGhlIEJBUiByZWdpb24sIGl0IHdpbGwKPiB0cmlnZ2VyIGFu IElSUSBpbiB0aGUgRVAuCj4gCj4gQmFzaWMgd29ya2luZyBmb2xsb3cgYXMKCiJ3b3JrIGZsb3cg aXMiPwoKPiAxLiBFUCBmdW5jdGlvbiBkcml2ZXIgY2FsbCBwbGF0Zm9ybV9tc2lfZG9tYWluX2Fs bG9jX2lycXMoKSBhbGxvYyBhCgpwY2ktZXBmLXZudGIgZnVuY3Rpb24gZHJpdmVyIGNhbGxzIHBs YXRmb3JtX21zaV9kb21haW5fYWxsb2NfaXJxcygpIHRvIGFsbG9jYXRlCk1TSSdzIGZyb20gdGhl IHBsYXRmb3JtIE1TSSBjb250cm9sbGVyLgoKPiBNU0kgaXJxIGZyb20gTVNJIGNvbnRyb2xsZXIg d2l0aCBjYWxsIGJhY2sgZnVuY3Rpb24gd3JpdGVfbXNpX21zZygpOwo+IDIuIHdyaXRlX21zZ19t c2cgd2lsbCBjb25maWcgQkFSIGFuZCBtYXAgdG8gYWRkcmVzcyBkZWZpbmVkIGluIG1zaV9tc2c7 CgpUaGUgZXBmX250Yl93cml0ZV9tc2lfbXNnKCkgcGFzc2VkIGFzIGEgY2FsbGJhY2sgd2lsbCB3 cml0ZSB0aGUgb2Zmc2V0IG9mIHRoZQpNU0kgY29udHJvbGxlcidzIE1TSSBhZGRyZXNzIGRlZGlj YXRlZCBmb3IgZWFjaCBNU0kgdG8gdGhlIGRvb3JiZWxsIHJlZ2lzdGVyCmRiX29mZnNldCBhbmQg YWxzbyB3cml0ZXMgdGhlIE1TSSBkYXRhIHRvIGRiX2RhdGEgcmVnaXN0ZXIgaW4gdGhlIENUUkwg QkFSCnJlZ2lvbi4KCj4gMy4gSG9zdCBzaWRlIHRyaWdnZXIgYW4gSVJRIGF0IEVuZHBvaW50IGJ5 IHdyaXRlIHRvIEJBUiByZWdpb24uCj4gCgpGaW5hbGx5LCB0aGUgaG9zdCBjYW4gdHJpZ2dlciBk b29yYmVsbCBieSByZWFkaW5nIHRoZSBvZmZzZXQgb2YgdGhlIGRvb3JiZWxsCmZyb20gZGJfb2Zm c2V0IHJlZ2lzdGVyIGFuZCB3cml0aW5nIHRoZSBkYXRhIHJlYWQgZnJvbSBkYl9kYXRhIHJlZ2lz dGVyIGluIENUUkwKQkFSIHJlZ2lvbiB0byB0aGUgY29tcHV0ZWQgYWRkcmVzcyBpbiB0aGUgREIg QkFSIHJlZ2lvbi4KCj4gQWRkIE1TSSBkb29yYmVsbCBzdXBwb3J0IGZvciBwY2ktZXBmLXZudGIu IFF1ZXJ5IGlmIHN5c3RlbSBoYXMgYW4gTVNJCj4gY29udHJvbGxlci4gU2V0IHVwIGRvb3JiZWxs IGFkZHJlc3MgYWNjb3JkaW5nIHRvIHN0cnVjdCBtc2lfbXNnLgo+IAo+IFNvIFBDSSBob3N0IGNh biB3cml0ZSB0aGlzIGRvb3JiZWxsIGFkZHJlc3MgdG8gdHJpZ2dlciBFUCBzaWRlJ3MgSVJRLgo+ IAo+IElmIG5vIE1TSSBjb250cm9sbGVyIGV4aXN0cywgZmFsbCBiYWNrIHRvIHNvZnR3YXJlIHBv bGxpbmcuCj4gCgoiQWRkIGRvb3JiZWxsIHN1cHBvcnQgdG8gcGNpLWVwZi12bnRiIGZ1bmN0aW9u IGRyaXZlciBtYWtpbmcgdXNlIG9mIHRoZSBwbGF0Zm9ybQpNU0kgY29udHJvbGxlci4gSWYgdGhl IE1TSSBjb250cm9sbGVyIGlzIG5vdCBhdmFpbGFibGUsIGZhbGxiYWNrIHRvIHRoZSBwb2xsaW5n Cm1ldGhvZC4iCgpBbHNvLCBwbGVhc2UgbW92ZSB0aGlzIHBhcmFncmFwaCB0byB0aGUgYmVnaW5u aW5nIG9mIHRoZSBkZXNjcmlwdGlvbi4KCj4gU2lnbmVkLW9mZi1ieTogRnJhbmsgTGkgPEZyYW5r LkxpQG54cC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvcGNpL2VuZHBvaW50L2Z1bmN0aW9ucy9wY2kt ZXBmLXZudGIuYyB8IDE0NiArKysrKysrKysrKysrKystLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDEy NSBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9wY2kvZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1lcGYtdm50Yi5jIGIvZHJpdmVycy9wY2kvZW5k cG9pbnQvZnVuY3Rpb25zL3BjaS1lcGYtdm50Yi5jCj4gaW5kZXggMGQ3NDQ5NzVmODE1Li5mNzcw YTA2OGU1OGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9wY2kvZW5kcG9pbnQvZnVuY3Rpb25zL3Bj aS1lcGYtdm50Yi5jCj4gKysrIGIvZHJpdmVycy9wY2kvZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1l cGYtdm50Yi5jCj4gQEAgLTQ0LDYgKzQ0LDcgQEAKPiAgI2luY2x1ZGUgPGxpbnV4L3BjaS1lcGMu aD4KPiAgI2luY2x1ZGUgPGxpbnV4L3BjaS1lcGYuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L250Yi5o Pgo+ICsjaW5jbHVkZSA8bGludXgvbXNpLmg+Cj4gIAo+ICBzdGF0aWMgc3RydWN0IHdvcmtxdWV1 ZV9zdHJ1Y3QgKmtwY2ludGJfd29ya3F1ZXVlOwo+ICAKPiBAQCAtMTM3LDExICsxMzgsMTQgQEAg c3RydWN0IGVwZl9udGIgewo+ICAJc3RydWN0IGVwZl9udGJfY3RybCAqcmVnOwo+ICAKPiAgCXUz MiAqZXBmX2RiOwo+ICsJcGh5c19hZGRyX3QgZXBmX2RiX3BoeXM7Cj4gIAo+ICAJcGh5c19hZGRy X3QgdnBjaV9td19waHlbTUFYX01XXTsKPiAgCXZvaWQgX19pb21lbSAqdnBjaV9td19hZGRyW01B WF9NV107Cj4gIAo+ICAJc3RydWN0IGRlbGF5ZWRfd29yayBjbWRfaGFuZGxlcjsKPiArCj4gKwlp bnQgbXNpX3ZpcnFiYXNlOwo+ICB9OwoKWW91IHNob3VsZCBhZGQga2VybmVsIGRvYyBjb21tZW50 cyBmb3IgdGhpcyBzdHJ1Y3QgaW4gYSBzZXBhcmF0ZSBwYXRjaC4gSXQgd2lsbApoZWxwIGluIHVu ZGVyc3RhbmRpbmcgdGhlIGRyaXZlciBiZXR0ZXIuCgo+ICAKPiAgI2RlZmluZSB0b19lcGZfbnRi KGVwZl9ncm91cCkgY29udGFpbmVyX29mKChlcGZfZ3JvdXApLCBzdHJ1Y3QgZXBmX250YiwgZ3Jv dXApCj4gQEAgLTI1NiwxMSArMjYwLDEzIEBAIHN0YXRpYyB2b2lkIGVwZl9udGJfY21kX2hhbmRs ZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ICAKPiAgCW50YiA9IGNvbnRhaW5lcl9vZih3 b3JrLCBzdHJ1Y3QgZXBmX250YiwgY21kX2hhbmRsZXIud29yayk7Cj4gIAo+IC0JZm9yIChpID0g MTsgaSA8IG50Yi0+ZGJfY291bnQ7IGkrKykgewo+IC0JCWlmIChudGItPmVwZl9kYltpXSkgewo+ IC0JCQludGItPmRiIHw9IDEgPDwgKGkgLSAxKTsKPiAtCQkJbnRiX2RiX2V2ZW50KCZudGItPm50 YiwgaSk7Cj4gLQkJCW50Yi0+ZXBmX2RiW2ldID0gMDsKCkEgY29tbWVudCBoZXJlIHN0YXRpbmcg dGhhdCBwb2xsaW5nIGlzIGltcGxlbWVudGVkIHdvdWxkIGJlIGJldHRlci4KCj4gKwlpZiAoIW50 Yi0+ZXBmX2RiX3BoeXMpIHsKPiArCQlmb3IgKGkgPSAxOyBpIDwgbnRiLT5kYl9jb3VudDsgaSsr KSB7Cj4gKwkJCWlmIChudGItPmVwZl9kYltpXSkgewo+ICsJCQkJbnRiLT5kYiB8PSAxIDw8IChp IC0gMSk7Cj4gKwkJCQludGJfZGJfZXZlbnQoJm50Yi0+bnRiLCBpKTsKPiArCQkJCW50Yi0+ZXBm X2RiW2ldID0gMDsKPiArCQkJfQo+ICAJCX0KPiAgCX0KPiAgCj4gQEAgLTUxOCw2ICs1MjQsMjgg QEAgc3RhdGljIGludCBlcGZfbnRiX2NvbmZpZ3VyZV9pbnRlcnJ1cHQoc3RydWN0IGVwZl9udGIg Km50YikKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ICtzdGF0aWMgaW50IGVwZl9udGJfZGJfc2l6 ZShzdHJ1Y3QgZXBmX250YiAqbnRiKQo+ICt7Cj4gKwljb25zdCBzdHJ1Y3QgcGNpX2VwY19mZWF0 dXJlcyAqZXBjX2ZlYXR1cmVzOwo+ICsJc2l6ZV90IHNpemUgPSBzaXplb2YodTMyKSAqIG50Yi0+ ZGJfY291bnQ7Cj4gKwl1MzIgYWxpZ247Cj4gKwo+ICsJZXBjX2ZlYXR1cmVzID0gcGNpX2VwY19n ZXRfZmVhdHVyZXMobnRiLT5lcGYtPmVwYywKPiArCQkJCQkgICAgbnRiLT5lcGYtPmZ1bmNfbm8s Cj4gKwkJCQkJICAgIG50Yi0+ZXBmLT52ZnVuY19ubyk7Cj4gKwlhbGlnbiA9IGVwY19mZWF0dXJl cy0+YWxpZ247Cj4gKwo+ICsJaWYgKHNpemUgPCAxMjgpCgpTaG91bGRuJ3QgdGhpcyBiZSAoc2l6 ZSA+IDEyOCk/Cgo+ICsJCXNpemUgPSAxMjg7Cj4gKwo+ICsJaWYgKGFsaWduKQo+ICsJCXNpemUg PSBBTElHTihzaXplLCBhbGlnbik7Cj4gKwllbHNlCj4gKwkJc2l6ZSA9IHJvdW5kdXBfcG93X29m X3R3byhzaXplKTsKPiArCj4gKwlyZXR1cm4gc2l6ZTsKPiArfQo+ICsKPiAgLyoqCj4gICAqIGVw Zl9udGJfZGJfYmFyX2luaXQoKSAtIENvbmZpZ3VyZSBEb29yYmVsbCB3aW5kb3cgQkFScwo+ICAg KiBAbnRiOiBOVEIgZGV2aWNlIHRoYXQgZmFjaWxpdGF0ZXMgY29tbXVuaWNhdGlvbiBiZXR3ZWVu IEhPU1QgYW5kIFZIT1NUCj4gQEAgLTUzOSwyNyArNTY3LDI2IEBAIHN0YXRpYyBpbnQgZXBmX250 Yl9kYl9iYXJfaW5pdChzdHJ1Y3QgZXBmX250YiAqbnRiKQo+ICAJCQkJCSAgICBudGItPmVwZi0+ ZnVuY19ubywKPiAgCQkJCQkgICAgbnRiLT5lcGYtPnZmdW5jX25vKTsKPiAgCWFsaWduID0gZXBj X2ZlYXR1cmVzLT5hbGlnbjsKPiAtCj4gLQlpZiAoc2l6ZSA8IDEyOCkKPiAtCQlzaXplID0gMTI4 Owo+IC0KPiAtCWlmIChhbGlnbikKPiAtCQlzaXplID0gQUxJR04oc2l6ZSwgYWxpZ24pOwo+IC0J ZWxzZQo+IC0JCXNpemUgPSByb3VuZHVwX3Bvd19vZl90d28oc2l6ZSk7Cj4gKwlzaXplID0gZXBm X250Yl9kYl9zaXplKG50Yik7Cj4gIAo+ICAJYmFybm8gPSBudGItPmVwZl9udGJfYmFyW0JBUl9E Ql07Cj4gKwllcGZfYmFyID0gJm50Yi0+ZXBmLT5iYXJbYmFybm9dOwo+ICAKPiAtCW13X2FkZHIg PSBwY2lfZXBmX2FsbG9jX3NwYWNlKG50Yi0+ZXBmLCBzaXplLCBiYXJubywgYWxpZ24sIDApOwo+ IC0JaWYgKCFtd19hZGRyKSB7Cj4gLQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gYWxsb2NhdGUg T0IgYWRkcmVzc1xuIik7Cj4gLQkJcmV0dXJuIC1FTk9NRU07Cj4gKwlpZiAobnRiLT5lcGZfZGJf cGh5cykgewo+ICsJCW13X2FkZHIgPSBOVUxMOwo+ICsJCWVwZl9iYXItPnBoeXNfYWRkciA9IG50 Yi0+ZXBmX2RiX3BoeXM7Cj4gKwkJZXBmX2Jhci0+YmFybm8gPSBiYXJubzsKPiArCQllcGZfYmFy LT5zaXplID0gc2l6ZTsKPiArCX0gZWxzZSB7Cj4gKwkJbXdfYWRkciA9IHBjaV9lcGZfYWxsb2Nf c3BhY2UobnRiLT5lcGYsIHNpemUsIGJhcm5vLCBhbGlnbiwgMCk7Cj4gKwkJaWYgKCFtd19hZGRy KSB7Cj4gKwkJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGFsbG9jYXRlIGRvb3JiZWxsIGFkZHJl c3NcbiIpOwo+ICsJCQlyZXR1cm4gLUVOT01FTTsKPiArCQl9Cj4gIAl9Cj4gIAo+ICAJbnRiLT5l cGZfZGIgPSBtd19hZGRyOwo+ICAKPiAtCWVwZl9iYXIgPSAmbnRiLT5lcGYtPmJhcltiYXJub107 Cj4gLQo+ICAJcmV0ID0gcGNpX2VwY19zZXRfYmFyKG50Yi0+ZXBmLT5lcGMsIG50Yi0+ZXBmLT5m dW5jX25vLCBudGItPmVwZi0+dmZ1bmNfbm8sIGVwZl9iYXIpOwo+ICAJaWYgKHJldCkgewo+ICAJ CWRldl9lcnIoZGV2LCAiRG9vcmJlbGwgQkFSIHNldCBmYWlsZWRcbiIpOwo+IEBAIC03MjgsNiAr NzU1LDgyIEBAIHN0YXRpYyBpbnQgZXBmX250Yl9pbml0X2VwY19iYXIoc3RydWN0IGVwZl9udGIg Km50YikKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ICtzdGF0aWMgaXJxcmV0dXJuX3QgZXBmX250 Yl9pbnRlcnJ1cHRfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKQoKU2hvdWxkbid0IHRoaXMg ZnVuY3Rpb24gYWxzbyBiZSBndWFyZGVkPwoKPiArewo+ICsJc3RydWN0IGVwZl9udGIgKm50YiA9 IGRhdGE7Cj4gKwlpbnQgaW5kZXg7Cj4gKwo+ICsJaW5kZXggPSBpcnEgLSBudGItPm1zaV92aXJx YmFzZTsKPiArCW50Yi0+ZGIgfD0gMSA8PCAoaW5kZXggLSAxKTsKPiArCW50Yl9kYl9ldmVudCgm bnRiLT5udGIsIGluZGV4KTsKPiArCj4gKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cj4gK30KPiArCj4g KyNpZmRlZiBDT05GSUdfR0VORVJJQ19NU0lfSVJRX0RPTUFJTgoKSXQnZCBiZSBiZXR0ZXIgdG8g dXNlIHRoZSByZWxldmFudCBjb21taXQgZGVzY3JpcHRpb24gYXMgYSBjb21tZW50IGhlcmUuCgo+ ICtzdGF0aWMgdm9pZCBlcGZfbnRiX3dyaXRlX21zaV9tc2coc3RydWN0IG1zaV9kZXNjICpkZXNj LCBzdHJ1Y3QgbXNpX21zZyAqbXNnKQo+ICt7Cj4gKwlzdHJ1Y3QgZXBmX250YiAqbnRiID0gZGV2 X2dldF9kcnZkYXRhKGRlc2MtPmRldik7Cj4gKwlzdHJ1Y3QgZXBmX250Yl9jdHJsICpyZWcgPSBu dGItPnJlZzsKPiArCWludCBzaXplID0gZXBmX250Yl9kYl9zaXplKG50Yik7Cj4gKwl1NjQgYWRk cjsKPiArCj4gKwlhZGRyID0gbXNnLT5hZGRyZXNzX2hpOwo+ICsJYWRkciA8PD0gMzI7Cj4gKwlh ZGRyIHw9IG1zZy0+YWRkcmVzc19sbzsKPiArCj4gKwlyZWctPmRiX2RhdGFbZGVzYy0+bXNpX2lu ZGV4XSA9IG1zZy0+ZGF0YTsKPiArCgpBIGNvbW1lbnQgc3RhdGluZyB0aGF0IHRoZSBiYXNlIGFk ZHJlc3MgdG8gYmUgdXNlZCBhcyB0aGUgREIgQkFSIGlzIHNldCBoZXJlCndvdWxkIGJlIHVzZWZ1 bCB0b28uCgo+ICsJaWYgKCFkZXNjLT5tc2lfaW5kZXgpCj4gKwkJbnRiLT5lcGZfZGJfcGh5cyA9 IHJvdW5kX2Rvd24oYWRkciwgc2l6ZSk7Cj4gKwo+ICsJcmVnLT5kYl9vZmZzZXRbZGVzYy0+bXNp X2luZGV4XSA9IGFkZHIgLSBudGItPmVwZl9kYl9waHlzOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9p ZCBlcGZfbnRiX2VwY19tc2lfaW5pdChzdHJ1Y3QgZXBmX250YiAqbnRiKQo+ICt7Cj4gKwlzdHJ1 Y3QgZGV2aWNlICpkZXYgPSAmbnRiLT5lcGYtPmRldjsKPiArCXN0cnVjdCBpcnFfZG9tYWluICpk b21haW47Cj4gKwlpbnQgdmlycTsKPiArCWludCByZXQ7Cj4gKwlpbnQgaTsKPiArCj4gKwlkb21h aW4gPSBkZXZfZ2V0X21zaV9kb21haW4obnRiLT5lcGYtPmVwYy0+ZGV2LnBhcmVudCk7Cj4gKwlp ZiAoIWRvbWFpbikKPiArCQlyZXR1cm47Cj4gKwo+ICsJZGV2X3NldF9tc2lfZG9tYWluKGRldiwg ZG9tYWluKTsKPiArCj4gKwlpZiAocGxhdGZvcm1fbXNpX2RvbWFpbl9hbGxvY19pcnFzKCZudGIt PmVwZi0+ZGV2LAo+ICsJCW50Yi0+ZGJfY291bnQsCj4gKwkJZXBmX250Yl93cml0ZV9tc2lfbXNn KSkgewoKUGxlYXNlIHdyYXAgYWJvdmUgdHdvIGluIGEgc2luZ2xlIGxpbmUgdGlsbCAxMDAgY29s dW1uIGxpbWl0LgoKPiArCQlkZXZfZXJyKGRldiwgIkNhbid0IGFsbG9jYXRlIE1TSSwgZmFsbGlu ZyBiYWNrIHRvIHBvbGxpbmcgbW9kZVxuIik7CgpUaGlzIHNob3VsZCBiZSBkZXZfZGJnKCkuCgo+ ICsJCXJldHVybjsKPiArCX0KPiArCWRldl9kYmcoZGV2LCAiVXNpbmcgTVNJIGFzIGRvb3JiZWxs XG4iKTsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgbnRiLT5kYl9jb3VudDsgaSsrKSB7Cj4gKwkJ dmlycSA9IG1zaV9nZXRfdmlycShkZXYsIGkpOwo+ICsJCXJldCA9IGRldm1fcmVxdWVzdF9pcnEo ZGV2LCB2aXJxLAo+ICsJCQkgICAgICAgZXBmX250Yl9pbnRlcnJ1cHRfaGFuZGxlciwgMCwKPiAr CQkJICAgICAgICJwY2lfZXBmX3ZudGIiLCBudGIpOwo+ICsKPiArCQlpZiAocmV0KSB7Cj4gKwkJ CWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHJlcXVlc3QgZG9vcmJlbGwgSVJRISBGYWxsaW5nIGJh Y2sgdG8gcG9sbGluZyBtb2RlIik7CgpBZ2FpbiwgZGV2X2RiZygpCgo+ICsJCQludGItPmVwZl9k Yl9waHlzID0gMDsKPiArCQkJcGxhdGZvcm1fbXNpX2RvbWFpbl9mcmVlX2lycXMoJm50Yi0+ZXBm LT5kZXYpOwo+ICsJCQlicmVhazsKPiArCQl9Cj4gKwo+ICsJCWlmICghaSkKPiArCQkJbnRiLT5t c2lfdmlycWJhc2UgPSB2aXJxOyAvKiBtc2kgc3RhcnQgdmlycSBudW1iZXIgKi8KPiArCX0KPiAr fQo+ICsjZWxzZQoKU2luY2UgdGhpcyBpcyBub3QgZXhwb3NlZCBhcyBhbiBBUEksIGp1c3QgZW5k IHRoZSBpZmRlZiBoZXJlIGFuZC4uLgoKPiArc3RhdGljIHZvaWQgZXBmX250Yl9lcGNfbXNpX2lu aXQoc3RydWN0IGVwZl9udGIgKm50YikKPiArewo+ICt9Cj4gKyNlbmRpZiAvKiBDT05GSUdfR0VO RVJJQ19NU0lfSVJRX0RPTUFJTiAqLwo+ICAvKioKPiAgICogZXBmX250Yl9lcGNfaW5pdCgpIC0g SW5pdGlhbGl6ZSBOVEIgaW50ZXJmYWNlCj4gICAqIEBudGI6IE5UQiBkZXZpY2UgdGhhdCBmYWNp bGl0YXRlcyBjb21tdW5pY2F0aW9uIGJldHdlZW4gSE9TVCBhbmQgVkhPU1QKPiBAQCAtMTMzNiwx NCArMTQzOSwxNSBAQCBzdGF0aWMgaW50IGVwZl9udGJfYmluZChzdHJ1Y3QgcGNpX2VwZiAqZXBm KQo+ICAJCWdvdG8gZXJyX2Jhcl9hbGxvYzsKPiAgCX0KPiAgCj4gKwllcGZfc2V0X2RydmRhdGEo ZXBmLCBudGIpOwo+ICsJZXBmX250Yl9lcGNfbXNpX2luaXQobnRiKTsKCkd1YXJkIHRoaXMgZnVu Y3Rpb24gaW5zdGVhZDoKCiNpZmRlZiBDT05GSUdfR0VORVJJQ19NU0lfSVJRX0RPTUFJTgoJZXBm X250Yl9lcGNfbXNpX2luaXQobnRiKTsKI2VuZGlmCgpUaGFua3MsCk1hbmkKCj4gKwo+ICAJcmV0 ID0gZXBmX250Yl9lcGNfaW5pdChudGIpOwo+ICAJaWYgKHJldCkgewo+ICAJCWRldl9lcnIoZGV2 LCAiRmFpbGVkIHRvIGluaXRpYWxpemUgRVBDXG4iKTsKPiAgCQlnb3RvIGVycl9iYXJfYWxsb2M7 Cj4gIAl9Cj4gIAo+IC0JZXBmX3NldF9kcnZkYXRhKGVwZiwgbnRiKTsKPiAtCj4gIAlwY2lfc3Bh Y2VbMF0gPSAobnRiLT52bnRiX3BpZCA8PCAxNikgfCBudGItPnZudGJfdmlkOwo+ICAJcGNpX3Zu dGJfdGFibGVbMF0udmVuZG9yID0gbnRiLT52bnRiX3ZpZDsKPiAgCXBjaV92bnRiX3RhYmxlWzBd LmRldmljZSA9IG50Yi0+dm50Yl9waWQ7Cj4gLS0gCj4gMi4zNC4xCj4gCgotLSAK4K6u4K6j4K6/ 4K614K6j4K+N4K6j4K6p4K+NIOCumuCupOCuvuCumuCuv+CuteCuruCvjQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWls aW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=