Lines Matching defs:dc2c

264 	struct devcmd2_controller *dc2c = vdev->devcmd2;
274 fetch_idx = ioread32(&dc2c->wq_ctrl->fetch_index);
280 posted = ioread32(&dc2c->wq_ctrl->posted_index);
295 dc2c->cmd_ring[posted].cmd = cmd;
296 dc2c->cmd_ring[posted].flags = 0;
299 dc2c->cmd_ring[posted].flags |= DEVCMD2_FNORESULT;
303 dc2c->cmd_ring[posted].args[i] = vdev->args[i];
311 iowrite32(new_posted, &dc2c->wq_ctrl->posted_index);
313 if (dc2c->cmd_ring[posted].flags & DEVCMD2_FNORESULT)
316 result = dc2c->result + dc2c->next_result;
317 color = dc2c->color;
323 dc2c->next_result++;
324 if (dc2c->next_result == dc2c->result_size) {
325 dc2c->next_result = 0;
326 dc2c->color = dc2c->color ? 0 : 1;
357 struct devcmd2_controller *dc2c = NULL;
369 dc2c = kzalloc(sizeof(*dc2c), GFP_ATOMIC);
370 if (!dc2c)
373 vdev->devcmd2 = dc2c;
375 dc2c->color = 1;
376 dc2c->result_size = DEVCMD2_RING_SIZE;
379 &dc2c->wq,
385 fetch_idx = ioread32(&dc2c->wq.ctrl->fetch_index);
396 vnic_wq_init_start(&dc2c->wq, 0, fetch_idx, fetch_idx, 0, 0);
397 svnic_wq_enable(&dc2c->wq);
399 &dc2c->results_ring,
405 dc2c->result = (struct devcmd2_result *) dc2c->results_ring.descs;
406 dc2c->cmd_ring = (struct vnic_devcmd2 *) dc2c->wq.ring.descs;
407 dc2c->wq_ctrl = dc2c->wq.ctrl;
408 vdev->args[0] = (u64) dc2c->results_ring.base_addr | VNIC_PADDR_TARGET;
421 svnic_dev_free_desc_ring(vdev, &dc2c->results_ring);
424 svnic_wq_disable(&dc2c->wq);
425 svnic_wq_free(&dc2c->wq);
428 kfree(dc2c);
436 struct devcmd2_controller *dc2c = vdev->devcmd2;
441 svnic_dev_free_desc_ring(vdev, &dc2c->results_ring);
442 svnic_wq_disable(&dc2c->wq);
443 svnic_wq_free(&dc2c->wq);
444 kfree(dc2c);