162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci * 362306a36Sopenharmony_ci * Copyright (C) 2020-21 Intel Corporation. 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#ifndef IOSM_IPC_UEVENT_H 762306a36Sopenharmony_ci#define IOSM_IPC_UEVENT_H 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci/* Baseband event strings */ 1062306a36Sopenharmony_ci#define UEVENT_MDM_NOT_READY "MDM_NOT_READY" 1162306a36Sopenharmony_ci#define UEVENT_ROM_READY "ROM_READY" 1262306a36Sopenharmony_ci#define UEVENT_MDM_READY "MDM_READY" 1362306a36Sopenharmony_ci#define UEVENT_CRASH "CRASH" 1462306a36Sopenharmony_ci#define UEVENT_CD_READY "CD_READY" 1562306a36Sopenharmony_ci#define UEVENT_CD_READY_LINK_DOWN "CD_READY_LINK_DOWN" 1662306a36Sopenharmony_ci#define UEVENT_MDM_TIMEOUT "MDM_TIMEOUT" 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci/* Maximum length of user events */ 1962306a36Sopenharmony_ci#define MAX_UEVENT_LEN 64 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci/** 2262306a36Sopenharmony_ci * struct ipc_uevent_info - Uevent information structure. 2362306a36Sopenharmony_ci * @dev: Pointer to device structure 2462306a36Sopenharmony_ci * @uevent: Uevent information 2562306a36Sopenharmony_ci * @work: Uevent work struct 2662306a36Sopenharmony_ci */ 2762306a36Sopenharmony_cistruct ipc_uevent_info { 2862306a36Sopenharmony_ci struct device *dev; 2962306a36Sopenharmony_ci char uevent[MAX_UEVENT_LEN]; 3062306a36Sopenharmony_ci struct work_struct work; 3162306a36Sopenharmony_ci}; 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci/** 3462306a36Sopenharmony_ci * ipc_uevent_send - Send modem event to user space. 3562306a36Sopenharmony_ci * @dev: Generic device pointer 3662306a36Sopenharmony_ci * @uevent: Uevent information 3762306a36Sopenharmony_ci * 3862306a36Sopenharmony_ci */ 3962306a36Sopenharmony_civoid ipc_uevent_send(struct device *dev, char *uevent); 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci#endif 42