qcacld-3.0: Add PLD support for QMI Indication
Add PLD APIs to register callback for QMI Indication via CNSS2 Change-Id: I5a92250bf349b2b94e3ed74ed0b420f96c2c7461 CRs-Fixed: 3786384
This commit is contained in:

gecommit door
Ravindra Konda

bovenliggende
f6f3162846
commit
46a74af7d5
@@ -243,6 +243,20 @@ static QDF_STATUS cds_wmi_send_recv_qmi(void *buf, uint32_t len, void * cb_ctx,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static QDF_STATUS cds_qmi_indication(void *cb_ctx, qdf_qmi_ind_cb qmi_ind_cb)
|
||||
{
|
||||
qdf_device_t qdf_ctx;
|
||||
|
||||
qdf_ctx = cds_get_context(QDF_MODULE_ID_QDF_DEVICE);
|
||||
if (!qdf_ctx)
|
||||
return QDF_STATUS_E_INVAL;
|
||||
|
||||
if (pld_qmi_indication(qdf_ctx->dev, cb_ctx, qmi_ind_cb))
|
||||
return QDF_STATUS_E_INVAL;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* cds_update_recovery_reason() - update the recovery reason code
|
||||
* @recovery_reason: recovery reason
|
||||
@@ -332,6 +346,7 @@ QDF_STATUS cds_init(void)
|
||||
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);
|
||||
qdf_register_qmi_indication_callback(cds_qmi_indication);
|
||||
qdf_register_recovery_reason_update(cds_update_recovery_reason);
|
||||
qdf_register_get_bus_reg_dump(pld_get_bus_reg_dump);
|
||||
|
||||
@@ -365,6 +380,7 @@ void cds_deinit(void)
|
||||
qdf_register_is_driver_state_module_stop_callback(NULL);
|
||||
qdf_register_self_recovery_callback(NULL);
|
||||
qdf_register_wmi_send_recv_qmi_callback(NULL);
|
||||
qdf_register_qmi_indication_callback(NULL);
|
||||
|
||||
gp_cds_context->qdf_ctx = NULL;
|
||||
qdf_mem_zero(&g_qdf_ctx, sizeof(g_qdf_ctx));
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
@@ -1638,6 +1638,21 @@ int pld_qmi_send(struct device *dev, int type, void *cmd,
|
||||
int cmd_len, void *cb_ctx,
|
||||
int (*cb)(void *ctx, void *event, int event_len));
|
||||
|
||||
/**
|
||||
* pld_qmi_indication() - Send data request over QMI
|
||||
* @dev: device pointer
|
||||
* @cb_ctx: context pointer if any to pass back in callback
|
||||
* @cb: callback pointer to pass response back
|
||||
*
|
||||
* This API can be used to register for QMI events.
|
||||
*
|
||||
* Return: 0 if registration is successful
|
||||
* Non zero failure code for errors
|
||||
*/
|
||||
int pld_qmi_indication(struct device *dev, void *cb_ctx,
|
||||
int (*cb)(void *ctx, uint16_t type,
|
||||
void *event, int event_len));
|
||||
|
||||
/**
|
||||
* pld_is_fw_dump_skipped() - get fw dump skipped status.
|
||||
* @dev: device
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
@@ -2323,6 +2323,26 @@ int pld_qmi_send(struct device *dev, int type, void *cmd,
|
||||
}
|
||||
}
|
||||
|
||||
int pld_qmi_indication(struct device *dev, void *cb_ctx,
|
||||
int (*cb)(void *ctx, uint16_t type,
|
||||
void *event, int event_len))
|
||||
{
|
||||
enum pld_bus_type bus_type = pld_get_bus_type(dev);
|
||||
|
||||
switch (bus_type) {
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
return pld_pcie_register_qmi_ind(dev, cb_ctx, cb);
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
case PLD_BUS_TYPE_SDIO:
|
||||
case PLD_BUS_TYPE_USB:
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
return -EINVAL;
|
||||
default:
|
||||
pr_err("Invalid device type %d\n", bus_type);
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
bool pld_is_fw_dump_skipped(struct device *dev)
|
||||
{
|
||||
bool ret = false;
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
@@ -451,6 +451,14 @@ pld_pcie_qmi_send(struct device *dev, int type, void *cmd,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static inline int
|
||||
pld_pcie_register_qmi_ind(struct device *dev, void *cb_ctx,
|
||||
int (*cb)(void *ctx, uint16_t type,
|
||||
void *event, int event_len))
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static inline int pld_pcie_get_user_msi_assignment(struct device *dev,
|
||||
char *user_name,
|
||||
int *num_vectors,
|
||||
@@ -623,6 +631,24 @@ pld_pcie_qmi_send(struct device *dev, int type, void *cmd,
|
||||
return cnss_qmi_send(dev, type, cmd, cmd_len, cb_ctx, cb);
|
||||
}
|
||||
|
||||
#ifdef WLAN_CHIPSET_STATS
|
||||
static inline int
|
||||
pld_pcie_register_qmi_ind(struct device *dev, void *cb_ctx,
|
||||
int (*cb)(void *ctx, uint16_t type,
|
||||
void *event, int event_len))
|
||||
{
|
||||
return cnss_register_driver_async_data_cb(dev, cb_ctx, cb);
|
||||
}
|
||||
#else
|
||||
static inline int
|
||||
pld_pcie_register_qmi_ind(struct device *dev, void *cb_ctx,
|
||||
int (*cb)(void *ctx, uint16_t type,
|
||||
void *event, int event_len))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0))
|
||||
static inline void *pld_pcie_smmu_get_domain(struct device *dev)
|
||||
{
|
||||
|
Verwijs in nieuw issue
Block a user