From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932756AbdD0O0y (ORCPT ); Thu, 27 Apr 2017 10:26:54 -0400 Received: from mout.kundenserver.de ([217.72.192.74]:51997 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932415AbdD0O0p (ORCPT ); Thu, 27 Apr 2017 10:26:45 -0400 From: Arnd Bergmann To: Thomas Gleixner Cc: Arnd Bergmann , Jason Cooper , Marc Zyngier , Lorenzo Pieralisi , Hanjun Guo , Tomasz Nowicki , Will Deacon , "Rafael J. Wysocki" , linux-kernel@vger.kernel.org Subject: [PATCH] irqchip/gicv3-its: use IORT only if IOMMU support is enabled Date: Thu, 27 Apr 2017 16:26:12 +0200 Message-Id: <20170427142704.3200946-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:8DRcIkeegpWJ6ycTMdp6gHcbC8+BHFeuBMAhxfvtX//hlTO6eO0 iNlc5DTe2i4CggK0QOfUoBVw3cwtzC88HbOC3aoY/3VcwZI3U1fSNCrG+NU/UGqG8CdZGzQ UuDYkUafNqXgpCIhxFwMs30M4RVpa7wwi5041HUodeuZ3uJAiA3ZENU7pNirnU2m6fJpl7I Dz0eTzSdN7J9PKqoXMCaQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:rv70wSdF7F8=:URPlKhN2cdldBLrswkepV3 yzV6GN5IaB5BlFvfnzF9z/EIsxcx6Yev4kfatMUjzteQRDrD1dmRQuGTP6MFBGkeAySXXV0V3 MfxAS3Q5jshH4ZxxNgdvVIVZtUyqPcgFc0zdIIUaf8zb+T3KScz2gys22T5ZL0X9dpLoFqFJz oYh3o0g0HUBNRlLpSy2Lycc7JduG3Cvc6mCbir3a2/wp/kiUVgs7EnwmceNsCjKaw9N7j3vrh HGEzTfK/U3F56qDEJkyXiDNACq6T7Mc/CTije8oooCrFBathCZEzLDaJaqAVOqKzYMflBgIPd fPND1dQUVAvO1Q3L9xNMot8EWzXecqmLPyu+n8rnQrtDznBK28RBov/tgBnvgp+Xhx2xvlj4Q PiNS8tbuOb62d1inJdVsyy5Srhlf0C626WS9fnwSu6xh7QKac9d7lKgGoKaR/ZZkMgECv++ht DschsLq16C0rNeRPvsOk0S4pm48PBNIXMyJ33xCaFLX7sWaNqeEmt3TKseiH6mTE5lJcykmFh imOQJGra49N7P9lvzLCdU5Bl8NpwXnjCYvDr71gm7ijLIvQ635fTaN9+gBBOEKD6gLR6pYji6 GTho2SIkqcmJHm1qan0HfEs0rLpj7KBW+2Eh6tXeW0xXUqcVgSsu2S1B6j7d/wwQEbizGkTfB Pz6GHuJnrsGbJ4GYeta+iyHXh/EUOyFSTnfDLacr33kmj03CmYcgK/B5Cy0PWoU/8rTA= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When the IOMMU subsystem is disabled, we cannot build ARM64 kernels with ACPI: drivers/acpi/arm64/iort.c: In function 'iort_iommu_xlate': drivers/acpi/arm64/iort.c:647:22: error: 'struct iommu_fwspec' has no member named 'ops' This adds a Kconfig dependency to only enable ACPI_IORT when it acutally builds, along with addititonal dummy helper functions to make its users build without IOMMU/IORT. Fixes: 3f010cf19732 ("irqchip/gicv3-its: Probe ITS in the ACPI way") Signed-off-by: Arnd Bergmann --- drivers/irqchip/Kconfig | 2 +- include/linux/acpi_iort.h | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig index 478f8ace2664..f0516740c03f 100644 --- a/drivers/irqchip/Kconfig +++ b/drivers/irqchip/Kconfig @@ -39,7 +39,7 @@ config ARM_GIC_V3_ITS bool depends on PCI depends on PCI_MSI - select ACPI_IORT if ACPI + select ACPI_IORT if ACPI && IOMMU config ARM_NVIC bool diff --git a/include/linux/acpi_iort.h b/include/linux/acpi_iort.h index 3ff9acea8616..918906d189d3 100644 --- a/include/linux/acpi_iort.h +++ b/include/linux/acpi_iort.h @@ -26,10 +26,10 @@ #define IORT_IRQ_MASK(irq) (irq & 0xffffffffULL) #define IORT_IRQ_TRIGGER_MASK(irq) ((irq >> 32) & 0xffffffffULL) +#ifdef CONFIG_ACPI_IORT int iort_register_domain_token(int trans_id, struct fwnode_handle *fw_node); void iort_deregister_domain_token(int trans_id); struct fwnode_handle *iort_find_domain_token(int trans_id); -#ifdef CONFIG_ACPI_IORT void acpi_iort_init(void); bool iort_node_match(u8 type); u32 iort_msi_map_rid(struct device *dev, u32 req_id); @@ -40,6 +40,9 @@ int iort_pmsi_get_dev_id(struct device *dev, u32 *dev_id); void iort_set_dma_mask(struct device *dev); const struct iommu_ops *iort_iommu_configure(struct device *dev); #else +static inline int iort_register_domain_token(int trans_id, struct fwnode_handle *fw_node) { return -ENOSYS; } +static inline void iort_deregister_domain_token(int trans_id) {} +static inline struct fwnode_handle *iort_find_domain_token(int trans_id) { return NULL;} static inline void acpi_iort_init(void) { } static inline bool iort_node_match(u8 type) { return false; } static inline u32 iort_msi_map_rid(struct device *dev, u32 req_id) -- 2.9.0