if ((${PRODUCT} STREQUAL ascend910) OR (${PRODUCT} STREQUAL ascend310p))
    if (${PRODUCT_SIDE} STREQUAL host)
        add_subdirectory(vhdc)
    endif ()
endif ()

if ((${PRODUCT} STREQUAL as31xm1) OR (${PRODUCT} STREQUAL ascend610Lite))
    set(drv_pcie_hdc_host_depends drv_pcie_host ascend_msg_chan_host)
	add_device_ko(LOCAL_MODULE drv_pcie_hdc_host
                  KO_SRC_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}
                  MAKE_ARGS ${MAKE_ARGS} PRODUCT_SIDE=host
                  TARGETE_DPENDS "${drv_pcie_hdc_host_depends}")

    set(drv_pcie_hdc_depends drv_pcie ascend_msg_chan asdrv_dms)
    list(APPEND drv_pcie_hdc_depends ${drv_mem_dfx_depend})
    add_device_ko(LOCAL_MODULE drv_pcie_hdc
                  KO_SRC_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}
                  MAKE_ARGS ${MAKE_ARGS} PRODUCT_SIDE=device
                  TARGETE_DPENDS "${drv_pcie_hdc_depends}")
elseif ((${PRODUCT} STREQUAL mc62cm12aesl) OR (${PRODUCT} STREQUAL mc62cm12a))
    set(asdrv_hdc_depends asdrv_xcom ascend_msg_chan_host)
	add_device_ko(LOCAL_MODULE asdrv_hdc
                  KO_SRC_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}
                  MAKE_ARGS ${MAKE_ARGS} PRODUCT_SIDE=host
                  TARGETE_DPENDS "${asdrv_hdc_depends}")
else ()
    set(product_list_ub "ascend950" "ascend950esl" "ascend910_55esl" "ascend910_55" "ascend910_55fpga" "ascend910_96" "ascend910_96esl")

    if (${PRODUCT_SIDE} STREQUAL host)
        set(product_list "ascend910" "ascend310p" "ascend910B")
        if (${PRODUCT} IN_LIST product_list_ub)
            set(drv_pcie_hdc_host_depends ascend_kernel_open_adapt)
        elseif (${PRODUCT} IN_LIST product_list)
            set(drv_pcie_hdc_host_depends drv_pcie_host drv_seclib_host asdrv_vmng asdrv_vpc asdrv_pbl ascend_kernel_open_adapt)
        else ()
            set(drv_pcie_hdc_host_depends drv_pcie_host drv_seclib_host asdrv_pbl ascend_kernel_open_adapt)
        endif ()

        add_host_ko(LOCAL_MODULE drv_pcie_hdc_host
            KO_SRC_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}
            MAKE_ARGS ${MAKE_ARGS} PRODUCT_SIDE=host
            TARGETE_DPENDS "${drv_pcie_hdc_host_depends}")
    endif ()

    if (${PRODUCT_SIDE} STREQUAL device)
        if (${PRODUCT} IN_LIST product_list_ub)
            set(drv_pcie_hdc_depends asdrv_pbl asdrv_esched ascend_kernel_open_adapt)
        else ()
            set(drv_pcie_hdc_depends asdrv_pbl drv_pcie asdrv_dms ascend_kernel_open_adapt)
        endif ()

        add_device_ko(LOCAL_MODULE drv_pcie_hdc
                    KO_SRC_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}
                    MAKE_ARGS ${MAKE_ARGS} PRODUCT_SIDE=device
                    TARGETE_DPENDS "${drv_pcie_hdc_depends}")
    endif ()
endif ()