From patchwork Wed Jan 13 13:20:49 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomasz Nowicki X-Patchwork-Id: 8025121 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id ACC5BBEEE5 for ; Wed, 13 Jan 2016 13:26:16 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id CC0F220490 for ; Wed, 13 Jan 2016 13:26:11 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BD2E820351 for ; Wed, 13 Jan 2016 13:26:10 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1aJLNJ-0001Q7-Hp; Wed, 13 Jan 2016 13:22:09 +0000 Received: from mail-wm0-x229.google.com ([2a00:1450:400c:c09::229]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1aJLMv-0001AI-C7 for linux-arm-kernel@lists.infradead.org; Wed, 13 Jan 2016 13:21:49 +0000 Received: by mail-wm0-x229.google.com with SMTP id l65so293154147wmf.1 for ; Wed, 13 Jan 2016 05:21:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=cEtPs1Nob9/7JAS+0Xmj4sxcjiqiCEuY0mCGhW9Qsf4=; b=GvShU9ERFYu5OIqe3S2GNRwB/VLQpq+S7MBlXdBJPBWSb2T6rGOuTlaZZQEgi1Y20g D0NmaFCJiMSvtHLZ4UAQ6EtYyum65HnZnHK0w8zHXFTPIGyNtSO8qOIHIIe6itnUhYAb yoQMIk1sBbuVmk76eF/To5k3M5BRMcKzCR+LPu3h7/s/rBYtv/zX4pWZoiHfVjdiRvL1 PIyY0UIjvoO/x9vmOoohnOcnllkltUo3uUZJQu1+yQ9jkI8SkPr64KPmNOxwAinG7LkP SAKWdeDyiDk2frYltgf2leAdNBFmBE1ww0ZYdIqDiZtHamHovw85+vGP4HNV83ctP8gC WfLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=cEtPs1Nob9/7JAS+0Xmj4sxcjiqiCEuY0mCGhW9Qsf4=; b=lyAPUjLf2ID0h5sG6ae61ko2XpqQUbHZSFnQh8OR0wa6yZhyO6X/uMEX+nwqhtbtRo glbM/0MfvHL3u/xXxNFKtZA6QzHB1/J/uAp8Qu3+tFlturBDSc43tLHJBoYjmXNecQtY AFDiCxiQMnHRc9RXL+M7BXC75Nu1jJNwbeX4VqLvA1tF6iplP8FV6dmjjZntzlNXTx6v pQQe2T4zLagVXC/Y1s/pDbhW+S+mByPAi3RyNkMCsThpEmNIrxnvORHU5oVK6/3cOhgG 5UNoteRK2S48+xbaXGSZm77MJRmT7LUWV/xIht6H3qvHkQi0QxxR5GtMJKGimR3ZSVyW u68Q== X-Gm-Message-State: ALoCoQlRZLav4pusCAjalLhjNypzqyM9l6WDKnKXIdYlxupWTxm/XJUk507GF7b/BFbxvklsXZKxfyB+fUqR1Xs3GSM5HylhaQ== X-Received: by 10.28.132.74 with SMTP id g71mr27320243wmd.100.1452691283891; Wed, 13 Jan 2016 05:21:23 -0800 (PST) Received: from tn-HP-4.semihalf.local (cardhu.semihalf.com. [213.17.239.108]) by smtp.gmail.com with ESMTPSA id y124sm8858741wmg.3.2016.01.13.05.21.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 13 Jan 2016 05:21:23 -0800 (PST) From: Tomasz Nowicki To: bhelgaas@google.com, arnd@arndb.de, will.deacon@arm.com, catalin.marinas@arm.com, rjw@rjwysocki.net, hanjun.guo@linaro.org, Lorenzo.Pieralisi@arm.com, okaya@codeaurora.org, jiang.liu@linux.intel.com, Stefano.Stabellini@eu.citrix.com Subject: [PATCH V3 03/21] pci, acpi, mcfg: Provide generic implementation of MCFG code initialization. Date: Wed, 13 Jan 2016 14:20:49 +0100 Message-Id: <1452691267-32240-4-git-send-email-tn@semihalf.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1452691267-32240-1-git-send-email-tn@semihalf.com> References: <1452691267-32240-1-git-send-email-tn@semihalf.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160113_052145_779239_6B039005 X-CRM114-Status: UNSURE ( 9.98 ) X-CRM114-Notice: Please train this message. X-Spam-Score: -2.6 (--) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: jchandra@broadcom.com, jcm@redhat.com, linaro-acpi@lists.linaro.org, linux-pci@vger.kernel.org, Liviu.Dudau@arm.com, ddaney@caviumnetworks.com, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, robert.richter@caviumnetworks.com, Suravee.Suthikulpanit@amd.com, msalter@redhat.com, wangyijing@huawei.com, Tomasz Nowicki , tglx@linutronix.de, mw@semihalf.com, linux-arm-kernel@lists.infradead.org MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP First function acpi_mcfg_check_entry() does not apply any quirks by default. Last two functions are required by ACPI subsystem to make PCI config space accessible. Generic code assume to do nothing for early init call but late init call does as follow: - parse MCFG table and add regions to ECAM resource list - map regions - add regions to iomem_resource Signed-off-by: Tomasz Nowicki Tested-by: Suravee Suthikulpanit Tested-by: Jeremy Linton --- drivers/acpi/mcfg.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/acpi/mcfg.c b/drivers/acpi/mcfg.c index 5ecef20..fad9917 100644 --- a/drivers/acpi/mcfg.c +++ b/drivers/acpi/mcfg.c @@ -57,3 +57,29 @@ int __init acpi_parse_mcfg(struct acpi_table_header *header) return 0; } + +int __init __weak acpi_mcfg_check_entry(struct acpi_table_mcfg *mcfg, + struct acpi_mcfg_allocation *cfg) +{ + return 0; +} + +void __init __weak pci_mmcfg_early_init(void) +{ + +} + +void __init __weak pci_mmcfg_late_init(void) +{ + struct pci_mmcfg_region *cfg; + + acpi_table_parse(ACPI_SIG_MCFG, acpi_parse_mcfg); + + if (list_empty(&pci_mmcfg_list)) + return; + if (!pci_mmcfg_arch_init()) + free_all_mmcfg(); + + list_for_each_entry(cfg, &pci_mmcfg_list, list) + insert_resource(&iomem_resource, &cfg->res); +}