scsi: ibmvscsi: redo driver work thread to use enum action states
[linux-2.6-microblaze.git] / include / linux / msi.h
index 052f04f..d48e919 100644 (file)
@@ -47,6 +47,14 @@ struct fsl_mc_msi_desc {
        u16                             msi_index;
 };
 
+/**
+ * ti_sci_inta_msi_desc - TISCI based INTA specific msi descriptor data
+ * @dev_index: TISCI device index
+ */
+struct ti_sci_inta_msi_desc {
+       u16     dev_index;
+};
+
 /**
  * struct msi_desc - Descriptor structure for MSI based interrupts
  * @list:      List head for management
@@ -68,6 +76,7 @@ struct fsl_mc_msi_desc {
  * @mask_base: [PCI MSI-X] Mask register base address
  * @platform:  [platform]  Platform device specific msi descriptor data
  * @fsl_mc:    [fsl-mc]    FSL MC device specific msi descriptor data
+ * @inta:      [INTA]      TISCI based INTA specific msi descriptor data
  */
 struct msi_desc {
        /* Shared device/bus type independent data */
@@ -77,6 +86,9 @@ struct msi_desc {
        struct device                   *dev;
        struct msi_msg                  msg;
        struct irq_affinity_desc        *affinity;
+#ifdef CONFIG_IRQ_MSI_IOMMU
+       const void                      *iommu_cookie;
+#endif
 
        union {
                /* PCI MSI/X specific data */
@@ -106,6 +118,7 @@ struct msi_desc {
                 */
                struct platform_msi_desc platform;
                struct fsl_mc_msi_desc fsl_mc;
+               struct ti_sci_inta_msi_desc inta;
        };
 };
 
@@ -119,6 +132,29 @@ struct msi_desc {
 #define for_each_msi_entry_safe(desc, tmp, dev)        \
        list_for_each_entry_safe((desc), (tmp), dev_to_msi_list((dev)), list)
 
+#ifdef CONFIG_IRQ_MSI_IOMMU
+static inline const void *msi_desc_get_iommu_cookie(struct msi_desc *desc)
+{
+       return desc->iommu_cookie;
+}
+
+static inline void msi_desc_set_iommu_cookie(struct msi_desc *desc,
+                                            const void *iommu_cookie)
+{
+       desc->iommu_cookie = iommu_cookie;
+}
+#else
+static inline const void *msi_desc_get_iommu_cookie(struct msi_desc *desc)
+{
+       return NULL;
+}
+
+static inline void msi_desc_set_iommu_cookie(struct msi_desc *desc,
+                                            const void *iommu_cookie)
+{
+}
+#endif
+
 #ifdef CONFIG_PCI_MSI
 #define first_pci_msi_entry(pdev)      first_msi_entry(&(pdev)->dev)
 #define for_each_pci_msi_entry(desc, pdev)     \