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=-12.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham 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 093BEC433E6 for ; Thu, 27 Aug 2020 22:49:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D7EFB20848 for ; Thu, 27 Aug 2020 22:49:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726289AbgH0Wto (ORCPT ); Thu, 27 Aug 2020 18:49:44 -0400 Received: from mail-lj1-f196.google.com ([209.85.208.196]:32879 "EHLO mail-lj1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726706AbgH0Wto (ORCPT ); Thu, 27 Aug 2020 18:49:44 -0400 Received: by mail-lj1-f196.google.com with SMTP id r13so4871561ljm.0 for ; Thu, 27 Aug 2020 15:49:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=L8guBDHGjG+NXSlHB3kHDy5xgM5YtuXUahDS/pmCCuk=; b=UxgGq5D9GN65oCrVbcfW3/csHlatLlvCMBYp3+DGzuZgBRuzZR0yPDTS6TikyWmbMi Vh78mr79v2fN9JxE+EL56VF9RxKQBvRKIvBSjarnWWuw9u4T9QNygIRu40w4HLAfLDuN GJXVNUyTCXs+MQgsH9D1veENmdFO40LN093n1XcyLOHO+YDPy1xHjr7BSAj3RYjo+SN9 kJyS4CZxWvurWewk1pBp0DvYKnQ1QPe2i7G1Biq8VK6YUQrhLq29YP0+lseohwGBJTnv 27QB0mbU46Z0AGrBYJJCAiYrJy6BFTmwD96p2Pxd453JiBU+tdjmlvQVLjlIAVhb4i1n LWqw== X-Gm-Message-State: AOAM530X2IauSEx22gHQWqWN7AdT/z6FJz2JeHDFxdLCMEMbTJEeVoES HPsH8jKwPJJaMvpXwbqkRgM= X-Google-Smtp-Source: ABdhPJxOC3xKvhgVIuof/riZ/pKkqoZd0UZtg0P/WSQCdJEpWYwWE/3gGCENoUL7Q2Y7MvAke3dfJA== X-Received: by 2002:a2e:330e:: with SMTP id d14mr10506470ljc.407.1598568580262; Thu, 27 Aug 2020 15:49:40 -0700 (PDT) Received: from workstation.lan ([95.155.85.46]) by smtp.gmail.com with ESMTPSA id i20sm756489ljb.90.2020.08.27.15.49.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Aug 2020 15:49:39 -0700 (PDT) From: =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= To: Bjorn Helgaas Cc: Jonathan Chocron , Shawn Lin , Heiko Stuebner , Zhou Wang , Lorenzo Pieralisi , Will Deacon , Robert Richter , Michal Simek , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org Subject: [PATCH] PCI: Unify ECAM constants in native PCI Express drivers Date: Thu, 27 Aug 2020 22:49:38 +0000 Message-Id: <20200827224938.977757-1-kw@linux.com> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org Unify ECAM-related constants into a single set of standard constants defining memory address shift values for the byte-level address that can be used when accessing the PCI Express Configuration Space, and then move native PCI Express controller drivers to use newly introduced definitions retiring any driver-specific ones. The ECAM ("Enhanced Configuration Access Mechanism") is defined by the PCI Express specification (see PCI Base Specification, Revision 5.0, Version 1.0, Section 7.2.2, p. 676), thus most hardware should implement it the same way. Most of the native PCI Express controller drivers define their ECAM-related constants, many of these could be shared, or use open-coded values when setting the .bus_shift field of the struct pci_ecam_ops. All of the newly added constants should remove ambiguity and reduce the number of open-coded values, and also correlate more strongly with the descriptions in the aforementioned specification (see Table 7-1 "Enhanced Configuration Address Mapping", p. 677). There is no change to functionality. Suggested-by: Bjorn Helgaas Signed-off-by: Krzysztof WilczyƄski --- drivers/pci/controller/dwc/pcie-al.c | 8 ++++---- drivers/pci/controller/dwc/pcie-hisi.c | 4 ++-- drivers/pci/controller/pci-host-generic.c | 2 +- drivers/pci/controller/pci-thunder-ecam.c | 2 +- drivers/pci/controller/pcie-rockchip.h | 7 ++++--- drivers/pci/controller/pcie-tango.c | 2 +- drivers/pci/controller/pcie-xilinx-nwl.c | 7 +++---- drivers/pci/controller/pcie-xilinx.c | 9 +++------ drivers/pci/ecam.c | 4 ++-- include/linux/pci-ecam.h | 8 ++++++++ 10 files changed, 29 insertions(+), 24 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-al.c b/drivers/pci/controller/dwc/pcie-al.c index d57d4ee15848..57165cb0ef02 100644 --- a/drivers/pci/controller/dwc/pcie-al.c +++ b/drivers/pci/controller/dwc/pcie-al.c @@ -76,7 +76,7 @@ static int al_pcie_init(struct pci_config_window *cfg) } const struct pci_ecam_ops al_pcie_ops = { - .bus_shift = 20, + .bus_shift = PCIE_ECAM_BUS_SHIFT, .init = al_pcie_init, .pci_ops = { .map_bus = al_pcie_map_bus, @@ -138,7 +138,7 @@ struct al_pcie { struct al_pcie_target_bus_cfg target_bus_cfg; }; -#define PCIE_ECAM_DEVFN(x) (((x) & 0xff) << 12) +#define PCIE_ECAM_DEVFN(x) (((x) & 0xff) << PCIE_ECAM_FUN_SHIFT) #define to_al_pcie(x) dev_get_drvdata((x)->dev) @@ -228,7 +228,7 @@ static void __iomem *al_pcie_conf_addr_map(struct al_pcie *pcie, void __iomem *pci_base_addr; pci_base_addr = (void __iomem *)((uintptr_t)pp->va_cfg0_base + - (busnr_ecam << 20) + + (busnr_ecam << PCIE_ECAM_BUS_SHIFT) + PCIE_ECAM_DEVFN(devfn)); if (busnr_reg != target_bus_cfg->reg_val) { @@ -300,7 +300,7 @@ static void al_pcie_config_prepare(struct al_pcie *pcie) target_bus_cfg = &pcie->target_bus_cfg; - ecam_bus_mask = (pcie->ecam_size >> 20) - 1; + ecam_bus_mask = (pcie->ecam_size >> PCIE_ECAM_BUS_SHIFT) - 1; if (ecam_bus_mask > 255) { dev_warn(pcie->dev, "ECAM window size is larger than 256MB. Cutting off at 256\n"); ecam_bus_mask = 255; diff --git a/drivers/pci/controller/dwc/pcie-hisi.c b/drivers/pci/controller/dwc/pcie-hisi.c index 5ca86796d43a..b7afbf1d4bd9 100644 --- a/drivers/pci/controller/dwc/pcie-hisi.c +++ b/drivers/pci/controller/dwc/pcie-hisi.c @@ -100,7 +100,7 @@ static int hisi_pcie_init(struct pci_config_window *cfg) } const struct pci_ecam_ops hisi_pcie_ops = { - .bus_shift = 20, + .bus_shift = PCIE_ECAM_BUS_SHIFT, .init = hisi_pcie_init, .pci_ops = { .map_bus = hisi_pcie_map_bus, @@ -135,7 +135,7 @@ static int hisi_pcie_platform_init(struct pci_config_window *cfg) } static const struct pci_ecam_ops hisi_pcie_platform_ops = { - .bus_shift = 20, + .bus_shift = PCIE_ECAM_BUS_SHIFT, .init = hisi_pcie_platform_init, .pci_ops = { .map_bus = hisi_pcie_map_bus, diff --git a/drivers/pci/controller/pci-host-generic.c b/drivers/pci/controller/pci-host-generic.c index b51977abfdf1..c1c69b11615f 100644 --- a/drivers/pci/controller/pci-host-generic.c +++ b/drivers/pci/controller/pci-host-generic.c @@ -49,7 +49,7 @@ static void __iomem *pci_dw_ecam_map_bus(struct pci_bus *bus, } static const struct pci_ecam_ops pci_dw_ecam_bus_ops = { - .bus_shift = 20, + .bus_shift = PCIE_ECAM_BUS_SHIFT, .pci_ops = { .map_bus = pci_dw_ecam_map_bus, .read = pci_generic_config_read, diff --git a/drivers/pci/controller/pci-thunder-ecam.c b/drivers/pci/controller/pci-thunder-ecam.c index 7e8835fee5f7..22ed7e995b39 100644 --- a/drivers/pci/controller/pci-thunder-ecam.c +++ b/drivers/pci/controller/pci-thunder-ecam.c @@ -346,7 +346,7 @@ static int thunder_ecam_config_write(struct pci_bus *bus, unsigned int devfn, } const struct pci_ecam_ops pci_thunder_ecam_ops = { - .bus_shift = 20, + .bus_shift = PCIE_ECAM_BUS_SHIFT, .pci_ops = { .map_bus = pci_ecam_map_bus, .read = thunder_ecam_config_read, diff --git a/drivers/pci/controller/pcie-rockchip.h b/drivers/pci/controller/pcie-rockchip.h index c7d0178fc8c2..50f425e03e8f 100644 --- a/drivers/pci/controller/pcie-rockchip.h +++ b/drivers/pci/controller/pcie-rockchip.h @@ -13,6 +13,7 @@ #include #include +#include /* * The upper 16 bits of PCIE_CLIENT_CONFIG are a write mask for the lower 16 @@ -178,9 +179,9 @@ #define MIN_AXI_ADDR_BITS_PASSED 8 #define PCIE_RC_SEND_PME_OFF 0x11960 #define ROCKCHIP_VENDOR_ID 0x1d87 -#define PCIE_ECAM_BUS(x) (((x) & 0xff) << 20) -#define PCIE_ECAM_DEV(x) (((x) & 0x1f) << 15) -#define PCIE_ECAM_FUNC(x) (((x) & 0x7) << 12) +#define PCIE_ECAM_BUS(x) (((x) & 0xff) << PCIE_ECAM_BUS_SHIFT) +#define PCIE_ECAM_DEV(x) (((x) & 0x1f) << PCIE_ECAM_DEV_SHIFT) +#define PCIE_ECAM_FUNC(x) (((x) & 0x7) << PCIE_ECAM_FUN_SHIFT) #define PCIE_ECAM_REG(x) (((x) & 0xfff) << 0) #define PCIE_ECAM_ADDR(bus, dev, func, reg) \ (PCIE_ECAM_BUS(bus) | PCIE_ECAM_DEV(dev) | \ diff --git a/drivers/pci/controller/pcie-tango.c b/drivers/pci/controller/pcie-tango.c index d093a8ce4bb1..8f0d695afbde 100644 --- a/drivers/pci/controller/pcie-tango.c +++ b/drivers/pci/controller/pcie-tango.c @@ -208,7 +208,7 @@ static int smp8759_config_write(struct pci_bus *bus, unsigned int devfn, } static const struct pci_ecam_ops smp8759_ecam_ops = { - .bus_shift = 20, + .bus_shift = PCIE_ECAM_BUS_SHIFT, .pci_ops = { .map_bus = pci_ecam_map_bus, .read = smp8759_config_read, diff --git a/drivers/pci/controller/pcie-xilinx-nwl.c b/drivers/pci/controller/pcie-xilinx-nwl.c index f3cf7d61924f..8f628b66a0d7 100644 --- a/drivers/pci/controller/pcie-xilinx-nwl.c +++ b/drivers/pci/controller/pcie-xilinx-nwl.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -124,8 +125,6 @@ #define E_ECAM_CR_ENABLE BIT(0) #define E_ECAM_SIZE_LOC GENMASK(20, 16) #define E_ECAM_SIZE_SHIFT 16 -#define ECAM_BUS_LOC_SHIFT 20 -#define ECAM_DEV_LOC_SHIFT 12 #define NWL_ECAM_VALUE_DEFAULT 12 #define CFG_DMA_REG_BAR GENMASK(2, 0) @@ -245,8 +244,8 @@ static void __iomem *nwl_pcie_map_bus(struct pci_bus *bus, unsigned int devfn, if (!nwl_pcie_valid_device(bus, devfn)) return NULL; - relbus = (bus->number << ECAM_BUS_LOC_SHIFT) | - (devfn << ECAM_DEV_LOC_SHIFT); + relbus = (bus->number << PCIE_ECAM_BUS_SHIFT) | + (devfn << PCIE_ECAM_FUN_SHIFT); return pcie->ecam_base + relbus + where; } diff --git a/drivers/pci/controller/pcie-xilinx.c b/drivers/pci/controller/pcie-xilinx.c index 8523be61bba5..7e9fdaccd132 100644 --- a/drivers/pci/controller/pcie-xilinx.c +++ b/drivers/pci/controller/pcie-xilinx.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include "../pci.h" @@ -86,10 +87,6 @@ /* Phy Status/Control Register definitions */ #define XILINX_PCIE_REG_PSCR_LNKUP BIT(11) -/* ECAM definitions */ -#define ECAM_BUS_NUM_SHIFT 20 -#define ECAM_DEV_NUM_SHIFT 12 - /* Number of MSI IRQs */ #define XILINX_NUM_MSI_IRQS 128 @@ -188,8 +185,8 @@ static void __iomem *xilinx_pcie_map_bus(struct pci_bus *bus, if (!xilinx_pcie_valid_device(bus, devfn)) return NULL; - relbus = (bus->number << ECAM_BUS_NUM_SHIFT) | - (devfn << ECAM_DEV_NUM_SHIFT); + relbus = (bus->number << PCIE_ECAM_BUS_SHIFT) | + (devfn << PCIE_ECAM_FUN_SHIFT); return port->reg_base + relbus + where; } diff --git a/drivers/pci/ecam.c b/drivers/pci/ecam.c index 8f065a42fc1a..ffd010290084 100644 --- a/drivers/pci/ecam.c +++ b/drivers/pci/ecam.c @@ -149,7 +149,7 @@ EXPORT_SYMBOL_GPL(pci_ecam_map_bus); /* ECAM ops */ const struct pci_ecam_ops pci_generic_ecam_ops = { - .bus_shift = 20, + .bus_shift = PCIE_ECAM_BUS_SHIFT, .pci_ops = { .map_bus = pci_ecam_map_bus, .read = pci_generic_config_read, @@ -161,7 +161,7 @@ EXPORT_SYMBOL_GPL(pci_generic_ecam_ops); #if defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS) /* ECAM ops for 32-bit access only (non-compliant) */ const struct pci_ecam_ops pci_32b_ops = { - .bus_shift = 20, + .bus_shift = PCIE_ECAM_BUS_SHIFT, .pci_ops = { .map_bus = pci_ecam_map_bus, .read = pci_generic_config_read32, diff --git a/include/linux/pci-ecam.h b/include/linux/pci-ecam.h index 1af5cb02ef7f..58a5d5e2e831 100644 --- a/include/linux/pci-ecam.h +++ b/include/linux/pci-ecam.h @@ -9,6 +9,14 @@ #include #include +/* + * Memory address shift values for the byte-level address that + * can be used when accessing the PCI Express Configuration Space. + */ +#define PCIE_ECAM_FUN_SHIFT 12 /* Function Number */ +#define PCIE_ECAM_DEV_SHIFT 15 /* Device Number */ +#define PCIE_ECAM_BUS_SHIFT 20 /* Bus Number */ + /* * struct to hold pci ops and bus shift of the config window * for a PCI controller. -- 2.28.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=-13.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham 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 DEAB1C433E2 for ; Thu, 27 Aug 2020 22:49:56 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 9AA0F20848 for ; Thu, 27 Aug 2020 22:49:56 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="ZYOTRDMM" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9AA0F20848 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=linux.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=YNG7RH0oWhfEWeaTjNH4j4x+K24gkY1FJDoQieZPvHU=; b=ZYOTRDMMYh/pkblb7EiZOIFopK U9eJg+mD5UaCGaZvVmU6ySYc/Ga8neJyrNmOq2CkYdk8bIlbxhk+VdATGA120cWIVseCXWXZYbOYm MlKEciKGKUA1QtNmDLw0rRHP+FD1tsmjWApbKF96xQFJ2bD8DsxdTNTS4za48Ne3QL2iRSQOYJc2g Cse5PK6/fhadYEB+oUBhcFe7u3SYjQRaD4a5dYcL4tt1PXqS5aEdeQ07XURN6yxSkC9xeKlpHVyts TKwOUX/7XK/IH3y1StvWuy9uh8vL8MluctY7DFtZZ+WOZcsTyhxFU22GDj+WwiGffNLIMlgJj4wfq HT8EFE3g==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kBQiJ-0002Vo-7l; Thu, 27 Aug 2020 22:49:47 +0000 Received: from mail-lj1-f194.google.com ([209.85.208.194]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kBQiE-0002SM-R1; Thu, 27 Aug 2020 22:49:43 +0000 Received: by mail-lj1-f194.google.com with SMTP id t23so8290353ljc.3; Thu, 27 Aug 2020 15:49:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=L8guBDHGjG+NXSlHB3kHDy5xgM5YtuXUahDS/pmCCuk=; b=DqXJ7yYlWPwBqnKSSTi1sPWtUItF1TTJjtU0Y/OcwSaH8u1+i2KEsa20+8zJzZkpzb 8EdKXi8JBvZvnSNuHhHFLOrNOr0Dtp8qNt1aMgLY3McXTb9CBkLp0QEweggac07NFGJ8 K2p/dpRXgJ5mAcRJuYX0FGOSYT7CezPcl5MwEuiewNlxo2hckrlP5NV44gqKbPg4FUx/ Q+zkvu0y4JiSs3txz76gCUa5KGtDoOwYwybu9GPBoeB03wgnqUYoy4bqowiGRi9M1SpZ 1uW99ztXF9PgZoFWDQMAxS/PpO95DXBdtUGAZeW6wUoHZ9FGvAs/76YjFq+IDSk6JuVU +/9A== X-Gm-Message-State: AOAM533ArXCktSAC7Ha+lcpG4O0RVevikzxSfAzKtSQ5qxnMV8XfUKe7 cLxtxJjdEmgvagM2Yai01t4= X-Google-Smtp-Source: ABdhPJxOC3xKvhgVIuof/riZ/pKkqoZd0UZtg0P/WSQCdJEpWYwWE/3gGCENoUL7Q2Y7MvAke3dfJA== X-Received: by 2002:a2e:330e:: with SMTP id d14mr10506470ljc.407.1598568580262; Thu, 27 Aug 2020 15:49:40 -0700 (PDT) Received: from workstation.lan ([95.155.85.46]) by smtp.gmail.com with ESMTPSA id i20sm756489ljb.90.2020.08.27.15.49.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Aug 2020 15:49:39 -0700 (PDT) From: =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= To: Bjorn Helgaas Subject: [PATCH] PCI: Unify ECAM constants in native PCI Express drivers Date: Thu, 27 Aug 2020 22:49:38 +0000 Message-Id: <20200827224938.977757-1-kw@linux.com> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200827_184942_915175_F259A93B X-CRM114-Status: GOOD ( 21.70 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Lorenzo Pieralisi , Heiko Stuebner , linux-pci@vger.kernel.org, Shawn Lin , Michal Simek , linux-rockchip@lists.infradead.org, Zhou Wang , Robert Richter , Jonathan Chocron , Will Deacon , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org VW5pZnkgRUNBTS1yZWxhdGVkIGNvbnN0YW50cyBpbnRvIGEgc2luZ2xlIHNldCBvZiBzdGFuZGFy ZCBjb25zdGFudHMKZGVmaW5pbmcgbWVtb3J5IGFkZHJlc3Mgc2hpZnQgdmFsdWVzIGZvciB0aGUg Ynl0ZS1sZXZlbCBhZGRyZXNzIHRoYXQgY2FuCmJlIHVzZWQgd2hlbiBhY2Nlc3NpbmcgdGhlIFBD SSBFeHByZXNzIENvbmZpZ3VyYXRpb24gU3BhY2UsIGFuZCB0aGVuCm1vdmUgbmF0aXZlIFBDSSBF eHByZXNzIGNvbnRyb2xsZXIgZHJpdmVycyB0byB1c2UgbmV3bHkgaW50cm9kdWNlZApkZWZpbml0 aW9ucyByZXRpcmluZyBhbnkgZHJpdmVyLXNwZWNpZmljIG9uZXMuCgpUaGUgRUNBTSAoIkVuaGFu Y2VkIENvbmZpZ3VyYXRpb24gQWNjZXNzIE1lY2hhbmlzbSIpIGlzIGRlZmluZWQgYnkgdGhlClBD SSBFeHByZXNzIHNwZWNpZmljYXRpb24gKHNlZSBQQ0kgQmFzZSBTcGVjaWZpY2F0aW9uLCBSZXZp c2lvbiA1LjAsClZlcnNpb24gMS4wLCBTZWN0aW9uIDcuMi4yLCBwLiA2NzYpLCB0aHVzIG1vc3Qg aGFyZHdhcmUgc2hvdWxkIGltcGxlbWVudAppdCB0aGUgc2FtZSB3YXkuICBNb3N0IG9mIHRoZSBu YXRpdmUgUENJIEV4cHJlc3MgY29udHJvbGxlciBkcml2ZXJzCmRlZmluZSB0aGVpciBFQ0FNLXJl bGF0ZWQgY29uc3RhbnRzLCBtYW55IG9mIHRoZXNlIGNvdWxkIGJlIHNoYXJlZCwgb3IKdXNlIG9w ZW4tY29kZWQgdmFsdWVzIHdoZW4gc2V0dGluZyB0aGUgLmJ1c19zaGlmdCBmaWVsZCBvZiB0aGUg c3RydWN0CnBjaV9lY2FtX29wcy4KCkFsbCBvZiB0aGUgbmV3bHkgYWRkZWQgY29uc3RhbnRzIHNo b3VsZCByZW1vdmUgYW1iaWd1aXR5IGFuZCByZWR1Y2UgdGhlCm51bWJlciBvZiBvcGVuLWNvZGVk IHZhbHVlcywgYW5kIGFsc28gY29ycmVsYXRlIG1vcmUgc3Ryb25nbHkgd2l0aCB0aGUKZGVzY3Jp cHRpb25zIGluIHRoZSBhZm9yZW1lbnRpb25lZCBzcGVjaWZpY2F0aW9uIChzZWUgVGFibGUgNy0x CiJFbmhhbmNlZCBDb25maWd1cmF0aW9uIEFkZHJlc3MgTWFwcGluZyIsIHAuIDY3NykuCgpUaGVy ZSBpcyBubyBjaGFuZ2UgdG8gZnVuY3Rpb25hbGl0eS4KClN1Z2dlc3RlZC1ieTogQmpvcm4gSGVs Z2FhcyA8YmhlbGdhYXNAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogS3J6eXN6dG9mIFdpbGN6 ecWEc2tpIDxrd0BsaW51eC5jb20+Ci0tLQogZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp ZS1hbC5jICAgICAgfCA4ICsrKystLS0tCiBkcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ll LWhpc2kuYyAgICB8IDQgKystLQogZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaG9zdC1nZW5l cmljLmMgfCAyICstCiBkcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS10aHVuZGVyLWVjYW0uYyB8 IDIgKy0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC5oICAgIHwgNyArKysr LS0tCiBkcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtdGFuZ28uYyAgICAgICB8IDIgKy0KIGRy aXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbngtbndsLmMgIHwgNyArKystLS0tCiBkcml2 ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUteGlsaW54LmMgICAgICB8IDkgKysrLS0tLS0tCiBkcml2 ZXJzL3BjaS9lY2FtLmMgICAgICAgICAgICAgICAgICAgICAgICB8IDQgKystLQogaW5jbHVkZS9s aW51eC9wY2ktZWNhbS5oICAgICAgICAgICAgICAgICAgfCA4ICsrKysrKysrCiAxMCBmaWxlcyBj aGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWFsLmMgYi9kcml2ZXJzL3BjaS9jb250cm9s bGVyL2R3Yy9wY2llLWFsLmMKaW5kZXggZDU3ZDRlZTE1ODQ4Li41NzE2NWNiMGVmMDIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYWwuYworKysgYi9kcml2ZXJz L3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWFsLmMKQEAgLTc2LDcgKzc2LDcgQEAgc3RhdGljIGlu dCBhbF9wY2llX2luaXQoc3RydWN0IHBjaV9jb25maWdfd2luZG93ICpjZmcpCiB9CiAKIGNvbnN0 IHN0cnVjdCBwY2lfZWNhbV9vcHMgYWxfcGNpZV9vcHMgPSB7Ci0JLmJ1c19zaGlmdCAgICA9IDIw LAorCS5idXNfc2hpZnQgICAgPSBQQ0lFX0VDQU1fQlVTX1NISUZULAogCS5pbml0ICAgICAgICAg PSAgYWxfcGNpZV9pbml0LAogCS5wY2lfb3BzICAgICAgPSB7CiAJCS5tYXBfYnVzICAgID0gYWxf cGNpZV9tYXBfYnVzLApAQCAtMTM4LDcgKzEzOCw3IEBAIHN0cnVjdCBhbF9wY2llIHsKIAlzdHJ1 Y3QgYWxfcGNpZV90YXJnZXRfYnVzX2NmZyB0YXJnZXRfYnVzX2NmZzsKIH07CiAKLSNkZWZpbmUg UENJRV9FQ0FNX0RFVkZOKHgpCQkoKCh4KSAmIDB4ZmYpIDw8IDEyKQorI2RlZmluZSBQQ0lFX0VD QU1fREVWRk4oeCkJCSgoKHgpICYgMHhmZikgPDwgUENJRV9FQ0FNX0ZVTl9TSElGVCkKIAogI2Rl ZmluZSB0b19hbF9wY2llKHgpCQlkZXZfZ2V0X2RydmRhdGEoKHgpLT5kZXYpCiAKQEAgLTIyOCw3 ICsyMjgsNyBAQCBzdGF0aWMgdm9pZCBfX2lvbWVtICphbF9wY2llX2NvbmZfYWRkcl9tYXAoc3Ry dWN0IGFsX3BjaWUgKnBjaWUsCiAJdm9pZCBfX2lvbWVtICpwY2lfYmFzZV9hZGRyOwogCiAJcGNp X2Jhc2VfYWRkciA9ICh2b2lkIF9faW9tZW0gKikoKHVpbnRwdHJfdClwcC0+dmFfY2ZnMF9iYXNl ICsKLQkJCQkJIChidXNucl9lY2FtIDw8IDIwKSArCisJCQkJCSAoYnVzbnJfZWNhbSA8PCBQQ0lF X0VDQU1fQlVTX1NISUZUKSArCiAJCQkJCSBQQ0lFX0VDQU1fREVWRk4oZGV2Zm4pKTsKIAogCWlm IChidXNucl9yZWcgIT0gdGFyZ2V0X2J1c19jZmctPnJlZ192YWwpIHsKQEAgLTMwMCw3ICszMDAs NyBAQCBzdGF0aWMgdm9pZCBhbF9wY2llX2NvbmZpZ19wcmVwYXJlKHN0cnVjdCBhbF9wY2llICpw Y2llKQogCiAJdGFyZ2V0X2J1c19jZmcgPSAmcGNpZS0+dGFyZ2V0X2J1c19jZmc7CiAKLQllY2Ft X2J1c19tYXNrID0gKHBjaWUtPmVjYW1fc2l6ZSA+PiAyMCkgLSAxOworCWVjYW1fYnVzX21hc2sg PSAocGNpZS0+ZWNhbV9zaXplID4+IFBDSUVfRUNBTV9CVVNfU0hJRlQpIC0gMTsKIAlpZiAoZWNh bV9idXNfbWFzayA+IDI1NSkgewogCQlkZXZfd2FybihwY2llLT5kZXYsICJFQ0FNIHdpbmRvdyBz aXplIGlzIGxhcmdlciB0aGFuIDI1Nk1CLiBDdXR0aW5nIG9mZiBhdCAyNTZcbiIpOwogCQllY2Ft X2J1c19tYXNrID0gMjU1OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2Mv cGNpZS1oaXNpLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWhpc2kuYwppbmRl eCA1Y2E4Njc5NmQ0M2EuLmI3YWZiZjFkNGJkOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29u dHJvbGxlci9kd2MvcGNpZS1oaXNpLmMKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2Mv cGNpZS1oaXNpLmMKQEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgaW50IGhpc2lfcGNpZV9pbml0 KHN0cnVjdCBwY2lfY29uZmlnX3dpbmRvdyAqY2ZnKQogfQogCiBjb25zdCBzdHJ1Y3QgcGNpX2Vj YW1fb3BzIGhpc2lfcGNpZV9vcHMgPSB7Ci0JLmJ1c19zaGlmdCAgICA9IDIwLAorCS5idXNfc2hp ZnQgICAgPSBQQ0lFX0VDQU1fQlVTX1NISUZULAogCS5pbml0ICAgICAgICAgPSAgaGlzaV9wY2ll X2luaXQsCiAJLnBjaV9vcHMgICAgICA9IHsKIAkJLm1hcF9idXMgICAgPSBoaXNpX3BjaWVfbWFw X2J1cywKQEAgLTEzNSw3ICsxMzUsNyBAQCBzdGF0aWMgaW50IGhpc2lfcGNpZV9wbGF0Zm9ybV9p bml0KHN0cnVjdCBwY2lfY29uZmlnX3dpbmRvdyAqY2ZnKQogfQogCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IHBjaV9lY2FtX29wcyBoaXNpX3BjaWVfcGxhdGZvcm1fb3BzID0gewotCS5idXNfc2hpZnQg ICAgPSAyMCwKKwkuYnVzX3NoaWZ0ICAgID0gUENJRV9FQ0FNX0JVU19TSElGVCwKIAkuaW5pdCAg ICAgICAgID0gIGhpc2lfcGNpZV9wbGF0Zm9ybV9pbml0LAogCS5wY2lfb3BzICAgICAgPSB7CiAJ CS5tYXBfYnVzICAgID0gaGlzaV9wY2llX21hcF9idXMsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL3BjaS1ob3N0LWdlbmVyaWMuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIv cGNpLWhvc3QtZ2VuZXJpYy5jCmluZGV4IGI1MTk3N2FiZmRmMS4uYzFjNjliMTE2MTVmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1ob3N0LWdlbmVyaWMuYworKysgYi9k cml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1ob3N0LWdlbmVyaWMuYwpAQCAtNDksNyArNDksNyBA QCBzdGF0aWMgdm9pZCBfX2lvbWVtICpwY2lfZHdfZWNhbV9tYXBfYnVzKHN0cnVjdCBwY2lfYnVz ICpidXMsCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2VjYW1fb3BzIHBjaV9kd19lY2Ft X2J1c19vcHMgPSB7Ci0JLmJ1c19zaGlmdAk9IDIwLAorCS5idXNfc2hpZnQJPSBQQ0lFX0VDQU1f QlVTX1NISUZULAogCS5wY2lfb3BzCT0gewogCQkubWFwX2J1cwk9IHBjaV9kd19lY2FtX21hcF9i dXMsCiAJCS5yZWFkCQk9IHBjaV9nZW5lcmljX2NvbmZpZ19yZWFkLApkaWZmIC0tZ2l0IGEvZHJp dmVycy9wY2kvY29udHJvbGxlci9wY2ktdGh1bmRlci1lY2FtLmMgYi9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL3BjaS10aHVuZGVyLWVjYW0uYwppbmRleCA3ZTg4MzVmZWU1ZjcuLjIyZWQ3ZTk5NWIz OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktdGh1bmRlci1lY2FtLmMK KysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktdGh1bmRlci1lY2FtLmMKQEAgLTM0Niw3 ICszNDYsNyBAQCBzdGF0aWMgaW50IHRodW5kZXJfZWNhbV9jb25maWdfd3JpdGUoc3RydWN0IHBj aV9idXMgKmJ1cywgdW5zaWduZWQgaW50IGRldmZuLAogfQogCiBjb25zdCBzdHJ1Y3QgcGNpX2Vj YW1fb3BzIHBjaV90aHVuZGVyX2VjYW1fb3BzID0gewotCS5idXNfc2hpZnQJPSAyMCwKKwkuYnVz X3NoaWZ0CT0gUENJRV9FQ0FNX0JVU19TSElGVCwKIAkucGNpX29wcwk9IHsKIAkJLm1hcF9idXMg ICAgICAgID0gcGNpX2VjYW1fbWFwX2J1cywKIAkJLnJlYWQgICAgICAgICAgID0gdGh1bmRlcl9l Y2FtX2NvbmZpZ19yZWFkLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ll LXJvY2tjaGlwLmggYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAuaAppbmRl eCBjN2QwMTc4ZmM4YzIuLjUwZjQyNWUwM2U4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29u dHJvbGxlci9wY2llLXJvY2tjaGlwLmgKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ll LXJvY2tjaGlwLmgKQEAgLTEzLDYgKzEzLDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5o PgogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS1lY2FtLmg+CiAK IC8qCiAgKiBUaGUgdXBwZXIgMTYgYml0cyBvZiBQQ0lFX0NMSUVOVF9DT05GSUcgYXJlIGEgd3Jp dGUgbWFzayBmb3IgdGhlIGxvd2VyIDE2CkBAIC0xNzgsOSArMTc5LDkgQEAKICNkZWZpbmUgTUlO X0FYSV9BRERSX0JJVFNfUEFTU0VECQk4CiAjZGVmaW5lIFBDSUVfUkNfU0VORF9QTUVfT0ZGCQkJ MHgxMTk2MAogI2RlZmluZSBST0NLQ0hJUF9WRU5ET1JfSUQJCQkweDFkODcKLSNkZWZpbmUgUENJ RV9FQ0FNX0JVUyh4KQkJCSgoKHgpICYgMHhmZikgPDwgMjApCi0jZGVmaW5lIFBDSUVfRUNBTV9E RVYoeCkJCQkoKCh4KSAmIDB4MWYpIDw8IDE1KQotI2RlZmluZSBQQ0lFX0VDQU1fRlVOQyh4KQkJ CSgoKHgpICYgMHg3KSA8PCAxMikKKyNkZWZpbmUgUENJRV9FQ0FNX0JVUyh4KQkJCSgoKHgpICYg MHhmZikgPDwgUENJRV9FQ0FNX0JVU19TSElGVCkKKyNkZWZpbmUgUENJRV9FQ0FNX0RFVih4KQkJ CSgoKHgpICYgMHgxZikgPDwgUENJRV9FQ0FNX0RFVl9TSElGVCkKKyNkZWZpbmUgUENJRV9FQ0FN X0ZVTkMoeCkJCQkoKCh4KSAmIDB4NykgPDwgUENJRV9FQ0FNX0ZVTl9TSElGVCkKICNkZWZpbmUg UENJRV9FQ0FNX1JFRyh4KQkJCSgoKHgpICYgMHhmZmYpIDw8IDApCiAjZGVmaW5lIFBDSUVfRUNB TV9BRERSKGJ1cywgZGV2LCBmdW5jLCByZWcpIFwKIAkgIChQQ0lFX0VDQU1fQlVTKGJ1cykgfCBQ Q0lFX0VDQU1fREVWKGRldikgfCBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVy L3BjaWUtdGFuZ28uYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS10YW5nby5jCmluZGV4 IGQwOTNhOGNlNGJiMS4uOGYwZDY5NWFmYmRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL3BjaWUtdGFuZ28uYworKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtdGFu Z28uYwpAQCAtMjA4LDcgKzIwOCw3IEBAIHN0YXRpYyBpbnQgc21wODc1OV9jb25maWdfd3JpdGUo c3RydWN0IHBjaV9idXMgKmJ1cywgdW5zaWduZWQgaW50IGRldmZuLAogfQogCiBzdGF0aWMgY29u c3Qgc3RydWN0IHBjaV9lY2FtX29wcyBzbXA4NzU5X2VjYW1fb3BzID0gewotCS5idXNfc2hpZnQJ PSAyMCwKKwkuYnVzX3NoaWZ0CT0gUENJRV9FQ0FNX0JVU19TSElGVCwKIAkucGNpX29wcwk9IHsK IAkJLm1hcF9idXMJPSBwY2lfZWNhbV9tYXBfYnVzLAogCQkucmVhZAkJPSBzbXA4NzU5X2NvbmZp Z19yZWFkLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhpbGlueC1u d2wuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbngtbndsLmMKaW5kZXggZjNj ZjdkNjE5MjRmLi44ZjYyOGI2NmEwZDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvcGNpZS14aWxpbngtbndsLmMKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhp bGlueC1ud2wuYwpAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3Jt Lmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+Cisj aW5jbHVkZSA8bGludXgvcGNpLWVjYW0uaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZp Y2UuaD4KICNpbmNsdWRlIDxsaW51eC9pcnFjaGlwL2NoYWluZWRfaXJxLmg+CiAKQEAgLTEyNCw4 ICsxMjUsNiBAQAogI2RlZmluZSBFX0VDQU1fQ1JfRU5BQkxFCQlCSVQoMCkKICNkZWZpbmUgRV9F Q0FNX1NJWkVfTE9DCQkJR0VOTUFTSygyMCwgMTYpCiAjZGVmaW5lIEVfRUNBTV9TSVpFX1NISUZU CQkxNgotI2RlZmluZSBFQ0FNX0JVU19MT0NfU0hJRlQJCTIwCi0jZGVmaW5lIEVDQU1fREVWX0xP Q19TSElGVAkJMTIKICNkZWZpbmUgTldMX0VDQU1fVkFMVUVfREVGQVVMVAkJMTIKIAogI2RlZmlu ZSBDRkdfRE1BX1JFR19CQVIJCQlHRU5NQVNLKDIsIDApCkBAIC0yNDUsOCArMjQ0LDggQEAgc3Rh dGljIHZvaWQgX19pb21lbSAqbndsX3BjaWVfbWFwX2J1cyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1 bnNpZ25lZCBpbnQgZGV2Zm4sCiAJaWYgKCFud2xfcGNpZV92YWxpZF9kZXZpY2UoYnVzLCBkZXZm bikpCiAJCXJldHVybiBOVUxMOwogCi0JcmVsYnVzID0gKGJ1cy0+bnVtYmVyIDw8IEVDQU1fQlVT X0xPQ19TSElGVCkgfAotCQkJKGRldmZuIDw8IEVDQU1fREVWX0xPQ19TSElGVCk7CisJcmVsYnVz ID0gKGJ1cy0+bnVtYmVyIDw8IFBDSUVfRUNBTV9CVVNfU0hJRlQpIHwKKwkJCShkZXZmbiA8PCBQ Q0lFX0VDQU1fRlVOX1NISUZUKTsKIAogCXJldHVybiBwY2llLT5lY2FtX2Jhc2UgKyByZWxidXMg KyB3aGVyZTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxp bnguYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbnguYwppbmRleCA4NTIzYmU2 MWJiYTUuLjdlOWZkYWNjZDEzMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9w Y2llLXhpbGlueC5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbnguYwpA QCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+CiAjaW5jbHVk ZSA8bGludXgvb2ZfaXJxLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGlu dXgvcGNpLWVjYW0uaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KIAogI2lu Y2x1ZGUgIi4uL3BjaS5oIgpAQCAtODYsMTAgKzg3LDYgQEAKIC8qIFBoeSBTdGF0dXMvQ29udHJv bCBSZWdpc3RlciBkZWZpbml0aW9ucyAqLwogI2RlZmluZSBYSUxJTlhfUENJRV9SRUdfUFNDUl9M TktVUAlCSVQoMTEpCiAKLS8qIEVDQU0gZGVmaW5pdGlvbnMgKi8KLSNkZWZpbmUgRUNBTV9CVVNf TlVNX1NISUZUCQkyMAotI2RlZmluZSBFQ0FNX0RFVl9OVU1fU0hJRlQJCTEyCi0KIC8qIE51bWJl ciBvZiBNU0kgSVJRcyAqLwogI2RlZmluZSBYSUxJTlhfTlVNX01TSV9JUlFTCQkxMjgKIApAQCAt MTg4LDggKzE4NSw4IEBAIHN0YXRpYyB2b2lkIF9faW9tZW0gKnhpbGlueF9wY2llX21hcF9idXMo c3RydWN0IHBjaV9idXMgKmJ1cywKIAlpZiAoIXhpbGlueF9wY2llX3ZhbGlkX2RldmljZShidXMs IGRldmZuKSkKIAkJcmV0dXJuIE5VTEw7CiAKLQlyZWxidXMgPSAoYnVzLT5udW1iZXIgPDwgRUNB TV9CVVNfTlVNX1NISUZUKSB8Ci0JCSAoZGV2Zm4gPDwgRUNBTV9ERVZfTlVNX1NISUZUKTsKKwly ZWxidXMgPSAoYnVzLT5udW1iZXIgPDwgUENJRV9FQ0FNX0JVU19TSElGVCkgfAorCQkgKGRldmZu IDw8IFBDSUVfRUNBTV9GVU5fU0hJRlQpOwogCiAJcmV0dXJuIHBvcnQtPnJlZ19iYXNlICsgcmVs YnVzICsgd2hlcmU7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9lY2FtLmMgYi9kcml2ZXJz L3BjaS9lY2FtLmMKaW5kZXggOGYwNjVhNDJmYzFhLi5mZmQwMTAyOTAwODQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvcGNpL2VjYW0uYworKysgYi9kcml2ZXJzL3BjaS9lY2FtLmMKQEAgLTE0OSw3ICsx NDksNyBAQCBFWFBPUlRfU1lNQk9MX0dQTChwY2lfZWNhbV9tYXBfYnVzKTsKIAogLyogRUNBTSBv cHMgKi8KIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgcGNpX2dlbmVyaWNfZWNhbV9vcHMgPSB7 Ci0JLmJ1c19zaGlmdAk9IDIwLAorCS5idXNfc2hpZnQJPSBQQ0lFX0VDQU1fQlVTX1NISUZULAog CS5wY2lfb3BzCT0gewogCQkubWFwX2J1cwk9IHBjaV9lY2FtX21hcF9idXMsCiAJCS5yZWFkCQk9 IHBjaV9nZW5lcmljX2NvbmZpZ19yZWFkLApAQCAtMTYxLDcgKzE2MSw3IEBAIEVYUE9SVF9TWU1C T0xfR1BMKHBjaV9nZW5lcmljX2VjYW1fb3BzKTsKICNpZiBkZWZpbmVkKENPTkZJR19BQ1BJKSAm JiBkZWZpbmVkKENPTkZJR19QQ0lfUVVJUktTKQogLyogRUNBTSBvcHMgZm9yIDMyLWJpdCBhY2Nl c3Mgb25seSAobm9uLWNvbXBsaWFudCkgKi8KIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgcGNp XzMyYl9vcHMgPSB7Ci0JLmJ1c19zaGlmdAk9IDIwLAorCS5idXNfc2hpZnQJPSBQQ0lFX0VDQU1f QlVTX1NISUZULAogCS5wY2lfb3BzCT0gewogCQkubWFwX2J1cwk9IHBjaV9lY2FtX21hcF9idXMs CiAJCS5yZWFkCQk9IHBjaV9nZW5lcmljX2NvbmZpZ19yZWFkMzIsCmRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L3BjaS1lY2FtLmggYi9pbmNsdWRlL2xpbnV4L3BjaS1lY2FtLmgKaW5kZXggMWFm NWNiMDJlZjdmLi41OGE1ZDVlMmU4MzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGNpLWVj YW0uaAorKysgYi9pbmNsdWRlL2xpbnV4L3BjaS1lY2FtLmgKQEAgLTksNiArOSwxNCBAQAogI2lu Y2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5o PgogCisvKgorICogTWVtb3J5IGFkZHJlc3Mgc2hpZnQgdmFsdWVzIGZvciB0aGUgYnl0ZS1sZXZl bCBhZGRyZXNzIHRoYXQKKyAqIGNhbiBiZSB1c2VkIHdoZW4gYWNjZXNzaW5nIHRoZSBQQ0kgRXhw cmVzcyBDb25maWd1cmF0aW9uIFNwYWNlLgorICovCisjZGVmaW5lIFBDSUVfRUNBTV9GVU5fU0hJ RlQJMTIJLyogRnVuY3Rpb24gTnVtYmVyICovCisjZGVmaW5lIFBDSUVfRUNBTV9ERVZfU0hJRlQJ MTUJLyogRGV2aWNlIE51bWJlciAqLworI2RlZmluZSBQQ0lFX0VDQU1fQlVTX1NISUZUCTIwCS8q IEJ1cyBOdW1iZXIgKi8KKwogLyoKICAqIHN0cnVjdCB0byBob2xkIHBjaSBvcHMgYW5kIGJ1cyBz aGlmdCBvZiB0aGUgY29uZmlnIHdpbmRvdwogICogZm9yIGEgUENJIGNvbnRyb2xsZXIuCi0tIAoy LjI4LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpM aW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJv Y2tjaGlwCg== 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=-13.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable 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 DE6B2C433E6 for ; Thu, 27 Aug 2020 22:51:27 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 9CE3620848 for ; Thu, 27 Aug 2020 22:51:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="pkzgGhIu" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9CE3620848 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=linux.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+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=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=MJnPkCJuRKL0PA7vWIGNaQbIwSa4M7HQLq/1Kltz1q0=; b=pkzgGhIuG3zJ+4Xjf8keI3EJSp IKPZEKIDNjLOAqcRmLF+ZSSvpDIvDPKAyHTCIIcyNrwOrxVAnX/YlZhLmucL13N0SFxTfSt2BsTKa bfj4mIoMEzzR3XG+qeaXASiEPtivmDyhWY51ytRKQ67+fNGmdWr0gvxbpXnv4HKZjmMALwOb4GqNH 3JrjAOqAbxdd1mHlP9DZ/72jrUC5QFWN3bIydZTpQV13GFsnxnRJ1QfZtdfCty27tu/wp4ZoCir9N +iEHWILMAvYvrUuMR5nplMyYx4hcxd5fyspkQBHNWaIXE3GyqlKLTG2XT6CdolBevw8rfWi6Sb/3E qeL5Pnjg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kBQiI-0002Vd-1F; Thu, 27 Aug 2020 22:49:46 +0000 Received: from mail-lj1-f194.google.com ([209.85.208.194]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kBQiE-0002SM-R1; Thu, 27 Aug 2020 22:49:43 +0000 Received: by mail-lj1-f194.google.com with SMTP id t23so8290353ljc.3; Thu, 27 Aug 2020 15:49:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=L8guBDHGjG+NXSlHB3kHDy5xgM5YtuXUahDS/pmCCuk=; b=DqXJ7yYlWPwBqnKSSTi1sPWtUItF1TTJjtU0Y/OcwSaH8u1+i2KEsa20+8zJzZkpzb 8EdKXi8JBvZvnSNuHhHFLOrNOr0Dtp8qNt1aMgLY3McXTb9CBkLp0QEweggac07NFGJ8 K2p/dpRXgJ5mAcRJuYX0FGOSYT7CezPcl5MwEuiewNlxo2hckrlP5NV44gqKbPg4FUx/ Q+zkvu0y4JiSs3txz76gCUa5KGtDoOwYwybu9GPBoeB03wgnqUYoy4bqowiGRi9M1SpZ 1uW99ztXF9PgZoFWDQMAxS/PpO95DXBdtUGAZeW6wUoHZ9FGvAs/76YjFq+IDSk6JuVU +/9A== X-Gm-Message-State: AOAM533ArXCktSAC7Ha+lcpG4O0RVevikzxSfAzKtSQ5qxnMV8XfUKe7 cLxtxJjdEmgvagM2Yai01t4= X-Google-Smtp-Source: ABdhPJxOC3xKvhgVIuof/riZ/pKkqoZd0UZtg0P/WSQCdJEpWYwWE/3gGCENoUL7Q2Y7MvAke3dfJA== X-Received: by 2002:a2e:330e:: with SMTP id d14mr10506470ljc.407.1598568580262; Thu, 27 Aug 2020 15:49:40 -0700 (PDT) Received: from workstation.lan ([95.155.85.46]) by smtp.gmail.com with ESMTPSA id i20sm756489ljb.90.2020.08.27.15.49.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Aug 2020 15:49:39 -0700 (PDT) From: =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= To: Bjorn Helgaas Subject: [PATCH] PCI: Unify ECAM constants in native PCI Express drivers Date: Thu, 27 Aug 2020 22:49:38 +0000 Message-Id: <20200827224938.977757-1-kw@linux.com> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200827_184942_915175_F259A93B X-CRM114-Status: GOOD ( 21.70 ) 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: , Cc: Lorenzo Pieralisi , Heiko Stuebner , linux-pci@vger.kernel.org, Shawn Lin , Michal Simek , linux-rockchip@lists.infradead.org, Zhou Wang , Robert Richter , Jonathan Chocron , Will Deacon , linux-arm-kernel@lists.infradead.org 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 VW5pZnkgRUNBTS1yZWxhdGVkIGNvbnN0YW50cyBpbnRvIGEgc2luZ2xlIHNldCBvZiBzdGFuZGFy ZCBjb25zdGFudHMKZGVmaW5pbmcgbWVtb3J5IGFkZHJlc3Mgc2hpZnQgdmFsdWVzIGZvciB0aGUg Ynl0ZS1sZXZlbCBhZGRyZXNzIHRoYXQgY2FuCmJlIHVzZWQgd2hlbiBhY2Nlc3NpbmcgdGhlIFBD SSBFeHByZXNzIENvbmZpZ3VyYXRpb24gU3BhY2UsIGFuZCB0aGVuCm1vdmUgbmF0aXZlIFBDSSBF eHByZXNzIGNvbnRyb2xsZXIgZHJpdmVycyB0byB1c2UgbmV3bHkgaW50cm9kdWNlZApkZWZpbml0 aW9ucyByZXRpcmluZyBhbnkgZHJpdmVyLXNwZWNpZmljIG9uZXMuCgpUaGUgRUNBTSAoIkVuaGFu Y2VkIENvbmZpZ3VyYXRpb24gQWNjZXNzIE1lY2hhbmlzbSIpIGlzIGRlZmluZWQgYnkgdGhlClBD SSBFeHByZXNzIHNwZWNpZmljYXRpb24gKHNlZSBQQ0kgQmFzZSBTcGVjaWZpY2F0aW9uLCBSZXZp c2lvbiA1LjAsClZlcnNpb24gMS4wLCBTZWN0aW9uIDcuMi4yLCBwLiA2NzYpLCB0aHVzIG1vc3Qg aGFyZHdhcmUgc2hvdWxkIGltcGxlbWVudAppdCB0aGUgc2FtZSB3YXkuICBNb3N0IG9mIHRoZSBu YXRpdmUgUENJIEV4cHJlc3MgY29udHJvbGxlciBkcml2ZXJzCmRlZmluZSB0aGVpciBFQ0FNLXJl bGF0ZWQgY29uc3RhbnRzLCBtYW55IG9mIHRoZXNlIGNvdWxkIGJlIHNoYXJlZCwgb3IKdXNlIG9w ZW4tY29kZWQgdmFsdWVzIHdoZW4gc2V0dGluZyB0aGUgLmJ1c19zaGlmdCBmaWVsZCBvZiB0aGUg c3RydWN0CnBjaV9lY2FtX29wcy4KCkFsbCBvZiB0aGUgbmV3bHkgYWRkZWQgY29uc3RhbnRzIHNo b3VsZCByZW1vdmUgYW1iaWd1aXR5IGFuZCByZWR1Y2UgdGhlCm51bWJlciBvZiBvcGVuLWNvZGVk IHZhbHVlcywgYW5kIGFsc28gY29ycmVsYXRlIG1vcmUgc3Ryb25nbHkgd2l0aCB0aGUKZGVzY3Jp cHRpb25zIGluIHRoZSBhZm9yZW1lbnRpb25lZCBzcGVjaWZpY2F0aW9uIChzZWUgVGFibGUgNy0x CiJFbmhhbmNlZCBDb25maWd1cmF0aW9uIEFkZHJlc3MgTWFwcGluZyIsIHAuIDY3NykuCgpUaGVy ZSBpcyBubyBjaGFuZ2UgdG8gZnVuY3Rpb25hbGl0eS4KClN1Z2dlc3RlZC1ieTogQmpvcm4gSGVs Z2FhcyA8YmhlbGdhYXNAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogS3J6eXN6dG9mIFdpbGN6 ecWEc2tpIDxrd0BsaW51eC5jb20+Ci0tLQogZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp ZS1hbC5jICAgICAgfCA4ICsrKystLS0tCiBkcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ll LWhpc2kuYyAgICB8IDQgKystLQogZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaG9zdC1nZW5l cmljLmMgfCAyICstCiBkcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS10aHVuZGVyLWVjYW0uYyB8 IDIgKy0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC5oICAgIHwgNyArKysr LS0tCiBkcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtdGFuZ28uYyAgICAgICB8IDIgKy0KIGRy aXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbngtbndsLmMgIHwgNyArKystLS0tCiBkcml2 ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUteGlsaW54LmMgICAgICB8IDkgKysrLS0tLS0tCiBkcml2 ZXJzL3BjaS9lY2FtLmMgICAgICAgICAgICAgICAgICAgICAgICB8IDQgKystLQogaW5jbHVkZS9s aW51eC9wY2ktZWNhbS5oICAgICAgICAgICAgICAgICAgfCA4ICsrKysrKysrCiAxMCBmaWxlcyBj aGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWFsLmMgYi9kcml2ZXJzL3BjaS9jb250cm9s bGVyL2R3Yy9wY2llLWFsLmMKaW5kZXggZDU3ZDRlZTE1ODQ4Li41NzE2NWNiMGVmMDIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYWwuYworKysgYi9kcml2ZXJz L3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWFsLmMKQEAgLTc2LDcgKzc2LDcgQEAgc3RhdGljIGlu dCBhbF9wY2llX2luaXQoc3RydWN0IHBjaV9jb25maWdfd2luZG93ICpjZmcpCiB9CiAKIGNvbnN0 IHN0cnVjdCBwY2lfZWNhbV9vcHMgYWxfcGNpZV9vcHMgPSB7Ci0JLmJ1c19zaGlmdCAgICA9IDIw LAorCS5idXNfc2hpZnQgICAgPSBQQ0lFX0VDQU1fQlVTX1NISUZULAogCS5pbml0ICAgICAgICAg PSAgYWxfcGNpZV9pbml0LAogCS5wY2lfb3BzICAgICAgPSB7CiAJCS5tYXBfYnVzICAgID0gYWxf cGNpZV9tYXBfYnVzLApAQCAtMTM4LDcgKzEzOCw3IEBAIHN0cnVjdCBhbF9wY2llIHsKIAlzdHJ1 Y3QgYWxfcGNpZV90YXJnZXRfYnVzX2NmZyB0YXJnZXRfYnVzX2NmZzsKIH07CiAKLSNkZWZpbmUg UENJRV9FQ0FNX0RFVkZOKHgpCQkoKCh4KSAmIDB4ZmYpIDw8IDEyKQorI2RlZmluZSBQQ0lFX0VD QU1fREVWRk4oeCkJCSgoKHgpICYgMHhmZikgPDwgUENJRV9FQ0FNX0ZVTl9TSElGVCkKIAogI2Rl ZmluZSB0b19hbF9wY2llKHgpCQlkZXZfZ2V0X2RydmRhdGEoKHgpLT5kZXYpCiAKQEAgLTIyOCw3 ICsyMjgsNyBAQCBzdGF0aWMgdm9pZCBfX2lvbWVtICphbF9wY2llX2NvbmZfYWRkcl9tYXAoc3Ry dWN0IGFsX3BjaWUgKnBjaWUsCiAJdm9pZCBfX2lvbWVtICpwY2lfYmFzZV9hZGRyOwogCiAJcGNp X2Jhc2VfYWRkciA9ICh2b2lkIF9faW9tZW0gKikoKHVpbnRwdHJfdClwcC0+dmFfY2ZnMF9iYXNl ICsKLQkJCQkJIChidXNucl9lY2FtIDw8IDIwKSArCisJCQkJCSAoYnVzbnJfZWNhbSA8PCBQQ0lF X0VDQU1fQlVTX1NISUZUKSArCiAJCQkJCSBQQ0lFX0VDQU1fREVWRk4oZGV2Zm4pKTsKIAogCWlm IChidXNucl9yZWcgIT0gdGFyZ2V0X2J1c19jZmctPnJlZ192YWwpIHsKQEAgLTMwMCw3ICszMDAs NyBAQCBzdGF0aWMgdm9pZCBhbF9wY2llX2NvbmZpZ19wcmVwYXJlKHN0cnVjdCBhbF9wY2llICpw Y2llKQogCiAJdGFyZ2V0X2J1c19jZmcgPSAmcGNpZS0+dGFyZ2V0X2J1c19jZmc7CiAKLQllY2Ft X2J1c19tYXNrID0gKHBjaWUtPmVjYW1fc2l6ZSA+PiAyMCkgLSAxOworCWVjYW1fYnVzX21hc2sg PSAocGNpZS0+ZWNhbV9zaXplID4+IFBDSUVfRUNBTV9CVVNfU0hJRlQpIC0gMTsKIAlpZiAoZWNh bV9idXNfbWFzayA+IDI1NSkgewogCQlkZXZfd2FybihwY2llLT5kZXYsICJFQ0FNIHdpbmRvdyBz aXplIGlzIGxhcmdlciB0aGFuIDI1Nk1CLiBDdXR0aW5nIG9mZiBhdCAyNTZcbiIpOwogCQllY2Ft X2J1c19tYXNrID0gMjU1OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2Mv cGNpZS1oaXNpLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWhpc2kuYwppbmRl eCA1Y2E4Njc5NmQ0M2EuLmI3YWZiZjFkNGJkOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29u dHJvbGxlci9kd2MvcGNpZS1oaXNpLmMKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2Mv cGNpZS1oaXNpLmMKQEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgaW50IGhpc2lfcGNpZV9pbml0 KHN0cnVjdCBwY2lfY29uZmlnX3dpbmRvdyAqY2ZnKQogfQogCiBjb25zdCBzdHJ1Y3QgcGNpX2Vj YW1fb3BzIGhpc2lfcGNpZV9vcHMgPSB7Ci0JLmJ1c19zaGlmdCAgICA9IDIwLAorCS5idXNfc2hp ZnQgICAgPSBQQ0lFX0VDQU1fQlVTX1NISUZULAogCS5pbml0ICAgICAgICAgPSAgaGlzaV9wY2ll X2luaXQsCiAJLnBjaV9vcHMgICAgICA9IHsKIAkJLm1hcF9idXMgICAgPSBoaXNpX3BjaWVfbWFw X2J1cywKQEAgLTEzNSw3ICsxMzUsNyBAQCBzdGF0aWMgaW50IGhpc2lfcGNpZV9wbGF0Zm9ybV9p bml0KHN0cnVjdCBwY2lfY29uZmlnX3dpbmRvdyAqY2ZnKQogfQogCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IHBjaV9lY2FtX29wcyBoaXNpX3BjaWVfcGxhdGZvcm1fb3BzID0gewotCS5idXNfc2hpZnQg ICAgPSAyMCwKKwkuYnVzX3NoaWZ0ICAgID0gUENJRV9FQ0FNX0JVU19TSElGVCwKIAkuaW5pdCAg ICAgICAgID0gIGhpc2lfcGNpZV9wbGF0Zm9ybV9pbml0LAogCS5wY2lfb3BzICAgICAgPSB7CiAJ CS5tYXBfYnVzICAgID0gaGlzaV9wY2llX21hcF9idXMsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL3BjaS1ob3N0LWdlbmVyaWMuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIv cGNpLWhvc3QtZ2VuZXJpYy5jCmluZGV4IGI1MTk3N2FiZmRmMS4uYzFjNjliMTE2MTVmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1ob3N0LWdlbmVyaWMuYworKysgYi9k cml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1ob3N0LWdlbmVyaWMuYwpAQCAtNDksNyArNDksNyBA QCBzdGF0aWMgdm9pZCBfX2lvbWVtICpwY2lfZHdfZWNhbV9tYXBfYnVzKHN0cnVjdCBwY2lfYnVz ICpidXMsCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2VjYW1fb3BzIHBjaV9kd19lY2Ft X2J1c19vcHMgPSB7Ci0JLmJ1c19zaGlmdAk9IDIwLAorCS5idXNfc2hpZnQJPSBQQ0lFX0VDQU1f QlVTX1NISUZULAogCS5wY2lfb3BzCT0gewogCQkubWFwX2J1cwk9IHBjaV9kd19lY2FtX21hcF9i dXMsCiAJCS5yZWFkCQk9IHBjaV9nZW5lcmljX2NvbmZpZ19yZWFkLApkaWZmIC0tZ2l0IGEvZHJp dmVycy9wY2kvY29udHJvbGxlci9wY2ktdGh1bmRlci1lY2FtLmMgYi9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL3BjaS10aHVuZGVyLWVjYW0uYwppbmRleCA3ZTg4MzVmZWU1ZjcuLjIyZWQ3ZTk5NWIz OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktdGh1bmRlci1lY2FtLmMK KysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktdGh1bmRlci1lY2FtLmMKQEAgLTM0Niw3 ICszNDYsNyBAQCBzdGF0aWMgaW50IHRodW5kZXJfZWNhbV9jb25maWdfd3JpdGUoc3RydWN0IHBj aV9idXMgKmJ1cywgdW5zaWduZWQgaW50IGRldmZuLAogfQogCiBjb25zdCBzdHJ1Y3QgcGNpX2Vj YW1fb3BzIHBjaV90aHVuZGVyX2VjYW1fb3BzID0gewotCS5idXNfc2hpZnQJPSAyMCwKKwkuYnVz X3NoaWZ0CT0gUENJRV9FQ0FNX0JVU19TSElGVCwKIAkucGNpX29wcwk9IHsKIAkJLm1hcF9idXMg ICAgICAgID0gcGNpX2VjYW1fbWFwX2J1cywKIAkJLnJlYWQgICAgICAgICAgID0gdGh1bmRlcl9l Y2FtX2NvbmZpZ19yZWFkLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ll LXJvY2tjaGlwLmggYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAuaAppbmRl eCBjN2QwMTc4ZmM4YzIuLjUwZjQyNWUwM2U4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29u dHJvbGxlci9wY2llLXJvY2tjaGlwLmgKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ll LXJvY2tjaGlwLmgKQEAgLTEzLDYgKzEzLDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5o PgogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS1lY2FtLmg+CiAK IC8qCiAgKiBUaGUgdXBwZXIgMTYgYml0cyBvZiBQQ0lFX0NMSUVOVF9DT05GSUcgYXJlIGEgd3Jp dGUgbWFzayBmb3IgdGhlIGxvd2VyIDE2CkBAIC0xNzgsOSArMTc5LDkgQEAKICNkZWZpbmUgTUlO X0FYSV9BRERSX0JJVFNfUEFTU0VECQk4CiAjZGVmaW5lIFBDSUVfUkNfU0VORF9QTUVfT0ZGCQkJ MHgxMTk2MAogI2RlZmluZSBST0NLQ0hJUF9WRU5ET1JfSUQJCQkweDFkODcKLSNkZWZpbmUgUENJ RV9FQ0FNX0JVUyh4KQkJCSgoKHgpICYgMHhmZikgPDwgMjApCi0jZGVmaW5lIFBDSUVfRUNBTV9E RVYoeCkJCQkoKCh4KSAmIDB4MWYpIDw8IDE1KQotI2RlZmluZSBQQ0lFX0VDQU1fRlVOQyh4KQkJ CSgoKHgpICYgMHg3KSA8PCAxMikKKyNkZWZpbmUgUENJRV9FQ0FNX0JVUyh4KQkJCSgoKHgpICYg MHhmZikgPDwgUENJRV9FQ0FNX0JVU19TSElGVCkKKyNkZWZpbmUgUENJRV9FQ0FNX0RFVih4KQkJ CSgoKHgpICYgMHgxZikgPDwgUENJRV9FQ0FNX0RFVl9TSElGVCkKKyNkZWZpbmUgUENJRV9FQ0FN X0ZVTkMoeCkJCQkoKCh4KSAmIDB4NykgPDwgUENJRV9FQ0FNX0ZVTl9TSElGVCkKICNkZWZpbmUg UENJRV9FQ0FNX1JFRyh4KQkJCSgoKHgpICYgMHhmZmYpIDw8IDApCiAjZGVmaW5lIFBDSUVfRUNB TV9BRERSKGJ1cywgZGV2LCBmdW5jLCByZWcpIFwKIAkgIChQQ0lFX0VDQU1fQlVTKGJ1cykgfCBQ Q0lFX0VDQU1fREVWKGRldikgfCBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVy L3BjaWUtdGFuZ28uYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS10YW5nby5jCmluZGV4 IGQwOTNhOGNlNGJiMS4uOGYwZDY5NWFmYmRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL3BjaWUtdGFuZ28uYworKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtdGFu Z28uYwpAQCAtMjA4LDcgKzIwOCw3IEBAIHN0YXRpYyBpbnQgc21wODc1OV9jb25maWdfd3JpdGUo c3RydWN0IHBjaV9idXMgKmJ1cywgdW5zaWduZWQgaW50IGRldmZuLAogfQogCiBzdGF0aWMgY29u c3Qgc3RydWN0IHBjaV9lY2FtX29wcyBzbXA4NzU5X2VjYW1fb3BzID0gewotCS5idXNfc2hpZnQJ PSAyMCwKKwkuYnVzX3NoaWZ0CT0gUENJRV9FQ0FNX0JVU19TSElGVCwKIAkucGNpX29wcwk9IHsK IAkJLm1hcF9idXMJPSBwY2lfZWNhbV9tYXBfYnVzLAogCQkucmVhZAkJPSBzbXA4NzU5X2NvbmZp Z19yZWFkLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhpbGlueC1u d2wuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbngtbndsLmMKaW5kZXggZjNj ZjdkNjE5MjRmLi44ZjYyOGI2NmEwZDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvcGNpZS14aWxpbngtbndsLmMKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhp bGlueC1ud2wuYwpAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3Jt Lmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+Cisj aW5jbHVkZSA8bGludXgvcGNpLWVjYW0uaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZp Y2UuaD4KICNpbmNsdWRlIDxsaW51eC9pcnFjaGlwL2NoYWluZWRfaXJxLmg+CiAKQEAgLTEyNCw4 ICsxMjUsNiBAQAogI2RlZmluZSBFX0VDQU1fQ1JfRU5BQkxFCQlCSVQoMCkKICNkZWZpbmUgRV9F Q0FNX1NJWkVfTE9DCQkJR0VOTUFTSygyMCwgMTYpCiAjZGVmaW5lIEVfRUNBTV9TSVpFX1NISUZU CQkxNgotI2RlZmluZSBFQ0FNX0JVU19MT0NfU0hJRlQJCTIwCi0jZGVmaW5lIEVDQU1fREVWX0xP Q19TSElGVAkJMTIKICNkZWZpbmUgTldMX0VDQU1fVkFMVUVfREVGQVVMVAkJMTIKIAogI2RlZmlu ZSBDRkdfRE1BX1JFR19CQVIJCQlHRU5NQVNLKDIsIDApCkBAIC0yNDUsOCArMjQ0LDggQEAgc3Rh dGljIHZvaWQgX19pb21lbSAqbndsX3BjaWVfbWFwX2J1cyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1 bnNpZ25lZCBpbnQgZGV2Zm4sCiAJaWYgKCFud2xfcGNpZV92YWxpZF9kZXZpY2UoYnVzLCBkZXZm bikpCiAJCXJldHVybiBOVUxMOwogCi0JcmVsYnVzID0gKGJ1cy0+bnVtYmVyIDw8IEVDQU1fQlVT X0xPQ19TSElGVCkgfAotCQkJKGRldmZuIDw8IEVDQU1fREVWX0xPQ19TSElGVCk7CisJcmVsYnVz ID0gKGJ1cy0+bnVtYmVyIDw8IFBDSUVfRUNBTV9CVVNfU0hJRlQpIHwKKwkJCShkZXZmbiA8PCBQ Q0lFX0VDQU1fRlVOX1NISUZUKTsKIAogCXJldHVybiBwY2llLT5lY2FtX2Jhc2UgKyByZWxidXMg KyB3aGVyZTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxp bnguYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbnguYwppbmRleCA4NTIzYmU2 MWJiYTUuLjdlOWZkYWNjZDEzMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9w Y2llLXhpbGlueC5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbnguYwpA QCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+CiAjaW5jbHVk ZSA8bGludXgvb2ZfaXJxLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGlu dXgvcGNpLWVjYW0uaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KIAogI2lu Y2x1ZGUgIi4uL3BjaS5oIgpAQCAtODYsMTAgKzg3LDYgQEAKIC8qIFBoeSBTdGF0dXMvQ29udHJv bCBSZWdpc3RlciBkZWZpbml0aW9ucyAqLwogI2RlZmluZSBYSUxJTlhfUENJRV9SRUdfUFNDUl9M TktVUAlCSVQoMTEpCiAKLS8qIEVDQU0gZGVmaW5pdGlvbnMgKi8KLSNkZWZpbmUgRUNBTV9CVVNf TlVNX1NISUZUCQkyMAotI2RlZmluZSBFQ0FNX0RFVl9OVU1fU0hJRlQJCTEyCi0KIC8qIE51bWJl ciBvZiBNU0kgSVJRcyAqLwogI2RlZmluZSBYSUxJTlhfTlVNX01TSV9JUlFTCQkxMjgKIApAQCAt MTg4LDggKzE4NSw4IEBAIHN0YXRpYyB2b2lkIF9faW9tZW0gKnhpbGlueF9wY2llX21hcF9idXMo c3RydWN0IHBjaV9idXMgKmJ1cywKIAlpZiAoIXhpbGlueF9wY2llX3ZhbGlkX2RldmljZShidXMs IGRldmZuKSkKIAkJcmV0dXJuIE5VTEw7CiAKLQlyZWxidXMgPSAoYnVzLT5udW1iZXIgPDwgRUNB TV9CVVNfTlVNX1NISUZUKSB8Ci0JCSAoZGV2Zm4gPDwgRUNBTV9ERVZfTlVNX1NISUZUKTsKKwly ZWxidXMgPSAoYnVzLT5udW1iZXIgPDwgUENJRV9FQ0FNX0JVU19TSElGVCkgfAorCQkgKGRldmZu IDw8IFBDSUVfRUNBTV9GVU5fU0hJRlQpOwogCiAJcmV0dXJuIHBvcnQtPnJlZ19iYXNlICsgcmVs YnVzICsgd2hlcmU7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9lY2FtLmMgYi9kcml2ZXJz L3BjaS9lY2FtLmMKaW5kZXggOGYwNjVhNDJmYzFhLi5mZmQwMTAyOTAwODQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvcGNpL2VjYW0uYworKysgYi9kcml2ZXJzL3BjaS9lY2FtLmMKQEAgLTE0OSw3ICsx NDksNyBAQCBFWFBPUlRfU1lNQk9MX0dQTChwY2lfZWNhbV9tYXBfYnVzKTsKIAogLyogRUNBTSBv cHMgKi8KIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgcGNpX2dlbmVyaWNfZWNhbV9vcHMgPSB7 Ci0JLmJ1c19zaGlmdAk9IDIwLAorCS5idXNfc2hpZnQJPSBQQ0lFX0VDQU1fQlVTX1NISUZULAog CS5wY2lfb3BzCT0gewogCQkubWFwX2J1cwk9IHBjaV9lY2FtX21hcF9idXMsCiAJCS5yZWFkCQk9 IHBjaV9nZW5lcmljX2NvbmZpZ19yZWFkLApAQCAtMTYxLDcgKzE2MSw3IEBAIEVYUE9SVF9TWU1C T0xfR1BMKHBjaV9nZW5lcmljX2VjYW1fb3BzKTsKICNpZiBkZWZpbmVkKENPTkZJR19BQ1BJKSAm JiBkZWZpbmVkKENPTkZJR19QQ0lfUVVJUktTKQogLyogRUNBTSBvcHMgZm9yIDMyLWJpdCBhY2Nl c3Mgb25seSAobm9uLWNvbXBsaWFudCkgKi8KIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgcGNp XzMyYl9vcHMgPSB7Ci0JLmJ1c19zaGlmdAk9IDIwLAorCS5idXNfc2hpZnQJPSBQQ0lFX0VDQU1f QlVTX1NISUZULAogCS5wY2lfb3BzCT0gewogCQkubWFwX2J1cwk9IHBjaV9lY2FtX21hcF9idXMs CiAJCS5yZWFkCQk9IHBjaV9nZW5lcmljX2NvbmZpZ19yZWFkMzIsCmRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L3BjaS1lY2FtLmggYi9pbmNsdWRlL2xpbnV4L3BjaS1lY2FtLmgKaW5kZXggMWFm NWNiMDJlZjdmLi41OGE1ZDVlMmU4MzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGNpLWVj YW0uaAorKysgYi9pbmNsdWRlL2xpbnV4L3BjaS1lY2FtLmgKQEAgLTksNiArOSwxNCBAQAogI2lu Y2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5o PgogCisvKgorICogTWVtb3J5IGFkZHJlc3Mgc2hpZnQgdmFsdWVzIGZvciB0aGUgYnl0ZS1sZXZl bCBhZGRyZXNzIHRoYXQKKyAqIGNhbiBiZSB1c2VkIHdoZW4gYWNjZXNzaW5nIHRoZSBQQ0kgRXhw cmVzcyBDb25maWd1cmF0aW9uIFNwYWNlLgorICovCisjZGVmaW5lIFBDSUVfRUNBTV9GVU5fU0hJ RlQJMTIJLyogRnVuY3Rpb24gTnVtYmVyICovCisjZGVmaW5lIFBDSUVfRUNBTV9ERVZfU0hJRlQJ MTUJLyogRGV2aWNlIE51bWJlciAqLworI2RlZmluZSBQQ0lFX0VDQU1fQlVTX1NISUZUCTIwCS8q IEJ1cyBOdW1iZXIgKi8KKwogLyoKICAqIHN0cnVjdCB0byBob2xkIHBjaSBvcHMgYW5kIGJ1cyBz aGlmdCBvZiB0aGUgY29uZmlnIHdpbmRvdwogICogZm9yIGEgUENJIGNvbnRyb2xsZXIuCi0tIAoy LjI4LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwps aW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1hcm0ta2VybmVsCg==