Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp2370yba; Thu, 11 Apr 2019 20:15:00 -0700 (PDT) X-Google-Smtp-Source: APXvYqySVxlBERiwTrIqJeNizjD2tk2FtSfelHBosFpV2vJv+iGY4i+8iwjbddHTfhu0xh8CjETO X-Received: by 2002:a63:d250:: with SMTP id t16mr49761695pgi.288.1555038900452; Thu, 11 Apr 2019 20:15:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555038900; cv=none; d=google.com; s=arc-20160816; b=eVmjwaZEislt+OcBy3okPjM60NC1RRZ4uOkD0/t5xg3AhnMmsQZ+WmQ1QbgfXAfqjF H9YoKuf+gifqrXPcVroqljAFwkZmRN7Tmg+XfpC+Nsx+lOVWuMgzLFzpI8pyf5mmE5rk QHttjdNzWC3T9rwbN5RSi9IHU+W37xpnG0BJSgcWhAi7jOkjkJKzKU+xxOuVrDpK3jOs qRLKwdziFghzIBEvHgXJdSqQhK1XBy1YDi6lMv6rpFX4MXLgs3gfjDizPORAALXPlbsn GFivjEjNhZQJvPMlEoivrprhKw4RracZCGQjjVmCV2k2XsxToGE0rTEKx6XhkBr4rEHN gmMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=BA318eIq/ox3LrTa6ojnh5Fujqy32l0ECRZ1GgahC8Q=; b=a+iaDyV16iwZbyos1UrTnkqwBzeNooU1kY1qSMYL9fm7d0JVcJN1Qj1NwzkAvXmuVf vTSReWfd/knFzX8VrCHdj0kJCHg2dZZSdwCkJcSy4mtDREzdrAIHLb3SfnsNOYbEhn6I f/DtDoEPlL0FlnnEuT7ptx+80mHd2vBCrTj1t+iW87kzqnbt4rZSNh1D94ezDWyHVH5f DnLhgjKPU9g/WrFulAZL6zFwf0PmlubCC6ZmwlAI5wWGkzl/f92NKyx4CHRiitalCSJi 4uRE0WRgiIpVw6QsPCH3BVj51+Gu73atNdBXwSYob9/PwdDID0Z0EoW5slw9FWtUjvd+ BxyQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=OvIjFl1c; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v62si6459654pgd.159.2019.04.11.20.14.44; Thu, 11 Apr 2019 20:15:00 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=OvIjFl1c; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726865AbfDLDOB (ORCPT + 99 others); Thu, 11 Apr 2019 23:14:01 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:39530 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726640AbfDLDOA (ORCPT ); Thu, 11 Apr 2019 23:14:00 -0400 Received: by mail-ed1-f68.google.com with SMTP id k45so7024706edb.6 for ; Thu, 11 Apr 2019 20:13:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=BA318eIq/ox3LrTa6ojnh5Fujqy32l0ECRZ1GgahC8Q=; b=OvIjFl1cf6jHzfn8YkMI1A76F+PXL0/0dP+dQwBBo1jDqx6NVXCv6xprWX4fpMpNqw ptmG61OeALgLt9CLXh8FDB4qXP2nnGcvfUbDpXdATIpmOYzIheh+48cV7O7tcgZyGzKo nVW6VtcPYRH92qy3BltSNDlt5hjNzwyJPcVk8= 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:in-reply-to :references; bh=BA318eIq/ox3LrTa6ojnh5Fujqy32l0ECRZ1GgahC8Q=; b=ZFeaJuuIvFW61k6HHXqSEYEDafA3CxSwNiYt4X82njJrVaKw8ndrF5kunlL/Z6fLT3 R/W5hsobHMYotJfKMc+0zQIi4YRyQm5CNTXxYjIchYbBknzztJ5wIM70cuUYpufcLbaz 2Bq+AYBOgeV8ANLJ1lKW38evjkvLTKD17t8nkfbvoqWTO63IHtPbjSsW09j1GODpmrI/ Bt2ZjgODjhXLOGMSMOyq2s9n5MKg8rUPLrieZYzxSlM9I/wdYZW73fcO2YRdkmpG6iuK xc+agA6G9PCTVHzy4SqioArFKbh2ordSzJfX1z2BAJPiFc+ZAOuF/VlKiwvkIpiLW3E9 Ai7g== X-Gm-Message-State: APjAAAWhJ98kVxXFriplw+MWKJh0dm4Ng0sukDLjlo+wyBqq6PmwLYY+ ++zhox66N8+IOCfQmLGyt4lILQ== X-Received: by 2002:a17:906:54d1:: with SMTP id c17mr4317274ejp.223.1555038839109; Thu, 11 Apr 2019 20:13:59 -0700 (PDT) Received: from mannams-OptiPlex-7010.dhcp.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id c7sm11533352edt.70.2019.04.11.20.13.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 11 Apr 2019 20:13:58 -0700 (PDT) From: Srinath Mannam To: Bjorn Helgaas , Robin Murphy , Joerg Roedel , Lorenzo Pieralisi , poza@codeaurora.org, Ray Jui Cc: bcm-kernel-feedback-list@broadcom.com, linux-pci@vger.kernel.org, iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Srinath Mannam Subject: [PATCH v4 1/3] PCI: Add dma_ranges window list Date: Fri, 12 Apr 2019 08:43:33 +0530 Message-Id: <1555038815-31916-2-git-send-email-srinath.mannam@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1555038815-31916-1-git-send-email-srinath.mannam@broadcom.com> References: <1555038815-31916-1-git-send-email-srinath.mannam@broadcom.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add a dma_ranges field in PCI host bridge structure to hold resource entries list of memory regions in sorted order given through dma-ranges DT property. While initializing IOMMU domain of PCI EPs connected to that host bridge This list of resources will be processed and IOVAs for the address holes will be reserved. Signed-off-by: Srinath Mannam Based-on-patch-by: Oza Pawandeep Reviewed-by: Oza Pawandeep --- drivers/pci/probe.c | 3 +++ include/linux/pci.h | 1 + 2 files changed, 4 insertions(+) diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 257b9f6..ce5505f 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -544,6 +544,7 @@ struct pci_host_bridge *pci_alloc_host_bridge(size_t priv) return NULL; INIT_LIST_HEAD(&bridge->windows); + INIT_LIST_HEAD(&bridge->dma_ranges); bridge->dev.release = pci_release_host_bridge_dev; /* @@ -572,6 +573,7 @@ struct pci_host_bridge *devm_pci_alloc_host_bridge(struct device *dev, return NULL; INIT_LIST_HEAD(&bridge->windows); + INIT_LIST_HEAD(&bridge->dma_ranges); bridge->dev.release = devm_pci_release_host_bridge_dev; return bridge; @@ -581,6 +583,7 @@ EXPORT_SYMBOL(devm_pci_alloc_host_bridge); void pci_free_host_bridge(struct pci_host_bridge *bridge) { pci_free_resource_list(&bridge->windows); + pci_free_resource_list(&bridge->dma_ranges); kfree(bridge); } diff --git a/include/linux/pci.h b/include/linux/pci.h index 65f1d8c..016a044 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -487,6 +487,7 @@ struct pci_host_bridge { void *sysdata; int busnr; struct list_head windows; /* resource_entry */ + struct list_head dma_ranges; /* dma ranges resource list */ u8 (*swizzle_irq)(struct pci_dev *, u8 *); /* Platform IRQ swizzler */ int (*map_irq)(const struct pci_dev *, u8, u8); void (*release_fn)(struct pci_host_bridge *); -- 2.7.4