Lines Matching full:fw
94 * @fw: Pointer to secure-monitor firmware
105 int meson_sm_call(struct meson_sm_firmware *fw, unsigned int cmd_index,
111 if (!fw->chip)
114 cmd = meson_sm_get_cmd(fw->chip, cmd_index);
130 * @fw: Pointer to secure-monitor firmware
144 int meson_sm_call_read(struct meson_sm_firmware *fw, void *buffer,
151 if (!fw->chip)
154 if (!fw->chip->cmd_shmem_out_base)
157 if (bsize > fw->chip->shmem_size)
160 if (meson_sm_call(fw, cmd_index, &size, arg0, arg1, arg2, arg3, arg4) < 0)
177 memcpy(buffer, fw->sm_shmem_out_base, size);
186 * @fw: Pointer to secure-monitor firmware
198 int meson_sm_call_write(struct meson_sm_firmware *fw, void *buffer,
204 if (!fw->chip)
207 if (size > fw->chip->shmem_size)
210 if (!fw->chip->cmd_shmem_in_base)
213 memcpy(fw->sm_shmem_in_base, buffer, size);
215 if (meson_sm_call(fw, cmd_index, &written, arg0, arg1, arg2, arg3, arg4) < 0)
251 struct meson_sm_firmware *fw;
255 fw = platform_get_drvdata(pdev);
261 ret = meson_sm_call_read(fw, id_buf, SM_CHIP_ID_LENGTH, SM_GET_CHIP_ID,
292 struct meson_sm_firmware *fw;
294 fw = devm_kzalloc(dev, sizeof(*fw), GFP_KERNEL);
295 if (!fw)
303 fw->sm_shmem_in_base = meson_sm_map_shmem(chip->cmd_shmem_in_base,
305 if (WARN_ON(!fw->sm_shmem_in_base))
310 fw->sm_shmem_out_base = meson_sm_map_shmem(chip->cmd_shmem_out_base,
312 if (WARN_ON(!fw->sm_shmem_out_base))
316 fw->chip = chip;
318 platform_set_drvdata(pdev, fw);
328 iounmap(fw->sm_shmem_out_base);
330 iounmap(fw->sm_shmem_in_base);