]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/pci/pcie/aer/aerdrv.h
PCI: PCIE AER: export aer_irq
[mv-sheeva.git] / drivers / pci / pcie / aer / aerdrv.h
index 5cca394d59993b14cdd2549781ea4aafe70648cc..3a69ddefe361eabae7457763e636618d6cd69741 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/workqueue.h>
 #include <linux/pcieport_if.h>
 #include <linux/aer.h>
+#include <linux/interrupt.h>
 
 #define AER_NONFATAL                   0
 #define AER_FATAL                      1
 #define AER_ERROR_MASK                 0x001fffff
 #define AER_ERROR(d)                   (d & AER_ERROR_MASK)
 
-#define OSC_METHOD_RUN_SUCCESS         0
-#define OSC_METHOD_NOT_SUPPORTED       1
-#define OSC_METHOD_RUN_FAILURE         2
-
 /* Root Error Status Register Bits */
 #define ROOT_ERR_STATUS_MASKS                  0x0f
 
@@ -99,6 +96,9 @@ struct aer_broadcast_data {
 static inline pci_ers_result_t merge_result(enum pci_ers_result orig,
                enum pci_ers_result new)
 {
+       if (new == PCI_ERS_RESULT_NONE)
+               return orig;
+
        switch (orig) {
        case PCI_ERS_RESULT_CAN_RECOVER:
        case PCI_ERS_RESULT_RECOVERED:
@@ -121,6 +121,15 @@ extern void aer_delete_rootport(struct aer_rpc *rpc);
 extern int aer_init(struct pcie_device *dev);
 extern void aer_isr(struct work_struct *work);
 extern void aer_print_error(struct pci_dev *dev, struct aer_err_info *info);
-extern int aer_osc_setup(struct pci_dev *dev);
+extern irqreturn_t aer_irq(int irq, void *context);
+
+#ifdef CONFIG_ACPI
+extern int aer_osc_setup(struct pcie_device *pciedev);
+#else
+static inline int aer_osc_setup(struct pcie_device *pciedev)
+{
+       return 0;
+}
+#endif
 
 #endif //_AERDRV_H_