From 3ae2c076ed38afe76b4c223fbc2e87738a5b44dd Mon Sep 17 00:00:00 2001 From: Yuho Choi Date: Wed, 23 Sep 2026 19:54:21 -0400 Subject: [PATCH] bus: mhi: ep: Use IRQF_NO_AUTOEN flag in request_irq() mhi_ep_register_controller() sets IRQ_NOAUTOEN on the doorbell IRQ descriptor before request_irq(), and the flag is never cleared on the error paths or in mhi_ep_unregister_controller(), so it stays on the descriptor after the IRQ is freed. Pass IRQF_NO_AUTOEN to request_irq() instead. It keeps the IRQ disabled until mhi_ep_power_up() enables it, without leaving state behind on the descriptor. Signed-off-by: Yuho Choi Signed-off-by: Manivannan Sadhasivam Reviewed-by: Manivannan Sadhasivam Link: https://patch.msgid.link/20260923235430.703236-1-oss.patchbox@gmail.com --- drivers/bus/mhi/ep/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/bus/mhi/ep/main.c b/drivers/bus/mhi/ep/main.c index db7ee6547eef..da498570113a 100644 --- a/drivers/bus/mhi/ep/main.c +++ b/drivers/bus/mhi/ep/main.c @@ -1534,8 +1534,8 @@ int mhi_ep_register_controller(struct mhi_ep_cntrl *mhi_cntrl, mhi_cntrl->index = ret; - irq_set_status_flags(mhi_cntrl->irq, IRQ_NOAUTOEN); - ret = request_irq(mhi_cntrl->irq, mhi_ep_irq, IRQF_TRIGGER_HIGH, + ret = request_irq(mhi_cntrl->irq, mhi_ep_irq, + IRQF_TRIGGER_HIGH | IRQF_NO_AUTOEN, "doorbell_irq", mhi_cntrl); if (ret) { dev_err(mhi_cntrl->cntrl_dev, "Failed to request Doorbell IRQ\n");