@@ -191,13 +191,12 @@ static int cmdq_pkt_mask(struct cmdq_pkt *pkt, u32 mask)
191
191
192
192
int cmdq_pkt_write (struct cmdq_pkt * pkt , u8 subsys , u16 offset , u32 value )
193
193
{
194
- struct cmdq_instruction inst ;
195
-
196
- inst .op = CMDQ_CODE_WRITE ;
197
- inst .value = value ;
198
- inst .offset = offset ;
199
- inst .subsys = subsys ;
200
-
194
+ struct cmdq_instruction inst = {
195
+ .op = CMDQ_CODE_WRITE ,
196
+ .value = value ,
197
+ .offset = offset ,
198
+ .subsys = subsys
199
+ };
201
200
return cmdq_pkt_append_command (pkt , inst );
202
201
}
203
202
EXPORT_SYMBOL (cmdq_pkt_write );
@@ -208,99 +207,93 @@ int cmdq_pkt_write_mask(struct cmdq_pkt *pkt, u8 subsys,
208
207
u16 offset_mask = offset ;
209
208
int err ;
210
209
211
- if (mask != 0xffffffff ) {
210
+ if (mask != GENMASK ( 31 , 0 ) ) {
212
211
err = cmdq_pkt_mask (pkt , mask );
213
212
if (err < 0 )
214
213
return err ;
215
214
216
215
offset_mask |= CMDQ_WRITE_ENABLE_MASK ;
217
216
}
218
- err = cmdq_pkt_write (pkt , subsys , offset_mask , value );
219
-
220
- return err ;
217
+ return cmdq_pkt_write (pkt , subsys , offset_mask , value );
221
218
}
222
219
EXPORT_SYMBOL (cmdq_pkt_write_mask );
223
220
224
221
int cmdq_pkt_read_s (struct cmdq_pkt * pkt , u16 high_addr_reg_idx , u16 addr_low ,
225
222
u16 reg_idx )
226
223
{
227
- struct cmdq_instruction inst = {};
228
-
229
- inst .op = CMDQ_CODE_READ_S ;
230
- inst .dst_t = CMDQ_REG_TYPE ;
231
- inst .sop = high_addr_reg_idx ;
232
- inst .reg_dst = reg_idx ;
233
- inst .src_reg = addr_low ;
234
-
224
+ struct cmdq_instruction inst = {
225
+ .op = CMDQ_CODE_READ_S ,
226
+ .dst_t = CMDQ_REG_TYPE ,
227
+ .sop = high_addr_reg_idx ,
228
+ .reg_dst = reg_idx ,
229
+ .src_reg = addr_low
230
+ };
235
231
return cmdq_pkt_append_command (pkt , inst );
236
232
}
237
233
EXPORT_SYMBOL (cmdq_pkt_read_s );
238
234
239
235
int cmdq_pkt_write_s (struct cmdq_pkt * pkt , u16 high_addr_reg_idx ,
240
236
u16 addr_low , u16 src_reg_idx )
241
237
{
242
- struct cmdq_instruction inst = {};
243
-
244
- inst .op = CMDQ_CODE_WRITE_S ;
245
- inst .src_t = CMDQ_REG_TYPE ;
246
- inst .sop = high_addr_reg_idx ;
247
- inst .offset = addr_low ;
248
- inst .src_reg = src_reg_idx ;
249
-
238
+ struct cmdq_instruction inst = {
239
+ .op = CMDQ_CODE_WRITE_S ,
240
+ .src_t = CMDQ_REG_TYPE ,
241
+ .sop = high_addr_reg_idx ,
242
+ .offset = addr_low ,
243
+ .src_reg = src_reg_idx
244
+ };
250
245
return cmdq_pkt_append_command (pkt , inst );
251
246
}
252
247
EXPORT_SYMBOL (cmdq_pkt_write_s );
253
248
254
249
int cmdq_pkt_write_s_mask (struct cmdq_pkt * pkt , u16 high_addr_reg_idx ,
255
250
u16 addr_low , u16 src_reg_idx , u32 mask )
256
251
{
257
- struct cmdq_instruction inst = {};
252
+ struct cmdq_instruction inst = {
253
+ .op = CMDQ_CODE_WRITE_S_MASK ,
254
+ .src_t = CMDQ_REG_TYPE ,
255
+ .sop = high_addr_reg_idx ,
256
+ .offset = addr_low ,
257
+ .src_reg = src_reg_idx ,
258
+ };
258
259
int err ;
259
260
260
261
err = cmdq_pkt_mask (pkt , mask );
261
262
if (err < 0 )
262
263
return err ;
263
264
264
- inst .mask = 0 ;
265
- inst .op = CMDQ_CODE_WRITE_S_MASK ;
266
- inst .src_t = CMDQ_REG_TYPE ;
267
- inst .sop = high_addr_reg_idx ;
268
- inst .offset = addr_low ;
269
- inst .src_reg = src_reg_idx ;
270
-
271
265
return cmdq_pkt_append_command (pkt , inst );
272
266
}
273
267
EXPORT_SYMBOL (cmdq_pkt_write_s_mask );
274
268
275
269
int cmdq_pkt_write_s_value (struct cmdq_pkt * pkt , u8 high_addr_reg_idx ,
276
270
u16 addr_low , u32 value )
277
271
{
278
- struct cmdq_instruction inst = {};
279
-
280
- inst .op = CMDQ_CODE_WRITE_S ;
281
- inst .sop = high_addr_reg_idx ;
282
- inst .offset = addr_low ;
283
- inst .value = value ;
284
-
272
+ struct cmdq_instruction inst = {
273
+ .op = CMDQ_CODE_WRITE_S ,
274
+ .sop = high_addr_reg_idx ,
275
+ .offset = addr_low ,
276
+ .value = value
277
+ };
285
278
return cmdq_pkt_append_command (pkt , inst );
286
279
}
287
280
EXPORT_SYMBOL (cmdq_pkt_write_s_value );
288
281
289
282
int cmdq_pkt_write_s_mask_value (struct cmdq_pkt * pkt , u8 high_addr_reg_idx ,
290
283
u16 addr_low , u32 value , u32 mask )
291
284
{
292
- struct cmdq_instruction inst = {};
285
+ struct cmdq_instruction inst = {
286
+ .op = CMDQ_CODE_WRITE_S_MASK ,
287
+ .sop = high_addr_reg_idx ,
288
+ .offset = addr_low ,
289
+ .value = value
290
+ };
293
291
int err ;
294
292
295
293
err = cmdq_pkt_mask (pkt , mask );
296
294
if (err < 0 )
297
295
return err ;
298
296
299
- inst .op = CMDQ_CODE_WRITE_S_MASK ;
300
- inst .sop = high_addr_reg_idx ;
301
- inst .offset = addr_low ;
302
- inst .value = value ;
303
-
304
297
return cmdq_pkt_append_command (pkt , inst );
305
298
}
306
299
EXPORT_SYMBOL (cmdq_pkt_write_s_mask_value );
@@ -333,78 +326,75 @@ EXPORT_SYMBOL(cmdq_pkt_mem_move);
333
326
334
327
int cmdq_pkt_wfe (struct cmdq_pkt * pkt , u16 event , bool clear )
335
328
{
336
- struct cmdq_instruction inst = { {0 } };
337
329
u32 clear_option = clear ? CMDQ_WFE_UPDATE : 0 ;
330
+ struct cmdq_instruction inst = {
331
+ .op = CMDQ_CODE_WFE ,
332
+ .value = CMDQ_WFE_OPTION | clear_option ,
333
+ .event = event
334
+ };
338
335
339
336
if (event >= CMDQ_MAX_EVENT )
340
337
return - EINVAL ;
341
338
342
- inst .op = CMDQ_CODE_WFE ;
343
- inst .value = CMDQ_WFE_OPTION | clear_option ;
344
- inst .event = event ;
345
-
346
339
return cmdq_pkt_append_command (pkt , inst );
347
340
}
348
341
EXPORT_SYMBOL (cmdq_pkt_wfe );
349
342
350
343
int cmdq_pkt_acquire_event (struct cmdq_pkt * pkt , u16 event )
351
344
{
352
- struct cmdq_instruction inst = {};
345
+ struct cmdq_instruction inst = {
346
+ .op = CMDQ_CODE_WFE ,
347
+ .value = CMDQ_WFE_UPDATE | CMDQ_WFE_UPDATE_VALUE | CMDQ_WFE_WAIT ,
348
+ .event = event
349
+ };
353
350
354
351
if (event >= CMDQ_MAX_EVENT )
355
352
return - EINVAL ;
356
353
357
- inst .op = CMDQ_CODE_WFE ;
358
- inst .value = CMDQ_WFE_UPDATE | CMDQ_WFE_UPDATE_VALUE | CMDQ_WFE_WAIT ;
359
- inst .event = event ;
360
-
361
354
return cmdq_pkt_append_command (pkt , inst );
362
355
}
363
356
EXPORT_SYMBOL (cmdq_pkt_acquire_event );
364
357
365
358
int cmdq_pkt_clear_event (struct cmdq_pkt * pkt , u16 event )
366
359
{
367
- struct cmdq_instruction inst = { {0 } };
360
+ struct cmdq_instruction inst = {
361
+ .op = CMDQ_CODE_WFE ,
362
+ .value = CMDQ_WFE_UPDATE ,
363
+ .event = event
364
+ };
368
365
369
366
if (event >= CMDQ_MAX_EVENT )
370
367
return - EINVAL ;
371
368
372
- inst .op = CMDQ_CODE_WFE ;
373
- inst .value = CMDQ_WFE_UPDATE ;
374
- inst .event = event ;
375
-
376
369
return cmdq_pkt_append_command (pkt , inst );
377
370
}
378
371
EXPORT_SYMBOL (cmdq_pkt_clear_event );
379
372
380
373
int cmdq_pkt_set_event (struct cmdq_pkt * pkt , u16 event )
381
374
{
382
- struct cmdq_instruction inst = {};
375
+ struct cmdq_instruction inst = {
376
+ .op = CMDQ_CODE_WFE ,
377
+ .value = CMDQ_WFE_UPDATE | CMDQ_WFE_UPDATE_VALUE ,
378
+ .event = event
379
+ };
383
380
384
381
if (event >= CMDQ_MAX_EVENT )
385
382
return - EINVAL ;
386
383
387
- inst .op = CMDQ_CODE_WFE ;
388
- inst .value = CMDQ_WFE_UPDATE | CMDQ_WFE_UPDATE_VALUE ;
389
- inst .event = event ;
390
-
391
384
return cmdq_pkt_append_command (pkt , inst );
392
385
}
393
386
EXPORT_SYMBOL (cmdq_pkt_set_event );
394
387
395
388
int cmdq_pkt_poll (struct cmdq_pkt * pkt , u8 subsys ,
396
389
u16 offset , u32 value )
397
390
{
398
- struct cmdq_instruction inst = { {0 } };
399
- int err ;
400
-
401
- inst .op = CMDQ_CODE_POLL ;
402
- inst .value = value ;
403
- inst .offset = offset ;
404
- inst .subsys = subsys ;
405
- err = cmdq_pkt_append_command (pkt , inst );
406
-
407
- return err ;
391
+ struct cmdq_instruction inst = {
392
+ .op = CMDQ_CODE_POLL ,
393
+ .value = value ,
394
+ .offset = offset ,
395
+ .subsys = subsys
396
+ };
397
+ return cmdq_pkt_append_command (pkt , inst );
408
398
}
409
399
EXPORT_SYMBOL (cmdq_pkt_poll );
410
400
@@ -418,9 +408,7 @@ int cmdq_pkt_poll_mask(struct cmdq_pkt *pkt, u8 subsys,
418
408
return err ;
419
409
420
410
offset = offset | CMDQ_POLL_ENABLE_MASK ;
421
- err = cmdq_pkt_poll (pkt , subsys , offset , value );
422
-
423
- return err ;
411
+ return cmdq_pkt_poll (pkt , subsys , offset , value );
424
412
}
425
413
EXPORT_SYMBOL (cmdq_pkt_poll_mask );
426
414
@@ -474,11 +462,12 @@ int cmdq_pkt_logic_command(struct cmdq_pkt *pkt, u16 result_reg_idx,
474
462
enum cmdq_logic_op s_op ,
475
463
struct cmdq_operand * right_operand )
476
464
{
477
- struct cmdq_instruction inst = { { 0 } } ;
465
+ struct cmdq_instruction inst ;
478
466
479
467
if (!left_operand || !right_operand || s_op >= CMDQ_LOGIC_MAX )
480
468
return - EINVAL ;
481
469
470
+ inst .value = 0 ;
482
471
inst .op = CMDQ_CODE_LOGIC ;
483
472
inst .dst_t = CMDQ_REG_TYPE ;
484
473
inst .src_t = cmdq_operand_get_type (left_operand );
@@ -494,43 +483,43 @@ EXPORT_SYMBOL(cmdq_pkt_logic_command);
494
483
495
484
int cmdq_pkt_assign (struct cmdq_pkt * pkt , u16 reg_idx , u32 value )
496
485
{
497
- struct cmdq_instruction inst = {};
498
-
499
- inst . op = CMDQ_CODE_LOGIC ;
500
- inst . dst_t = CMDQ_REG_TYPE ;
501
- inst . reg_dst = reg_idx ;
502
- inst . value = value ;
486
+ struct cmdq_instruction inst = {
487
+ . op = CMDQ_CODE_LOGIC ,
488
+ . dst_t = CMDQ_REG_TYPE ,
489
+ . reg_dst = reg_idx ,
490
+ . value = value
491
+ } ;
503
492
return cmdq_pkt_append_command (pkt , inst );
504
493
}
505
494
EXPORT_SYMBOL (cmdq_pkt_assign );
506
495
507
496
int cmdq_pkt_jump_abs (struct cmdq_pkt * pkt , dma_addr_t addr , u8 shift_pa )
508
497
{
509
- struct cmdq_instruction inst = {};
510
-
511
- inst . op = CMDQ_CODE_JUMP ;
512
- inst . offset = CMDQ_JUMP_ABSOLUTE ;
513
- inst . value = addr >> shift_pa ;
498
+ struct cmdq_instruction inst = {
499
+ . op = CMDQ_CODE_JUMP ,
500
+ . offset = CMDQ_JUMP_ABSOLUTE ,
501
+ . value = addr >> shift_pa
502
+ } ;
514
503
return cmdq_pkt_append_command (pkt , inst );
515
504
}
516
505
EXPORT_SYMBOL (cmdq_pkt_jump_abs );
517
506
518
507
int cmdq_pkt_jump_rel (struct cmdq_pkt * pkt , s32 offset , u8 shift_pa )
519
508
{
520
- struct cmdq_instruction inst = { { 0 } };
521
-
522
- inst . op = CMDQ_CODE_JUMP ;
523
- inst . value = ( u32 ) offset >> shift_pa ;
509
+ struct cmdq_instruction inst = {
510
+ . op = CMDQ_CODE_JUMP ,
511
+ . value = ( u32 ) offset >> shift_pa
512
+ } ;
524
513
return cmdq_pkt_append_command (pkt , inst );
525
514
}
526
515
EXPORT_SYMBOL (cmdq_pkt_jump_rel );
527
516
528
517
int cmdq_pkt_eoc (struct cmdq_pkt * pkt )
529
518
{
530
- struct cmdq_instruction inst = { { 0 } };
531
-
532
- inst . op = CMDQ_CODE_EOC ;
533
- inst . value = CMDQ_EOC_IRQ_EN ;
519
+ struct cmdq_instruction inst = {
520
+ . op = CMDQ_CODE_EOC ,
521
+ . value = CMDQ_EOC_IRQ_EN
522
+ } ;
534
523
return cmdq_pkt_append_command (pkt , inst );
535
524
}
536
525
EXPORT_SYMBOL (cmdq_pkt_eoc );
@@ -541,19 +530,15 @@ int cmdq_pkt_finalize(struct cmdq_pkt *pkt)
541
530
int err ;
542
531
543
532
/* insert EOC and generate IRQ for each command iteration */
544
- inst .op = CMDQ_CODE_EOC ;
545
- inst .value = CMDQ_EOC_IRQ_EN ;
546
- err = cmdq_pkt_append_command (pkt , inst );
533
+ err = cmdq_pkt_eoc (pkt );
547
534
if (err < 0 )
548
535
return err ;
549
536
550
537
/* JUMP to end */
551
538
inst .op = CMDQ_CODE_JUMP ;
552
539
inst .value = CMDQ_JUMP_PASS >>
553
540
cmdq_get_shift_pa (((struct cmdq_client * )pkt -> cl )-> chan );
554
- err = cmdq_pkt_append_command (pkt , inst );
555
-
556
- return err ;
541
+ return cmdq_pkt_append_command (pkt , inst );
557
542
}
558
543
EXPORT_SYMBOL (cmdq_pkt_finalize );
559
544
0 commit comments