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 */
27struct 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 */
39void ipc_uevent_send(struct device *dev, char *uevent);
40
41#endif
42