[PATCH] PCI: mediatek: Change MSI interrupt processing sequence
Chen-Yu Tsai
wenst at chromium.org
Sun Jan 23 19:12:49 PST 2022
Hi,
On Sun, Jan 23, 2022 at 11:34 AM qizhong cheng
<qizhong.cheng at mediatek.com> wrote:
>
> As an edge-triggered interrupts, its interrupt status should be cleared
> before dispatch to the handler of device.
I'm curious, is this just a code correction or are there real world
cases where something fails?
Also, please add a Fixes tag and maybe Cc stable so this gets backported
automatically.
ChenYu
> Signed-off-by: qizhong cheng <qizhong.cheng at mediatek.com>
> ---
> drivers/pci/controller/pcie-mediatek.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/pci/controller/pcie-mediatek.c b/drivers/pci/controller/pcie-mediatek.c
> index 2f3f974977a3..705ea33758b1 100644
> --- a/drivers/pci/controller/pcie-mediatek.c
> +++ b/drivers/pci/controller/pcie-mediatek.c
> @@ -624,12 +624,12 @@ static void mtk_pcie_intr_handler(struct irq_desc *desc)
> if (status & MSI_STATUS){
> unsigned long imsi_status;
>
> + /* Clear MSI interrupt status */
> + writel(MSI_STATUS, port->base + PCIE_INT_STATUS);
> while ((imsi_status = readl(port->base + PCIE_IMSI_STATUS))) {
> for_each_set_bit(bit, &imsi_status, MTK_MSI_IRQS_NUM)
> generic_handle_domain_irq(port->inner_domain, bit);
> }
> - /* Clear MSI interrupt status */
> - writel(MSI_STATUS, port->base + PCIE_INT_STATUS);
> }
> }
>
> --
> 2.25.1
>
>
> _______________________________________________
> Linux-mediatek mailing list
> Linux-mediatek at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-mediatek
More information about the linux-arm-kernel
mailing list