Commit | Line | Data |
---|---|---|
f772ebfb | 1 | /* |
e34dc647 | 2 | * Copyright (c) 2014-2016 Qualcomm Atheros, Inc. |
f772ebfb VK |
3 | * |
4 | * Permission to use, copy, modify, and/or distribute this software for any | |
5 | * purpose with or without fee is hereby granted, provided that the above | |
6 | * copyright notice and this permission notice appear in all copies. | |
7 | * | |
8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
15 | */ | |
16 | ||
17 | #ifndef __WIL_PLATFORM_H__ | |
18 | #define __WIL_PLATFORM_H__ | |
19 | ||
20 | struct device; | |
21 | ||
5f0823ef ME |
22 | enum wil_platform_event { |
23 | WIL_PLATFORM_EVT_FW_CRASH = 0, | |
24 | WIL_PLATFORM_EVT_PRE_RESET = 1, | |
25 | WIL_PLATFORM_EVT_FW_RDY = 2, | |
e34dc647 ME |
26 | WIL_PLATFORM_EVT_PRE_SUSPEND = 3, |
27 | WIL_PLATFORM_EVT_POST_SUSPEND = 4, | |
5f0823ef ME |
28 | }; |
29 | ||
f772ebfb | 30 | /** |
ea3ade75 LD |
31 | * struct wil_platform_ops - wil platform module calls from this |
32 | * driver to platform driver | |
f772ebfb VK |
33 | */ |
34 | struct wil_platform_ops { | |
35 | int (*bus_request)(void *handle, uint32_t kbps /* KBytes/Sec */); | |
36 | int (*suspend)(void *handle); | |
37 | int (*resume)(void *handle); | |
38 | void (*uninit)(void *handle); | |
5f0823ef | 39 | int (*notify)(void *handle, enum wil_platform_event evt); |
f772ebfb VK |
40 | }; |
41 | ||
ea3ade75 LD |
42 | /** |
43 | * struct wil_platform_rops - wil platform module callbacks from | |
44 | * platform driver to this driver | |
45 | * @ramdump: store a ramdump from the wil firmware. The platform | |
46 | * driver may add additional data to the ramdump to | |
47 | * generate the final crash dump. | |
48 | * @fw_recovery: start a firmware recovery process. Called as | |
49 | * part of a crash recovery process which may include other | |
50 | * related platform subsystems. | |
51 | */ | |
52 | struct wil_platform_rops { | |
53 | int (*ramdump)(void *wil_handle, void *buf, uint32_t size); | |
54 | int (*fw_recovery)(void *wil_handle); | |
55 | }; | |
56 | ||
57 | /** | |
58 | * wil_platform_init - initialize the platform driver | |
59 | * | |
60 | * @dev - pointer to the wil6210 device | |
61 | * @ops - structure with platform driver operations. Platform | |
62 | * driver will fill this structure with function pointers. | |
63 | * @rops - structure with callbacks from platform driver to | |
64 | * this driver. The platform driver copies the structure to | |
65 | * its own storage. Can be NULL if this driver does not | |
66 | * support crash recovery. | |
67 | * @wil_handle - context for this driver that will be passed | |
68 | * when platform driver invokes one of the callbacks in | |
69 | * rops. May be NULL if rops is NULL. | |
70 | */ | |
71 | void *wil_platform_init(struct device *dev, struct wil_platform_ops *ops, | |
72 | const struct wil_platform_rops *rops, void *wil_handle); | |
f772ebfb | 73 | |
b39d6937 VK |
74 | int __init wil_platform_modinit(void); |
75 | void wil_platform_modexit(void); | |
76 | ||
f772ebfb | 77 | #endif /* __WIL_PLATFORM_H__ */ |