qcacmn: Enable mission mode through qmi signalling

Enable mission mode in fw through qmi signalling.

Change-Id: I539d7b8bb1f38b2cb526704c225bf4535fcc8543
CRs-Fixed: 2504541
This commit is contained in:
Jayachandran Sreekumaran
2019-05-15 13:45:31 +05:30
committed by nshrivas
parent a310bf4609
commit f24399cc78
3 changed files with 41 additions and 0 deletions

View File

@@ -37,6 +37,7 @@
#include "hif_sdio_dev.h"
#include "if_sdio.h"
#include "regtable_sdio.h"
#include <transfer/transfer.h>
#define ATH_MODULE_NAME hif_sdio
@@ -53,8 +54,16 @@ uint32_t hif_start(struct hif_opaque_softc *hif_ctx)
struct hif_sdio_softc *scn = HIF_GET_SDIO_SOFTC(hif_ctx);
struct hif_sdio_dev *hif_device = scn->hif_handle;
struct hif_sdio_device *htc_sdio_device = hif_dev_from_hif(hif_device);
struct hif_softc *hif_sc = HIF_GET_SOFTC(hif_ctx);
int ret = 0;
HIF_ENTER();
ret = hif_sdio_bus_configure(hif_sc);
if (ret) {
HIF_ERROR("%s: hif_sdio_bus_configure failed", __func__);
return QDF_STATUS_E_FAILURE;
}
hif_dev_enable_interrupts(htc_sdio_device);
HIF_EXIT();
return QDF_STATUS_SUCCESS;

View File

@@ -144,6 +144,30 @@ QDF_STATUS hif_dev_map_service_to_pipe(struct hif_sdio_dev *pdev, uint16_t svc,
return status;
}
/**
* hif_bus_configure() - configure the bus
* @hif_sc: pointer to the hif context.
*
* return: 0 for success. nonzero for failure.
*/
int hif_sdio_bus_configure(struct hif_softc *hif_sc)
{
struct pld_wlan_enable_cfg cfg;
enum pld_driver_mode mode;
uint32_t con_mode = hif_get_conparam(hif_sc);
if (con_mode == QDF_GLOBAL_FTM_MODE)
mode = PLD_FTM;
else if (con_mode == QDF_GLOBAL_COLDBOOT_CALIB_MODE)
mode = PLD_COLDBOOT_CALIBRATION;
else if (QDF_IS_EPPING_ENABLED(con_mode))
mode = PLD_EPPING;
else
mode = PLD_MISSION;
return pld_wlan_enable(hif_sc->qdf_dev->dev, &cfg, mode);
}
/** hif_dev_setup_device() - Setup device specific stuff here required for hif
* @pdev : HIF layer object
*

View File

@@ -98,12 +98,20 @@ static inline uint32_t hif_get_send_buffer_flags(struct hif_sdio_device *pdev)
return 0;
}
static inline int hif_sdio_bus_configure(struct hif_softc *hif_sc)
{
return 0;
}
#elif defined(CONFIG_SDIO_TRANSFER_ADMA)
static inline uint32_t hif_get_send_buffer_flags(struct hif_sdio_device *pdev)
{
/* ADAM-TODO */
return (uint32_t)HIF_WR_ASYNC_BLOCK_FIX;
}
int hif_sdio_bus_configure(struct hif_softc *hif_sc);
#endif
#endif /* __TRANSFER_H__ */