From patchwork Thu Feb 4 17:28:41 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomasz Nowicki X-Patchwork-Id: 8225821 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 DBF05BEEE5 for ; Thu, 4 Feb 2016 17:31:14 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 7F27E20122 for ; Thu, 4 Feb 2016 17:31: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 9FCCC20108 for ; Thu, 4 Feb 2016 17:31: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 1aRNiy-0006xt-8n; Thu, 04 Feb 2016 17:29:44 +0000 Received: from mail-wm0-x22e.google.com ([2a00:1450:400c:c09::22e]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1aRNia-0006ew-Lz for linux-arm-kernel@lists.infradead.org; Thu, 04 Feb 2016 17:29:22 +0000 Received: by mail-wm0-x22e.google.com with SMTP id p63so222649183wmp.1 for ; Thu, 04 Feb 2016 09:29:00 -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=kFXzoleoPyxjgqNTny/2XMTHoclmHjFmx+86DJoHfcA=; b=cf73XCe30SbuNtppSHojxwfO3w0xD+Q/V44w6u6eyQ1Z5o6ya5sVeJ3r54ErDl7xTC yP2/Al5krbQpX6xrl+TEQ/AFOGW3evDb+VSA/x91G0KhCbwCquxGg78z1lyOFnB6+mlE eHSmuC5lo1CyRCkMuRqHrnd8NxCf4P8BOKECOWZBNfDklFSDGGZ+d5upE63CggQG5/oS 1IqRYy7x/U5TyOBjFMkz4AqeX5J5QTZlXfZr5jcmmt7KHNn4i97S8gIfja1g0gNa8vX+ Tbi2k7pDke4CD+0n5CKeSvlMYkJJchbrpvjW/G+QjohwUDw8l4a1sIPNzxgyaOKTDyPa NeEw== 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=kFXzoleoPyxjgqNTny/2XMTHoclmHjFmx+86DJoHfcA=; b=HGofamP008ENp8yUbsEZ7iXA6rnvxbz6qiQrQgfngj5bKTRzWH3TWSNbT00dGN6R5Q K20irjwW5c+70cRvaH3COTjgc11lbxLjdoSqrUuVpDJTjaQ9eD30iWUMmjNJnyKU15VS whI98fO+qQjJDxOQufUBfb1W4mNkTaLhhdthgMh4Jobw3sQEYs0snfbJfPaNVR+VuZ/h MWSLMy7D6d2oEKqa9FPaFzyMjNg2EB5SL5lDyGcjMb7pc22ztDbQ25HlaCebtYMvs3++ HNq8U05P8y6vLXXp3v/7gkEl97bPpubwDxi4kk6GjcZ0cLcctowYIvwAvJRfClvxfMc2 9eQA== X-Gm-Message-State: AG10YOSTp1xDNHcgtnXoJLIgr+oXWnVRjOtWTy0FrVoKBJmz/+Afwp7I1HTVe47nOUQAgw== X-Received: by 10.194.21.135 with SMTP id v7mr9335396wje.131.1454606939606; Thu, 04 Feb 2016 09:28:59 -0800 (PST) Received: from tn-HP-4.semihalf.local (cardhu.semihalf.com. [213.17.239.108]) by smtp.gmail.com with ESMTPSA id w8sm12238889wjx.21.2016.02.04.09.28.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 04 Feb 2016 09:28:58 -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 V4 03/23] pci, acpi, mcfg: Provide generic implementation of MCFG code initialization. Date: Thu, 4 Feb 2016 18:28:41 +0100 Message-Id: <1454606941-9523-4-git-send-email-tn@semihalf.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1454606941-9523-1-git-send-email-tn@semihalf.com> References: <1454606941-9523-1-git-send-email-tn@semihalf.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160204_092920_966220_DACE205B X-CRM114-Status: GOOD ( 10.16 ) 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 , 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.5 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 Tested-by: Duc Dang Tested-by: Dongdong Liu Tested-by: Hanjun Guo Tested-by: Graeme Gregory Tested-by: Sinan Kaya --- 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); +}