|
@@ -355,6 +355,7 @@ void pktlog_init(struct hif_opaque_softc *scn)
|
|
|
pl_info->pktlen = 0;
|
|
|
pl_info->start_time_thruput = 0;
|
|
|
pl_info->start_time_per = 0;
|
|
|
+ pdev_txrx_handle->pl_dev->vendor_cmd_send = false;
|
|
|
|
|
|
PKTLOG_TX_SUBSCRIBER.callback = pktlog_callback;
|
|
|
PKTLOG_RX_SUBSCRIBER.callback = pktlog_callback;
|
|
@@ -365,7 +366,8 @@ void pktlog_init(struct hif_opaque_softc *scn)
|
|
|
}
|
|
|
|
|
|
int pktlog_enable(struct hif_opaque_softc *scn, int32_t log_state,
|
|
|
- bool ini_triggered, uint8_t user_triggered)
|
|
|
+ bool ini_triggered, uint8_t user_triggered,
|
|
|
+ uint32_t is_iwpriv_command)
|
|
|
{
|
|
|
struct ol_pktlog_dev_t *pl_dev;
|
|
|
struct ath_pktlog_info *pl_info;
|
|
@@ -397,6 +399,15 @@ int pktlog_enable(struct hif_opaque_softc *scn, int32_t log_state,
|
|
|
if (!pl_info)
|
|
|
return 0;
|
|
|
|
|
|
+ /* is_iwpriv_command : 0 indicates its a vendor command
|
|
|
+ * log_state: 0 indicates pktlog disable command
|
|
|
+ * vendor_cmd_send flag; false means no vendor pktlog enable
|
|
|
+ * command was sent previously
|
|
|
+ */
|
|
|
+ if (is_iwpriv_command == 0 && log_state == 0 &&
|
|
|
+ pl_dev->vendor_cmd_send == false)
|
|
|
+ return 0;
|
|
|
+
|
|
|
if (!pl_dev->tgt_pktlog_alloced) {
|
|
|
if (pl_info->buf == NULL) {
|
|
|
error = pktlog_alloc_buf(scn);
|
|
@@ -442,8 +453,13 @@ int pktlog_enable(struct hif_opaque_softc *scn, int32_t log_state,
|
|
|
printk("Device cannot be enabled, %s\n", __func__);
|
|
|
return -1;
|
|
|
}
|
|
|
+
|
|
|
+ if (is_iwpriv_command == 0)
|
|
|
+ pl_dev->vendor_cmd_send = true;
|
|
|
} else {
|
|
|
pl_dev->pl_funcs->pktlog_disable(scn);
|
|
|
+ if (is_iwpriv_command == 0)
|
|
|
+ pl_dev->vendor_cmd_send = false;
|
|
|
}
|
|
|
|
|
|
pl_info->log_state = log_state;
|