Lines Matching refs:rpdev

40 	struct rk_rpmsg_dev *rpdev;  member
61 struct rk_rpmsg_dev *rpdev; member
68 struct rk_rpmsg_dev *rpdev = container_of(client, struct rk_rpmsg_dev, mbox_cl); in rk_rpmsg_rx_callback() local
69 struct platform_device *pdev = rpdev->pdev; in rk_rpmsg_rx_callback()
80 rpvdev = rpdev->rpvdev[0]; in rk_rpmsg_rx_callback()
81 rpdev->flags |= RPMSG_REMOTE_IS_READY; in rk_rpmsg_rx_callback()
82 dev_dbg(dev, "rpmsg master: rx link_id=0x%x flag=0x%x\n", link_id, rpdev->flags); in rk_rpmsg_rx_callback()
89 struct rk_rpmsg_dev *rpdev = rpvq->rpdev; in rk_rpmsg_notify() local
90 struct platform_device *pdev = rpdev->pdev; in rk_rpmsg_notify()
100 link_id = rpdev->link_id; in rk_rpmsg_notify()
104 if ((rpdev->first_notify == 0) && (rpvq->queue_id % 2 == 0)) { in rk_rpmsg_notify()
107 rpdev->first_notify++; in rk_rpmsg_notify()
112 ret = mbox_send_message(rpdev->mbox_tx_chan, &tx_msg); in rk_rpmsg_notify()
117 mbox_chan_txdone(rpdev->mbox_tx_chan, 0); in rk_rpmsg_notify()
129 struct rk_rpmsg_dev *rpdev = rpvdev->rpdev; in rk_rpmsg_find_vq() local
130 struct platform_device *pdev = rpdev->pdev; in rk_rpmsg_find_vq()
140 rpdev->flags &= (~RPMSG_CACHED_VRING); in rk_rpmsg_find_vq()
163 rpvq->rpdev = rpdev; in rk_rpmsg_find_vq()
263 struct rk_rpmsg_dev *rpdev, int vdev_nums) in rk_set_vring_phy_buf() argument
277 rpdev->rpvdev[i] = devm_kzalloc(dev, sizeof(struct rk_virtio_dev), in rk_set_vring_phy_buf()
279 if (!rpdev->rpvdev[i]) in rk_set_vring_phy_buf()
282 rpdev->rpvdev[i]->vring[0] = start; in rk_set_vring_phy_buf()
283 rpdev->rpvdev[i]->vring[1] = start + RPMSG_VRING_SIZE; in rk_set_vring_phy_buf()
301 struct rk_rpmsg_dev *rpdev = NULL; in rockchip_rpmsg_probe() local
305 rpdev = devm_kzalloc(dev, sizeof(*rpdev), GFP_KERNEL); in rockchip_rpmsg_probe()
306 if (!rpdev) in rockchip_rpmsg_probe()
310 rpdev->pdev = pdev; in rockchip_rpmsg_probe()
311 rpdev->chip = (enum rk_rpmsg_chip)device_get_match_data(dev); in rockchip_rpmsg_probe()
312 rpdev->first_notify = 0; in rockchip_rpmsg_probe()
314 cl = &rpdev->mbox_cl; in rockchip_rpmsg_probe()
318 rpdev->mbox_rx_chan = mbox_request_channel_byname(cl, "rpmsg-rx"); in rockchip_rpmsg_probe()
319 if (IS_ERR(rpdev->mbox_rx_chan)) { in rockchip_rpmsg_probe()
320 ret = PTR_ERR(rpdev->mbox_rx_chan); in rockchip_rpmsg_probe()
324 rpdev->mbox_tx_chan = mbox_request_channel_byname(cl, "rpmsg-tx"); in rockchip_rpmsg_probe()
325 if (IS_ERR(rpdev->mbox_tx_chan)) { in rockchip_rpmsg_probe()
326 ret = PTR_ERR(rpdev->mbox_tx_chan); in rockchip_rpmsg_probe()
331 ret = device_property_read_u32(dev, "rockchip,link-id", &rpdev->link_id); in rockchip_rpmsg_probe()
336 ret = device_property_read_u32(dev, "rockchip,vdev-nums", &rpdev->vdev_nums); in rockchip_rpmsg_probe()
339 rpdev->vdev_nums = 1; in rockchip_rpmsg_probe()
341 if (rpdev->vdev_nums > RPMSG_MAX_INSTANCE_NUM) { in rockchip_rpmsg_probe()
347 ret = rk_set_vring_phy_buf(pdev, rpdev, rpdev->vdev_nums); in rockchip_rpmsg_probe()
355 rpdev->flags &= (~RPMSG_SHARED_DMA_POOL); in rockchip_rpmsg_probe()
357 rpdev->flags |= RPMSG_SHARED_DMA_POOL; in rockchip_rpmsg_probe()
360 for (i = 0; i < rpdev->vdev_nums; i++) { in rockchip_rpmsg_probe()
362 i, rpdev->rpvdev[i]->vring[0], rpdev->rpvdev[i]->vring[1]); in rockchip_rpmsg_probe()
363 rpdev->rpvdev[i]->vdev.id.device = VIRTIO_ID_RPMSG; in rockchip_rpmsg_probe()
364 rpdev->rpvdev[i]->vdev.config = &rk_rpmsg_config_ops; in rockchip_rpmsg_probe()
365 rpdev->rpvdev[i]->vdev.dev.parent = dev; in rockchip_rpmsg_probe()
366 rpdev->rpvdev[i]->vdev.dev.release = rk_rpmsg_vdev_release; in rockchip_rpmsg_probe()
367 rpdev->rpvdev[i]->base_queue_id = i * 2; in rockchip_rpmsg_probe()
368 rpdev->rpvdev[i]->rpdev = rpdev; in rockchip_rpmsg_probe()
370 ret = register_virtio_device(&rpdev->rpvdev[i]->vdev); in rockchip_rpmsg_probe()
377 platform_set_drvdata(pdev, rpdev); in rockchip_rpmsg_probe()
382 if (rpdev->flags & RPMSG_SHARED_DMA_POOL) in rockchip_rpmsg_probe()
386 mbox_free_channel(rpdev->mbox_rx_chan); in rockchip_rpmsg_probe()
387 mbox_free_channel(rpdev->mbox_tx_chan); in rockchip_rpmsg_probe()
394 struct rk_rpmsg_dev *rpdev = platform_get_drvdata(pdev); in rockchip_rpmsg_remove() local
396 mbox_free_channel(rpdev->mbox_rx_chan); in rockchip_rpmsg_remove()
397 mbox_free_channel(rpdev->mbox_tx_chan); in rockchip_rpmsg_remove()