GNU Linux-libre 6.8.7-gnu
[releases.git] / drivers / net / wwan / iosm / iosm_ipc_uevent.h
1 /* SPDX-License-Identifier: GPL-2.0-only
2  *
3  * Copyright (C) 2020-21 Intel Corporation.
4  */
5
6 #ifndef IOSM_IPC_UEVENT_H
7 #define IOSM_IPC_UEVENT_H
8
9 /* Baseband event strings */
10 #define UEVENT_MDM_NOT_READY "MDM_NOT_READY"
11 #define UEVENT_ROM_READY "ROM_READY"
12 #define UEVENT_MDM_READY "MDM_READY"
13 #define UEVENT_CRASH "CRASH"
14 #define UEVENT_CD_READY "CD_READY"
15 #define UEVENT_CD_READY_LINK_DOWN "CD_READY_LINK_DOWN"
16 #define UEVENT_MDM_TIMEOUT "MDM_TIMEOUT"
17
18 /* Maximum length of user events */
19 #define MAX_UEVENT_LEN 64
20
21 /**
22  * struct ipc_uevent_info - Uevent information structure.
23  * @dev:        Pointer to device structure
24  * @uevent:     Uevent information
25  * @work:       Uevent work struct
26  */
27 struct ipc_uevent_info {
28         struct device *dev;
29         char uevent[MAX_UEVENT_LEN];
30         struct work_struct work;
31 };
32
33 /**
34  * ipc_uevent_send - Send modem event to user space.
35  * @dev:        Generic device pointer
36  * @uevent:     Uevent information
37  *
38  */
39 void ipc_uevent_send(struct device *dev, char *uevent);
40
41 #endif