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 9258FC4727E for ; Fri, 25 Sep 2020 21:15:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3B56221D7F for ; Fri, 25 Sep 2020 21:15:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726781AbgIYVPU (ORCPT ); Fri, 25 Sep 2020 17:15:20 -0400 Received: from mail-lf1-f65.google.com ([209.85.167.65]:36572 "EHLO mail-lf1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726743AbgIYVPU (ORCPT ); Fri, 25 Sep 2020 17:15:20 -0400 Received: by mail-lf1-f65.google.com with SMTP id x69so4339486lff.3 for ; Fri, 25 Sep 2020 14:15:16 -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=xajnmYYE2JFCYF9eRVb6X0yNwDSWyIil7f0EIJpqbMM=; b=hqalyobz6Y45JF80kF3yhTjboMBtQkiJfBqzn9DJzXTw+APP7rvtRfXoonZXJy8Exq X/JL5818qYg9PBjbMp2RgnMA52O4NbLcX0iVdaiis181Urk/QrFwDOqNxzXcOry6iR5M wekod8hO+CQo2GiAP/IarLoQF28zkxKOsytzfQb0knbYimAdZ8ndTwjL9TGK7ip1NNal YilyUI60ZTsj53+hLeB2BlnSJAQTfnWFB5+nySQ1ZYoHCbzgOEcKgTubWcNEPYQp7M82 M4RPKmUfkbsBsZM/0dL42l+Z+u3KKwznp55yy72cJONqf69lYJr+sGclklyEwsvb22a1 Hkhw== X-Gm-Message-State: AOAM531vv5Sn4qhRi4IkP+PC3wIfO4CBKsQujAWgwPvjSdp1hFx8qR7s u1ONrpRD4Sb7LrM3kOZaibc= X-Google-Smtp-Source: ABdhPJyXGoOg6v4p1gSsVdz4nJuvFKr5sER/uS374i1xzstKHcnV5KfXk+5THcP5U/Dcd8ZnRNtJaw== X-Received: by 2002:a19:4186:: with SMTP id o128mr219428lfa.148.1601068515602; Fri, 25 Sep 2020 14:15:15 -0700 (PDT) Received: from workstation.lan ([95.155.85.46]) by smtp.gmail.com with ESMTPSA id d1sm199063lfe.180.2020.09.25.14.15.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Sep 2020 14:15:15 -0700 (PDT) From: =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= To: Bjorn Helgaas Cc: Rob Herring , Jonathan Cameron , Jonathan Chocron , Shawn Lin , Heiko Stuebner , Zhou Wang , Lorenzo Pieralisi , Will Deacon , Robert Richter , Michal Simek , Toan Le , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org Subject: [PATCH v2] PCI: Unify ECAM constants in native PCI Express drivers Date: Fri, 25 Sep 2020 21:15:13 +0000 Message-Id: <20200925211513.1701254-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 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 --- Changes in v2: Use PCIE_ECAM_ADDR macro when computing ECAM address offset, but drop PCI_SLOT and PCI_FUNC macros from the PCIE_ECAM_ADDR macro in favour of using a single value for the device/function. drivers/pci/controller/dwc/pcie-al.c | 8 +++----- drivers/pci/controller/dwc/pcie-hisi.c | 4 ++-- drivers/pci/controller/pci-host-generic.c | 4 ++-- drivers/pci/controller/pci-thunder-ecam.c | 2 +- drivers/pci/controller/pci-thunder-pem.c | 7 +++++-- drivers/pci/controller/pci-xgene.c | 7 +++++-- drivers/pci/controller/pcie-rockchip-host.c | 7 +++---- drivers/pci/controller/pcie-rockchip.h | 8 +------- drivers/pci/controller/pcie-tango.c | 2 +- drivers/pci/controller/pcie-xilinx-nwl.c | 8 +++----- drivers/pci/controller/pcie-xilinx.c | 10 +++------- drivers/pci/ecam.c | 4 ++-- include/linux/pci-ecam.h | 22 +++++++++++++++++++++ 13 files changed, 53 insertions(+), 40 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-al.c b/drivers/pci/controller/dwc/pcie-al.c index d57d4ee15848..7c2aa049113c 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,8 +138,6 @@ struct al_pcie { struct al_pcie_target_bus_cfg target_bus_cfg; }; -#define PCIE_ECAM_DEVFN(x) (((x) & 0xff) << 12) - #define to_al_pcie(x) dev_get_drvdata((x)->dev) static inline u32 al_pcie_controller_readl(struct al_pcie *pcie, u32 offset) @@ -228,7 +226,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) + + PCIE_ECAM_BUS(busnr_ecam) + PCIE_ECAM_DEVFN(devfn)); if (busnr_reg != target_bus_cfg->reg_val) { @@ -300,7 +298,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..593436aee7a0 100644 --- a/drivers/pci/controller/pci-host-generic.c +++ b/drivers/pci/controller/pci-host-generic.c @@ -15,7 +15,7 @@ #include static const struct pci_ecam_ops gen_pci_cfg_cam_bus_ops = { - .bus_shift = 16, + .bus_shift = PCIE_CAM_BUS_SHIFT, .pci_ops = { .map_bus = pci_ecam_map_bus, .read = pci_generic_config_read, @@ -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/pci-thunder-pem.c b/drivers/pci/controller/pci-thunder-pem.c index 3f847969143e..50a7a2c52a7f 100644 --- a/drivers/pci/controller/pci-thunder-pem.c +++ b/drivers/pci/controller/pci-thunder-pem.c @@ -19,6 +19,9 @@ #define PEM_CFG_WR 0x28 #define PEM_CFG_RD 0x30 +/* Enhanced Configuration Access Mechanism (ECAM) */ +#define THUNDER_PCIE_ECAM_BUS_SHIFT 24 + struct thunder_pem_pci { u32 ea_entry[3]; void __iomem *pem_reg_base; @@ -404,7 +407,7 @@ static int thunder_pem_acpi_init(struct pci_config_window *cfg) } const struct pci_ecam_ops thunder_pem_ecam_ops = { - .bus_shift = 24, + .bus_shift = THUNDER_PCIE_ECAM_BUS_SHIFT, .init = thunder_pem_acpi_init, .pci_ops = { .map_bus = pci_ecam_map_bus, @@ -441,7 +444,7 @@ static int thunder_pem_platform_init(struct pci_config_window *cfg) } static const struct pci_ecam_ops pci_thunder_pem_ops = { - .bus_shift = 24, + .bus_shift = THUNDER_PCIE_ECAM_BUS_SHIFT, .init = thunder_pem_platform_init, .pci_ops = { .map_bus = pci_ecam_map_bus, diff --git a/drivers/pci/controller/pci-xgene.c b/drivers/pci/controller/pci-xgene.c index 8e0db84f089d..1d1fcb02a5d3 100644 --- a/drivers/pci/controller/pci-xgene.c +++ b/drivers/pci/controller/pci-xgene.c @@ -60,6 +60,9 @@ #define XGENE_PCIE_IP_VER_1 1 #define XGENE_PCIE_IP_VER_2 2 +/* Enhanced Configuration Access Mechanism (ECAM) */ +#define XGENE_PCIE_ECAM_BUS_SHIFT 16 + #if defined(CONFIG_PCI_XGENE) || (defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS)) struct xgene_pcie_port { struct device_node *node; @@ -257,7 +260,7 @@ static int xgene_v1_pcie_ecam_init(struct pci_config_window *cfg) } const struct pci_ecam_ops xgene_v1_pcie_ecam_ops = { - .bus_shift = 16, + .bus_shift = XGENE_PCIE_ECAM_BUS_SHIFT, .init = xgene_v1_pcie_ecam_init, .pci_ops = { .map_bus = xgene_pcie_map_bus, @@ -272,7 +275,7 @@ static int xgene_v2_pcie_ecam_init(struct pci_config_window *cfg) } const struct pci_ecam_ops xgene_v2_pcie_ecam_ops = { - .bus_shift = 16, + .bus_shift = XGENE_PCIE_ECAM_BUS_SHIFT, .init = xgene_v2_pcie_ecam_init, .pci_ops = { .map_bus = xgene_pcie_map_bus, diff --git a/drivers/pci/controller/pcie-rockchip-host.c b/drivers/pci/controller/pcie-rockchip-host.c index 0bb2fb3e8a0b..a6952701b504 100644 --- a/drivers/pci/controller/pcie-rockchip-host.c +++ b/drivers/pci/controller/pcie-rockchip-host.c @@ -162,8 +162,7 @@ static int rockchip_pcie_rd_other_conf(struct rockchip_pcie *rockchip, { u32 busdev; - busdev = PCIE_ECAM_ADDR(bus->number, PCI_SLOT(devfn), - PCI_FUNC(devfn), where); + busdev = PCIE_ECAM_ADDR(bus, devfn, where); if (!IS_ALIGNED(busdev, size)) { *val = 0; @@ -196,8 +195,8 @@ static int rockchip_pcie_wr_other_conf(struct rockchip_pcie *rockchip, { u32 busdev; - busdev = PCIE_ECAM_ADDR(bus->number, PCI_SLOT(devfn), - PCI_FUNC(devfn), where); + busdev = PCIE_ECAM_ADDR(bus, devfn, where); + if (!IS_ALIGNED(busdev, size)) return PCIBIOS_BAD_REGISTER_NUMBER; diff --git a/drivers/pci/controller/pcie-rockchip.h b/drivers/pci/controller/pcie-rockchip.h index c7d0178fc8c2..1650a5087450 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,13 +179,6 @@ #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_REG(x) (((x) & 0xfff) << 0) -#define PCIE_ECAM_ADDR(bus, dev, func, reg) \ - (PCIE_ECAM_BUS(bus) | PCIE_ECAM_DEV(dev) | \ - PCIE_ECAM_FUNC(func) | PCIE_ECAM_REG(reg)) #define PCIE_LINK_IS_L2(x) \ (((x) & PCIE_CLIENT_DEBUG_LTSSM_MASK) == PCIE_CLIENT_DEBUG_LTSSM_L2) #define PCIE_LINK_UP(x) \ 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..714128ef8d18 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,10 +244,9 @@ 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 = PCIE_ECAM_ADDR(bus, devfn, where); - return pcie->ecam_base + relbus + where; + return pcie->ecam_base + relbus; } /* PCIe operations */ diff --git a/drivers/pci/controller/pcie-xilinx.c b/drivers/pci/controller/pcie-xilinx.c index 8523be61bba5..abaee5d68676 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,10 +185,9 @@ 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 = PCIE_ECAM_ADDR(bus, devfn, where); - return port->reg_base + relbus + where; + return port->reg_base + relbus; } /* PCIe operations */ 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..37c5df8bead0 100644 --- a/include/linux/pci-ecam.h +++ b/include/linux/pci-ecam.h @@ -9,6 +9,28 @@ #include #include +/* + * Memory address shift values for the byte-level address that + * can be used when accessing the PCI Express Configuration Space. + */ + +/* Configuration Access Mechanism (CAM) */ +#define PCIE_CAM_BUS_SHIFT 16 /* Bus Number */ + +/* Enhanced Configuration Access Mechanism (ECAM) */ +#define PCIE_ECAM_BUS_SHIFT 20 /* Bus Number */ +#define PCIE_ECAM_DEV_SHIFT 15 /* Device Number */ +#define PCIE_ECAM_FUN_SHIFT 12 /* Function Number */ + +#define PCIE_ECAM_BUS(x) (((x) & 0xff) << PCIE_ECAM_BUS_SHIFT) +#define PCIE_ECAM_DEVFN(x) (((x) & 0xff) << PCIE_ECAM_FUN_SHIFT) +#define PCIE_ECAM_REG(x) ((x) & 0xfff) + +#define PCIE_ECAM_ADDR(bus, devfn, where) \ + (PCIE_ECAM_BUS(bus->number) | \ + PCIE_ECAM_DEVFN(devfn) | \ + PCIE_ECAM_REG(where)) + /* * 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.9 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 4413AC4727E for ; Fri, 25 Sep 2020 21:15:28 +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 C3C2121D42 for ; Fri, 25 Sep 2020 21:15: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="oQeakhFq" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C3C2121D42 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=h4O7jKSNk2WGO17G/TQZ48aJQiIsjpzTOKJKfOz81uY=; b=oQeakhFq4Y9+zpQzFLR2N5xIXj 6YIGW6255xGaCQuMStQbpfohYvs4FMsjJU9iWQ80GMW0Ra7Jn9tqMfCsAEdMlfOxMDicY8R6jyqxg MLusCTSh8x3LrjjBuCpzj2456ZSS5HKBwkKuitJL7PXNpTYlJoPvf2+mcxCzrIefmJvU/qwAp6eoT XddNgcg9zkqS8rkBpdlieT6iKoyLdnd3O43eOWyqqeLVdCW59j69jN+gs1rLz20GiDnIJnwTMVUmf bP+oXqLMOZOp6RElUm/lIV7GcxEKB/CvSBFZdj+lE7r1YTnxAT/6HFOfiN+I0K7nFk/FmaYLIJGgk ous8CX4w==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kLv3p-0002aS-Rj; Fri, 25 Sep 2020 21:15:21 +0000 Received: from mail-lf1-f67.google.com ([209.85.167.67]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kLv3m-0002Zp-Qf; Fri, 25 Sep 2020 21:15:19 +0000 Received: by mail-lf1-f67.google.com with SMTP id y17so4298343lfa.8; Fri, 25 Sep 2020 14:15:16 -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=xajnmYYE2JFCYF9eRVb6X0yNwDSWyIil7f0EIJpqbMM=; b=Kn7JfAdR6Eq741CCK1/6VOboN7HuL3zGPariHiUu12S2cS52l94vx6UH/vvosDXfGn NVsm71Wiab5Hyw4bN5XZZYvsDj0aNL0qjYaaQkCN6Te+DC3WoPnZJBBBYsMY01EgzpTF Rp7DM/KyO8e9opb9U62fFm7nQby7uAOVeYXlrj59jY2nw4UlZBx+3pZhxGGXU5I1lEsk ik84FYuzAng9rOXJkiFEM8N4nmt9Q1SKmYAawUaNraLOcAIHsBjb0wdyZsina20vlt8d 1oMRIYDYolDWSM8fQwXtZyPWguJkzuWRUgsmLnYrHwzS5zAa/xYW4dIpfLDy12sLj9Ft DQtg== X-Gm-Message-State: AOAM532Azpd6bHsPNk0NAp8lxlTVbloal2IVgRr5/9RJ2Hgtb3MkB6aw fV2GjnSvA/fRKxgDt49/cR8= X-Google-Smtp-Source: ABdhPJyXGoOg6v4p1gSsVdz4nJuvFKr5sER/uS374i1xzstKHcnV5KfXk+5THcP5U/Dcd8ZnRNtJaw== X-Received: by 2002:a19:4186:: with SMTP id o128mr219428lfa.148.1601068515602; Fri, 25 Sep 2020 14:15:15 -0700 (PDT) Received: from workstation.lan ([95.155.85.46]) by smtp.gmail.com with ESMTPSA id d1sm199063lfe.180.2020.09.25.14.15.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Sep 2020 14:15:15 -0700 (PDT) From: =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= To: Bjorn Helgaas Subject: [PATCH v2] PCI: Unify ECAM constants in native PCI Express drivers Date: Fri, 25 Sep 2020 21:15:13 +0000 Message-Id: <20200925211513.1701254-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-20200925_171518_880844_BC3B85F6 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: Rob Herring , Lorenzo Pieralisi , Heiko Stuebner , linux-pci@vger.kernel.org, Shawn Lin , Jonathan Cameron , Michal Simek , linux-rockchip@lists.infradead.org, Zhou Wang , Robert Richter , Jonathan Chocron , Toan Le , 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+Ci0tLQpDaGFuZ2VzIGluIHYyOgogIFVzZSBQQ0lFX0VDQU1f QUREUiBtYWNybyB3aGVuIGNvbXB1dGluZyBFQ0FNIGFkZHJlc3Mgb2Zmc2V0LCBidXQgZHJvcAog IFBDSV9TTE9UIGFuZCBQQ0lfRlVOQyBtYWNyb3MgZnJvbSB0aGUgUENJRV9FQ0FNX0FERFIgbWFj cm8gaW4gZmF2b3VyCiAgb2YgdXNpbmcgYSBzaW5nbGUgdmFsdWUgZm9yIHRoZSBkZXZpY2UvZnVu Y3Rpb24uCgogZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1hbC5jICAgICAgICB8ICA4 ICsrKy0tLS0tCiBkcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWhpc2kuYyAgICAgIHwg IDQgKystLQogZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaG9zdC1nZW5lcmljLmMgICB8ICA0 ICsrLS0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLXRodW5kZXItZWNhbS5jICAgfCAgMiAr LQogZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktdGh1bmRlci1wZW0uYyAgICB8ICA3ICsrKysr LS0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLXhnZW5lLmMgICAgICAgICAgfCAgNyArKysr Ky0tCiBkcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAtaG9zdC5jIHwgIDcgKysr LS0tLQogZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXJvY2tjaGlwLmggICAgICB8ICA4ICst LS0tLS0tCiBkcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtdGFuZ28uYyAgICAgICAgIHwgIDIg Ky0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbngtbndsLmMgICAgfCAgOCArKyst LS0tLQogZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhpbGlueC5jICAgICAgICB8IDEwICsr Ky0tLS0tLS0KIGRyaXZlcnMvcGNpL2VjYW0uYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg NCArKy0tCiBpbmNsdWRlL2xpbnV4L3BjaS1lY2FtLmggICAgICAgICAgICAgICAgICAgIHwgMjIg KysrKysrKysrKysrKysrKysrKysrCiAxMyBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCsp LCA0MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3 Yy9wY2llLWFsLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWFsLmMKaW5kZXgg ZDU3ZDRlZTE1ODQ4Li43YzJhYTA0OTExM2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRy b2xsZXIvZHdjL3BjaWUtYWwuYworKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ll LWFsLmMKQEAgLTc2LDcgKzc2LDcgQEAgc3RhdGljIGludCBhbF9wY2llX2luaXQoc3RydWN0IHBj aV9jb25maWdfd2luZG93ICpjZmcpCiB9CiAKIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgYWxf cGNpZV9vcHMgPSB7Ci0JLmJ1c19zaGlmdCAgICA9IDIwLAorCS5idXNfc2hpZnQgICAgPSBQQ0lF X0VDQU1fQlVTX1NISUZULAogCS5pbml0ICAgICAgICAgPSAgYWxfcGNpZV9pbml0LAogCS5wY2lf b3BzICAgICAgPSB7CiAJCS5tYXBfYnVzICAgID0gYWxfcGNpZV9tYXBfYnVzLApAQCAtMTM4LDgg KzEzOCw2IEBAIHN0cnVjdCBhbF9wY2llIHsKIAlzdHJ1Y3QgYWxfcGNpZV90YXJnZXRfYnVzX2Nm ZyB0YXJnZXRfYnVzX2NmZzsKIH07CiAKLSNkZWZpbmUgUENJRV9FQ0FNX0RFVkZOKHgpCQkoKCh4 KSAmIDB4ZmYpIDw8IDEyKQotCiAjZGVmaW5lIHRvX2FsX3BjaWUoeCkJCWRldl9nZXRfZHJ2ZGF0 YSgoeCktPmRldikKIAogc3RhdGljIGlubGluZSB1MzIgYWxfcGNpZV9jb250cm9sbGVyX3JlYWRs KHN0cnVjdCBhbF9wY2llICpwY2llLCB1MzIgb2Zmc2V0KQpAQCAtMjI4LDcgKzIyNiw3IEBAIHN0 YXRpYyB2b2lkIF9faW9tZW0gKmFsX3BjaWVfY29uZl9hZGRyX21hcChzdHJ1Y3QgYWxfcGNpZSAq cGNpZSwKIAl2b2lkIF9faW9tZW0gKnBjaV9iYXNlX2FkZHI7CiAKIAlwY2lfYmFzZV9hZGRyID0g KHZvaWQgX19pb21lbSAqKSgodWludHB0cl90KXBwLT52YV9jZmcwX2Jhc2UgKwotCQkJCQkgKGJ1 c25yX2VjYW0gPDwgMjApICsKKwkJCQkJIFBDSUVfRUNBTV9CVVMoYnVzbnJfZWNhbSkgKwogCQkJ CQkgUENJRV9FQ0FNX0RFVkZOKGRldmZuKSk7CiAKIAlpZiAoYnVzbnJfcmVnICE9IHRhcmdldF9i dXNfY2ZnLT5yZWdfdmFsKSB7CkBAIC0zMDAsNyArMjk4LDcgQEAgc3RhdGljIHZvaWQgYWxfcGNp ZV9jb25maWdfcHJlcGFyZShzdHJ1Y3QgYWxfcGNpZSAqcGNpZSkKIAogCXRhcmdldF9idXNfY2Zn ID0gJnBjaWUtPnRhcmdldF9idXNfY2ZnOwogCi0JZWNhbV9idXNfbWFzayA9IChwY2llLT5lY2Ft X3NpemUgPj4gMjApIC0gMTsKKwllY2FtX2J1c19tYXNrID0gKHBjaWUtPmVjYW1fc2l6ZSA+PiBQ Q0lFX0VDQU1fQlVTX1NISUZUKSAtIDE7CiAJaWYgKGVjYW1fYnVzX21hc2sgPiAyNTUpIHsKIAkJ ZGV2X3dhcm4ocGNpZS0+ZGV2LCAiRUNBTSB3aW5kb3cgc2l6ZSBpcyBsYXJnZXIgdGhhbiAyNTZN Qi4gQ3V0dGluZyBvZmYgYXQgMjU2XG4iKTsKIAkJZWNhbV9idXNfbWFzayA9IDI1NTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtaGlzaS5jIGIvZHJpdmVycy9w Y2kvY29udHJvbGxlci9kd2MvcGNpZS1oaXNpLmMKaW5kZXggNWNhODY3OTZkNDNhLi5iN2FmYmYx ZDRiZDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtaGlzaS5j CisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtaGlzaS5jCkBAIC0xMDAsNyAr MTAwLDcgQEAgc3RhdGljIGludCBoaXNpX3BjaWVfaW5pdChzdHJ1Y3QgcGNpX2NvbmZpZ193aW5k b3cgKmNmZykKIH0KIAogY29uc3Qgc3RydWN0IHBjaV9lY2FtX29wcyBoaXNpX3BjaWVfb3BzID0g ewotCS5idXNfc2hpZnQgICAgPSAyMCwKKwkuYnVzX3NoaWZ0ICAgID0gUENJRV9FQ0FNX0JVU19T SElGVCwKIAkuaW5pdCAgICAgICAgID0gIGhpc2lfcGNpZV9pbml0LAogCS5wY2lfb3BzICAgICAg PSB7CiAJCS5tYXBfYnVzICAgID0gaGlzaV9wY2llX21hcF9idXMsCkBAIC0xMzUsNyArMTM1LDcg QEAgc3RhdGljIGludCBoaXNpX3BjaWVfcGxhdGZvcm1faW5pdChzdHJ1Y3QgcGNpX2NvbmZpZ193 aW5kb3cgKmNmZykKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgaGlzaV9w Y2llX3BsYXRmb3JtX29wcyA9IHsKLQkuYnVzX3NoaWZ0ICAgID0gMjAsCisJLmJ1c19zaGlmdCAg ICA9IFBDSUVfRUNBTV9CVVNfU0hJRlQsCiAJLmluaXQgICAgICAgICA9ICBoaXNpX3BjaWVfcGxh dGZvcm1faW5pdCwKIAkucGNpX29wcyAgICAgID0gewogCQkubWFwX2J1cyAgICA9IGhpc2lfcGNp ZV9tYXBfYnVzLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaG9zdC1n ZW5lcmljLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1ob3N0LWdlbmVyaWMuYwppbmRl eCBiNTE5NzdhYmZkZjEuLjU5MzQzNmFlZTdhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29u dHJvbGxlci9wY2ktaG9zdC1nZW5lcmljLmMKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9w Y2ktaG9zdC1nZW5lcmljLmMKQEAgLTE1LDcgKzE1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wbGF0 Zm9ybV9kZXZpY2UuaD4KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgZ2VuX3Bj aV9jZmdfY2FtX2J1c19vcHMgPSB7Ci0JLmJ1c19zaGlmdAk9IDE2LAorCS5idXNfc2hpZnQJPSBQ Q0lFX0NBTV9CVVNfU0hJRlQsCiAJLnBjaV9vcHMJPSB7CiAJCS5tYXBfYnVzCT0gcGNpX2VjYW1f bWFwX2J1cywKIAkJLnJlYWQJCT0gcGNpX2dlbmVyaWNfY29uZmlnX3JlYWQsCkBAIC00OSw3ICs0 OSw3IEBAIHN0YXRpYyB2b2lkIF9faW9tZW0gKnBjaV9kd19lY2FtX21hcF9idXMoc3RydWN0IHBj aV9idXMgKmJ1cywKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgcGNpX2R3 X2VjYW1fYnVzX29wcyA9IHsKLQkuYnVzX3NoaWZ0CT0gMjAsCisJLmJ1c19zaGlmdAk9IFBDSUVf RUNBTV9CVVNfU0hJRlQsCiAJLnBjaV9vcHMJPSB7CiAJCS5tYXBfYnVzCT0gcGNpX2R3X2VjYW1f bWFwX2J1cywKIAkJLnJlYWQJCT0gcGNpX2dlbmVyaWNfY29uZmlnX3JlYWQsCmRpZmYgLS1naXQg YS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS10aHVuZGVyLWVjYW0uYyBiL2RyaXZlcnMvcGNp L2NvbnRyb2xsZXIvcGNpLXRodW5kZXItZWNhbS5jCmluZGV4IDdlODgzNWZlZTVmNy4uMjJlZDdl OTk1YjM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS10aHVuZGVyLWVj YW0uYworKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS10aHVuZGVyLWVjYW0uYwpAQCAt MzQ2LDcgKzM0Niw3IEBAIHN0YXRpYyBpbnQgdGh1bmRlcl9lY2FtX2NvbmZpZ193cml0ZShzdHJ1 Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBpbnQgZGV2Zm4sCiB9CiAKIGNvbnN0IHN0cnVjdCBw Y2lfZWNhbV9vcHMgcGNpX3RodW5kZXJfZWNhbV9vcHMgPSB7Ci0JLmJ1c19zaGlmdAk9IDIwLAor CS5idXNfc2hpZnQJPSBQQ0lFX0VDQU1fQlVTX1NISUZULAogCS5wY2lfb3BzCT0gewogCQkubWFw X2J1cyAgICAgICAgPSBwY2lfZWNhbV9tYXBfYnVzLAogCQkucmVhZCAgICAgICAgICAgPSB0aHVu ZGVyX2VjYW1fY29uZmlnX3JlYWQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVy L3BjaS10aHVuZGVyLXBlbS5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktdGh1bmRlci1w ZW0uYwppbmRleCAzZjg0Nzk2OTE0M2UuLjUwYTdhMmM1MmE3ZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9wY2kvY29udHJvbGxlci9wY2ktdGh1bmRlci1wZW0uYworKysgYi9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL3BjaS10aHVuZGVyLXBlbS5jCkBAIC0xOSw2ICsxOSw5IEBACiAjZGVmaW5lIFBFTV9D RkdfV1IgMHgyOAogI2RlZmluZSBQRU1fQ0ZHX1JEIDB4MzAKIAorLyogRW5oYW5jZWQgQ29uZmln dXJhdGlvbiBBY2Nlc3MgTWVjaGFuaXNtIChFQ0FNKSAqLworI2RlZmluZSBUSFVOREVSX1BDSUVf RUNBTV9CVVNfU0hJRlQJMjQKKwogc3RydWN0IHRodW5kZXJfcGVtX3BjaSB7CiAJdTMyCQllYV9l bnRyeVszXTsKIAl2b2lkIF9faW9tZW0JKnBlbV9yZWdfYmFzZTsKQEAgLTQwNCw3ICs0MDcsNyBA QCBzdGF0aWMgaW50IHRodW5kZXJfcGVtX2FjcGlfaW5pdChzdHJ1Y3QgcGNpX2NvbmZpZ193aW5k b3cgKmNmZykKIH0KIAogY29uc3Qgc3RydWN0IHBjaV9lY2FtX29wcyB0aHVuZGVyX3BlbV9lY2Ft X29wcyA9IHsKLQkuYnVzX3NoaWZ0CT0gMjQsCisJLmJ1c19zaGlmdAk9IFRIVU5ERVJfUENJRV9F Q0FNX0JVU19TSElGVCwKIAkuaW5pdAkJPSB0aHVuZGVyX3BlbV9hY3BpX2luaXQsCiAJLnBjaV9v cHMJPSB7CiAJCS5tYXBfYnVzCT0gcGNpX2VjYW1fbWFwX2J1cywKQEAgLTQ0MSw3ICs0NDQsNyBA QCBzdGF0aWMgaW50IHRodW5kZXJfcGVtX3BsYXRmb3JtX2luaXQoc3RydWN0IHBjaV9jb25maWdf d2luZG93ICpjZmcpCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2VjYW1fb3BzIHBjaV90 aHVuZGVyX3BlbV9vcHMgPSB7Ci0JLmJ1c19zaGlmdAk9IDI0LAorCS5idXNfc2hpZnQJPSBUSFVO REVSX1BDSUVfRUNBTV9CVVNfU0hJRlQsCiAJLmluaXQJCT0gdGh1bmRlcl9wZW1fcGxhdGZvcm1f aW5pdCwKIAkucGNpX29wcwk9IHsKIAkJLm1hcF9idXMJPSBwY2lfZWNhbV9tYXBfYnVzLApkaWZm IC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2kteGdlbmUuYyBiL2RyaXZlcnMvcGNp L2NvbnRyb2xsZXIvcGNpLXhnZW5lLmMKaW5kZXggOGUwZGI4NGYwODlkLi4xZDFmY2IwMmE1ZDMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLXhnZW5lLmMKKysrIGIvZHJp dmVycy9wY2kvY29udHJvbGxlci9wY2kteGdlbmUuYwpAQCAtNjAsNiArNjAsOSBAQAogI2RlZmlu ZSBYR0VORV9QQ0lFX0lQX1ZFUl8xCQkxCiAjZGVmaW5lIFhHRU5FX1BDSUVfSVBfVkVSXzIJCTIK IAorLyogRW5oYW5jZWQgQ29uZmlndXJhdGlvbiBBY2Nlc3MgTWVjaGFuaXNtIChFQ0FNKSAqLwor I2RlZmluZSBYR0VORV9QQ0lFX0VDQU1fQlVTX1NISUZUCTE2CisKICNpZiBkZWZpbmVkKENPTkZJ R19QQ0lfWEdFTkUpIHx8IChkZWZpbmVkKENPTkZJR19BQ1BJKSAmJiBkZWZpbmVkKENPTkZJR19Q Q0lfUVVJUktTKSkKIHN0cnVjdCB4Z2VuZV9wY2llX3BvcnQgewogCXN0cnVjdCBkZXZpY2Vfbm9k ZQkqbm9kZTsKQEAgLTI1Nyw3ICsyNjAsNyBAQCBzdGF0aWMgaW50IHhnZW5lX3YxX3BjaWVfZWNh bV9pbml0KHN0cnVjdCBwY2lfY29uZmlnX3dpbmRvdyAqY2ZnKQogfQogCiBjb25zdCBzdHJ1Y3Qg cGNpX2VjYW1fb3BzIHhnZW5lX3YxX3BjaWVfZWNhbV9vcHMgPSB7Ci0JLmJ1c19zaGlmdAk9IDE2 LAorCS5idXNfc2hpZnQJPSBYR0VORV9QQ0lFX0VDQU1fQlVTX1NISUZULAogCS5pbml0CQk9IHhn ZW5lX3YxX3BjaWVfZWNhbV9pbml0LAogCS5wY2lfb3BzCT0gewogCQkubWFwX2J1cwk9IHhnZW5l X3BjaWVfbWFwX2J1cywKQEAgLTI3Miw3ICsyNzUsNyBAQCBzdGF0aWMgaW50IHhnZW5lX3YyX3Bj aWVfZWNhbV9pbml0KHN0cnVjdCBwY2lfY29uZmlnX3dpbmRvdyAqY2ZnKQogfQogCiBjb25zdCBz dHJ1Y3QgcGNpX2VjYW1fb3BzIHhnZW5lX3YyX3BjaWVfZWNhbV9vcHMgPSB7Ci0JLmJ1c19zaGlm dAk9IDE2LAorCS5idXNfc2hpZnQJPSBYR0VORV9QQ0lFX0VDQU1fQlVTX1NISUZULAogCS5pbml0 CQk9IHhnZW5lX3YyX3BjaWVfZWNhbV9pbml0LAogCS5wY2lfb3BzCT0gewogCQkubWFwX2J1cwk9 IHhnZW5lX3BjaWVfbWFwX2J1cywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIv cGNpZS1yb2NrY2hpcC1ob3N0LmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2No aXAtaG9zdC5jCmluZGV4IDBiYjJmYjNlOGEwYi4uYTY5NTI3MDFiNTA0IDEwMDY0NAotLS0gYS9k cml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAtaG9zdC5jCisrKyBiL2RyaXZlcnMv cGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC1ob3N0LmMKQEAgLTE2Miw4ICsxNjIsNyBAQCBz dGF0aWMgaW50IHJvY2tjaGlwX3BjaWVfcmRfb3RoZXJfY29uZihzdHJ1Y3Qgcm9ja2NoaXBfcGNp ZSAqcm9ja2NoaXAsCiB7CiAJdTMyIGJ1c2RldjsKIAotCWJ1c2RldiA9IFBDSUVfRUNBTV9BRERS KGJ1cy0+bnVtYmVyLCBQQ0lfU0xPVChkZXZmbiksCi0JCQkJUENJX0ZVTkMoZGV2Zm4pLCB3aGVy ZSk7CisJYnVzZGV2ID0gUENJRV9FQ0FNX0FERFIoYnVzLCBkZXZmbiwgd2hlcmUpOwogCiAJaWYg KCFJU19BTElHTkVEKGJ1c2Rldiwgc2l6ZSkpIHsKIAkJKnZhbCA9IDA7CkBAIC0xOTYsOCArMTk1 LDggQEAgc3RhdGljIGludCByb2NrY2hpcF9wY2llX3dyX290aGVyX2NvbmYoc3RydWN0IHJvY2tj aGlwX3BjaWUgKnJvY2tjaGlwLAogewogCXUzMiBidXNkZXY7CiAKLQlidXNkZXYgPSBQQ0lFX0VD QU1fQUREUihidXMtPm51bWJlciwgUENJX1NMT1QoZGV2Zm4pLAotCQkJCVBDSV9GVU5DKGRldmZu KSwgd2hlcmUpOworCWJ1c2RldiA9IFBDSUVfRUNBTV9BRERSKGJ1cywgZGV2Zm4sIHdoZXJlKTsK KwogCWlmICghSVNfQUxJR05FRChidXNkZXYsIHNpemUpKQogCQlyZXR1cm4gUENJQklPU19CQURf UkVHSVNURVJfTlVNQkVSOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3Bj aWUtcm9ja2NoaXAuaCBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC5oCmlu ZGV4IGM3ZDAxNzhmYzhjMi4uMTY1MGE1MDg3NDUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9j b250cm9sbGVyL3BjaWUtcm9ja2NoaXAuaAorKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3Bj aWUtcm9ja2NoaXAuaApAQCAtMTMsNiArMTMsNyBAQAogCiAjaW5jbHVkZSA8bGludXgva2VybmVs Lmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLWVjYW0uaD4K IAogLyoKICAqIFRoZSB1cHBlciAxNiBiaXRzIG9mIFBDSUVfQ0xJRU5UX0NPTkZJRyBhcmUgYSB3 cml0ZSBtYXNrIGZvciB0aGUgbG93ZXIgMTYKQEAgLTE3OCwxMyArMTc5LDYgQEAKICNkZWZpbmUg TUlOX0FYSV9BRERSX0JJVFNfUEFTU0VECQk4CiAjZGVmaW5lIFBDSUVfUkNfU0VORF9QTUVfT0ZG CQkJMHgxMTk2MAogI2RlZmluZSBST0NLQ0hJUF9WRU5ET1JfSUQJCQkweDFkODcKLSNkZWZpbmUg UENJRV9FQ0FNX0JVUyh4KQkJCSgoKHgpICYgMHhmZikgPDwgMjApCi0jZGVmaW5lIFBDSUVfRUNB TV9ERVYoeCkJCQkoKCh4KSAmIDB4MWYpIDw8IDE1KQotI2RlZmluZSBQQ0lFX0VDQU1fRlVOQyh4 KQkJCSgoKHgpICYgMHg3KSA8PCAxMikKLSNkZWZpbmUgUENJRV9FQ0FNX1JFRyh4KQkJCSgoKHgp ICYgMHhmZmYpIDw8IDApCi0jZGVmaW5lIFBDSUVfRUNBTV9BRERSKGJ1cywgZGV2LCBmdW5jLCBy ZWcpIFwKLQkgIChQQ0lFX0VDQU1fQlVTKGJ1cykgfCBQQ0lFX0VDQU1fREVWKGRldikgfCBcCi0J ICAgUENJRV9FQ0FNX0ZVTkMoZnVuYykgfCBQQ0lFX0VDQU1fUkVHKHJlZykpCiAjZGVmaW5lIFBD SUVfTElOS19JU19MMih4KSBcCiAJKCgoeCkgJiBQQ0lFX0NMSUVOVF9ERUJVR19MVFNTTV9NQVNL KSA9PSBQQ0lFX0NMSUVOVF9ERUJVR19MVFNTTV9MMikKICNkZWZpbmUgUENJRV9MSU5LX1VQKHgp IFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS10YW5nby5jIGIvZHJp dmVycy9wY2kvY29udHJvbGxlci9wY2llLXRhbmdvLmMKaW5kZXggZDA5M2E4Y2U0YmIxLi44ZjBk Njk1YWZiZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS10YW5nby5j CisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS10YW5nby5jCkBAIC0yMDgsNyArMjA4 LDcgQEAgc3RhdGljIGludCBzbXA4NzU5X2NvbmZpZ193cml0ZShzdHJ1Y3QgcGNpX2J1cyAqYnVz LCB1bnNpZ25lZCBpbnQgZGV2Zm4sCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2VjYW1f b3BzIHNtcDg3NTlfZWNhbV9vcHMgPSB7Ci0JLmJ1c19zaGlmdAk9IDIwLAorCS5idXNfc2hpZnQJ PSBQQ0lFX0VDQU1fQlVTX1NISUZULAogCS5wY2lfb3BzCT0gewogCQkubWFwX2J1cwk9IHBjaV9l Y2FtX21hcF9idXMsCiAJCS5yZWFkCQk9IHNtcDg3NTlfY29uZmlnX3JlYWQsCmRpZmYgLS1naXQg YS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUteGlsaW54LW53bC5jIGIvZHJpdmVycy9wY2kv Y29udHJvbGxlci9wY2llLXhpbGlueC1ud2wuYwppbmRleCBmM2NmN2Q2MTkyNGYuLjcxNDEyOGVm OGQxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhpbGlueC1ud2wu YworKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUteGlsaW54LW53bC5jCkBAIC0xOCw2 ICsxOCw3IEBACiAjaW5jbHVkZSA8bGludXgvb2ZfcGxhdGZvcm0uaD4KICNpbmNsdWRlIDxsaW51 eC9vZl9pcnEuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kt ZWNhbS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxp bnV4L2lycWNoaXAvY2hhaW5lZF9pcnEuaD4KIApAQCAtMTI0LDggKzEyNSw2IEBACiAjZGVmaW5l IEVfRUNBTV9DUl9FTkFCTEUJCUJJVCgwKQogI2RlZmluZSBFX0VDQU1fU0laRV9MT0MJCQlHRU5N QVNLKDIwLCAxNikKICNkZWZpbmUgRV9FQ0FNX1NJWkVfU0hJRlQJCTE2Ci0jZGVmaW5lIEVDQU1f QlVTX0xPQ19TSElGVAkJMjAKLSNkZWZpbmUgRUNBTV9ERVZfTE9DX1NISUZUCQkxMgogI2RlZmlu ZSBOV0xfRUNBTV9WQUxVRV9ERUZBVUxUCQkxMgogCiAjZGVmaW5lIENGR19ETUFfUkVHX0JBUgkJ CUdFTk1BU0soMiwgMCkKQEAgLTI0NSwxMCArMjQ0LDkgQEAgc3RhdGljIHZvaWQgX19pb21lbSAq bndsX3BjaWVfbWFwX2J1cyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBpbnQgZGV2Zm4s CiAJaWYgKCFud2xfcGNpZV92YWxpZF9kZXZpY2UoYnVzLCBkZXZmbikpCiAJCXJldHVybiBOVUxM OwogCi0JcmVsYnVzID0gKGJ1cy0+bnVtYmVyIDw8IEVDQU1fQlVTX0xPQ19TSElGVCkgfAotCQkJ KGRldmZuIDw8IEVDQU1fREVWX0xPQ19TSElGVCk7CisJcmVsYnVzID0gUENJRV9FQ0FNX0FERFIo YnVzLCBkZXZmbiwgd2hlcmUpOwogCi0JcmV0dXJuIHBjaWUtPmVjYW1fYmFzZSArIHJlbGJ1cyAr IHdoZXJlOworCXJldHVybiBwY2llLT5lY2FtX2Jhc2UgKyByZWxidXM7CiB9CiAKIC8qIFBDSWUg b3BlcmF0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhp bGlueC5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhpbGlueC5jCmluZGV4IDg1MjNi ZTYxYmJhNS4uYWJhZWU1ZDY4Njc2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVy L3BjaWUteGlsaW54LmMKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhpbGlueC5j CkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSA8bGludXgvb2ZfcGxhdGZvcm0uaD4KICNpbmNs dWRlIDxsaW51eC9vZl9pcnEuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxs aW51eC9wY2ktZWNhbS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogCiAj aW5jbHVkZSAiLi4vcGNpLmgiCkBAIC04NiwxMCArODcsNiBAQAogLyogUGh5IFN0YXR1cy9Db250 cm9sIFJlZ2lzdGVyIGRlZmluaXRpb25zICovCiAjZGVmaW5lIFhJTElOWF9QQ0lFX1JFR19QU0NS X0xOS1VQCUJJVCgxMSkKIAotLyogRUNBTSBkZWZpbml0aW9ucyAqLwotI2RlZmluZSBFQ0FNX0JV U19OVU1fU0hJRlQJCTIwCi0jZGVmaW5lIEVDQU1fREVWX05VTV9TSElGVAkJMTIKLQogLyogTnVt YmVyIG9mIE1TSSBJUlFzICovCiAjZGVmaW5lIFhJTElOWF9OVU1fTVNJX0lSUVMJCTEyOAogCkBA IC0xODgsMTAgKzE4NSw5IEBAIHN0YXRpYyB2b2lkIF9faW9tZW0gKnhpbGlueF9wY2llX21hcF9i dXMoc3RydWN0IHBjaV9idXMgKmJ1cywKIAlpZiAoIXhpbGlueF9wY2llX3ZhbGlkX2RldmljZShi dXMsIGRldmZuKSkKIAkJcmV0dXJuIE5VTEw7CiAKLQlyZWxidXMgPSAoYnVzLT5udW1iZXIgPDwg RUNBTV9CVVNfTlVNX1NISUZUKSB8Ci0JCSAoZGV2Zm4gPDwgRUNBTV9ERVZfTlVNX1NISUZUKTsK KwlyZWxidXMgPSBQQ0lFX0VDQU1fQUREUihidXMsIGRldmZuLCB3aGVyZSk7CiAKLQlyZXR1cm4g cG9ydC0+cmVnX2Jhc2UgKyByZWxidXMgKyB3aGVyZTsKKwlyZXR1cm4gcG9ydC0+cmVnX2Jhc2Ug KyByZWxidXM7CiB9CiAKIC8qIFBDSWUgb3BlcmF0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9wY2kvZWNhbS5jIGIvZHJpdmVycy9wY2kvZWNhbS5jCmluZGV4IDhmMDY1YTQyZmMxYS4uZmZk MDEwMjkwMDg0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9lY2FtLmMKKysrIGIvZHJpdmVycy9w Y2kvZWNhbS5jCkBAIC0xNDksNyArMTQ5LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwocGNpX2VjYW1f bWFwX2J1cyk7CiAKIC8qIEVDQU0gb3BzICovCiBjb25zdCBzdHJ1Y3QgcGNpX2VjYW1fb3BzIHBj aV9nZW5lcmljX2VjYW1fb3BzID0gewotCS5idXNfc2hpZnQJPSAyMCwKKwkuYnVzX3NoaWZ0CT0g UENJRV9FQ0FNX0JVU19TSElGVCwKIAkucGNpX29wcwk9IHsKIAkJLm1hcF9idXMJPSBwY2lfZWNh bV9tYXBfYnVzLAogCQkucmVhZAkJPSBwY2lfZ2VuZXJpY19jb25maWdfcmVhZCwKQEAgLTE2MSw3 ICsxNjEsNyBAQCBFWFBPUlRfU1lNQk9MX0dQTChwY2lfZ2VuZXJpY19lY2FtX29wcyk7CiAjaWYg ZGVmaW5lZChDT05GSUdfQUNQSSkgJiYgZGVmaW5lZChDT05GSUdfUENJX1FVSVJLUykKIC8qIEVD QU0gb3BzIGZvciAzMi1iaXQgYWNjZXNzIG9ubHkgKG5vbi1jb21wbGlhbnQpICovCiBjb25zdCBz dHJ1Y3QgcGNpX2VjYW1fb3BzIHBjaV8zMmJfb3BzID0gewotCS5idXNfc2hpZnQJPSAyMCwKKwku YnVzX3NoaWZ0CT0gUENJRV9FQ0FNX0JVU19TSElGVCwKIAkucGNpX29wcwk9IHsKIAkJLm1hcF9i dXMJPSBwY2lfZWNhbV9tYXBfYnVzLAogCQkucmVhZAkJPSBwY2lfZ2VuZXJpY19jb25maWdfcmVh ZDMyLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wY2ktZWNhbS5oIGIvaW5jbHVkZS9saW51 eC9wY2ktZWNhbS5oCmluZGV4IDFhZjVjYjAyZWY3Zi4uMzdjNWRmOGJlYWQwIDEwMDY0NAotLS0g YS9pbmNsdWRlL2xpbnV4L3BjaS1lY2FtLmgKKysrIGIvaW5jbHVkZS9saW51eC9wY2ktZWNhbS5o CkBAIC05LDYgKzksMjggQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxs aW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KIAorLyoKKyAqIE1lbW9yeSBhZGRyZXNzIHNoaWZ0IHZh bHVlcyBmb3IgdGhlIGJ5dGUtbGV2ZWwgYWRkcmVzcyB0aGF0CisgKiBjYW4gYmUgdXNlZCB3aGVu IGFjY2Vzc2luZyB0aGUgUENJIEV4cHJlc3MgQ29uZmlndXJhdGlvbiBTcGFjZS4KKyAqLworCisv KiBDb25maWd1cmF0aW9uIEFjY2VzcyBNZWNoYW5pc20gKENBTSkgKi8KKyNkZWZpbmUgUENJRV9D QU1fQlVTX1NISUZUCTE2IC8qIEJ1cyBOdW1iZXIgKi8KKworLyogRW5oYW5jZWQgQ29uZmlndXJh dGlvbiBBY2Nlc3MgTWVjaGFuaXNtIChFQ0FNKSAqLworI2RlZmluZSBQQ0lFX0VDQU1fQlVTX1NI SUZUCTIwIC8qIEJ1cyBOdW1iZXIgKi8KKyNkZWZpbmUgUENJRV9FQ0FNX0RFVl9TSElGVAkxNSAv KiBEZXZpY2UgTnVtYmVyICovCisjZGVmaW5lIFBDSUVfRUNBTV9GVU5fU0hJRlQJMTIgLyogRnVu Y3Rpb24gTnVtYmVyICovCisKKyNkZWZpbmUgUENJRV9FQ0FNX0JVUyh4KQkoKCh4KSAmIDB4ZmYp IDw8IFBDSUVfRUNBTV9CVVNfU0hJRlQpCisjZGVmaW5lIFBDSUVfRUNBTV9ERVZGTih4KQkoKCh4 KSAmIDB4ZmYpIDw8IFBDSUVfRUNBTV9GVU5fU0hJRlQpCisjZGVmaW5lIFBDSUVfRUNBTV9SRUco eCkJKCh4KSAmIDB4ZmZmKQorCisjZGVmaW5lIFBDSUVfRUNBTV9BRERSKGJ1cywgZGV2Zm4sIHdo ZXJlKSBcCisgICAgKFBDSUVfRUNBTV9CVVMoYnVzLT5udW1iZXIpIHwgXAorICAgICBQQ0lFX0VD QU1fREVWRk4oZGV2Zm4pIHwgXAorICAgICBQQ0lFX0VDQU1fUkVHKHdoZXJlKSkKKwogLyoKICAq IHN0cnVjdCB0byBob2xkIHBjaSBvcHMgYW5kIGJ1cyBzaGlmdCBvZiB0aGUgY29uZmlnIHdpbmRv dwogICogZm9yIGEgUENJIGNvbnRyb2xsZXIuCi0tIAoyLjI4LjAKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1yb2NrY2hpcCBtYWlsaW5nIGxp c3QKTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJvY2tjaGlwCg== 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.9 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 B35F7C4727F for ; Fri, 25 Sep 2020 21:16:50 +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 27141208B6 for ; Fri, 25 Sep 2020 21:16:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="X0+tLBn9" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 27141208B6 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=ZriKprHi6v8hA96OBXYEbhR4SfYCzK/9wZMj3TiX/qc=; b=X0+tLBn9Wq5k9N0Y9kBMQZUr0f ScZ14FPaHcXhodMP7yf0dQpGxyuvQQm2lMvgREixRr4Ns6ktWTmFl76ce/yc9NmN2YyOldZWmY/TR bVsPLvzTChqgLMFfPO1NJcVGoCSNaqN002aBcqn1grOxuRvEdiHagGxVy+oFEVRzZaxAPDKcCfUgl D0bpcjciFHCwpVhIwuW1jaZVB83zt0865fw79qf37eiyeaBWfA3tdD3wsYW1fueoeIXkwdi4JZwJC Vi/ydKfXv1gO4l9mZkABk6vdpvX+av6d4iW2vrx6q8eLnHQ1tQp2h6zFPJHHnT7/+d0hDiRJA/+YE JlaQt0Dg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kLv3o-0002aC-Sq; Fri, 25 Sep 2020 21:15:20 +0000 Received: from mail-lf1-f67.google.com ([209.85.167.67]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kLv3m-0002Zp-Qf; Fri, 25 Sep 2020 21:15:19 +0000 Received: by mail-lf1-f67.google.com with SMTP id y17so4298343lfa.8; Fri, 25 Sep 2020 14:15:16 -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=xajnmYYE2JFCYF9eRVb6X0yNwDSWyIil7f0EIJpqbMM=; b=Kn7JfAdR6Eq741CCK1/6VOboN7HuL3zGPariHiUu12S2cS52l94vx6UH/vvosDXfGn NVsm71Wiab5Hyw4bN5XZZYvsDj0aNL0qjYaaQkCN6Te+DC3WoPnZJBBBYsMY01EgzpTF Rp7DM/KyO8e9opb9U62fFm7nQby7uAOVeYXlrj59jY2nw4UlZBx+3pZhxGGXU5I1lEsk ik84FYuzAng9rOXJkiFEM8N4nmt9Q1SKmYAawUaNraLOcAIHsBjb0wdyZsina20vlt8d 1oMRIYDYolDWSM8fQwXtZyPWguJkzuWRUgsmLnYrHwzS5zAa/xYW4dIpfLDy12sLj9Ft DQtg== X-Gm-Message-State: AOAM532Azpd6bHsPNk0NAp8lxlTVbloal2IVgRr5/9RJ2Hgtb3MkB6aw fV2GjnSvA/fRKxgDt49/cR8= X-Google-Smtp-Source: ABdhPJyXGoOg6v4p1gSsVdz4nJuvFKr5sER/uS374i1xzstKHcnV5KfXk+5THcP5U/Dcd8ZnRNtJaw== X-Received: by 2002:a19:4186:: with SMTP id o128mr219428lfa.148.1601068515602; Fri, 25 Sep 2020 14:15:15 -0700 (PDT) Received: from workstation.lan ([95.155.85.46]) by smtp.gmail.com with ESMTPSA id d1sm199063lfe.180.2020.09.25.14.15.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Sep 2020 14:15:15 -0700 (PDT) From: =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= To: Bjorn Helgaas Subject: [PATCH v2] PCI: Unify ECAM constants in native PCI Express drivers Date: Fri, 25 Sep 2020 21:15:13 +0000 Message-Id: <20200925211513.1701254-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-20200925_171518_880844_BC3B85F6 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: Rob Herring , Lorenzo Pieralisi , Heiko Stuebner , linux-pci@vger.kernel.org, Shawn Lin , Jonathan Cameron , Michal Simek , linux-rockchip@lists.infradead.org, Zhou Wang , Robert Richter , Jonathan Chocron , Toan Le , 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+Ci0tLQpDaGFuZ2VzIGluIHYyOgogIFVzZSBQQ0lFX0VDQU1f QUREUiBtYWNybyB3aGVuIGNvbXB1dGluZyBFQ0FNIGFkZHJlc3Mgb2Zmc2V0LCBidXQgZHJvcAog IFBDSV9TTE9UIGFuZCBQQ0lfRlVOQyBtYWNyb3MgZnJvbSB0aGUgUENJRV9FQ0FNX0FERFIgbWFj cm8gaW4gZmF2b3VyCiAgb2YgdXNpbmcgYSBzaW5nbGUgdmFsdWUgZm9yIHRoZSBkZXZpY2UvZnVu Y3Rpb24uCgogZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1hbC5jICAgICAgICB8ICA4 ICsrKy0tLS0tCiBkcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWhpc2kuYyAgICAgIHwg IDQgKystLQogZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaG9zdC1nZW5lcmljLmMgICB8ICA0 ICsrLS0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLXRodW5kZXItZWNhbS5jICAgfCAgMiAr LQogZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktdGh1bmRlci1wZW0uYyAgICB8ICA3ICsrKysr LS0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLXhnZW5lLmMgICAgICAgICAgfCAgNyArKysr Ky0tCiBkcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAtaG9zdC5jIHwgIDcgKysr LS0tLQogZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXJvY2tjaGlwLmggICAgICB8ICA4ICst LS0tLS0tCiBkcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtdGFuZ28uYyAgICAgICAgIHwgIDIg Ky0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbngtbndsLmMgICAgfCAgOCArKyst LS0tLQogZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhpbGlueC5jICAgICAgICB8IDEwICsr Ky0tLS0tLS0KIGRyaXZlcnMvcGNpL2VjYW0uYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg NCArKy0tCiBpbmNsdWRlL2xpbnV4L3BjaS1lY2FtLmggICAgICAgICAgICAgICAgICAgIHwgMjIg KysrKysrKysrKysrKysrKysrKysrCiAxMyBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCsp LCA0MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3 Yy9wY2llLWFsLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWFsLmMKaW5kZXgg ZDU3ZDRlZTE1ODQ4Li43YzJhYTA0OTExM2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRy b2xsZXIvZHdjL3BjaWUtYWwuYworKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ll LWFsLmMKQEAgLTc2LDcgKzc2LDcgQEAgc3RhdGljIGludCBhbF9wY2llX2luaXQoc3RydWN0IHBj aV9jb25maWdfd2luZG93ICpjZmcpCiB9CiAKIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgYWxf cGNpZV9vcHMgPSB7Ci0JLmJ1c19zaGlmdCAgICA9IDIwLAorCS5idXNfc2hpZnQgICAgPSBQQ0lF X0VDQU1fQlVTX1NISUZULAogCS5pbml0ICAgICAgICAgPSAgYWxfcGNpZV9pbml0LAogCS5wY2lf b3BzICAgICAgPSB7CiAJCS5tYXBfYnVzICAgID0gYWxfcGNpZV9tYXBfYnVzLApAQCAtMTM4LDgg KzEzOCw2IEBAIHN0cnVjdCBhbF9wY2llIHsKIAlzdHJ1Y3QgYWxfcGNpZV90YXJnZXRfYnVzX2Nm ZyB0YXJnZXRfYnVzX2NmZzsKIH07CiAKLSNkZWZpbmUgUENJRV9FQ0FNX0RFVkZOKHgpCQkoKCh4 KSAmIDB4ZmYpIDw8IDEyKQotCiAjZGVmaW5lIHRvX2FsX3BjaWUoeCkJCWRldl9nZXRfZHJ2ZGF0 YSgoeCktPmRldikKIAogc3RhdGljIGlubGluZSB1MzIgYWxfcGNpZV9jb250cm9sbGVyX3JlYWRs KHN0cnVjdCBhbF9wY2llICpwY2llLCB1MzIgb2Zmc2V0KQpAQCAtMjI4LDcgKzIyNiw3IEBAIHN0 YXRpYyB2b2lkIF9faW9tZW0gKmFsX3BjaWVfY29uZl9hZGRyX21hcChzdHJ1Y3QgYWxfcGNpZSAq cGNpZSwKIAl2b2lkIF9faW9tZW0gKnBjaV9iYXNlX2FkZHI7CiAKIAlwY2lfYmFzZV9hZGRyID0g KHZvaWQgX19pb21lbSAqKSgodWludHB0cl90KXBwLT52YV9jZmcwX2Jhc2UgKwotCQkJCQkgKGJ1 c25yX2VjYW0gPDwgMjApICsKKwkJCQkJIFBDSUVfRUNBTV9CVVMoYnVzbnJfZWNhbSkgKwogCQkJ CQkgUENJRV9FQ0FNX0RFVkZOKGRldmZuKSk7CiAKIAlpZiAoYnVzbnJfcmVnICE9IHRhcmdldF9i dXNfY2ZnLT5yZWdfdmFsKSB7CkBAIC0zMDAsNyArMjk4LDcgQEAgc3RhdGljIHZvaWQgYWxfcGNp ZV9jb25maWdfcHJlcGFyZShzdHJ1Y3QgYWxfcGNpZSAqcGNpZSkKIAogCXRhcmdldF9idXNfY2Zn ID0gJnBjaWUtPnRhcmdldF9idXNfY2ZnOwogCi0JZWNhbV9idXNfbWFzayA9IChwY2llLT5lY2Ft X3NpemUgPj4gMjApIC0gMTsKKwllY2FtX2J1c19tYXNrID0gKHBjaWUtPmVjYW1fc2l6ZSA+PiBQ Q0lFX0VDQU1fQlVTX1NISUZUKSAtIDE7CiAJaWYgKGVjYW1fYnVzX21hc2sgPiAyNTUpIHsKIAkJ ZGV2X3dhcm4ocGNpZS0+ZGV2LCAiRUNBTSB3aW5kb3cgc2l6ZSBpcyBsYXJnZXIgdGhhbiAyNTZN Qi4gQ3V0dGluZyBvZmYgYXQgMjU2XG4iKTsKIAkJZWNhbV9idXNfbWFzayA9IDI1NTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtaGlzaS5jIGIvZHJpdmVycy9w Y2kvY29udHJvbGxlci9kd2MvcGNpZS1oaXNpLmMKaW5kZXggNWNhODY3OTZkNDNhLi5iN2FmYmYx ZDRiZDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtaGlzaS5j CisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtaGlzaS5jCkBAIC0xMDAsNyAr MTAwLDcgQEAgc3RhdGljIGludCBoaXNpX3BjaWVfaW5pdChzdHJ1Y3QgcGNpX2NvbmZpZ193aW5k b3cgKmNmZykKIH0KIAogY29uc3Qgc3RydWN0IHBjaV9lY2FtX29wcyBoaXNpX3BjaWVfb3BzID0g ewotCS5idXNfc2hpZnQgICAgPSAyMCwKKwkuYnVzX3NoaWZ0ICAgID0gUENJRV9FQ0FNX0JVU19T SElGVCwKIAkuaW5pdCAgICAgICAgID0gIGhpc2lfcGNpZV9pbml0LAogCS5wY2lfb3BzICAgICAg PSB7CiAJCS5tYXBfYnVzICAgID0gaGlzaV9wY2llX21hcF9idXMsCkBAIC0xMzUsNyArMTM1LDcg QEAgc3RhdGljIGludCBoaXNpX3BjaWVfcGxhdGZvcm1faW5pdChzdHJ1Y3QgcGNpX2NvbmZpZ193 aW5kb3cgKmNmZykKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgaGlzaV9w Y2llX3BsYXRmb3JtX29wcyA9IHsKLQkuYnVzX3NoaWZ0ICAgID0gMjAsCisJLmJ1c19zaGlmdCAg ICA9IFBDSUVfRUNBTV9CVVNfU0hJRlQsCiAJLmluaXQgICAgICAgICA9ICBoaXNpX3BjaWVfcGxh dGZvcm1faW5pdCwKIAkucGNpX29wcyAgICAgID0gewogCQkubWFwX2J1cyAgICA9IGhpc2lfcGNp ZV9tYXBfYnVzLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaG9zdC1n ZW5lcmljLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1ob3N0LWdlbmVyaWMuYwppbmRl eCBiNTE5NzdhYmZkZjEuLjU5MzQzNmFlZTdhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29u dHJvbGxlci9wY2ktaG9zdC1nZW5lcmljLmMKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9w Y2ktaG9zdC1nZW5lcmljLmMKQEAgLTE1LDcgKzE1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wbGF0 Zm9ybV9kZXZpY2UuaD4KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgZ2VuX3Bj aV9jZmdfY2FtX2J1c19vcHMgPSB7Ci0JLmJ1c19zaGlmdAk9IDE2LAorCS5idXNfc2hpZnQJPSBQ Q0lFX0NBTV9CVVNfU0hJRlQsCiAJLnBjaV9vcHMJPSB7CiAJCS5tYXBfYnVzCT0gcGNpX2VjYW1f bWFwX2J1cywKIAkJLnJlYWQJCT0gcGNpX2dlbmVyaWNfY29uZmlnX3JlYWQsCkBAIC00OSw3ICs0 OSw3IEBAIHN0YXRpYyB2b2lkIF9faW9tZW0gKnBjaV9kd19lY2FtX21hcF9idXMoc3RydWN0IHBj aV9idXMgKmJ1cywKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgcGNpX2R3 X2VjYW1fYnVzX29wcyA9IHsKLQkuYnVzX3NoaWZ0CT0gMjAsCisJLmJ1c19zaGlmdAk9IFBDSUVf RUNBTV9CVVNfU0hJRlQsCiAJLnBjaV9vcHMJPSB7CiAJCS5tYXBfYnVzCT0gcGNpX2R3X2VjYW1f bWFwX2J1cywKIAkJLnJlYWQJCT0gcGNpX2dlbmVyaWNfY29uZmlnX3JlYWQsCmRpZmYgLS1naXQg YS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS10aHVuZGVyLWVjYW0uYyBiL2RyaXZlcnMvcGNp L2NvbnRyb2xsZXIvcGNpLXRodW5kZXItZWNhbS5jCmluZGV4IDdlODgzNWZlZTVmNy4uMjJlZDdl OTk1YjM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS10aHVuZGVyLWVj YW0uYworKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS10aHVuZGVyLWVjYW0uYwpAQCAt MzQ2LDcgKzM0Niw3IEBAIHN0YXRpYyBpbnQgdGh1bmRlcl9lY2FtX2NvbmZpZ193cml0ZShzdHJ1 Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBpbnQgZGV2Zm4sCiB9CiAKIGNvbnN0IHN0cnVjdCBw Y2lfZWNhbV9vcHMgcGNpX3RodW5kZXJfZWNhbV9vcHMgPSB7Ci0JLmJ1c19zaGlmdAk9IDIwLAor CS5idXNfc2hpZnQJPSBQQ0lFX0VDQU1fQlVTX1NISUZULAogCS5wY2lfb3BzCT0gewogCQkubWFw X2J1cyAgICAgICAgPSBwY2lfZWNhbV9tYXBfYnVzLAogCQkucmVhZCAgICAgICAgICAgPSB0aHVu ZGVyX2VjYW1fY29uZmlnX3JlYWQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVy L3BjaS10aHVuZGVyLXBlbS5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktdGh1bmRlci1w ZW0uYwppbmRleCAzZjg0Nzk2OTE0M2UuLjUwYTdhMmM1MmE3ZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9wY2kvY29udHJvbGxlci9wY2ktdGh1bmRlci1wZW0uYworKysgYi9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL3BjaS10aHVuZGVyLXBlbS5jCkBAIC0xOSw2ICsxOSw5IEBACiAjZGVmaW5lIFBFTV9D RkdfV1IgMHgyOAogI2RlZmluZSBQRU1fQ0ZHX1JEIDB4MzAKIAorLyogRW5oYW5jZWQgQ29uZmln dXJhdGlvbiBBY2Nlc3MgTWVjaGFuaXNtIChFQ0FNKSAqLworI2RlZmluZSBUSFVOREVSX1BDSUVf RUNBTV9CVVNfU0hJRlQJMjQKKwogc3RydWN0IHRodW5kZXJfcGVtX3BjaSB7CiAJdTMyCQllYV9l bnRyeVszXTsKIAl2b2lkIF9faW9tZW0JKnBlbV9yZWdfYmFzZTsKQEAgLTQwNCw3ICs0MDcsNyBA QCBzdGF0aWMgaW50IHRodW5kZXJfcGVtX2FjcGlfaW5pdChzdHJ1Y3QgcGNpX2NvbmZpZ193aW5k b3cgKmNmZykKIH0KIAogY29uc3Qgc3RydWN0IHBjaV9lY2FtX29wcyB0aHVuZGVyX3BlbV9lY2Ft X29wcyA9IHsKLQkuYnVzX3NoaWZ0CT0gMjQsCisJLmJ1c19zaGlmdAk9IFRIVU5ERVJfUENJRV9F Q0FNX0JVU19TSElGVCwKIAkuaW5pdAkJPSB0aHVuZGVyX3BlbV9hY3BpX2luaXQsCiAJLnBjaV9v cHMJPSB7CiAJCS5tYXBfYnVzCT0gcGNpX2VjYW1fbWFwX2J1cywKQEAgLTQ0MSw3ICs0NDQsNyBA QCBzdGF0aWMgaW50IHRodW5kZXJfcGVtX3BsYXRmb3JtX2luaXQoc3RydWN0IHBjaV9jb25maWdf d2luZG93ICpjZmcpCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2VjYW1fb3BzIHBjaV90 aHVuZGVyX3BlbV9vcHMgPSB7Ci0JLmJ1c19zaGlmdAk9IDI0LAorCS5idXNfc2hpZnQJPSBUSFVO REVSX1BDSUVfRUNBTV9CVVNfU0hJRlQsCiAJLmluaXQJCT0gdGh1bmRlcl9wZW1fcGxhdGZvcm1f aW5pdCwKIAkucGNpX29wcwk9IHsKIAkJLm1hcF9idXMJPSBwY2lfZWNhbV9tYXBfYnVzLApkaWZm IC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2kteGdlbmUuYyBiL2RyaXZlcnMvcGNp L2NvbnRyb2xsZXIvcGNpLXhnZW5lLmMKaW5kZXggOGUwZGI4NGYwODlkLi4xZDFmY2IwMmE1ZDMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLXhnZW5lLmMKKysrIGIvZHJp dmVycy9wY2kvY29udHJvbGxlci9wY2kteGdlbmUuYwpAQCAtNjAsNiArNjAsOSBAQAogI2RlZmlu ZSBYR0VORV9QQ0lFX0lQX1ZFUl8xCQkxCiAjZGVmaW5lIFhHRU5FX1BDSUVfSVBfVkVSXzIJCTIK IAorLyogRW5oYW5jZWQgQ29uZmlndXJhdGlvbiBBY2Nlc3MgTWVjaGFuaXNtIChFQ0FNKSAqLwor I2RlZmluZSBYR0VORV9QQ0lFX0VDQU1fQlVTX1NISUZUCTE2CisKICNpZiBkZWZpbmVkKENPTkZJ R19QQ0lfWEdFTkUpIHx8IChkZWZpbmVkKENPTkZJR19BQ1BJKSAmJiBkZWZpbmVkKENPTkZJR19Q Q0lfUVVJUktTKSkKIHN0cnVjdCB4Z2VuZV9wY2llX3BvcnQgewogCXN0cnVjdCBkZXZpY2Vfbm9k ZQkqbm9kZTsKQEAgLTI1Nyw3ICsyNjAsNyBAQCBzdGF0aWMgaW50IHhnZW5lX3YxX3BjaWVfZWNh bV9pbml0KHN0cnVjdCBwY2lfY29uZmlnX3dpbmRvdyAqY2ZnKQogfQogCiBjb25zdCBzdHJ1Y3Qg cGNpX2VjYW1fb3BzIHhnZW5lX3YxX3BjaWVfZWNhbV9vcHMgPSB7Ci0JLmJ1c19zaGlmdAk9IDE2 LAorCS5idXNfc2hpZnQJPSBYR0VORV9QQ0lFX0VDQU1fQlVTX1NISUZULAogCS5pbml0CQk9IHhn ZW5lX3YxX3BjaWVfZWNhbV9pbml0LAogCS5wY2lfb3BzCT0gewogCQkubWFwX2J1cwk9IHhnZW5l X3BjaWVfbWFwX2J1cywKQEAgLTI3Miw3ICsyNzUsNyBAQCBzdGF0aWMgaW50IHhnZW5lX3YyX3Bj aWVfZWNhbV9pbml0KHN0cnVjdCBwY2lfY29uZmlnX3dpbmRvdyAqY2ZnKQogfQogCiBjb25zdCBz dHJ1Y3QgcGNpX2VjYW1fb3BzIHhnZW5lX3YyX3BjaWVfZWNhbV9vcHMgPSB7Ci0JLmJ1c19zaGlm dAk9IDE2LAorCS5idXNfc2hpZnQJPSBYR0VORV9QQ0lFX0VDQU1fQlVTX1NISUZULAogCS5pbml0 CQk9IHhnZW5lX3YyX3BjaWVfZWNhbV9pbml0LAogCS5wY2lfb3BzCT0gewogCQkubWFwX2J1cwk9 IHhnZW5lX3BjaWVfbWFwX2J1cywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIv cGNpZS1yb2NrY2hpcC1ob3N0LmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2No aXAtaG9zdC5jCmluZGV4IDBiYjJmYjNlOGEwYi4uYTY5NTI3MDFiNTA0IDEwMDY0NAotLS0gYS9k cml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAtaG9zdC5jCisrKyBiL2RyaXZlcnMv cGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC1ob3N0LmMKQEAgLTE2Miw4ICsxNjIsNyBAQCBz dGF0aWMgaW50IHJvY2tjaGlwX3BjaWVfcmRfb3RoZXJfY29uZihzdHJ1Y3Qgcm9ja2NoaXBfcGNp ZSAqcm9ja2NoaXAsCiB7CiAJdTMyIGJ1c2RldjsKIAotCWJ1c2RldiA9IFBDSUVfRUNBTV9BRERS KGJ1cy0+bnVtYmVyLCBQQ0lfU0xPVChkZXZmbiksCi0JCQkJUENJX0ZVTkMoZGV2Zm4pLCB3aGVy ZSk7CisJYnVzZGV2ID0gUENJRV9FQ0FNX0FERFIoYnVzLCBkZXZmbiwgd2hlcmUpOwogCiAJaWYg KCFJU19BTElHTkVEKGJ1c2Rldiwgc2l6ZSkpIHsKIAkJKnZhbCA9IDA7CkBAIC0xOTYsOCArMTk1 LDggQEAgc3RhdGljIGludCByb2NrY2hpcF9wY2llX3dyX290aGVyX2NvbmYoc3RydWN0IHJvY2tj aGlwX3BjaWUgKnJvY2tjaGlwLAogewogCXUzMiBidXNkZXY7CiAKLQlidXNkZXYgPSBQQ0lFX0VD QU1fQUREUihidXMtPm51bWJlciwgUENJX1NMT1QoZGV2Zm4pLAotCQkJCVBDSV9GVU5DKGRldmZu KSwgd2hlcmUpOworCWJ1c2RldiA9IFBDSUVfRUNBTV9BRERSKGJ1cywgZGV2Zm4sIHdoZXJlKTsK KwogCWlmICghSVNfQUxJR05FRChidXNkZXYsIHNpemUpKQogCQlyZXR1cm4gUENJQklPU19CQURf UkVHSVNURVJfTlVNQkVSOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3Bj aWUtcm9ja2NoaXAuaCBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC5oCmlu ZGV4IGM3ZDAxNzhmYzhjMi4uMTY1MGE1MDg3NDUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9j b250cm9sbGVyL3BjaWUtcm9ja2NoaXAuaAorKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3Bj aWUtcm9ja2NoaXAuaApAQCAtMTMsNiArMTMsNyBAQAogCiAjaW5jbHVkZSA8bGludXgva2VybmVs Lmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLWVjYW0uaD4K IAogLyoKICAqIFRoZSB1cHBlciAxNiBiaXRzIG9mIFBDSUVfQ0xJRU5UX0NPTkZJRyBhcmUgYSB3 cml0ZSBtYXNrIGZvciB0aGUgbG93ZXIgMTYKQEAgLTE3OCwxMyArMTc5LDYgQEAKICNkZWZpbmUg TUlOX0FYSV9BRERSX0JJVFNfUEFTU0VECQk4CiAjZGVmaW5lIFBDSUVfUkNfU0VORF9QTUVfT0ZG CQkJMHgxMTk2MAogI2RlZmluZSBST0NLQ0hJUF9WRU5ET1JfSUQJCQkweDFkODcKLSNkZWZpbmUg UENJRV9FQ0FNX0JVUyh4KQkJCSgoKHgpICYgMHhmZikgPDwgMjApCi0jZGVmaW5lIFBDSUVfRUNB TV9ERVYoeCkJCQkoKCh4KSAmIDB4MWYpIDw8IDE1KQotI2RlZmluZSBQQ0lFX0VDQU1fRlVOQyh4 KQkJCSgoKHgpICYgMHg3KSA8PCAxMikKLSNkZWZpbmUgUENJRV9FQ0FNX1JFRyh4KQkJCSgoKHgp ICYgMHhmZmYpIDw8IDApCi0jZGVmaW5lIFBDSUVfRUNBTV9BRERSKGJ1cywgZGV2LCBmdW5jLCBy ZWcpIFwKLQkgIChQQ0lFX0VDQU1fQlVTKGJ1cykgfCBQQ0lFX0VDQU1fREVWKGRldikgfCBcCi0J ICAgUENJRV9FQ0FNX0ZVTkMoZnVuYykgfCBQQ0lFX0VDQU1fUkVHKHJlZykpCiAjZGVmaW5lIFBD SUVfTElOS19JU19MMih4KSBcCiAJKCgoeCkgJiBQQ0lFX0NMSUVOVF9ERUJVR19MVFNTTV9NQVNL KSA9PSBQQ0lFX0NMSUVOVF9ERUJVR19MVFNTTV9MMikKICNkZWZpbmUgUENJRV9MSU5LX1VQKHgp IFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS10YW5nby5jIGIvZHJp dmVycy9wY2kvY29udHJvbGxlci9wY2llLXRhbmdvLmMKaW5kZXggZDA5M2E4Y2U0YmIxLi44ZjBk Njk1YWZiZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS10YW5nby5j CisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS10YW5nby5jCkBAIC0yMDgsNyArMjA4 LDcgQEAgc3RhdGljIGludCBzbXA4NzU5X2NvbmZpZ193cml0ZShzdHJ1Y3QgcGNpX2J1cyAqYnVz LCB1bnNpZ25lZCBpbnQgZGV2Zm4sCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2VjYW1f b3BzIHNtcDg3NTlfZWNhbV9vcHMgPSB7Ci0JLmJ1c19zaGlmdAk9IDIwLAorCS5idXNfc2hpZnQJ PSBQQ0lFX0VDQU1fQlVTX1NISUZULAogCS5wY2lfb3BzCT0gewogCQkubWFwX2J1cwk9IHBjaV9l Y2FtX21hcF9idXMsCiAJCS5yZWFkCQk9IHNtcDg3NTlfY29uZmlnX3JlYWQsCmRpZmYgLS1naXQg YS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUteGlsaW54LW53bC5jIGIvZHJpdmVycy9wY2kv Y29udHJvbGxlci9wY2llLXhpbGlueC1ud2wuYwppbmRleCBmM2NmN2Q2MTkyNGYuLjcxNDEyOGVm OGQxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhpbGlueC1ud2wu YworKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUteGlsaW54LW53bC5jCkBAIC0xOCw2 ICsxOCw3IEBACiAjaW5jbHVkZSA8bGludXgvb2ZfcGxhdGZvcm0uaD4KICNpbmNsdWRlIDxsaW51 eC9vZl9pcnEuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kt ZWNhbS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxp bnV4L2lycWNoaXAvY2hhaW5lZF9pcnEuaD4KIApAQCAtMTI0LDggKzEyNSw2IEBACiAjZGVmaW5l IEVfRUNBTV9DUl9FTkFCTEUJCUJJVCgwKQogI2RlZmluZSBFX0VDQU1fU0laRV9MT0MJCQlHRU5N QVNLKDIwLCAxNikKICNkZWZpbmUgRV9FQ0FNX1NJWkVfU0hJRlQJCTE2Ci0jZGVmaW5lIEVDQU1f QlVTX0xPQ19TSElGVAkJMjAKLSNkZWZpbmUgRUNBTV9ERVZfTE9DX1NISUZUCQkxMgogI2RlZmlu ZSBOV0xfRUNBTV9WQUxVRV9ERUZBVUxUCQkxMgogCiAjZGVmaW5lIENGR19ETUFfUkVHX0JBUgkJ CUdFTk1BU0soMiwgMCkKQEAgLTI0NSwxMCArMjQ0LDkgQEAgc3RhdGljIHZvaWQgX19pb21lbSAq bndsX3BjaWVfbWFwX2J1cyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBpbnQgZGV2Zm4s CiAJaWYgKCFud2xfcGNpZV92YWxpZF9kZXZpY2UoYnVzLCBkZXZmbikpCiAJCXJldHVybiBOVUxM OwogCi0JcmVsYnVzID0gKGJ1cy0+bnVtYmVyIDw8IEVDQU1fQlVTX0xPQ19TSElGVCkgfAotCQkJ KGRldmZuIDw8IEVDQU1fREVWX0xPQ19TSElGVCk7CisJcmVsYnVzID0gUENJRV9FQ0FNX0FERFIo YnVzLCBkZXZmbiwgd2hlcmUpOwogCi0JcmV0dXJuIHBjaWUtPmVjYW1fYmFzZSArIHJlbGJ1cyAr IHdoZXJlOworCXJldHVybiBwY2llLT5lY2FtX2Jhc2UgKyByZWxidXM7CiB9CiAKIC8qIFBDSWUg b3BlcmF0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhp bGlueC5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhpbGlueC5jCmluZGV4IDg1MjNi ZTYxYmJhNS4uYWJhZWU1ZDY4Njc2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVy L3BjaWUteGlsaW54LmMKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhpbGlueC5j CkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSA8bGludXgvb2ZfcGxhdGZvcm0uaD4KICNpbmNs dWRlIDxsaW51eC9vZl9pcnEuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxs aW51eC9wY2ktZWNhbS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogCiAj aW5jbHVkZSAiLi4vcGNpLmgiCkBAIC04NiwxMCArODcsNiBAQAogLyogUGh5IFN0YXR1cy9Db250 cm9sIFJlZ2lzdGVyIGRlZmluaXRpb25zICovCiAjZGVmaW5lIFhJTElOWF9QQ0lFX1JFR19QU0NS X0xOS1VQCUJJVCgxMSkKIAotLyogRUNBTSBkZWZpbml0aW9ucyAqLwotI2RlZmluZSBFQ0FNX0JV U19OVU1fU0hJRlQJCTIwCi0jZGVmaW5lIEVDQU1fREVWX05VTV9TSElGVAkJMTIKLQogLyogTnVt YmVyIG9mIE1TSSBJUlFzICovCiAjZGVmaW5lIFhJTElOWF9OVU1fTVNJX0lSUVMJCTEyOAogCkBA IC0xODgsMTAgKzE4NSw5IEBAIHN0YXRpYyB2b2lkIF9faW9tZW0gKnhpbGlueF9wY2llX21hcF9i dXMoc3RydWN0IHBjaV9idXMgKmJ1cywKIAlpZiAoIXhpbGlueF9wY2llX3ZhbGlkX2RldmljZShi dXMsIGRldmZuKSkKIAkJcmV0dXJuIE5VTEw7CiAKLQlyZWxidXMgPSAoYnVzLT5udW1iZXIgPDwg RUNBTV9CVVNfTlVNX1NISUZUKSB8Ci0JCSAoZGV2Zm4gPDwgRUNBTV9ERVZfTlVNX1NISUZUKTsK KwlyZWxidXMgPSBQQ0lFX0VDQU1fQUREUihidXMsIGRldmZuLCB3aGVyZSk7CiAKLQlyZXR1cm4g cG9ydC0+cmVnX2Jhc2UgKyByZWxidXMgKyB3aGVyZTsKKwlyZXR1cm4gcG9ydC0+cmVnX2Jhc2Ug KyByZWxidXM7CiB9CiAKIC8qIFBDSWUgb3BlcmF0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9wY2kvZWNhbS5jIGIvZHJpdmVycy9wY2kvZWNhbS5jCmluZGV4IDhmMDY1YTQyZmMxYS4uZmZk MDEwMjkwMDg0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9lY2FtLmMKKysrIGIvZHJpdmVycy9w Y2kvZWNhbS5jCkBAIC0xNDksNyArMTQ5LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwocGNpX2VjYW1f bWFwX2J1cyk7CiAKIC8qIEVDQU0gb3BzICovCiBjb25zdCBzdHJ1Y3QgcGNpX2VjYW1fb3BzIHBj aV9nZW5lcmljX2VjYW1fb3BzID0gewotCS5idXNfc2hpZnQJPSAyMCwKKwkuYnVzX3NoaWZ0CT0g UENJRV9FQ0FNX0JVU19TSElGVCwKIAkucGNpX29wcwk9IHsKIAkJLm1hcF9idXMJPSBwY2lfZWNh bV9tYXBfYnVzLAogCQkucmVhZAkJPSBwY2lfZ2VuZXJpY19jb25maWdfcmVhZCwKQEAgLTE2MSw3 ICsxNjEsNyBAQCBFWFBPUlRfU1lNQk9MX0dQTChwY2lfZ2VuZXJpY19lY2FtX29wcyk7CiAjaWYg ZGVmaW5lZChDT05GSUdfQUNQSSkgJiYgZGVmaW5lZChDT05GSUdfUENJX1FVSVJLUykKIC8qIEVD QU0gb3BzIGZvciAzMi1iaXQgYWNjZXNzIG9ubHkgKG5vbi1jb21wbGlhbnQpICovCiBjb25zdCBz dHJ1Y3QgcGNpX2VjYW1fb3BzIHBjaV8zMmJfb3BzID0gewotCS5idXNfc2hpZnQJPSAyMCwKKwku YnVzX3NoaWZ0CT0gUENJRV9FQ0FNX0JVU19TSElGVCwKIAkucGNpX29wcwk9IHsKIAkJLm1hcF9i dXMJPSBwY2lfZWNhbV9tYXBfYnVzLAogCQkucmVhZAkJPSBwY2lfZ2VuZXJpY19jb25maWdfcmVh ZDMyLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wY2ktZWNhbS5oIGIvaW5jbHVkZS9saW51 eC9wY2ktZWNhbS5oCmluZGV4IDFhZjVjYjAyZWY3Zi4uMzdjNWRmOGJlYWQwIDEwMDY0NAotLS0g YS9pbmNsdWRlL2xpbnV4L3BjaS1lY2FtLmgKKysrIGIvaW5jbHVkZS9saW51eC9wY2ktZWNhbS5o CkBAIC05LDYgKzksMjggQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxs aW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KIAorLyoKKyAqIE1lbW9yeSBhZGRyZXNzIHNoaWZ0IHZh bHVlcyBmb3IgdGhlIGJ5dGUtbGV2ZWwgYWRkcmVzcyB0aGF0CisgKiBjYW4gYmUgdXNlZCB3aGVu IGFjY2Vzc2luZyB0aGUgUENJIEV4cHJlc3MgQ29uZmlndXJhdGlvbiBTcGFjZS4KKyAqLworCisv KiBDb25maWd1cmF0aW9uIEFjY2VzcyBNZWNoYW5pc20gKENBTSkgKi8KKyNkZWZpbmUgUENJRV9D QU1fQlVTX1NISUZUCTE2IC8qIEJ1cyBOdW1iZXIgKi8KKworLyogRW5oYW5jZWQgQ29uZmlndXJh dGlvbiBBY2Nlc3MgTWVjaGFuaXNtIChFQ0FNKSAqLworI2RlZmluZSBQQ0lFX0VDQU1fQlVTX1NI SUZUCTIwIC8qIEJ1cyBOdW1iZXIgKi8KKyNkZWZpbmUgUENJRV9FQ0FNX0RFVl9TSElGVAkxNSAv KiBEZXZpY2UgTnVtYmVyICovCisjZGVmaW5lIFBDSUVfRUNBTV9GVU5fU0hJRlQJMTIgLyogRnVu Y3Rpb24gTnVtYmVyICovCisKKyNkZWZpbmUgUENJRV9FQ0FNX0JVUyh4KQkoKCh4KSAmIDB4ZmYp IDw8IFBDSUVfRUNBTV9CVVNfU0hJRlQpCisjZGVmaW5lIFBDSUVfRUNBTV9ERVZGTih4KQkoKCh4 KSAmIDB4ZmYpIDw8IFBDSUVfRUNBTV9GVU5fU0hJRlQpCisjZGVmaW5lIFBDSUVfRUNBTV9SRUco eCkJKCh4KSAmIDB4ZmZmKQorCisjZGVmaW5lIFBDSUVfRUNBTV9BRERSKGJ1cywgZGV2Zm4sIHdo ZXJlKSBcCisgICAgKFBDSUVfRUNBTV9CVVMoYnVzLT5udW1iZXIpIHwgXAorICAgICBQQ0lFX0VD QU1fREVWRk4oZGV2Zm4pIHwgXAorICAgICBQQ0lFX0VDQU1fUkVHKHdoZXJlKSkKKwogLyoKICAq IHN0cnVjdCB0byBob2xkIHBjaSBvcHMgYW5kIGJ1cyBzaGlmdCBvZiB0aGUgY29uZmlnIHdpbmRv dwogICogZm9yIGEgUENJIGNvbnRyb2xsZXIuCi0tIAoyLjI4LjAKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcg bGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==