qcq               113 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c void ionic_debugfs_add_qcq(struct ionic_lif *lif, struct ionic_qcq *qcq)
qcq               118 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c 	struct ionic_intr_info *intr = &qcq->intr;
qcq               121 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c 	struct ionic_queue *q = &qcq->q;
qcq               122 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c 	struct ionic_cq *cq = &qcq->cq;
qcq               124 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c 	qcq->dentry = debugfs_create_dir(q->name, lif->dentry);
qcq               126 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c 	debugfs_create_x32("total_size", 0400, qcq->dentry, &qcq->total_size);
qcq               127 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c 	debugfs_create_x64("base_pa", 0400, qcq->dentry, &qcq->base_pa);
qcq               129 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c 	q_dentry = debugfs_create_dir("q", qcq->dentry);
qcq               133 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c 	if (qcq->flags & IONIC_QCQ_F_SG) {
qcq               158 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c 	if (qcq->flags & IONIC_QCQ_F_SG) {
qcq               168 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c 	cq_dentry = debugfs_create_dir("cq", qcq->dentry);
qcq               185 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c 	if (qcq->flags & IONIC_QCQ_F_INTR) {
qcq               186 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c 		intr_dentry = debugfs_create_dir("intr", qcq->dentry);
qcq               205 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c 	if (qcq->flags & IONIC_QCQ_F_NOTIFYQ) {
qcq               206 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c 		stats_dentry = debugfs_create_dir("notifyblock", qcq->dentry);
qcq               242 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c void ionic_debugfs_del_qcq(struct ionic_qcq *qcq)
qcq               244 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c 	debugfs_remove_recursive(qcq->dentry);
qcq               245 drivers/net/ethernet/pensando/ionic/ionic_debugfs.c 	qcq->dentry = NULL;
qcq                18 drivers/net/ethernet/pensando/ionic/ionic_debugfs.h void ionic_debugfs_add_qcq(struct ionic_lif *lif, struct ionic_qcq *qcq);
qcq                20 drivers/net/ethernet/pensando/ionic/ionic_debugfs.h void ionic_debugfs_del_qcq(struct ionic_qcq *qcq);
qcq                29 drivers/net/ethernet/pensando/ionic/ionic_debugfs.h static inline void ionic_debugfs_add_qcq(struct ionic_lif *lif, struct ionic_qcq *qcq) { }
qcq                31 drivers/net/ethernet/pensando/ionic/ionic_debugfs.h static inline void ionic_debugfs_del_qcq(struct ionic_qcq *qcq) { }
qcq               265 drivers/net/ethernet/pensando/ionic/ionic_dev.c void ionic_dev_cmd_adminq_init(struct ionic_dev *idev, struct ionic_qcq *qcq,
qcq               268 drivers/net/ethernet/pensando/ionic/ionic_dev.c 	struct ionic_queue *q = &qcq->q;
qcq               269 drivers/net/ethernet/pensando/ionic/ionic_dev.c 	struct ionic_cq *cq = &qcq->cq;
qcq               271 drivers/net/ethernet/pensando/ionic/ionic_dev.h void ionic_dev_cmd_adminq_init(struct ionic_dev *idev, struct ionic_qcq *qcq,
qcq               373 drivers/net/ethernet/pensando/ionic/ionic_ethtool.c 	struct ionic_qcq *qcq;
qcq               430 drivers/net/ethernet/pensando/ionic/ionic_ethtool.c 				qcq = lif->rxqcqs[i].qcq;
qcq               432 drivers/net/ethernet/pensando/ionic/ionic_ethtool.c 						     qcq->intr.index, coal);
qcq               133 drivers/net/ethernet/pensando/ionic/ionic_lif.c static int ionic_request_irq(struct ionic_lif *lif, struct ionic_qcq *qcq)
qcq               135 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	struct ionic_intr_info *intr = &qcq->intr;
qcq               137 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	struct ionic_queue *q = &qcq->q;
qcq               149 drivers/net/ethernet/pensando/ionic/ionic_lif.c 				0, intr->name, &qcq->napi);
qcq               176 drivers/net/ethernet/pensando/ionic/ionic_lif.c static int ionic_qcq_enable(struct ionic_qcq *qcq)
qcq               178 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	struct ionic_queue *q = &qcq->q;
qcq               200 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	if (qcq->flags & IONIC_QCQ_F_INTR) {
qcq               201 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		irq_set_affinity_hint(qcq->intr.vector,
qcq               202 drivers/net/ethernet/pensando/ionic/ionic_lif.c 				      &qcq->intr.affinity_mask);
qcq               203 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		napi_enable(&qcq->napi);
qcq               204 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_intr_clean(idev->intr_ctrl, qcq->intr.index);
qcq               205 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_intr_mask(idev->intr_ctrl, qcq->intr.index,
qcq               212 drivers/net/ethernet/pensando/ionic/ionic_lif.c static int ionic_qcq_disable(struct ionic_qcq *qcq)
qcq               214 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	struct ionic_queue *q = &qcq->q;
qcq               236 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	if (qcq->flags & IONIC_QCQ_F_INTR) {
qcq               237 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_intr_mask(idev->intr_ctrl, qcq->intr.index,
qcq               239 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		synchronize_irq(qcq->intr.vector);
qcq               240 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		irq_set_affinity_hint(qcq->intr.vector, NULL);
qcq               241 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		napi_disable(&qcq->napi);
qcq               247 drivers/net/ethernet/pensando/ionic/ionic_lif.c static void ionic_lif_qcq_deinit(struct ionic_lif *lif, struct ionic_qcq *qcq)
qcq               252 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	if (!qcq)
qcq               255 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	ionic_debugfs_del_qcq(qcq);
qcq               257 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	if (!(qcq->flags & IONIC_QCQ_F_INITED))
qcq               260 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	if (qcq->flags & IONIC_QCQ_F_INTR) {
qcq               261 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_intr_mask(idev->intr_ctrl, qcq->intr.index,
qcq               263 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		devm_free_irq(dev, qcq->intr.vector, &qcq->napi);
qcq               264 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		netif_napi_del(&qcq->napi);
qcq               267 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	qcq->flags &= ~IONIC_QCQ_F_INITED;
qcq               270 drivers/net/ethernet/pensando/ionic/ionic_lif.c static void ionic_qcq_free(struct ionic_lif *lif, struct ionic_qcq *qcq)
qcq               274 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	if (!qcq)
qcq               277 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	dma_free_coherent(dev, qcq->total_size, qcq->base, qcq->base_pa);
qcq               278 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	qcq->base = NULL;
qcq               279 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	qcq->base_pa = 0;
qcq               281 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	if (qcq->flags & IONIC_QCQ_F_INTR)
qcq               282 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_intr_free(lif, qcq->intr.index);
qcq               284 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	devm_kfree(dev, qcq->cq.info);
qcq               285 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	qcq->cq.info = NULL;
qcq               286 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	devm_kfree(dev, qcq->q.info);
qcq               287 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	qcq->q.info = NULL;
qcq               288 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	devm_kfree(dev, qcq);
qcq               339 drivers/net/ethernet/pensando/ionic/ionic_lif.c 			   unsigned int pid, struct ionic_qcq **qcq)
qcq               351 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	*qcq = NULL;
qcq               461 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	*qcq = new;
qcq               553 drivers/net/ethernet/pensando/ionic/ionic_lif.c static int ionic_lif_txq_init(struct ionic_lif *lif, struct ionic_qcq *qcq)
qcq               556 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	struct ionic_queue *q = &qcq->q;
qcq               557 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	struct ionic_cq *cq = &qcq->cq;
qcq               567 drivers/net/ethernet/pensando/ionic/ionic_lif.c 			.intr_index = cpu_to_le16(lif->rxqcqs[q->index].qcq->intr.index),
qcq               593 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	qcq->flags |= IONIC_QCQ_F_INITED;
qcq               595 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	ionic_debugfs_add_qcq(lif, qcq);
qcq               600 drivers/net/ethernet/pensando/ionic/ionic_lif.c static int ionic_lif_rxq_init(struct ionic_lif *lif, struct ionic_qcq *qcq)
qcq               603 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	struct ionic_queue *q = &qcq->q;
qcq               604 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	struct ionic_cq *cq = &qcq->cq;
qcq               638 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	netif_napi_add(lif->netdev, &qcq->napi, ionic_rx_napi,
qcq               641 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	err = ionic_request_irq(lif, qcq);
qcq               643 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		netif_napi_del(&qcq->napi);
qcq               647 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	qcq->flags |= IONIC_QCQ_F_INITED;
qcq               649 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	ionic_debugfs_add_qcq(lif, qcq);
qcq              1401 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_qcq_disable(lif->txqcqs[i].qcq);
qcq              1402 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_qcq_disable(lif->rxqcqs[i].qcq);
qcq              1411 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_lif_qcq_deinit(lif, lif->txqcqs[i].qcq);
qcq              1412 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_tx_flush(&lif->txqcqs[i].qcq->cq);
qcq              1414 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_lif_qcq_deinit(lif, lif->rxqcqs[i].qcq);
qcq              1415 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_rx_flush(&lif->rxqcqs[i].qcq->cq);
qcq              1416 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_rx_empty(&lif->rxqcqs[i].qcq->q);
qcq              1425 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_qcq_free(lif, lif->txqcqs[i].qcq);
qcq              1426 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		lif->txqcqs[i].qcq = NULL;
qcq              1428 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_qcq_free(lif, lif->rxqcqs[i].qcq);
qcq              1429 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		lif->rxqcqs[i].qcq = NULL;
qcq              1447 drivers/net/ethernet/pensando/ionic/ionic_lif.c 				      lif->kern_pid, &lif->txqcqs[i].qcq);
qcq              1451 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		lif->txqcqs[i].qcq->stats = lif->txqcqs[i].stats;
qcq              1461 drivers/net/ethernet/pensando/ionic/ionic_lif.c 				      0, lif->kern_pid, &lif->rxqcqs[i].qcq);
qcq              1465 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		lif->rxqcqs[i].qcq->stats = lif->rxqcqs[i].stats;
qcq              1468 drivers/net/ethernet/pensando/ionic/ionic_lif.c 				     lif->rxqcqs[i].qcq->intr.index, coal);
qcq              1469 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_link_qcq_interrupts(lif->rxqcqs[i].qcq,
qcq              1470 drivers/net/ethernet/pensando/ionic/ionic_lif.c 					  lif->txqcqs[i].qcq);
qcq              1487 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		err = ionic_lif_txq_init(lif, lif->txqcqs[i].qcq);
qcq              1491 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		err = ionic_lif_rxq_init(lif, lif->rxqcqs[i].qcq);
qcq              1493 drivers/net/ethernet/pensando/ionic/ionic_lif.c 			ionic_lif_qcq_deinit(lif, lif->txqcqs[i].qcq);
qcq              1507 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_lif_qcq_deinit(lif, lif->txqcqs[i].qcq);
qcq              1508 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_lif_qcq_deinit(lif, lif->rxqcqs[i].qcq);
qcq              1519 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		err = ionic_qcq_enable(lif->txqcqs[i].qcq);
qcq              1523 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_rx_fill(&lif->rxqcqs[i].qcq->q);
qcq              1524 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		err = ionic_qcq_enable(lif->rxqcqs[i].qcq);
qcq              1526 drivers/net/ethernet/pensando/ionic/ionic_lif.c 			ionic_qcq_disable(lif->txqcqs[i].qcq);
qcq              1535 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_qcq_disable(lif->rxqcqs[i].qcq);
qcq              1536 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_qcq_disable(lif->txqcqs[i].qcq);
qcq              1834 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	struct ionic_qcq *qcq;
qcq              1839 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	qcq = lif->adminqcq;
qcq              1840 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	q = &qcq->q;
qcq              1843 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	ionic_dev_cmd_adminq_init(idev, qcq, lif->index, qcq->intr.index);
qcq              1859 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	netif_napi_add(lif->netdev, &qcq->napi, ionic_adminq_napi,
qcq              1862 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	err = ionic_request_irq(lif, qcq);
qcq              1865 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		netif_napi_del(&qcq->napi);
qcq              1869 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	napi_enable(&qcq->napi);
qcq              1871 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	if (qcq->flags & IONIC_QCQ_F_INTR)
qcq              1872 drivers/net/ethernet/pensando/ionic/ionic_lif.c 		ionic_intr_mask(idev->intr_ctrl, qcq->intr.index,
qcq              1875 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	qcq->flags |= IONIC_QCQ_F_INITED;
qcq              1877 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	ionic_debugfs_add_qcq(lif, qcq);
qcq              1884 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	struct ionic_qcq *qcq = lif->notifyqcq;
qcq              1886 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	struct ionic_queue *q = &qcq->q;
qcq              1924 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	qcq->flags |= IONIC_QCQ_F_INITED;
qcq              1926 drivers/net/ethernet/pensando/ionic/ionic_lif.c 	ionic_debugfs_add_qcq(lif, qcq);
qcq                76 drivers/net/ethernet/pensando/ionic/ionic_lif.h 	struct ionic_qcq *qcq;
qcq               183 drivers/net/ethernet/pensando/ionic/ionic_lif.h #define lif_to_txqcq(lif, i)	((lif)->txqcqs[i].qcq)
qcq               184 drivers/net/ethernet/pensando/ionic/ionic_lif.h #define lif_to_rxqcq(lif, i)	((lif)->rxqcqs[i].qcq)
qcq               246 drivers/net/ethernet/pensando/ionic/ionic_lif.h static inline void debug_stats_txq_post(struct ionic_qcq *qcq,
qcq               252 drivers/net/ethernet/pensando/ionic/ionic_lif.h 	qcq->q.dbell_count += dbell;
qcq               257 drivers/net/ethernet/pensando/ionic/ionic_lif.h 	qcq->stats->tx.sg_cntr[num_sg_elems]++;
qcq               260 drivers/net/ethernet/pensando/ionic/ionic_lif.h static inline void debug_stats_napi_poll(struct ionic_qcq *qcq,
qcq               263 drivers/net/ethernet/pensando/ionic/ionic_lif.h 	qcq->napi_stats.poll_count++;
qcq               268 drivers/net/ethernet/pensando/ionic/ionic_lif.h 	qcq->napi_stats.work_done_cntr[work_done]++;
qcq               272 drivers/net/ethernet/pensando/ionic/ionic_lif.h #define DEBUG_STATS_RX_BUFF_CNT(qcq)	((qcq)->stats->rx.buffers_posted++)
qcq               274 drivers/net/ethernet/pensando/ionic/ionic_lif.h #define DEBUG_STATS_TXQ_POST(qcq, txdesc, dbell) \
qcq               275 drivers/net/ethernet/pensando/ionic/ionic_lif.h 	debug_stats_txq_post(qcq, txdesc, dbell)
qcq               276 drivers/net/ethernet/pensando/ionic/ionic_lif.h #define DEBUG_STATS_NAPI_POLL(qcq, work_done) \
qcq               277 drivers/net/ethernet/pensando/ionic/ionic_lif.h 	debug_stats_napi_poll(qcq, work_done)
qcq               287 drivers/net/ethernet/pensando/ionic/ionic_main.c 	struct ionic_qcq *qcq = napi_to_qcq(napi);
qcq               288 drivers/net/ethernet/pensando/ionic/ionic_main.c 	struct ionic_cq *cq = &qcq->cq;
qcq               305 drivers/net/ethernet/pensando/ionic/ionic_main.c 	DEBUG_STATS_NAPI_POLL(qcq, work_done);
qcq                89 drivers/net/ethernet/pensando/ionic/ionic_txrx.c 	struct ionic_qcq *qcq = q_to_qcq(q);
qcq               156 drivers/net/ethernet/pensando/ionic/ionic_txrx.c 	napi_gro_receive(&qcq->napi, skb);
qcq               301 drivers/net/ethernet/pensando/ionic/ionic_txrx.c 	struct ionic_qcq *qcq = napi_to_qcq(napi);
qcq               312 drivers/net/ethernet/pensando/ionic/ionic_txrx.c 	txcq = &lif->txqcqs[qi].qcq->cq;
qcq               332 drivers/net/ethernet/pensando/ionic/ionic_txrx.c 	DEBUG_STATS_NAPI_POLL(qcq, work_done);