droq              631 drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c 	struct octeon_droq *droq = oct->droq[oq_no];
droq              639 drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c 			   droq->desc_ring_dma);
droq              640 drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c 	octeon_write_csr(oct, CN23XX_SLI_OQ_SIZE(oq_no), droq->max_count);
droq              643 drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c 			 droq->buffer_size);
droq              646 drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c 	droq->pkts_sent_reg =
droq              648 drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c 	droq->pkts_credit_reg =
droq              948 drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c 	struct octeon_droq *droq = oct->droq[ioq_vector->droq_index];
droq              952 drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c 	if (!droq) {
droq              958 drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c 	pkts_sent = readq(droq->pkts_sent_reg);
droq              247 drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c 	struct octeon_droq *droq = oct->droq[oq_no];
droq              250 drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c 			   droq->desc_ring_dma);
droq              251 drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c 	octeon_write_csr(oct, CN23XX_VF_SLI_OQ_SIZE(oq_no), droq->max_count);
droq              254 drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c 			 droq->buffer_size);
droq              257 drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c 	droq->pkts_sent_reg =
droq              259 drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c 	droq->pkts_credit_reg =
droq              491 drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c 	struct octeon_droq *droq = oct->droq[ioq_vector->droq_index];
droq              496 drivers/net/ethernet/cavium/liquidio/cn23xx_vf_device.c 	pkts_sent = readq(droq->pkts_sent_reg);
droq              304 drivers/net/ethernet/cavium/liquidio/cn66xx_device.c 	struct octeon_droq *droq = oct->droq[oq_no];
droq              307 drivers/net/ethernet/cavium/liquidio/cn66xx_device.c 			   droq->desc_ring_dma);
droq              308 drivers/net/ethernet/cavium/liquidio/cn66xx_device.c 	octeon_write_csr(oct, CN6XXX_SLI_OQ_SIZE(oq_no), droq->max_count);
droq              311 drivers/net/ethernet/cavium/liquidio/cn66xx_device.c 			 droq->buffer_size);
droq              314 drivers/net/ethernet/cavium/liquidio/cn66xx_device.c 	droq->pkts_sent_reg =
droq              316 drivers/net/ethernet/cavium/liquidio/cn66xx_device.c 	droq->pkts_credit_reg =
droq              508 drivers/net/ethernet/cavium/liquidio/cn66xx_device.c 	struct octeon_droq *droq;
droq              529 drivers/net/ethernet/cavium/liquidio/cn66xx_device.c 		droq = oct->droq[oq_no];
droq              530 drivers/net/ethernet/cavium/liquidio/cn66xx_device.c 		pkt_count = octeon_droq_check_hw_for_pkts(droq);
droq              533 drivers/net/ethernet/cavium/liquidio/cn66xx_device.c 			if (droq->ops.poll_mode) {
droq              429 drivers/net/ethernet/cavium/liquidio/lio_core.c 				  struct octeon_droq *droq)
droq              433 drivers/net/ethernet/cavium/liquidio/lio_core.c 	struct cavium_wq *wq = &lio->rxq_status_wq[droq->q_no];
droq              445 drivers/net/ethernet/cavium/liquidio/lio_core.c 	struct octeon_droq *droq = oct->droq[q_no];
droq              447 drivers/net/ethernet/cavium/liquidio/lio_core.c 	if (!ifstate_check(lio, LIO_IFSTATE_RUNNING) || !droq)
droq              450 drivers/net/ethernet/cavium/liquidio/lio_core.c 	if (octeon_retry_droq_refill(droq))
droq              451 drivers/net/ethernet/cavium/liquidio/lio_core.c 		octeon_schedule_rxq_oom_work(oct, droq);
droq              553 drivers/net/ethernet/cavium/liquidio/lio_core.c 	writel(oct->droq[q_no]->max_count, oct->droq[q_no]->pkts_credit_reg);
droq              575 drivers/net/ethernet/cavium/liquidio/lio_core.c 	struct octeon_droq *droq =
droq              591 drivers/net/ethernet/cavium/liquidio/lio_core.c 			droq->stats.rx_dropped++;
droq              597 drivers/net/ethernet/cavium/liquidio/lio_core.c 		skb_record_rx_queue(skb, droq->q_no);
droq              677 drivers/net/ethernet/cavium/liquidio/lio_core.c 			droq->stats.rx_vxlan++;
droq              692 drivers/net/ethernet/cavium/liquidio/lio_core.c 		droq->stats.rx_bytes_received += len -
droq              694 drivers/net/ethernet/cavium/liquidio/lio_core.c 		droq->stats.rx_pkts_received++;
droq              720 drivers/net/ethernet/cavium/liquidio/lio_core.c 	struct octeon_droq *droq = arg;
droq              723 drivers/net/ethernet/cavium/liquidio/lio_core.c 	oct = droq->oct_dev;
droq              726 drivers/net/ethernet/cavium/liquidio/lio_core.c 	    droq->cpu_id == this_cpu) {
droq              727 drivers/net/ethernet/cavium/liquidio/lio_core.c 		napi_schedule_irqoff(&droq->napi);
droq              729 drivers/net/ethernet/cavium/liquidio/lio_core.c 		call_single_data_t *csd = &droq->csd;
droq              732 drivers/net/ethernet/cavium/liquidio/lio_core.c 		csd->info = &droq->napi;
droq              735 drivers/net/ethernet/cavium/liquidio/lio_core.c 		smp_call_function_single_async(droq->cpu_id, csd);
droq              748 drivers/net/ethernet/cavium/liquidio/lio_core.c 	struct octeon_droq *droq;
droq              752 drivers/net/ethernet/cavium/liquidio/lio_core.c 	droq = container_of(napi, struct octeon_droq, napi);
droq              753 drivers/net/ethernet/cavium/liquidio/lio_core.c 	oct = droq->oct_dev;
droq              754 drivers/net/ethernet/cavium/liquidio/lio_core.c 	iq_no = droq->q_no;
droq              757 drivers/net/ethernet/cavium/liquidio/lio_core.c 	work_done = octeon_droq_process_poll_pkts(oct, droq, budget);
droq              784 drivers/net/ethernet/cavium/liquidio/lio_core.c 	    (droq->pkt_count >= MAX_REG_CNT)) {
droq              788 drivers/net/ethernet/cavium/liquidio/lio_core.c 		octeon_enable_irq(droq->oct_dev, droq->q_no);
droq              809 drivers/net/ethernet/cavium/liquidio/lio_core.c 	struct octeon_droq *droq;
droq              852 drivers/net/ethernet/cavium/liquidio/lio_core.c 		droq = octeon_dev->droq[q_no];
droq              853 drivers/net/ethernet/cavium/liquidio/lio_core.c 		napi = &droq->napi;
droq              859 drivers/net/ethernet/cavium/liquidio/lio_core.c 		droq->cpu_id = cpu_id;
droq              873 drivers/net/ethernet/cavium/liquidio/lio_core.c 		octeon_dev->droq[0]->ops.poll_mode = 0;
droq              906 drivers/net/ethernet/cavium/liquidio/lio_core.c int liquidio_schedule_msix_droq_pkt_handler(struct octeon_droq *droq, u64 ret)
droq              908 drivers/net/ethernet/cavium/liquidio/lio_core.c 	struct octeon_device *oct = droq->oct_dev;
droq              912 drivers/net/ethernet/cavium/liquidio/lio_core.c 	if (droq->ops.poll_mode) {
droq              913 drivers/net/ethernet/cavium/liquidio/lio_core.c 		droq->ops.napi_fn(droq);
droq              935 drivers/net/ethernet/cavium/liquidio/lio_core.c 	struct octeon_droq *droq = oct->droq[ioq_vector->droq_index];
droq              941 drivers/net/ethernet/cavium/liquidio/lio_core.c 		liquidio_schedule_msix_droq_pkt_handler(droq, ret);
droq              954 drivers/net/ethernet/cavium/liquidio/lio_core.c 	struct octeon_droq *droq;
droq              963 drivers/net/ethernet/cavium/liquidio/lio_core.c 			droq = oct->droq[oq_no];
droq              965 drivers/net/ethernet/cavium/liquidio/lio_core.c 			if (droq->ops.poll_mode) {
droq              966 drivers/net/ethernet/cavium/liquidio/lio_core.c 				droq->ops.napi_fn(droq);
droq             1273 drivers/net/ethernet/cavium/liquidio/lio_core.c 				atomic_read(&oct->droq[idx]->pkts_pending);
droq              971 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 		rx_pending = oct->droq[0]->max_count;
droq             1215 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 			writel(oct->droq[i]->max_count,
droq             1216 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 			       oct->droq[i]->pkts_credit_reg);
droq             1275 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 	rx_count_old = oct->droq[0]->max_count;
droq             1683 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 			CVM_CAST64(oct_dev->droq[j]->stats.rx_pkts_received);
droq             1686 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 			CVM_CAST64(oct_dev->droq[j]->stats.rx_bytes_received);
droq             1688 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 		data[i++] = CVM_CAST64(oct_dev->droq[j]->stats.dropped_nomem +
droq             1689 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 				       oct_dev->droq[j]->stats.dropped_toomany +
droq             1690 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 				       oct_dev->droq[j]->stats.rx_dropped);
droq             1692 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 			CVM_CAST64(oct_dev->droq[j]->stats.dropped_nomem);
droq             1694 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 			CVM_CAST64(oct_dev->droq[j]->stats.dropped_toomany);
droq             1696 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 			CVM_CAST64(oct_dev->droq[j]->stats.rx_dropped);
droq             1700 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 			CVM_CAST64(oct_dev->droq[j]->stats.pkts_received);
droq             1702 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 			CVM_CAST64(oct_dev->droq[j]->stats.bytes_received);
droq             1704 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 			CVM_CAST64(oct_dev->droq[j]->stats.dropped_nodispatch);
droq             1707 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 			CVM_CAST64(oct_dev->droq[j]->stats.rx_vxlan);
droq             1709 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 			CVM_CAST64(oct_dev->droq[j]->stats.rx_alloc_failure);
droq             1803 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 				oct_dev->droq[j]->stats.rx_pkts_received);
droq             1806 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 				oct_dev->droq[j]->stats.rx_bytes_received);
droq             1807 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 		data[i++] = CVM_CAST64(oct_dev->droq[j]->stats.dropped_nomem +
droq             1808 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 				       oct_dev->droq[j]->stats.dropped_toomany +
droq             1809 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 				       oct_dev->droq[j]->stats.rx_dropped);
droq             1810 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 		data[i++] = CVM_CAST64(oct_dev->droq[j]->stats.dropped_nomem);
droq             1811 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 		data[i++] = CVM_CAST64(oct_dev->droq[j]->stats.dropped_toomany);
droq             1812 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 		data[i++] = CVM_CAST64(oct_dev->droq[j]->stats.rx_dropped);
droq             1815 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 		data[i++] = CVM_CAST64(oct_dev->droq[j]->stats.pkts_received);
droq             1816 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 		data[i++] = CVM_CAST64(oct_dev->droq[j]->stats.bytes_received);
droq             1818 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 			CVM_CAST64(oct_dev->droq[j]->stats.dropped_nodispatch);
droq             1820 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 		data[i++] = CVM_CAST64(oct_dev->droq[j]->stats.rx_vxlan);
droq             1822 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c 		    CVM_CAST64(oct_dev->droq[j]->stats.rx_alloc_failure);
droq              176 drivers/net/ethernet/cavium/liquidio/lio_main.c 		reschedule |= octeon_droq_process_packets(oct, oct->droq[q_no],
droq              178 drivers/net/ethernet/cavium/liquidio/lio_main.c 		lio_enable_irq(oct->droq[q_no], NULL);
droq              211 drivers/net/ethernet/cavium/liquidio/lio_main.c 			pkt_cnt += octeon_droq_check_hw_for_pkts(oct->droq[i]);
droq             1271 drivers/net/ethernet/cavium/liquidio/lio_main.c 			oct->droq[0]->ops.poll_mode = 0;
droq             1829 drivers/net/ethernet/cavium/liquidio/lio_main.c 			oct->droq[0]->ops.poll_mode = 1;
droq             1923 drivers/net/ethernet/cavium/liquidio/lio_main.c 			oct->droq[0]->ops.poll_mode = 0;
droq             2095 drivers/net/ethernet/cavium/liquidio/lio_main.c 		oq_stats = &oct->droq[oq_no]->stats;
droq             4247 drivers/net/ethernet/cavium/liquidio/lio_main.c 		writel(octeon_dev->droq[j]->max_count,
droq             4248 drivers/net/ethernet/cavium/liquidio/lio_main.c 		       octeon_dev->droq[j]->pkts_credit_reg);
droq               88 drivers/net/ethernet/cavium/liquidio/lio_vf_main.c 			pkt_cnt += octeon_droq_check_hw_for_pkts(oct->droq[i]);
droq              683 drivers/net/ethernet/cavium/liquidio/lio_vf_main.c 		oct->droq[0]->ops.poll_mode = 0;
droq              921 drivers/net/ethernet/cavium/liquidio/lio_vf_main.c 		oct->droq[0]->ops.poll_mode = 1;
droq              983 drivers/net/ethernet/cavium/liquidio/lio_vf_main.c 		oct->droq[0]->ops.poll_mode = 0;
droq             1200 drivers/net/ethernet/cavium/liquidio/lio_vf_main.c 		oq_stats = &oct->droq[oq_no]->stats;
droq             2399 drivers/net/ethernet/cavium/liquidio/lio_vf_main.c 		writel(oct->droq[j]->max_count, oct->droq[j]->pkts_credit_reg);
droq              651 drivers/net/ethernet/cavium/liquidio/octeon_device.c 			vfree(oct->droq[i]);
droq              929 drivers/net/ethernet/cavium/liquidio/octeon_device.c 	oct->droq[0] = vzalloc_node(sizeof(*oct->droq[0]), numa_node);
droq              930 drivers/net/ethernet/cavium/liquidio/octeon_device.c 	if (!oct->droq[0])
droq              931 drivers/net/ethernet/cavium/liquidio/octeon_device.c 		oct->droq[0] = vzalloc(sizeof(*oct->droq[0]));
droq              932 drivers/net/ethernet/cavium/liquidio/octeon_device.c 	if (!oct->droq[0])
droq              936 drivers/net/ethernet/cavium/liquidio/octeon_device.c 		vfree(oct->droq[oq_no]);
droq              937 drivers/net/ethernet/cavium/liquidio/octeon_device.c 		oct->droq[oq_no] = NULL;
droq             1284 drivers/net/ethernet/cavium/liquidio/octeon_device.c 		return oct->droq[q_no]->max_count;
droq             1433 drivers/net/ethernet/cavium/liquidio/octeon_device.c void lio_enable_irq(struct octeon_droq *droq, struct octeon_instr_queue *iq)
droq             1440 drivers/net/ethernet/cavium/liquidio/octeon_device.c 	if (droq) {
droq             1441 drivers/net/ethernet/cavium/liquidio/octeon_device.c 		pkts_pend = (u32)atomic_read(&droq->pkts_pending);
droq             1442 drivers/net/ethernet/cavium/liquidio/octeon_device.c 		writel(droq->pkt_count - pkts_pend, droq->pkts_sent_reg);
droq             1443 drivers/net/ethernet/cavium/liquidio/octeon_device.c 		droq->pkt_count = pkts_pend;
droq             1444 drivers/net/ethernet/cavium/liquidio/octeon_device.c 		oct = droq->oct_dev;
droq             1459 drivers/net/ethernet/cavium/liquidio/octeon_device.c 		if (droq)
droq             1460 drivers/net/ethernet/cavium/liquidio/octeon_device.c 			writeq(CN23XX_INTR_RESEND, droq->pkts_sent_reg);
droq              495 drivers/net/ethernet/cavium/liquidio/octeon_device.h 	struct octeon_droq *droq[MAX_POSSIBLE_OCTEON_OUTPUT_QUEUES];
droq              901 drivers/net/ethernet/cavium/liquidio/octeon_device.h void lio_enable_irq(struct octeon_droq *droq, struct octeon_instr_queue *iq);
droq               94 drivers/net/ethernet/cavium/liquidio/octeon_droq.c u32 octeon_droq_check_hw_for_pkts(struct octeon_droq *droq)
droq               99 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	pkt_count = readl(droq->pkts_sent_reg);
droq              101 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	last_count = pkt_count - droq->pkt_count;
droq              102 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->pkt_count = pkt_count;
droq              106 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		atomic_add(last_count, &droq->pkts_pending);
droq              111 drivers/net/ethernet/cavium/liquidio/octeon_droq.c static void octeon_droq_compute_max_packet_bufs(struct octeon_droq *droq)
droq              120 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->max_empty_descs = 0;
droq              123 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		droq->max_empty_descs++;
droq              124 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		count += droq->buffer_size;
droq              127 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->max_empty_descs = droq->max_count - droq->max_empty_descs;
droq              130 drivers/net/ethernet/cavium/liquidio/octeon_droq.c static void octeon_droq_reset_indices(struct octeon_droq *droq)
droq              132 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->read_idx = 0;
droq              133 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->write_idx = 0;
droq              134 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->refill_idx = 0;
droq              135 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->refill_count = 0;
droq              136 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	atomic_set(&droq->pkts_pending, 0);
droq              141 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				 struct octeon_droq *droq)
droq              146 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	for (i = 0; i < droq->max_count; i++) {
droq              147 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		pg_info = &droq->recv_buf_list[i].pg_info;
droq              157 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			recv_buffer_destroy(droq->recv_buf_list[i].buffer,
droq              160 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		droq->recv_buf_list[i].buffer = NULL;
droq              163 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	octeon_droq_reset_indices(droq);
droq              168 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			       struct octeon_droq *droq)
droq              172 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	struct octeon_droq_desc *desc_ring = droq->desc_ring;
droq              174 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	for (i = 0; i < droq->max_count; i++) {
droq              175 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		buf = recv_buffer_alloc(oct, &droq->recv_buf_list[i].pg_info);
droq              180 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			droq->stats.rx_alloc_failure++;
droq              184 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		droq->recv_buf_list[i].buffer = buf;
droq              185 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		droq->recv_buf_list[i].data = get_rbd(buf);
droq              188 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			lio_map_ring(droq->recv_buf_list[i].buffer);
droq              191 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	octeon_droq_reset_indices(droq);
droq              193 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	octeon_droq_compute_max_packet_bufs(droq);
droq              200 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	struct octeon_droq *droq = oct->droq[q_no];
droq              204 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	octeon_droq_destroy_ring_buffers(oct, droq);
droq              205 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	vfree(droq->recv_buf_list);
droq              207 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	if (droq->desc_ring)
droq              208 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		lio_dma_free(oct, (droq->max_count * OCT_DROQ_DESC_SIZE),
droq              209 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			     droq->desc_ring, droq->desc_ring_dma);
droq              211 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	memset(droq, 0, OCT_DROQ_SIZE);
droq              213 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	vfree(oct->droq[q_no]);
droq              214 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	oct->droq[q_no] = NULL;
droq              226 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	struct octeon_droq *droq;
droq              233 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq = oct->droq[q_no];
droq              234 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	memset(droq, 0, OCT_DROQ_SIZE);
droq              236 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->oct_dev = oct;
droq              237 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->q_no = q_no;
droq              239 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		droq->app_ctx = app_ctx;
droq              241 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		droq->app_ctx = (void *)(size_t)q_no;
droq              265 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->max_count = c_num_descs;
droq              266 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->buffer_size = c_buf_size;
droq              268 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	desc_ring_size = droq->max_count * OCT_DROQ_DESC_SIZE;
droq              269 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->desc_ring = lio_dma_alloc(oct, desc_ring_size,
droq              270 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 					(dma_addr_t *)&droq->desc_ring_dma);
droq              272 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	if (!droq->desc_ring) {
droq              279 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		q_no, droq->desc_ring, droq->desc_ring_dma);
droq              281 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		droq->max_count);
droq              283 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->recv_buf_list = (struct octeon_recv_buffer *)
droq              284 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	      vzalloc_node(array_size(droq->max_count, OCT_DROQ_RECVBUF_SIZE),
droq              286 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	if (!droq->recv_buf_list)
droq              287 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		droq->recv_buf_list = (struct octeon_recv_buffer *)
droq              288 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		      vzalloc(array_size(droq->max_count,
droq              290 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	if (!droq->recv_buf_list) {
droq              295 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	if (octeon_droq_setup_ring_buffers(oct, droq))
droq              298 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->pkts_per_intr = c_pkts_per_intr;
droq              299 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->refill_threshold = c_refill_threshold;
droq              302 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		droq->max_empty_descs);
droq              304 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	INIT_LIST_HEAD(&droq->dispatch_list);
droq              337 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		struct octeon_droq *droq,
droq              347 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	info = (struct octeon_droq_info *)droq->recv_buf_list[idx].data;
droq              364 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			pg_info = &droq->recv_buf_list[idx].pg_info;
droq              374 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			 droq->buffer_size) ? droq->buffer_size : bytes_left;
droq              376 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		recv_pkt->buffer_ptr[i] = droq->recv_buf_list[idx].buffer;
droq              377 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		droq->recv_buf_list[idx].buffer = NULL;
droq              379 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		idx = incr_index(idx, 1, droq->max_count);
droq              380 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		bytes_left -= droq->buffer_size;
droq              392 drivers/net/ethernet/cavium/liquidio/octeon_droq.c octeon_droq_refill_pullup_descs(struct octeon_droq *droq,
droq              397 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	u32 refill_index = droq->refill_idx;
droq              399 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	while (refill_index != droq->read_idx) {
droq              400 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		if (droq->recv_buf_list[refill_index].buffer) {
droq              401 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			droq->recv_buf_list[droq->refill_idx].buffer =
droq              402 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				droq->recv_buf_list[refill_index].buffer;
droq              403 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			droq->recv_buf_list[droq->refill_idx].data =
droq              404 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				droq->recv_buf_list[refill_index].data;
droq              405 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			desc_ring[droq->refill_idx].buffer_ptr =
droq              407 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			droq->recv_buf_list[refill_index].buffer = NULL;
droq              410 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				droq->refill_idx = incr_index(droq->refill_idx,
droq              412 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 							      droq->max_count);
droq              414 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				droq->refill_count--;
droq              415 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			} while (droq->recv_buf_list[droq->refill_idx].buffer);
droq              417 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		refill_index = incr_index(refill_index, 1, droq->max_count);
droq              434 drivers/net/ethernet/cavium/liquidio/octeon_droq.c octeon_droq_refill(struct octeon_device *octeon_dev, struct octeon_droq *droq)
droq              442 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	desc_ring = droq->desc_ring;
droq              444 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	while (droq->refill_count && (desc_refilled < droq->max_count)) {
droq              448 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		if (!droq->recv_buf_list[droq->refill_idx].buffer) {
droq              450 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				&droq->recv_buf_list[droq->refill_idx].pg_info;
droq              462 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				droq->stats.rx_alloc_failure++;
droq              465 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			droq->recv_buf_list[droq->refill_idx].buffer =
droq              469 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			data = get_rbd(droq->recv_buf_list
droq              470 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				       [droq->refill_idx].buffer);
droq              473 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		droq->recv_buf_list[droq->refill_idx].data = data;
droq              475 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		desc_ring[droq->refill_idx].buffer_ptr =
droq              476 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			lio_map_ring(droq->recv_buf_list[
droq              477 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				     droq->refill_idx].buffer);
droq              479 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		droq->refill_idx = incr_index(droq->refill_idx, 1,
droq              480 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 					      droq->max_count);
droq              482 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		droq->refill_count--;
droq              485 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	if (droq->refill_count)
droq              487 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			octeon_droq_refill_pullup_descs(droq, desc_ring);
droq              501 drivers/net/ethernet/cavium/liquidio/octeon_droq.c int octeon_retry_droq_refill(struct octeon_droq *droq)
droq              503 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	struct octeon_device *oct = droq->oct_dev;
droq              507 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	pkts_credit = readl(droq->pkts_credit_reg);
droq              508 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	desc_refilled = octeon_droq_refill(oct, droq);
droq              515 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		writel(desc_refilled, droq->pkts_credit_reg);
droq              532 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			 struct octeon_droq *droq,
droq              540 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	cnt = octeon_droq_get_bufcount(droq->buffer_size, (u32)info->length);
droq              545 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		rinfo = octeon_create_recv_info(oct, droq, cnt, droq->read_idx);
droq              553 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				      &droq->dispatch_list);
droq              555 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			droq->stats.dropped_nomem++;
droq              561 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		droq->stats.dropped_nodispatch++;
droq              568 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 					    struct octeon_droq *droq,
droq              576 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			droq->recv_buf_list[droq->read_idx].data;
droq              581 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			droq->stats.bytes_received += info->length;
droq              582 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			buf_cnt = octeon_droq_get_bufcount(droq->buffer_size,
droq              589 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		droq->read_idx = incr_index(droq->read_idx, buf_cnt,
droq              590 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 					    droq->max_count);
droq              591 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		droq->refill_count += buf_cnt;
droq              597 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				 struct octeon_droq *droq,
droq              613 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			droq->recv_buf_list[droq->read_idx].data;
droq              619 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				droq->q_no, droq->read_idx, pkt_count);
droq              635 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			buf_cnt = octeon_droq_dispatch_pkt(oct, droq, rh, info);
droq              636 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			droq->read_idx = incr_index(droq->read_idx,
droq              637 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 						    buf_cnt, droq->max_count);
droq              638 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			droq->refill_count += buf_cnt;
droq              640 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			if (info->length <= droq->buffer_size) {
droq              642 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				nicbuf = droq->recv_buf_list[
droq              643 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 					droq->read_idx].buffer;
droq              644 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				pg_info = &droq->recv_buf_list[
droq              645 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 					droq->read_idx].pg_info;
droq              648 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				droq->recv_buf_list[droq->read_idx].buffer =
droq              651 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				droq->read_idx = incr_index(droq->read_idx, 1,
droq              652 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 							    droq->max_count);
droq              653 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				droq->refill_count++;
droq              662 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 					int cpy_len, idx = droq->read_idx;
droq              664 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 					cpy_len = ((pkt_len + droq->buffer_size)
droq              667 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 						droq->buffer_size;
droq              670 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 						octeon_fast_packet_next(droq,
droq              674 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 						buf = droq->recv_buf_list[
droq              677 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 						droq->recv_buf_list[idx].buffer
droq              680 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 						droq->stats.rx_alloc_failure++;
droq              684 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 					droq->read_idx =
droq              685 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 						incr_index(droq->read_idx, 1,
droq              686 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 							   droq->max_count);
droq              687 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 					droq->refill_count++;
droq              692 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				if (droq->ops.fptr) {
droq              693 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 					droq->ops.fptr(oct->octeon_id,
droq              695 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 						       rh, &droq->napi,
droq              696 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 						       droq->ops.farg);
droq              703 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		if (droq->refill_count >= droq->refill_threshold) {
droq              704 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			int desc_refilled = octeon_droq_refill(oct, droq);
droq              712 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				writel(desc_refilled, droq->pkts_credit_reg);
droq              718 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->stats.pkts_received += pkt;
droq              719 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->stats.bytes_received += total_len;
droq              722 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	if ((droq->ops.drop_on_max) && (pkts_to_process - pkt)) {
droq              723 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		octeon_droq_drop_packets(oct, droq, (pkts_to_process - pkt));
droq              725 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		droq->stats.dropped_toomany += (pkts_to_process - pkt);
droq              729 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	atomic_sub(retval, &droq->pkts_pending);
droq              731 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	if (droq->refill_count >= droq->refill_threshold &&
droq              732 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	    readl(droq->pkts_credit_reg) < CN23XX_SLI_DEF_BP) {
droq              733 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		octeon_droq_check_hw_for_pkts(droq);
droq              736 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		if (!atomic_read(&droq->pkts_pending))
droq              737 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			octeon_schedule_rxq_oom_work(oct, droq);
droq              745 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			    struct octeon_droq *droq,
droq              751 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	octeon_droq_check_hw_for_pkts(droq);
droq              752 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	pkt_count = atomic_read(&droq->pkts_pending);
droq              760 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	octeon_droq_fast_process_packets(oct, droq, pkt_count);
droq              762 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	list_for_each_safe(tmp, tmp2, &droq->dispatch_list) {
droq              774 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	if (atomic_read(&droq->pkts_pending))
droq              787 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			      struct octeon_droq *droq, u32 budget)
droq              793 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	if (budget > droq->max_count)
droq              794 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		budget = droq->max_count;
droq              797 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		octeon_droq_check_hw_for_pkts(droq);
droq              800 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 				     (u32)(atomic_read(&droq->pkts_pending)));
droq              806 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 			octeon_droq_fast_process_packets(oct, droq,
droq              812 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	list_for_each_safe(tmp, tmp2, &droq->dispatch_list) {
droq              854 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		lio_enable_irq(oct->droq[q_no], oct->instr_queue[q_no]);
droq              858 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		lio_enable_irq(oct->droq[q_no], oct->instr_queue[q_no]);
droq              872 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	struct octeon_droq *droq;
droq              891 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq = oct->droq[q_no];
droq              892 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	memcpy(&droq->ops, ops, sizeof(struct octeon_droq_ops));
droq              900 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	struct octeon_droq *droq;
droq              913 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq = oct->droq[q_no];
droq              915 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	if (!droq) {
droq              921 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->ops.fptr = NULL;
droq              922 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->ops.farg = NULL;
droq              923 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq->ops.drop_on_max = 0;
droq              932 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	struct octeon_droq *droq;
droq              935 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	if (oct->droq[q_no]) {
droq              942 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	droq = vmalloc_node(sizeof(*droq), numa_node);
droq              943 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	if (!droq)
droq              944 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		droq = vmalloc(sizeof(*droq));
droq              945 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	if (!droq)
droq              948 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	memset(droq, 0, sizeof(struct octeon_droq));
droq              952 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 	oct->droq[q_no] = droq;
droq              956 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		vfree(oct->droq[q_no]);
droq              957 drivers/net/ethernet/cavium/liquidio/octeon_droq.c 		oct->droq[q_no] = NULL;
droq              400 drivers/net/ethernet/cavium/liquidio/octeon_droq.h u32 octeon_droq_check_hw_for_pkts(struct octeon_droq *droq);
droq              406 drivers/net/ethernet/cavium/liquidio/octeon_droq.h 				struct octeon_droq *droq,
droq              410 drivers/net/ethernet/cavium/liquidio/octeon_droq.h 				  struct octeon_droq *droq, u32 budget);
droq              414 drivers/net/ethernet/cavium/liquidio/octeon_droq.h int octeon_retry_droq_refill(struct octeon_droq *droq);
droq              222 drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c 		if (!oct->droq[i])
droq              224 drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c 		stats->rx_packets += oct->droq[i]->stats.rx_pkts_received;
droq              225 drivers/net/ethernet/cavium/liquidio/octeon_mailbox.c 		stats->rx_bytes += oct->droq[i]->stats.rx_bytes_received;
droq               75 drivers/net/ethernet/cavium/liquidio/octeon_main.h 				  struct octeon_droq *droq);
droq              490 drivers/net/ethernet/cavium/liquidio/octeon_network.h static inline void octeon_fast_packet_next(struct octeon_droq *droq,
droq              495 drivers/net/ethernet/cavium/liquidio/octeon_network.h 	skb_put_data(nicbuf, get_rbd(droq->recv_buf_list[idx].buffer),