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);
>>...
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);
>>...
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...