Skip to content

Commit 3477184

Browse files
author
AngeloGioacchino Del Regno
committed
soc: mediatek: mtk-cmdq: Move cmdq_instruction init to declaration
Move, where possible, the initialization of struct cmdq_instruction variables to their declaration to compress the code. While at it, also change an instance of open-coded mask to use the GENMASK() macro instead, and instances of `ret = func(); return ret;` to the equivalent (but shorter) `return func()`. Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
1 parent 4b33472 commit 3477184

File tree

1 file changed

+92
-107
lines changed

1 file changed

+92
-107
lines changed

drivers/soc/mediatek/mtk-cmdq-helper.c

Lines changed: 92 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -191,13 +191,12 @@ static int cmdq_pkt_mask(struct cmdq_pkt *pkt, u32 mask)
191191

192192
int cmdq_pkt_write(struct cmdq_pkt *pkt, u8 subsys, u16 offset, u32 value)
193193
{
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+
};
201200
return cmdq_pkt_append_command(pkt, inst);
202201
}
203202
EXPORT_SYMBOL(cmdq_pkt_write);
@@ -208,99 +207,93 @@ int cmdq_pkt_write_mask(struct cmdq_pkt *pkt, u8 subsys,
208207
u16 offset_mask = offset;
209208
int err;
210209

211-
if (mask != 0xffffffff) {
210+
if (mask != GENMASK(31, 0)) {
212211
err = cmdq_pkt_mask(pkt, mask);
213212
if (err < 0)
214213
return err;
215214

216215
offset_mask |= CMDQ_WRITE_ENABLE_MASK;
217216
}
218-
err = cmdq_pkt_write(pkt, subsys, offset_mask, value);
219-
220-
return err;
217+
return cmdq_pkt_write(pkt, subsys, offset_mask, value);
221218
}
222219
EXPORT_SYMBOL(cmdq_pkt_write_mask);
223220

224221
int cmdq_pkt_read_s(struct cmdq_pkt *pkt, u16 high_addr_reg_idx, u16 addr_low,
225222
u16 reg_idx)
226223
{
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+
};
235231
return cmdq_pkt_append_command(pkt, inst);
236232
}
237233
EXPORT_SYMBOL(cmdq_pkt_read_s);
238234

239235
int cmdq_pkt_write_s(struct cmdq_pkt *pkt, u16 high_addr_reg_idx,
240236
u16 addr_low, u16 src_reg_idx)
241237
{
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+
};
250245
return cmdq_pkt_append_command(pkt, inst);
251246
}
252247
EXPORT_SYMBOL(cmdq_pkt_write_s);
253248

254249
int cmdq_pkt_write_s_mask(struct cmdq_pkt *pkt, u16 high_addr_reg_idx,
255250
u16 addr_low, u16 src_reg_idx, u32 mask)
256251
{
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+
};
258259
int err;
259260

260261
err = cmdq_pkt_mask(pkt, mask);
261262
if (err < 0)
262263
return err;
263264

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-
271265
return cmdq_pkt_append_command(pkt, inst);
272266
}
273267
EXPORT_SYMBOL(cmdq_pkt_write_s_mask);
274268

275269
int cmdq_pkt_write_s_value(struct cmdq_pkt *pkt, u8 high_addr_reg_idx,
276270
u16 addr_low, u32 value)
277271
{
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+
};
285278
return cmdq_pkt_append_command(pkt, inst);
286279
}
287280
EXPORT_SYMBOL(cmdq_pkt_write_s_value);
288281

289282
int cmdq_pkt_write_s_mask_value(struct cmdq_pkt *pkt, u8 high_addr_reg_idx,
290283
u16 addr_low, u32 value, u32 mask)
291284
{
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+
};
293291
int err;
294292

295293
err = cmdq_pkt_mask(pkt, mask);
296294
if (err < 0)
297295
return err;
298296

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-
304297
return cmdq_pkt_append_command(pkt, inst);
305298
}
306299
EXPORT_SYMBOL(cmdq_pkt_write_s_mask_value);
@@ -333,78 +326,75 @@ EXPORT_SYMBOL(cmdq_pkt_mem_move);
333326

334327
int cmdq_pkt_wfe(struct cmdq_pkt *pkt, u16 event, bool clear)
335328
{
336-
struct cmdq_instruction inst = { {0} };
337329
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+
};
338335

339336
if (event >= CMDQ_MAX_EVENT)
340337
return -EINVAL;
341338

342-
inst.op = CMDQ_CODE_WFE;
343-
inst.value = CMDQ_WFE_OPTION | clear_option;
344-
inst.event = event;
345-
346339
return cmdq_pkt_append_command(pkt, inst);
347340
}
348341
EXPORT_SYMBOL(cmdq_pkt_wfe);
349342

350343
int cmdq_pkt_acquire_event(struct cmdq_pkt *pkt, u16 event)
351344
{
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+
};
353350

354351
if (event >= CMDQ_MAX_EVENT)
355352
return -EINVAL;
356353

357-
inst.op = CMDQ_CODE_WFE;
358-
inst.value = CMDQ_WFE_UPDATE | CMDQ_WFE_UPDATE_VALUE | CMDQ_WFE_WAIT;
359-
inst.event = event;
360-
361354
return cmdq_pkt_append_command(pkt, inst);
362355
}
363356
EXPORT_SYMBOL(cmdq_pkt_acquire_event);
364357

365358
int cmdq_pkt_clear_event(struct cmdq_pkt *pkt, u16 event)
366359
{
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+
};
368365

369366
if (event >= CMDQ_MAX_EVENT)
370367
return -EINVAL;
371368

372-
inst.op = CMDQ_CODE_WFE;
373-
inst.value = CMDQ_WFE_UPDATE;
374-
inst.event = event;
375-
376369
return cmdq_pkt_append_command(pkt, inst);
377370
}
378371
EXPORT_SYMBOL(cmdq_pkt_clear_event);
379372

380373
int cmdq_pkt_set_event(struct cmdq_pkt *pkt, u16 event)
381374
{
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+
};
383380

384381
if (event >= CMDQ_MAX_EVENT)
385382
return -EINVAL;
386383

387-
inst.op = CMDQ_CODE_WFE;
388-
inst.value = CMDQ_WFE_UPDATE | CMDQ_WFE_UPDATE_VALUE;
389-
inst.event = event;
390-
391384
return cmdq_pkt_append_command(pkt, inst);
392385
}
393386
EXPORT_SYMBOL(cmdq_pkt_set_event);
394387

395388
int cmdq_pkt_poll(struct cmdq_pkt *pkt, u8 subsys,
396389
u16 offset, u32 value)
397390
{
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);
408398
}
409399
EXPORT_SYMBOL(cmdq_pkt_poll);
410400

@@ -418,9 +408,7 @@ int cmdq_pkt_poll_mask(struct cmdq_pkt *pkt, u8 subsys,
418408
return err;
419409

420410
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);
424412
}
425413
EXPORT_SYMBOL(cmdq_pkt_poll_mask);
426414

@@ -474,11 +462,12 @@ int cmdq_pkt_logic_command(struct cmdq_pkt *pkt, u16 result_reg_idx,
474462
enum cmdq_logic_op s_op,
475463
struct cmdq_operand *right_operand)
476464
{
477-
struct cmdq_instruction inst = { {0} };
465+
struct cmdq_instruction inst;
478466

479467
if (!left_operand || !right_operand || s_op >= CMDQ_LOGIC_MAX)
480468
return -EINVAL;
481469

470+
inst.value = 0;
482471
inst.op = CMDQ_CODE_LOGIC;
483472
inst.dst_t = CMDQ_REG_TYPE;
484473
inst.src_t = cmdq_operand_get_type(left_operand);
@@ -494,43 +483,43 @@ EXPORT_SYMBOL(cmdq_pkt_logic_command);
494483

495484
int cmdq_pkt_assign(struct cmdq_pkt *pkt, u16 reg_idx, u32 value)
496485
{
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+
};
503492
return cmdq_pkt_append_command(pkt, inst);
504493
}
505494
EXPORT_SYMBOL(cmdq_pkt_assign);
506495

507496
int cmdq_pkt_jump_abs(struct cmdq_pkt *pkt, dma_addr_t addr, u8 shift_pa)
508497
{
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+
};
514503
return cmdq_pkt_append_command(pkt, inst);
515504
}
516505
EXPORT_SYMBOL(cmdq_pkt_jump_abs);
517506

518507
int cmdq_pkt_jump_rel(struct cmdq_pkt *pkt, s32 offset, u8 shift_pa)
519508
{
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+
};
524513
return cmdq_pkt_append_command(pkt, inst);
525514
}
526515
EXPORT_SYMBOL(cmdq_pkt_jump_rel);
527516

528517
int cmdq_pkt_eoc(struct cmdq_pkt *pkt)
529518
{
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+
};
534523
return cmdq_pkt_append_command(pkt, inst);
535524
}
536525
EXPORT_SYMBOL(cmdq_pkt_eoc);
@@ -541,19 +530,15 @@ int cmdq_pkt_finalize(struct cmdq_pkt *pkt)
541530
int err;
542531

543532
/* 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);
547534
if (err < 0)
548535
return err;
549536

550537
/* JUMP to end */
551538
inst.op = CMDQ_CODE_JUMP;
552539
inst.value = CMDQ_JUMP_PASS >>
553540
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);
557542
}
558543
EXPORT_SYMBOL(cmdq_pkt_finalize);
559544

0 commit comments

Comments
 (0)