Lines Matching refs:dev

38 oce_mq_create(struct oce_dev *dev, struct oce_eq *eq, uint32_t q_len);
42 oce_eq_create(struct oce_dev *dev, uint32_t q_len, uint32_t item_size,
47 oce_cq_create(struct oce_dev *dev, struct oce_eq *eq, uint32_t q_len,
53 static struct oce_wq *oce_wq_init(struct oce_dev *dev, uint32_t q_len,
55 static void oce_wq_fini(struct oce_dev *dev, struct oce_wq *wq);
57 static void oce_wq_del(struct oce_dev *dev, struct oce_wq *wq);
59 static struct oce_rq *oce_rq_init(struct oce_dev *dev, uint32_t q_len,
62 static void oce_rq_fini(struct oce_dev *dev, struct oce_rq *rq);
64 static void oce_rq_del(struct oce_dev *dev, struct oce_rq *rq);
69 * dev - software handle to the device
75 oce_eq_create(struct oce_dev *dev, uint32_t q_len, uint32_t item_size,
94 eq->ring = create_ring_buffer(dev, q_len,
98 oce_log(dev, CE_WARN, MOD_CONFIG,
123 fwcmd->params.req.eq_ctx.function = dev->fn;
135 ret = oce_mbox_post(dev, &mbx, NULL);
138 oce_log(dev, CE_WARN, MOD_CONFIG,
140 destroy_ring_buffer(dev, eq->ring);
150 eq->parent = (void *)dev;
151 atomic_inc_32(&dev->neqs);
152 oce_log(dev, CE_NOTE, MOD_CONFIG,
161 * dev - software handle to the device
167 oce_eq_del(struct oce_dev *dev, struct oce_eq *eq)
176 destroy_ring_buffer(dev, eq->ring);
182 (void) oce_destroy_q(dev, &mbx,
186 atomic_dec_32(&dev->neqs);
192 * dev - software handle to the device
199 oce_cq_create(struct oce_dev *dev, struct oce_eq *eq, uint32_t q_len,
211 oce_log(dev, CE_NOTE, MOD_CONFIG, "%s",
217 cq->ring = create_ring_buffer(dev, q_len,
220 oce_log(dev, CE_WARN, MOD_CONFIG,
250 fwcmd->params.req.cq_ctx.function = dev->fn;
263 ret = oce_mbox_post(dev, &mbx, NULL);
266 oce_log(dev, CE_WARN, MOD_CONFIG,
268 destroy_ring_buffer(dev, cq->ring);
273 cq->parent = dev;
281 dev->cq[cq->cq_id % OCE_MAX_CQ] = cq;
289 * dev - software handle to the device
295 oce_cq_del(struct oce_dev *dev, struct oce_cq *cq)
301 destroy_ring_buffer(dev, cq->ring);
308 (void) oce_destroy_q(dev, &mbx,
314 dev->cq[cq->cq_id % OCE_MAX_CQ] = NULL;
325 * dev - software handle to the device
332 oce_mq_create(struct oce_dev *dev, struct oce_eq *eq, uint32_t q_len)
341 cq = oce_cq_create(dev, eq, CQ_LEN_256,
361 mq->ring = create_ring_buffer(dev, q_len,
364 oce_log(dev, CE_WARN, MOD_CONFIG,
382 fwcmd->params.req.context.u0.s.fid = dev->fn;
390 ret = oce_mbox_post(dev, &mbx, NULL);
392 oce_log(dev, CE_WARN, MOD_CONFIG,
404 mq->parent = dev;
410 DDI_INTR_PRI(dev->intr_pri));
414 destroy_ring_buffer(dev, mq->ring);
418 oce_cq_del(dev, cq);
425 * dev - software handle to the device
431 oce_mq_del(struct oce_dev *dev, struct oce_mq *mq)
437 destroy_ring_buffer(dev, mq->ring);
442 (void) oce_destroy_q(dev, &mbx,
445 oce_cq_del(dev, mq->cq);
454 * dev - software handle to the device
460 oce_wq_init(struct oce_dev *dev, uint32_t q_len, int wq_type)
467 ASSERT(dev != NULL);
470 oce_log(dev, CE_WARN, MOD_CONFIG,
479 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
490 wq->cfg.buf_size = dev->tx_bcopy_limit;
493 wq->parent = (void *)dev;
498 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
506 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
512 dev->dev_id, "_", wq_id++);
516 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
522 wq->ring = create_ring_buffer(dev, q_len,
525 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
532 DDI_INTR_PRI(dev->intr_pri));
535 DDI_INTR_PRI(dev->intr_pri));
536 atomic_inc_32(&dev->nwqs);
538 OCE_LIST_CREATE(&wq->wqe_desc_list, DDI_INTR_PRI(dev->intr_pri));
542 destroy_ring_buffer(dev, wq->ring);
557 * dev - software handle to the device
563 oce_wq_fini(struct oce_dev *dev, struct oce_wq *wq)
572 destroy_ring_buffer(dev, wq->ring);
578 atomic_dec_32(&dev->nwqs);
588 struct oce_dev *dev = wq->parent;
593 cq = oce_cq_create(dev, eq, CQ_LEN_1024,
597 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
611 oce_log(dev, CE_NOTE, MOD_CONFIG, "NUM_PAGES = 0x%d size = %lu",
620 fwcmd->params.req.pci_function_id = dev->fn;
632 ret = oce_mbox_post(dev, &mbx, NULL);
634 oce_log(dev, CE_WARN, MOD_CONFIG,
636 oce_cq_del(dev, cq);
659 * dev - software handle to the device
665 oce_wq_del(struct oce_dev *dev, struct oce_wq *wq)
671 ASSERT(dev != NULL);
678 (void) oce_destroy_q(dev, &mbx,
682 oce_cq_del(dev, wq->cq);
690 * dev - software handle to the device
696 oce_rq_init(struct oce_dev *dev, uint32_t q_len,
713 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
722 rq->cfg.nbufs = dev->rq_max_bufs;
726 rq->parent = (void *)dev;
731 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
740 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
752 ret = oce_rqb_cache_create(rq, dev->rq_frag_size +
759 rq->ring = create_ring_buffer(dev, q_len,
762 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
769 DDI_INTR_PRI(dev->intr_pri));
772 DDI_INTR_PRI(dev->intr_pri));
773 atomic_inc_32(&dev->nrqs);
795 * dev - software handle to the device
801 oce_rq_fini(struct oce_dev *dev, struct oce_rq *rq)
805 destroy_ring_buffer(dev, rq->ring);
819 atomic_dec_32(&dev->nrqs);
828 struct oce_dev *dev = rq->parent;
832 cq = oce_cq_create(dev, eq, CQ_LEN_1024, sizeof (struct oce_nic_rx_cqe),
863 ret = oce_mbox_post(dev, &mbx, NULL);
865 oce_log(dev, CE_WARN, MOD_CONFIG,
867 oce_cq_del(dev, cq);
892 * dev - software handle to the device
898 oce_rq_del(struct oce_dev *dev, struct oce_rq *rq)
903 ASSERT(dev != NULL);
912 (void) oce_destroy_q(dev, &mbx,
917 oce_cq_del(dev, rq->cq);
927 * dev - software handle to the device
937 oce_arm_eq(struct oce_dev *dev, int16_t qid, int npopped,
947 OCE_DB_WRITE32(dev, PD_EQ_DB, eq_db.dw0);
953 * dev - software handle to the device
961 oce_arm_cq(struct oce_dev *dev, int16_t qid, int npopped,
969 OCE_DB_WRITE32(dev, PD_CQ_DB, cq_db.dw0);
976 * dev - sofware handle to the device
985 oce_destroy_q(struct oce_dev *dev, struct oce_mbx *mbx, size_t req_size,
1034 ret = oce_mbox_post(dev, mbx, NULL);
1037 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
1046 * dev - software handle to the device
1054 oce_set_eq_delay(struct oce_dev *dev, uint32_t *eq_arr,
1087 ret = oce_mbox_post(dev, &mbx, NULL);
1089 oce_log(dev, CE_WARN, MOD_CONFIG,
1108 struct oce_dev *dev;
1110 dev = eq->parent;
1127 oce_arm_eq(dev, eq->eq_id, num_eqe, B_FALSE, B_TRUE);
1133 oce_init_txrx(struct oce_dev *dev)
1138 dev->rss_enable = (dev->rx_rings > 1) ? B_TRUE : B_FALSE;
1140 for (qid = 0; qid < dev->tx_rings; qid++) {
1141 dev->wq[qid] = oce_wq_init(dev, dev->tx_ring_size,
1143 if (dev->wq[qid] == NULL) {
1150 dev->rq[0] = oce_rq_init(dev, dev->rx_ring_size, dev->rq_frag_size,
1152 if (dev->rq[0] == NULL) {
1156 for (qid = 1; qid < dev->rx_rings; qid++) {
1157 dev->rq[qid] = oce_rq_init(dev, dev->rx_ring_size,
1158 dev->rq_frag_size, OCE_MAX_JUMBO_FRAME_SIZE,
1159 dev->rss_enable);
1160 if (dev->rq[qid] == NULL) {
1167 oce_fini_txrx(dev);
1171 oce_fini_txrx(struct oce_dev *dev)
1178 nqs = dev->nwqs;
1180 if (dev->wq[qid] != NULL) {
1181 oce_wq_fini(dev, dev->wq[qid]);
1182 dev->wq[qid] = NULL;
1186 nqs = dev->nrqs;
1188 if (dev->rq[qid] != NULL) {
1189 oce_rq_fini(dev, dev->rq[qid]);
1190 dev->rq[qid] = NULL;
1196 oce_create_queues(struct oce_dev *dev)
1203 for (i = 0; i < dev->num_vectors; i++) {
1204 eq = oce_eq_create(dev, EQ_LEN_1024, EQE_SIZE_4, 0);
1208 dev->eq[i] = eq;
1210 for (i = 0; i < dev->nwqs; i++) {
1211 if (oce_wq_create(dev->wq[i], dev->eq[0]) != 0)
1215 for (i = 0; i < dev->nrqs; i++) {
1216 if (oce_rq_create(dev->rq[i], dev->if_id,
1217 dev->neqs > 1 ? dev->eq[1 + i] : dev->eq[0]) != 0)
1220 mq = oce_mq_create(dev, dev->eq[0], 64);
1223 dev->mq = mq;
1226 oce_delete_queues(dev);
1232 oce_delete_queues(struct oce_dev *dev)
1235 int neqs = dev->neqs;
1236 if (dev->mq != NULL) {
1237 oce_mq_del(dev, dev->mq);
1238 dev->mq = NULL;
1241 for (i = 0; i < dev->nrqs; i++) {
1242 oce_rq_del(dev, dev->rq[i]);
1244 for (i = 0; i < dev->nwqs; i++) {
1245 oce_wq_del(dev, dev->wq[i]);
1249 oce_eq_del(dev, dev->eq[i]);
1250 dev->eq[i] = NULL;