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
42