Displaying 16 results from an estimated 16 matches for "msi_type".
2014 Aug 20
1
[RFC PATCH 03/11] PCI/MSI: Refactor pci_dev_msi_enabled()
.../pci/bios.c
> +++ b/arch/cris/arch-v32/drivers/pci/bios.c
> @@ -93,7 +93,7 @@ int pcibios_enable_device(struct pci_dev *dev, int mask)
> if ((err = pcibios_enable_resources(dev, mask)) < 0)
> return err;
>
> - if (!dev->msi_enabled)
> + if (!pci_dev_msi_enabled(dev, MSI_TYPE))
> pcibios_enable_irq(dev);
> return 0;
> }
> diff --git a/arch/frv/mb93090-mb00/pci-vdk.c b/arch/frv/mb93090-mb00/pci-vdk.c
> index efa5d65..b96c128 100644
> --- a/arch/frv/mb93090-mb00/pci-vdk.c
> +++ b/arch/frv/mb93090-mb00/pci-vdk.c
> @@ -409,7 +409,7 @@ int pcibi...
2014 Aug 20
1
[RFC PATCH 03/11] PCI/MSI: Refactor pci_dev_msi_enabled()
.../pci/bios.c
> +++ b/arch/cris/arch-v32/drivers/pci/bios.c
> @@ -93,7 +93,7 @@ int pcibios_enable_device(struct pci_dev *dev, int mask)
> if ((err = pcibios_enable_resources(dev, mask)) < 0)
> return err;
>
> - if (!dev->msi_enabled)
> + if (!pci_dev_msi_enabled(dev, MSI_TYPE))
> pcibios_enable_irq(dev);
> return 0;
> }
> diff --git a/arch/frv/mb93090-mb00/pci-vdk.c b/arch/frv/mb93090-mb00/pci-vdk.c
> index efa5d65..b96c128 100644
> --- a/arch/frv/mb93090-mb00/pci-vdk.c
> +++ b/arch/frv/mb93090-mb00/pci-vdk.c
> @@ -409,7 +409,7 @@ int pcibi...
2014 Jul 26
0
[RFC PATCH 03/11] PCI/MSI: Refactor pci_dev_msi_enabled()
...4
--- a/arch/cris/arch-v32/drivers/pci/bios.c
+++ b/arch/cris/arch-v32/drivers/pci/bios.c
@@ -93,7 +93,7 @@ int pcibios_enable_device(struct pci_dev *dev, int mask)
if ((err = pcibios_enable_resources(dev, mask)) < 0)
return err;
- if (!dev->msi_enabled)
+ if (!pci_dev_msi_enabled(dev, MSI_TYPE))
pcibios_enable_irq(dev);
return 0;
}
diff --git a/arch/frv/mb93090-mb00/pci-vdk.c b/arch/frv/mb93090-mb00/pci-vdk.c
index efa5d65..b96c128 100644
--- a/arch/frv/mb93090-mb00/pci-vdk.c
+++ b/arch/frv/mb93090-mb00/pci-vdk.c
@@ -409,7 +409,7 @@ int pcibios_enable_device(struct pci_dev *dev, in...
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
2014 Aug 20
1
[RFC PATCH 09/11] PCI/MSI: refactor PCI MSI driver
..._irqs(struct pci_dev *dev, int nvec, int type)
> +int __weak arch_setup_msi_irqs(struct msi_irqs *msi, int nvec, int type)
> {
> struct msi_desc *entry;
> int ret;
> @@ -78,8 +80,8 @@ int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec,
> int type)
> if (type == MSI_TYPE && nvec > 1)
> return 1;
>
> - list_for_each_entry(entry, &dev->msi_list, list) {
> - ret = arch_setup_msi_irq(dev, entry);
> + list_for_each_entry(entry, &msi->msi_list, list) {
> + ret = arch_setup_msi_irq(msi, entry);
> if (ret < 0)
>...
2014 Aug 20
1
[RFC PATCH 09/11] PCI/MSI: refactor PCI MSI driver
..._irqs(struct pci_dev *dev, int nvec, int type)
> +int __weak arch_setup_msi_irqs(struct msi_irqs *msi, int nvec, int type)
> {
> struct msi_desc *entry;
> int ret;
> @@ -78,8 +80,8 @@ int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec,
> int type)
> if (type == MSI_TYPE && nvec > 1)
> return 1;
>
> - list_for_each_entry(entry, &dev->msi_list, list) {
> - ret = arch_setup_msi_irq(dev, entry);
> + list_for_each_entry(entry, &msi->msi_list, list) {
> + ret = arch_setup_msi_irq(msi, entry);
> if (ret < 0)
>...
2014 Jul 26
0
[RFC PATCH 09/11] PCI/MSI: refactor PCI MSI driver
...e);
}
-int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+int __weak arch_setup_msi_irqs(struct msi_irqs *msi, int nvec, int type)
{
struct msi_desc *entry;
int ret;
@@ -78,8 +80,8 @@ int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
if (type == MSI_TYPE && nvec > 1)
return 1;
- list_for_each_entry(entry, &dev->msi_list, list) {
- ret = arch_setup_msi_irq(dev, entry);
+ list_for_each_entry(entry, &msi->msi_list, list) {
+ ret = arch_setup_msi_irq(msi, entry);
if (ret < 0)
return ret;
if (ret > 0)
@@ -...
2014 Aug 20
1
[RFC PATCH 10/11] PCI/MSI: Split the generic MSI code into new file
...gt; +
> +int __weak arch_setup_msi_irqs(struct msi_irqs *msi, int nvec, int type)
> +{
> + struct msi_desc *entry;
> + int ret;
> +
> + /*
> + * If an architecture wants to support multiple MSI, it needs to
> + * override arch_setup_msi_irqs()
> + */
> + if (type == MSI_TYPE && nvec > 1)
> + return 1;
> +
> + list_for_each_entry(entry, &msi->msi_list, list) {
> + ret = arch_setup_msi_irq(msi, entry);
> + if (ret < 0)
> + return ret;
> + if (ret > 0)
> + return -ENOSPC;
> + }
> + return 0;
> +}
> +
>...
2014 Aug 20
1
[RFC PATCH 10/11] PCI/MSI: Split the generic MSI code into new file
...gt; +
> +int __weak arch_setup_msi_irqs(struct msi_irqs *msi, int nvec, int type)
> +{
> + struct msi_desc *entry;
> + int ret;
> +
> + /*
> + * If an architecture wants to support multiple MSI, it needs to
> + * override arch_setup_msi_irqs()
> + */
> + if (type == MSI_TYPE && nvec > 1)
> + return 1;
> +
> + list_for_each_entry(entry, &msi->msi_list, list) {
> + ret = arch_setup_msi_irq(msi, entry);
> + if (ret < 0)
> + return ret;
> + if (ret > 0)
> + return -ENOSPC;
> + }
> + return 0;
> +}
> +
>...
2014 Jul 26
0
[RFC PATCH 10/11] PCI/MSI: Split the generic MSI code into new file
...turn chip->check_device(chip, dev, nvec, type);
+}
+
+int __weak arch_setup_msi_irqs(struct msi_irqs *msi, int nvec, int type)
+{
+ struct msi_desc *entry;
+ int ret;
+
+ /*
+ * If an architecture wants to support multiple MSI, it needs to
+ * override arch_setup_msi_irqs()
+ */
+ if (type == MSI_TYPE && nvec > 1)
+ return 1;
+
+ list_for_each_entry(entry, &msi->msi_list, list) {
+ ret = arch_setup_msi_irq(msi, entry);
+ if (ret < 0)
+ return ret;
+ if (ret > 0)
+ return -ENOSPC;
+ }
+ return 0;
+}
+
+
+void __weak arch_teardown_msi_irqs(struct msi_irqs *msi)
+{
+...
2014 Aug 05
1
[RFC PATCH 03/11] PCI/MSI: Refactor pci_dev_msi_enabled()
...suuport
> checking only device MSI or MSIX enabled.
>
> Signed-off-by: Yijing Wang <wangyijing at huawei.com>
So this patch refactors things so that checks like this:
> - if (!dev->msi_enabled)
are moved into a function:
> + if (!pci_dev_msi_enabled(dev, MSI_TYPE))
Can you explain a bit more why this needed. Is it just cleanup?
Thanks,
Stuart
2014 Aug 05
1
[RFC PATCH 03/11] PCI/MSI: Refactor pci_dev_msi_enabled()
...suuport
> checking only device MSI or MSIX enabled.
>
> Signed-off-by: Yijing Wang <wangyijing at huawei.com>
So this patch refactors things so that checks like this:
> - if (!dev->msi_enabled)
are moved into a function:
> + if (!pci_dev_msi_enabled(dev, MSI_TYPE))
Can you explain a bit more why this needed. Is it just cleanup?
Thanks,
Stuart
2014 Aug 20
1
[RFC PATCH 11/11] x86/MSI: Refactor x86 MSI code
...v, int nvec, int type)
> +int native_setup_msi_irqs(struct msi_irqs *msi, int nvec, int type)
> {
> struct msi_desc *msidesc;
> unsigned int irq;
> - int node, ret;
> + int ret;
>
> /* Multiple MSI vectors only supported with interrupt remapping */
> if (type == MSI_TYPE && nvec > 1)
> return 1;
>
> - node = dev_to_node(&dev->dev);
> -
> - list_for_each_entry(msidesc, &dev->msi_list, list) {
> - irq = irq_alloc_hwirq(node);
> + list_for_each_entry(msidesc, &msi->msi_list, list) {
> + irq = irq_alloc_hwir...
2014 Aug 20
1
[RFC PATCH 11/11] x86/MSI: Refactor x86 MSI code
...v, int nvec, int type)
> +int native_setup_msi_irqs(struct msi_irqs *msi, int nvec, int type)
> {
> struct msi_desc *msidesc;
> unsigned int irq;
> - int node, ret;
> + int ret;
>
> /* Multiple MSI vectors only supported with interrupt remapping */
> if (type == MSI_TYPE && nvec > 1)
> return 1;
>
> - node = dev_to_node(&dev->dev);
> -
> - list_for_each_entry(msidesc, &dev->msi_list, list) {
> - irq = irq_alloc_hwirq(node);
> + list_for_each_entry(msidesc, &msi->msi_list, list) {
> + irq = irq_alloc_hwir...
2014 Jul 26
0
[RFC PATCH 11/11] x86/MSI: Refactor x86 MSI code
...int native_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+int native_setup_msi_irqs(struct msi_irqs *msi, int nvec, int type)
{
struct msi_desc *msidesc;
unsigned int irq;
- int node, ret;
+ int ret;
/* Multiple MSI vectors only supported with interrupt remapping */
if (type == MSI_TYPE && nvec > 1)
return 1;
- node = dev_to_node(&dev->dev);
-
- list_for_each_entry(msidesc, &dev->msi_list, list) {
- irq = irq_alloc_hwirq(node);
+ list_for_each_entry(msidesc, &msi->msi_list, list) {
+ irq = irq_alloc_hwirq(msi->node);
if (!irq)
retur...