blob: 5e670fe72785d6c0ebce99a1b24a024c9ee25c7b [file] [log] [blame]
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001/*
Arun Khandavalli4b55da72016-07-19 19:55:01 +05302 * Copyright (c) 2015-2016 The Linux Foundation. All rights reserved.
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21
22/*
23 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
26 */
27
28/**
29 * DOC : wlan_hdd_memdump.h
30 *
31 * WLAN Host Device Driver file for dumping firmware memory
32 *
33 */
34
35#if !defined(WLAN_HDD_MEMDUMP_H)
36#define WLAN_HDD_MEMDUMP_H
37
38#include "wlan_hdd_main.h"
39
Padma, Santhosh Kumar9aba02f2016-08-11 16:30:25 +053040/* Assigned size of driver memory dump is 4096 bytes */
41#define DRIVER_MEM_DUMP_SIZE 4096
42
43
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080044#ifdef WLAN_FEATURE_MEMDUMP
45/**
46 * enum qca_wlan_vendor_attr_memory_dump - values for memory dump attributes
47 * @QCA_WLAN_VENDOR_ATTR_MEMORY_DUMP_INVALID - Invalid
48 * @QCA_WLAN_VENDOR_ATTR_REQUEST_ID - Indicate request ID
49 * @QCA_WLAN_VENDOR_ATTR_MEMDUMP_SIZE - Indicate size of the memory dump
50 * @QCA_WLAN_VENDOR_ATTR_MEMORY_DUMP_AFTER_LAST - To keep track of the last enum
51 * @QCA_WLAN_VENDOR_ATTR_MEMORY_DUMP_MAX - max value possible for this type
52 *
53 * enum values are used for NL attributes for data used by
54 * QCA_NL80211_VENDOR_SUBCMD_WIFI_LOGGER_MEMORY_DUMP sub command.
55 */
56enum qca_wlan_vendor_attr_memory_dump {
57 QCA_WLAN_VENDOR_ATTR_MEMORY_DUMP_INVALID = 0,
58 QCA_WLAN_VENDOR_ATTR_REQUEST_ID = 1,
59 QCA_WLAN_VENDOR_ATTR_MEMDUMP_SIZE = 2,
60
61 QCA_WLAN_VENDOR_ATTR_MEMORY_DUMP_AFTER_LAST,
62 QCA_WLAN_VENDOR_ATTR_MEMORY_DUMP_MAX =
63 QCA_WLAN_VENDOR_ATTR_MEMORY_DUMP_AFTER_LAST - 1,
64};
65
66/* Size of fw memory dump is estimated to be 327680 bytes */
67#define FW_MEM_DUMP_SIZE 327680
68#define FW_DRAM_LOCATION 0x00400000
69#define FW_MEM_DUMP_REQ_ID 1
70#define FW_MEM_DUMP_NUM_SEG 1
Mukul Sharma71d0c572016-09-03 15:35:30 +053071#define MEMDUMP_COMPLETION_TIME_MS 800
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080072
73int memdump_init(void);
74void memdump_deinit(void);
75int wlan_hdd_cfg80211_get_fw_mem_dump(struct wiphy *wiphy,
76 struct wireless_dev *wdev,
77 const void *data, int data_len);
Arun Khandavalli4b55da72016-07-19 19:55:01 +053078void wlan_hdd_cfg80211_fw_mem_dump_cb(void *ctx, struct fw_dump_rsp *dump_rsp);
Padma, Santhosh Kumar9aba02f2016-08-11 16:30:25 +053079
80int hdd_driver_memdump_init(void);
81void hdd_driver_memdump_deinit(void);
82
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080083#else
84static inline int memdump_init(void)
85{
86 return -ENOTSUPP;
87}
88
89static inline void memdump_deinit(void)
90{
91}
92
93static inline int wlan_hdd_cfg80211_get_fw_mem_dump(struct wiphy *wiphy,
94 struct wireless_dev *wdev,
95 const void *data, int data_len)
96{
97 return -ENOTSUPP;
98}
Arun Khandavallifae92942016-08-01 13:31:08 +053099
100
Arun Khandavalli4b55da72016-07-19 19:55:01 +0530101static inline void wlan_hdd_cfg80211_fw_mem_dump_cb(void *ctx,
Arun Khandavallifae92942016-08-01 13:31:08 +0530102 struct fw_dump_rsp
103 *dump_rsp)
Arun Khandavalli4b55da72016-07-19 19:55:01 +0530104{
105}
Padma, Santhosh Kumar9aba02f2016-08-11 16:30:25 +0530106
107static inline int hdd_driver_memdump_init(void)
108{
109 return -ENOTSUPP;
110}
111
112static inline void hdd_driver_memdump_deinit(void)
113{
114}
115
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800116#endif
117
118#endif /* if !defined(WLAN_HDD_MEMDUMP_H)*/