sc_ipc             27 drivers/firmware/imx/imx-scu.c 	struct imx_sc_ipc *sc_ipc;
sc_ipc            116 drivers/firmware/imx/imx-scu.c 	struct imx_sc_ipc *sc_ipc = sc_chan->sc_ipc;
sc_ipc            121 drivers/firmware/imx/imx-scu.c 	if (!sc_ipc->msg) {
sc_ipc            122 drivers/firmware/imx/imx-scu.c 		dev_warn(sc_ipc->dev, "unexpected rx idx %d 0x%08x, ignore!\n",
sc_ipc            127 drivers/firmware/imx/imx-scu.c 	if (sc_ipc->fast_ipc) {
sc_ipc            129 drivers/firmware/imx/imx-scu.c 		sc_ipc->rx_size = hdr->size;
sc_ipc            130 drivers/firmware/imx/imx-scu.c 		sc_ipc->msg[0] = *data++;
sc_ipc            132 drivers/firmware/imx/imx-scu.c 		for (i = 1; i < sc_ipc->rx_size; i++)
sc_ipc            133 drivers/firmware/imx/imx-scu.c 			sc_ipc->msg[i] = *data++;
sc_ipc            135 drivers/firmware/imx/imx-scu.c 		complete(&sc_ipc->done);
sc_ipc            142 drivers/firmware/imx/imx-scu.c 		sc_ipc->rx_size = hdr->size;
sc_ipc            143 drivers/firmware/imx/imx-scu.c 		dev_dbg(sc_ipc->dev, "msg rx size %u\n", sc_ipc->rx_size);
sc_ipc            144 drivers/firmware/imx/imx-scu.c 		if (sc_ipc->rx_size > 4)
sc_ipc            145 drivers/firmware/imx/imx-scu.c 			dev_warn(sc_ipc->dev, "RPC does not support receiving over 4 words: %u\n",
sc_ipc            146 drivers/firmware/imx/imx-scu.c 				 sc_ipc->rx_size);
sc_ipc            149 drivers/firmware/imx/imx-scu.c 	sc_ipc->msg[sc_chan->idx] = *data;
sc_ipc            150 drivers/firmware/imx/imx-scu.c 	sc_ipc->count++;
sc_ipc            152 drivers/firmware/imx/imx-scu.c 	dev_dbg(sc_ipc->dev, "mu %u msg %u 0x%x\n", sc_chan->idx,
sc_ipc            153 drivers/firmware/imx/imx-scu.c 		sc_ipc->count, *data);
sc_ipc            155 drivers/firmware/imx/imx-scu.c 	if ((sc_ipc->rx_size != 0) && (sc_ipc->count == sc_ipc->rx_size))
sc_ipc            156 drivers/firmware/imx/imx-scu.c 		complete(&sc_ipc->done);
sc_ipc            159 drivers/firmware/imx/imx-scu.c static int imx_scu_ipc_write(struct imx_sc_ipc *sc_ipc, void *msg)
sc_ipc            172 drivers/firmware/imx/imx-scu.c 	dev_dbg(sc_ipc->dev, "RPC SVC %u FUNC %u SIZE %u\n", hdr.svc,
sc_ipc            175 drivers/firmware/imx/imx-scu.c 	size = sc_ipc->fast_ipc ? 1 : hdr.size;
sc_ipc            177 drivers/firmware/imx/imx-scu.c 		sc_chan = &sc_ipc->chans[i % 4];
sc_ipc            188 drivers/firmware/imx/imx-scu.c 		if (!sc_ipc->fast_ipc) {
sc_ipc            204 drivers/firmware/imx/imx-scu.c int imx_scu_call_rpc(struct imx_sc_ipc *sc_ipc, void *msg, bool have_resp)
sc_ipc            209 drivers/firmware/imx/imx-scu.c 	if (WARN_ON(!sc_ipc || !msg))
sc_ipc            212 drivers/firmware/imx/imx-scu.c 	mutex_lock(&sc_ipc->lock);
sc_ipc            213 drivers/firmware/imx/imx-scu.c 	reinit_completion(&sc_ipc->done);
sc_ipc            216 drivers/firmware/imx/imx-scu.c 		sc_ipc->msg = msg;
sc_ipc            217 drivers/firmware/imx/imx-scu.c 	sc_ipc->count = 0;
sc_ipc            218 drivers/firmware/imx/imx-scu.c 	ret = imx_scu_ipc_write(sc_ipc, msg);
sc_ipc            220 drivers/firmware/imx/imx-scu.c 		dev_err(sc_ipc->dev, "RPC send msg failed: %d\n", ret);
sc_ipc            225 drivers/firmware/imx/imx-scu.c 		if (!wait_for_completion_timeout(&sc_ipc->done,
sc_ipc            227 drivers/firmware/imx/imx-scu.c 			dev_err(sc_ipc->dev, "RPC send msg timeout\n");
sc_ipc            228 drivers/firmware/imx/imx-scu.c 			mutex_unlock(&sc_ipc->lock);
sc_ipc            238 drivers/firmware/imx/imx-scu.c 	sc_ipc->msg = NULL;
sc_ipc            239 drivers/firmware/imx/imx-scu.c 	mutex_unlock(&sc_ipc->lock);
sc_ipc            241 drivers/firmware/imx/imx-scu.c 	dev_dbg(sc_ipc->dev, "RPC SVC done\n");
sc_ipc            250 drivers/firmware/imx/imx-scu.c 	struct imx_sc_ipc *sc_ipc;
sc_ipc            259 drivers/firmware/imx/imx-scu.c 	sc_ipc = devm_kzalloc(dev, sizeof(*sc_ipc), GFP_KERNEL);
sc_ipc            260 drivers/firmware/imx/imx-scu.c 	if (!sc_ipc)
sc_ipc            268 drivers/firmware/imx/imx-scu.c 	sc_ipc->fast_ipc = of_device_is_compatible(args.np, "fsl,imx8-mu-scu");
sc_ipc            270 drivers/firmware/imx/imx-scu.c 	num_channel = sc_ipc->fast_ipc ? 2 : SCU_MU_CHAN_NUM;
sc_ipc            281 drivers/firmware/imx/imx-scu.c 		sc_chan = &sc_ipc->chans[i];
sc_ipc            288 drivers/firmware/imx/imx-scu.c 		if (!sc_ipc->fast_ipc) {
sc_ipc            295 drivers/firmware/imx/imx-scu.c 		sc_chan->sc_ipc = sc_ipc;
sc_ipc            311 drivers/firmware/imx/imx-scu.c 	sc_ipc->dev = dev;
sc_ipc            312 drivers/firmware/imx/imx-scu.c 	mutex_init(&sc_ipc->lock);
sc_ipc            313 drivers/firmware/imx/imx-scu.c 	init_completion(&sc_ipc->done);
sc_ipc            315 drivers/firmware/imx/imx-scu.c 	imx_sc_ipc_handle = sc_ipc;
sc_ipc             51 sound/soc/sof/imx/imx8.c 	struct imx_sc_ipc *sc_ipc;
sc_ipc            146 sound/soc/sof/imx/imx8.c 	ret = imx_sc_misc_set_control(dsp_priv->sc_ipc, IMX_SC_R_DSP,
sc_ipc            153 sound/soc/sof/imx/imx8.c 	ret = imx_sc_misc_set_control(dsp_priv->sc_ipc, IMX_SC_R_DSP,
sc_ipc            160 sound/soc/sof/imx/imx8.c 	ret = imx_sc_misc_set_control(dsp_priv->sc_ipc, IMX_SC_R_DSP,
sc_ipc            168 sound/soc/sof/imx/imx8.c 	ret = imx_sc_misc_set_control(dsp_priv->sc_ipc, IMX_SC_R_DSP,
sc_ipc            175 sound/soc/sof/imx/imx8.c 	imx_sc_pm_cpu_start(dsp_priv->sc_ipc, IMX_SC_R_DSP, true,
sc_ipc            237 sound/soc/sof/imx/imx8.c 	ret = imx_scu_get_handle(&priv->sc_ipc);