search for: msi_mask_irq

Displaying 20 results from an estimated 21 matches for "msi_mask_irq".

2014 Aug 20
1
[RFC PATCH 10/11] PCI/MSI: Split the generic MSI code into new file
...y; > + > + list_for_each_entry(entry, &msi->msi_list, list) { > + default_restore_msi_irq(msi, entry->irq); > + } > +} > + > +void __weak arch_restore_msi_irqs(struct msi_irqs *msi) > +{ > + return default_restore_msi_irqs(msi); > +} > + > +u32 default_msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag) > +{ > + struct msi_irqs *msi = desc->msi; > + > + if (!msi || !msi->ops || !msi->ops->msi_mask_irq) > + return desc->masked; > + return msi->ops->msi_mask_irq(desc, mask, flag); > +} > + > +__weak u32 arch_...
2014 Aug 20
1
[RFC PATCH 10/11] PCI/MSI: Split the generic MSI code into new file
...y; > + > + list_for_each_entry(entry, &msi->msi_list, list) { > + default_restore_msi_irq(msi, entry->irq); > + } > +} > + > +void __weak arch_restore_msi_irqs(struct msi_irqs *msi) > +{ > + return default_restore_msi_irqs(msi); > +} > + > +u32 default_msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag) > +{ > + struct msi_irqs *msi = desc->msi; > + > + if (!msi || !msi->ops || !msi->ops->msi_mask_irq) > + return desc->masked; > + return msi->ops->msi_mask_irq(desc, mask, flag); > +} > + > +__weak u32 arch_...
2014 Jul 26
0
[RFC PATCH 10/11] PCI/MSI: Split the generic MSI code into new file
...re_msi_irqs(struct msi_irqs *msi) +{ + struct msi_desc *entry; + + list_for_each_entry(entry, &msi->msi_list, list) { + default_restore_msi_irq(msi, entry->irq); + } +} + +void __weak arch_restore_msi_irqs(struct msi_irqs *msi) +{ + return default_restore_msi_irqs(msi); +} + +u32 default_msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag) +{ + struct msi_irqs *msi = desc->msi; + + if (!msi || !msi->ops || !msi->ops->msi_mask_irq) + return desc->masked; + return msi->ops->msi_mask_irq(desc, mask, flag); +} + +__weak u32 arch_msi_mask_irq(struct msi_desc *desc, u32 mask,...
2013 Aug 29
6
[PATCH 2/3 v3] Refactor MSI restore call-chain to drop unnecessary argument
...ntry) + if (entry) { write_msi_msg(irq, &entry->msg); + if (dev->msix_enabled) { + msix_mask_irq(entry, entry->masked); + readl(entry->mask_base); + } else { + pos = entry->msi_attrib.pos; + pci_read_config_word(dev, pos + PCI_MSI_FLAGS, + &control); + msi_mask_irq(entry, msi_capable_mask(control), + entry->masked); + } + } } #endif @@ -406,7 +419,6 @@ static void __pci_restore_msi_state(struct pci_dev *dev) arch_restore_msi_irqs(dev, dev->irq); pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control); - msi_mask_irq(e...
2014 Jul 26
20
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...used to manage MSI related informations. Every device supports MSI should contain this data struct and allocate it. struct msi_ops { struct msi_desc *(*msi_setup_entry)(struct msi_irqs *msi, struct msi_desc *entry); int msix_setup_entries(struct msi_irqs *msi, struct msix_entry *entries); u32 (*msi_mask_irq)(struct msi_desc *desc, u32 mask, u32 flag); u32 (*msix_mask_irq)(struct msi_desc *desc, u32 flag); void (*msi_read_message)(struct msi_desc *desc, struct msi_msg *msg); void (*msi_write_message)(struct msi_desc *desc, struct msi_msg *msg); void (*msi_set_intx)(struct msi_irqs *msi, int enable)...
2014 Jul 26
20
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...used to manage MSI related informations. Every device supports MSI should contain this data struct and allocate it. struct msi_ops { struct msi_desc *(*msi_setup_entry)(struct msi_irqs *msi, struct msi_desc *entry); int msix_setup_entries(struct msi_irqs *msi, struct msix_entry *entries); u32 (*msi_mask_irq)(struct msi_desc *desc, u32 mask, u32 flag); u32 (*msix_mask_irq)(struct msi_desc *desc, u32 flag); void (*msi_read_message)(struct msi_desc *desc, struct msi_msg *msg); void (*msi_write_message)(struct msi_desc *desc, struct msi_msg *msg); void (*msi_set_intx)(struct msi_irqs *msi, int enable)...
2014 Jul 26
0
[RFC PATCH 09/11] PCI/MSI: refactor PCI MSI driver
..._FLAGS_ENABLE); + else + msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_ENABLE, 0); + } +} + static inline __attribute_const__ u32 msi_mask(unsigned x) { /* Don't shift by >= width of type */ @@ -175,6 +185,7 @@ static inline __attribute_const__ u32 msi_mask(unsigned x) */ u32 default_msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag) { + struct pci_dev *dev = desc->msi->data; u32 mask_bits = desc->masked; if (!desc->msi_attrib.maskbit) @@ -182,7 +193,7 @@ u32 default_msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag) mask_bits &= ~mask; mask_bits |= fl...
2014 Aug 20
1
[RFC PATCH 09/11] PCI/MSI: refactor PCI MSI driver
...t_ctrl(dev, PCI_MSIX_FLAGS_ENABLE, 0); > + } > +} > + > static inline __attribute_const__ u32 msi_mask(unsigned x) > { > /* Don't shift by >= width of type */ > @@ -175,6 +185,7 @@ static inline __attribute_const__ u32 msi_mask(unsigned x) > */ > u32 default_msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag) > { > + struct pci_dev *dev = desc->msi->data; > u32 mask_bits = desc->masked; > > if (!desc->msi_attrib.maskbit) > @@ -182,7 +193,7 @@ u32 default_msi_mask_irq(struct msi_desc *desc, u32 mask, > u32 flag) > >...
2014 Aug 20
1
[RFC PATCH 09/11] PCI/MSI: refactor PCI MSI driver
...t_ctrl(dev, PCI_MSIX_FLAGS_ENABLE, 0); > + } > +} > + > static inline __attribute_const__ u32 msi_mask(unsigned x) > { > /* Don't shift by >= width of type */ > @@ -175,6 +185,7 @@ static inline __attribute_const__ u32 msi_mask(unsigned x) > */ > u32 default_msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag) > { > + struct pci_dev *dev = desc->msi->data; > u32 mask_bits = desc->masked; > > if (!desc->msi_attrib.maskbit) > @@ -182,7 +193,7 @@ u32 default_msi_mask_irq(struct msi_desc *desc, u32 mask, > u32 flag) > >...
2014 Jul 29
0
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...sing the device driver interfaces so far, so it might never really happen. > struct msi_ops { > struct msi_desc *(*msi_setup_entry)(struct msi_irqs *msi, struct msi_desc *entry); > int msix_setup_entries(struct msi_irqs *msi, struct msix_entry *entries); > u32 (*msi_mask_irq)(struct msi_desc *desc, u32 mask, u32 flag); > u32 (*msix_mask_irq)(struct msi_desc *desc, u32 flag); > void (*msi_read_message)(struct msi_desc *desc, struct msi_msg *msg); > void (*msi_write_message)(struct msi_desc *desc, struct msi_msg *msg); > void (...
2014 Jul 30
0
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...a separate title. >> >>>> struct msi_ops { >>>> struct msi_desc *(*msi_setup_entry)(struct msi_irqs *msi, struct msi_desc *entry); >>>> int msix_setup_entries(struct msi_irqs *msi, struct msix_entry *entries); >>>> u32 (*msi_mask_irq)(struct msi_desc *desc, u32 mask, u32 flag); >>>> u32 (*msix_mask_irq)(struct msi_desc *desc, u32 flag); >>>> void (*msi_read_message)(struct msi_desc *desc, struct msi_msg *msg); >>>> void (*msi_write_message)(struct msi_desc *desc, struc...
2014 Jul 30
4
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...number, so maybe we can consider this in a separate title. >> struct msi_ops { >> struct msi_desc *(*msi_setup_entry)(struct msi_irqs *msi, struct msi_desc *entry); >> int msix_setup_entries(struct msi_irqs *msi, struct msix_entry *entries); >> u32 (*msi_mask_irq)(struct msi_desc *desc, u32 mask, u32 flag); >> u32 (*msix_mask_irq)(struct msi_desc *desc, u32 flag); >> void (*msi_read_message)(struct msi_desc *desc, struct msi_msg *msg); >> void (*msi_write_message)(struct msi_desc *desc, struct msi_msg *msg); >&gt...
2014 Jul 30
4
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...number, so maybe we can consider this in a separate title. >> struct msi_ops { >> struct msi_desc *(*msi_setup_entry)(struct msi_irqs *msi, struct msi_desc *entry); >> int msix_setup_entries(struct msi_irqs *msi, struct msix_entry *entries); >> u32 (*msi_mask_irq)(struct msi_desc *desc, u32 mask, u32 flag); >> u32 (*msix_mask_irq)(struct msi_desc *desc, u32 flag); >> void (*msi_read_message)(struct msi_desc *desc, struct msi_msg *msg); >> void (*msi_write_message)(struct msi_desc *desc, struct msi_msg *msg); >&gt...
2014 Jul 30
1
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...nsider > this in a separate title. > >>> struct msi_ops { >>> struct msi_desc *(*msi_setup_entry)(struct msi_irqs *msi, struct msi_desc *entry); >>> int msix_setup_entries(struct msi_irqs *msi, struct msix_entry *entries); >>> u32 (*msi_mask_irq)(struct msi_desc *desc, u32 mask, u32 flag); >>> u32 (*msix_mask_irq)(struct msi_desc *desc, u32 flag); >>> void (*msi_read_message)(struct msi_desc *desc, struct msi_msg *msg); >>> void (*msi_write_message)(struct msi_desc *desc, struct msi_msg *m...
2014 Jul 30
1
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...nsider > this in a separate title. > >>> struct msi_ops { >>> struct msi_desc *(*msi_setup_entry)(struct msi_irqs *msi, struct msi_desc *entry); >>> int msix_setup_entries(struct msi_irqs *msi, struct msix_entry *entries); >>> u32 (*msi_mask_irq)(struct msi_desc *desc, u32 mask, u32 flag); >>> u32 (*msix_mask_irq)(struct msi_desc *desc, u32 flag); >>> void (*msi_read_message)(struct msi_desc *desc, struct msi_msg *msg); >>> void (*msi_write_message)(struct msi_desc *desc, struct msi_msg *m...
2014 Aug 20
2
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
> -----Original Message----- > From: linux-pci-owner at vger.kernel.org [mailto:linux-pci-owner at vger.kernel.org] > On Behalf Of Yijing Wang > Sent: Wednesday, August 20, 2014 11:59 AM > To: Bhushan Bharat-R65777; Basu Arnab-B45036 > Cc: Xinwei Hu; Wuyun; Bjorn Helgaas; linux-pci at vger.kernel.org; > Paul.Mundt at huawei.com; James E.J. Bottomley; Marc Zyngier; linux-arm-
2014 Aug 20
2
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
> -----Original Message----- > From: linux-pci-owner at vger.kernel.org [mailto:linux-pci-owner at vger.kernel.org] > On Behalf Of Yijing Wang > Sent: Wednesday, August 20, 2014 11:59 AM > To: Bhushan Bharat-R65777; Basu Arnab-B45036 > Cc: Xinwei Hu; Wuyun; Bjorn Helgaas; linux-pci at vger.kernel.org; > Paul.Mundt at huawei.com; James E.J. Bottomley; Marc Zyngier; linux-arm-
2013 Nov 27
2
[BUG] domU kernel crash at igbvf module loading / __msix_mask_irq
Hello, on a Supermicro H8DGU server with the latest BIOS PCI passtrough fails. I tried to give a two igbvf devices to the domU. pciback is configured and everything locks good until igbvf tries to initialize the PCI device. I have the same error with XEN 4.3, 4.3.1 and the current 4.4-unstable, linux kernel 3.12.0, 3.12.1, 3.9. DomU config: kernel = "/boot/gentoo-DomU" memory =
2014 Aug 20
1
[RFC PATCH 11/11] x86/MSI: Refactor x86 MSI code
...> - void (*teardown_msi_irqs)(struct pci_dev *dev); > - void (*restore_msi_irqs)(struct pci_dev *dev); > + void (*teardown_msi_irqs)(struct msi_irqs *msi); > + void (*restore_msi_irqs)(struct msi_irqs *msi); > int (*setup_hpet_msi)(unsigned int irq, unsigned int id); > u32 (*msi_mask_irq)(struct msi_desc *desc, u32 mask, u32 flag); > u32 (*msix_mask_irq)(struct msi_desc *desc, u32 flag); > diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c > index b833042..3cb4a6a 100644 > --- a/arch/x86/kernel/apic/io_apic.c > +++ b/arch/x86/kernel/apic/i...
2014 Aug 20
1
[RFC PATCH 11/11] x86/MSI: Refactor x86 MSI code
...> - void (*teardown_msi_irqs)(struct pci_dev *dev); > - void (*restore_msi_irqs)(struct pci_dev *dev); > + void (*teardown_msi_irqs)(struct msi_irqs *msi); > + void (*restore_msi_irqs)(struct msi_irqs *msi); > int (*setup_hpet_msi)(unsigned int irq, unsigned int id); > u32 (*msi_mask_irq)(struct msi_desc *desc, u32 mask, u32 flag); > u32 (*msix_mask_irq)(struct msi_desc *desc, u32 flag); > diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c > index b833042..3cb4a6a 100644 > --- a/arch/x86/kernel/apic/io_apic.c > +++ b/arch/x86/kernel/apic/i...