Displaying 13 results from an estimated 13 matches for "pci_restore_msi_state".
2008 Jul 24
6
PCI MSI questions
...VOP_map_pirq may collide
with the dynamic IRQs in the kernel or even be out of range altogether.
Therefore I think that NR_PIRQS has to become a variable defaulting
to 256 but getting initialized from a hypervisor reported value (perhaps
in start_info, or else from a new (sub-)hypercall).
2) While pci_restore_msi_state() properly checks the success of
msi_map_pirq_to_vector(), pci_restore_msix_state() doesn''t. Is this
for a reason, or just because the code would get more complex if the
error needs to be handled?
3) The type parameter of xc_physdev_map_pirq{,_msi}() seems
superfluous, or is there any rea...
2011 Sep 20
0
[PATCH 4/4] x86: split MSI IRQ chip
...ct pci_dev *pdev);
-extern int setup_msi_irq(struct msi_desc *desc, int irq);
+extern void setup_msi_handler(struct irq_desc *, struct msi_desc *);
+extern void setup_msi_irq(struct irq_desc *);
extern void teardown_msi_irq(int irq);
extern int msi_free_vector(struct msi_desc *entry);
extern int pci_restore_msi_state(struct pci_dev *pdev);
@@ -89,14 +88,14 @@ extern int pci_restore_msi_state(struct
extern unsigned int pci_msix_get_table_len(struct pci_dev *pdev);
struct msi_desc {
- struct {
+ struct msi_attrib {
__u8 type : 5; /* {0: unused, 5h:MSI, 11h:MSI-X} */
__u8 maskbit : 1; /* mask-pending...
2014 Jul 26
0
[RFC PATCH 09/11] PCI/MSI: refactor PCI MSI driver
...tatic void pci_intx_for_msi(struct pci_dev *dev, int enable)
+static void pci_intx_for_msi(struct msi_irqs *msi, int enable)
{
+ struct pci_dev *dev = msi->data;
+
if (!(dev->dev_flags & PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG))
pci_intx(dev, enable);
}
@@ -444,9 +473,9 @@ static void __pci_restore_msi_state(struct pci_dev *dev)
entry = irq_get_msi_desc(dev->irq);
- pci_intx_for_msi(dev, 0);
- msi_set_enable(dev, 0);
- arch_restore_msi_irqs(dev);
+ pci_intx_for_msi(dev->msi, 0);
+ msi_set_enable(dev->msi, 0, MSI_TYPE);
+ arch_restore_msi_irqs(dev->msi);
pci_read_config_word(dev, d...
2014 Aug 20
1
[RFC PATCH 10/11] PCI/MSI: Split the generic MSI code into new file
...> - return NULL;
> -
> - INIT_LIST_HEAD(&desc->list);
> - desc->msi = msi;
> -
> - return desc;
> -}
> -
> static void pci_intx_for_msi(struct msi_irqs *msi, int enable)
> {
> struct pci_dev *dev = msi->data;
> @@ -474,7 +218,7 @@ static void __pci_restore_msi_state(struct pci_dev *dev)
> entry = irq_get_msi_desc(dev->irq);
>
> pci_intx_for_msi(dev->msi, 0);
> - msi_set_enable(dev->msi, 0, MSI_TYPE);
> + pci_msi_set_enable(dev->msi, 0, MSI_TYPE);
> arch_restore_msi_irqs(dev->msi);
>
> pci_read_config_word(dev, d...
2014 Aug 20
1
[RFC PATCH 10/11] PCI/MSI: Split the generic MSI code into new file
...> - return NULL;
> -
> - INIT_LIST_HEAD(&desc->list);
> - desc->msi = msi;
> -
> - return desc;
> -}
> -
> static void pci_intx_for_msi(struct msi_irqs *msi, int enable)
> {
> struct pci_dev *dev = msi->data;
> @@ -474,7 +218,7 @@ static void __pci_restore_msi_state(struct pci_dev *dev)
> entry = irq_get_msi_desc(dev->irq);
>
> pci_intx_for_msi(dev->msi, 0);
> - msi_set_enable(dev->msi, 0, MSI_TYPE);
> + pci_msi_set_enable(dev->msi, 0, MSI_TYPE);
> arch_restore_msi_irqs(dev->msi);
>
> pci_read_config_word(dev, d...
2014 Aug 20
1
[RFC PATCH 09/11] PCI/MSI: refactor PCI MSI driver
...ev *dev, int enable)
> +static void pci_intx_for_msi(struct msi_irqs *msi, int enable)
> {
> + struct pci_dev *dev = msi->data;
> +
> if (!(dev->dev_flags & PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG))
> pci_intx(dev, enable);
> }
> @@ -444,9 +473,9 @@ static void __pci_restore_msi_state(struct pci_dev *dev)
>
> entry = irq_get_msi_desc(dev->irq);
>
> - pci_intx_for_msi(dev, 0);
> - msi_set_enable(dev, 0);
> - arch_restore_msi_irqs(dev);
> + pci_intx_for_msi(dev->msi, 0);
> + msi_set_enable(dev->msi, 0, MSI_TYPE);
> + arch_restore_msi_irqs(de...
2014 Aug 20
1
[RFC PATCH 09/11] PCI/MSI: refactor PCI MSI driver
...ev *dev, int enable)
> +static void pci_intx_for_msi(struct msi_irqs *msi, int enable)
> {
> + struct pci_dev *dev = msi->data;
> +
> if (!(dev->dev_flags & PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG))
> pci_intx(dev, enable);
> }
> @@ -444,9 +473,9 @@ static void __pci_restore_msi_state(struct pci_dev *dev)
>
> entry = irq_get_msi_desc(dev->irq);
>
> - pci_intx_for_msi(dev, 0);
> - msi_set_enable(dev, 0);
> - arch_restore_msi_irqs(dev);
> + pci_intx_for_msi(dev->msi, 0);
> + msi_set_enable(dev->msi, 0, MSI_TYPE);
> + arch_restore_msi_irqs(de...
2014 Jul 26
0
[RFC PATCH 10/11] PCI/MSI: Split the generic MSI code into new file
...esc *desc = kzalloc(sizeof(*desc), GFP_KERNEL);
- if (!desc)
- return NULL;
-
- INIT_LIST_HEAD(&desc->list);
- desc->msi = msi;
-
- return desc;
-}
-
static void pci_intx_for_msi(struct msi_irqs *msi, int enable)
{
struct pci_dev *dev = msi->data;
@@ -474,7 +218,7 @@ static void __pci_restore_msi_state(struct pci_dev *dev)
entry = irq_get_msi_desc(dev->irq);
pci_intx_for_msi(dev->msi, 0);
- msi_set_enable(dev->msi, 0, MSI_TYPE);
+ pci_msi_set_enable(dev->msi, 0, MSI_TYPE);
arch_restore_msi_irqs(dev->msi);
pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &c...
2014 Jul 26
20
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
Hi all,
The series is a draft of generic MSI driver that supports PCI
and Non-PCI device which have MSI capability. If you're not interested
it, sorry for the noise.
The series is based on Linux-3.16-rc1.
MSI was introduced in PCI Spec 2.2. Currently, kernel MSI
driver codes are bonding with PCI device. Because MSI has a lot
advantages in design. More and more non-PCI devices want to
use
2014 Jul 26
20
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
Hi all,
The series is a draft of generic MSI driver that supports PCI
and Non-PCI device which have MSI capability. If you're not interested
it, sorry for the noise.
The series is based on Linux-3.16-rc1.
MSI was introduced in PCI Spec 2.2. Currently, kernel MSI
driver codes are bonding with PCI device. Because MSI has a lot
advantages in design. More and more non-PCI devices want to
use
2008 Nov 21
22
[PATCH 0/13 v7] PCI: Linux kernel SR-IOV support
Greetings,
Following patches are intended to support SR-IOV capability in the
Linux kernel. With these patches, people can turn a PCI device with
the capability into multiple ones from software perspective, which
will benefit KVM and achieve other purposes such as QoS, security,
and etc.
The Physical Function and Virtual Function drivers using the SR-IOV
APIs will come soon!
Major changes from
2008 Nov 21
22
[PATCH 0/13 v7] PCI: Linux kernel SR-IOV support
Greetings,
Following patches are intended to support SR-IOV capability in the
Linux kernel. With these patches, people can turn a PCI device with
the capability into multiple ones from software perspective, which
will benefit KVM and achieve other purposes such as QoS, security,
and etc.
The Physical Function and Virtual Function drivers using the SR-IOV
APIs will come soon!
Major changes from
2008 Nov 21
22
[PATCH 0/13 v7] PCI: Linux kernel SR-IOV support
Greetings,
Following patches are intended to support SR-IOV capability in the
Linux kernel. With these patches, people can turn a PCI device with
the capability into multiple ones from software perspective, which
will benefit KVM and achieve other purposes such as QoS, security,
and etc.
The Physical Function and Virtual Function drivers using the SR-IOV
APIs will come soon!
Major changes from