Lines Matching defs:shmem
92 scmi_message_header(volatile struct scmi_shmem *shmem,
95 shmem->message_header = (protocol_id << 10) | (message_id << 0);
196 volatile struct scmi_shmem *shmem;
210 phandle = OF_getpropint(faa->fa_node, "shmem", 0);
212 if (node == NULL || !fdt_is_compatible(node, "arm,scmi-shmem") ||
224 shmem = sc->sc_shmem_tx;
228 if ((shmem->channel_status & SCMI_CHANNEL_FREE) == 0) {
233 scmi_message_header(shmem, SCMI_BASE, SCMI_PROTOCOL_VERSION);
234 shmem->length = sizeof(uint32_t);
241 version = shmem->message_payload[1];
264 /* we only support the 2 mbox / 2 shmem case */
271 len = OF_getproplen(sc->sc_node, "shmem");
278 OF_getpropintarray(sc->sc_node, "shmem", shmems, len);
292 if (node == NULL || !fdt_is_compatible(node, "arm,scmi-shmem") ||
304 if (node == NULL || !fdt_is_compatible(node, "arm,scmi-shmem") ||
339 volatile struct scmi_shmem *shmem = sc->sc_shmem_tx;
342 shmem->channel_status = 0;
346 if ((shmem->channel_status & SCMI_CHANNEL_ERROR))
348 if ((shmem->channel_status & SCMI_CHANNEL_FREE) == 0)
350 return shmem->message_payload[0];
356 volatile struct scmi_shmem *shmem = sc->sc_shmem_tx;
360 shmem->channel_status = 0;
367 if (shmem->channel_status & SCMI_CHANNEL_FREE)
371 if ((shmem->channel_status & SCMI_CHANNEL_ERROR))
373 if ((shmem->channel_status & SCMI_CHANNEL_FREE) == 0)
376 return shmem->message_payload[0];
403 volatile struct scmi_shmem *shmem = sc->sc_shmem_tx;
407 scmi_message_header(shmem, SCMI_CLOCK, SCMI_PROTOCOL_ATTRIBUTES);
408 shmem->length = sizeof(uint32_t);
413 nclocks = shmem->message_payload[1] & 0xffff;
429 volatile struct scmi_shmem *shmem = sc->sc_shmem_tx;
432 scmi_message_header(shmem, SCMI_CLOCK, SCMI_CLOCK_CONFIG_SET);
433 shmem->length = 3 * sizeof(uint32_t);
434 shmem->message_payload[0] = idx;
435 shmem->message_payload[1] = on ? SCMI_CLOCK_CONFIG_SET_ENABLE : 0;
443 volatile struct scmi_shmem *shmem = sc->sc_shmem_tx;
447 scmi_message_header(shmem, SCMI_CLOCK, SCMI_CLOCK_RATE_GET);
448 shmem->length = 2 * sizeof(uint32_t);
449 shmem->message_payload[0] = idx;
453 if (shmem->message_payload[2] != 0)
456 return shmem->message_payload[1];
463 volatile struct scmi_shmem *shmem = sc->sc_shmem_tx;
467 scmi_message_header(shmem, SCMI_CLOCK, SCMI_CLOCK_RATE_SET);
468 shmem->length = 5 * sizeof(uint32_t);
469 shmem->message_payload[0] = 0;
470 shmem->message_payload[1] = idx;
471 shmem->message_payload[2] = freq;
472 shmem->message_payload[3] = 0;
487 volatile struct scmi_shmem *shmem = sc->sc_shmem_tx;
501 version = shmem->message_payload[1];
508 scmi_message_header(shmem, SCMI_PERF, SCMI_PROTOCOL_ATTRIBUTES);
509 shmem->length = sizeof(uint32_t);
517 sc->sc_perf_ndomains = shmem->message_payload[1] & 0xffff;
520 sc->sc_perf_power_unit = (shmem->message_payload[1] >> 16) & 0x3;
534 scmi_message_header(shmem, SCMI_PERF,
536 shmem->length = 2 * sizeof(uint32_t);
537 shmem->message_payload[0] = i;
565 volatile struct scmi_shmem *shmem = sc->sc_shmem_tx;
572 scmi_message_header(shmem, SCMI_PERF,
574 shmem->length = sizeof(uint32_t) * 3;
575 shmem->message_payload[0] = domain;
576 shmem->message_payload[1] = idx;
585 &shmem->message_payload[1];
610 volatile struct scmi_shmem *shmem = sc->sc_shmem_tx;
622 scmi_message_header(shmem, SCMI_PERF,
624 shmem->length = sizeof(uint32_t) * 2;
625 shmem->message_payload[0] = i;
633 level = shmem->message_payload[1];