Lines Matching refs:rpdev
105 struct rpmsg_device rpdev; member
111 container_of(_rpdev, struct virtio_rpmsg_channel, rpdev)
209 struct rpmsg_device *rpdev, in __rpmsg_create_ept() argument
215 struct device *dev = rpdev ? &rpdev->dev : &vrp->vdev->dev; in __rpmsg_create_ept()
224 ept->rpdev = rpdev; in __rpmsg_create_ept()
258 static struct rpmsg_device *virtio_rpmsg_create_channel(struct rpmsg_device *rpdev, in virtio_rpmsg_create_channel() argument
261 struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); in virtio_rpmsg_create_channel()
267 static int virtio_rpmsg_release_channel(struct rpmsg_device *rpdev, in virtio_rpmsg_release_channel() argument
270 struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); in virtio_rpmsg_release_channel()
276 static struct rpmsg_endpoint *virtio_rpmsg_create_ept(struct rpmsg_device *rpdev, in virtio_rpmsg_create_ept() argument
281 struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); in virtio_rpmsg_create_ept()
283 return __rpmsg_create_ept(vch->vrp, rpdev, cb, priv, chinfo.src); in virtio_rpmsg_create_ept()
314 struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(ept->rpdev); in virtio_rpmsg_destroy_ept()
319 static int virtio_rpmsg_announce_create(struct rpmsg_device *rpdev) in virtio_rpmsg_announce_create() argument
321 struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); in virtio_rpmsg_announce_create()
323 struct device *dev = &rpdev->dev; in virtio_rpmsg_announce_create()
327 if (rpdev->announce && rpdev->ept && in virtio_rpmsg_announce_create()
331 strncpy(nsm.name, rpdev->id.name, RPMSG_NAME_SIZE); in virtio_rpmsg_announce_create()
332 nsm.addr = cpu_to_rpmsg32(rpdev, rpdev->ept->addr); in virtio_rpmsg_announce_create()
333 nsm.flags = cpu_to_rpmsg32(rpdev, RPMSG_NS_CREATE); in virtio_rpmsg_announce_create()
335 err = rpmsg_sendto(rpdev->ept, &nsm, sizeof(nsm), RPMSG_NS_ADDR); in virtio_rpmsg_announce_create()
343 static int virtio_rpmsg_announce_destroy(struct rpmsg_device *rpdev) in virtio_rpmsg_announce_destroy() argument
345 struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); in virtio_rpmsg_announce_destroy()
347 struct device *dev = &rpdev->dev; in virtio_rpmsg_announce_destroy()
351 if (rpdev->announce && rpdev->ept && in virtio_rpmsg_announce_destroy()
355 strncpy(nsm.name, rpdev->id.name, RPMSG_NAME_SIZE); in virtio_rpmsg_announce_destroy()
356 nsm.addr = cpu_to_rpmsg32(rpdev, rpdev->ept->addr); in virtio_rpmsg_announce_destroy()
357 nsm.flags = cpu_to_rpmsg32(rpdev, RPMSG_NS_DESTROY); in virtio_rpmsg_announce_destroy()
359 err = rpmsg_sendto(rpdev->ept, &nsm, sizeof(nsm), RPMSG_NS_ADDR); in virtio_rpmsg_announce_destroy()
377 struct rpmsg_device *rpdev = to_rpmsg_device(dev); in virtio_rpmsg_release_device() local
378 struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); in virtio_rpmsg_release_device()
392 struct rpmsg_device *rpdev; in __rpmsg_create_channel() local
414 rpdev = &vch->rpdev; in __rpmsg_create_channel()
415 rpdev->src = chinfo->src; in __rpmsg_create_channel()
416 rpdev->dst = chinfo->dst; in __rpmsg_create_channel()
417 rpdev->ops = &virtio_rpmsg_ops; in __rpmsg_create_channel()
418 rpdev->little_endian = virtio_is_little_endian(vrp->vdev); in __rpmsg_create_channel()
424 rpdev->announce = rpdev->src != RPMSG_ADDR_ANY; in __rpmsg_create_channel()
426 strncpy(rpdev->id.name, chinfo->name, RPMSG_NAME_SIZE); in __rpmsg_create_channel()
428 rpdev->dev.parent = &vrp->vdev->dev; in __rpmsg_create_channel()
429 rpdev->dev.release = virtio_rpmsg_release_device; in __rpmsg_create_channel()
430 ret = rpmsg_register_device(rpdev); in __rpmsg_create_channel()
434 return rpdev; in __rpmsg_create_channel()
551 static int rpmsg_send_offchannel_raw(struct rpmsg_device *rpdev, in rpmsg_send_offchannel_raw() argument
555 struct virtio_rpmsg_channel *vch = to_virtio_rpmsg_channel(rpdev); in rpmsg_send_offchannel_raw()
557 struct device *dev = &rpdev->dev; in rpmsg_send_offchannel_raw()
612 msg->len = cpu_to_rpmsg16(rpdev, len); in rpmsg_send_offchannel_raw()
614 msg->src = cpu_to_rpmsg32(rpdev, src); in rpmsg_send_offchannel_raw()
615 msg->dst = cpu_to_rpmsg32(rpdev, dst); in rpmsg_send_offchannel_raw()
651 struct rpmsg_device *rpdev = ept->rpdev; in virtio_rpmsg_send() local
652 u32 src = ept->addr, dst = rpdev->dst; in virtio_rpmsg_send()
654 return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, true); in virtio_rpmsg_send()
660 struct rpmsg_device *rpdev = ept->rpdev; in virtio_rpmsg_sendto() local
663 return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, true); in virtio_rpmsg_sendto()
669 struct rpmsg_device *rpdev = ept->rpdev; in virtio_rpmsg_send_offchannel() local
671 return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, true); in virtio_rpmsg_send_offchannel()
676 struct rpmsg_device *rpdev = ept->rpdev; in virtio_rpmsg_trysend() local
677 u32 src = ept->addr, dst = rpdev->dst; in virtio_rpmsg_trysend()
679 return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, false); in virtio_rpmsg_trysend()
685 struct rpmsg_device *rpdev = ept->rpdev; in virtio_rpmsg_trysendto() local
688 return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, false); in virtio_rpmsg_trysendto()
694 struct rpmsg_device *rpdev = ept->rpdev; in virtio_rpmsg_trysend_offchannel() local
696 return rpmsg_send_offchannel_raw(rpdev, src, dst, data, len, false); in virtio_rpmsg_trysend_offchannel()
744 ept->cb(ept->rpdev, msg->data, msg_len, ept->priv, in rpmsg_recv_single()
836 rpdev_ctrl = &vch->rpdev; in rpmsg_virtio_add_ctrl_dev()
958 rpdev_ns = &vch->rpdev; in rpmsg_probe()