1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* Copyright (c) 2022 Rockchip Electronics Co., Ltd */ 3 4 #ifndef _ROCKCHIP_THUNDERBOOT_SERVICE_H 5 #define _ROCKCHIP_THUNDERBOOT_SERVICE_H 6 7 struct rk_tb_client { 8 struct list_head node; 9 void *data; 10 void (*cb)(void *data); 11 }; 12 13 #ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_SERVICE 14 bool rk_tb_mcu_is_done(void); 15 int rk_tb_client_register_cb(struct rk_tb_client *client); 16 int rk_tb_client_register_cb_head(struct rk_tb_client *client); 17 #else rk_tb_mcu_is_done(void)18static inline bool rk_tb_mcu_is_done(void) 19 { 20 return true; 21 } rk_tb_client_register_cb(struct rk_tb_client * client)22static inline int rk_tb_client_register_cb(struct rk_tb_client *client) 23 { 24 if (client && client->cb) 25 client->cb(client->data); 26 27 return 0; 28 } rk_tb_client_register_cb_head(struct rk_tb_client * client)29static inline int rk_tb_client_register_cb_head(struct rk_tb_client *client) 30 { 31 if (client && client->cb) 32 client->cb(client->data); 33 34 return 0; 35 } 36 #endif 37 #endif 38