Skip to content

Commit ae094de

Browse files
Umang Jaingregkh
authored andcommitted
staging: vc04_services: Use %p4cc format modifier to print FourCC codes
Drop VCHIQ_FOURCC_AS_4CHARS macro in favour of %p4cc format modifier to print FourCC codes in the logs. vchiq_use_internal() and vchiq_release_internal() uses entity character-array to store a transient string that contains a FourCC code. Increase the length of entity array(to 64 bytes) since %p4cc requires more bytes to hold the output characters. Suggested-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com> Link: https://lore.kernel.org/r/20231025060717.71895-2-umang.jain@ideasonboard.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent b640e8f commit ae094de

4 files changed

Lines changed: 33 additions & 40 deletions

File tree

drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1441,7 +1441,7 @@ vchiq_use_internal(struct vchiq_state *state, struct vchiq_service *service,
14411441
{
14421442
struct vchiq_arm_state *arm_state = vchiq_platform_get_arm_state(state);
14431443
int ret = 0;
1444-
char entity[16];
1444+
char entity[64];
14451445
int *entity_uc;
14461446
int local_uc;
14471447

@@ -1454,8 +1454,8 @@ vchiq_use_internal(struct vchiq_state *state, struct vchiq_service *service,
14541454
sprintf(entity, "VCHIQ: ");
14551455
entity_uc = &arm_state->peer_use_count;
14561456
} else if (service) {
1457-
sprintf(entity, "%c%c%c%c:%03d",
1458-
VCHIQ_FOURCC_AS_4CHARS(service->base.fourcc),
1457+
sprintf(entity, "%p4cc:%03d",
1458+
&service->base.fourcc,
14591459
service->client_id);
14601460
entity_uc = &service->service_use_count;
14611461
} else {
@@ -1497,7 +1497,7 @@ vchiq_release_internal(struct vchiq_state *state, struct vchiq_service *service)
14971497
{
14981498
struct vchiq_arm_state *arm_state = vchiq_platform_get_arm_state(state);
14991499
int ret = 0;
1500-
char entity[16];
1500+
char entity[64];
15011501
int *entity_uc;
15021502

15031503
if (!arm_state) {
@@ -1506,8 +1506,8 @@ vchiq_release_internal(struct vchiq_state *state, struct vchiq_service *service)
15061506
}
15071507

15081508
if (service) {
1509-
sprintf(entity, "%c%c%c%c:%03d",
1510-
VCHIQ_FOURCC_AS_4CHARS(service->base.fourcc),
1509+
sprintf(entity, "%p4cc:%03d",
1510+
&service->base.fourcc,
15111511
service->client_id);
15121512
entity_uc = &service->service_use_count;
15131513
} else {
@@ -1713,8 +1713,8 @@ vchiq_dump_service_use_state(struct vchiq_state *state)
17131713

17141714
for (i = 0; i < found; i++) {
17151715
vchiq_log_warning(state->dev, VCHIQ_SUSPEND,
1716-
"%c%c%c%c:%d service count %d %s",
1717-
VCHIQ_FOURCC_AS_4CHARS(service_data[i].fourcc),
1716+
"%p4cc:%d service count %d %s",
1717+
&service_data[i].fourcc,
17181718
service_data[i].clientid, service_data[i].use_count,
17191719
service_data[i].use_count ? nz : "");
17201720
}
@@ -1743,8 +1743,8 @@ vchiq_check_service(struct vchiq_service *service)
17431743

17441744
if (ret) {
17451745
vchiq_log_error(service->state->dev, VCHIQ_SUSPEND,
1746-
"%s ERROR - %c%c%c%c:%d service count %d, state count %d", __func__,
1747-
VCHIQ_FOURCC_AS_4CHARS(service->base.fourcc), service->client_id,
1746+
"%s ERROR - %p4cc:%d service count %d, state count %d", __func__,
1747+
&service->base.fourcc, service->client_id,
17481748
service->service_use_count, arm_state->videocore_use_count);
17491749
vchiq_dump_service_use_state(service->state);
17501750
}

drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1112,9 +1112,9 @@ queue_message(struct vchiq_state *state, struct vchiq_service *service,
11121112
: VCHIQ_MAKE_FOURCC('?', '?', '?', '?');
11131113

11141114
vchiq_log_debug(state->dev, VCHIQ_CORE_MSG,
1115-
"Sent Msg %s(%u) to %c%c%c%c s:%u d:%d len:%zu",
1115+
"Sent Msg %s(%u) to %p4cc s:%u d:%d len:%zu",
11161116
msg_type_str(VCHIQ_MSG_TYPE(msgid)), VCHIQ_MSG_TYPE(msgid),
1117-
VCHIQ_FOURCC_AS_4CHARS(svc_fourcc), VCHIQ_MSG_SRCPORT(msgid),
1117+
&svc_fourcc, VCHIQ_MSG_SRCPORT(msgid),
11181118
VCHIQ_MSG_DSTPORT(msgid), size);
11191119
}
11201120

@@ -1206,9 +1206,9 @@ queue_message_sync(struct vchiq_state *state, struct vchiq_service *service,
12061206
: VCHIQ_MAKE_FOURCC('?', '?', '?', '?');
12071207

12081208
vchiq_log_trace(state->dev, VCHIQ_SYNC,
1209-
"Sent Sync Msg %s(%u) to %c%c%c%c s:%u d:%d len:%d",
1209+
"Sent Sync Msg %s(%u) to %p4cc s:%u d:%d len:%d",
12101210
msg_type_str(VCHIQ_MSG_TYPE(msgid)), VCHIQ_MSG_TYPE(msgid),
1211-
VCHIQ_FOURCC_AS_4CHARS(svc_fourcc), VCHIQ_MSG_SRCPORT(msgid),
1211+
&svc_fourcc, VCHIQ_MSG_SRCPORT(msgid),
12121212
VCHIQ_MSG_DSTPORT(msgid), size);
12131213

12141214
remote_event_signal(&state->remote->sync_trigger);
@@ -1449,9 +1449,9 @@ abort_outstanding_bulks(struct vchiq_service *service,
14491449
vchiq_complete_bulk(service->instance, bulk);
14501450

14511451
vchiq_log_debug(service->state->dev, VCHIQ_CORE_MSG,
1452-
"%s %c%c%c%c d:%d ABORTED - tx len:%d, rx len:%d",
1452+
"%s %p4cc d:%d ABORTED - tx len:%d, rx len:%d",
14531453
is_tx ? "Send Bulk to" : "Recv Bulk from",
1454-
VCHIQ_FOURCC_AS_4CHARS(service->base.fourcc),
1454+
&service->base.fourcc,
14551455
service->remoteport, bulk->size, bulk->remote_size);
14561456
} else {
14571457
/* fabricate a matching dummy bulk */
@@ -1485,8 +1485,8 @@ parse_open(struct vchiq_state *state, struct vchiq_header *header)
14851485

14861486
payload = (struct vchiq_open_payload *)header->data;
14871487
fourcc = payload->fourcc;
1488-
vchiq_log_debug(state->dev, VCHIQ_CORE, "%d: prs OPEN@%pK (%d->'%c%c%c%c')",
1489-
state->id, header, localport, VCHIQ_FOURCC_AS_4CHARS(fourcc));
1488+
vchiq_log_debug(state->dev, VCHIQ_CORE, "%d: prs OPEN@%pK (%d->'%p4cc')",
1489+
state->id, header, localport, &fourcc);
14901490

14911491
service = get_listening_service(state, fourcc);
14921492
if (!service)
@@ -1498,8 +1498,8 @@ parse_open(struct vchiq_state *state, struct vchiq_header *header)
14981498

14991499
if ((service->version < version_min) || (version < service->version_min)) {
15001500
/* Version mismatch */
1501-
dev_err(state->dev, "%d: service %d (%c%c%c%c) version mismatch - local (%d, min %d) vs. remote (%d, min %d)",
1502-
state->id, service->localport, VCHIQ_FOURCC_AS_4CHARS(fourcc),
1501+
dev_err(state->dev, "%d: service %d (%p4cc) version mismatch - local (%d, min %d) vs. remote (%d, min %d)",
1502+
state->id, service->localport, &fourcc,
15031503
service->version, service->version_min, version, version_min);
15041504
vchiq_service_put(service);
15051505
service = NULL;
@@ -1632,8 +1632,8 @@ parse_message(struct vchiq_state *state, struct vchiq_header *header)
16321632
: VCHIQ_MAKE_FOURCC('?', '?', '?', '?');
16331633

16341634
vchiq_log_debug(state->dev, VCHIQ_CORE_MSG,
1635-
"Rcvd Msg %s(%u) from %c%c%c%c s:%d d:%d len:%d",
1636-
msg_type_str(type), type, VCHIQ_FOURCC_AS_4CHARS(svc_fourcc),
1635+
"Rcvd Msg %s(%u) from %p4cc s:%d d:%d len:%d",
1636+
msg_type_str(type), type, &svc_fourcc,
16371637
remoteport, localport, size);
16381638
if (size > 0)
16391639
vchiq_log_dump_mem(state->dev, "Rcvd", 0, header->data, min(16, size));
@@ -1683,8 +1683,8 @@ parse_message(struct vchiq_state *state, struct vchiq_header *header)
16831683
if (vchiq_close_service_internal(service, CLOSE_RECVD) == -EAGAIN)
16841684
goto bail_not_ready;
16851685

1686-
vchiq_log_debug(state->dev, VCHIQ_CORE, "Close Service %c%c%c%c s:%u d:%d",
1687-
VCHIQ_FOURCC_AS_4CHARS(service->base.fourcc),
1686+
vchiq_log_debug(state->dev, VCHIQ_CORE, "Close Service %p4cc s:%u d:%d",
1687+
&service->base.fourcc,
16881688
service->localport, service->remoteport);
16891689
break;
16901690
case VCHIQ_MSG_DATA:
@@ -2044,8 +2044,8 @@ sync_func(void *v)
20442044
: VCHIQ_MAKE_FOURCC('?', '?', '?', '?');
20452045

20462046
vchiq_log_trace(state->dev, VCHIQ_SYNC,
2047-
"Rcvd Msg %s from %c%c%c%c s:%d d:%d len:%d",
2048-
msg_type_str(type), VCHIQ_FOURCC_AS_4CHARS(svc_fourcc),
2047+
"Rcvd Msg %s from %p4cc s:%d d:%d len:%d",
2048+
msg_type_str(type), &svc_fourcc,
20492049
remoteport, localport, size);
20502050
if (size > 0)
20512051
vchiq_log_dump_mem(state->dev, "Rcvd", 0, header->data, min(16, size));
@@ -2462,9 +2462,9 @@ vchiq_add_service_internal(struct vchiq_state *state,
24622462
/* Bring this service online */
24632463
set_service_state(service, srvstate);
24642464

2465-
vchiq_log_debug(state->dev, VCHIQ_CORE_MSG, "%s Service %c%c%c%c SrcPort:%d",
2465+
vchiq_log_debug(state->dev, VCHIQ_CORE_MSG, "%s Service %p4cc SrcPort:%d",
24662466
(srvstate == VCHIQ_SRVSTATE_OPENING) ? "Open" : "Add",
2467-
VCHIQ_FOURCC_AS_4CHARS(params->fourcc), service->localport);
2467+
&params->fourcc, service->localport);
24682468

24692469
/* Don't unlock the service - leave it with a ref_count of 1. */
24702470

@@ -3543,8 +3543,8 @@ int vchiq_dump_service_state(void *dump_context, struct vchiq_service *service)
35433543
}
35443544

35453545
len += scnprintf(buf + len, sizeof(buf) - len,
3546-
" '%c%c%c%c' remote %s (msg use %d/%d, slot use %d/%d)",
3547-
VCHIQ_FOURCC_AS_4CHARS(fourcc), remoteport,
3546+
" '%p4cc' remote %s (msg use %d/%d, slot use %d/%d)",
3547+
&fourcc, remoteport,
35483548
quota->message_use_count, quota->message_quota,
35493549
quota->slot_use_count, quota->slot_quota);
35503550

drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,6 @@ static inline const char *log_category_str(enum vchiq_log_category c)
7474
#define VCHIQ_SLOT_ZERO_SLOTS DIV_ROUND_UP(sizeof(struct vchiq_slot_zero), \
7575
VCHIQ_SLOT_SIZE)
7676

77-
#define VCHIQ_FOURCC_AS_4CHARS(fourcc) \
78-
((fourcc) >> 24) & 0xff, \
79-
((fourcc) >> 16) & 0xff, \
80-
((fourcc) >> 8) & 0xff, \
81-
(fourcc) & 0xff
82-
8377
#define BITSET_SIZE(b) ((b + 31) >> 5)
8478
#define BITSET_WORD(b) (b >> 5)
8579
#define BITSET_BIT(b) (1 << (b & 31))

drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -701,13 +701,12 @@ vchiq_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
701701
vchiq_release_service_internal(service);
702702
if (ret) {
703703
vchiq_log_error(instance->state->dev, VCHIQ_SUSPEND,
704-
"%s: cmd %s returned error %ld for service %c%c%c%c:%03d",
704+
"%s: cmd %s returned error %ld for service %p4cc:%03d",
705705
__func__, (cmd == VCHIQ_IOC_USE_SERVICE) ?
706706
"VCHIQ_IOC_USE_SERVICE" :
707707
"VCHIQ_IOC_RELEASE_SERVICE",
708-
ret,
709-
VCHIQ_FOURCC_AS_4CHARS(service->base.fourcc),
710-
service->client_id);
708+
ret, &service->base.fourcc,
709+
service->client_id);
711710
}
712711
} else {
713712
ret = -EINVAL;

0 commit comments

Comments
 (0)