qcacmn: Add support for QCA6290 platform
Add support for QCA6290 platform and introduced an hif api to enable, disable polled mode. Change-Id: I16e210fef93251b33928788cf873117249c2d70f
This commit is contained in:

committed by
snandini

parent
ce6b9444a4
commit
3ab3633184
@@ -61,6 +61,7 @@ static inline ol_txrx_soc_handle cdp_soc_attach(u_int16_t devid,
|
|||||||
switch (devid) {
|
switch (devid) {
|
||||||
case LITHIUM_DP: /*FIXME Add lithium devide IDs */
|
case LITHIUM_DP: /*FIXME Add lithium devide IDs */
|
||||||
case QCA8074_DEVICE_ID: /* Hawekeye */
|
case QCA8074_DEVICE_ID: /* Hawekeye */
|
||||||
|
case QCA6290_DEVICE_ID:
|
||||||
case RUMIM2M_DEVICE_ID_NODE0: /*lithium emulation */
|
case RUMIM2M_DEVICE_ID_NODE0: /*lithium emulation */
|
||||||
case RUMIM2M_DEVICE_ID_NODE1: /*lithium emulation */
|
case RUMIM2M_DEVICE_ID_NODE1: /*lithium emulation */
|
||||||
case RUMIM2M_DEVICE_ID_NODE2: /*lithium emulation */
|
case RUMIM2M_DEVICE_ID_NODE2: /*lithium emulation */
|
||||||
|
@@ -490,6 +490,9 @@ QDF_STATUS hif_diag_write_mem(struct hif_opaque_softc *hif_ctx,
|
|||||||
|
|
||||||
typedef void (*fastpath_msg_handler)(void *, qdf_nbuf_t *, uint32_t);
|
typedef void (*fastpath_msg_handler)(void *, qdf_nbuf_t *, uint32_t);
|
||||||
|
|
||||||
|
void hif_enable_polled_mode(struct hif_opaque_softc *hif_ctx);
|
||||||
|
bool hif_is_polled_mode_enabled(struct hif_opaque_softc *hif_ctx);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set the FASTPATH_mode_on flag in sc, for use by data path
|
* Set the FASTPATH_mode_on flag in sc, for use by data path
|
||||||
*/
|
*/
|
||||||
|
@@ -1214,7 +1214,8 @@ struct CE_handle *ce_init(struct hif_softc *scn,
|
|||||||
|
|
||||||
/* epping */
|
/* epping */
|
||||||
/* poll timer */
|
/* poll timer */
|
||||||
if ((CE_state->attr_flags & CE_ATTR_ENABLE_POLL)) {
|
if ((CE_state->attr_flags & CE_ATTR_ENABLE_POLL) ||
|
||||||
|
scn->polled_mode_on) {
|
||||||
qdf_timer_init(scn->qdf_dev,
|
qdf_timer_init(scn->qdf_dev,
|
||||||
&CE_state->poll_timer,
|
&CE_state->poll_timer,
|
||||||
ce_poll_timeout,
|
ce_poll_timeout,
|
||||||
@@ -1274,6 +1275,14 @@ void hif_enable_fastpath(struct hif_opaque_softc *hif_ctx)
|
|||||||
scn->fastpath_mode_on = true;
|
scn->fastpath_mode_on = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void hif_enable_polled_mode(struct hif_opaque_softc *hif_ctx)
|
||||||
|
{
|
||||||
|
struct hif_softc *scn = HIF_GET_SOFTC(hif_ctx);
|
||||||
|
HIF_DBG("%s, Enabling polled mode", __func__);
|
||||||
|
|
||||||
|
scn->polled_mode_on = true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hif_is_fastpath_mode_enabled - API to query if fasthpath mode is enabled
|
* hif_is_fastpath_mode_enabled - API to query if fasthpath mode is enabled
|
||||||
* @hif_ctx: HIF Context
|
* @hif_ctx: HIF Context
|
||||||
@@ -1289,6 +1298,13 @@ bool hif_is_fastpath_mode_enabled(struct hif_opaque_softc *hif_ctx)
|
|||||||
return scn->fastpath_mode_on;
|
return scn->fastpath_mode_on;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool hif_is_polled_mode_enabled(struct hif_opaque_softc *hif_ctx)
|
||||||
|
{
|
||||||
|
struct hif_softc *scn = HIF_GET_SOFTC(hif_ctx);
|
||||||
|
|
||||||
|
return scn->polled_mode_on;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hif_get_ce_handle - API to get CE handle for FastPath mode
|
* hif_get_ce_handle - API to get CE handle for FastPath mode
|
||||||
* @hif_ctx: HIF Context
|
* @hif_ctx: HIF Context
|
||||||
|
@@ -168,6 +168,7 @@ struct hif_softc {
|
|||||||
qdf_dma_addr_t paddr_rri_on_ddr;
|
qdf_dma_addr_t paddr_rri_on_ddr;
|
||||||
int linkstate_vote;
|
int linkstate_vote;
|
||||||
bool fastpath_mode_on;
|
bool fastpath_mode_on;
|
||||||
|
bool polled_mode_on;
|
||||||
atomic_t tasklet_from_intr;
|
atomic_t tasklet_from_intr;
|
||||||
int htc_htt_tx_endpoint;
|
int htc_htt_tx_endpoint;
|
||||||
qdf_dma_addr_t mem_pa;
|
qdf_dma_addr_t mem_pa;
|
||||||
|
@@ -3689,6 +3689,10 @@ int hif_configure_irq(struct hif_softc *scn)
|
|||||||
struct hif_pci_softc *sc = HIF_GET_PCI_SOFTC(scn);
|
struct hif_pci_softc *sc = HIF_GET_PCI_SOFTC(scn);
|
||||||
|
|
||||||
HIF_TRACE("%s: E", __func__);
|
HIF_TRACE("%s: E", __func__);
|
||||||
|
if (scn->polled_mode_on) {
|
||||||
|
scn->request_irq_done = false;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
hif_init_reschedule_tasklet_work(sc);
|
hif_init_reschedule_tasklet_work(sc);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user