• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef __QCOM_SMEM_STATE__
2 #define __QCOM_SMEM_STATE__
3 
4 #include <linux/errno.h>
5 
6 struct device_node;
7 struct qcom_smem_state;
8 
9 struct qcom_smem_state_ops {
10 	int (*update_bits)(void *, u32, u32);
11 };
12 
13 #ifdef CONFIG_QCOM_SMEM_STATE
14 
15 struct qcom_smem_state *qcom_smem_state_get(struct device *dev, const char *con_id, unsigned *bit);
16 void qcom_smem_state_put(struct qcom_smem_state *);
17 
18 int qcom_smem_state_update_bits(struct qcom_smem_state *state, u32 mask, u32 value);
19 
20 struct qcom_smem_state *qcom_smem_state_register(struct device_node *of_node, const struct qcom_smem_state_ops *ops, void *data);
21 void qcom_smem_state_unregister(struct qcom_smem_state *state);
22 
23 #else
24 
qcom_smem_state_get(struct device * dev,const char * con_id,unsigned * bit)25 static inline struct qcom_smem_state *qcom_smem_state_get(struct device *dev,
26 	const char *con_id, unsigned *bit)
27 {
28 	return ERR_PTR(-EINVAL);
29 }
30 
qcom_smem_state_put(struct qcom_smem_state * state)31 static inline void qcom_smem_state_put(struct qcom_smem_state *state)
32 {
33 }
34 
qcom_smem_state_update_bits(struct qcom_smem_state * state,u32 mask,u32 value)35 static inline int qcom_smem_state_update_bits(struct qcom_smem_state *state,
36 	u32 mask, u32 value)
37 {
38 	return -EINVAL;
39 }
40 
qcom_smem_state_register(struct device_node * of_node,const struct qcom_smem_state_ops * ops,void * data)41 static inline struct qcom_smem_state *qcom_smem_state_register(struct device_node *of_node,
42 	const struct qcom_smem_state_ops *ops, void *data)
43 {
44 	return ERR_PTR(-EINVAL);
45 }
46 
qcom_smem_state_unregister(struct qcom_smem_state * state)47 static inline void qcom_smem_state_unregister(struct qcom_smem_state *state)
48 {
49 }
50 
51 #endif
52 
53 #endif
54