Lines Matching refs:irq_line
207 struct vgpio_irq_line *irq_line = &vgpio->irq_lines[gpio];
208 struct virtio_gpio_irq_request *ireq = &irq_line->ireq;
209 struct virtio_gpio_irq_response *ires = &irq_line->ires;
213 if (WARN_ON(irq_line->queued || irq_line->masked || irq_line->disabled))
222 ret = virtqueue_add_sgs(vgpio->event_vq, sgs, 1, 1, irq_line, GFP_ATOMIC);
228 irq_line->queued = true;
236 struct vgpio_irq_line *irq_line = &vgpio->irq_lines[d->hwirq];
239 irq_line->disabled = false;
240 irq_line->masked = false;
241 irq_line->queue_pending = true;
244 irq_line->update_pending = true;
251 struct vgpio_irq_line *irq_line = &vgpio->irq_lines[d->hwirq];
254 irq_line->disabled = true;
255 irq_line->masked = true;
256 irq_line->queue_pending = false;
259 irq_line->update_pending = true;
266 struct vgpio_irq_line *irq_line = &vgpio->irq_lines[d->hwirq];
269 irq_line->masked = true;
277 struct vgpio_irq_line *irq_line = &vgpio->irq_lines[d->hwirq];
280 irq_line->masked = false;
291 struct vgpio_irq_line *irq_line = &vgpio->irq_lines[d->hwirq];
314 irq_line->type = type;
315 irq_line->update_pending = true;
332 struct vgpio_irq_line *irq_line = &vgpio->irq_lines[d->hwirq];
333 u8 type = irq_line->disabled ? VIRTIO_GPIO_IRQ_TYPE_NONE : irq_line->type;
336 if (irq_line->update_pending) {
337 irq_line->update_pending = false;
343 if (irq_line->queue_pending) {
344 irq_line->queue_pending = false;
367 struct vgpio_irq_line *irq_line)
372 irq_line->queued = false;
375 if (irq_line->masked || irq_line->disabled) {
384 if (irq_line->ires.status == VIRTIO_GPIO_IRQ_STATUS_INVALID) {
390 if (WARN_ON(irq_line->ires.status != VIRTIO_GPIO_IRQ_STATUS_VALID))
403 struct vgpio_irq_line *irq_line;
408 irq_line = virtqueue_get_buf(vgpio->event_vq, &len);
409 if (!irq_line)
412 if (len != sizeof(irq_line->ires)) {
414 len, (unsigned int)sizeof(irq_line->ires));
419 * Find GPIO line number from the offset of irq_line within the
424 gpio = irq_line - vgpio->irq_lines;
427 if (unlikely(ignore_irq(vgpio, gpio, irq_line)))