Lines Matching refs:dev

36 oce_mq_create(struct oce_dev *dev, struct oce_eq *eq, uint32_t q_len);
40 oce_eq_create(struct oce_dev *dev, uint32_t q_len, uint32_t item_size,
45 oce_cq_create(struct oce_dev *dev, struct oce_eq *eq, uint32_t q_len,
51 static struct oce_wq *oce_wq_init(struct oce_dev *dev, uint32_t q_len,
53 static void oce_wq_fini(struct oce_dev *dev, struct oce_wq *wq);
55 static void oce_wq_del(struct oce_dev *dev, struct oce_wq *wq);
57 static struct oce_rq *oce_rq_init(struct oce_dev *dev, uint32_t q_len,
60 static void oce_rq_fini(struct oce_dev *dev, struct oce_rq *rq);
62 static void oce_rq_del(struct oce_dev *dev, struct oce_rq *rq);
67 * dev - software handle to the device
73 oce_eq_create(struct oce_dev *dev, uint32_t q_len, uint32_t item_size,
92 eq->ring = create_ring_buffer(dev, q_len,
96 oce_log(dev, CE_WARN, MOD_CONFIG,
120 fwcmd->params.req.eq_ctx.function = dev->fn;
132 ret = oce_mbox_post(dev, &mbx, NULL);
135 oce_log(dev, CE_WARN, MOD_CONFIG, "EQ create failed: %d", ret);
136 destroy_ring_buffer(dev, eq->ring);
146 eq->parent = (void *)dev;
147 atomic_inc_32(&dev->neqs);
148 oce_log(dev, CE_NOTE, MOD_CONFIG,
157 * dev - software handle to the device
163 oce_eq_del(struct oce_dev *dev, struct oce_eq *eq)
172 destroy_ring_buffer(dev, eq->ring);
178 (void) oce_destroy_q(dev, &mbx,
182 atomic_dec_32(&dev->neqs);
188 * dev - software handle to the device
195 oce_cq_create(struct oce_dev *dev, struct oce_eq *eq, uint32_t q_len,
207 oce_log(dev, CE_NOTE, MOD_CONFIG, "%s",
213 cq->ring = create_ring_buffer(dev, q_len,
216 oce_log(dev, CE_WARN, MOD_CONFIG,
246 fwcmd->params.req.cq_ctx.function = dev->fn;
259 ret = oce_mbox_post(dev, &mbx, NULL);
262 oce_log(dev, CE_WARN, MOD_CONFIG,
264 destroy_ring_buffer(dev, cq->ring);
269 cq->parent = dev;
277 dev->cq[cq->cq_id % OCE_MAX_CQ] = cq;
285 * dev - software handle to the device
291 oce_cq_del(struct oce_dev *dev, struct oce_cq *cq)
297 destroy_ring_buffer(dev, cq->ring);
304 (void) oce_destroy_q(dev, &mbx,
310 dev->cq[cq->cq_id % OCE_MAX_CQ] = NULL;
321 * dev - software handle to the device
328 oce_mq_create(struct oce_dev *dev, struct oce_eq *eq, uint32_t q_len)
337 cq = oce_cq_create(dev, eq, CQ_LEN_256,
357 mq->ring = create_ring_buffer(dev, q_len,
360 oce_log(dev, CE_WARN, MOD_CONFIG,
378 fwcmd->params.req.context.u0.s.fid = dev->fn;
386 ret = oce_mbox_post(dev, &mbx, NULL);
388 oce_log(dev, CE_WARN, MOD_CONFIG,
400 mq->parent = dev;
406 DDI_INTR_PRI(dev->intr_pri));
410 destroy_ring_buffer(dev, mq->ring);
414 oce_cq_del(dev, cq);
421 * dev - software handle to the device
427 oce_mq_del(struct oce_dev *dev, struct oce_mq *mq)
433 destroy_ring_buffer(dev, mq->ring);
438 (void) oce_destroy_q(dev, &mbx,
441 oce_cq_del(dev, mq->cq);
450 * dev - software handle to the device
456 oce_wq_init(struct oce_dev *dev, uint32_t q_len, int wq_type)
463 ASSERT(dev != NULL);
466 oce_log(dev, CE_WARN, MOD_CONFIG,
475 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
486 wq->cfg.buf_size = dev->tx_bcopy_limit;
489 wq->parent = (void *)dev;
494 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
502 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
508 dev->dev_id, "_", wq_id++);
512 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
518 wq->ring = create_ring_buffer(dev, q_len,
521 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
528 DDI_INTR_PRI(dev->intr_pri));
531 DDI_INTR_PRI(dev->intr_pri));
532 atomic_inc_32(&dev->nwqs);
534 OCE_LIST_CREATE(&wq->wqe_desc_list, DDI_INTR_PRI(dev->intr_pri));
538 destroy_ring_buffer(dev, wq->ring);
553 * dev - software handle to the device
559 oce_wq_fini(struct oce_dev *dev, struct oce_wq *wq)
568 destroy_ring_buffer(dev, wq->ring);
574 atomic_dec_32(&dev->nwqs);
584 struct oce_dev *dev = wq->parent;
589 cq = oce_cq_create(dev, eq, CQ_LEN_1024,
593 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
607 oce_log(dev, CE_NOTE, MOD_CONFIG, "NUM_PAGES = 0x%d size = %lu",
616 fwcmd->params.req.pci_function_id = dev->fn;
628 ret = oce_mbox_post(dev, &mbx, NULL);
630 oce_log(dev, CE_WARN, MOD_CONFIG,
632 oce_cq_del(dev, cq);
648 oce_log(dev, CE_NOTE, MOD_CONFIG, "WQ CREATED WQID = %d",
657 * dev - software handle to the device
663 oce_wq_del(struct oce_dev *dev, struct oce_wq *wq)
669 ASSERT(dev != NULL);
676 (void) oce_destroy_q(dev, &mbx,
680 oce_cq_del(dev, wq->cq);
688 * dev - software handle to the device
694 oce_rq_init(struct oce_dev *dev, uint32_t q_len,
711 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
720 rq->cfg.nbufs = dev->rq_max_bufs;
724 rq->parent = (void *)dev;
729 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
738 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
750 ret = oce_rqb_cache_create(rq, dev->rq_frag_size +
757 rq->ring = create_ring_buffer(dev, q_len,
760 oce_log(dev, CE_WARN, MOD_CONFIG, "%s",
767 DDI_INTR_PRI(dev->intr_pri));
770 DDI_INTR_PRI(dev->intr_pri));
771 atomic_inc_32(&dev->nrqs);
794 * dev - software handle to the device
800 oce_rq_fini(struct oce_dev *dev, struct oce_rq *rq)
804 destroy_ring_buffer(dev, rq->ring);
818 atomic_dec_32(&dev->nrqs);
827 struct oce_dev *dev = rq->parent;
831 cq = oce_cq_create(dev, eq, CQ_LEN_1024, sizeof (struct oce_nic_rx_cqe),
862 ret = oce_mbox_post(dev, &mbx, NULL);
864 oce_log(dev, CE_WARN, MOD_CONFIG,
866 oce_cq_del(dev, cq);
884 oce_log(dev, CE_NOTE, MOD_CONFIG, "RQ created, RQID : %d", rq->rq_id);
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;
1255 oce_dev_rss_ready(struct oce_dev *dev)
1261 if (dev->rx_rings <= 1) {
1262 oce_log(dev, CE_NOTE, MOD_CONFIG,
1263 "Rx rings = %d, Not enabling RSS", dev->rx_rings);
1273 (dev->pci_bus == oce_dev_list[dev_index]->pci_bus) &&
1274 (dev->pci_device == oce_dev_list[dev_index]->pci_device) &&
1287 dev->rx_rings = 1;