Home
last modified time | relevance | path

Searched full:queue (Results 1 – 25 of 2821) sorted by relevance

12345678910>>...113

/linux/drivers/net/wireless/st/cw1200/
H A Dqueue.c3 * O(1) TX queue with built-in allocator for ST-Ericsson CW1200 drivers
12 #include "queue.h"
27 static inline void __cw1200_queue_lock(struct cw1200_queue *queue) in __cw1200_queue_lock() argument
29 struct cw1200_queue_stats *stats = queue->stats; in __cw1200_queue_lock()
30 if (queue->tx_locked_cnt++ == 0) { in __cw1200_queue_lock()
31 pr_debug("[TX] Queue %d is locked.\n", in __cw1200_queue_lock()
32 queue->queue_id); in __cw1200_queue_lock()
33 ieee80211_stop_queue(stats->priv->hw, queue->queue_id); in __cw1200_queue_lock()
37 static inline void __cw1200_queue_unlock(struct cw1200_queue *queue) in __cw1200_queue_unlock() argument
39 struct cw1200_queue_stats *stats = queue->stats; in __cw1200_queue_unlock()
[all …]
/linux/drivers/usb/gadget/function/
H A Duvc_queue.c27 * Video buffers queue management.
33 * the videobuf2 queue operations by serializing calls to videobuf2 and a
34 * spinlock to protect the IRQ queue that holds the buffers to be processed by
39 * videobuf2 queue operations
46 struct uvc_video_queue *queue = vb2_get_drv_priv(vq); in uvc_queue_setup() local
47 struct uvc_video *video = container_of(queue, struct uvc_video, queue); in uvc_queue_setup()
63 struct uvc_video_queue *queue = vb2_get_drv_priv(vb->vb2_queue); in uvc_buffer_prepare() local
64 struct uvc_video *video = container_of(queue, struct uvc_video, queue); in uvc_buffer_prepare()
74 if (unlikely(queue->flags & UVC_QUEUE_DISCONNECTED)) in uvc_buffer_prepare()
78 if (queue->use_sg) { in uvc_buffer_prepare()
[all …]
/linux/drivers/net/wireless/broadcom/b43legacy/
H A Dpio.c22 static void tx_start(struct b43legacy_pioqueue *queue) in tx_start() argument
24 b43legacy_pio_write(queue, B43legacy_PIO_TXCTL, in tx_start()
28 static void tx_octet(struct b43legacy_pioqueue *queue, in tx_octet() argument
31 if (queue->need_workarounds) { in tx_octet()
32 b43legacy_pio_write(queue, B43legacy_PIO_TXDATA, octet); in tx_octet()
33 b43legacy_pio_write(queue, B43legacy_PIO_TXCTL, in tx_octet()
36 b43legacy_pio_write(queue, B43legacy_PIO_TXCTL, in tx_octet()
38 b43legacy_pio_write(queue, B43legacy_PIO_TXDATA, octet); in tx_octet()
63 static void tx_data(struct b43legacy_pioqueue *queue, in tx_data() argument
71 if (queue->need_workarounds) { in tx_data()
[all …]
/linux/drivers/scsi/arm/
H A Dqueue.h3 * linux/drivers/acorn/scsi/queue.h: queue handling
18 * Function: void queue_initialise (Queue_t *queue)
19 * Purpose : initialise a queue
20 * Params : queue - queue to initialise
22 extern int queue_initialise (Queue_t *queue);
25 * Function: void queue_free (Queue_t *queue)
26 * Purpose : free a queue
27 * Params : queue - queue to free
29 extern void queue_free (Queue_t *queue);
32 * Function: struct scsi_cmnd *queue_remove (queue)
[all …]
H A Dqueue.c3 * linux/drivers/acorn/scsi/queue.c: queue handling primitives
50 #include "queue.h"
55 * Function: void queue_initialise (Queue_t *queue)
56 * Purpose : initialise a queue
57 * Params : queue - queue to initialise
59 int queue_initialise (Queue_t *queue) in queue_initialise() argument
64 spin_lock_init(&queue->queue_lock); in queue_initialise()
65 INIT_LIST_HEAD(&queue->head); in queue_initialise()
66 INIT_LIST_HEAD(&queue->free); in queue_initialise()
74 queue->alloc = q = kmalloc_objs(QE_t, nqueues); in queue_initialise()
[all …]
/linux/drivers/net/xen-netback/
H A Drx.c42 static void xenvif_update_needed_slots(struct xenvif_queue *queue, in xenvif_update_needed_slots() argument
55 WRITE_ONCE(queue->rx_slots_needed, needed); in xenvif_update_needed_slots()
58 static bool xenvif_rx_ring_slots_available(struct xenvif_queue *queue) in xenvif_rx_ring_slots_available() argument
63 needed = READ_ONCE(queue->rx_slots_needed); in xenvif_rx_ring_slots_available()
68 prod = queue->rx.sring->req_prod; in xenvif_rx_ring_slots_available()
69 cons = queue->rx.req_cons; in xenvif_rx_ring_slots_available()
74 queue->rx.sring->req_event = prod + 1; in xenvif_rx_ring_slots_available()
80 } while (queue->rx.sring->req_prod != prod); in xenvif_rx_ring_slots_available()
85 bool xenvif_rx_queue_tail(struct xenvif_queue *queue, struct sk_buff *skb) in xenvif_rx_queue_tail() argument
90 spin_lock_irqsave(&queue->rx_queue.lock, flags); in xenvif_rx_queue_tail()
[all …]
H A Dinterface.c44 /* Number of bytes allowed on the internal guest Rx queue. */
52 void xenvif_skb_zerocopy_prepare(struct xenvif_queue *queue, in xenvif_skb_zerocopy_prepare() argument
56 atomic_inc(&queue->inflight_packets); in xenvif_skb_zerocopy_prepare()
59 void xenvif_skb_zerocopy_complete(struct xenvif_queue *queue) in xenvif_skb_zerocopy_complete() argument
61 atomic_dec(&queue->inflight_packets); in xenvif_skb_zerocopy_complete()
67 wake_up(&queue->dealloc_wq); in xenvif_skb_zerocopy_complete()
77 static bool xenvif_handle_tx_interrupt(struct xenvif_queue *queue) in xenvif_handle_tx_interrupt() argument
81 rc = RING_HAS_UNCONSUMED_REQUESTS(&queue->tx); in xenvif_handle_tx_interrupt()
83 napi_schedule(&queue->napi); in xenvif_handle_tx_interrupt()
89 struct xenvif_queue *queue = dev_id; in xenvif_tx_interrupt() local
[all …]
H A Dnetback.c59 /* The time that packets can stay on the guest Rx internal queue
107 static void xenvif_idx_release(struct xenvif_queue *queue, u16 pending_idx,
110 static void make_tx_response(struct xenvif_queue *queue,
115 static void xenvif_idx_unmap(struct xenvif_queue *queue, u16 pending_idx);
117 static inline int tx_work_todo(struct xenvif_queue *queue);
119 static inline unsigned long idx_to_pfn(struct xenvif_queue *queue, in idx_to_pfn() argument
122 return page_to_pfn(queue->mmap_pages[idx]); in idx_to_pfn()
125 static inline unsigned long idx_to_kaddr(struct xenvif_queue *queue, in idx_to_kaddr() argument
128 return (unsigned long)pfn_to_kaddr(idx_to_pfn(queue, idx)); in idx_to_kaddr()
161 void xenvif_kick_thread(struct xenvif_queue *queue) in xenvif_kick_thread() argument
[all …]
/linux/drivers/net/wireguard/
H A Dqueueing.c25 int wg_packet_queue_init(struct crypt_queue *queue, work_func_t function, in wg_packet_queue_init() argument
30 memset(queue, 0, sizeof(*queue)); in wg_packet_queue_init()
31 queue->last_cpu = -1; in wg_packet_queue_init()
32 ret = ptr_ring_init(&queue->ring, len, GFP_KERNEL); in wg_packet_queue_init()
35 queue->worker = wg_packet_percpu_multicore_worker_alloc(function, queue); in wg_packet_queue_init()
36 if (!queue->worker) { in wg_packet_queue_init()
37 ptr_ring_cleanup(&queue->ring, NULL); in wg_packet_queue_init()
43 void wg_packet_queue_free(struct crypt_queue *queue, bool purge) in wg_packet_queue_free() argument
45 free_percpu(queue->worker); in wg_packet_queue_free()
46 WARN_ON(!purge && !__ptr_ring_empty(&queue->ring)); in wg_packet_queue_free()
[all …]
/linux/drivers/iio/buffer/
H A Dindustrialio-buffer-dma.c38 * means of two queues. The incoming queue and the outgoing queue. Blocks on the
39 * incoming queue are waiting for the DMA controller to pick them up and fill
40 * them with data. Block on the outgoing queue have been filled with data and
56 * incoming or outgoing queue the block will be freed.
102 struct iio_dma_buffer_queue *queue = block->queue; in iio_buffer_block_release() local
107 dma_free_coherent(queue->dev, PAGE_ALIGN(block->size), in iio_buffer_block_release()
110 atomic_dec(&queue->num_dmabufs); in iio_buffer_block_release()
113 iio_buffer_put(&queue->buffer); in iio_buffer_block_release()
173 iio_dma_buffer_alloc_block(struct iio_dma_buffer_queue *queue, size_t size, in iio_dma_buffer_alloc_block() argument
182 block->vaddr = dma_alloc_coherent(queue->dev, PAGE_ALIGN(size), in iio_dma_buffer_alloc_block()
[all …]
/linux/drivers/net/
H A Dxen-netfront.c91 /* Queue name is interface name with "-qNNN" appended */
94 /* IRQ name is queue name with "-tx" or "-rx" appended */
108 unsigned int id; /* Queue ID, 0-based */
166 /* Multi-queue support */
218 static struct sk_buff *xennet_get_rx_skb(struct netfront_queue *queue, in xennet_get_rx_skb() argument
222 struct sk_buff *skb = queue->rx_skbs[i]; in xennet_get_rx_skb()
223 queue->rx_skbs[i] = NULL; in xennet_get_rx_skb()
227 static grant_ref_t xennet_get_rx_ref(struct netfront_queue *queue, in xennet_get_rx_ref() argument
231 grant_ref_t ref = queue->grant_rx_ref[i]; in xennet_get_rx_ref()
232 queue->grant_rx_ref[i] = INVALID_GRANT_REF; in xennet_get_rx_ref()
[all …]
/linux/drivers/misc/genwqe/
H A Dcard_ddcb.c14 * Device Driver Control Block (DDCB) queue support. Definition of
15 * interrupt handlers for queue support as well as triggering the
40 * Situation (1): Empty queue
56 * Situation (3): Queue wrapped, A > N
64 * Situation (4a): Queue full N > A
73 * Situation (4a): Queue full A > N
82 static int queue_empty(struct ddcb_queue *queue) in queue_empty() argument
84 return queue->ddcb_next == queue->ddcb_act; in queue_empty()
87 static int queue_enqueued_ddcbs(struct ddcb_queue *queue) in queue_enqueued_ddcbs() argument
89 if (queue->ddcb_next >= queue->ddcb_act) in queue_enqueued_ddcbs()
[all …]
/linux/drivers/net/wireless/ralink/rt2x00/
H A Drt2x00queue.c12 Abstract: rt2x00 queue specific routines.
25 struct data_queue *queue = entry->queue; in rt2x00queue_alloc_rxskb() local
26 struct rt2x00_dev *rt2x00dev = queue->rt2x00dev; in rt2x00queue_alloc_rxskb()
37 frame_size = queue->data_size + queue->desc_size + queue->winfo_size; in rt2x00queue_alloc_rxskb()
95 struct device *dev = entry->queue->rt2x00dev->dev; in rt2x00queue_map_txskb()
112 struct device *dev = entry->queue->rt2x00dev->dev; in rt2x00queue_unmap_skb()
488 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; in rt2x00queue_write_tx_data()
493 * a queue corruption! in rt2x00queue_write_tx_data()
498 "Corrupt queue %d, accessing entry which is not ours\n" in rt2x00queue_write_tx_data()
500 entry->queue->qid, DRV_PROJECT); in rt2x00queue_write_tx_data()
[all …]
H A Drt2x00queue.h10 Abstract: rt2x00 queue datastructures and routines
33 * enum data_queue_qid: Queue identification
35 * @QID_AC_VO: AC VO queue
36 * @QID_AC_VI: AC VI queue
37 * @QID_AC_BE: AC BE queue
38 * @QID_AC_BK: AC BK queue
39 * @QID_HCCA: HCCA queue
40 * @QID_MGMT: MGMT queue (prio queue)
41 * @QID_RX: RX queue
43 * @QID_BEACON: Beacon queue (value unspecified, don't send it to device)
[all …]
H A Drt2x00mmio.c51 struct data_queue *queue = rt2x00dev->rx; in rt2x00mmio_rxdone() local
58 entry = rt2x00queue_get_entry(queue, Q_INDEX); in rt2x00mmio_rxdone()
69 skbdesc->desc_len = entry->queue->desc_size; in rt2x00mmio_rxdone()
88 void rt2x00mmio_flush_queue(struct data_queue *queue, bool drop) in rt2x00mmio_flush_queue() argument
92 for (i = 0; !rt2x00queue_empty(queue) && i < 10; i++) in rt2x00mmio_flush_queue()
101 struct data_queue *queue) in rt2x00mmio_alloc_queue_dma() argument
112 queue->limit * queue->desc_size, &dma, in rt2x00mmio_alloc_queue_dma()
118 * Initialize all queue entries to contain valid addresses. in rt2x00mmio_alloc_queue_dma()
120 for (i = 0; i < queue->limit; i++) { in rt2x00mmio_alloc_queue_dma()
121 entry_priv = queue->entries[i].priv_data; in rt2x00mmio_alloc_queue_dma()
[all …]
/linux/drivers/net/ethernet/ibm/ehea/
H A Dehea_qmr.h40 * WQE - Work Queue Entry
41 * SWQE - Send Work Queue Entry
42 * RWQE - Receive Work Queue Entry
43 * CQE - Completion Queue Entry
44 * EQE - Event Queue Entry
196 static inline void *hw_qeit_calc(struct hw_queue *queue, u64 q_offset) in hw_qeit_calc() argument
200 if (q_offset >= queue->queue_length) in hw_qeit_calc()
201 q_offset -= queue->queue_length; in hw_qeit_calc()
202 current_page = (queue->queue_pages)[q_offset >> EHEA_PAGESHIFT]; in hw_qeit_calc()
206 static inline void *hw_qeit_get(struct hw_queue *queue) in hw_qeit_get() argument
[all …]
/linux/net/sunrpc/
H A Dsched.c91 * queue->lock and bh_disabled in order to avoid races within
95 __rpc_disable_timer(struct rpc_wait_queue *queue, struct rpc_task *task) in __rpc_disable_timer() argument
101 if (list_empty(&queue->timer_list.list)) in __rpc_disable_timer()
102 cancel_delayed_work(&queue->timer_list.dwork); in __rpc_disable_timer()
106 rpc_set_queue_timer(struct rpc_wait_queue *queue, unsigned long expires) in rpc_set_queue_timer() argument
109 queue->timer_list.expires = expires; in rpc_set_queue_timer()
114 mod_delayed_work(rpciod_workqueue, &queue->timer_list.dwork, expires); in rpc_set_queue_timer()
121 __rpc_add_timer(struct rpc_wait_queue *queue, struct rpc_task *task, in __rpc_add_timer() argument
125 if (list_empty(&queue->timer_list.list) || time_before(timeout, queue->timer_list.expires)) in __rpc_add_timer()
126 rpc_set_queue_timer(queue, timeout); in __rpc_add_timer()
[all …]
/linux/drivers/net/wireless/ath/ath5k/
H A Dqcu.c20 Queue Control Unit, DCF Control Unit Functions
31 * DOC: Queue Control Unit (QCU)/DCF Control Unit (DCU) functions
35 * basically we have 10 queues to play with. Each queue has a matching
36 * QCU that controls when the queue will get triggered and multiple QCUs
39 * and DCUs allowing us to have different DFS settings for each queue.
41 * When a frame goes into a TX queue, QCU decides when it'll trigger a
43 * it's buffer or -if it's a beacon queue- if it's time to fire up the queue
58 * ath5k_hw_num_tx_pending() - Get number of pending frames for a given queue
60 * @queue: One of enum ath5k_tx_queue_id
63 ath5k_hw_num_tx_pending(struct ath5k_hw *ah, unsigned int queue) in ath5k_hw_num_tx_pending() argument
[all …]
H A Ddma.c27 * handle queue setup for 5210 chipset (rest are handled on qcu.c).
116 * ath5k_hw_start_tx_dma() - Start DMA transmit for a specific queue
118 * @queue: The hw queue number
120 * Start DMA transmit for a specific queue and since 5210 doesn't have
121 * QCU/DCU, set up queue parameters for 5210 here based on queue type (one
122 * queue for normal data and one queue for beacons). For queue setup
123 * on newer chips check out qcu.c. Returns -EINVAL if queue number is out
124 * of range or if queue is already disabled.
127 * queue (see below).
130 ath5k_hw_start_tx_dma(struct ath5k_hw *ah, unsigned int queue) in ath5k_hw_start_tx_dma() argument
[all …]
/linux/Documentation/devicetree/bindings/net/
H A Dintel,ixp4xx-hss.yaml15 Processing Engine) and the IXP4xx Queue Manager to process
35 intel,queue-chl-rxtrig:
39 - description: phandle to the RX trigger queue on the NPE
40 - description: the queue instance number
41 description: phandle to the RX trigger queue on the NPE
43 intel,queue-chl-txready:
47 - description: phandle to the TX ready queue on the NPE
48 - description: the queue instance number
49 description: phandle to the TX ready queue on the NPE
51 intel,queue-pkt-rx:
[all …]
/linux/drivers/md/dm-vdo/
H A Dfunnel-queue.h13 * A funnel queue is a simple (almost) lock-free queue that accepts entries from multiple threads
19 * mechanism to ensure that only one thread is consuming from the queue. If more than one thread
20 * attempts to consume from the queue, the resulting behavior is undefined. Clients must not
21 * directly access or manipulate the internals of the queue, which are only exposed for the purpose
25 * the queue entries, and pointers to those structures are used exclusively by the queue. No macros
26 * are defined to template the queue, so the offset of the funnel_queue_entry in the records placed
27 * in the queue must all be the same so the client can derive their structure pointer from the
31 * soon as they are returned since this queue is not susceptible to the "ABA problem" present in
32 * many lock-free data structures. The queue is dynamically allocated to ensure cache-line
36 * at which a preempted producer will prevent the consumers from seeing items added to the queue by
[all …]
/linux/Documentation/ABI/testing/
H A Dsysfs-class-net-queues1 What: /sys/class/net/<iface>/queues/rx-<queue>/rps_cpus
8 network device queue. Possible values depend on the number
11 What: /sys/class/net/<iface>/queues/rx-<queue>/rps_flow_cnt
17 processed by this particular network device receive queue.
19 What: /sys/class/net/<iface>/queues/tx-<queue>/tx_timeout
25 network interface transmit queue.
27 What: /sys/class/net/<iface>/queues/tx-<queue>/tx_maxrate
32 A Mbps max-rate set for the queue, a value of zero means disabled,
35 What: /sys/class/net/<iface>/queues/tx-<queue>/xps_cpus
42 network device transmit queue. Possible values depend on the
[all …]
/linux/Documentation/devicetree/bindings/soc/ti/
H A Dkeystone-navigator-qmss.txt1 * Texas Instruments Keystone Navigator Queue Management SubSystem driver
3 The QMSS (Queue Manager Sub System) found on Keystone SOCs is one of
5 multi-core Navigator. QMSS consist of queue managers, packed-data structure
8 The Queue Manager is a hardware module that is responsible for accelerating
15 queue pool management (allocation, push, pop and notify) and descriptor
23 - queue-range : <start number> total range of queue numbers for the device.
29 - qmgrs : child node describing the individual queue managers on the
32 -- managed-queues : the actual queues managed by each queue manager
33 instance, specified as <"base queue #" "# of queues">.
37 - Queue Peek region.
[all …]
/linux/include/drm/
H A Dspsc_queue.h30 /** SPSC lockless queue */
48 static inline void spsc_queue_init(struct spsc_queue *queue) in spsc_queue_init() argument
50 queue->head = NULL; in spsc_queue_init()
51 atomic_long_set(&queue->tail, (long)&queue->head); in spsc_queue_init()
52 atomic_set(&queue->job_count, 0); in spsc_queue_init()
55 static inline struct spsc_node *spsc_queue_peek(struct spsc_queue *queue) in spsc_queue_peek() argument
57 return queue->head; in spsc_queue_peek()
60 static inline int spsc_queue_count(struct spsc_queue *queue) in spsc_queue_count() argument
62 return atomic_read(&queue->job_count); in spsc_queue_count()
65 static inline bool spsc_queue_push(struct spsc_queue *queue, struct spsc_node *node) in spsc_queue_push() argument
[all …]
/linux/sound/core/seq/
H A Dseq_queue.c3 * ALSA sequencer Timing queue handling
10 * - Owner of unlocked queue is kept unmodified even if it is
19 * - The queue is locked when struct snd_seq_queue pointer is returned via
49 /* assign queue id and insert to list */
58 q->queue = i; in queue_list_add()
87 /* create new queue (constructor) */
100 q->queue = -1; in queue_new()
120 /* delete queue (destructor) */
153 static void queue_use(struct snd_seq_queue *queue, int client, int use);
155 /* allocate a new queue -
[all …]

12345678910>>...113