mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-10 07:50:04 +00:00
PCI/MSI: Rename mask/unmask_msi_irq et al
mask/unmask_msi_irq and __mask_msi/msix_irq are PCI/MSI specific functions and should be named accordingly. This is a preparatory patch to support MSI on non PCI devices. Rename mask/unmask_msi_irq to pci_msi_mask/unmask_irq and document the functions. Provide conversion helpers. Rename __mask_msi/msix_irq to __pci_msi/msix_desc_mask so its clear that they operated on msi_desc. Fixup the only user outside of pci/msi. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: Jiang Liu <jiang.liu@linux.intel.com> Cc: Grant Likely <grant.likely@linaro.org> Cc: Marc Zyngier <marc.zyngier@arm.com> Cc: Yijing Wang <wangyijing@huawei.com> Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
This commit is contained in:
parent
83a18912b0
commit
23ed8d57f3
@ -448,9 +448,9 @@ void arch_teardown_msi_irqs(struct pci_dev *pdev)
|
||||
/* Release MSI interrupts */
|
||||
list_for_each_entry(msi, &pdev->msi_list, list) {
|
||||
if (msi->msi_attrib.is_msix)
|
||||
__msix_mask_irq(msi, 1);
|
||||
__pci_msix_desc_mask_irq(msi, 1);
|
||||
else
|
||||
__msi_mask_irq(msi, 1, 1);
|
||||
__pci_msi_desc_mask_irq(msi, 1, 1);
|
||||
irq_set_msi_desc(msi->irq, NULL);
|
||||
irq_free_desc(msi->irq);
|
||||
msi->msg.address_lo = 0;
|
||||
|
@ -173,7 +173,7 @@ static inline __attribute_const__ u32 msi_mask(unsigned x)
|
||||
* reliably as devices without an INTx disable bit will then generate a
|
||||
* level IRQ which will never be cleared.
|
||||
*/
|
||||
u32 __msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag)
|
||||
u32 __pci_msi_desc_mask_irq(struct msi_desc *desc, u32 mask, u32 flag)
|
||||
{
|
||||
u32 mask_bits = desc->masked;
|
||||
|
||||
@ -189,7 +189,7 @@ u32 __msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag)
|
||||
|
||||
static void msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag)
|
||||
{
|
||||
desc->masked = __msi_mask_irq(desc, mask, flag);
|
||||
desc->masked = __pci_msi_desc_mask_irq(desc, mask, flag);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -199,7 +199,7 @@ static void msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag)
|
||||
* file. This saves a few milliseconds when initialising devices with lots
|
||||
* of MSI-X interrupts.
|
||||
*/
|
||||
u32 __msix_mask_irq(struct msi_desc *desc, u32 flag)
|
||||
u32 __pci_msix_desc_mask_irq(struct msi_desc *desc, u32 flag)
|
||||
{
|
||||
u32 mask_bits = desc->masked;
|
||||
unsigned offset = desc->msi_attrib.entry_nr * PCI_MSIX_ENTRY_SIZE +
|
||||
@ -218,7 +218,7 @@ u32 __msix_mask_irq(struct msi_desc *desc, u32 flag)
|
||||
|
||||
static void msix_mask_irq(struct msi_desc *desc, u32 flag)
|
||||
{
|
||||
desc->masked = __msix_mask_irq(desc, flag);
|
||||
desc->masked = __pci_msix_desc_mask_irq(desc, flag);
|
||||
}
|
||||
|
||||
static void msi_set_mask_bit(struct irq_data *data, u32 flag)
|
||||
@ -234,12 +234,20 @@ static void msi_set_mask_bit(struct irq_data *data, u32 flag)
|
||||
}
|
||||
}
|
||||
|
||||
void mask_msi_irq(struct irq_data *data)
|
||||
/**
|
||||
* pci_msi_mask_irq - Generic irq chip callback to mask PCI/MSI interrupts
|
||||
* @data: pointer to irqdata associated to that interrupt
|
||||
*/
|
||||
void pci_msi_mask_irq(struct irq_data *data)
|
||||
{
|
||||
msi_set_mask_bit(data, 1);
|
||||
}
|
||||
|
||||
void unmask_msi_irq(struct irq_data *data)
|
||||
/**
|
||||
* pci_msi_unmask_irq - Generic irq chip callback to unmask PCI/MSI interrupts
|
||||
* @data: pointer to irqdata associated to that interrupt
|
||||
*/
|
||||
void pci_msi_unmask_irq(struct irq_data *data)
|
||||
{
|
||||
msi_set_mask_bit(data, 0);
|
||||
}
|
||||
@ -858,7 +866,7 @@ void pci_msi_shutdown(struct pci_dev *dev)
|
||||
/* Return the device with MSI unmasked as initial states */
|
||||
mask = msi_mask(desc->msi_attrib.multi_cap);
|
||||
/* Keep cached state to be restored */
|
||||
__msi_mask_irq(desc, mask, ~mask);
|
||||
__pci_msi_desc_mask_irq(desc, mask, ~mask);
|
||||
|
||||
/* Restore dev->irq to its default pin-assertion irq */
|
||||
dev->irq = desc->msi_attrib.default_irq;
|
||||
@ -956,7 +964,7 @@ void pci_msix_shutdown(struct pci_dev *dev)
|
||||
/* Return the device with MSI-X masked as initial states */
|
||||
list_for_each_entry(entry, &dev->msi_list, list) {
|
||||
/* Keep cached states to be restored */
|
||||
__msix_mask_irq(entry, 1);
|
||||
__pci_msix_desc_mask_irq(entry, 1);
|
||||
}
|
||||
|
||||
msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_ENABLE, 0);
|
||||
|
@ -14,14 +14,9 @@ extern int pci_msi_ignore_mask;
|
||||
/* Helper functions */
|
||||
struct irq_data;
|
||||
struct msi_desc;
|
||||
void mask_msi_irq(struct irq_data *data);
|
||||
void unmask_msi_irq(struct irq_data *data);
|
||||
void __get_cached_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
|
||||
void get_cached_msi_msg(unsigned int irq, struct msi_msg *msg);
|
||||
|
||||
u32 __msix_mask_irq(struct msi_desc *desc, u32 flag);
|
||||
u32 __msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag);
|
||||
|
||||
struct msi_desc {
|
||||
struct {
|
||||
__u8 is_msix : 1;
|
||||
@ -52,6 +47,11 @@ void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
|
||||
void __pci_write_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
|
||||
void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg);
|
||||
|
||||
u32 __pci_msix_desc_mask_irq(struct msi_desc *desc, u32 flag);
|
||||
u32 __pci_msi_desc_mask_irq(struct msi_desc *desc, u32 mask, u32 flag);
|
||||
void pci_msi_mask_irq(struct irq_data *data);
|
||||
void pci_msi_unmask_irq(struct irq_data *data);
|
||||
|
||||
/* Conversion helpers. Should be removed after merging */
|
||||
static inline void __write_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
|
||||
{
|
||||
@ -61,6 +61,14 @@ static inline void write_msi_msg(int irq, struct msi_msg *msg)
|
||||
{
|
||||
pci_write_msi_msg(irq, msg);
|
||||
}
|
||||
static inline void mask_msi_irq(struct irq_data *data)
|
||||
{
|
||||
pci_msi_mask_irq(data);
|
||||
}
|
||||
static inline void unmask_msi_irq(struct irq_data *data)
|
||||
{
|
||||
pci_msi_unmask_irq(data);
|
||||
}
|
||||
|
||||
/*
|
||||
* The arch hooks to setup up msi irqs. Those functions are
|
||||
|
Loading…
x
Reference in New Issue
Block a user