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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 306C3CCA480 for ; Thu, 9 Jun 2022 08:51:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241991AbiFIIvH (ORCPT ); Thu, 9 Jun 2022 04:51:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42198 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242628AbiFIIuf (ORCPT ); Thu, 9 Jun 2022 04:50:35 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D34E7142A85; Thu, 9 Jun 2022 01:47:15 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 68A8E617E1; Thu, 9 Jun 2022 08:47:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 73DD8C34114; Thu, 9 Jun 2022 08:47:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1654764434; bh=a13ggRjGVBRX1EjOqKbLw/ekdwdTjL720ODOeBxI9BA=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=PUvVrkgPPd3Zj3VJPt+FGoRskkrsqai75NqtYEk54Pk/eq2JNCllJ97/SSmVXFqI5 73KtLjL3mAhx5uJZjLurQ6612ktdWjnCAg8ez+kz8jPRGjroBADUCg51YmYi07ycCN SO1eoeEUc1DHqHRwwjVkIGij3dUfgbSIV2coIHMxazRf0OgpSXHOABf34aLgbAliev oibNN8XnkWzMK95H9jg1MraXMPYF9csvNpxLyJj7j2+RyxNhvblVKcPtDHQ24jUe6f A9/FAbUhU5q2KrUJZSn2Jh6AjaBzAzekDga+AmQJFC4LtRCVv1rmjOzq8iGlWD6gVZ +NqZSN3Z8zScA== Received: by pali.im (Postfix) id E79682104; Thu, 9 Jun 2022 10:47:10 +0200 (CEST) Date: Thu, 9 Jun 2022 10:47:10 +0200 From: Pali =?utf-8?B?Um9ow6Fy?= To: Baruch Siach Cc: Andy Gross , Bjorn Andersson , Selvam Sathappan Periakaruppan , Kathiravan T , Bjorn Helgaas , Rob Herring , Thierry Reding , Jonathan Hunter , Jingoo Han , Gustavo Pimentel , Robert Marko , Bryan O'Donoghue , linux-pci@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-tegra@vger.kernel.org, Stanimir Varbanov Subject: Re: [PATCH v6 2/3] PCI: qcom: Define slot capabilities using PCI_EXP_SLTCAP_* Message-ID: <20220609084710.qpqdaid56l6crdpq@pali> References: <20220608230008.acp6lwu6xjin62ql@pali> <87r13ymrf2.fsf@tarshish> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <87r13ymrf2.fsf@tarshish> User-Agent: NeoMutt/20180716 Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org On Thursday 09 June 2022 06:27:34 Baruch Siach wrote: > Hi Pali, > > On Thu, Jun 09 2022, Pali Rohár wrote: > > On Monday 07 February 2022 16:51:25 Baruch Siach wrote: > >> From: Baruch Siach > >> > >> The PCIE_CAP_LINK1_VAL macro actually defines slot capabilities. Use > >> PCI_EXP_SLTCAP_* macros to spell its value, and rename it to better > >> describe its meaning. > >> > >> Signed-off-by: Baruch Siach > >> --- > >> drivers/pci/controller/dwc/pcie-qcom.c | 15 +++++++++++++-- > >> 1 file changed, 13 insertions(+), 2 deletions(-) > >> > >> diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c > >> index c19cd506ed3f..01e58b057d2a 100644 > >> --- a/drivers/pci/controller/dwc/pcie-qcom.c > >> +++ b/drivers/pci/controller/dwc/pcie-qcom.c > >> @@ -69,7 +69,18 @@ > >> #define PCIE20_AXI_MSTR_RESP_COMP_CTRL1 0x81c > >> #define CFG_BRIDGE_SB_INIT BIT(0) > >> > >> -#define PCIE_CAP_LINK1_VAL 0x2FD7F > >> +#define PCIE_CAP_SLOT_POWER_LIMIT_VAL 0x7D00 > >> +#define PCIE_CAP_SLOT_POWER_LIMIT_SCALE 0x8000 > > > > Hello! > > > > Please do not use hardcoded values for slot power limit value and scale > > numbers. There are macros PCI_EXP_SLTCAP_SPLV and PCI_EXP_SLTCAP_SPLS > > for composing mask: > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/pci_regs.h?h=v5.19-rc1#n593 > > Which could be used together with FIELD_PREP(). See e.g. aardvark commit: > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0d5b8c298545c827ca9f2461b2655277ce0aef79 > > Thanks for the tip. > > > And the important information: Slot power limit is board specific and > > depends on how power supply and power regulators are designed. So slot > > power limit **cannot** be hardcoded in driver. Instead this value should > > be read from device tree file for the current board. > > > > There is a new kernel function of_pci_get_slot_power_limit() which reads > > it and compose PCIe slot power limit value and scale numbers. See: > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/pci/of.c?h=v5.19-rc1#n631 > > The 'slot-power-limit-milliwatt' property appears to be undocumented as > of v5.19-rc1. slot-power-limit-milliwatt is already documented in DT scheme pci-bus, see: https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/pci/pci-bus.yaml > This patch should make no functional change. I guess we should keep the > default hard-coded driver value for compatibility with existing DTs with > no 'slot-power-limit-milliwatt'. > > Thanks, > baruch > > >> +#define PCIE_CAP_SLOT_VAL (PCI_EXP_SLTCAP_ABP | \ > >> + PCI_EXP_SLTCAP_PCP | \ > >> + PCI_EXP_SLTCAP_MRLSP | \ > >> + PCI_EXP_SLTCAP_AIP | \ > >> + PCI_EXP_SLTCAP_PIP | \ > >> + PCI_EXP_SLTCAP_HPS | \ > >> + PCI_EXP_SLTCAP_HPC | \ > >> + PCI_EXP_SLTCAP_EIP | \ > >> + PCIE_CAP_SLOT_POWER_LIMIT_VAL | \ > >> + PCIE_CAP_SLOT_POWER_LIMIT_SCALE) > >> > >> #define PCIE20_PARF_Q2A_FLUSH 0x1AC > >> > >> @@ -1111,7 +1122,7 @@ static int qcom_pcie_init_2_3_3(struct qcom_pcie *pcie) > >> > >> writel(PCI_COMMAND_MASTER, pci->dbi_base + PCI_COMMAND); > >> writel(DBI_RO_WR_EN, pci->dbi_base + PCIE20_MISC_CONTROL_1_REG); > >> - writel(PCIE_CAP_LINK1_VAL, pci->dbi_base + offset + PCI_EXP_SLTCAP); > >> + writel(PCIE_CAP_SLOT_VAL, pci->dbi_base + offset + PCI_EXP_SLTCAP); > >> > >> val = readl(pci->dbi_base + offset + PCI_EXP_LNKCAP); > >> val &= ~PCI_EXP_LNKCAP_ASPMS; > >> -- > >> 2.34.1 > >> > > > -- > ~. .~ Tk Open Systems > =}------------------------------------------------ooO--U--Ooo------------{= > - baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il - 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 0C4F4C433EF for ; Thu, 9 Jun 2022 09:00:51 +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=B0FyR61ciXyHypqN7ZVj7Tpx6cYrQlqGZ60gy4DISC8=; b=42XvuGCNUU9048 8sOxuY3NTOFLYS56kNpL81gJvg9h7Z8AB2TBOxm09uDcaEy3cK/QhRSMTu8IlPIP5Y+TcjjAPNSIy laVvROPPYHTzOFIZJf39gc4VvmgiquvBguAI3rGIZg81jCg6tabiVay1WsHAktrNo2Fz2O8Ov2xWY 9/mNl2GgtMcT5bCpViq+OOExVUYTz/jMsHDMbqozLVlp7ScJ6wg9FhcLLDVKiIynAga3ZrlxHnAw4 DE2iGdot+907/REeSEFE9m1Cqo7Tr0mqc8oRWoXOHjTesKUJqKmUbPUM8Bx3NgpH1dIIedQJ4Xkll WK+Amkm75Paeav84iHMQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nzE0q-000TeD-Fy; Thu, 09 Jun 2022 08:59:34 +0000 Received: from ams.source.kernel.org ([2604:1380:4601:e00::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nzDoz-000NBz-Lo for linux-arm-kernel@lists.infradead.org; Thu, 09 Jun 2022 08:47:19 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 0DF26B82C7E; Thu, 9 Jun 2022 08:47:16 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 73DD8C34114; Thu, 9 Jun 2022 08:47:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1654764434; bh=a13ggRjGVBRX1EjOqKbLw/ekdwdTjL720ODOeBxI9BA=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=PUvVrkgPPd3Zj3VJPt+FGoRskkrsqai75NqtYEk54Pk/eq2JNCllJ97/SSmVXFqI5 73KtLjL3mAhx5uJZjLurQ6612ktdWjnCAg8ez+kz8jPRGjroBADUCg51YmYi07ycCN SO1eoeEUc1DHqHRwwjVkIGij3dUfgbSIV2coIHMxazRf0OgpSXHOABf34aLgbAliev oibNN8XnkWzMK95H9jg1MraXMPYF9csvNpxLyJj7j2+RyxNhvblVKcPtDHQ24jUe6f A9/FAbUhU5q2KrUJZSn2Jh6AjaBzAzekDga+AmQJFC4LtRCVv1rmjOzq8iGlWD6gVZ +NqZSN3Z8zScA== Received: by pali.im (Postfix) id E79682104; Thu, 9 Jun 2022 10:47:10 +0200 (CEST) Date: Thu, 9 Jun 2022 10:47:10 +0200 From: Pali =?utf-8?B?Um9ow6Fy?= To: Baruch Siach Cc: Andy Gross , Bjorn Andersson , Selvam Sathappan Periakaruppan , Kathiravan T , Bjorn Helgaas , Rob Herring , Thierry Reding , Jonathan Hunter , Jingoo Han , Gustavo Pimentel , Robert Marko , Bryan O'Donoghue , linux-pci@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-tegra@vger.kernel.org, Stanimir Varbanov Subject: Re: [PATCH v6 2/3] PCI: qcom: Define slot capabilities using PCI_EXP_SLTCAP_* Message-ID: <20220609084710.qpqdaid56l6crdpq@pali> References: <20220608230008.acp6lwu6xjin62ql@pali> <87r13ymrf2.fsf@tarshish> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <87r13ymrf2.fsf@tarshish> User-Agent: NeoMutt/20180716 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220609_014718_050409_F73B4B6F X-CRM114-Status: GOOD ( 30.19 ) 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 T24gVGh1cnNkYXkgMDkgSnVuZSAyMDIyIDA2OjI3OjM0IEJhcnVjaCBTaWFjaCB3cm90ZToKPiBI aSBQYWxpLAo+IAo+IE9uIFRodSwgSnVuIDA5IDIwMjIsIFBhbGkgUm9ow6FyIHdyb3RlOgo+ID4g T24gTW9uZGF5IDA3IEZlYnJ1YXJ5IDIwMjIgMTY6NTE6MjUgQmFydWNoIFNpYWNoIHdyb3RlOgo+ ID4+IEZyb206IEJhcnVjaCBTaWFjaCA8YmFydWNoLnNpYWNoQHNpa2x1LmNvbT4KPiA+PiAKPiA+ PiBUaGUgUENJRV9DQVBfTElOSzFfVkFMIG1hY3JvIGFjdHVhbGx5IGRlZmluZXMgc2xvdCBjYXBh YmlsaXRpZXMuIFVzZQo+ID4+IFBDSV9FWFBfU0xUQ0FQXyogbWFjcm9zIHRvIHNwZWxsIGl0cyB2 YWx1ZSwgYW5kIHJlbmFtZSBpdCB0byBiZXR0ZXIKPiA+PiBkZXNjcmliZSBpdHMgbWVhbmluZy4K PiA+PiAKPiA+PiBTaWduZWQtb2ZmLWJ5OiBCYXJ1Y2ggU2lhY2ggPGJhcnVjaC5zaWFjaEBzaWts dS5jb20+Cj4gPj4gLS0tCj4gPj4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtcWNv bS5jIHwgMTUgKysrKysrKysrKysrKy0tCj4gPj4gIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQo+ID4+IAo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL2R3Yy9wY2llLXFjb20uYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdj L3BjaWUtcWNvbS5jCj4gPj4gaW5kZXggYzE5Y2Q1MDZlZDNmLi4wMWU1OGIwNTdkMmEgMTAwNjQ0 Cj4gPj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1xY29tLmMKPiA+PiAr KysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXFjb20uYwo+ID4+IEBAIC02OSw3 ICs2OSwxOCBAQAo+ID4+ICAjZGVmaW5lIFBDSUUyMF9BWElfTVNUUl9SRVNQX0NPTVBfQ1RSTDEJ CTB4ODFjCj4gPj4gICNkZWZpbmUgQ0ZHX0JSSURHRV9TQl9JTklUCQkJQklUKDApCj4gPj4gIAo+ ID4+IC0jZGVmaW5lIFBDSUVfQ0FQX0xJTksxX1ZBTAkJCTB4MkZEN0YKPiA+PiArI2RlZmluZSBQ Q0lFX0NBUF9TTE9UX1BPV0VSX0xJTUlUX1ZBTAkJMHg3RDAwCj4gPj4gKyNkZWZpbmUgUENJRV9D QVBfU0xPVF9QT1dFUl9MSU1JVF9TQ0FMRQkJMHg4MDAwCj4gPgo+ID4gSGVsbG8hCj4gPgo+ID4g UGxlYXNlIGRvIG5vdCB1c2UgaGFyZGNvZGVkIHZhbHVlcyBmb3Igc2xvdCBwb3dlciBsaW1pdCB2 YWx1ZSBhbmQgc2NhbGUKPiA+IG51bWJlcnMuIFRoZXJlIGFyZSBtYWNyb3MgUENJX0VYUF9TTFRD QVBfU1BMViBhbmQgUENJX0VYUF9TTFRDQVBfU1BMUwo+ID4gZm9yIGNvbXBvc2luZyBtYXNrOgo+ ID4gaHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvdG9ydmFs ZHMvbGludXguZ2l0L3RyZWUvaW5jbHVkZS91YXBpL2xpbnV4L3BjaV9yZWdzLmg/aD12NS4xOS1y YzEjbjU5Mwo+ID4gV2hpY2ggY291bGQgYmUgdXNlZCB0b2dldGhlciB3aXRoIEZJRUxEX1BSRVAo KS4gU2VlIGUuZy4gYWFyZHZhcmsgY29tbWl0Ogo+ID4gaHR0cHM6Ly9naXQua2VybmVsLm9yZy9w dWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXguZ2l0L2NvbW1pdC8/aWQ9MGQ1 YjhjMjk4NTQ1YzgyN2NhOWYyNDYxYjI2NTUyNzdjZTBhZWY3OQo+IAo+IFRoYW5rcyBmb3IgdGhl IHRpcC4KPiAKPiA+IEFuZCB0aGUgaW1wb3J0YW50IGluZm9ybWF0aW9uOiBTbG90IHBvd2VyIGxp bWl0IGlzIGJvYXJkIHNwZWNpZmljIGFuZAo+ID4gZGVwZW5kcyBvbiBob3cgcG93ZXIgc3VwcGx5 IGFuZCBwb3dlciByZWd1bGF0b3JzIGFyZSBkZXNpZ25lZC4gU28gc2xvdAo+ID4gcG93ZXIgbGlt aXQgKipjYW5ub3QqKiBiZSBoYXJkY29kZWQgaW4gZHJpdmVyLiBJbnN0ZWFkIHRoaXMgdmFsdWUg c2hvdWxkCj4gPiBiZSByZWFkIGZyb20gZGV2aWNlIHRyZWUgZmlsZSBmb3IgdGhlIGN1cnJlbnQg Ym9hcmQuCj4gPgo+ID4gVGhlcmUgaXMgYSBuZXcga2VybmVsIGZ1bmN0aW9uIG9mX3BjaV9nZXRf c2xvdF9wb3dlcl9saW1pdCgpIHdoaWNoIHJlYWRzCj4gPiBpdCBhbmQgY29tcG9zZSBQQ0llIHNs b3QgcG93ZXIgbGltaXQgdmFsdWUgYW5kIHNjYWxlIG51bWJlcnMuIFNlZToKPiA+IGh0dHBzOi8v Z2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xpbnV4Lmdp dC90cmVlL2RyaXZlcnMvcGNpL29mLmM/aD12NS4xOS1yYzEjbjYzMQo+IAo+IFRoZSAnc2xvdC1w b3dlci1saW1pdC1taWxsaXdhdHQnIHByb3BlcnR5IGFwcGVhcnMgdG8gYmUgdW5kb2N1bWVudGVk IGFzCj4gb2YgdjUuMTktcmMxLgoKc2xvdC1wb3dlci1saW1pdC1taWxsaXdhdHQgaXMgYWxyZWFk eSBkb2N1bWVudGVkIGluIERUIHNjaGVtZSBwY2ktYnVzLCBzZWU6Cmh0dHBzOi8vZ2l0aHViLmNv bS9kZXZpY2V0cmVlLW9yZy9kdC1zY2hlbWEvYmxvYi9tYWluL2R0c2NoZW1hL3NjaGVtYXMvcGNp L3BjaS1idXMueWFtbAoKPiBUaGlzIHBhdGNoIHNob3VsZCBtYWtlIG5vIGZ1bmN0aW9uYWwgY2hh bmdlLiBJIGd1ZXNzIHdlIHNob3VsZCBrZWVwIHRoZQo+IGRlZmF1bHQgaGFyZC1jb2RlZCBkcml2 ZXIgdmFsdWUgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBleGlzdGluZyBEVHMgd2l0aAo+IG5vICdz bG90LXBvd2VyLWxpbWl0LW1pbGxpd2F0dCcuCj4gCj4gVGhhbmtzLAo+IGJhcnVjaAo+IAo+ID4+ ICsjZGVmaW5lIFBDSUVfQ0FQX1NMT1RfVkFMCQkJKFBDSV9FWFBfU0xUQ0FQX0FCUCB8IFwKPiA+ PiArCQkJCQkJUENJX0VYUF9TTFRDQVBfUENQIHwgXAo+ID4+ICsJCQkJCQlQQ0lfRVhQX1NMVENB UF9NUkxTUCB8IFwKPiA+PiArCQkJCQkJUENJX0VYUF9TTFRDQVBfQUlQIHwgXAo+ID4+ICsJCQkJ CQlQQ0lfRVhQX1NMVENBUF9QSVAgfCBcCj4gPj4gKwkJCQkJCVBDSV9FWFBfU0xUQ0FQX0hQUyB8 IFwKPiA+PiArCQkJCQkJUENJX0VYUF9TTFRDQVBfSFBDIHwgXAo+ID4+ICsJCQkJCQlQQ0lfRVhQ X1NMVENBUF9FSVAgfCBcCj4gPj4gKwkJCQkJCVBDSUVfQ0FQX1NMT1RfUE9XRVJfTElNSVRfVkFM IHwgXAo+ID4+ICsJCQkJCQlQQ0lFX0NBUF9TTE9UX1BPV0VSX0xJTUlUX1NDQUxFKQo+ID4+ICAK PiA+PiAgI2RlZmluZSBQQ0lFMjBfUEFSRl9RMkFfRkxVU0gJCQkweDFBQwo+ID4+ICAKPiA+PiBA QCAtMTExMSw3ICsxMTIyLDcgQEAgc3RhdGljIGludCBxY29tX3BjaWVfaW5pdF8yXzNfMyhzdHJ1 Y3QgcWNvbV9wY2llICpwY2llKQo+ID4+ICAKPiA+PiAgCXdyaXRlbChQQ0lfQ09NTUFORF9NQVNU RVIsIHBjaS0+ZGJpX2Jhc2UgKyBQQ0lfQ09NTUFORCk7Cj4gPj4gIAl3cml0ZWwoREJJX1JPX1dS X0VOLCBwY2ktPmRiaV9iYXNlICsgUENJRTIwX01JU0NfQ09OVFJPTF8xX1JFRyk7Cj4gPj4gLQl3 cml0ZWwoUENJRV9DQVBfTElOSzFfVkFMLCBwY2ktPmRiaV9iYXNlICsgb2Zmc2V0ICsgUENJX0VY UF9TTFRDQVApOwo+ID4+ICsJd3JpdGVsKFBDSUVfQ0FQX1NMT1RfVkFMLCBwY2ktPmRiaV9iYXNl ICsgb2Zmc2V0ICsgUENJX0VYUF9TTFRDQVApOwo+ID4+ICAKPiA+PiAgCXZhbCA9IHJlYWRsKHBj aS0+ZGJpX2Jhc2UgKyBvZmZzZXQgKyBQQ0lfRVhQX0xOS0NBUCk7Cj4gPj4gIAl2YWwgJj0gflBD SV9FWFBfTE5LQ0FQX0FTUE1TOwo+ID4+IC0tIAo+ID4+IDIuMzQuMQo+ID4+IAo+IAo+IAo+IC0t IAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fi4gLn4gICBUayBPcGVuIFN5c3RlbXMKPiA9fS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLW9vTy0tVS0tT29vLS0tLS0tLS0tLS0tez0KPiAgICAtIGJhcnVj aEB0a29zLmNvLmlsIC0gdGVsOiArOTcyLjUyLjM2OC40NjU2LCBodHRwOi8vd3d3LnRrb3MuY28u aWwgLQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlu dXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRl YWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt YXJtLWtlcm5lbAo=