Lines Matching refs:rproc
23 struct rproc *rproc = container_of(filp->f_inode->i_cdev, struct rproc, cdev); in rproc_cdev_write() local
35 if (rproc->state == RPROC_RUNNING || in rproc_cdev_write()
36 rproc->state == RPROC_ATTACHED) in rproc_cdev_write()
39 ret = rproc_boot(rproc); in rproc_cdev_write()
41 if (rproc->state != RPROC_RUNNING && in rproc_cdev_write()
42 rproc->state != RPROC_ATTACHED) in rproc_cdev_write()
45 rproc_shutdown(rproc); in rproc_cdev_write()
47 if (rproc->state != RPROC_ATTACHED) in rproc_cdev_write()
50 ret = rproc_detach(rproc); in rproc_cdev_write()
52 dev_err(&rproc->dev, "Unrecognized option\n"); in rproc_cdev_write()
61 struct rproc *rproc = container_of(filp->f_inode->i_cdev, struct rproc, cdev); in rproc_device_ioctl() local
70 rproc->cdev_put_on_release = !!param; in rproc_device_ioctl()
73 param = (s32)rproc->cdev_put_on_release; in rproc_device_ioctl()
79 dev_err(&rproc->dev, "Unsupported ioctl\n"); in rproc_device_ioctl()
88 struct rproc *rproc = container_of(inode->i_cdev, struct rproc, cdev); in rproc_cdev_release() local
91 if (!rproc->cdev_put_on_release) in rproc_cdev_release()
94 if (rproc->state == RPROC_RUNNING) in rproc_cdev_release()
95 rproc_shutdown(rproc); in rproc_cdev_release()
96 else if (rproc->state == RPROC_ATTACHED) in rproc_cdev_release()
97 ret = rproc_detach(rproc); in rproc_cdev_release()
109 int rproc_char_device_add(struct rproc *rproc) in rproc_char_device_add() argument
113 cdev_init(&rproc->cdev, &rproc_fops); in rproc_char_device_add()
114 rproc->cdev.owner = THIS_MODULE; in rproc_char_device_add()
116 rproc->dev.devt = MKDEV(MAJOR(rproc_major), rproc->index); in rproc_char_device_add()
117 cdev_set_parent(&rproc->cdev, &rproc->dev.kobj); in rproc_char_device_add()
118 ret = cdev_add(&rproc->cdev, rproc->dev.devt, 1); in rproc_char_device_add()
120 dev_err(&rproc->dev, "Failed to add char dev for %s\n", rproc->name); in rproc_char_device_add()
125 void rproc_char_device_remove(struct rproc *rproc) in rproc_char_device_remove() argument
127 cdev_del(&rproc->cdev); in rproc_char_device_remove()