Lines Matching refs:vk

46 	struct bcm_vk *vk = from_timer(vk, t, serial_timer);
48 queue_work(vk->tty_wq_thread, &vk->tty_wq_work);
49 mod_timer(&vk->serial_timer, jiffies + SERIAL_TIMER_VALUE);
54 struct bcm_vk *vk = dev_id;
56 queue_work(vk->tty_wq_thread, &vk->tty_wq_work);
63 struct bcm_vk *vk = container_of(work, struct bcm_vk, tty_wq_work);
71 card_status = vkread32(vk, BAR_0, BAR_CARD_STATUS);
81 vktty = &vk->tty[i];
88 wr = vkread32(vk, BAR_1, VK_BAR_CHAN_WR(vktty, from));
95 dev_err(&vk->pdev->dev,
106 while (vk->tty[i].rd != wr) {
107 c = vkread8(vk, BAR_1,
120 vkwrite32(vk, vktty->rd, BAR_1,
129 struct bcm_vk *vk;
136 vk = (struct bcm_vk *)dev_get_drvdata(tty->dev);
142 vktty = &vk->tty[index];
149 card_status = vkread32(vk, BAR_0, BAR_CARD_STATUS);
157 vktty->to_size = vkread32(vk, BAR_1, VK_BAR_CHAN_SIZE(vktty, to));
158 vktty->wr = vkread32(vk, BAR_1, VK_BAR_CHAN_WR(vktty, to));
159 vktty->from_size = vkread32(vk, BAR_1, VK_BAR_CHAN_SIZE(vktty, from));
160 vktty->rd = vkread32(vk, BAR_1, VK_BAR_CHAN_RD(vktty, from));
164 timer_setup(&vk->serial_timer, bcm_vk_tty_poll, 0);
165 mod_timer(&vk->serial_timer, jiffies + SERIAL_TIMER_VALUE);
172 struct bcm_vk *vk = dev_get_drvdata(tty->dev);
177 vk->tty[tty->index].is_opened = false;
180 del_timer_sync(&vk->serial_timer);
183 static void bcm_vk_tty_doorbell(struct bcm_vk *vk, u32 db_val)
185 vkwrite32(vk, db_val, BAR_0,
193 struct bcm_vk *vk;
198 vk = dev_get_drvdata(tty->dev);
199 vktty = &vk->tty[index];
203 vkwrite8(vk, buffer[i], BAR_1,
210 vkwrite32(vk, vktty->wr, BAR_1, VK_BAR_CHAN_WR(vktty, to));
211 bcm_vk_tty_doorbell(vk, 0);
218 struct bcm_vk *vk = dev_get_drvdata(tty->dev);
220 return vk->tty[tty->index].to_size - 1;
230 int bcm_vk_tty_init(struct bcm_vk *vk, char *name)
235 struct device *dev = &vk->pdev->dev;
244 vk->tty_drv = tty_drv;
268 tty_port_init(&vk->tty[i].port);
269 tty_dev = tty_port_register_device_attr(&vk->tty[i].port,
270 tty_drv, i, dev, vk,
276 vk->tty[i].is_opened = false;
279 INIT_WORK(&vk->tty_wq_work, bcm_vk_tty_wq_handler);
280 vk->tty_wq_thread = create_singlethread_workqueue("tty");
281 if (!vk->tty_wq_thread) {
290 tty_port_unregister_device(&vk->tty[i].port, tty_drv, i);
303 void bcm_vk_tty_exit(struct bcm_vk *vk)
307 del_timer_sync(&vk->serial_timer);
309 tty_port_unregister_device(&vk->tty[i].port,
310 vk->tty_drv,
312 tty_port_destroy(&vk->tty[i].port);
314 tty_unregister_driver(vk->tty_drv);
316 kfree(vk->tty_drv->name);
317 vk->tty_drv->name = NULL;
319 tty_driver_kref_put(vk->tty_drv);
322 void bcm_vk_tty_terminate_tty_user(struct bcm_vk *vk)
328 vktty = &vk->tty[i];
334 void bcm_vk_tty_wq_exit(struct bcm_vk *vk)
336 cancel_work_sync(&vk->tty_wq_work);
337 destroy_workqueue(vk->tty_wq_thread);