Displaying 17 results from an estimated 17 matches for "msix_setup_entries".
2014 Aug 20
1
[RFC PATCH 10/11] PCI/MSI: Split the generic MSI code into new file
...ry_nr = 0;
> +
> + if (!msi->ops || !msi->ops->msi_setup_entry) {
> + kfree(entry);
> + return NULL;
> + }
Can we move this check at the start of the function?
> +
> + msi->ops->msi_setup_entry(msi, entry);
> + return entry;
> +}
> +
> +static int msix_setup_entries(struct msi_irqs *msi, void __iomem *base,
> + struct msix_entry *entries, int nvec)
> +{
> + struct msi_desc *entry;
> + int i;
> +
> + for (i = 0; i < nvec; i++) {
> + entry = alloc_msi_entry(msi);
> + if (!entry) {
> + if (!i)
> + iounmap(base);
>...
2014 Aug 20
1
[RFC PATCH 10/11] PCI/MSI: Split the generic MSI code into new file
...ry_nr = 0;
> +
> + if (!msi->ops || !msi->ops->msi_setup_entry) {
> + kfree(entry);
> + return NULL;
> + }
Can we move this check at the start of the function?
> +
> + msi->ops->msi_setup_entry(msi, entry);
> + return entry;
> +}
> +
> +static int msix_setup_entries(struct msi_irqs *msi, void __iomem *base,
> + struct msix_entry *entries, int nvec)
> +{
> + struct msi_desc *entry;
> + int i;
> +
> + for (i = 0; i < nvec; i++) {
> + entry = alloc_msi_entry(msi);
> + if (!entry) {
> + if (!i)
> + iounmap(base);
>...
2014 Jul 26
0
[RFC PATCH 10/11] PCI/MSI: Split the generic MSI code into new file
...msi_entry(msi);
+ if (!entry)
+ return NULL;
+
+ entry->msi_attrib.is_msix = 0;
+ entry->msi_attrib.entry_nr = 0;
+
+ if (!msi->ops || !msi->ops->msi_setup_entry) {
+ kfree(entry);
+ return NULL;
+ }
+
+ msi->ops->msi_setup_entry(msi, entry);
+ return entry;
+}
+
+static int msix_setup_entries(struct msi_irqs *msi, void __iomem *base,
+ struct msix_entry *entries, int nvec)
+{
+ struct msi_desc *entry;
+ int i;
+
+ for (i = 0; i < nvec; i++) {
+ entry = alloc_msi_entry(msi);
+ if (!entry) {
+ if (!i)
+ iounmap(base);
+ else
+ free_msi_irqs(msi);
+ /* No enough me...
2014 Aug 20
1
[RFC PATCH 09/11] PCI/MSI: refactor PCI MSI driver
...; static void __iomem *msix_map_region(struct pci_dev *dev, unsigned nr_entries)
> @@ -668,19 +699,20 @@ static void __iomem *msix_map_region(struct pci_dev *dev,
> unsigned nr_entries)
> return ioremap_nocache(phys_addr, nr_entries * PCI_MSIX_ENTRY_SIZE);
> }
>
> -static int msix_setup_entries(struct pci_dev *dev, void __iomem *base,
> +static int msix_setup_entries(struct msi_irqs *msi, void __iomem *base,
> struct msix_entry *entries, int nvec)
> {
> struct msi_desc *entry;
> int i, offset;
> + struct pci_dev *dev = msi->data;
>
> for (i = 0...
2014 Aug 20
1
[RFC PATCH 09/11] PCI/MSI: refactor PCI MSI driver
...; static void __iomem *msix_map_region(struct pci_dev *dev, unsigned nr_entries)
> @@ -668,19 +699,20 @@ static void __iomem *msix_map_region(struct pci_dev *dev,
> unsigned nr_entries)
> return ioremap_nocache(phys_addr, nr_entries * PCI_MSIX_ENTRY_SIZE);
> }
>
> -static int msix_setup_entries(struct pci_dev *dev, void __iomem *base,
> +static int msix_setup_entries(struct msi_irqs *msi, void __iomem *base,
> struct msix_entry *entries, int nvec)
> {
> struct msi_desc *entry;
> int i, offset;
> + struct pci_dev *dev = msi->data;
>
> for (i = 0...
2014 Jul 26
0
[RFC PATCH 09/11] PCI/MSI: refactor PCI MSI driver
..._irqs(msi);
+ return ret;
}
static void __iomem *msix_map_region(struct pci_dev *dev, unsigned nr_entries)
@@ -668,19 +699,20 @@ static void __iomem *msix_map_region(struct pci_dev *dev, unsigned nr_entries)
return ioremap_nocache(phys_addr, nr_entries * PCI_MSIX_ENTRY_SIZE);
}
-static int msix_setup_entries(struct pci_dev *dev, void __iomem *base,
+static int msix_setup_entries(struct msi_irqs *msi, void __iomem *base,
struct msix_entry *entries, int nvec)
{
struct msi_desc *entry;
int i, offset;
+ struct pci_dev *dev = msi->data;
for (i = 0; i < nvec; i++) {
- entry = alloc_...
2014 Jul 26
20
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
.../
struct msi_ops *ops; /* MSI device specific hook */
};
struct msi_irqs is 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...
2014 Jul 26
20
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
.../
struct msi_ops *ops; /* MSI device specific hook */
};
struct msi_irqs is 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...
2014 Jul 26
0
[RFC PATCH 01/11] PCI/MSI: Use pci_dev->msi_cap instead of msi_desc->msi_attrib.pos
...PCI_MSI_FLAGS_MASKBIT);
entry->msi_attrib.default_irq = dev->irq; /* Save IOAPIC IRQ */
- entry->msi_attrib.pos = dev->msi_cap;
entry->msi_attrib.multi_cap = (control & PCI_MSI_FLAGS_QMASK) >> 1;
if (control & PCI_MSI_FLAGS_64BIT)
@@ -699,7 +698,6 @@ static int msix_setup_entries(struct pci_dev *dev, void __iomem *base,
entry->msi_attrib.is_64 = 1;
entry->msi_attrib.entry_nr = entries[i].entry;
entry->msi_attrib.default_irq = dev->irq;
- entry->msi_attrib.pos = dev->msix_cap;
entry->mask_base = base;
list_add_tail(&entry->lis...
2014 Jul 29
0
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...ly, but those plans have existed for
a long time already without anybody seriously addressing 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 (*...
2014 Jul 30
0
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...is is a huge work, now hundreds drivers use the IRQ 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...
2014 Jul 30
4
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...ight never really happen.
>
Maybe this is a huge work, now hundreds drivers use the IRQ 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);
>>...
2014 Jul 30
4
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...ight never really happen.
>
Maybe this is a huge work, now hundreds drivers use the IRQ 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);
>>...
2014 Jul 30
1
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...>
> Maybe this is a huge work, now hundreds drivers use the IRQ 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 *ms...
2014 Jul 30
1
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...>
> Maybe this is a huge work, now hundreds drivers use the IRQ 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 *ms...
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-