Lines Matching refs:sproc

20 #define sproc_dbg(sproc, fmt, ...) \  argument
21 dev_dbg(&sproc->mdev->pdev.dev, fmt, ##__VA_ARGS__)
22 #define sproc_err(sproc, fmt, ...) \ argument
23 dev_err(&sproc->mdev->pdev.dev, fmt, ##__VA_ARGS__)
26 struct sproc { struct
59 struct sproc *sproc = rproc->priv; in sproc_load_segments() local
61 memcpy(sproc->fw_addr, fw->data, fw->size); in sproc_load_segments()
89 struct sproc *sproc = rproc->priv; in sproc_find_rsc_table() local
98 sproc_err(sproc, "resource table not found in fw\n"); in sproc_find_rsc_table()
110 sproc_err(sproc, "bad size of fw or resource table\n"); in sproc_find_rsc_table()
116 sproc_err(sproc, "unsupported fw ver: %d\n", table->ver); in sproc_find_rsc_table()
122 sproc_err(sproc, "non zero reserved bytes\n"); in sproc_find_rsc_table()
130 sproc_err(sproc, "resource table incomplete\n"); in sproc_find_rsc_table()
136 sproc_err(sproc, "Insufficient space for fw (%d < %zd)\n", in sproc_find_rsc_table()
141 sproc->fw_size = fw->size; in sproc_find_rsc_table()
151 struct sproc *sproc = rproc->priv; in sproc_find_loaded_rsc_table() local
154 if (!fw || !sproc->fw_addr) in sproc_find_loaded_rsc_table()
157 entry = sproc_find_rsc_entry(sproc->fw_addr); in sproc_find_loaded_rsc_table()
159 sproc_err(sproc, "resource table not found in fw\n"); in sproc_find_loaded_rsc_table()
163 return sproc->fw_addr + entry->start; in sproc_find_loaded_rsc_table()
176 struct sproc *sproc = rproc->priv; in sproc_kick() local
178 sproc_dbg(sproc, "kick vqid:%d\n", vqid); in sproc_kick()
184 sproc->mdev->ops.kick(sproc->mdev, vqid + SPROC_MAX_NOTIFY_ID); in sproc_kick()
190 struct sproc *sproc = mdev->drv_data; in sproc_kick_callback() local
192 if (rproc_vq_interrupt(sproc->rproc, vqid) == IRQ_NONE) in sproc_kick_callback()
193 sproc_dbg(sproc, "no message was found in vqid %d\n", vqid); in sproc_kick_callback()
203 struct sproc *sproc = rproc->priv; in sproc_start() local
206 sproc_dbg(sproc, "start ste-modem\n"); in sproc_start()
210 sproc_err(sproc, "Notification IDs too high:%d\n", in sproc_start()
217 err = sproc->mdev->ops.kick_subscribe(sproc->mdev, i); in sproc_start()
219 sproc_err(sproc, in sproc_start()
226 return sproc->mdev->ops.power(sproc->mdev, true); in sproc_start()
232 struct sproc *sproc = rproc->priv; in sproc_stop() local
233 sproc_dbg(sproc, "stop ste-modem\n"); in sproc_stop()
235 return sproc->mdev->ops.power(sproc->mdev, false); in sproc_stop()
249 struct sproc *sproc = mdev->drv_data; in sproc_drv_remove() local
251 sproc_dbg(sproc, "remove ste-modem\n"); in sproc_drv_remove()
254 sproc->mdev->ops.setup(sproc->mdev, NULL); in sproc_drv_remove()
257 rproc_del(sproc->rproc); in sproc_drv_remove()
258 dma_free_coherent(sproc->rproc->dev.parent, SPROC_FW_SIZE, in sproc_drv_remove()
259 sproc->fw_addr, sproc->fw_dma_addr); in sproc_drv_remove()
260 rproc_put(sproc->rproc); in sproc_drv_remove()
272 struct sproc *sproc; in sproc_probe() local
285 SPROC_MODEM_FIRMWARE, sizeof(*sproc)); in sproc_probe()
289 sproc = rproc->priv; in sproc_probe()
290 sproc->mdev = mdev; in sproc_probe()
291 sproc->rproc = rproc; in sproc_probe()
293 mdev->drv_data = sproc; in sproc_probe()
296 sproc->mdev->ops.setup(sproc->mdev, &sproc_dev_cb); in sproc_probe()
306 sproc->fw_addr = dma_alloc_coherent(rproc->dev.parent, SPROC_FW_SIZE, in sproc_probe()
307 &sproc->fw_dma_addr, in sproc_probe()
309 if (!sproc->fw_addr) { in sproc_probe()
310 sproc_err(sproc, "Cannot allocate memory for fw\n"); in sproc_probe()
324 sproc->fw_addr, sproc->fw_dma_addr); in sproc_probe()