This source file includes following definitions.
- dpbp_open
- dpbp_close
- dpbp_enable
- dpbp_disable
- dpbp_reset
- dpbp_get_attributes
1
2
3
4
5
6 #include <linux/kernel.h>
7 #include <linux/fsl/mc.h>
8
9 #include "fsl-mc-private.h"
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 int dpbp_open(struct fsl_mc_io *mc_io,
29 u32 cmd_flags,
30 int dpbp_id,
31 u16 *token)
32 {
33 struct fsl_mc_command cmd = { 0 };
34 struct dpbp_cmd_open *cmd_params;
35 int err;
36
37
38 cmd.header = mc_encode_cmd_header(DPBP_CMDID_OPEN,
39 cmd_flags, 0);
40 cmd_params = (struct dpbp_cmd_open *)cmd.params;
41 cmd_params->dpbp_id = cpu_to_le32(dpbp_id);
42
43
44 err = mc_send_command(mc_io, &cmd);
45 if (err)
46 return err;
47
48
49 *token = mc_cmd_hdr_read_token(&cmd);
50
51 return err;
52 }
53 EXPORT_SYMBOL_GPL(dpbp_open);
54
55
56
57
58
59
60
61
62
63
64
65
66 int dpbp_close(struct fsl_mc_io *mc_io,
67 u32 cmd_flags,
68 u16 token)
69 {
70 struct fsl_mc_command cmd = { 0 };
71
72
73 cmd.header = mc_encode_cmd_header(DPBP_CMDID_CLOSE, cmd_flags,
74 token);
75
76
77 return mc_send_command(mc_io, &cmd);
78 }
79 EXPORT_SYMBOL_GPL(dpbp_close);
80
81
82
83
84
85
86
87
88
89 int dpbp_enable(struct fsl_mc_io *mc_io,
90 u32 cmd_flags,
91 u16 token)
92 {
93 struct fsl_mc_command cmd = { 0 };
94
95
96 cmd.header = mc_encode_cmd_header(DPBP_CMDID_ENABLE, cmd_flags,
97 token);
98
99
100 return mc_send_command(mc_io, &cmd);
101 }
102 EXPORT_SYMBOL_GPL(dpbp_enable);
103
104
105
106
107
108
109
110
111
112 int dpbp_disable(struct fsl_mc_io *mc_io,
113 u32 cmd_flags,
114 u16 token)
115 {
116 struct fsl_mc_command cmd = { 0 };
117
118
119 cmd.header = mc_encode_cmd_header(DPBP_CMDID_DISABLE,
120 cmd_flags, token);
121
122
123 return mc_send_command(mc_io, &cmd);
124 }
125 EXPORT_SYMBOL_GPL(dpbp_disable);
126
127
128
129
130
131
132
133
134
135 int dpbp_reset(struct fsl_mc_io *mc_io,
136 u32 cmd_flags,
137 u16 token)
138 {
139 struct fsl_mc_command cmd = { 0 };
140
141
142 cmd.header = mc_encode_cmd_header(DPBP_CMDID_RESET,
143 cmd_flags, token);
144
145
146 return mc_send_command(mc_io, &cmd);
147 }
148 EXPORT_SYMBOL_GPL(dpbp_reset);
149
150
151
152
153
154
155
156
157
158
159
160 int dpbp_get_attributes(struct fsl_mc_io *mc_io,
161 u32 cmd_flags,
162 u16 token,
163 struct dpbp_attr *attr)
164 {
165 struct fsl_mc_command cmd = { 0 };
166 struct dpbp_rsp_get_attributes *rsp_params;
167 int err;
168
169
170 cmd.header = mc_encode_cmd_header(DPBP_CMDID_GET_ATTR,
171 cmd_flags, token);
172
173
174 err = mc_send_command(mc_io, &cmd);
175 if (err)
176 return err;
177
178
179 rsp_params = (struct dpbp_rsp_get_attributes *)cmd.params;
180 attr->bpid = le16_to_cpu(rsp_params->bpid);
181 attr->id = le32_to_cpu(rsp_params->id);
182
183 return 0;
184 }
185 EXPORT_SYMBOL_GPL(dpbp_get_attributes);