From nobody Sat Oct 4 06:33:20 2025 Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) (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 8249432254C for ; Tue, 19 Aug 2025 11:08:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755601706; cv=none; b=QQkXH19XIP759qHHgPxtfWwZgwZisyAs9Gh1Wm8O3KRGqHh+gBLZkWYEHGve6IF+mO0Q9G8bSW6s0ZQEcMYuQrcyMvVtrNvoITzHoO/U4DCCYpMj/PptlU2Oo7jLpEsal3H6WvwENa5EA8QJEScVXOL0oIhze1aiNDdzmzrXzPE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755601706; c=relaxed/simple; bh=FDAp9yWzU6h2a01wyYHSgRU7k3MWfcA551Cze90JEG0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=l0HFyJiR+UzUN0WTB/YPg0D0bHvyNitov/PHD9Ah/91Nh57GJAVlme8NhHiaWcSPDmCQOZJkRmycjtMC/1Q6slb/dSRXen2TDOzjWloDaUitrK0ZtBHSL9RIEF/Z6nGZbxT6lDZRLdvJP5UlrPU9uf+JkSyBxXgKhyjE4SBlbuk= 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=xgNIohIh; arc=none smtp.client-ip=209.85.218.54 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="xgNIohIh" Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-afcb7a8dd3dso734848166b.3 for ; Tue, 19 Aug 2025 04:08:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755601702; x=1756206502; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=MqqWuSSSaSs4/5B548uIsqcez7udu8s/zMuVb9X/jRU=; b=xgNIohIh+9ndLl+Wl3N64y7YH3Y3/TbI6SrWuwMwHho3k1uclPbHPkdkgYXlY07cx4 aVj81yWjAvTcHifWJhiCuwG+pOIrvKqJlGafSTHGNQ+QMUcDkplpkA4aWViStPOphzxc tbgmkM4Lj76BXLd1qfmcFLD36Wa+dB7vc7/mBc+Kep4vnnl+u9pCEPn+c46aggRcKYbp vAil5mOJ+bURC4uL6ke2DasKa8YTwLpTa6shm+8g6HxvihtpESUNlHy8ZZ3rl84sfL/Y dMcIg+29Z4Gu0oV2/PjqEx67ZSaG4WA/jTHrpO/0j4RcyqIxYE8AqsRxrfB8BsTcECFA 6ijg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755601702; x=1756206502; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MqqWuSSSaSs4/5B548uIsqcez7udu8s/zMuVb9X/jRU=; b=MZzbWu7lnl8L8CywZQC/hnvXPilkhGcuNlyBWILaXLofYssC/gd4256J/6mvzLykEl kU4kw5wp5u4NYbgIaLN46pzyAAFAkz9P1pMa/VEmV6p3ZUjFfY5D7DlCzFy77oBXL0tv hitdQtTcBvEYU3qlPdnwiysxBkiZGo3YKRgvf2a49mBGW9+Oiit1J8njlGGiCv/M/xsz gtmXMv4mCEF98e2LDP9bxwH0kqwFDyRJbt3qCHv5ogV02M4dreSeD+U7Ugj2/ZDSBOt3 yhEK1t0v/x1QF1oth6NSFHovpEG+UKFa21zAtjnxXfxfbk1CbAdpovrRN3mWQXvdTZdu 5lfg== X-Forwarded-Encrypted: i=1; AJvYcCWHco1emXEqZuemyziOlsMpwl60S7KEq/tNzESrCk6SXdgt5Cl0hPGBQFeIV89rdTf0rbqNsfLerNcvjy0=@vger.kernel.org X-Gm-Message-State: AOJu0YxX8p/dn6ncpu6kjgWgf6MoQ7fh5L150HzCDTttns+Y7FNsa1YV +w0e4JpAoW1VjDdhCGm5GOvPgo94PDYjBjY3LbAwkFB0DfnKi0zG8UHoek6rnrUw2O4ivE2nfOG QVL8L X-Gm-Gg: ASbGncvF8erVYXulu1bdXWa0kRDjjUJrDjg2KFJWeUrQjJjKg+Fds3vShgx0RGoMxmh O3uu3HE/AoBglS1m91oWNifv+QFs+aq/eU1wIlg1FHiGsOkXL14WKtoZt6iGm4PBSzB6E2npIhb CRG6MAO/yzCeiY5lPZRmtbpnvjTXLJLWhcZXC/igteOWp80bt5QD0fEnJJVwLeJhUfrUYQ+QQMb 80FejqHxtLDtpQSZTZEIFl3PozsEgj7Y2KkLFoMny/W8ygkmEZYvbU9yDG+V+2u4GDEkDkHEWbc JrjOzG0I38zBDVv+UMoHXDjD7n0ALIL0UlKKsQZ/ZmXg+EbxAyvYA8dLIbJIyqxqQiRQKrJDJvE PgC5Gfiqa4z1/SSDMBYeHamxfatZlhgyxi1+eZpSu8XIHv31L X-Google-Smtp-Source: AGHT+IEu47SOpD2q0+bOP6DYIa6GuWe1e9d5W3TXltO+50fVmPfaG/a5eVbK0rgp24zmwdwtvRU6Hg== X-Received: by 2002:a17:907:3e10:b0:afd:d9e4:51e9 with SMTP id a640c23a62f3a-afddd24e9d1mr167513266b.65.1755601701738; Tue, 19 Aug 2025 04:08:21 -0700 (PDT) Received: from [127.0.0.2] ([2a02:2454:ff21:ef41:db5f:8096:4609:9b24]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afcdd01096csm974845466b.88.2025.08.19.04.08.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Aug 2025 04:08:21 -0700 (PDT) From: Stephan Gerhold Date: Tue, 19 Aug 2025 13:08:02 +0200 Subject: [PATCH 1/3] remoteproc: qcom_q6v5: Avoid disabling handover IRQ twice 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250819-rproc-qcom-q6v5-fixes-v1-1-de92198f23c7@linaro.org> References: <20250819-rproc-qcom-q6v5-fixes-v1-0-de92198f23c7@linaro.org> In-Reply-To: <20250819-rproc-qcom-q6v5-fixes-v1-0-de92198f23c7@linaro.org> To: Bjorn Andersson , Mathieu Poirier Cc: Sibi Sankar , Abel Vesa , linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.14.2 enable_irq() and disable_irq() are reference counted, so we must make sure that each enable_irq() is always paired with a single disable_irq(). If we call disable_irq() twice followed by just a single enable_irq(), the IRQ will remain disabled forever. For the error handling path in qcom_q6v5_wait_for_start(), disable_irq() will end up being called twice, because disable_irq() also happens in qcom_q6v5_unprepare() when rolling back the call to qcom_q6v5_prepare(). Fix this by dropping disable_irq() in qcom_q6v5_wait_for_start(). Since qcom_q6v5_prepare() is the function that calls enable_irq(), it makes more sense to have the rollback handled always by qcom_q6v5_unprepare(). Fixes: 3b415c8fb263 ("remoteproc: q6v5: Extract common resource handling") Signed-off-by: Stephan Gerhold Reviewed-by: Dmitry Baryshkov --- drivers/remoteproc/qcom_q6v5.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/remoteproc/qcom_q6v5.c b/drivers/remoteproc/qcom_q6v5.c index 4ee5e67a9f03f5f766f04396b9a3e45f77293764..769c6d6d6a731672eca9f960b05= c68f6d4d77af2 100644 --- a/drivers/remoteproc/qcom_q6v5.c +++ b/drivers/remoteproc/qcom_q6v5.c @@ -156,9 +156,6 @@ int qcom_q6v5_wait_for_start(struct qcom_q6v5 *q6v5, in= t timeout) int ret; =20 ret =3D wait_for_completion_timeout(&q6v5->start_done, timeout); - if (!ret) - disable_irq(q6v5->handover_irq); - return !ret ? -ETIMEDOUT : 0; } EXPORT_SYMBOL_GPL(qcom_q6v5_wait_for_start); --=20 2.50.1 From nobody Sat Oct 4 06:33:20 2025 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) (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 74431322DC6 for ; Tue, 19 Aug 2025 11:08:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755601706; cv=none; b=Qe2cirSdHyjwROI39VJBiLDry99vvSGzcRPW7c85SFcg5+GeVCmcyTWFtTuxZx4RswYJSxxSOLDWmkoY9eEwoxzD6PhiDer2Ksj0R1fTT6ey5eVsH9N8lnrw1HMU0y/I/YeBipXlBPuBKgVnjmOc9vZrwWkbC3P4cGLnZV05NIQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755601706; c=relaxed/simple; bh=0w0CuPn0yfyNdJFO/DLj+EuySobfFEPa4DzmsNTze8g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FZs4HcllQfC+SV350d2EkO6Km1E+AnpsmKEc1xdW4u3I5UYRoLjQCdtQeWLIBZKJcnMgL75tyRMjSNkbMdZBtUIL1vkzh3Dw8j54Agm0WF3Lyq4fc6Q/Zu2yepEsFm83z0ricdiJbvhjSov71vj2w4QRvBm8EcW52Q1uQ9xPV9s= 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=TwAD6NEX; arc=none smtp.client-ip=209.85.218.42 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="TwAD6NEX" Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-afcb7af30a5so851223166b.3 for ; Tue, 19 Aug 2025 04:08:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755601703; x=1756206503; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=+DSpWN8OMgg5aukYOIuUOKMDZaZ5r7LsWnQ8r2e+ggQ=; b=TwAD6NEXB/zNnSmCMK9bQJ06Z6iyVa+JrLamVq3bpnTAhSOzG9W1G1/h5jSsjgVCyf 564+tRYd3eXK949BEmDnMh4Xo2LZZIhHDz1XYL23isP3L78+K6WmfheDW+sPBybmuxje 7HGyWGdnbU3unitKFWt3tZesr1kDHOUXM95leuBS9nt0k3Ti0mDUCpY7k823QTfPUz8T gzYCfcqsiq4r0rKh83ZQqgbc37BHVI/fv9cq8LYjp/03fJq1mYFbahtaJW8Sq7Vgw4+Y rcfNiHGZ5Wpa8DjX0gLpaV7YOgfapt4nbHLx61rQzwmgI2yd9kOE8AihNn0Qv34yApnA b96Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755601703; x=1756206503; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+DSpWN8OMgg5aukYOIuUOKMDZaZ5r7LsWnQ8r2e+ggQ=; b=TmeecD6iSw+LoGPO4RkS3DXECUIihf8IDnyybbdRKwRBesXcPTjAwcCTZlVNeIiDeA olZEQQNMWzmkfpc/tdpVj0QYT/Gwn1V/pcoe8e3q4LpqUgU/N2Rw00EDoZVaSVvnL6+Q NVoTwBtki3eewUbW+rY7VPizK4Xx2cr3zhFs/V8IWju97AnNK77Dc5dUyc+qgViB2n+4 uKM64jRQdKh5UOFrx01OARy/yvHywm4WeGgiVDFNlO0hSS68qQmzVZs6uFHjD6Gm0ury iD2ejR7QJHhjIc86m4LiWuOUK1H9gKnTLjSa0R7cYczNEnQVz6RRVyp/rBm2rq/xglk8 i8ug== X-Forwarded-Encrypted: i=1; AJvYcCXCGNuPm8/gyyUmfCALO5KQRx+JlO7u7YXy02Ap6In24rGPRGjdx7oZenhp7dI8gIcUt+PytzBBYD40TjI=@vger.kernel.org X-Gm-Message-State: AOJu0Yy+LbsYzWc9P6eqyrOJhi57kpf60hz6NpXRLgl6MrnvwE6IbUqz ZkzV40lV7mq4k1gr7tTNes2mSF1x0iTbJvaP0N0ypKIr29KftS3o1SlHg/CXMSiJ7rM= X-Gm-Gg: ASbGncvmz2PaZ8iDoQVInNpQzmcaNMJbH5NwZ2VjEbd7xKsmLt7TS+qNRgIwO+cKWm0 9c4qP1GEmTssx+5yYOn3KNm5La174Zrl+JJ26hqEPOav+tnOS5+T2Vn112RNggDkBec9t1UkCCS isFjcrFqW7qTGzcn7fVtXGEQY84rJgt3V5T3lh4aXuBDcvf4Gqtu4we/5DS2bBXdxCKLPM2to15 4W7RVZgzdiLlcSbT8rJcsH62vSVxSXy4ACD8OrgKpli5jkbVKgXTGxaL4L1Bt1uXzGwmUcM61Ua X6HftNibV9BJA5qwFRS0yzda+yF7jDYETJpfHknKNFO8w5GjYvK9aXSRtU3sOpiyq5EjskE4brG saBOGA97+LgtAkcno6QvRKp2IzuC/3V/S91lUZg== X-Google-Smtp-Source: AGHT+IECl0cPw3fTPlc5egfFSmrwnH5Fyz6ruNQGTUWPpOhUq/wfqgJHAYEv1N8zjeHkzfhsBG16ew== X-Received: by 2002:a17:906:6a28:b0:ade:4339:9367 with SMTP id a640c23a62f3a-afddccd8545mr198163666b.26.1755601702631; Tue, 19 Aug 2025 04:08:22 -0700 (PDT) Received: from [127.0.0.2] ([2a02:2454:ff21:ef41:db5f:8096:4609:9b24]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afcdd01096csm974845466b.88.2025.08.19.04.08.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Aug 2025 04:08:22 -0700 (PDT) From: Stephan Gerhold Date: Tue, 19 Aug 2025 13:08:03 +0200 Subject: [PATCH 2/3] remoteproc: qcom_q6v5: Avoid handling handover twice 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250819-rproc-qcom-q6v5-fixes-v1-2-de92198f23c7@linaro.org> References: <20250819-rproc-qcom-q6v5-fixes-v1-0-de92198f23c7@linaro.org> In-Reply-To: <20250819-rproc-qcom-q6v5-fixes-v1-0-de92198f23c7@linaro.org> To: Bjorn Andersson , Mathieu Poirier Cc: Sibi Sankar , Abel Vesa , linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.14.2 A remoteproc could theoretically signal handover twice. This is unexpected and would break the reference counting for the handover resources (power domains, clocks, regulators, etc), so add a check to prevent that from happening. Signed-off-by: Stephan Gerhold Reviewed-by: Dmitry Baryshkov --- drivers/remoteproc/qcom_q6v5.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/remoteproc/qcom_q6v5.c b/drivers/remoteproc/qcom_q6v5.c index 769c6d6d6a731672eca9f960b05c68f6d4d77af2..58d5b85e58cdadabdd3e23d39c0= 6a39196c3a194 100644 --- a/drivers/remoteproc/qcom_q6v5.c +++ b/drivers/remoteproc/qcom_q6v5.c @@ -164,6 +164,11 @@ static irqreturn_t q6v5_handover_interrupt(int irq, vo= id *data) { struct qcom_q6v5 *q6v5 =3D data; =20 + if (q6v5->handover_issued) { + dev_err(q6v5->dev, "Handover signaled, but it already happened\n"); + return IRQ_HANDLED; + } + if (q6v5->handover) q6v5->handover(q6v5); =20 --=20 2.50.1 From nobody Sat Oct 4 06:33:20 2025 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) (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 6624F326D4E for ; Tue, 19 Aug 2025 11:08:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755601707; cv=none; b=XygflqTg6L4Ymv4n9tmdEAJfO5bXt9telo5urP6nSMQVTHNIy5mMb/UT3d+vBeu5ueAXjBzmoEBrkvvgWbqYVC3XkzmADzJm+5ydtDO5nnkcQWqLy83SRppCahB4PJKYir1ez7/ZfzsZ9lQjdMYNADZwzuX6FHgF6DeZ+tcxDAo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755601707; c=relaxed/simple; bh=5Cm91oSUyXHyy6yreXV4rGUm1byh8yAeFEZWmdl7qEI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=h8Nko3TqUtrlHi/YRXupNADGFuw4YsB1f1cwZxJ5/XOW/nFhyTL8gUkpgCVfJFILN9Vx357QWRYsR9qcbH83/U2A23FU4IvQ3xK2zRg/Fz2nC+XqYJKx7tKuFAqVaZTaCdJ/17BWkagJFFwTmBxUPEd5BKIE5fbn2QzchMgHV0U= 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=ImeXTpZf; arc=none smtp.client-ip=209.85.218.49 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="ImeXTpZf" Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-afcb78c66dcso725587266b.1 for ; Tue, 19 Aug 2025 04:08:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755601704; x=1756206504; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=DpDAKcv7fLih20nGtOlLdXsRYm0EQxxtEuxIHxz2kTE=; b=ImeXTpZfjkqV5CVBFpw92I8cX7kNOI6rR4SgQgh9FU6T6HCl0HVkG0WABHME1bIr26 4WD7ijmXA/DQmwcHkp3I0Yea4Slfle96l6nbhhPOaGYdFGgyCdufiO+X+libA7uBBnqP Wxer5K0+RG0HjlNbJxV17NO/7+f+MrTLwCiIHFJtp1EgV06v/XRP9QCVDsGqKORDyWEH FP+2L8EFsi3+Zd8j913MDWktbR3mslk7pgmhaX/seHe1hwbEeKDXSheEKI8V4ooVar1j 69D2DphTA5o2KKeVoLa7TtWen6FFh2VqJkQsAmonjbFBnO28V4fxIUMLq3oXE/CrbtZJ vENg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755601704; x=1756206504; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DpDAKcv7fLih20nGtOlLdXsRYm0EQxxtEuxIHxz2kTE=; b=juX3za35fGBh4s/T8iRmtSOi3bXx7otTL82m6937+i1qWwnp2QgcS/LZCVQuW/ajNR KFIo64T40lUPEunfA78fzuoZgHXQ22Mj2lsOmaf1ek+4Ieg8/4cxaLVzVDy6HEoo5qsn mik9A663ymNlNvmN7v3VrY7nJvrEpvcG1fJqqdkQxq9La517bNocbwjAcrQx+h45PqQl 6aAIG/wxwz86uzgojMpgtHxNH+tvEf2lWlOH5GaVAK283AunsFCu9yVXM35TeR5Lux0V 2Js1vxJGFKoKgLDAthhp4IByC+mYe3d7FZTY51EN1SqlenRBAsszEDaUTMRhipdLyJXH ZWYQ== X-Forwarded-Encrypted: i=1; AJvYcCXrFZesZ7DKiyA2jycUoTUbrPxtisgbuAERdQ2DGHlq2/raGcPQZUwLFAJFQIN+AAc+mKvt1K3ZuTCU9Xw=@vger.kernel.org X-Gm-Message-State: AOJu0Yw85WT7a8SD/WaXEKjCS86QuZ+NV0MGmgDjSoF896bltJm/xcF+ Mue3VIfKprFgL/H96tZf6eBwfx6+TTHwcD6rxvZvh/Jose7dq1naDuNPcxb3Tz/QuWE= X-Gm-Gg: ASbGnct1LW7Qm0blA+3iMwOvMYShdlgmIhkIrwfkUl/UC1d9KMaZoRP9oanuXQzJpwj xrpzLuQCdw44y9P0q4T6eD8uMqZpql8NVVmhBwQHCciOZ9qprKIv942Lwxs5w6RTRCOfmBJoEcj OgFi0vZzIvVgPofSBG6aoj4oiWhOiVBD7iUxwaSI2LTBAlfJ7IzAckjJcqCoM8hFDfiQVyM1O/j u2gFiFhnXyNT53sGzRgDml9KvdPMjNsTgF9dGw0wPar0+2AsLuyvF4lX6u7A/iEjPqvvJNxcA+Z ZGtB+YQ5/Axu9kRLlXV2HqSL93L/oIUPSQ20WuoyY2zsy24pPYf9gz0lJ9/jWHm8nxOn2dYG81l egiqfJESC9LDWpxOt5P4dIkPkt0BfjTuO2BgElfP78uZIgyFM X-Google-Smtp-Source: AGHT+IH9vzrOOzeP1dBM4pFoF33YFeXNtK3jHXKDBLebjoeZjTOHNNMM/dRMFIrqI+YVvusdLzCH2A== X-Received: by 2002:a17:907:3da3:b0:ae9:c494:1ade with SMTP id a640c23a62f3a-afddd1c9e57mr200862566b.53.1755601703592; Tue, 19 Aug 2025 04:08:23 -0700 (PDT) Received: from [127.0.0.2] ([2a02:2454:ff21:ef41:db5f:8096:4609:9b24]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-afcdd01096csm974845466b.88.2025.08.19.04.08.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Aug 2025 04:08:23 -0700 (PDT) From: Stephan Gerhold Date: Tue, 19 Aug 2025 13:08:04 +0200 Subject: [PATCH 3/3] remoteproc: qcom_q6v5_pas: Shutdown lite ADSP DTB on X1E 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250819-rproc-qcom-q6v5-fixes-v1-3-de92198f23c7@linaro.org> References: <20250819-rproc-qcom-q6v5-fixes-v1-0-de92198f23c7@linaro.org> In-Reply-To: <20250819-rproc-qcom-q6v5-fixes-v1-0-de92198f23c7@linaro.org> To: Bjorn Andersson , Mathieu Poirier Cc: Sibi Sankar , Abel Vesa , linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.14.2 The ADSP firmware on X1E has separate firmware binaries for the main firmware and the DTB. The same applies for the "lite" firmware loaded by the boot firmware. When preparing to load the new ADSP firmware we shutdown the lite_pas_id for the main firmware, but we don't shutdown the corresponding lite pas_id for the DTB. The fact that we're leaving it "running" forever becomes obvious if you try to reuse (or just access) the memory region used by the "lite" firmware: The &adsp_boot_mem is accessible, but accessing the &adsp_boot_dtb_mem results in a crash. We don't support reusing the memory regions currently, but nevertheless we should not keep part of the lite firmware running. Fix this by adding the lite_dtb_pas_id and shutting it down as well. We don't have a way to detect if the lite firmware is actually running yet, so ignore the return status of qcom_scm_pas_shutdown() for now. This was already the case before, the assignment to "ret" was not used anywhere. Fixes: 62210f7509e1 ("remoteproc: qcom_q6v5_pas: Unload lite firmware on AD= SP") Signed-off-by: Stephan Gerhold Reviewed-by: Dmitry Baryshkov --- drivers/remoteproc/qcom_q6v5_pas.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index 02e29171cbbee2d305827365ef7d2241b6eb786b..6faedae8d32ef6c3c2071975f2f= 1e37a9ffd8abe 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -42,6 +42,7 @@ struct qcom_pas_data { int pas_id; int dtb_pas_id; int lite_pas_id; + int lite_dtb_pas_id; unsigned int minidump_id; bool auto_boot; bool decrypt_shutdown; @@ -80,6 +81,7 @@ struct qcom_pas { int pas_id; int dtb_pas_id; int lite_pas_id; + int lite_dtb_pas_id; unsigned int minidump_id; int crash_reason_smem; unsigned int smem_host_id; @@ -225,7 +227,9 @@ static int qcom_pas_load(struct rproc *rproc, const str= uct firmware *fw) pas->firmware =3D fw; =20 if (pas->lite_pas_id) - ret =3D qcom_scm_pas_shutdown(pas->lite_pas_id); + qcom_scm_pas_shutdown(pas->lite_pas_id); + if (pas->lite_dtb_pas_id) + qcom_scm_pas_shutdown(pas->lite_dtb_pas_id); =20 if (pas->dtb_pas_id) { ret =3D request_firmware(&pas->dtb_firmware, pas->dtb_firmware_name, pas= ->dev); @@ -722,6 +726,7 @@ static int qcom_pas_probe(struct platform_device *pdev) pas->minidump_id =3D desc->minidump_id; pas->pas_id =3D desc->pas_id; pas->lite_pas_id =3D desc->lite_pas_id; + pas->lite_dtb_pas_id =3D desc->lite_dtb_pas_id; pas->info_name =3D desc->sysmon_name; pas->smem_host_id =3D desc->smem_host_id; pas->decrypt_shutdown =3D desc->decrypt_shutdown; @@ -1085,6 +1090,7 @@ static const struct qcom_pas_data x1e80100_adsp_resou= rce =3D { .pas_id =3D 1, .dtb_pas_id =3D 0x24, .lite_pas_id =3D 0x1f, + .lite_dtb_pas_id =3D 0x29, .minidump_id =3D 5, .auto_boot =3D true, .proxy_pd_names =3D (char*[]){ --=20 2.50.1