Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(445)

Side by Side Diff: arch/arm/mach-tegra/nv/nvrm/dispatch/nvrm_pinmux_dispatch.c

Issue 3256004: [ARM] tegra: add nvos/nvrm/nvmap drivers (Closed) Base URL: ssh://git@gitrw.chromium.org/kernel.git
Patch Set: remove ap15 headers Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright (c) 2009 NVIDIA Corporation.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 *
8 * Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer.
10 *
11 * Redistributions in binary form must reproduce the above copyright notice,
12 * this list of conditions and the following disclaimer in the documentation
13 * and/or other materials provided with the distribution.
14 *
15 * Neither the name of the NVIDIA Corporation nor the names of its contributors
16 * may be used to endorse or promote products derived from this software
17 * without specific prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
23 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE.
30 *
31 */
32
33 #define NV_IDL_IS_DISPATCH
34
35 #include "nvcommon.h"
36 #include "nvos.h"
37 #include "nvassert.h"
38 #include "nvreftrack.h"
39 #include "nvidlcmd.h"
40 #include "nvrm_pinmux.h"
41
42 #define OFFSET( s, e ) (NvU32)(void *)(&(((s*)0)->e))
43
44
45 typedef struct NvRmGetStraps_in_t
46 {
47 NvU32 package_;
48 NvU32 function_;
49 NvRmDeviceHandle hDevice;
50 NvRmStrapGroup StrapGroup;
51 } NV_ALIGN(4) NvRmGetStraps_in;
52
53 typedef struct NvRmGetStraps_inout_t
54 {
55 NvU32 dummy_;
56 } NV_ALIGN(4) NvRmGetStraps_inout;
57
58 typedef struct NvRmGetStraps_out_t
59 {
60 NvError ret_;
61 NvU32 pStrapValue;
62 } NV_ALIGN(4) NvRmGetStraps_out;
63
64 typedef struct NvRmGetStraps_params_t
65 {
66 NvRmGetStraps_in in;
67 NvRmGetStraps_inout inout;
68 NvRmGetStraps_out out;
69 } NvRmGetStraps_params;
70
71 typedef struct NvRmGetModuleInterfaceCapabilities_in_t
72 {
73 NvU32 package_;
74 NvU32 function_;
75 NvRmDeviceHandle hRm;
76 NvRmModuleID ModuleId;
77 NvU32 CapStructSize;
78 void* pCaps;
79 } NV_ALIGN(4) NvRmGetModuleInterfaceCapabilities_in;
80
81 typedef struct NvRmGetModuleInterfaceCapabilities_inout_t
82 {
83 NvU32 dummy_;
84 } NV_ALIGN(4) NvRmGetModuleInterfaceCapabilities_inout;
85
86 typedef struct NvRmGetModuleInterfaceCapabilities_out_t
87 {
88 NvError ret_;
89 } NV_ALIGN(4) NvRmGetModuleInterfaceCapabilities_out;
90
91 typedef struct NvRmGetModuleInterfaceCapabilities_params_t
92 {
93 NvRmGetModuleInterfaceCapabilities_in in;
94 NvRmGetModuleInterfaceCapabilities_inout inout;
95 NvRmGetModuleInterfaceCapabilities_out out;
96 } NvRmGetModuleInterfaceCapabilities_params;
97
98 typedef struct NvRmExternalClockConfig_in_t
99 {
100 NvU32 package_;
101 NvU32 function_;
102 NvRmDeviceHandle hDevice;
103 NvU32 IoModule;
104 NvU32 Instance;
105 NvU32 Config;
106 NvBool EnableTristate;
107 } NV_ALIGN(4) NvRmExternalClockConfig_in;
108
109 typedef struct NvRmExternalClockConfig_inout_t
110 {
111 NvU32 dummy_;
112 } NV_ALIGN(4) NvRmExternalClockConfig_inout;
113
114 typedef struct NvRmExternalClockConfig_out_t
115 {
116 NvU32 ret_;
117 } NV_ALIGN(4) NvRmExternalClockConfig_out;
118
119 typedef struct NvRmExternalClockConfig_params_t
120 {
121 NvRmExternalClockConfig_in in;
122 NvRmExternalClockConfig_inout inout;
123 NvRmExternalClockConfig_out out;
124 } NvRmExternalClockConfig_params;
125
126 typedef struct NvRmSetOdmModuleTristate_in_t
127 {
128 NvU32 package_;
129 NvU32 function_;
130 NvRmDeviceHandle hDevice;
131 NvU32 OdmModule;
132 NvU32 OdmInstance;
133 NvBool EnableTristate;
134 } NV_ALIGN(4) NvRmSetOdmModuleTristate_in;
135
136 typedef struct NvRmSetOdmModuleTristate_inout_t
137 {
138 NvU32 dummy_;
139 } NV_ALIGN(4) NvRmSetOdmModuleTristate_inout;
140
141 typedef struct NvRmSetOdmModuleTristate_out_t
142 {
143 NvError ret_;
144 } NV_ALIGN(4) NvRmSetOdmModuleTristate_out;
145
146 typedef struct NvRmSetOdmModuleTristate_params_t
147 {
148 NvRmSetOdmModuleTristate_in in;
149 NvRmSetOdmModuleTristate_inout inout;
150 NvRmSetOdmModuleTristate_out out;
151 } NvRmSetOdmModuleTristate_params;
152
153 typedef struct NvRmSetModuleTristate_in_t
154 {
155 NvU32 package_;
156 NvU32 function_;
157 NvRmDeviceHandle hDevice;
158 NvRmModuleID RmModule;
159 NvBool EnableTristate;
160 } NV_ALIGN(4) NvRmSetModuleTristate_in;
161
162 typedef struct NvRmSetModuleTristate_inout_t
163 {
164 NvU32 dummy_;
165 } NV_ALIGN(4) NvRmSetModuleTristate_inout;
166
167 typedef struct NvRmSetModuleTristate_out_t
168 {
169 NvError ret_;
170 } NV_ALIGN(4) NvRmSetModuleTristate_out;
171
172 typedef struct NvRmSetModuleTristate_params_t
173 {
174 NvRmSetModuleTristate_in in;
175 NvRmSetModuleTristate_inout inout;
176 NvRmSetModuleTristate_out out;
177 } NvRmSetModuleTristate_params;
178
179 static NvError NvRmGetStraps_dispatch_( void *InBuffer, NvU32 InSize, void *OutB uffer, NvU32 OutSize, NvDispatchCtx* Ctx )
180 {
181 NvError err_ = NvSuccess;
182 NvRmGetStraps_in *p_in;
183 NvRmGetStraps_out *p_out;
184
185 p_in = (NvRmGetStraps_in *)InBuffer;
186 p_out = (NvRmGetStraps_out *)((NvU8 *)OutBuffer + OFFSET(NvRmGetStraps_param s, out) - OFFSET(NvRmGetStraps_params, inout));
187
188
189 p_out->ret_ = NvRmGetStraps( p_in->hDevice, p_in->StrapGroup, &p_out->pStrap Value );
190
191 return err_;
192 }
193
194 static NvError NvRmGetModuleInterfaceCapabilities_dispatch_( void *InBuffer, NvU 32 InSize, void *OutBuffer, NvU32 OutSize, NvDispatchCtx* Ctx )
195 {
196 NvError err_ = NvSuccess;
197 NvRmGetModuleInterfaceCapabilities_in *p_in;
198 NvRmGetModuleInterfaceCapabilities_out *p_out;
199 void* pCaps = NULL;
200
201 p_in = (NvRmGetModuleInterfaceCapabilities_in *)InBuffer;
202 p_out = (NvRmGetModuleInterfaceCapabilities_out *)((NvU8 *)OutBuffer + OFFSE T(NvRmGetModuleInterfaceCapabilities_params, out) - OFFSET(NvRmGetModuleInterfac eCapabilities_params, inout));
203
204 if( p_in->CapStructSize && p_in->pCaps )
205 {
206 pCaps = (void* )NvOsAlloc( p_in->CapStructSize );
207 if( !pCaps )
208 {
209 err_ = NvError_InsufficientMemory;
210 goto clean;
211 }
212 }
213
214 p_out->ret_ = NvRmGetModuleInterfaceCapabilities( p_in->hRm, p_in->ModuleId, p_in->CapStructSize, pCaps );
215
216 if(p_in->pCaps && pCaps)
217 {
218 err_ = NvOsCopyOut( p_in->pCaps, pCaps, p_in->CapStructSize );
219 if( err_ != NvSuccess )
220 {
221 err_ = NvError_BadParameter;
222 }
223 }
224 clean:
225 NvOsFree( pCaps );
226 return err_;
227 }
228
229 static NvError NvRmExternalClockConfig_dispatch_( void *InBuffer, NvU32 InSize, void *OutBuffer, NvU32 OutSize, NvDispatchCtx* Ctx )
230 {
231 NvError err_ = NvSuccess;
232 NvRmExternalClockConfig_in *p_in;
233 NvRmExternalClockConfig_out *p_out;
234
235 p_in = (NvRmExternalClockConfig_in *)InBuffer;
236 p_out = (NvRmExternalClockConfig_out *)((NvU8 *)OutBuffer + OFFSET(NvRmExter nalClockConfig_params, out) - OFFSET(NvRmExternalClockConfig_params, inout));
237
238
239 p_out->ret_ = NvRmExternalClockConfig( p_in->hDevice, p_in->IoModule, p_in-> Instance, p_in->Config, p_in->EnableTristate );
240
241 return err_;
242 }
243
244 static NvError NvRmSetOdmModuleTristate_dispatch_( void *InBuffer, NvU32 InSize, void *OutBuffer, NvU32 OutSize, NvDispatchCtx* Ctx )
245 {
246 NvError err_ = NvSuccess;
247 NvRmSetOdmModuleTristate_in *p_in;
248 NvRmSetOdmModuleTristate_out *p_out;
249
250 p_in = (NvRmSetOdmModuleTristate_in *)InBuffer;
251 p_out = (NvRmSetOdmModuleTristate_out *)((NvU8 *)OutBuffer + OFFSET(NvRmSetO dmModuleTristate_params, out) - OFFSET(NvRmSetOdmModuleTristate_params, inout));
252
253
254 p_out->ret_ = NvRmSetOdmModuleTristate( p_in->hDevice, p_in->OdmModule, p_in ->OdmInstance, p_in->EnableTristate );
255
256 return err_;
257 }
258
259 static NvError NvRmSetModuleTristate_dispatch_( void *InBuffer, NvU32 InSize, vo id *OutBuffer, NvU32 OutSize, NvDispatchCtx* Ctx )
260 {
261 NvError err_ = NvSuccess;
262 NvRmSetModuleTristate_in *p_in;
263 NvRmSetModuleTristate_out *p_out;
264
265 p_in = (NvRmSetModuleTristate_in *)InBuffer;
266 p_out = (NvRmSetModuleTristate_out *)((NvU8 *)OutBuffer + OFFSET(NvRmSetModu leTristate_params, out) - OFFSET(NvRmSetModuleTristate_params, inout));
267
268
269 p_out->ret_ = NvRmSetModuleTristate( p_in->hDevice, p_in->RmModule, p_in->En ableTristate );
270
271 return err_;
272 }
273
274 NvError nvrm_pinmux_Dispatch( NvU32 function, void *InBuffer, NvU32 InSize, void *OutBuffer, NvU32 OutSize, NvDispatchCtx* Ctx );
275 NvError nvrm_pinmux_Dispatch( NvU32 function, void *InBuffer, NvU32 InSize, void *OutBuffer, NvU32 OutSize, NvDispatchCtx* Ctx )
276 {
277 NvError err_ = NvSuccess;
278
279 switch( function ) {
280 case 4:
281 err_ = NvRmGetStraps_dispatch_( InBuffer, InSize, OutBuffer, OutSize, Ct x );
282 break;
283 case 3:
284 err_ = NvRmGetModuleInterfaceCapabilities_dispatch_( InBuffer, InSize, O utBuffer, OutSize, Ctx );
285 break;
286 case 2:
287 err_ = NvRmExternalClockConfig_dispatch_( InBuffer, InSize, OutBuffer, O utSize, Ctx );
288 break;
289 case 1:
290 err_ = NvRmSetOdmModuleTristate_dispatch_( InBuffer, InSize, OutBuffer, OutSize, Ctx );
291 break;
292 case 0:
293 err_ = NvRmSetModuleTristate_dispatch_( InBuffer, InSize, OutBuffer, Out Size, Ctx );
294 break;
295 default:
296 err_ = NvError_BadParameter;
297 break;
298 }
299
300 return err_;
301 }
OLDNEW
« no previous file with comments | « arch/arm/mach-tegra/nv/nvrm/dispatch/nvrm_pcie_dispatch.c ('k') | arch/arm/mach-tegra/nv/nvrm/dispatch/nvrm_pmu_dispatch.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698