瀏覽代碼

[DM/FIXUP] Fixup PCI build

1. Add PCI include in rtdevice.h
2. Fixup `RT_KEY_ENABLED` loss.
3. remove waring type of `dw_pcie_ep_get_func_from_ep` return.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
GuEe-GUI 4 月之前
父節點
當前提交
d248a3a288

+ 6 - 0
components/drivers/include/drivers/misc.h

@@ -34,6 +34,12 @@
             (((__x) - ((__d) / 2)) / (__d));    \
 })
 
+#define __KEY_PLACEHOLDER_1                     0,
+#define ____KEY_ENABLED(__ignored, val, ...)    val
+#define ___KEY_ENABLED(arg1_or_junk)            ____KEY_ENABLED(arg1_or_junk 1, 0)
+#define __KEY_ENABLED(value)                    ___KEY_ENABLED(__KEY_PLACEHOLDER_##value)
+#define RT_KEY_ENABLED(key)                     __KEY_ENABLED(key)
+
 #define RT_FIELD_PREP(mask, val)    (((rt_uint64_t)(val) << (__rt_ffsl((mask)) - 1)) & (mask))
 #define RT_FIELD_GET(mask, val)     (((val) & (mask)) >> (__rt_ffsl((mask)) - 1))
 

+ 10 - 0
components/drivers/include/rtdevice.h

@@ -89,6 +89,16 @@ extern "C" {
 #include "drivers/pic.h"
 #endif /* RT_USING_PIC */
 
+#ifdef RT_USING_PCI
+#include "drivers/pci.h"
+#ifdef RT_PCI_MSI
+#include "drivers/pci_msi.h"
+#endif /* RT_PCI_MSI */
+#ifdef RT_PCI_ENDPOINT
+#include "drivers/pci_endpoint.h"
+#endif /* RT_PCI_ENDPOINT */
+#endif /* RT_USING_PCI */
+
 #ifdef RT_USING_REGULATOR
 #include "drivers/regulator.h"
 #endif /* RT_USING_REGULATOR */

+ 1 - 1
components/drivers/pci/host/dw/pcie-dw.h

@@ -435,6 +435,6 @@ EP_API rt_err_t dw_pcie_ep_inbound_atu(struct dw_pcie_ep *ep, rt_uint8_t func_no
 EP_API rt_err_t dw_pcie_ep_outbound_atu(struct dw_pcie_ep *ep, rt_uint8_t func_no,
         rt_ubase_t phys_addr, rt_uint64_t pci_addr, rt_size_t size) EP_RET(-RT_ENOSYS)
 
-EP_API struct dw_pcie_ep_func *dw_pcie_ep_get_func_from_ep(struct dw_pcie_ep *ep, rt_uint8_t func_no) EP_RET()
+EP_API struct dw_pcie_ep_func *dw_pcie_ep_get_func_from_ep(struct dw_pcie_ep *ep, rt_uint8_t func_no) EP_RET(RT_NULL)
 
 #endif /* __PCIE_DESIGNWARE_H__ */