pci.c (5f8f965287494d55e8ba3551e3727a5e9d0eb702) | pci.c (0f01dcb89b8b24b8d99d2ca25ed12676edae95ce) |
---|---|
1// SPDX-License-Identifier: BSD-3-Clause-Clear 2/* 3 * Copyright (c) 2019-2020 The Linux Foundation. All rights reserved. 4 */ 5 6#include <linux/module.h> 7#include <linux/msi.h> 8#include <linux/pci.h> --- 366 unchanged lines hidden (view full) --- 375 if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) 376 continue; 377 378 irq_idx = ATH11K_PCI_IRQ_CE0_OFFSET + i; 379 synchronize_irq(ab->irq_num[irq_idx]); 380 } 381} 382 | 1// SPDX-License-Identifier: BSD-3-Clause-Clear 2/* 3 * Copyright (c) 2019-2020 The Linux Foundation. All rights reserved. 4 */ 5 6#include <linux/module.h> 7#include <linux/msi.h> 8#include <linux/pci.h> --- 366 unchanged lines hidden (view full) --- 375 if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) 376 continue; 377 378 irq_idx = ATH11K_PCI_IRQ_CE0_OFFSET + i; 379 synchronize_irq(ab->irq_num[irq_idx]); 380 } 381} 382 |
383static void ath11k_pci_ce_tasklet(unsigned long data) | 383static void ath11k_pci_ce_tasklet(struct tasklet_struct *t) |
384{ | 384{ |
385 struct ath11k_ce_pipe *ce_pipe = (struct ath11k_ce_pipe *)data; | 385 struct ath11k_ce_pipe *ce_pipe = from_tasklet(ce_pipe, t, intr_tq); |
386 387 ath11k_ce_per_engine_service(ce_pipe->ab, ce_pipe->pipe_num); 388 389 ath11k_pci_ce_irq_enable(ce_pipe->ab, ce_pipe->pipe_num); 390} 391 392static irqreturn_t ath11k_pci_ce_interrupt_handler(int irq, void *arg) 393{ --- 182 unchanged lines hidden (view full) --- 576 irq = ath11k_pci_get_msi_irq(ab->dev, msi_data); 577 ce_pipe = &ab->ce.ce_pipe[i]; 578 579 if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) 580 continue; 581 582 irq_idx = ATH11K_PCI_IRQ_CE0_OFFSET + i; 583 | 386 387 ath11k_ce_per_engine_service(ce_pipe->ab, ce_pipe->pipe_num); 388 389 ath11k_pci_ce_irq_enable(ce_pipe->ab, ce_pipe->pipe_num); 390} 391 392static irqreturn_t ath11k_pci_ce_interrupt_handler(int irq, void *arg) 393{ --- 182 unchanged lines hidden (view full) --- 576 irq = ath11k_pci_get_msi_irq(ab->dev, msi_data); 577 ce_pipe = &ab->ce.ce_pipe[i]; 578 579 if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) 580 continue; 581 582 irq_idx = ATH11K_PCI_IRQ_CE0_OFFSET + i; 583 |
584 tasklet_init(&ce_pipe->intr_tq, ath11k_pci_ce_tasklet, 585 (unsigned long)ce_pipe); | 584 tasklet_setup(&ce_pipe->intr_tq, ath11k_pci_ce_tasklet); |
586 587 ret = request_irq(irq, ath11k_pci_ce_interrupt_handler, 588 IRQF_SHARED, irq_name[irq_idx], 589 ce_pipe); 590 if (ret) { 591 ath11k_err(ab, "failed to request irq %d: %d\n", 592 irq_idx, ret); 593 return ret; --- 469 unchanged lines hidden --- | 585 586 ret = request_irq(irq, ath11k_pci_ce_interrupt_handler, 587 IRQF_SHARED, irq_name[irq_idx], 588 ce_pipe); 589 if (ret) { 590 ath11k_err(ab, "failed to request irq %d: %d\n", 591 irq_idx, ret); 592 return ret; --- 469 unchanged lines hidden --- |