diff --git a/core/cds/src/cds_api.c b/core/cds/src/cds_api.c index 49282e464e9a..4f939163992f 100644 --- a/core/cds/src/cds_api.c +++ b/core/cds/src/cds_api.c @@ -184,6 +184,22 @@ static bool cds_is_drv_connected(void) return ((ret > 0) ? true : false); } +static bool cds_is_drv_supported(void) +{ + qdf_device_t qdf_ctx; + struct pld_platform_cap cap = {0}; + + qdf_ctx = cds_get_context(QDF_MODULE_ID_QDF_DEVICE); + if (!qdf_ctx) { + cds_err("cds context is invalid"); + return false; + } + + pld_get_platform_cap(qdf_ctx->dev, &cap); + + return ((cap.cap_flag & PLD_HAS_DRV_SUPPORT) ? true : false); +} + static QDF_STATUS cds_wmi_send_recv_qmi(void *buf, uint32_t len, void * cb_ctx, qdf_wmi_recv_qmi_cb wmi_rx_cb) { @@ -222,6 +238,7 @@ QDF_STATUS cds_init(void) qdf_register_is_driver_unloading_callback(cds_is_driver_unloading); qdf_register_recovering_state_query_callback(cds_is_driver_recovering); qdf_register_drv_connected_callback(cds_is_drv_connected); + qdf_register_drv_supported_callback(cds_is_drv_supported); qdf_register_wmi_send_recv_qmi_callback(cds_wmi_send_recv_qmi); return QDF_STATUS_SUCCESS;