From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8534147DF9E for ; Fri, 6 Mar 2026 17:19:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772817597; cv=none; b=Y6YMxBYP/NHMt5VIprOz/NHyIlpvBEkoaO6F2xLwPSJOfONyze6o9V5fueDOVgkcA4T8w0euw4xC1YSCAMiQlacaO2yqjije1GGM9ZTRwY2kzo5XWo6VvTlGBX4CnPwLS4txB4Dxnv0X9GDw4cJjJNwSSh2S3Xqn2L+3l9PpOz0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772817597; c=relaxed/simple; bh=2j42ASgQuUcDy6NgGPRY+GFusXmJMuTDHZ0l9H+pHJQ=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=B2UUow24jUGtt/+ggJ6okIinE000i2dcvdUL0dWj68nYExryODrwogmIQ6rNaXUisSLNbtxe3C45R8PaWmWud/5862THibfhdgy4dqqwJz07iPdDYY6xvjqkO7Wwf+VymY2CpAQ2Oox1pl+BEukSiAq4cWqGDjkJnyBkaAt/wmU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=JBH8fArG; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="JBH8fArG" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2ae4d919f9bso36122975ad.0 for ; Fri, 06 Mar 2026 09:19:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1772817596; x=1773422396; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=5G2qfETfWaIeiwx7pdqCEdMtKTIzwBzgEQJjAbiAxY8=; b=JBH8fArGwUEdSEsxMdndPOxvUuqmbdtZ2id2efdOl4o9UDpigJj9zO+h2w30bpzt0H 6P54fQMAjoQBgD2oTT6skGtlzYMUIi+dxt6RNkJWs4dDIATxuL4g5uoI/hEIPDT33VNl IfA8JV2oRjfsg3CPytLj6Jza/IRIuHaOgTWHDfMvNo7CLkZ3IhArKNSPl7frQCbU3qKQ 77K8bg+7FB5DRojALrNBgXOs0bktrjBAiV2vZ7qu7db1CGINSJcAr3YC+mF7+vhMcr2/ /8YaZkljpWTAEFT9cojdFD6kpvy66o7KFuN8dbiJjyYkzLosGmdFIG7ysyOJW5v19os7 tGfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772817596; x=1773422396; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5G2qfETfWaIeiwx7pdqCEdMtKTIzwBzgEQJjAbiAxY8=; b=hzpftnNKZy81hpnnmn1Gr0XSf1PuSLtAm6zrmnUWQQTFUK+KlTX9Ry7+FyA/YunVC2 S69C4iRyGroFXu6eGUfnN8//9RRpnFVnzjcAR1Z17pvEN5AsdidwSPkFWPVcQsmrFAkz 1GoHpk1zmVVhFJG7veON8xaJ6Q/RL1MgTRQFOxYvlPGInnFi5MRZNw7WLGTK32gexmkZ 7W8LeyhtwNEthyb3A5CxivGIDqX8myRTKCb8kcUVOHp2/C84vkFyoAH2d88n2Ep2PzCp 9IuGuqejE9Ne7QVGVPD4JQ6Q/DDexxYhBZLZkdvB/seXSzu/P+1m1LOFszo4JW/85hvx 87fg== X-Forwarded-Encrypted: i=1; AJvYcCWLDG55JzrufNiBwxOPMFjucyWCjxuwgk+zGcL/xKsZvKQXyIgNSPQNMmJxDVRMceTpMlFQVCUrhJOnvm0=@vger.kernel.org X-Gm-Message-State: AOJu0Ywe55NKhQ+HZepQ4NPs6+87L90Qkm0AlpdHlptK5QWFEvMtbDPi HMPFRYf/s0JDf+qKco679Xc/sePAK4HvCYoR5G2Q0pF9jAIfVagWr89C8mMmOZfWq2k= X-Gm-Gg: ATEYQzz9zBylkBYAqQS0J4XTuhR5hZCjZ+c8aq4gqJmcw2lUXImAK59vREERou2Jr1j QwBHxzBjzL6AC3c2TzoMfLEcHNIG7D9vALClZQ4BkK5Gf/h5jfngFn9w2ZJ+LShvk//98YjcjFo 4wTqIW0ezts2MThzlGnkzQiatZ/vKvM4ASCKHnhNpceTRM9cS1ZhiKxUvVTgml05iBtnXV4L112 bbqRrN4McyKolMyM0o3T1hal1l6XbDLn6fO/SaXn29Akiw4qTTYq+jbh7bOey4CiHw84KDGCR/h +n0jfOqjBtgwDIGxDMbYt5p91GzF2CPceFVGVmHWINWcNLwHdSmNMFgqzykC2rypZmnE/dePMxp 92IQGeZJbydeNqQA76VXsrWvcOlNNYajjYiVw/axMoASZk64gyIDpGOL9PcV4/n+0SQ2RMWMmHU UjwT0Wqj0hjMbCA/zEi5xsoPTXF/c5J+KdZZlxlA== X-Received: by 2002:a17:902:c950:b0:2ae:5776:45f8 with SMTP id d9443c01a7336-2ae82367a0bmr34730745ad.3.1772817595846; Fri, 06 Mar 2026 09:19:55 -0800 (PST) Received: from p14s ([2604:3d09:148c:c800:4b1b:60d0:c217:8ee9]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae83f7837bsm25214605ad.48.2026.03.06.09.19.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Mar 2026 09:19:55 -0800 (PST) Date: Fri, 6 Mar 2026 10:19:53 -0700 From: Mathieu Poirier To: Andrew Davis Cc: Bjorn Andersson , linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] remoteproc: keystone: Request IRQs in probe() Message-ID: References: <20260302201734.320747-1-afd@ti.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260302201734.320747-1-afd@ti.com> Good day, On Mon, Mar 02, 2026 at 02:17:34PM -0600, Andrew Davis wrote: > IRQs can be registered in probe and only need to be enabled/disabled > during remoteproc start/stop. This lets us catch IRQ issues early > and simplify remoteproc start/stop. > > Signed-off-by: Andrew Davis > --- > drivers/remoteproc/keystone_remoteproc.c | 41 +++++++++--------------- > 1 file changed, 15 insertions(+), 26 deletions(-) > > diff --git a/drivers/remoteproc/keystone_remoteproc.c b/drivers/remoteproc/keystone_remoteproc.c > index 4d6550b485675..e7fde55097866 100644 > --- a/drivers/remoteproc/keystone_remoteproc.c > +++ b/drivers/remoteproc/keystone_remoteproc.c > @@ -173,35 +173,16 @@ static int keystone_rproc_start(struct rproc *rproc) > > INIT_WORK(&ksproc->workqueue, handle_event); > > - ret = request_irq(ksproc->irq_ring, keystone_rproc_vring_interrupt, 0, > - dev_name(ksproc->dev), ksproc); > - if (ret) { > - dev_err(ksproc->dev, "failed to enable vring interrupt, ret = %d\n", > - ret); > - goto out; > - } > + enable_irq(ksproc->irq_ring); > + enable_irq(ksproc->irq_fault); > > - ret = request_irq(ksproc->irq_fault, keystone_rproc_exception_interrupt, > - 0, dev_name(ksproc->dev), ksproc); > + ret = keystone_rproc_dsp_boot(ksproc, rproc->bootaddr); > if (ret) { > - dev_err(ksproc->dev, "failed to enable exception interrupt, ret = %d\n", > - ret); > - goto free_vring_irq; > + flush_work(&ksproc->workqueue); > + return ret; > } > > - ret = keystone_rproc_dsp_boot(ksproc, rproc->bootaddr); > - if (ret) > - goto free_exc_irq; > - > return 0; > - > -free_exc_irq: > - free_irq(ksproc->irq_fault, ksproc); > -free_vring_irq: > - free_irq(ksproc->irq_ring, ksproc); > - flush_work(&ksproc->workqueue); > -out: > - return ret; > } > > /* > @@ -215,8 +196,8 @@ static int keystone_rproc_stop(struct rproc *rproc) > struct keystone_rproc *ksproc = rproc->priv; > > keystone_rproc_dsp_reset(ksproc); > - free_irq(ksproc->irq_fault, ksproc); > - free_irq(ksproc->irq_ring, ksproc); > + disable_irq(ksproc->irq_fault); > + disable_irq(ksproc->irq_ring); > flush_work(&ksproc->workqueue); > > return 0; > @@ -427,10 +408,18 @@ static int keystone_rproc_probe(struct platform_device *pdev) > ksproc->irq_ring = platform_get_irq_byname(pdev, "vring"); > if (ksproc->irq_ring < 0) > return ksproc->irq_ring; > + ret = devm_request_irq(dev, ksproc->irq_ring, keystone_rproc_vring_interrupt, > + IRQF_NO_AUTOEN, dev_name(dev), ksproc); > + if (ret) > + return dev_err_probe(dev, ret, "failed to request vring interrupt\n"); > > ksproc->irq_fault = platform_get_irq_byname(pdev, "exception"); > if (ksproc->irq_fault < 0) > return ksproc->irq_fault; > + ret = devm_request_irq(dev, ksproc->irq_fault, keystone_rproc_exception_interrupt, > + IRQF_NO_AUTOEN, dev_name(dev), ksproc); request_irq() sets irqflags IRQF_COND_ONESHOT, something that is not done here. Are you sure this is what you want? Thanks, Mathieu > + if (ret) > + return dev_err_probe(dev, ret, "failed to enable exception interrupt\n"); > > ksproc->kick_gpio = devm_gpiod_get(dev, "kick", GPIOD_ASIS); > ret = PTR_ERR_OR_ZERO(ksproc->kick_gpio); > -- > 2.39.2 >