forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-31 f70575805708cabdedea7498aaa3f710fde4d920
kernel/drivers/pci/pcie/portdrv.h
....@@ -20,13 +20,19 @@
2020 #define PCIE_PORT_SERVICE_HP (1 << PCIE_PORT_SERVICE_HP_SHIFT)
2121 #define PCIE_PORT_SERVICE_DPC_SHIFT 3 /* Downstream Port Containment */
2222 #define PCIE_PORT_SERVICE_DPC (1 << PCIE_PORT_SERVICE_DPC_SHIFT)
23
+#define PCIE_PORT_SERVICE_BWNOTIF_SHIFT 4 /* Bandwidth notification */
24
+#define PCIE_PORT_SERVICE_BWNOTIF (1 << PCIE_PORT_SERVICE_BWNOTIF_SHIFT)
2325
24
-#define PCIE_PORT_DEVICE_MAXSERVICES 4
26
+#define PCIE_PORT_DEVICE_MAXSERVICES 5
27
+
28
+extern bool pcie_ports_dpc_native;
2529
2630 #ifdef CONFIG_PCIEAER
2731 int pcie_aer_init(void);
32
+int pcie_aer_is_native(struct pci_dev *dev);
2833 #else
2934 static inline int pcie_aer_init(void) { return 0; }
35
+static inline int pcie_aer_is_native(struct pci_dev *dev) { return 0; }
3036 #endif
3137
3238 #ifdef CONFIG_HOTPLUG_PCI_PCIE
....@@ -71,17 +77,16 @@
7177
7278 struct pcie_port_service_driver {
7379 const char *name;
74
- int (*probe) (struct pcie_device *dev);
75
- void (*remove) (struct pcie_device *dev);
76
- int (*suspend) (struct pcie_device *dev);
77
- int (*resume_noirq) (struct pcie_device *dev);
78
- int (*resume) (struct pcie_device *dev);
80
+ int (*probe)(struct pcie_device *dev);
81
+ void (*remove)(struct pcie_device *dev);
82
+ int (*suspend)(struct pcie_device *dev);
83
+ int (*resume_noirq)(struct pcie_device *dev);
84
+ int (*resume)(struct pcie_device *dev);
85
+ int (*runtime_suspend)(struct pcie_device *dev);
86
+ int (*runtime_resume)(struct pcie_device *dev);
7987
8088 /* Device driver may resume normal operations */
8189 void (*error_resume)(struct pci_dev *dev);
82
-
83
- /* Link Reset Capability - AER service driver specific */
84
- pci_ers_result_t (*reset_link) (struct pci_dev *dev);
8590
8691 int port_type; /* Type of the port this driver can handle */
8792 u32 service; /* Port service this device represents */
....@@ -109,6 +114,8 @@
109114 int pcie_port_device_suspend(struct device *dev);
110115 int pcie_port_device_resume_noirq(struct device *dev);
111116 int pcie_port_device_resume(struct device *dev);
117
+int pcie_port_device_runtime_suspend(struct device *dev);
118
+int pcie_port_device_runtime_resume(struct device *dev);
112119 #endif
113120 void pcie_port_device_remove(struct pci_dev *dev);
114121 int __must_check pcie_port_bus_register(void);
....@@ -136,22 +143,5 @@
136143 static inline void pcie_pme_interrupt_enable(struct pci_dev *dev, bool en) {}
137144 #endif /* !CONFIG_PCIE_PME */
138145
139
-#ifdef CONFIG_ACPI_APEI
140
-int pcie_aer_get_firmware_first(struct pci_dev *pci_dev);
141
-#else
142
-static inline int pcie_aer_get_firmware_first(struct pci_dev *pci_dev)
143
-{
144
- if (pci_dev->__aer_firmware_first_valid)
145
- return pci_dev->__aer_firmware_first;
146
- return 0;
147
-}
148
-#endif
149
-
150
-#ifdef CONFIG_PCIEAER
151
-irqreturn_t aer_irq(int irq, void *context);
152
-#endif
153
-
154
-struct pcie_port_service_driver *pcie_port_find_service(struct pci_dev *dev,
155
- u32 service);
156146 struct device *pcie_port_find_device(struct pci_dev *dev, u32 service);
157147 #endif /* _PORTDRV_H_ */