// SPDX-License-Identifier: GPL-2.0-only // Copyright (C) 2022 Linutronix GmbH // Copyright (C) 2022 Intel #include <linux/export.h> #include "irq-msi-lib.h" /** * msi_lib_init_dev_msi_info - Domain info setup for MSI domains * @dev: The device for which the domain is created for * @domain: The domain providing this callback * @real_parent: The real parent domain of the domain to be initialized * which might be a domain built on top of @domain or * @domain itself * @info: The domain info for the domain to be initialize * * This function is to be used for all types of MSI domains above the root * parent domain and any intermediates. The topmost parent domain specific * functionality is determined via @real_parent. * * All intermediate domains between the root and the device domain must * have either msi_parent_ops.init_dev_msi_info = msi_parent_init_dev_msi_info * or invoke it down the line. */ bool msi_lib_init_dev_msi_info(struct device *dev, struct irq_domain *domain, struct irq_domain *real_parent, struct msi_domain_info *info) { … } EXPORT_SYMBOL_GPL(…); /** * msi_lib_irq_domain_select - Shared select function for NEXUS domains * @d: Pointer to the irq domain on which select is invoked * @fwspec: Firmware spec describing what is searched * @bus_token: The bus token for which a matching irq domain is looked up * * Returns: %0 if @d is not what is being looked for * * %1 if @d is either the domain which is directly searched for or * if @d is providing the parent MSI domain for the functionality * requested with @bus_token. */ int msi_lib_irq_domain_select(struct irq_domain *d, struct irq_fwspec *fwspec, enum irq_domain_bus_token bus_token) { … } EXPORT_SYMBOL_GPL(…);