From 88c40ff685601205aee751ed107f26ff2bf9e30f Mon Sep 17 00:00:00 2001 From: Vijay Pamidipati Date: Thu, 17 Nov 2016 21:27:02 +0530 Subject: [PATCH] qcacmn: Delay DP Interrupt Poll timer start until a VAP is created Do not start interrupt poll timer for processing datapath SRNG interrupts till any VAP is created and is up. CRs-Fixed: 1088985 Change-Id: I3a9d148024f66d824dc839bdf8b158c351fe22cd --- dp/wifi3.0/dp_main.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 8a1906171204..612d9b512b6a 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -221,7 +221,6 @@ QDF_STATUS dp_soc_interrupt_attach(void *txrx_soc) qdf_timer_init(soc->osdev, &soc->int_timer, dp_interrupt_timer, (void *)soc, QDF_TIMER_TYPE_WAKE_APPS); - qdf_timer_mod(&soc->int_timer, DP_INTR_POLL_TIMER_MS); return QDF_STATUS_SUCCESS; } @@ -238,7 +237,7 @@ void dp_soc_interrupt_detach(void *txrx_soc) qdf_timer_stop(&soc->int_timer); - /* TODO -- call timer detach? */ + qdf_timer_free(&soc->int_timer); } #else /* @@ -1194,6 +1193,11 @@ void *dp_vdev_attach_wifi3(void *txrx_pdev, dp_tx_vdev_attach(vdev); +#ifdef DP_INTR_POLL_BASED + if (pdev->vdev_count == 1) + qdf_timer_mod(&soc->int_timer, DP_INTR_POLL_TIMER_MS); +#endif + QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR, "Created vdev %p (%02x:%02x:%02x:%02x:%02x:%02x)\n", vdev, vdev->mac_addr.raw[0], vdev->mac_addr.raw[1],