Merge branch 'pci/lpc'
[muen/linux.git] / include / linux / pci.h
index be686fd87abb1e4d445c6c00f2c8c36e551e8475..df9fc9d4de818ccf6af1e49e5fd9ecafe6f67d29 100644 (file)
@@ -256,6 +256,7 @@ enum pci_bus_speed {
        PCIE_SPEED_2_5GT                = 0x14,
        PCIE_SPEED_5_0GT                = 0x15,
        PCIE_SPEED_8_0GT                = 0x16,
+       PCIE_SPEED_16_0GT               = 0x17,
        PCI_SPEED_UNKNOWN               = 0xff,
 };
 
@@ -949,11 +950,6 @@ struct pci_dev *pci_get_subsys(unsigned int vendor, unsigned int device,
 struct pci_dev *pci_get_slot(struct pci_bus *bus, unsigned int devfn);
 struct pci_dev *pci_get_domain_bus_and_slot(int domain, unsigned int bus,
                                            unsigned int devfn);
-static inline struct pci_dev *pci_get_bus_and_slot(unsigned int bus,
-                                                  unsigned int devfn)
-{
-       return pci_get_domain_bus_and_slot(0, bus, devfn);
-}
 struct pci_dev *pci_get_class(unsigned int class, struct pci_dev *from);
 int pci_dev_present(const struct pci_device_id *ids);
 
@@ -1082,6 +1078,10 @@ int pcie_get_mps(struct pci_dev *dev);
 int pcie_set_mps(struct pci_dev *dev, int mps);
 int pcie_get_minimum_link(struct pci_dev *dev, enum pci_bus_speed *speed,
                          enum pcie_link_width *width);
+u32 pcie_bandwidth_available(struct pci_dev *dev, struct pci_dev **limiting_dev,
+                            enum pci_bus_speed *speed,
+                            enum pcie_link_width *width);
+void pcie_print_link_status(struct pci_dev *dev);
 void pcie_flr(struct pci_dev *dev);
 int __pci_reset_function_locked(struct pci_dev *dev);
 int pci_reset_function(struct pci_dev *dev);
@@ -1662,9 +1662,6 @@ static inline struct pci_bus *pci_find_next_bus(const struct pci_bus *from)
 static inline struct pci_dev *pci_get_slot(struct pci_bus *bus,
                                                unsigned int devfn)
 { return NULL; }
-static inline struct pci_dev *pci_get_bus_and_slot(unsigned int bus,
-                                               unsigned int devfn)
-{ return NULL; }
 static inline struct pci_dev *pci_get_domain_bus_and_slot(int domain,
                                        unsigned int bus, unsigned int devfn)
 { return NULL; }
@@ -2281,41 +2278,9 @@ static inline bool pci_is_thunderbolt_attached(struct pci_dev *pdev)
        return false;
 }
 
-/**
- * pci_uevent_ers - emit a uevent during recovery path of pci device
- * @pdev: pci device to check
- * @err_type: type of error event
- *
- */
-static inline void pci_uevent_ers(struct pci_dev *pdev,
-                                 enum  pci_ers_result err_type)
-{
-       int idx = 0;
-       char *envp[3];
-
-       switch (err_type) {
-       case PCI_ERS_RESULT_NONE:
-       case PCI_ERS_RESULT_CAN_RECOVER:
-               envp[idx++] = "ERROR_EVENT=BEGIN_RECOVERY";
-               envp[idx++] = "DEVICE_ONLINE=0";
-               break;
-       case PCI_ERS_RESULT_RECOVERED:
-               envp[idx++] = "ERROR_EVENT=SUCCESSFUL_RECOVERY";
-               envp[idx++] = "DEVICE_ONLINE=1";
-               break;
-       case PCI_ERS_RESULT_DISCONNECT:
-               envp[idx++] = "ERROR_EVENT=FAILED_RECOVERY";
-               envp[idx++] = "DEVICE_ONLINE=0";
-               break;
-       default:
-               break;
-       }
-
-       if (idx > 0) {
-               envp[idx++] = NULL;
-               kobject_uevent_env(&pdev->dev.kobj, KOBJ_CHANGE, envp);
-       }
-}
+#if defined(CONFIG_PCIEAER) || defined(CONFIG_EEH)
+void pci_uevent_ers(struct pci_dev *pdev, enum  pci_ers_result err_type);
+#endif
 
 /* Provide the legacy pci_dma_* API */
 #include <linux/pci-dma-compat.h>