From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f170.google.com (mail-pg1-f170.google.com [209.85.215.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA47B481D3 for ; Sat, 27 Apr 2024 11:47:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.170 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714218470; cv=none; b=HCX6zI2zxcaWPpPibhvjTCqogpXNBzPyngq41/s6DUrqF9jvdtbKCWcc70Shn+G+KFaEJ6oDJq5B28acqhOLbRciQJ15g95W0v3UZXmuR5LOeYG/QeQ+i6dwFuZ7BtvzDbf5sS3uEsr4OGDLUxLmRSizSdFJI8lzQsPJ04Yu3Lw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714218470; c=relaxed/simple; bh=m64OPA49saGqYh5NGoDkpU02HfGnplA/FI6YB5a3TLM=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=jAkAsOZ09EfypqWBwlBWh3DbsAQXzOO4Mx9HBewWTQi0mRN2jwzal/6YLDV86x8DzqOEFSoefK3wxNC3nTKi0a/sxPmPhM/HwRrAESiylswylLzN2eSwN5jzh8nYMn5Rqln8YQW6dGJs+shERO0DUmcTQK7Q02wW7UbNOMDM3WQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=kLyEM9zr; arc=none smtp.client-ip=209.85.215.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="kLyEM9zr" Received: by mail-pg1-f170.google.com with SMTP id 41be03b00d2f7-60274726da6so2099283a12.2 for ; Sat, 27 Apr 2024 04:47:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1714218467; x=1714823267; darn=vger.kernel.org; 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=HcfbaR8kZq8OLnUAT2pXDqoM8fNnWHLJf3IpXP9uecY=; b=kLyEM9zrTI5eK+RrsFYCyZNfXnKslK8ea/a25GIFfydplVvzKyR0Md5/lP5ykk5oSN Jla/CYOtU4BRZGno2UpHQDiNlYhZlV6BywABDhxhycRQN1ho/RwspwP662vtNSeBLfN7 MtOdtSd9Kwmv0bn+MkrK4N6TAVoxN+JJaD72cOW532e/nzTSz8PBGN+bYJRnzYKuigq3 KbMAGZyKFeLq5EFtDWMpO97KFib46La12GRkhe1eOoZ0oywWmauBCz77xD/WwsqCLtMt 3fRrX7QsZ8z5R4AsVq/V3VUMTKZEB5WlUgLkw2JVc130GynaS7xDR8W/YgX1wtHEo/rj HeVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714218467; x=1714823267; 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=HcfbaR8kZq8OLnUAT2pXDqoM8fNnWHLJf3IpXP9uecY=; b=oc7ZSCTAVnYtsAgxG30WW2yEaEX6Zx5f2HEWLgAiH8e5qtsEmPDWcNv8VFioO7Oycq f05kIMP1o96iNXJ3s/yDVufdcroOQr5xxqumvafUWv0JtUtcC92M3aWev53ChXhZ9cTU YTce3Hszv0dJcbLrT0Eog5hymeVQWsWRmdHnzHEcDgYQRRnYvgkLSmNfrYYdQ/R3b4mT wAPc79vkvci1v7+CQ0Wy2F6rIh0fxR6h7Q7tAtCSwYDA/3BehZbkkoLLNq29BzPly23C qZJZ9uZx5DUky7u7dSBmAuq6NOIABrC2M7VMWmCivMx5QHKACjWy/qkctTumTPV3PxRT Uvfw== X-Forwarded-Encrypted: i=1; AJvYcCWZ+Uhb49yOq/4N9r3OaZrj7MD3FJF1RQQk+V0b/LBsbvg673pE+NBp7+rwryaj5ra9TO8ezBkliXfBJ0L8UQaYqZkb X-Gm-Message-State: AOJu0YwxoD9QoraHeEF1Ed7lhbLMQ69qR3hCLv2qFMR8zZP0nAfFZpe8 5uzuvLHq+1sjjaKwebZxT8djQLXAu7qNlHlkxxSS8m/guVhjxQej3lgphvGDvQ== X-Google-Smtp-Source: AGHT+IGeS2NJ9XxwhqftWfQ5PmQrFQpYK3kdhK248fghwiiRxIGhENovfD8acLiKv+RBllo0edUJtw== X-Received: by 2002:a17:90a:5d0e:b0:2af:f382:158b with SMTP id s14-20020a17090a5d0e00b002aff382158bmr4524138pji.49.1714218466853; Sat, 27 Apr 2024 04:47:46 -0700 (PDT) Received: from thinkpad ([117.213.97.210]) by smtp.gmail.com with ESMTPSA id l9-20020a17090a070900b002a528a1f907sm19257945pjl.56.2024.04.27.04.47.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 Apr 2024 04:47:46 -0700 (PDT) Date: Sat, 27 Apr 2024 17:17:36 +0530 From: Manivannan Sadhasivam To: Frank Li Cc: Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Rob Herring , Bjorn Helgaas , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Philipp Zabel , Liam Girdwood , Mark Brown , Krzysztof Kozlowski , Conor Dooley , linux-pci@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org, devicetree@vger.kernel.org Subject: Re: [PATCH v3 11/11] PCI: imx6: Add i.MX8Q PCIe support Message-ID: <20240427114736.GO1981@thinkpad> References: <20240402-pci2_upstream-v3-0-803414bdb430@nxp.com> <20240402-pci2_upstream-v3-11-803414bdb430@nxp.com> Precedence: bulk X-Mailing-List: bpf@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20240402-pci2_upstream-v3-11-803414bdb430@nxp.com> On Tue, Apr 02, 2024 at 10:33:47AM -0400, Frank Li wrote: > From: Richard Zhu > > Add i.MX8Q (i.MX8QM, i.MX8QXP and i.MX8DXL) PCIe support. > Add some info like IP version, PCIe Gen, how different the code support comparted to previous SoCs etc... > Signed-off-by: Richard Zhu > Signed-off-by: Frank Li > --- > drivers/pci/controller/dwc/pcie-imx.c | 54 +++++++++++++++++++++++++++++++++++ > 1 file changed, 54 insertions(+) > > diff --git a/drivers/pci/controller/dwc/pcie-imx.c b/drivers/pci/controller/dwc/pcie-imx.c > index 378808262d16b..af7c79e869e70 100644 > --- a/drivers/pci/controller/dwc/pcie-imx.c > +++ b/drivers/pci/controller/dwc/pcie-imx.c > @@ -30,6 +30,7 @@ > #include > #include > #include > +#include > #include > #include > > @@ -81,6 +82,7 @@ enum imx_pcie_variants { > IMX8MQ, > IMX8MM, > IMX8MP, > + IMX8Q, > IMX95, > IMX8MQ_EP, > IMX8MM_EP, > @@ -96,6 +98,7 @@ enum imx_pcie_variants { > #define IMX_PCIE_FLAG_HAS_PHY_RESET BIT(5) > #define IMX_PCIE_FLAG_HAS_SERDES BIT(6) > #define IMX_PCIE_FLAG_SUPPORT_64BIT BIT(7) > +#define IMX_PCIE_FLAG_CPU_ADDR_FIXUP BIT(8) > > #define imx_check_flag(pci, val) (pci->drvdata->flags & val) > > @@ -132,6 +135,7 @@ struct imx_pcie { > struct regmap *iomuxc_gpr; > u16 msi_ctrl; > u32 controller_id; > + u32 local_addr; > struct reset_control *pciephy_reset; > struct reset_control *apps_reset; > struct reset_control *turnoff_reset; > @@ -402,6 +406,10 @@ static void imx_pcie_configure_type(struct imx_pcie *imx_pcie) > if (!drvdata->mode_mask[id]) > id = 0; > > + /* If mode_mask is 0, means use phy driver to set mode */ > + if (!drvdata->mode_mask[id]) > + return; There is already a check above for 0 mode_mask. Please consolidate. > + > mask = drvdata->mode_mask[id]; > val = mode << (ffs(mask) - 1); > > @@ -957,6 +965,7 @@ static void imx_pcie_ltssm_enable(struct device *dev) > struct imx_pcie *imx_pcie = dev_get_drvdata(dev); > const struct imx_pcie_drvdata *drvdata = imx_pcie->drvdata; > > + phy_set_speed(imx_pcie->phy, PCI_EXP_LNKCAP_SLS_2_5GB); > if (drvdata->ltssm_mask) > regmap_update_bits(imx_pcie->iomuxc_gpr, drvdata->ltssm_off, drvdata->ltssm_mask, > drvdata->ltssm_mask); > @@ -969,6 +978,7 @@ static void imx_pcie_ltssm_disable(struct device *dev) > struct imx_pcie *imx_pcie = dev_get_drvdata(dev); > const struct imx_pcie_drvdata *drvdata = imx_pcie->drvdata; > > + phy_set_speed(imx_pcie->phy, 0); > if (drvdata->ltssm_mask) > regmap_update_bits(imx_pcie->iomuxc_gpr, drvdata->ltssm_off, > drvdata->ltssm_mask, 0); > @@ -1104,6 +1114,12 @@ static int imx_pcie_host_init(struct dw_pcie_rp *pp) > goto err_clk_disable; > } > > + ret = phy_set_mode_ext(imx_pcie->phy, PHY_MODE_PCIE, PHY_MODE_PCIE_RC); > + if (ret) { > + dev_err(dev, "unable to set pcie PHY mode\n"); > + goto err_phy_off; > + } This is not i.MX8Q specific. Please add it in a separate patch. > + > ret = phy_power_on(imx_pcie->phy); > if (ret) { > dev_err(dev, "waiting for PHY ready timeout!\n"); > @@ -1154,6 +1170,28 @@ static void imx_pcie_host_exit(struct dw_pcie_rp *pp) > regulator_disable(imx_pcie->vpcie); > } > > +static u64 imx_pcie_cpu_addr_fixup(struct dw_pcie *pcie, u64 cpu_addr) > +{ > + struct imx_pcie *imx_pcie = to_imx_pcie(pcie); > + struct dw_pcie_ep *ep = &pcie->ep; > + struct dw_pcie_rp *pp = &pcie->pp; > + struct resource_entry *entry; > + unsigned int offset; > + > + if (!(imx_pcie->drvdata->flags & IMX_PCIE_FLAG_CPU_ADDR_FIXUP)) This flag should be documented in the commit message. > + return cpu_addr; > + > + if (imx_pcie->drvdata->mode == DW_PCIE_EP_TYPE) { > + offset = ep->phys_base; > + } else { > + entry = resource_list_first_type(&pp->bridge->windows, > + IORESOURCE_MEM); Check for NULL entry. > + offset = entry->res->start; > + } > + > + return (cpu_addr + imx_pcie->local_addr - offset); > +} > + > static const struct dw_pcie_host_ops imx_pcie_host_ops = { > .init = imx_pcie_host_init, > .deinit = imx_pcie_host_exit, > @@ -1162,6 +1200,7 @@ static const struct dw_pcie_host_ops imx_pcie_host_ops = { > static const struct dw_pcie_ops dw_pcie_ops = { > .start_link = imx_pcie_start_link, > .stop_link = imx_pcie_stop_link, > + .cpu_addr_fixup = imx_pcie_cpu_addr_fixup, > }; > > static void imx_pcie_ep_init(struct dw_pcie_ep *ep) > @@ -1481,6 +1520,12 @@ static int imx_pcie_probe(struct platform_device *pdev) > "Failed to get PCIEPHY reset control\n"); > } > > + if (imx_check_flag(imx_pcie, IMX_PCIE_FLAG_CPU_ADDR_FIXUP)) { > + ret = of_property_read_u32(node, "fsl,local-address", &imx_pcie->local_addr); > + if (ret) > + return dev_err_probe(dev, ret, "Failed to get local-address"); Is it OK to continue? - Mani -- மணிவண்ணன் சதாசிவம் 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 0A951C4345F for ; Sat, 27 Apr 2024 11:48:08 +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=RqP7aIC7WFV7eEnVmLl9PWEa7Au5ncaqhOlL1CWrdTw=; b=aY0mjyiF/Hd4DN yyUnXTfcjUhp7yS6l6VFfLxZPyKGEvD60neGI+XlzkTgOGLVHHmMvA77g/7aQtEf+OAKA9hkpZ57o 5U+HQ2GWzRRFogbZr5OePSNgXEHuTmNLwQfU7JPoTtvjPWx7fuhfh6Mc8ajFXBV3NqLmnBMC9j+l3 Og7tM5BtXPZq67Qy3zvr8rFp41mFpM49kyHeiyUquXwmecU7GsyRCFqJ83r4w6GLja9qPeHc0pppW li0vkexWKeFRZYmBzmK0ynrDHQvEf7IddtKwJ/24ciZgAEUGCd5h80PyaeWErJ/lwxZKjqMPbN0ij xNZDQbmy1s7je0yusnNA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s0gX2-0000000FTOP-2KVQ; Sat, 27 Apr 2024 11:47:52 +0000 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s0gWz-0000000FTNX-0P8X for linux-arm-kernel@lists.infradead.org; Sat, 27 Apr 2024 11:47:50 +0000 Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-2a484f772e2so2067435a91.3 for ; Sat, 27 Apr 2024 04:47:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1714218467; x=1714823267; darn=lists.infradead.org; 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=HcfbaR8kZq8OLnUAT2pXDqoM8fNnWHLJf3IpXP9uecY=; b=PznOAdUv4S6iWTNDP1BNVubvwsNwEW/xHhQptajP7SCGv54WgCxfBRWh5l3lwekYat 4xqSyvEP+fEnV5iazrYkKITm6ua2cMtzIYDvlQZD/g2D6fekU4lnv6Wc9LAbkRZhezib 1yKoWu1n4CLkmo7n7xP4tLtX29NshVQf2xBhF4A+BYKJ6YzQoLZkdYgZ1owCTw3VLZb9 FybzLIIo4BHeO6u2w2Qcgj4mnaCR3xxKRreW0o3RAEMt+PbEsCN22pAH/mXlP/p8WGa+ DUhP7Qb0jsh2t6QK2qtlQWynA1nIhZbTXn2GwKz8zf8ozXVDCPLM5t4sJiazySl3otLe VV9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714218467; x=1714823267; 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=HcfbaR8kZq8OLnUAT2pXDqoM8fNnWHLJf3IpXP9uecY=; b=sR063v2QdqUqjcoUN6cItSW10rGmc8Zh1LSQzuyA9x5ljLrLmRLsLIBl5b4Dk1/TOM 74avT0u9EFpTrG2KLtqoQ+BnqcDjGfhFonrdvwqsBukvb3QG9AUgYznIU/igNJ420G+C Hm3KG6KEjTTXae8vp5l1drA+/2h4t00sXUckk79b6qctZpSuxM5v+Y+T+1VjwHM2ts0K +bmKseXo+kpVwCXzpAkJ31DDl84wMA4VXFfrNxYLH0iCPZYkASOsykKM6zb1J4er7MKY 8vxHDV0dNdRSAWn1Z6qkwcFF4c9czWnSbG+UuIKWsJM6tzDGL6WIWOpaM8IDdcZ85uJx mciQ== X-Forwarded-Encrypted: i=1; AJvYcCVAv1UsLNM8KYzJ9jy6O+w4rKMgAjKLX+2E7/rFSxe06mg8Nl9xOmzIbje5zhE8L09WaDzJGPXs81PT9Dq6YKOutPvOdZHHtQUh04MbSUUqFMOTyaA= X-Gm-Message-State: AOJu0Ywv8y8jIzgd4bjmo/QfpSrkpDycirHAMruD29wrwFhtICLDtpu4 9PIje6CGVU7WVGHRVEW0osVjgfTtnlq2qdiJT64qdlJbhUlJ1KMIHg0XJaYTtg== X-Google-Smtp-Source: AGHT+IGeS2NJ9XxwhqftWfQ5PmQrFQpYK3kdhK248fghwiiRxIGhENovfD8acLiKv+RBllo0edUJtw== X-Received: by 2002:a17:90a:5d0e:b0:2af:f382:158b with SMTP id s14-20020a17090a5d0e00b002aff382158bmr4524138pji.49.1714218466853; Sat, 27 Apr 2024 04:47:46 -0700 (PDT) Received: from thinkpad ([117.213.97.210]) by smtp.gmail.com with ESMTPSA id l9-20020a17090a070900b002a528a1f907sm19257945pjl.56.2024.04.27.04.47.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 Apr 2024 04:47:46 -0700 (PDT) Date: Sat, 27 Apr 2024 17:17:36 +0530 From: Manivannan Sadhasivam To: Frank Li Cc: Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Rob Herring , Bjorn Helgaas , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Philipp Zabel , Liam Girdwood , Mark Brown , Krzysztof Kozlowski , Conor Dooley , linux-pci@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org, devicetree@vger.kernel.org Subject: Re: [PATCH v3 11/11] PCI: imx6: Add i.MX8Q PCIe support Message-ID: <20240427114736.GO1981@thinkpad> References: <20240402-pci2_upstream-v3-0-803414bdb430@nxp.com> <20240402-pci2_upstream-v3-11-803414bdb430@nxp.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240402-pci2_upstream-v3-11-803414bdb430@nxp.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240427_044749_192550_12134F99 X-CRM114-Status: GOOD ( 29.35 ) 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 T24gVHVlLCBBcHIgMDIsIDIwMjQgYXQgMTA6MzM6NDdBTSAtMDQwMCwgRnJhbmsgTGkgd3JvdGU6 Cj4gRnJvbTogUmljaGFyZCBaaHUgPGhvbmd4aW5nLnpodUBueHAuY29tPgo+IAo+IEFkZCBpLk1Y OFEgKGkuTVg4UU0sIGkuTVg4UVhQIGFuZCBpLk1YOERYTCkgUENJZSBzdXBwb3J0Lgo+IAoKQWRk IHNvbWUgaW5mbyBsaWtlIElQIHZlcnNpb24sIFBDSWUgR2VuLCBob3cgZGlmZmVyZW50IHRoZSBj b2RlIHN1cHBvcnQKY29tcGFydGVkIHRvIHByZXZpb3VzIFNvQ3MgZXRjLi4uCgo+IFNpZ25lZC1v ZmYtYnk6IFJpY2hhcmQgWmh1IDxob25neGluZy56aHVAbnhwLmNvbT4KPiBTaWduZWQtb2ZmLWJ5 OiBGcmFuayBMaSA8RnJhbmsuTGlAbnhwLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9wY2kvY29udHJv bGxlci9kd2MvcGNpZS1pbXguYyB8IDU0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCj4gIDEgZmlsZSBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtaW14LmMgYi9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL2R3Yy9wY2llLWlteC5jCj4gaW5kZXggMzc4ODA4MjYyZDE2Yi4uYWY3Yzc5ZTg2OWU3 MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWlteC5jCj4g KysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1pbXguYwo+IEBAIC0zMCw2ICsz MCw3IEBACj4gICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KPiAgI2luY2x1ZGUgPGxpbnV4 L3Jlc2V0Lmg+Cj4gICNpbmNsdWRlIDxsaW51eC9waHkvcGh5Lmg+Cj4gKyNpbmNsdWRlIDxsaW51 eC9waHkvcGNpZS5oPgo+ICAjaW5jbHVkZSA8bGludXgvcG1fZG9tYWluLmg+Cj4gICNpbmNsdWRl IDxsaW51eC9wbV9ydW50aW1lLmg+Cj4gIAo+IEBAIC04MSw2ICs4Miw3IEBAIGVudW0gaW14X3Bj aWVfdmFyaWFudHMgewo+ICAJSU1YOE1RLAo+ICAJSU1YOE1NLAo+ICAJSU1YOE1QLAo+ICsJSU1Y OFEsCj4gIAlJTVg5NSwKPiAgCUlNWDhNUV9FUCwKPiAgCUlNWDhNTV9FUCwKPiBAQCAtOTYsNiAr OTgsNyBAQCBlbnVtIGlteF9wY2llX3ZhcmlhbnRzIHsKPiAgI2RlZmluZSBJTVhfUENJRV9GTEFH X0hBU19QSFlfUkVTRVQJCUJJVCg1KQo+ICAjZGVmaW5lIElNWF9QQ0lFX0ZMQUdfSEFTX1NFUkRF UwkJQklUKDYpCj4gICNkZWZpbmUgSU1YX1BDSUVfRkxBR19TVVBQT1JUXzY0QklUCQlCSVQoNykK PiArI2RlZmluZSBJTVhfUENJRV9GTEFHX0NQVV9BRERSX0ZJWFVQCQlCSVQoOCkKPiAgCj4gICNk ZWZpbmUgaW14X2NoZWNrX2ZsYWcocGNpLCB2YWwpICAgICAocGNpLT5kcnZkYXRhLT5mbGFncyAm IHZhbCkKPiAgCj4gQEAgLTEzMiw2ICsxMzUsNyBAQCBzdHJ1Y3QgaW14X3BjaWUgewo+ICAJc3Ry dWN0IHJlZ21hcAkJKmlvbXV4Y19ncHI7Cj4gIAl1MTYJCQltc2lfY3RybDsKPiAgCXUzMgkJCWNv bnRyb2xsZXJfaWQ7Cj4gKwl1MzIJCQlsb2NhbF9hZGRyOwo+ICAJc3RydWN0IHJlc2V0X2NvbnRy b2wJKnBjaWVwaHlfcmVzZXQ7Cj4gIAlzdHJ1Y3QgcmVzZXRfY29udHJvbAkqYXBwc19yZXNldDsK PiAgCXN0cnVjdCByZXNldF9jb250cm9sCSp0dXJub2ZmX3Jlc2V0Owo+IEBAIC00MDIsNiArNDA2 LDEwIEBAIHN0YXRpYyB2b2lkIGlteF9wY2llX2NvbmZpZ3VyZV90eXBlKHN0cnVjdCBpbXhfcGNp ZSAqaW14X3BjaWUpCj4gIAlpZiAoIWRydmRhdGEtPm1vZGVfbWFza1tpZF0pCj4gIAkJaWQgPSAw Owo+ICAKPiArCS8qIElmIG1vZGVfbWFzayBpcyAwLCBtZWFucyB1c2UgcGh5IGRyaXZlciB0byBz ZXQgbW9kZSAqLwo+ICsJaWYgKCFkcnZkYXRhLT5tb2RlX21hc2tbaWRdKQo+ICsJCXJldHVybjsK ClRoZXJlIGlzIGFscmVhZHkgYSBjaGVjayBhYm92ZSBmb3IgMCBtb2RlX21hc2suIFBsZWFzZSBj b25zb2xpZGF0ZS4KCj4gKwo+ICAJbWFzayA9IGRydmRhdGEtPm1vZGVfbWFza1tpZF07Cj4gIAl2 YWwgPSBtb2RlIDw8IChmZnMobWFzaykgLSAxKTsKPiAgCj4gQEAgLTk1Nyw2ICs5NjUsNyBAQCBz dGF0aWMgdm9pZCBpbXhfcGNpZV9sdHNzbV9lbmFibGUoc3RydWN0IGRldmljZSAqZGV2KQo+ICAJ c3RydWN0IGlteF9wY2llICppbXhfcGNpZSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICAJY29u c3Qgc3RydWN0IGlteF9wY2llX2RydmRhdGEgKmRydmRhdGEgPSBpbXhfcGNpZS0+ZHJ2ZGF0YTsK PiAgCj4gKwlwaHlfc2V0X3NwZWVkKGlteF9wY2llLT5waHksIFBDSV9FWFBfTE5LQ0FQX1NMU18y XzVHQik7Cj4gIAlpZiAoZHJ2ZGF0YS0+bHRzc21fbWFzaykKPiAgCQlyZWdtYXBfdXBkYXRlX2Jp dHMoaW14X3BjaWUtPmlvbXV4Y19ncHIsIGRydmRhdGEtPmx0c3NtX29mZiwgZHJ2ZGF0YS0+bHRz c21fbWFzaywKPiAgCQkJCSAgIGRydmRhdGEtPmx0c3NtX21hc2spOwo+IEBAIC05NjksNiArOTc4 LDcgQEAgc3RhdGljIHZvaWQgaW14X3BjaWVfbHRzc21fZGlzYWJsZShzdHJ1Y3QgZGV2aWNlICpk ZXYpCj4gIAlzdHJ1Y3QgaW14X3BjaWUgKmlteF9wY2llID0gZGV2X2dldF9kcnZkYXRhKGRldik7 Cj4gIAljb25zdCBzdHJ1Y3QgaW14X3BjaWVfZHJ2ZGF0YSAqZHJ2ZGF0YSA9IGlteF9wY2llLT5k cnZkYXRhOwo+ICAKPiArCXBoeV9zZXRfc3BlZWQoaW14X3BjaWUtPnBoeSwgMCk7Cj4gIAlpZiAo ZHJ2ZGF0YS0+bHRzc21fbWFzaykKPiAgCQlyZWdtYXBfdXBkYXRlX2JpdHMoaW14X3BjaWUtPmlv bXV4Y19ncHIsIGRydmRhdGEtPmx0c3NtX29mZiwKPiAgCQkJCSAgIGRydmRhdGEtPmx0c3NtX21h c2ssIDApOwo+IEBAIC0xMTA0LDYgKzExMTQsMTIgQEAgc3RhdGljIGludCBpbXhfcGNpZV9ob3N0 X2luaXQoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICAJCQlnb3RvIGVycl9jbGtfZGlzYWJsZTsK PiAgCQl9Cj4gIAo+ICsJCXJldCA9IHBoeV9zZXRfbW9kZV9leHQoaW14X3BjaWUtPnBoeSwgUEhZ X01PREVfUENJRSwgUEhZX01PREVfUENJRV9SQyk7Cj4gKwkJaWYgKHJldCkgewo+ICsJCQlkZXZf ZXJyKGRldiwgInVuYWJsZSB0byBzZXQgcGNpZSBQSFkgbW9kZVxuIik7Cj4gKwkJCWdvdG8gZXJy X3BoeV9vZmY7Cj4gKwkJfQoKVGhpcyBpcyBub3QgaS5NWDhRIHNwZWNpZmljLiBQbGVhc2UgYWRk IGl0IGluIGEgc2VwYXJhdGUgcGF0Y2guCgo+ICsKPiAgCQlyZXQgPSBwaHlfcG93ZXJfb24oaW14 X3BjaWUtPnBoeSk7Cj4gIAkJaWYgKHJldCkgewo+ICAJCQlkZXZfZXJyKGRldiwgIndhaXRpbmcg Zm9yIFBIWSByZWFkeSB0aW1lb3V0IVxuIik7Cj4gQEAgLTExNTQsNiArMTE3MCwyOCBAQCBzdGF0 aWMgdm9pZCBpbXhfcGNpZV9ob3N0X2V4aXQoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICAJCXJl Z3VsYXRvcl9kaXNhYmxlKGlteF9wY2llLT52cGNpZSk7Cj4gIH0KPiAgCj4gK3N0YXRpYyB1NjQg aW14X3BjaWVfY3B1X2FkZHJfZml4dXAoc3RydWN0IGR3X3BjaWUgKnBjaWUsIHU2NCBjcHVfYWRk cikKPiArewo+ICsJc3RydWN0IGlteF9wY2llICppbXhfcGNpZSA9IHRvX2lteF9wY2llKHBjaWUp Owo+ICsJc3RydWN0IGR3X3BjaWVfZXAgKmVwID0gJnBjaWUtPmVwOwo+ICsJc3RydWN0IGR3X3Bj aWVfcnAgKnBwID0gJnBjaWUtPnBwOwo+ICsJc3RydWN0IHJlc291cmNlX2VudHJ5ICplbnRyeTsK PiArCXVuc2lnbmVkIGludCBvZmZzZXQ7Cj4gKwo+ICsJaWYgKCEoaW14X3BjaWUtPmRydmRhdGEt PmZsYWdzICYgSU1YX1BDSUVfRkxBR19DUFVfQUREUl9GSVhVUCkpCgpUaGlzIGZsYWcgc2hvdWxk IGJlIGRvY3VtZW50ZWQgaW4gdGhlIGNvbW1pdCBtZXNzYWdlLgoKPiArCQlyZXR1cm4gY3B1X2Fk ZHI7Cj4gKwo+ICsJaWYgKGlteF9wY2llLT5kcnZkYXRhLT5tb2RlID09IERXX1BDSUVfRVBfVFlQ RSkgewo+ICsJCW9mZnNldCA9IGVwLT5waHlzX2Jhc2U7Cj4gKwl9IGVsc2Ugewo+ICsJCWVudHJ5 ID0gcmVzb3VyY2VfbGlzdF9maXJzdF90eXBlKCZwcC0+YnJpZGdlLT53aW5kb3dzLAo+ICsJCQkJ CQkgSU9SRVNPVVJDRV9NRU0pOwoKQ2hlY2sgZm9yIE5VTEwgZW50cnkuCgo+ICsJCW9mZnNldCA9 IGVudHJ5LT5yZXMtPnN0YXJ0Owo+ICsJfQo+ICsKPiArCXJldHVybiAoY3B1X2FkZHIgKyBpbXhf cGNpZS0+bG9jYWxfYWRkciAtIG9mZnNldCk7Cj4gK30KPiArCj4gIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZHdfcGNpZV9ob3N0X29wcyBpbXhfcGNpZV9ob3N0X29wcyA9IHsKPiAgCS5pbml0ID0gaW14 X3BjaWVfaG9zdF9pbml0LAo+ICAJLmRlaW5pdCA9IGlteF9wY2llX2hvc3RfZXhpdCwKPiBAQCAt MTE2Miw2ICsxMjAwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkd19wY2llX2hvc3Rfb3BzIGlt eF9wY2llX2hvc3Rfb3BzID0gewo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGR3X3BjaWVfb3BzIGR3 X3BjaWVfb3BzID0gewo+ICAJLnN0YXJ0X2xpbmsgPSBpbXhfcGNpZV9zdGFydF9saW5rLAo+ICAJ LnN0b3BfbGluayA9IGlteF9wY2llX3N0b3BfbGluaywKPiArCS5jcHVfYWRkcl9maXh1cCA9IGlt eF9wY2llX2NwdV9hZGRyX2ZpeHVwLAo+ICB9Owo+ICAKPiAgc3RhdGljIHZvaWQgaW14X3BjaWVf ZXBfaW5pdChzdHJ1Y3QgZHdfcGNpZV9lcCAqZXApCj4gQEAgLTE0ODEsNiArMTUyMCwxMiBAQCBz dGF0aWMgaW50IGlteF9wY2llX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4g IAkJCQkJICAgICAiRmFpbGVkIHRvIGdldCBQQ0lFUEhZIHJlc2V0IGNvbnRyb2xcbiIpOwo+ICAJ fQo+ICAKPiArCWlmIChpbXhfY2hlY2tfZmxhZyhpbXhfcGNpZSwgSU1YX1BDSUVfRkxBR19DUFVf QUREUl9GSVhVUCkpIHsKPiArCQlyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3UzMihub2RlLCAiZnNs LGxvY2FsLWFkZHJlc3MiLCAmaW14X3BjaWUtPmxvY2FsX2FkZHIpOwo+ICsJCWlmIChyZXQpCj4g KwkJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAiRmFpbGVkIHRvIGdldCBsb2NhbC1h ZGRyZXNzIik7CgpJcyBpdCBPSyB0byBjb250aW51ZT8KCi0gTWFuaQoKLS0gCuCuruCuo+Cuv+Cu teCuo+CvjeCuo+CuqeCvjSDgrprgrqTgrr7grprgrr/grrXgrq7gr40KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGlu ZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK