From patchwork Fri Feb 27 15:00:43 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomasz Nowicki X-Patchwork-Id: 5900901 Return-Path: X-Original-To: patchwork-linux-acpi@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 A0A4BBF440 for ; Fri, 27 Feb 2015 15:01:28 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id D3BED202EC for ; Fri, 27 Feb 2015 15:01:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C648A2022D for ; Fri, 27 Feb 2015 15:01:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755016AbbB0PBC (ORCPT ); Fri, 27 Feb 2015 10:01:02 -0500 Received: from mail-lb0-f178.google.com ([209.85.217.178]:45784 "EHLO mail-lb0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754933AbbB0PAV (ORCPT ); Fri, 27 Feb 2015 10:00:21 -0500 Received: by lbjb6 with SMTP id b6so17770327lbj.12 for ; Fri, 27 Feb 2015 07:00:20 -0800 (PST) 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=WGngRL/1L3QZEDaWVSy41z2+YK40fjtaxbTTxNXuZi4=; b=gAF/1kCppLiJK5vxOAij7RZEi4gagVfn1w1Ykv4Y5UmiZ3W/tIoQUeVVmXiCzcLqXa faaujSm6ADE3Gx4W+q6OQPO03x2dYsI1WVnnexnsgw0cnYMnwLsp3nNJsy68HSaNCeIf j+JkiVVO0lq4FkRjlogtmOnM9xzVAlZuNX0nf9pROFgYbAXPaj1DUXEjd7nItNzkfQMt vA2gB2CKYaJKw9Z9b7LI7tIO7i7pVaSllUhXrQry0nN6REG4yB6vd9Sd2RYiKRyYliyw R3gbVCuUs6e9AcLLksz7feICM8lpGTlEf2OWxka9j17XZy+1RoHaImRBdrkV9IxqqcDu zS+g== X-Gm-Message-State: ALoCoQlI4E4NLBL4iv2rQyQ+4jGO0U7eMYaYcLL445W1wsWkzJuWYVDvQY6ju7IwIOp6vRgAD4nu X-Received: by 10.112.39.69 with SMTP id n5mr12962785lbk.1.1425049220033; Fri, 27 Feb 2015 07:00:20 -0800 (PST) Received: from tn-HP-4.semihalf.com ([80.82.22.190]) by mx.google.com with ESMTPSA id p7sm886055lap.18.2015.02.27.07.00.18 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 27 Feb 2015 07:00:19 -0800 (PST) From: Tomasz Nowicki To: bhelgaas@google.com, wangyijing@huawei.com, arnd@arndb.de, hanjun.guo@linaro.org, Liviu.Dudau@arm.com, tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com, rjw@rjwysocki.net, al.stone@linaro.org Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, x86@kernel.org, linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org, linaro-acpi@lists.linaro.org, Tomasz Nowicki Subject: [PATCH v2 8/9] pci, acpi, mcfg: Share ACPI PCI config space accessors. Date: Fri, 27 Feb 2015 16:00:43 +0100 Message-Id: <1425049244-19331-9-git-send-email-tomasz.nowicki@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1425049244-19331-1-git-send-email-tomasz.nowicki@linaro.org> References: <1425049244-19331-1-git-send-email-tomasz.nowicki@linaro.org> Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable 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 MCFG can be used perfectly for all architectures which support ACPI. ACPI mandates MCFG to describe PCI config space ranges which means we should use MMCONFIG accessors by default. Signed-off-by: Tomasz Nowicki --- drivers/acpi/mcfg.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/acpi/mcfg.c b/drivers/acpi/mcfg.c index 1e646fc..e285f62 100644 --- a/drivers/acpi/mcfg.c +++ b/drivers/acpi/mcfg.c @@ -13,6 +13,26 @@ #define PREFIX "MCFG: " +/* + * raw_pci_read/write - ACPI PCI config space accessors. + * + * ACPI spec defines MCFG table as the way we can describe access to PCI config + * space, so let MCFG be default (__weak). + * + * If platform needs more fancy stuff, should provides its own implementation. + */ +int __weak raw_pci_read(unsigned int domain, unsigned int bus, + unsigned int devfn, int reg, int len, u32 *val) +{ + return pci_mmcfg_read(domain, bus, devfn, reg, len, val); +} + +int __weak raw_pci_write(unsigned int domain, unsigned int bus, + unsigned int devfn, int reg, int len, u32 val) +{ + return pci_mmcfg_write(domain, bus, devfn, reg, len, val); +} + static int __init acpi_mcfg_check_entry(struct acpi_table_mcfg *mcfg, struct acpi_mcfg_allocation *cfg) {