aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/controller/dwc/pcie-designware.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pci/controller/dwc/pcie-designware.h')
-rw-r--r--drivers/pci/controller/dwc/pcie-designware.h29
1 files changed, 17 insertions, 12 deletions
diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h
index bee4e2535a61..96126fd8403c 100644
--- a/drivers/pci/controller/dwc/pcie-designware.h
+++ b/drivers/pci/controller/dwc/pcie-designware.h
@@ -96,17 +96,6 @@
96#define PCIE_GET_ATU_INB_UNR_REG_OFFSET(region) \ 96#define PCIE_GET_ATU_INB_UNR_REG_OFFSET(region) \
97 ((0x3 << 20) | ((region) << 9) | (0x1 << 8)) 97 ((0x3 << 20) | ((region) << 9) | (0x1 << 8))
98 98
99#define MSI_MESSAGE_CONTROL 0x52
100#define MSI_CAP_MMC_SHIFT 1
101#define MSI_CAP_MMC_MASK (7 << MSI_CAP_MMC_SHIFT)
102#define MSI_CAP_MME_SHIFT 4
103#define MSI_CAP_MSI_EN_MASK 0x1
104#define MSI_CAP_MME_MASK (7 << MSI_CAP_MME_SHIFT)
105#define MSI_MESSAGE_ADDR_L32 0x54
106#define MSI_MESSAGE_ADDR_U32 0x58
107#define MSI_MESSAGE_DATA_32 0x58
108#define MSI_MESSAGE_DATA_64 0x5C
109
110#define MAX_MSI_IRQS 256 99#define MAX_MSI_IRQS 256
111#define MAX_MSI_IRQS_PER_CTRL 32 100#define MAX_MSI_IRQS_PER_CTRL 32
112#define MAX_MSI_CTRLS (MAX_MSI_IRQS / MAX_MSI_IRQS_PER_CTRL) 101#define MAX_MSI_CTRLS (MAX_MSI_IRQS / MAX_MSI_IRQS_PER_CTRL)
@@ -191,7 +180,7 @@ enum dw_pcie_as_type {
191struct dw_pcie_ep_ops { 180struct dw_pcie_ep_ops {
192 void (*ep_init)(struct dw_pcie_ep *ep); 181 void (*ep_init)(struct dw_pcie_ep *ep);
193 int (*raise_irq)(struct dw_pcie_ep *ep, u8 func_no, 182 int (*raise_irq)(struct dw_pcie_ep *ep, u8 func_no,
194 enum pci_epc_irq_type type, u8 interrupt_num); 183 enum pci_epc_irq_type type, u16 interrupt_num);
195}; 184};
196 185
197struct dw_pcie_ep { 186struct dw_pcie_ep {
@@ -208,6 +197,8 @@ struct dw_pcie_ep {
208 u32 num_ob_windows; 197 u32 num_ob_windows;
209 void __iomem *msi_mem; 198 void __iomem *msi_mem;
210 phys_addr_t msi_mem_phys; 199 phys_addr_t msi_mem_phys;
200 u8 msi_cap; /* MSI capability offset */
201 u8 msix_cap; /* MSI-X capability offset */
211}; 202};
212 203
213struct dw_pcie_ops { 204struct dw_pcie_ops {
@@ -357,8 +348,11 @@ static inline int dw_pcie_allocate_domains(struct pcie_port *pp)
357void dw_pcie_ep_linkup(struct dw_pcie_ep *ep); 348void dw_pcie_ep_linkup(struct dw_pcie_ep *ep);
358int dw_pcie_ep_init(struct dw_pcie_ep *ep); 349int dw_pcie_ep_init(struct dw_pcie_ep *ep);
359void dw_pcie_ep_exit(struct dw_pcie_ep *ep); 350void dw_pcie_ep_exit(struct dw_pcie_ep *ep);
351int dw_pcie_ep_raise_legacy_irq(struct dw_pcie_ep *ep, u8 func_no);
360int dw_pcie_ep_raise_msi_irq(struct dw_pcie_ep *ep, u8 func_no, 352int dw_pcie_ep_raise_msi_irq(struct dw_pcie_ep *ep, u8 func_no,
361 u8 interrupt_num); 353 u8 interrupt_num);
354int dw_pcie_ep_raise_msix_irq(struct dw_pcie_ep *ep, u8 func_no,
355 u16 interrupt_num);
362void dw_pcie_ep_reset_bar(struct dw_pcie *pci, enum pci_barno bar); 356void dw_pcie_ep_reset_bar(struct dw_pcie *pci, enum pci_barno bar);
363#else 357#else
364static inline void dw_pcie_ep_linkup(struct dw_pcie_ep *ep) 358static inline void dw_pcie_ep_linkup(struct dw_pcie_ep *ep)
@@ -374,12 +368,23 @@ static inline void dw_pcie_ep_exit(struct dw_pcie_ep *ep)
374{ 368{
375} 369}
376 370
371static inline int dw_pcie_ep_raise_legacy_irq(struct dw_pcie_ep *ep, u8 func_no)
372{
373 return 0;
374}
375
377static inline int dw_pcie_ep_raise_msi_irq(struct dw_pcie_ep *ep, u8 func_no, 376static inline int dw_pcie_ep_raise_msi_irq(struct dw_pcie_ep *ep, u8 func_no,
378 u8 interrupt_num) 377 u8 interrupt_num)
379{ 378{
380 return 0; 379 return 0;
381} 380}
382 381
382static inline int dw_pcie_ep_raise_msix_irq(struct dw_pcie_ep *ep, u8 func_no,
383 u16 interrupt_num)
384{
385 return 0;
386}
387
383static inline void dw_pcie_ep_reset_bar(struct dw_pcie *pci, enum pci_barno bar) 388static inline void dw_pcie_ep_reset_bar(struct dw_pcie *pci, enum pci_barno bar)
384{ 389{
385} 390}