Displaying 10 results from an estimated 10 matches for "__pci_restore_msix_state".
Did you mean:
__pci_restore_msi_state
2013 Aug 29
6
[PATCH 2/3 v3] Refactor MSI restore call-chain to drop unnecessary argument
...nit.
Based on above, it''s Xen''s duty to restore entry->msi_attrib.masked to device,
but with current code, entry->masked is used and MSI-x interrupt is masked.
Before patch, restore call graph under initial domain:
pci_reset_function->
pci_restore_state->
__pci_restore_msix_state->
arch_restore_msi_irqs->
xen_initdom_restore_msi_irqs->
PHYSDEVOP_restore_msi hypercall (first mask restore)
msix_mask_irq(entry, entry->masked) (second mask restore)
So msix_mask_irq call in initial domain call graph nee...
2010 Feb 26
0
[Xen-devel] Crash during boot in Debian lenny default dom0 kernel (2.6.26-2-xen-686) / bugfix patch
...void pci_intx_for_msi(struct pci_dev *dev, int enable)
@@ -286,7 +302,7 @@
if (!dev->msi_enabled)
return;
- pirq = msi_map_pirq_to_vector(dev, dev->irq, 0, 1);
+ pirq = msi_map_pirq_to_vector(dev, dev->irq, 0, 0);
if (pirq < 0)
return;
@@ -296,19 +312,29 @@
static void __pci_restore_msix_state(struct pci_dev *dev)
{
+ int pos;
unsigned long flags;
+ u64 table_base;
struct msi_dev_list *msi_dev_entry;
struct msi_pirq_entry *pirq_entry, *tmp;
+ pos = pci_find_capability(dev, PCI_CAP_ID_MSIX);
+ if (pos <= 0)
+ return;
+
if (!dev->msix_enabled)
return;
msi_d...
2014 Jul 26
0
[RFC PATCH 09/11] PCI/MSI: refactor PCI MSI driver
...(dev->msi, 0, MSI_TYPE);
+ arch_restore_msi_irqs(dev->msi);
pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
msi_mask_irq(entry, msi_mask(entry->msi_attrib.multi_cap),
@@ -459,22 +488,21 @@ static void __pci_restore_msi_state(struct pci_dev *dev)
static void __pci_restore_msix_state(struct pci_dev *dev)
{
struct msi_desc *entry;
+ struct msi_irqs *msi = dev->msi;
- if (!dev->msix_enabled)
+ if (!pci_dev_msi_enabled(dev, MSIX_TYPE))
return;
- BUG_ON(list_empty(&dev->msi_list));
+ BUG_ON(list_empty(&msi->msi_list));
/* route the table */
- pci_int...
2014 Aug 20
1
[RFC PATCH 10/11] PCI/MSI: Split the generic MSI code into new file
...ntx_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, &control);
> @@ -496,13 +240,13 @@ static void __pci_restore_msix_state(struct pci_dev *dev)
>
> /* route the table */
> pci_intx_for_msi(msi, 0);
> - msi_set_enable(msi, 1, MSIX_TYPE);
> - msix_set_all_mask(msi, 1);
> + pci_msi_set_enable(msi, 1, MSIX_TYPE);
> + pci_msix_set_all_mask(msi, 1);
> arch_restore_msi_irqs(msi);
> list_for...
2014 Aug 20
1
[RFC PATCH 10/11] PCI/MSI: Split the generic MSI code into new file
...ntx_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, &control);
> @@ -496,13 +240,13 @@ static void __pci_restore_msix_state(struct pci_dev *dev)
>
> /* route the table */
> pci_intx_for_msi(msi, 0);
> - msi_set_enable(msi, 1, MSIX_TYPE);
> - msix_set_all_mask(msi, 1);
> + pci_msi_set_enable(msi, 1, MSIX_TYPE);
> + pci_msix_set_all_mask(msi, 1);
> arch_restore_msi_irqs(msi);
> list_for...
2014 Aug 20
1
[RFC PATCH 09/11] PCI/MSI: refactor PCI MSI driver
...gt; + arch_restore_msi_irqs(dev->msi);
>
> pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
> msi_mask_irq(entry, msi_mask(entry->msi_attrib.multi_cap),
> @@ -459,22 +488,21 @@ static void __pci_restore_msi_state(struct pci_dev *dev)
> static void __pci_restore_msix_state(struct pci_dev *dev)
> {
> struct msi_desc *entry;
> + struct msi_irqs *msi = dev->msi;
>
> - if (!dev->msix_enabled)
> + if (!pci_dev_msi_enabled(dev, MSIX_TYPE))
> return;
> - BUG_ON(list_empty(&dev->msi_list));
> + BUG_ON(list_empty(&msi->msi...
2014 Aug 20
1
[RFC PATCH 09/11] PCI/MSI: refactor PCI MSI driver
...gt; + arch_restore_msi_irqs(dev->msi);
>
> pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control);
> msi_mask_irq(entry, msi_mask(entry->msi_attrib.multi_cap),
> @@ -459,22 +488,21 @@ static void __pci_restore_msi_state(struct pci_dev *dev)
> static void __pci_restore_msix_state(struct pci_dev *dev)
> {
> struct msi_desc *entry;
> + struct msi_irqs *msi = dev->msi;
>
> - if (!dev->msix_enabled)
> + if (!pci_dev_msi_enabled(dev, MSIX_TYPE))
> return;
> - BUG_ON(list_empty(&dev->msi_list));
> + BUG_ON(list_empty(&msi->msi...
2014 Jul 26
0
[RFC PATCH 10/11] PCI/MSI: Split the generic MSI code into new file
..._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, &control);
@@ -496,13 +240,13 @@ static void __pci_restore_msix_state(struct pci_dev *dev)
/* route the table */
pci_intx_for_msi(msi, 0);
- msi_set_enable(msi, 1, MSIX_TYPE);
- msix_set_all_mask(msi, 1);
+ pci_msi_set_enable(msi, 1, MSIX_TYPE);
+ pci_msix_set_all_mask(msi, 1);
arch_restore_msi_irqs(msi);
list_for_each_entry(entry, &msi->msi_list, li...
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