Lines Matching refs:dc2c

250 	struct devcmd2_controller *dc2c = vdev->devcmd2;  in _svnic_dev_cmd2()  local
260 fetch_idx = ioread32(&dc2c->wq_ctrl->fetch_index); in _svnic_dev_cmd2()
266 posted = ioread32(&dc2c->wq_ctrl->posted_index); in _svnic_dev_cmd2()
281 dc2c->cmd_ring[posted].cmd = cmd; in _svnic_dev_cmd2()
282 dc2c->cmd_ring[posted].flags = 0; in _svnic_dev_cmd2()
285 dc2c->cmd_ring[posted].flags |= DEVCMD2_FNORESULT; in _svnic_dev_cmd2()
289 dc2c->cmd_ring[posted].args[i] = vdev->args[i]; in _svnic_dev_cmd2()
297 iowrite32(new_posted, &dc2c->wq_ctrl->posted_index); in _svnic_dev_cmd2()
299 if (dc2c->cmd_ring[posted].flags & DEVCMD2_FNORESULT) in _svnic_dev_cmd2()
302 result = dc2c->result + dc2c->next_result; in _svnic_dev_cmd2()
303 color = dc2c->color; in _svnic_dev_cmd2()
309 dc2c->next_result++; in _svnic_dev_cmd2()
310 if (dc2c->next_result == dc2c->result_size) { in _svnic_dev_cmd2()
311 dc2c->next_result = 0; in _svnic_dev_cmd2()
312 dc2c->color = dc2c->color ? 0 : 1; in _svnic_dev_cmd2()
343 struct devcmd2_controller *dc2c = NULL; in svnic_dev_init_devcmd2() local
355 dc2c = kzalloc(sizeof(*dc2c), GFP_ATOMIC); in svnic_dev_init_devcmd2()
356 if (!dc2c) in svnic_dev_init_devcmd2()
359 vdev->devcmd2 = dc2c; in svnic_dev_init_devcmd2()
361 dc2c->color = 1; in svnic_dev_init_devcmd2()
362 dc2c->result_size = DEVCMD2_RING_SIZE; in svnic_dev_init_devcmd2()
365 &dc2c->wq, in svnic_dev_init_devcmd2()
371 fetch_idx = ioread32(&dc2c->wq.ctrl->fetch_index); in svnic_dev_init_devcmd2()
382 vnic_wq_init_start(&dc2c->wq, 0, fetch_idx, fetch_idx, 0, 0); in svnic_dev_init_devcmd2()
383 svnic_wq_enable(&dc2c->wq); in svnic_dev_init_devcmd2()
385 &dc2c->results_ring, in svnic_dev_init_devcmd2()
391 dc2c->result = (struct devcmd2_result *) dc2c->results_ring.descs; in svnic_dev_init_devcmd2()
392 dc2c->cmd_ring = (struct vnic_devcmd2 *) dc2c->wq.ring.descs; in svnic_dev_init_devcmd2()
393 dc2c->wq_ctrl = dc2c->wq.ctrl; in svnic_dev_init_devcmd2()
394 vdev->args[0] = (u64) dc2c->results_ring.base_addr | VNIC_PADDR_TARGET; in svnic_dev_init_devcmd2()
407 svnic_dev_free_desc_ring(vdev, &dc2c->results_ring); in svnic_dev_init_devcmd2()
410 svnic_wq_disable(&dc2c->wq); in svnic_dev_init_devcmd2()
411 svnic_wq_free(&dc2c->wq); in svnic_dev_init_devcmd2()
414 kfree(dc2c); in svnic_dev_init_devcmd2()
422 struct devcmd2_controller *dc2c = vdev->devcmd2; in vnic_dev_deinit_devcmd2() local
427 svnic_dev_free_desc_ring(vdev, &dc2c->results_ring); in vnic_dev_deinit_devcmd2()
428 svnic_wq_disable(&dc2c->wq); in vnic_dev_deinit_devcmd2()
429 svnic_wq_free(&dc2c->wq); in vnic_dev_deinit_devcmd2()
430 kfree(dc2c); in vnic_dev_deinit_devcmd2()