Lines Matching refs:ctrldev

57 	struct rpmsg_ctrldev *ctrldev = cdev_to_ctrldev(inode->i_cdev);  in rpmsg_ctrldev_open()  local
59 get_device(&ctrldev->dev); in rpmsg_ctrldev_open()
60 filp->private_data = ctrldev; in rpmsg_ctrldev_open()
67 struct rpmsg_ctrldev *ctrldev = cdev_to_ctrldev(inode->i_cdev); in rpmsg_ctrldev_release() local
69 put_device(&ctrldev->dev); in rpmsg_ctrldev_release()
77 struct rpmsg_ctrldev *ctrldev = fp->private_data; in rpmsg_ctrldev_ioctl() local
92 mutex_lock(&ctrldev->ctrl_lock); in rpmsg_ctrldev_ioctl()
95 ret = rpmsg_chrdev_eptdev_create(ctrldev->rpdev, &ctrldev->dev, chinfo); in rpmsg_ctrldev_ioctl()
99 rpdev = rpmsg_create_channel(ctrldev->rpdev, &chinfo); in rpmsg_ctrldev_ioctl()
101 dev_err(&ctrldev->dev, "failed to create %s channel\n", chinfo.name); in rpmsg_ctrldev_ioctl()
107 ret = rpmsg_release_channel(ctrldev->rpdev, &chinfo); in rpmsg_ctrldev_ioctl()
109 dev_err(&ctrldev->dev, "failed to release %s channel (%d)\n", in rpmsg_ctrldev_ioctl()
116 mutex_unlock(&ctrldev->ctrl_lock); in rpmsg_ctrldev_ioctl()
131 struct rpmsg_ctrldev *ctrldev = dev_to_ctrldev(dev); in rpmsg_ctrldev_release_device() local
135 kfree(ctrldev); in rpmsg_ctrldev_release_device()
140 struct rpmsg_ctrldev *ctrldev; in rpmsg_ctrldev_probe() local
144 ctrldev = kzalloc(sizeof(*ctrldev), GFP_KERNEL); in rpmsg_ctrldev_probe()
145 if (!ctrldev) in rpmsg_ctrldev_probe()
148 ctrldev->rpdev = rpdev; in rpmsg_ctrldev_probe()
150 dev = &ctrldev->dev; in rpmsg_ctrldev_probe()
155 mutex_init(&ctrldev->ctrl_lock); in rpmsg_ctrldev_probe()
156 cdev_init(&ctrldev->cdev, &rpmsg_ctrldev_fops); in rpmsg_ctrldev_probe()
157 ctrldev->cdev.owner = THIS_MODULE; in rpmsg_ctrldev_probe()
168 dev_set_name(&ctrldev->dev, "rpmsg_ctrl%d", ret); in rpmsg_ctrldev_probe()
170 ret = cdev_device_add(&ctrldev->cdev, &ctrldev->dev); in rpmsg_ctrldev_probe()
177 dev_set_drvdata(&rpdev->dev, ctrldev); in rpmsg_ctrldev_probe()
187 kfree(ctrldev); in rpmsg_ctrldev_probe()
194 struct rpmsg_ctrldev *ctrldev = dev_get_drvdata(&rpdev->dev); in rpmsg_ctrldev_remove() local
198 ret = device_for_each_child(&ctrldev->dev, NULL, rpmsg_chrdev_eptdev_destroy); in rpmsg_ctrldev_remove()
202 cdev_device_del(&ctrldev->cdev, &ctrldev->dev); in rpmsg_ctrldev_remove()
203 put_device(&ctrldev->dev); in rpmsg_ctrldev_remove()