diff options
| author | Himanshu Agarwal <himanaga@codeaurora.org> | 2016-09-20 15:10:55 +0530 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2016-10-26 10:49:15 -0700 |
| commit | 5d6f245232c4c01be87e9ccedc75899990b1fe64 (patch) | |
| tree | d26e5e27065c40a13717b1d2545fa4de4a8710ba /qdf/linux/src | |
| parent | 832ff9402b383a35de3af5759224eabc989628bf (diff) | |
qcacmn: Add infrastructure to log roam events in DPTRACE
Add infrastructure to log all roam related commands and
events in DPTRACE.
Change-Id: I66773fc23dfeacf3a63688819e099bf44676d95b
CRs-Fixed: 1081851
Diffstat (limited to 'qdf/linux/src')
| -rw-r--r-- | qdf/linux/src/qdf_trace.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/qdf/linux/src/qdf_trace.c b/qdf/linux/src/qdf_trace.c index 445ffed20dd9..df3b9753e381 100644 --- a/qdf/linux/src/qdf_trace.c +++ b/qdf/linux/src/qdf_trace.c @@ -821,6 +821,8 @@ void qdf_dp_trace_init(void) qdf_dp_display_proto_pkt; qdf_dp_trace_cb_table[QDF_DP_TRACE_MGMT_PACKET_RECORD] = qdf_dp_display_mgmt_pkt; + qdf_dp_trace_cb_table[QDF_DP_TRACE_EVENT_RECORD] = + qdf_dp_display_event_record; qdf_dp_trace_cb_table[QDF_DP_TRACE_MAX] = qdf_dp_unused; } @@ -967,6 +969,8 @@ const char *qdf_dp_code_to_string(enum QDF_DP_TRACE_ID code) return "ARP:"; case QDF_DP_TRACE_MGMT_PACKET_RECORD: return "MGMT:"; + case QDF_DP_TRACE_EVENT_RECORD: + return "EVENT:"; case QDF_DP_TRACE_HDD_TX_PACKET_PTR_RECORD: return "HDD: TX: PTR:"; case QDF_DP_TRACE_HDD_TX_PACKET_RECORD: @@ -1041,6 +1045,8 @@ static const char *qdf_dp_type_to_str(enum qdf_proto_type type) return "ARP"; case QDF_PROTO_TYPE_MGMT: return "MGMT"; + case QDF_PROTO_TYPE_EVENT: + return "EVENT"; default: return "invalid"; } @@ -1091,6 +1097,12 @@ static const char *qdf_dp_subtype_to_str(enum qdf_proto_subtype subtype) return "AUTH"; case QDF_PROTO_MGMT_DEAUTH: return "DEAUTH"; + case QDF_ROAM_SYNCH: + return "ROAM SYNCH"; + case QDF_ROAM_COMPLETE: + return "ROAM COMPLETE"; + case QDF_ROAM_EVENTID: + return "ROAM EVENTID"; default: return "invalid"; } @@ -1353,6 +1365,54 @@ void qdf_dp_trace_mgmt_pkt(enum QDF_DP_TRACE_ID code, uint8_t vdev_id, } EXPORT_SYMBOL(qdf_dp_trace_mgmt_pkt); +/** + * qdf_dp_display_event_record() - display event records + * @record: dptrace record + * @index: index + * + * Return: none + */ +void qdf_dp_display_event_record(struct qdf_dp_trace_record_s *record, + uint16_t index) +{ + struct qdf_dp_trace_event_buf *buf = + (struct qdf_dp_trace_event_buf *)record->data; + + qdf_print("DPT: %04d: %012llu: %s vdev_id %d", index, + record->time, qdf_dp_code_to_string(record->code), + buf->vdev_id); + qdf_print("DPT: Type %s Subtype %s", qdf_dp_type_to_str(buf->type), + qdf_dp_subtype_to_str(buf->subtype)); +} +EXPORT_SYMBOL(qdf_dp_display_event_record); + +/** + * qdf_dp_trace_record_event() - record events + * @code: dptrace code + * @vdev_id: vdev id + * @type: proto type + * @subtype: proto subtype + * + * Return: none + */ +void qdf_dp_trace_record_event(enum QDF_DP_TRACE_ID code, uint8_t vdev_id, + enum qdf_proto_type type, enum qdf_proto_subtype subtype) +{ + struct qdf_dp_trace_event_buf buf; + int buf_size = sizeof(struct qdf_dp_trace_event_buf); + + if (qdf_dp_enable_check(NULL, code, QDF_NA) == false) + return; + + if (buf_size > QDF_DP_TRACE_RECORD_SIZE) + QDF_BUG(0); + + buf.type = type; + buf.subtype = subtype; + buf.vdev_id = vdev_id; + qdf_dp_add_record(code, (uint8_t *)&buf, buf_size, true); +} +EXPORT_SYMBOL(qdf_dp_trace_record_event); /** * qdf_dp_display_proto_pkt() - display proto packet |
