diff --git a/msm/sde/sde_core_irq.c b/msm/sde/sde_core_irq.c index cb175962..4c6dd2b2 100644 --- a/msm/sde/sde_core_irq.c +++ b/msm/sde/sde_core_irq.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2015-2021, The Linux Foundation. All rights reserved. */ @@ -66,15 +66,6 @@ static void sde_core_irq_callback_handler(void *arg, int irq_idx) SDE_EVT32_IRQ(irq_idx, enable_counts, SDE_EVTLOG_ERROR); } } - - /* - * Clear pending interrupt status in HW. - * NOTE: sde_core_irq_callback_handler is protected by top-level - * spinlock, so it is safe to clear any interrupt status here. - */ - sde_kms->hw_intr->ops.clear_intr_status_nolock( - sde_kms->hw_intr, - irq_idx); } int sde_core_irq_idx_lookup(struct sde_kms *sde_kms, diff --git a/msm/sde/sde_hw_interrupts.c b/msm/sde/sde_hw_interrupts.c index a3da29b5..97fd07dc 100644 --- a/msm/sde/sde_hw_interrupts.c +++ b/msm/sde/sde_hw_interrupts.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved. */ @@ -467,17 +467,11 @@ static void sde_hw_intr_dispatch_irq(struct sde_hw_intr *intr, reg_idx)) { /* * Once a match on irq mask, perform a callback - * to the given cbfunc. cbfunc will take care - * the interrupt status clearing. If cbfunc is - * not provided, then the interrupt clearing - * is here. + * to the given cbfunci. This callback is done + * after clearing the interrupt registers. */ if (cbfunc) cbfunc(arg, irq_idx); - else - intr->ops.clear_intr_status_nolock( - intr, irq_idx); - /* * When callback finish, clear the irq_status * with the matching mask. Once irq_status @@ -840,7 +834,6 @@ static void __setup_intr_ops(struct sde_hw_intr_ops *ops) ops->disable_all_irqs = sde_hw_intr_disable_irqs; ops->get_interrupt_sources = sde_hw_intr_get_interrupt_sources; ops->clear_interrupt_status = sde_hw_intr_clear_interrupt_status; - ops->clear_intr_status_nolock = sde_hw_intr_clear_intr_status_nolock; ops->get_interrupt_status = sde_hw_intr_get_interrupt_status; ops->get_intr_status_nolock = sde_hw_intr_get_intr_status_nolock; } diff --git a/msm/sde/sde_hw_interrupts.h b/msm/sde/sde_hw_interrupts.h index 71a40497..411ae741 100644 --- a/msm/sde/sde_hw_interrupts.h +++ b/msm/sde/sde_hw_interrupts.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2016-2019, 2021, The Linux Foundation. All rights reserved. */ @@ -180,15 +180,6 @@ struct sde_hw_intr_ops { struct sde_hw_intr *intr, int irq_idx); - /** - * clear_intr_status_nolock() - clears the HW interrupts without lock - * @intr: HW interrupt handle - * @irq_idx: Lookup irq index return from irq_idx_lookup - */ - void (*clear_intr_status_nolock)( - struct sde_hw_intr *intr, - int irq_idx); - /** * get_interrupt_status - Gets HW interrupt status, and clear if set, * based on given lookup IRQ index.