genirq/msi: Create msi_api.h

Create a API header for MSI specific functions which are relevant to device
drivers.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Acked-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221124230313.632679220@linutronix.de
This commit is contained in:
Thomas Gleixner 2022-11-25 00:24:14 +01:00
parent 6a9fc4190c
commit 6b6941f665
2 changed files with 19 additions and 2 deletions

View File

@ -13,11 +13,14 @@
*
* Regular device drivers have no business with any of these functions and
* especially storing MSI descriptor pointers in random code is considered
* abuse. The only function which is relevant for drivers is msi_get_virq().
* abuse.
*
* Device driver relevant functions are available in <linux/msi_api.h>
*/
#include <linux/irqdomain_defs.h>
#include <linux/cpumask.h>
#include <linux/msi_api.h>
#include <linux/xarray.h>
#include <linux/mutex.h>
#include <linux/list.h>
@ -188,7 +191,6 @@ struct msi_device_data {
int msi_setup_device_data(struct device *dev);
unsigned int msi_get_virq(struct device *dev, unsigned int index);
void msi_lock_descs(struct device *dev);
void msi_unlock_descs(struct device *dev);

15
include/linux/msi_api.h Normal file
View File

@ -0,0 +1,15 @@
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef LINUX_MSI_API_H
#define LINUX_MSI_API_H
/*
* APIs which are relevant for device driver code for allocating and
* freeing MSI interrupts and querying the associations between
* hardware/software MSI indices and the Linux interrupt number.
*/
struct device;
unsigned int msi_get_virq(struct device *dev, unsigned int index);
#endif