1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __QCOM_SMEM_STATE__ 3 #define __QCOM_SMEM_STATE__ 4 5 #include <linux/err.h> 6 7 struct device_node; 8 struct qcom_smem_state; 9 10 struct qcom_smem_state_ops { 11 int (*update_bits)(void *, u32, u32); 12 }; 13 14 #ifdef CONFIG_QCOM_SMEM_STATE 15 16 struct qcom_smem_state *qcom_smem_state_get(struct device *dev, const char *con_id, unsigned *bit); 17 struct qcom_smem_state *devm_qcom_smem_state_get(struct device *dev, const char *con_id, unsigned *bit); 18 void qcom_smem_state_put(struct qcom_smem_state *); 19 20 int qcom_smem_state_update_bits(struct qcom_smem_state *state, u32 mask, u32 value); 21 22 struct qcom_smem_state *qcom_smem_state_register(struct device_node *of_node, const struct qcom_smem_state_ops *ops, void *data); 23 void qcom_smem_state_unregister(struct qcom_smem_state *state); 24 25 #else 26 27 static inline struct qcom_smem_state *qcom_smem_state_get(struct device *dev, 28 const char *con_id, unsigned *bit) 29 { 30 return ERR_PTR(-EINVAL); 31 } 32 33 static inline struct qcom_smem_state *devm_qcom_smem_state_get(struct device *dev, 34 const char *con_id, 35 unsigned *bit) 36 { 37 return ERR_PTR(-EINVAL); 38 } 39 40 static inline void qcom_smem_state_put(struct qcom_smem_state *state) 41 { 42 } 43 44 static inline int qcom_smem_state_update_bits(struct qcom_smem_state *state, 45 u32 mask, u32 value) 46 { 47 return -EINVAL; 48 } 49 50 static inline struct qcom_smem_state *qcom_smem_state_register(struct device_node *of_node, 51 const struct qcom_smem_state_ops *ops, void *data) 52 { 53 return ERR_PTR(-EINVAL); 54 } 55 56 static inline void qcom_smem_state_unregister(struct qcom_smem_state *state) 57 { 58 } 59 60 #endif 61 62 #endif 63
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.