Displaying 17 results from an estimated 17 matches for "msi_setup_entry".
2014 Aug 20
1
[RFC PATCH 10/11] PCI/MSI: Split the generic MSI code into new file
...->msix_enabled)
> + return;
> +
> + list_for_each_entry(entry, &msi->msi_list, list)
> + arch_msix_mask_irq(entry, 1);
> +
> + msi_set_enable(msi, 0, MSIX_TYPE);
> + msi_set_intx(msi, 1);
> + msi->msix_enabled = 0;
> +}
> +
> +static struct msi_desc * msi_setup_entry(struct msi_irqs *msi)
> +{
> + struct msi_desc *entry;
> +
> + entry = alloc_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_ent...
2014 Aug 20
1
[RFC PATCH 10/11] PCI/MSI: Split the generic MSI code into new file
...->msix_enabled)
> + return;
> +
> + list_for_each_entry(entry, &msi->msi_list, list)
> + arch_msix_mask_irq(entry, 1);
> +
> + msi_set_enable(msi, 0, MSIX_TYPE);
> + msi_set_intx(msi, 1);
> + msi->msix_enabled = 0;
> +}
> +
> +static struct msi_desc * msi_setup_entry(struct msi_irqs *msi)
> +{
> + struct msi_desc *entry;
> +
> + entry = alloc_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_ent...
2014 Jul 26
0
[RFC PATCH 10/11] PCI/MSI: Split the generic MSI code into new file
...*msi)
+{
+ struct msi_desc *entry;
+
+ if (!msi || !msi->msix_enabled)
+ return;
+
+ list_for_each_entry(entry, &msi->msi_list, list)
+ arch_msix_mask_irq(entry, 1);
+
+ msi_set_enable(msi, 0, MSIX_TYPE);
+ msi_set_intx(msi, 1);
+ msi->msix_enabled = 0;
+}
+
+static struct msi_desc * msi_setup_entry(struct msi_irqs *msi)
+{
+ struct msi_desc *entry;
+
+ entry = alloc_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->...
2014 Aug 20
1
[RFC PATCH 09/11] PCI/MSI: refactor PCI MSI driver
...{
> + list_for_each_entry(entry, &pdev->msi->msi_list, list) {
> msi_dev_attr = kzalloc(sizeof(*msi_dev_attr), GFP_KERNEL);
> if (!msi_dev_attr)
> goto error_attrs;
> @@ -578,13 +606,14 @@ error_attrs:
> return ret;
> }
>
> -static struct msi_desc *msi_setup_entry(struct pci_dev *dev)
> +static struct msi_desc *msi_setup_entry(struct msi_irqs *msi)
> {
> u16 control;
> struct msi_desc *entry;
> + struct pci_dev *dev = msi->data;
>
> /* MSI Entry Initialization */
> - entry = alloc_msi_entry(dev);
> + entry = alloc_msi_en...
2014 Aug 20
1
[RFC PATCH 09/11] PCI/MSI: refactor PCI MSI driver
...{
> + list_for_each_entry(entry, &pdev->msi->msi_list, list) {
> msi_dev_attr = kzalloc(sizeof(*msi_dev_attr), GFP_KERNEL);
> if (!msi_dev_attr)
> goto error_attrs;
> @@ -578,13 +606,14 @@ error_attrs:
> return ret;
> }
>
> -static struct msi_desc *msi_setup_entry(struct pci_dev *dev)
> +static struct msi_desc *msi_setup_entry(struct msi_irqs *msi)
> {
> u16 control;
> struct msi_desc *entry;
> + struct pci_dev *dev = msi->data;
>
> /* MSI Entry Initialization */
> - entry = alloc_msi_entry(dev);
> + entry = alloc_msi_en...
2014 Jul 26
0
[RFC PATCH 09/11] PCI/MSI: refactor PCI MSI driver
..._entry(entry, &pdev->msi_list, list) {
+ list_for_each_entry(entry, &pdev->msi->msi_list, list) {
msi_dev_attr = kzalloc(sizeof(*msi_dev_attr), GFP_KERNEL);
if (!msi_dev_attr)
goto error_attrs;
@@ -578,13 +606,14 @@ error_attrs:
return ret;
}
-static struct msi_desc *msi_setup_entry(struct pci_dev *dev)
+static struct msi_desc *msi_setup_entry(struct msi_irqs *msi)
{
u16 control;
struct msi_desc *entry;
+ struct pci_dev *dev = msi->data;
/* MSI Entry Initialization */
- entry = alloc_msi_entry(dev);
+ entry = alloc_msi_entry(msi);
if (!entry)
return NULL;
@@...
2014 Jul 26
20
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...st; /* MSI desc list */
void *data; /* help to find the MSI 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...
2014 Jul 26
20
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...st; /* MSI desc list */
void *data; /* help to find the MSI 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...
2014 Jul 26
0
[RFC PATCH 01/11] PCI/MSI: Use pci_dev->msi_cap instead of msi_desc->msi_attrib.pos
...v->msi_cap + PCI_MSI_FLAGS,
&msg_ctr);
msgvec = (msg_ctr&PCI_MSI_FLAGS_QSIZE) >> 4;
if (msgvec == 0)
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 5a40516..e67acd1 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -595,7 +595,6 @@ static struct msi_desc *msi_setup_entry(struct pci_dev *dev)
entry->msi_attrib.entry_nr = 0;
entry->msi_attrib.maskbit = !!(control & 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 &...
2014 Jul 29
0
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...q_desc'. Note that there are long-term plans to
get rid of IRQ numbers entirely, 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 (...
2014 Jul 30
0
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...r interfaces so far, so it might 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 *...
2014 Jul 30
4
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...ithout anybody seriously addressing the device
> driver interfaces so far, so it might 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);
>>...
2014 Jul 30
4
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...ithout anybody seriously addressing the device
> driver interfaces so far, so it might 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);
>>...
2014 Jul 30
1
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...the device
>> driver interfaces so far, so it might 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 fl...
2014 Jul 30
1
[RFC PATCH 00/11] Refactor MSI to support Non-PCI device
...the device
>> driver interfaces so far, so it might 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 fl...
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-