From nobody Sun Jun 14 20:10:17 2026 Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) (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 D58751EA84 for ; Sun, 26 Apr 2026 09:17:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777195044; cv=none; b=YzfFHzap4S9uJet7FE/hKya5wWiKLE93gUqeh7HVQ0dB+KMQBRAwleEvSj41xPFrwSP1/Wc8cjVwvloexXv9KxZbX4ui4B2IUJjMftcsIzk3RKqtK14fjXuhhG271Xw04pcADOuJ13qFYn5a13u3CpkoUtj+TOwJDrtAbpu9qkw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777195044; c=relaxed/simple; bh=wHcoKlL78nBhRyDMLTbt2iDqkMc27QuBm8do+Cx6NEk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Tiy44bmnlnPt9VK277ZHvm5pyBui0jEj21zF+FjjqLjdEYi+SphKqZe8ivPmFYZnN3JBRQ/K0yUk4iUOsqpRYuGcD0m/J3Bpe6YQNTMSyVjnrO2WNnoQVkgbpYpqYSWUaTtCI3IMvVmg+JqGgioDRAB5AxaSkibGl34UzDek/Ks= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=dFn1qxvS; arc=none smtp.client-ip=209.85.210.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="dFn1qxvS" Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-82f68b3aaf7so3448990b3a.0 for ; Sun, 26 Apr 2026 02:17:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777195042; x=1777799842; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YvODaVSbHp02WCBNt4rFmF38W1sWqtrn/KhBswPq1eI=; b=dFn1qxvSOjNJyUMM6SG3FsgeE5ze+JwAAeQrBmdVWl/iD19/NNc8+AIacH2pT8XlfG jZra0Gx+SdXv1hZ2ZePUBTkMbYO0tuqoAWwky340Nq5xXo32VsnoarysD4/BcKCjWl0m DBHpTqecNDpDd5/qL7BGMl+2L0g3JosK5nrOf2jyYaVa7s//2IRIcrxmgfD0+JOuJ9nO GAX5lr5nDxoScP/7/9FexJwqXAR8Mcp3iJORAkjPdjXO6Oirdq5qipOc9LAbflyI6F8J Y6LOR7u3iqWdzRSI/gQ4t2rQuVh3L+R31oF+Ppfd/EA2yATrE8OxVUyhqoPKSXDG0xCm 2vEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777195042; x=1777799842; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=YvODaVSbHp02WCBNt4rFmF38W1sWqtrn/KhBswPq1eI=; b=dswIUxJN/lAV92SxUiA7/87Rr0dtWOpmOth6YUmUWfRgk5hPQST7axsQrUR2PDnGfg UqSq95Zp/gZqnyQV/gfQ9qIBg4Q3KPMIQTc//GlyRtZr8iDV82TOOgQJGFfKmxY4oSWT YtJ84HlJlLAaieOUbNyCi9LnCzhugdhCRy7EBisBHFOh4cq203aCFZXlMH5658MUIMUW QExHGWV0IAj5+HfBgecxPevL74kulCO94BCY7DaY2L1tsK2qbyBgoINR7vxfSJZ5bf+l tJbmTAGHxKYLZB8v/EAkjDFFrQRiBO1wB8cpT/zy0cEQ66rLxB6AdSOb/NoDlanIw1Nc qWpQ== X-Forwarded-Encrypted: i=1; AFNElJ9EzomkMB0EEOZFe6HhacoG4V/nvR+v9G7xHavmWPfiobC87o2FRpWge/XHK1W5IiNy7FD7uoGk7y8MaAI=@vger.kernel.org X-Gm-Message-State: AOJu0YzM3dFAJihb/C3z6LOeWiOOFZqtI5Hbaazxric5RuHvAGLlHmNG bxOBwraPWke4jRq/kz0uNJU3bv7/AAJAYkxLtalMeasQCUsoreRzQSaQ X-Gm-Gg: AeBDievS90MnYsc214v+B7ZYZHNDvdvK2vj2Xysggx41E1yN3zAK4O3AviYSgIRIsMv mBN9GlE3Zj58OQAarBujYYy/DGaljwtrG7jD/nPGNvjeeubJAUqJ6ChTUcPCdX3sKGGv5IgnAeR yxN/YQJozsI4pB7dqF9fbBiIX1Ku5bb1h370JfmYRZpOTtchOJY9rvPpX5InSTNW3epi9Xd1WPT C7Af685TD+b11yeNVRpuIb0xeXjDWahbHaN42E5J23ydiPJOlbiQG8vMfyyPQmMYMt75SY7Igws 3vAZYpfGVUjmN8AbBGdW3vRgEPjYX8l6YuyQSYwT1FWlUxEEaX1OvLB/Ro/6mENFtmqEcGBx/GR 73KN84hNPIU90uj8loRzV7LgNVGoUeGLNjFk/R2gO+ISxs/N+eZqWRPXIwdtbsFf/xYFaG9CvIY kdZa2SPew32U4lwLCX8NCfzx3c00uknTnMeufAs3B5oN40by7+gcKlj0/37qc= X-Received: by 2002:a05:6a00:1acd:b0:82f:cfd2:6ca0 with SMTP id d2e1a72fcca58-82fcfd27015mr22832601b3a.40.1777195042277; Sun, 26 Apr 2026 02:17:22 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f8e982fd3sm36145226b3a.10.2026.04.26.02.17.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 02:17:21 -0700 (PDT) From: Sanjay Chitroda X-Google-Original-From: Sanjay Chitroda To: jic23@kernel.org Cc: dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, sanjayembeddedse@gmail.com, mingo@kernel.org, christophe.jaillet@wanadoo.fr, nabijaczleweli@nabijaczleweli.xyz, kees@kernel.org, kyungmin.park@samsung.com, k.wrona@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 1/9] iio: ssp_sensors: cleanup codestyle warning Date: Sun, 26 Apr 2026 14:47:02 +0530 Message-Id: <20260426091710.3722035-2-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260426091710.3722035-1-sanjayembedded@gmail.com> References: <20260426091710.3722035-1-sanjayembedded@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sanjay Chitroda Reported by checkpatch: FILE: drivers/iio/common/ssp_sensors/ssp_dev.c WARNING: Prefer __packed over __attribute__((__packed__)) +} __attribute__((__packed__)); Signed-off-by: Sanjay Chitroda --- drivers/iio/common/ssp_sensors/ssp_dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/= ssp_sensors/ssp_dev.c index da09c9f3ceb6..7d07fae295fd 100644 --- a/drivers/iio/common/ssp_sensors/ssp_dev.c +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c @@ -28,7 +28,7 @@ struct ssp_instruction { __le32 a; __le32 b; u8 c; -} __attribute__((__packed__)); +} __packed__; =20 static const u8 ssp_magnitude_table[] =3D {110, 85, 171, 71, 203, 195, 0, = 67, 208, 56, 175, 244, 206, 213, 0, 92, 250, 0, 55, 48, 189, 252, 171, --=20 2.34.1 From nobody Sun Jun 14 20:10:17 2026 Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) (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 927A323EA83 for ; Sun, 26 Apr 2026 09:17:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777195048; cv=none; b=NvFaCGjcgEsw3QYaT5ZRgGyx6mocUypNo0rEu2drlBJfBVNqDgLRUl+oudYsOygoJ9IgbQzIwDIGYgfGL4K6mt42SaBJbwnvhXknOLrcPjaWJ15L95qTapozOTMkyScSGo/cELkwUpyN/IiORq60HVHRZDFgorHrMwLy3Dv6F/0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777195048; c=relaxed/simple; bh=6ODq9VgEd6Nwwf2jjt/2iBXCKt/KjEZ8geOEm7TFKko=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=s8CREOjtb9uClz/uE9HF1pFIZbYcIswYtKfb/TfJJUpKhxYDotCHIo0SDcsj8Re8zI6MWadwHWd6jhfkDFGyWprjjIQYxwsnYkwkbvKm1LojNKF4YJV4Dy/gAAlRHaq1L/j3mS+BO8knExeiulxepX393DlHPljVOOectlPo8s8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=VTMxlUgP; arc=none smtp.client-ip=209.85.215.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="VTMxlUgP" Received: by mail-pg1-f179.google.com with SMTP id 41be03b00d2f7-c79506f3c40so3286588a12.1 for ; Sun, 26 Apr 2026 02:17:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777195047; x=1777799847; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=m8qReSYigGO+ojCpdoiAgNHEHSCcI92dGlQiTWsfj1Q=; b=VTMxlUgPAUSZedJDgs/tjOmFNMEAIYbse6yP9HUZIOai6BUIlxMKRG/TUsBIfB6PuC Ad+/J90Lgh3PqZtlUQ1wsfKyM8d6McKxAAy7BOp9Xj1SyVFb6dvceHtgW34b5tlATjk7 aKYVuxfGN9W0mcHKtjEvwMULmqjX7lA6ZDjb8z7nB1Kqt+tAOtT8/34cThLliypV3f3X Y9Z8Vav9TmyKvhmtMevhLT0n9yxvkMf1RelG/zSFhW+AVy1gDtS0NUaLTEJEPLrTvIb9 ApHmURVqCpw6j/zYVnCidZOSwDVFmJVlWAfOWpd+03OvNOORg6xa+jcuuC90IuX7zk+t t7DA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777195047; x=1777799847; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=m8qReSYigGO+ojCpdoiAgNHEHSCcI92dGlQiTWsfj1Q=; b=GqfA8drVjhBpFmcbB2Q7y1XodS+EsWoJOCcHLtlM7SU69bOWWqsdVfxEGOGDc5lXs/ GpHIfiT7/Up76MSpK8LNyEmERkh1wVSLTchpbTQE6d/Svt87Fh4ceF4ZquMyqBFi98P8 AwE0cJQWfhyznwt6ukG2Agq8f2XfmisQCrjo+t87PBtA2t7zfZHsBqEjIvQP19eh8C0s ZLvMxtaebl8VcM3i0MuehwYaTeE0HI8iKnegxZgO46JCwrYfyW4bPmZfMy0VkUJBARs9 I4b/uv/9WnMK9fgxun/2KQAAJ6Ui66xrmH3nesOI2ceJfexV+ocRI31HQ8sEZ3Op13qg nTjg== X-Forwarded-Encrypted: i=1; AFNElJ/80P8ibq0t3d9dnJ8idS/mixg5xL8RNN0IyIXqQSvjqITxQRlEqG/vX8bcUeJghNrJWFSHcxtGrWglH2M=@vger.kernel.org X-Gm-Message-State: AOJu0Ywk3vC2FrpK/2SS9vwaUjh746qPXhhys/irEX1ddCLQ5yenmoqm mGvfYoZjzJE+TZWvYllwrcgmEybKcdyk7pYSzEeIImbLSBi4gY0saR3N X-Gm-Gg: AeBDieuEMmHLYSGziNihHhDK5A5UOcGKJehAIW47X5NIzrcLYJgHWeCIwWzt0tcJgex hlJYAzKwV3h1Nu7T7kQ/5y8PMOroaqmtixhsiJL1Yqf3Lx4jl4eRuSJ1hWdqwhSUM8qYjze+mwT pbSkc9Kt8wp6q1bEM2TAJdExb9ia/bzEYWlq8Dm/sE/080/LxQpRNKFl8AIoDy09GeFwFiGp15D zk5Kr7H5l8OSQPDcGemNBpJD9eBa+d3Vaf1rpUn1UgabHtjb/hBWgLeZBqarPfRdWNNOT5Sqt/6 Zkvfu8/Ek/cLhd4ZfI5DheUamkOxOVmhhTubErQI3TMKYNt/YdHSX4/2bCvbjbfpub5tt/9F2BD bdBFWdMz4v9vesPPc0HMzMY0SHWJ5fG97xsInG52go4rx25Z/+aV127A0QwZv22gmIxhhhu4yw+ pmbwRdWprjpnY5ia8UN6kadpDcWVrOgevunuDPsKwrhly/295N5LpxWQ0/MtQ= X-Received: by 2002:a05:6a00:1826:b0:82f:2384:212a with SMTP id d2e1a72fcca58-82f8c961ef5mr41102085b3a.26.1777195046954; Sun, 26 Apr 2026 02:17:26 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f8e982fd3sm36145226b3a.10.2026.04.26.02.17.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 02:17:26 -0700 (PDT) From: Sanjay Chitroda X-Google-Original-From: Sanjay Chitroda To: jic23@kernel.org Cc: dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, sanjayembeddedse@gmail.com, mingo@kernel.org, christophe.jaillet@wanadoo.fr, nabijaczleweli@nabijaczleweli.xyz, kees@kernel.org, kyungmin.park@samsung.com, k.wrona@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 2/9] iio: ssp_sensors: factor out pending list add/remove helper(s) Date: Sun, 26 Apr 2026 14:47:03 +0530 Message-Id: <20260426091710.3722035-3-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260426091710.3722035-1-sanjayembedded@gmail.com> References: <20260426091710.3722035-1-sanjayembedded@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sanjay Chitroda The SSP SPI transfer path manipulates the pending message list in multiple places, each time open-coding the same locking and list operations. Re-factor the pending list add and delete logic into small helper functions and drop use_no_irq variable to avoid duplication and simplify transfer flow to follow. No functional change intended. Signed-off-by: Sanjay Chitroda Suggested-by: Andy Shevchenko Reviewed-by: Andy Shevchenko --- Changes in v7: - Following suggestion from Andy, keep helper API definition in single line and re-place the comment section - v6 change: https://lore.kernel.org/all/20260415050749.3858046-4-sanjayemb= edded@gmail.com/ Changes in v6: - Include tag for the suggestion of helper functions - Drop completely use_no_irq variable with review comment from Andy - v5 change: https://lore.kernel.org/all/20260406080852.2727453-4-sanjayemb= edded@gmail.com/ --- drivers/iio/common/ssp_sensors/ssp_spi.c | 58 ++++++++++++++---------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/drivers/iio/common/ssp_sensors/ssp_spi.c b/drivers/iio/common/= ssp_sensors/ssp_spi.c index 08ed92859be0..870214551f0b 100644 --- a/drivers/iio/common/ssp_sensors/ssp_spi.c +++ b/drivers/iio/common/ssp_sensors/ssp_spi.c @@ -174,15 +174,35 @@ static int ssp_check_lines(struct ssp_data *data, boo= l state) return 0; } =20 +static inline void ssp_pending_add(struct ssp_data *data, struct ssp_msg *= msg) +{ + /* + * Check if this is a short one way message or the whole transfer has + * second part after an interrupt. + */ + if (msg->length =3D=3D 0) + return; + + mutex_lock(&data->pending_lock); + list_add_tail(&msg->list, &data->pending_list); + mutex_unlock(&data->pending_lock); +} + +static inline void ssp_pending_del(struct ssp_data *data, struct ssp_msg *= msg) +{ + /* See ssp_pending_add() for transfer length logic */ + if (msg->length =3D=3D 0) + return; + + mutex_lock(&data->pending_lock); + list_del(&msg->list); + mutex_unlock(&data->pending_lock); +} + static int ssp_do_transfer(struct ssp_data *data, struct ssp_msg *msg, struct completion *done, int timeout) { int status; - /* - * check if this is a short one way message or the whole transfer has - * second part after an interrupt - */ - const bool use_no_irq =3D msg->length =3D=3D 0; =20 if (data->shut_down) return -EPERM; @@ -202,35 +222,23 @@ static int ssp_do_transfer(struct ssp_data *data, str= uct ssp_msg *msg, goto _error_locked; } =20 - if (!use_no_irq) { - mutex_lock(&data->pending_lock); - list_add_tail(&msg->list, &data->pending_list); - mutex_unlock(&data->pending_lock); - } + ssp_pending_add(data, msg); =20 status =3D ssp_check_lines(data, true); if (status < 0) { - if (!use_no_irq) { - mutex_lock(&data->pending_lock); - list_del(&msg->list); - mutex_unlock(&data->pending_lock); - } + ssp_pending_del(data, msg); goto _error_locked; } =20 mutex_unlock(&data->comm_lock); =20 - if (!use_no_irq && done) - if (wait_for_completion_timeout(done, - msecs_to_jiffies(timeout)) =3D=3D - 0) { - mutex_lock(&data->pending_lock); - list_del(&msg->list); - mutex_unlock(&data->pending_lock); + if (msg->length && done && + !wait_for_completion_timeout(done, msecs_to_jiffies(timeout))) { + ssp_pending_del(data, msg); =20 - data->timeout_cnt++; - return -ETIMEDOUT; - } + data->timeout_cnt++; + return -ETIMEDOUT; + } =20 return 0; =20 --=20 2.34.1 From nobody Sun Jun 14 20:10:17 2026 Received: from mail-pg1-f175.google.com (mail-pg1-f175.google.com [209.85.215.175]) (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 42CD11EA84 for ; Sun, 26 Apr 2026 09:17:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777195053; cv=none; b=ZNVrzXzdm2m3X+Czl02I+PGwnYQC8muUmtfcz9QL1243wK3LyrpdiXKI6mye69GoGLPnWtR6gOYGgtmWBWxZC35AdvW2gB1JuoQxQGoKWMRBt5UYvy6EZmXscDGspf8P1Y34s0Fjyp1Gxnfpt0wOm/OVEIh284ys1lBJ9ukzrMI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777195053; c=relaxed/simple; bh=xAFbynpKTVh6Vw7bXMrdyHnb0DdWHbz9KtRRo6HUdUA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=LJ3Il4BJNKfWwZasJZqr0TW5gyzpLSKRQpIWOFqsKRjCXy9YAKTUrOrH2eBIkIpRRe9E+yrtpfb4fkcKY69fm2kfFK1IZvPfNyMMOc1VZQ7vKylIds9dt7whIAegfjtfQHh5xwME3UJ6JvoeZbeZslcImv+Y2Gul947HR4aqDaE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=RMUtFVKz; arc=none smtp.client-ip=209.85.215.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="RMUtFVKz" Received: by mail-pg1-f175.google.com with SMTP id 41be03b00d2f7-c795f441ff7so6361120a12.2 for ; Sun, 26 Apr 2026 02:17:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777195051; x=1777799851; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NhgwqHOtN3JKEzMNmQQxavb3le5ueP3KVB1IfiCcbKI=; b=RMUtFVKzyuRXQtSFU18B3GnEVDnRSidKI9bCVH24MzxKZ40KHfXh+tF+NjhJ6bF0N2 5SqVhAw88n0iBbo8SvecTz90/AiqUBtWf6DP3/qWz9ZOjrovvaVbgLs+b2i2qLBPGSp6 W0zQSPgOkDIwLDL89u2h48/cV+zAgHHAFFWE8n3gSPEumPI08dAJ2VnQxgkZtXyNq+2m 0wS4dS5M40WVsa1H5IGKxeNEplllE+b6mvttM+f6m3DoAe6esuJX1XOYo9q4CJD93PpE B5El7+U7eCcVxQMZj1Q/1nOnPa8FdM03PFgK2iVSK9lnPM0WKRyp057bMU8VEiO571aW 0kMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777195051; x=1777799851; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=NhgwqHOtN3JKEzMNmQQxavb3le5ueP3KVB1IfiCcbKI=; b=NIYIesVTDft47gsotLvzoEBeb9/ujBZlbbnHcROxx35evX3uDEnNINPAWWtIKt+EPw ZsIuIgY76SVAdSIIoxPMP8ds2U2vvabNHk5aNU5kEqMYjZ4NYEGrk+/tdl7WLPWTWYwG Xef5RKn7WdPDnqz/d4/4p3i9G3Z8RjZ4pHvioAr9qtPBcwQdg3jmySIy74XxKQo4GcZt xk/2nTfc6NjP3lA3xNJJ/PxzmmIFGEaCS95wgITlwVq07TEx+AhknRlBKjg0ZwcWAlRl IDJKbEw1N+Usure/2zg/3JjFi3EST3buLUB2iOmjVghD2YG+mEM/5/cTBzVEPrV0t276 c7ZA== X-Forwarded-Encrypted: i=1; AFNElJ/FN6uI0xo/B4jwXsTJGSVrz3MPzFOd2yOL9HiIx3fXfjiKiyPoYUW1mKBsDqdDeIcXt5e+glzzkuasnxE=@vger.kernel.org X-Gm-Message-State: AOJu0YxwhGDnWEW6jdFRdGkro5rZLdGuspBjjKhHkr81aCjR4CaVz5RZ zRgSs8nK3eZfzxLqWVjqHy0K46OI4mvpE9oRgaDolzGszcqeWImLFMMx X-Gm-Gg: AeBDies4xnqf4Lzf6tgQLynhmbJxxd7id/s0g/MoAmmnpDhyrBx/q5KRibAxxdfBSoo hjpWDN3W/7M6gcBVrZ9V7nwj6IzKj46RlWY/YFK6UNGanJtZq2t8Vf2FH7FI7IuCcVZbp2bzED/ Uv21hgdvWsbRtOWPMrsonUDaOrbcqu47wKBfT56Cy5+1M2Hi2nS/MSvXwhT6om5XsIjTJ4bed0I WmUF3V2k87EHG0jSdNDPa56pUNCk2iIj1lzblZSf5KoxBWA2i2REzFS5ByKXpqgu1O0z5tiws34 7PsVRNckdEMLj9bak11J+AsNay44tdKhwH15L7X2BYQV0r8+Gcat8YV0pk9rMW6UubyB7msQkks OGUEs1FUGhjRowLN1/R2O/Y6GAEMvtGNyJLp29XcCuMC5x1ASTZwvizLP4trX4R/hSthDGpEUxC UiJVuDFYP9k+hZyKZ7pgCyUsFPbTZ89WorESedOsa3rBYwVZHCvD674gaXbCc= X-Received: by 2002:a05:6a20:7a8f:b0:3a3:170e:a4dd with SMTP id adf61e73a8af0-3a3170ef691mr13422896637.5.1777195051597; Sun, 26 Apr 2026 02:17:31 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f8e982fd3sm36145226b3a.10.2026.04.26.02.17.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 02:17:31 -0700 (PDT) From: Sanjay Chitroda X-Google-Original-From: Sanjay Chitroda To: jic23@kernel.org Cc: dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, sanjayembeddedse@gmail.com, mingo@kernel.org, christophe.jaillet@wanadoo.fr, nabijaczleweli@nabijaczleweli.xyz, kees@kernel.org, kyungmin.park@samsung.com, k.wrona@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 3/9] iio: ssp_sensors: cancel delayed work_refresh on remove Date: Sun, 26 Apr 2026 14:47:04 +0530 Message-Id: <20260426091710.3722035-4-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260426091710.3722035-1-sanjayembedded@gmail.com> References: <20260426091710.3722035-1-sanjayembedded@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sanjay Chitroda The work_refresh may still be pending or running when the device is removed, cancel the delayed work_refresh in remove path. Fixes: 50dd64d57eee ("iio: common: ssp_sensors: Add sensorhub driver") Signed-off-by: Sanjay Chitroda --- drivers/iio/common/ssp_sensors/ssp_dev.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/= ssp_sensors/ssp_dev.c index 7d07fae295fd..51730dae5871 100644 --- a/drivers/iio/common/ssp_sensors/ssp_dev.c +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c @@ -590,6 +590,7 @@ static void ssp_remove(struct spi_device *spi) ssp_clean_pending_list(data); =20 free_irq(data->spi->irq, data); + cancel_delayed_work_sync(&data->work_refresh); =20 timer_delete_sync(&data->wdt_timer); cancel_work_sync(&data->work_wdt); --=20 2.34.1 From nobody Sun Jun 14 20:10:17 2026 Received: from mail-pf1-f175.google.com (mail-pf1-f175.google.com [209.85.210.175]) (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 C94232E4257 for ; Sun, 26 Apr 2026 09:17:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777195059; cv=none; b=L3HhhqqnOoKMzp/M06Pem9zonB+hPgpEOG8yxZ4Nqeib6i2gR3J2PXZVhtEVew/naOBrg6YXe8Mq/JJ+v4wVE13Yk891yS3eaezBNKH1Uq+UR6e3rTxlbgCU0uvq5gFmbO4lDHyzsHC1sVJP3DszFLcknh+dw7794Xeq5pipv/I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777195059; c=relaxed/simple; bh=HYFO3q2SHnIUuJR4G1fUpiIKbR8QehUSCeo3bEHEw4Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=eYbEvB67pVXeqVAtNcVoIcvN5x866ptZbA5MHKlAmj7WHh9cNXyWSfiq35cPALr3Gwmsu0BQgTCZ5/BnNyDhonznBT94boBnFNirNLlacRHY7aALdkXI/sGdKBi1XRozYJewpubHdRfO224Afdpn+2R5/4cSENMNumj3kvz41rY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=aoClfhvm; arc=none smtp.client-ip=209.85.210.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="aoClfhvm" Received: by mail-pf1-f175.google.com with SMTP id d2e1a72fcca58-82f1f6103afso4256824b3a.1 for ; Sun, 26 Apr 2026 02:17:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777195056; x=1777799856; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HPVUT9kkozPdUSfyhgYJgQvI4BlLLR/1iVKaOJX4Zfg=; b=aoClfhvmflMAQW8tYFVjYVKHVT1rjDzXW4RjHloZXZx6erOgDJTSryVrFYYsbvCdbz VarKTJgFb027aG3j89oHgO1bSuD8sCC+q9TVpCXmSJuzWyGdgiB3Q9DsIrbxDZxjiJ1T Vzlu7/cYklMxTXPTPKcHh6VMhfUd9YSrU9DP63BCdZQRaUtwc7K90g4svaYNm/NPczXF HAphkEMIXxcJcPpCCt6Jf+KKqmElugmILUEIuslPoD1sYLakvTFSeawCB0wvOvIEbdlF Avkmszeka38/+bxJ3CPC7wJ//rNRPhBlPTlqq1kSMTABrtb1ma5xTK6wl1K15JjOVW18 0ZSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777195056; x=1777799856; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=HPVUT9kkozPdUSfyhgYJgQvI4BlLLR/1iVKaOJX4Zfg=; b=SUZHZIKZ7BGqBcUEj8jiqL9z7vo6v3+vTnDdZihutpLlu5Vaj7+efMiG9UCCwZtHkB 3hX1IMpqypgtyzwLv/Pqn3K5Z8eRwAXQtTCExtxGlQ8EndXdTX0nFgfWBr/0VtcucLzb zqcjz1/9gJDIiGIU5vxaVIuQB0y/KHDOSwssevoqVV7J4g0IwpLNEBPkaInd1D9m3znX zgYs//g/4Fo18wGUacJuv1DPZyxMf3W32+uCZjBSMqo+WR8Jx9dWGcO0hMM8wXZli+vn FsxeKrVWmjYzRHx9c+gGknyqHfPYVhZjfow3xfX4psnaxUXatKjqoNke9co5oQVxIS3Z jqlA== X-Forwarded-Encrypted: i=1; AFNElJ8pf8KG7NSTm5krle1E4rd26tR+P7hT6T/O9+nG/yA4CSTtcgkpxrnZDPsT/ANyFd+gvIRVteFo03Rsjhs=@vger.kernel.org X-Gm-Message-State: AOJu0Yw+YEdBoJAvwAl+t7xoh0qxQSlFuc7vP4A1A6qqRwfORAg5wy96 9M/OfUmfuDDGX3zTy3RN2XyN6xfwgaPTOhcijsU+/MKr3dBpR8s/CKGD X-Gm-Gg: AeBDiesW4IGKFhEJfHE8ggA3rEIfqm2SzLO7lZPG8bxb87L+gBxLSDR2kvYGvDigeQ/ 0SQh00lDBKPgAb926FdBAEKdTPx5G0n8d1p7wNH9nQI4bngsveZ2aJhYzG5vvaZKk7xzbYom9eT wbxnDTOMPLim7aYZny59fR86u3NslomeWYyVhrYiznbwBOWoXYacp8E5uCIA6zdfs2YtOvWAoeS GJux5BGq3Q9zRnV3NB11URUL/D8jfUMERzxQEBoEHSX6KqROczX9ReU6FCUWGtThSYSyAyYox9c WcK6/sITBE+GyC3uU+NHQKUEaagIhsMT5TBKf4HCDOebmaV+GUMnx5v2P2bSFBjxoUW/Rwbtwrq KXIKuQF6EazJ3BNzCfzAfQZHaGay7gKddej7CAboAMoCrTrh7siVihFRcbAwkkjMhKJkJOHK12u xk1VJzYlOOiam4PrkipY30h6GXtdgbL4d7ODiH9HmkwFqo4QoyyDlaOdh3Hns= X-Received: by 2002:a05:6a00:2d81:b0:82f:24e:6a48 with SMTP id d2e1a72fcca58-82f8c83059dmr41549420b3a.5.1777195056256; Sun, 26 Apr 2026 02:17:36 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f8e982fd3sm36145226b3a.10.2026.04.26.02.17.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 02:17:35 -0700 (PDT) From: Sanjay Chitroda X-Google-Original-From: Sanjay Chitroda To: jic23@kernel.org Cc: dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, sanjayembeddedse@gmail.com, mingo@kernel.org, christophe.jaillet@wanadoo.fr, nabijaczleweli@nabijaczleweli.xyz, kees@kernel.org, kyungmin.park@samsung.com, k.wrona@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 4/9] iio: ssp_sensors: factor out mcu enable/disable helper(s) Date: Sun, 26 Apr 2026 14:47:05 +0530 Message-Id: <20260426091710.3722035-5-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260426091710.3722035-1-sanjayembedded@gmail.com> References: <20260426091710.3722035-1-sanjayembedded@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sanjay Chitroda Re-factor the enable and disable MCU logic into small helper functions this simplify transfer flow to follow. No functional change intended. Signed-off-by: Sanjay Chitroda --- drivers/iio/common/ssp_sensors/ssp_dev.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/= ssp_sensors/ssp_dev.c index 51730dae5871..9b8642193176 100644 --- a/drivers/iio/common/ssp_sensors/ssp_dev.c +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c @@ -89,7 +89,7 @@ static void ssp_sync_available_sensors(struct ssp_data *d= ata) "SSP_MSG2SSP_AP_MCU_SET_DUMPMODE failed\n"); } =20 -static void ssp_enable_mcu(struct ssp_data *data, bool enable) +static void ssp_set_mcu(struct ssp_data *data, bool enable) { dev_info(&data->spi->dev, "current shutdown =3D %d, old =3D %d\n", enable, data->shut_down); @@ -108,6 +108,16 @@ static void ssp_enable_mcu(struct ssp_data *data, bool= enable) } } =20 +static inline void ssp_enable_mcu(struct ssp_data *data) +{ + ssp_set_mcu(data, true); +} + +static inline void ssp_disable_mcu(struct ssp_data *data) +{ + ssp_set_mcu(data, false); +} + /* * This function is the first one which communicates with the mcu so it is * possible that the first attempt will fail @@ -146,10 +156,10 @@ static int ssp_check_fwbl(struct ssp_data *data) =20 static void ssp_reset_mcu(struct ssp_data *data) { - ssp_enable_mcu(data, false); + ssp_disable_mcu(data); ssp_clean_pending_list(data); ssp_toggle_mcu_reset_gpio(data); - ssp_enable_mcu(data, true); + ssp_enable_mcu(data); } =20 static void ssp_wdt_work_func(struct work_struct *work) @@ -584,7 +594,7 @@ static void ssp_remove(struct spi_device *spi) dev_err(&data->spi->dev, "SSP_MSG2SSP_AP_STATUS_SHUTDOWN failed\n"); =20 - ssp_enable_mcu(data, false); + ssp_disable_mcu(data); ssp_disable_wdt_timer(data); =20 ssp_clean_pending_list(data); --=20 2.34.1 From nobody Sun Jun 14 20:10:17 2026 Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) (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 8389C3218BA for ; Sun, 26 Apr 2026 09:17:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777195062; cv=none; b=sFqRgzC9r4E/NHvBXHrEC3AQATyxRYP8SNzk1ESRxyJpdnELHrYqNfQ64kaNUeZkecmxqGeEJZ65PxVY1i8YtrJnXtpNE+Far/b+lygfJpo0sMWUFz0etLPwXz+WCEzVdQSqLsV6NPYR0yVMRUx475um9MX5tuh7x33jld6oN5c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777195062; c=relaxed/simple; bh=1XbT4DFv59qx2zEQidQrmQJpZi9ihMKSMAMKDP1misE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=OGy4AeN5l69zV6gc+F2i1Ps9sokT4ed7LdkOBy7eKdXte1nEI8okkq5viUhN5ANrkckiH04XbZZvWpRxo9q7KIHt9OaFKE1rV/F9f8znaonbvMdriTBkC7SsL6lYa7xAWfN6Wb7By6FVL6kGexyH4U62KdnLHybmm9wFOrLLVcA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=EwhcQZsG; arc=none smtp.client-ip=209.85.210.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EwhcQZsG" Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-82faf871346so5753039b3a.0 for ; Sun, 26 Apr 2026 02:17:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777195061; x=1777799861; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nl8W6B5QxibAvKD5ouhYFUfJc3VYKgW5BCHReA7sRZM=; b=EwhcQZsGYaI9EGSUaPMoKKpfMAHA8ho0ka9u9MMNrzGwIReN98e1nV2Ch4i5dVBLwF 7jmNaHPtUZQdDdUwM7khFiuAcSEy4QXiVNSqyPf5AAtc5y1nGZ6yhcnwGXMUiPaE7jn8 UadnH34m5+1huj4EB8X4aaXOAYHCNwx4JKXkBwuqcStaniMsVgKnpBepTrG3nKTXqnnT T9AmV21rXgkp2L80wGtZ5kFMPBa9chBxrLk/1n+Ddjkz8TaUEpcplP5ESqKdb5FpPxNe iPaHArH16trrx/lEpCmXSCs22GYhbyK9lML9pwXZaMPC5eLK6KQjl14zXyD2QVk/g2Hr A7jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777195061; x=1777799861; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=nl8W6B5QxibAvKD5ouhYFUfJc3VYKgW5BCHReA7sRZM=; b=Q4KXjbCKja+3I/vHz5Q6V/QwKuhN0PmHx/RUJ5rdGsxKXNQEwhbyg44/xsuYlnGE2b EI2frXL3dkhknDoTJv1ttxyjJEH+REglf8B7Fh83TDUCvDv/YzVIwxWuF5LQoLYUjX4+ D54eVSKRRVp3TYRkAaaP1OGJfKmStN2G7qK82WS2rWKD1r6tBqFVLxElLUbw7pqTCGly OjnFiCYUOtL5qE1xGYQFAArttOGFY+dlF0KyiVF4DiyBjetL1bClJZGUKy0gD63nZxmR gp/ppnDMNPxiU1cQk8LcY0TNIMIL8HakDWWofTyiaTaYyH0BYz513R8N/iDQD1Z8HTfn utbw== X-Forwarded-Encrypted: i=1; AFNElJ801BmG0QKj4ZXtzpJOVfYDoXUXaH3Gx8rmfZtDB/RO8bb3bUx25gyOX3ZCprVEqSq+SO29l+fCRLtn/EY=@vger.kernel.org X-Gm-Message-State: AOJu0YxGicKIYOjjTFwKNxOFyonAQkIkIuJvzkam6aSyOscc9D/Zvhk4 Mvb/hE1uXPeTQ4kJ8i5XFkM16Tfl8/ygmFmkrly77QKMV/GCtjmQIXwi X-Gm-Gg: AeBDieu/IwOGxO7IdWVFOCYq4FkLqzTTjjTVX8tPDEAw418apq2y1JcRgwoFmcM3DjL K3tGH3mB8vahOrMZTKgbtNW1Uhq8p8cun9FFnYnuYppng/B+tyHnrKaxu3dbXbe3hx73/cj6xZy iEey9bV/S1P8IXbbK2y4W8w7y5PiU3JOSswU8ZKJWh3RYSN/D+n+8jT93AIt4GbDWQnVLZfCspb eD1FH9MW8gl7FJVR/TxdrabIs3mb0eOkubtCOxZVnKh055Ega/hqsflEmkKKGM4hgY2zR9Knv0p eIshverNTi7UDLK1YvNYQIuU4qKmH5AmIh+nKhk7H6ERT8Wr0F3MtXlpTDdjwPZp/nSsqmbszJi i7kLLOfNja2r4MhxPCUahP5N8fQ9xfxz9nLnAxjP4fuhiQWQfLISu8QzAY2OdjlNPs2YIRo15go WtDI3eF0LGvGs10228JH3OHmItT/ZiJYsJMqWXJpd23FWiTVbKe5HXzN+S4Ag= X-Received: by 2002:a05:6a00:17a1:b0:82c:e83d:a9b0 with SMTP id d2e1a72fcca58-82f8c850e93mr39270060b3a.21.1777195060917; Sun, 26 Apr 2026 02:17:40 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f8e982fd3sm36145226b3a.10.2026.04.26.02.17.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 02:17:40 -0700 (PDT) From: Sanjay Chitroda X-Google-Original-From: Sanjay Chitroda To: jic23@kernel.org Cc: dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, sanjayembeddedse@gmail.com, mingo@kernel.org, christophe.jaillet@wanadoo.fr, nabijaczleweli@nabijaczleweli.xyz, kees@kernel.org, kyungmin.park@samsung.com, k.wrona@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 5/9] iio: ssp_sensors: use local struct device Date: Sun, 26 Apr 2026 14:47:06 +0530 Message-Id: <20260426091710.3722035-6-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260426091710.3722035-1-sanjayembedded@gmail.com> References: <20260426091710.3722035-1-sanjayembedded@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sanjay Chitroda Introduce a struct device *dev derived from &spi->dev to improve readability and reorder variable(s) to follow reversed xmas tree style. Signed-off-by: Sanjay Chitroda --- drivers/iio/common/ssp_sensors/ssp_dev.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/= ssp_sensors/ssp_dev.c index 9b8642193176..fa47282b39c0 100644 --- a/drivers/iio/common/ssp_sensors/ssp_dev.c +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c @@ -492,27 +492,28 @@ EXPORT_SYMBOL_NS(ssp_register_consumer, "IIO_SSP_SENS= ORS"); =20 static int ssp_probe(struct spi_device *spi) { - int ret, i; + struct device *dev =3D &spi->dev; struct ssp_data *data; + int ret, i; =20 - data =3D ssp_parse_dt(&spi->dev); + data =3D ssp_parse_dt(dev); if (!data) { - dev_err(&spi->dev, "Failed to find platform data\n"); + dev_err(dev, "Failed to find platform data\n"); return -ENODEV; } =20 - ret =3D mfd_add_devices(&spi->dev, PLATFORM_DEVID_NONE, + ret =3D mfd_add_devices(dev, PLATFORM_DEVID_NONE, sensorhub_sensor_devs, ARRAY_SIZE(sensorhub_sensor_devs), NULL, 0, NULL); if (ret < 0) { - dev_err(&spi->dev, "mfd add devices fail\n"); + dev_err(dev, "mfd add devices fail\n"); return ret; } =20 spi->mode =3D SPI_MODE_1; ret =3D spi_setup(spi); if (ret < 0) { - dev_err(&spi->dev, "Failed to setup spi\n"); + dev_err(dev, "Failed to setup spi\n"); goto err_setup_spi; } =20 @@ -548,7 +549,7 @@ static int ssp_probe(struct spi_device *spi) IRQF_TRIGGER_FALLING | IRQF_ONESHOT, "SSP_Int", data); if (ret < 0) { - dev_err(&spi->dev, "Irq request fail\n"); + dev_err(dev, "Irq request fail\n"); goto err_setup_irq; } =20 @@ -562,11 +563,11 @@ static int ssp_probe(struct spi_device *spi) if (data->fw_dl_state =3D=3D SSP_FW_DL_STATE_NONE) { ret =3D ssp_initialize_mcu(data); if (ret < 0) { - dev_err(&spi->dev, "Initialize_mcu failed\n"); + dev_err(dev, "Initialize_mcu failed\n"); goto err_read_reg; } } else { - dev_err(&spi->dev, "Firmware version not supported\n"); + dev_err(dev, "Firmware version not supported\n"); ret =3D -EPERM; goto err_read_reg; } @@ -579,9 +580,9 @@ static int ssp_probe(struct spi_device *spi) mutex_destroy(&data->pending_lock); mutex_destroy(&data->comm_lock); err_setup_spi: - mfd_remove_devices(&spi->dev); + mfd_remove_devices(dev); =20 - dev_err(&spi->dev, "Probe failed!\n"); + dev_err(dev, "Probe failed!\n"); =20 return ret; } --=20 2.34.1 From nobody Sun Jun 14 20:10:17 2026 Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) (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 ACD3E282F3D for ; Sun, 26 Apr 2026 09:17:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777195068; cv=none; b=tnJQggoXxXuVLCM8KuCnGvlFwF2CgyJ3x3Hx7BnvVLbqyvo4xD+9PFrBCF67Gg7yfHgp43Mx4fPUQkToCeKXxAunHD6jR1q+MPfYzC+Mqtdj9D9/RAA2B6Lcw7W8m3RtulI7oN4dIMZy3eQ/kLMQKodifiUg2g4jlRgq8QDZAmA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777195068; c=relaxed/simple; bh=0cP/SpEuIRnMTsbwa6oOuewBFl9Xc1IhNPqjtx4GWJo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=JPafDKzR62IMcHeDgnGWMdMxG+V8XfNBYDq4N70eVB1kJICYuxHTeCZ1pkPsCyZHyQ/oOpExmHA5BjU1FWaY6TGibDf7JWDfyIBUTagU4fGOBHxqUZZ3wSS2/b/RwhFUKUmuFFjj3+tFaioSMi3LaM9wIBQekq86yZbrEusvvDo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=QegaQhjr; arc=none smtp.client-ip=209.85.210.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="QegaQhjr" Received: by mail-pf1-f179.google.com with SMTP id d2e1a72fcca58-82f0884bcfaso6313420b3a.1 for ; Sun, 26 Apr 2026 02:17:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777195065; x=1777799865; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+RvA9yofPmrJVN1v7H/Y57b209Sd9mb+5g5ouS/KXC4=; b=QegaQhjr3WUP0lBleJbOGZM2D6nvdUQjDjxk43JUrmswUBpIW0cnTvDzhiZ/G5CGch tCiB/mA3s83OzO4iK1EVXohiyeL28hs6ot4SxGn65FVFo6e+Q+w6g9bJdc8v4H5C+mSk hSISR0yupjz7u7ISUFx8d1r6Q2KlltqIPRbY9Bco1NXm5+4Xfcp2k5BSd/CbUS8fTFPY IfAIwKXxrwt/kppyK0OBRfLTqrOD2rVHAw8Dvv9gjFlklhYht/wBbWnPR8cVwswvB1i6 4B8C2STzPTK2EEm4X0kLBLJ6YIOngFCbBAkO6UqDz+eqI9dkK0cypNVJgvzlBEergeH9 caZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777195065; x=1777799865; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+RvA9yofPmrJVN1v7H/Y57b209Sd9mb+5g5ouS/KXC4=; b=UeQ9ZK0CsQCHiRras1sA6wSnPG4sPkKQrsKiJnX/FlxVo2FdOhRXkeZfrUZoby8iqV FHsw37BeRxV/WfTIioyY78q6vLULVGgJPW14sTc8Z0zKIuP4MktD5BBGUjeikhZ4yApv qqI4DXTUT4e3sjsInXx3OsMYBvDR91pJHZX9udtI/SgmQoX2dh+d18FE5VNsdwIe97XA +Y0hXfmzR0DUmoYh64kGZqVj4b+hWtMdNtbzK4OOWZkFDTfT2FpSMOt8QYtgzYqO3vSh Ed478kAFAiVknqcK64K6h6QX2Y4Nh+s6T5UZuwIgxwE0DxybayXerYWKphDVFCsQb6KL 7cJQ== X-Forwarded-Encrypted: i=1; AFNElJ/uOr3m5tkhgZnqIogpF0dUwgFgLvqQT83EEBRBteSK4JqA2dV46kBZgodgQGupA3WImiEMbEsleG5k66w=@vger.kernel.org X-Gm-Message-State: AOJu0YzPpZ4W/17iNb8crYAni0r0LwhTaoAU0cVjChukWIRWxMZo6EDW qCd2vHT6XBglDYoVRUSQWwP3PeHrGsIds5K5xLSt2W2GCkHt9a0gAPGA X-Gm-Gg: AeBDiesnREPOJGEr7oyzGVswfCiKQcSiaf1G2Nq3KJlx/rw5dffp228OaWwHtNqqu4/ 0zq4C/ddBzu+po82xbK31bAMe5PUJbavkDfywk35GFk+Y2orZMsoM06ilo/nQPJDJOpSFQmtzKK 6I/fp8N1AIRl4VXUHR7dp9VfEbZ5OHM7rbuEzO1j20EYj9J0LFzWtDfAW+imEFmX37m3lrs93SP w+BhgKa3ZV+Bafyq2I1ozPYgQ+IgSSF1wzmHA1Fdk8IJ/rtFzKP6Hm9i3Rbl5Zlc21xcLuTxk6u vRxhdKm3E8+G8L2fjSL1sCNUWO+GWfggVHuCnazqUu92oO1O+7AQZC+eE2ypbJC/qdC4vmaf3XP oTI2+UoBLheahmnqdbAYQytISg+BFna/GRwM8mVda55CLDf9fk8IWrIy/ZaG/fpWeFFFgV7X2id WMqx9lB10C633ejrt+OdSOdby+F25EJRm1Uasfzg114IjxUCbwctk2Iin0OmQ= X-Received: by 2002:a05:6a00:8011:b0:81e:12f1:d8a with SMTP id d2e1a72fcca58-82f8c90497bmr41155497b3a.34.1777195065545; Sun, 26 Apr 2026 02:17:45 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f8e982fd3sm36145226b3a.10.2026.04.26.02.17.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 02:17:45 -0700 (PDT) From: Sanjay Chitroda X-Google-Original-From: Sanjay Chitroda To: jic23@kernel.org Cc: dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, sanjayembeddedse@gmail.com, mingo@kernel.org, christophe.jaillet@wanadoo.fr, nabijaczleweli@nabijaczleweli.xyz, kees@kernel.org, kyungmin.park@samsung.com, k.wrona@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 6/9] iio: ssp_sensors: Drop duplicated wdt timer and work cleanup Date: Sun, 26 Apr 2026 14:47:07 +0530 Message-Id: <20260426091710.3722035-7-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260426091710.3722035-1-sanjayembedded@gmail.com> References: <20260426091710.3722035-1-sanjayembedded@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sanjay Chitroda The SSP remove path cleans up the watchdog timer and associated work both via ssp_disable_wdt_timer() and through explicit timer and work teardown. ssp_disable_wdt_timer() already performs a synchronous teardown of the watchdog timer and watchdog work, guaranteeing that no timer callbacks or watchdog work can be running or requeued once it returns. In addition, the remove path disables interrupts and frees IRQ handler using ssp_disable_mcu() and free_irq(). The refresh work is also cancelled, preventing wdt_timer being re-armed before teardown. This ensures that no new refresh or watchdog activity can be triggered from the IRQ thread and refresh workqueue. As a result, the additional timer and work cancellation is redundant and does not provide additional ordering or race protection. Remove the duplicated cleanup and rely on the centralized watchdog disable helper. Signed-off-by: Sanjay Chitroda --- Changes in v7: - Following comment from Andy, Study the timer, work and IRQ relationship and how it would work internally for ssp_sensors and changes looks correct; updated the commit message to explain the race condition and information on resource release during teardown. - v6 change: https://lore.kernel.org/all/20260415050749.3858046-5-sanjayemb= edded@gmail.com/ --- drivers/iio/common/ssp_sensors/ssp_dev.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/= ssp_sensors/ssp_dev.c index fa47282b39c0..29b17118ba2a 100644 --- a/drivers/iio/common/ssp_sensors/ssp_dev.c +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c @@ -596,15 +596,12 @@ static void ssp_remove(struct spi_device *spi) "SSP_MSG2SSP_AP_STATUS_SHUTDOWN failed\n"); =20 ssp_disable_mcu(data); - ssp_disable_wdt_timer(data); - ssp_clean_pending_list(data); =20 free_irq(data->spi->irq, data); cancel_delayed_work_sync(&data->work_refresh); =20 - timer_delete_sync(&data->wdt_timer); - cancel_work_sync(&data->work_wdt); + ssp_disable_wdt_timer(data); =20 mutex_destroy(&data->comm_lock); mutex_destroy(&data->pending_lock); --=20 2.34.1 From nobody Sun Jun 14 20:10:17 2026 Received: from mail-pf1-f180.google.com (mail-pf1-f180.google.com [209.85.210.180]) (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 D6D3C34575A for ; Sun, 26 Apr 2026 09:17:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777195072; cv=none; b=k0RIFIZ/8yjAEBHr+yWaFUY0cnN/PqndP7O+pCjzKAlH7wqpJyGm1BnjN/aRz1+r4DaVfIQXEPy04t7Lt9DUdDoV+gaTNhAs/zLThVde4PaqnWvOKe6/ExXmbHVESspay9gShSoT77+Ej4LqosyX/p9C/9EB6eAOSl1SLypqlMk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777195072; c=relaxed/simple; bh=UI4gpJgvq80CY6ds7K4Xd3PFz3dFyLWx3uHd0iQGEr0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=uWrwuQfKnNLdYm0eGhbG9iOIdMNDrRsdeTOEC+g7emMThDfbFZvwBJeO2UKoVJNKfNnpZ0xEaysggBKpt8/Jquv5h72haf3ub2xpyJneAF/2GO8zb0tQpyj5orAdAqtClxmYTMqQqH5eszwY/qvmWHfB6gYi/nfhh7Leh1I5RfU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=McENy7+k; arc=none smtp.client-ip=209.85.210.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="McENy7+k" Received: by mail-pf1-f180.google.com with SMTP id d2e1a72fcca58-82fb2d0c5d1so4278104b3a.0 for ; Sun, 26 Apr 2026 02:17:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777195070; x=1777799870; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Yc1KBOhHJY+Esy8/gdy45qCEuLaCO98hwqmEBOIURLc=; b=McENy7+kmRLm/dm7yB8Agx6h9v5NJHXQ52paLOGNGzjs/jErg7qLABe6HQifkZfr6M jteeyDIP+Uj9AAJSYXNodRvbW5Oa/eHk5c/dWAIIhbFMyP27BUbTfjO6NFTdJ9f+dW4g p89Xw4AEvtAW3dVqEvS5M7yjQ1S8AViI2GSDMKmBtQZp9UXZiYvCSe/hx+s0h+S8dQkQ myL8lJZSDXoVL0Bo/E4By8W8PEBduDjkgxQrcxyMGkPgpO01KBtIKPlTIGQZUiIN/dr4 nG8sMlbPw8eBnPCE5r1Q5TnrZdhEY3dhEjC0lEzLE3jbbFK1Gz8qq2rWyKr42hQ0jloY b3/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777195070; x=1777799870; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Yc1KBOhHJY+Esy8/gdy45qCEuLaCO98hwqmEBOIURLc=; b=KgXHQKm6NdrKLJAARwr5l2g0wbSS4fSvAuG/VyzM+RHTQkHViwEeDt5bx2BzRtdXP4 DGOHaLTcQyp0fBYK15sf9bVTedGYWASR7xNad+VwjxKHtw8rSuzuXiLLloIySVKZ14ik NjVrs84gjP+9dgvyc/JKHPlB89eUFfdhepghu2dIHgXm4zZz3/16Kw5xmZqGuByjEBfE 3LR/Cfi1HgYwvruuhzBIDmR42FHMnmqTCFavN9QmKiepFYwRW1xmO8H52lOxVe8CNF4e NVhABrvMy/DOXafZdAHdsEStMndfOqsRLyLiWNB5cnI6lX0lLb/DELsKS2J9GPCxTFYk Mnhg== X-Forwarded-Encrypted: i=1; AFNElJ9Su7Gjma3PV1wRdNwWAqxuP6IDWGTwCfNogfztnISP1jc0MfeLQRraV/wxO6fiVPaI316xmfelmXqE6gU=@vger.kernel.org X-Gm-Message-State: AOJu0YwKWXvIp8FuNMQSDvPCnuTMdkmsSWwR6Cd6aUCTWL6hFGMG6YRG sarRk8KCZ/7MV7ZGFz7HXUZlXrR1DLrlns1udk3XBJIlCMSIy+pr2ckp X-Gm-Gg: AeBDies7F3gYL0OOx1L6cr4vVHzVzrwerQpwFblrX8gQubCUyUctDqv5XY5vrKc3jl1 KYroH0HxyXlQ9P2dWcsyBsFNel9IMEk5e1NwDmEqxIxziZ3H50t9Rx6H45axD2PxO7PkrQZsdBe YECqGRXmKO3Ip8CPXjFk8b55SMvEDzudIHW4Kdw1sF7CaI0CPsyap2/pasBT6ixVn41AGSgT8SF pS/MiKv4dsECzTId2TCORiqHtyR/C9k0LixQwG7AyYAuzeE25coKdye3sPAHSsIM04zOcp2AljC 9autu6/gVSHX35xsKfvW9lZB4vUy90KzVkDtxCuvf419SdC+QAmju3nhdrfCKutMMckLubNJVUb DRIUs38IooLC2wod+MAj2IAXXWEFOiDj4+dutxtujg+HIDXAK9VSoTpWG1+JJtG7AzYqUKZ8762 dWZS0aXnMn8kqb/Xf0SvIQCyXtW/Y62qfLy2KXUFw0Xb8yO+PqgJ41BDajmWY= X-Received: by 2002:a05:6a20:2584:b0:3a2:cbd1:11e with SMTP id adf61e73a8af0-3a2cbd11245mr26262249637.14.1777195070188; Sun, 26 Apr 2026 02:17:50 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f8e982fd3sm36145226b3a.10.2026.04.26.02.17.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 02:17:49 -0700 (PDT) From: Sanjay Chitroda X-Google-Original-From: Sanjay Chitroda To: jic23@kernel.org Cc: dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, sanjayembeddedse@gmail.com, mingo@kernel.org, christophe.jaillet@wanadoo.fr, nabijaczleweli@nabijaczleweli.xyz, kees@kernel.org, kyungmin.park@samsung.com, k.wrona@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 7/9] iio: ssp_sensors: convert probe and teardown to devm-managed resources Date: Sun, 26 Apr 2026 14:47:08 +0530 Message-Id: <20260426091710.3722035-8-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260426091710.3722035-1-sanjayembedded@gmail.com> References: <20260426091710.3722035-1-sanjayembedded@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sanjay Chitroda Convert SSP driver resource management to use devm-managed helpers and devm actions, tying the lifetime of all resources to the device. Mutex initialization, IRQ registration, work items, timers, and MFD resource are now managed using devm APIs. Cleanup logic previously handled explicitly in probe error paths and the remove callback is replaced with devm_add_action_or_reset(), ensuring correct teardown ordering and consistent behaviour on probe failure and device unbind. This simplifies the probe path by removing goto-based error handling, eliminates the remove callback entirely. No functional change intended. Signed-off-by: Sanjay Chitroda --- Changes in v7: - Following input from Jonathan, added comment to describe the managed acti= on - Keep it single line for devm_add_..() API definition - v6 change: https://lore.kernel.org/all/20260415050749.3858046-6-sanjayemb= edded@gmail.com/ Changes in v6: - Drop remove path completely using devm_action with review comment from Da= vid - Convert MFD device to manage resource along with mutex and IRQ - v5 change: https://lore.kernel.org/all/20260406080852.2727453-5-sanjayemb= edded@gmail.com/ --- drivers/iio/common/ssp_sensors/ssp_dev.c | 117 +++++++++++++---------- 1 file changed, 65 insertions(+), 52 deletions(-) diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/= ssp_sensors/ssp_dev.c index 29b17118ba2a..5415efc7bf48 100644 --- a/drivers/iio/common/ssp_sensors/ssp_dev.c +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c @@ -204,6 +204,26 @@ static void ssp_disable_wdt_timer(struct ssp_data *dat= a) cancel_work_sync(&data->work_wdt); } =20 +static void ssp_disable_work_timer(void *ptr) +{ + struct ssp_data *data =3D ptr; + + cancel_delayed_work_sync(&data->work_refresh); + ssp_disable_wdt_timer(data); +} + +static void ssp_shutdown_action(void *ptr) +{ + struct ssp_data *data =3D ptr; + + if (ssp_command(data, SSP_MSG2SSP_AP_STATUS_SHUTDOWN, 0) < 0) + dev_err(&data->spi->dev, + "SSP_MSG2SSP_AP_STATUS_SHUTDOWN failed\n"); + + ssp_disable_mcu(data); + ssp_clean_pending_list(data); +} + /** * ssp_get_sensor_delay() - gets sensor data acquisition period * @data: sensorhub structure @@ -502,9 +522,9 @@ static int ssp_probe(struct spi_device *spi) return -ENODEV; } =20 - ret =3D mfd_add_devices(dev, PLATFORM_DEVID_NONE, - sensorhub_sensor_devs, - ARRAY_SIZE(sensorhub_sensor_devs), NULL, 0, NULL); + ret =3D devm_mfd_add_devices(dev, PLATFORM_DEVID_NONE, + sensorhub_sensor_devs, + ARRAY_SIZE(sensorhub_sensor_devs), NULL, 0, NULL); if (ret < 0) { dev_err(dev, "mfd add devices fail\n"); return ret; @@ -514,14 +534,16 @@ static int ssp_probe(struct spi_device *spi) ret =3D spi_setup(spi); if (ret < 0) { dev_err(dev, "Failed to setup spi\n"); - goto err_setup_spi; + return ret; } =20 data->fw_dl_state =3D SSP_FW_DL_STATE_NONE; data->spi =3D spi; spi_set_drvdata(spi, data); =20 - mutex_init(&data->comm_lock); + ret =3D devm_mutex_init(dev, &data->comm_lock); + if (ret < 0) + return ret; =20 for (i =3D 0; i < SSP_SENSOR_MAX; ++i) { data->delay_buf[i] =3D SSP_DEFAULT_POLLING_DELAY; @@ -534,7 +556,9 @@ static int ssp_probe(struct spi_device *spi) =20 data->time_syncing =3D true; =20 - mutex_init(&data->pending_lock); + ret =3D devm_mutex_init(dev, &data->pending_lock); + if (ret < 0) + return ret; INIT_LIST_HEAD(&data->pending_list); =20 atomic_set(&data->enable_refcount, 0); @@ -544,14 +568,23 @@ static int ssp_probe(struct spi_device *spi) =20 timer_setup(&data->wdt_timer, ssp_wdt_timer_func, 0); =20 - ret =3D request_threaded_irq(data->spi->irq, NULL, - ssp_irq_thread_fn, - IRQF_TRIGGER_FALLING | IRQF_ONESHOT, - "SSP_Int", data); - if (ret < 0) { - dev_err(dev, "Irq request fail\n"); - goto err_setup_irq; - } + /* + * Register deferred callback which disable timer and work after + * module unloaded. + * + * driver should cancel delayed refresh work, watchdog work and delete + * watchdog timer once interrupt is disabled and IRQ is freed. + */ + ret =3D devm_add_action_or_reset(dev, ssp_disable_work_timer, data); + if (ret < 0) + return ret; + + ret =3D devm_request_threaded_irq(dev, data->spi->irq, NULL, + ssp_irq_thread_fn, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + "SSP_Int", data); + if (ret < 0) + return ret; =20 /* Let's start with enabled one so irq balance could be ok */ data->shut_down =3D false; @@ -564,49 +597,30 @@ static int ssp_probe(struct spi_device *spi) ret =3D ssp_initialize_mcu(data); if (ret < 0) { dev_err(dev, "Initialize_mcu failed\n"); - goto err_read_reg; + return ret; } } else { dev_err(dev, "Firmware version not supported\n"); - ret =3D -EPERM; - goto err_read_reg; + return -EPERM; } =20 - return 0; - -err_read_reg: - free_irq(data->spi->irq, data); -err_setup_irq: - mutex_destroy(&data->pending_lock); - mutex_destroy(&data->comm_lock); -err_setup_spi: - mfd_remove_devices(dev); - - dev_err(dev, "Probe failed!\n"); - - return ret; -} - -static void ssp_remove(struct spi_device *spi) -{ - struct ssp_data *data =3D spi_get_drvdata(spi); - - if (ssp_command(data, SSP_MSG2SSP_AP_STATUS_SHUTDOWN, 0) < 0) - dev_err(&data->spi->dev, - "SSP_MSG2SSP_AP_STATUS_SHUTDOWN failed\n"); - - ssp_disable_mcu(data); - ssp_clean_pending_list(data); - - free_irq(data->spi->irq, data); - cancel_delayed_work_sync(&data->work_refresh); - - ssp_disable_wdt_timer(data); - - mutex_destroy(&data->comm_lock); - mutex_destroy(&data->pending_lock); + /* + * Managed shutdown action for the SSP device lifecycle. + * + * This action unwinds state by: + * - notifying the SSP firmware of AP shutdown, + * - disabling the MCU to prevent further IRQ activity, + * - cleaning up any pending command state. + * + * The action is registered once the MCU has been initialized so that + * both driver removal and probe failure after this point leave the + * device in a quiescent state. + */ + ret =3D devm_add_action_or_reset(dev, ssp_shutdown_action, data); + if (ret < 0) + return ret; =20 - mfd_remove_devices(&spi->dev); + return 0; } =20 static int ssp_suspend(struct device *dev) @@ -662,7 +676,6 @@ static DEFINE_SIMPLE_DEV_PM_OPS(ssp_pm_ops, ssp_suspend= , ssp_resume); =20 static struct spi_driver ssp_driver =3D { .probe =3D ssp_probe, - .remove =3D ssp_remove, .driver =3D { .pm =3D pm_sleep_ptr(&ssp_pm_ops), .of_match_table =3D ssp_of_match, --=20 2.34.1 From nobody Sun Jun 14 20:10:17 2026 Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) (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 649003128BE for ; Sun, 26 Apr 2026 09:17:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777195076; cv=none; b=rpt3z6EDrRK0FfzEMVu1AJDGrU594D/OyNMa7KSqfRjUgZQ96jhSo79TNKVoSdYJv23aJO0Xmu0Aw7NqyzPF/v4igmoHoRewZ7lVGi6O39p5xa3MIgIsVtaZkxho1VsVP/UpXlDtx7AHCNXWXwkTyVQXi/UknLDFCKKlNiW5kfA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777195076; c=relaxed/simple; bh=Tl9tD+ph9kNEON0ieUFN/yRGnWD83boxn4tOUTxDMCk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=lLFQkQYFo9fiC3y+6N5/e9pWTFTYnjpRlIJORVq5/HanjxcIvbbP8cMxR8X8ZO1p1iq/JeWyfxxk3GFWqnSdyM2SvzUg4dLUOWC24m3e5EcaVoawOnIyaRe6VnC2fOEk2gQtj7PFtuOSKdDtu1++JovlGfUcmJ1KxrJ1wJTgdTE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=j+iw4C/G; arc=none smtp.client-ip=209.85.210.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="j+iw4C/G" Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-82f1f6103afso4256870b3a.1 for ; Sun, 26 Apr 2026 02:17:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777195075; x=1777799875; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6NOjVOegFQrtS3izH9LBynQBmkc3ptaz6NtorLHbOAA=; b=j+iw4C/GuWXXjyelWyqEYkpmcybvu7u6ItRQ2NtwUInyuVFpfqdU/ClCmZM/s9VV6I 2lqJcx9lQ3lmYhHTWqS4sBYE9rC5Fr2O8etfISHZ0JTlXgt9R13wb4n+K3kZ5RumYccu aa5iQGVnwVJWr5SuVa90FCo0tDpGYmYlpMPCHJWDH9k3LIQgbwoNGBWJiOhSdMDvBl5D gn91Qn2UGCly33V83LHhuWqqTLNiRiDbUvu8HWRQtOcPcHxei/vq0Poftgc47UjHGlmw SXa0YfEajRm53GWFii2DiFdxPjn3A43c6xPqUoB2QIMxc4vkHQIEhynHzGF0cEd4uEF4 a0Ng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777195075; x=1777799875; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=6NOjVOegFQrtS3izH9LBynQBmkc3ptaz6NtorLHbOAA=; b=fJrc8MqM+9Hs7iKde7vYLRJqF7IaP88F7AhLcAfkikdAF+dGv6u+LPqakhkFQ3WzU7 PAzYYXo72/WGcLjPCA0F7BYjqHz9cmDDUicaprX3y8aH4VgxJ7r5oqlXHI8L81OjyvSG GtU8oZtX6fpohESY07Mv8vbh+M5IDUgGwOycWa9igwwHKwIlnl40fqi7xOYNkB3MAFrp 6l2YLnKK6qxCR8mDVcVpO9bH4nA7QYbiqCZz5dJI8JuHEPNWvhCTThRehXJJfj+yAm7B TSIgg5tm8YHufqTTuQdJOO2oH9Gw3ZVvcgchqbSjVq//RXy9wfWagaJNIfGbVQwaUlDK fhxA== X-Forwarded-Encrypted: i=1; AFNElJ/oqjVDqNF7Y01PaWnVYAf9ZJnlpR4q0wzPRRiimXWDovtcXhlhAHkwzpJE6VSF0WA6XZwTQYHvL4oDaQ8=@vger.kernel.org X-Gm-Message-State: AOJu0Yxwxxf+MtvAnayjk4+qpSMcts64ghVwYkkejn/vgZKhhfRm5156 6wsED2OxcbuBrt00krLkNSqiF8ikKsF3FLR4npZkE6kXzOqwVKSIWrl2 X-Gm-Gg: AeBDieuHGL3VgRa32LbjzFYAETBlUYmrtLuxUeR9bIbEm0/K1eTPtdevQ6jpQpQnF3K kdymN2RXrA3xfrdFZXXt4qXpDQ7Y2EOyvXtoGYwxFzATRXX6tNGrTWfMKoYxLKNAVC88XId95nn vCXLPS4jslq/H14t0eSf4fqumQtZ3mCSwrChWouG2tBbItefBeXo542/9Uj+w9cK//uw3XxgslE PX0Hos0bGX5y16jjXv4bnaOeslksYKtvLEVlbcVlZWXY12J9gKx9QT00a908bbYj4TzMXt+bP5x +S7SAHczzMdXCEFkmElbVA0tq7DHG13JTRZKXgXV8PksSB7Wu+ou0A909eWKGr8e/DijZT16+8k dt2yqXP09JbeLSC+ZSgGjSyV6SomY6hsgRPA/Beq3N9FcaMVv4Hvib2vER6wgWF4x8AMf6uP9bH /q3CE79fGr+j1nw4+sFwBGxQ/XGEnZQCu2L6FBVLb+cFmGXu/R0gO/s4IpFdI= X-Received: by 2002:aa7:88ca:0:b0:82c:d9d0:f482 with SMTP id d2e1a72fcca58-82f8c976ff1mr40075723b3a.46.1777195074840; Sun, 26 Apr 2026 02:17:54 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f8e982fd3sm36145226b3a.10.2026.04.26.02.17.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 02:17:54 -0700 (PDT) From: Sanjay Chitroda X-Google-Original-From: Sanjay Chitroda To: jic23@kernel.org Cc: dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, sanjayembeddedse@gmail.com, mingo@kernel.org, christophe.jaillet@wanadoo.fr, nabijaczleweli@nabijaczleweli.xyz, kees@kernel.org, kyungmin.park@samsung.com, k.wrona@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 8/9] iio: ssp_sensors: Use dev_err_probe Date: Sun, 26 Apr 2026 14:47:09 +0530 Message-Id: <20260426091710.3722035-9-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260426091710.3722035-1-sanjayembedded@gmail.com> References: <20260426091710.3722035-1-sanjayembedded@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sanjay Chitroda dev_err_probe() makes error code handling simpler and handle deferred probe nicely (avoid spamming logs). Signed-off-by: Sanjay Chitroda --- changes in v7: - Drop redundant else with refactor as guided by Andy - Add new change in series for local dev variable with input from Andy - v6 change: https://lore.kernel.org/all/20260415050749.3858046-7-sanjayemb= edded@gmail.com/ --- drivers/iio/common/ssp_sensors/ssp_dev.c | 38 +++++++++--------------- 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/= ssp_sensors/ssp_dev.c index 5415efc7bf48..22d26980baa2 100644 --- a/drivers/iio/common/ssp_sensors/ssp_dev.c +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c @@ -517,25 +517,19 @@ static int ssp_probe(struct spi_device *spi) int ret, i; =20 data =3D ssp_parse_dt(dev); - if (!data) { - dev_err(dev, "Failed to find platform data\n"); - return -ENODEV; - } + if (!data) + return dev_err_probe(dev, -ENODEV, "Failed to find platform data\n"); =20 - ret =3D devm_mfd_add_devices(dev, PLATFORM_DEVID_NONE, - sensorhub_sensor_devs, + ret =3D devm_mfd_add_devices(dev, PLATFORM_DEVID_NONE, sensorhub_sensor_d= evs, ARRAY_SIZE(sensorhub_sensor_devs), NULL, 0, NULL); - if (ret < 0) { - dev_err(dev, "mfd add devices fail\n"); - return ret; - } + + if (ret < 0) + return dev_err_probe(dev, ret, "mfd add devices fail\n"); =20 spi->mode =3D SPI_MODE_1; ret =3D spi_setup(spi); - if (ret < 0) { - dev_err(dev, "Failed to setup spi\n"); - return ret; - } + if (ret < 0) + return dev_err_probe(dev, ret, "Failed to setup spi\n"); =20 data->fw_dl_state =3D SSP_FW_DL_STATE_NONE; data->spi =3D spi; @@ -593,16 +587,12 @@ static int ssp_probe(struct spi_device *spi) enable_irq_wake(data->spi->irq); =20 data->fw_dl_state =3D ssp_check_fwbl(data); - if (data->fw_dl_state =3D=3D SSP_FW_DL_STATE_NONE) { - ret =3D ssp_initialize_mcu(data); - if (ret < 0) { - dev_err(dev, "Initialize_mcu failed\n"); - return ret; - } - } else { - dev_err(dev, "Firmware version not supported\n"); - return -EPERM; - } + if (data->fw_dl_state !=3D SSP_FW_DL_STATE_NONE) + return dev_err_probe(dev, -EPERM, "Firmware version not supported\n"); + + ret =3D ssp_initialize_mcu(data); + if (ret < 0) + return dev_err_probe(dev, ret, "Initialize_mcu failed\n"); =20 /* * Managed shutdown action for the SSP device lifecycle. --=20 2.34.1 From nobody Sun Jun 14 20:10:17 2026 Received: from mail-pf1-f180.google.com (mail-pf1-f180.google.com [209.85.210.180]) (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 050FF282F3D for ; Sun, 26 Apr 2026 09:18:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777195081; cv=none; b=Z189PEUaAjRb8egac6OBgLa4JdgFBXbAjzIVfFDNQ0qVPezNys4sWCiLXL18w8nSyjbLpCQdiohiO5JK/IZjeshxw4HHN+0/06TnH0FYodDEDbZAczwgm8wEpfR8bhxzLqS/dwDp2v7r8TnS4TyEuAL1HluRDvvwPBbnXTgtaDk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777195081; c=relaxed/simple; bh=oEBXgj2AK10Nj+bseAhxv0IPtj/BYxJP8djzcBoJ6+Q=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=L31vIvP8OXrdUDVP38ZB4Ja8SRkS5t6qz+LBElJ7Zl0SpYOwzdRqvJlzJHaiHm1m+8FdcS3v581K/cnWVcCtkCMm2/f2tXOkru6Sa0ohD1H0PqtHmpPK7xfCJOcPnHtn2l+6JbD0qDmBwWs8jx1aZtM3tO4/U7Tyc/sz5G85DxY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ohtXgHFR; arc=none smtp.client-ip=209.85.210.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ohtXgHFR" Received: by mail-pf1-f180.google.com with SMTP id d2e1a72fcca58-82f8892d4d6so3989696b3a.0 for ; Sun, 26 Apr 2026 02:18:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777195079; x=1777799879; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=n/+x1NdsI6gqAesdJtZv8kaE6DjjhQ2mtExUzBuE6l8=; b=ohtXgHFRbwpPksGJUW53C5wgbJxpbAJCAnSWoKIB1YSEVkC7FQ6p4wGvx6bJ7T4IDJ m/NJGD0dMPNvdBpfzYkIYVOmzQrTnhceXY2CQRlJvw9Bpv4XrnWXHdpOEc/QgZBhE1Nt pSsw/EDUFOVAHZsDwyHYYrBg1V36LKZrfCkHzmZZ0tAXEberb2dmX6XsnzRWaubriICH 9b8sAPYygMBx2SiWwSmBfwvKZjrig11ePnfFKNMrh6AmPLSXBurf6dNnr6ujHb1OZfLt evaNsApf4Sk6vi26WFEXvOe+y6j/59FwAtJQFsd08+jcZb3FogEV4ylXoXqdZwfzlPLZ uKzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777195079; x=1777799879; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=n/+x1NdsI6gqAesdJtZv8kaE6DjjhQ2mtExUzBuE6l8=; b=ey34QX8pfGmvx3RDToyqcScJMRQOTNMmru5s6XuhTONJwJV9BO/0wuONZp9QW7RIDq 8qgM58RGxluU5JvY7frNDqY/CFco9iqn/cy3Ivem+iBTj/p5OLb8iPRYWlBZuvXWSpsR SuixbyLifDchN1X3DIr+8voNAqzwpxuK5mKI+FB4ocqTmOg3SHKu9PUQGkawwGfJuQ9R Tbs9fyWhk/3N4DN1CR1uvG0Pa3NPmPoN99L0OddBDV6q1muVqtg1VCa/Q98/LYAuCiKZ ne7yI0OYNZjEfcFioP6FrAFa3CZ3khqvJnpe8r3bm0JwbmCDpIjXPUiv5fRoH8EIdbyF NFtQ== X-Forwarded-Encrypted: i=1; AFNElJ+0f0ri9bujNG+gMi4y/drJ5BlFRZH1uyzYZURHGVBzDbPuto0mXa34bJne3FWZbVKivcAi7pYeWkGkyoQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzXHy3kJFn5bb5VMtzJBIlqv9XinTpCLI577SID74BVEmQSoM7F mJRLAAwHp8iueqySVlDG+993smrK4jGhU85J53npkxKa1X/w85JtY4+k X-Gm-Gg: AeBDiesJCssxXJUG8RbayCJFIAvtty4qZ1rPShUgCr1JjdVpzQ/ZX8dVf+Dy6DoG3bP juWIxqEvOTUjOmxx3V76m29zxqThUbpwc3jL1P/nsV+c4YFO20u87f2Y6JP1WLO7SsUasx5ILG4 pKU0HqbGTOoG3kKr4GLcsAqvphWR6J8qDeMhMpspwQPzNjvcaH2mJ6361ywMeaNcw9b9xQo2Dyt EamFInGv+lCYSlTt2I5fXwAZSyUdsxfU71zEQ8ZO/w/5GuecdzHRnviPK31nHfVcbJ02oxmU/gR 44LQI3VUzb9ulEsWiivwwLwTE/SIcPdq0H7QLzC/hIO3jzmb2U26oMijAaZKb72+bMLHU4x7OFe KszZ4y528qguA1m4p9dWOqcAIedRb+9AIR971p5CWFFgEfpfboLJ7CNk2d2CwSppdtqGFho6ASS e6R8aZMYnACRMx9F/XMcxN8TlK04SLQTbrLdVW5JU2Yn94vKNyiMI0M8D2TZY= X-Received: by 2002:a05:6a00:3492:b0:82f:1d38:f68d with SMTP id d2e1a72fcca58-82f8c8df5e1mr44757491b3a.34.1777195079480; Sun, 26 Apr 2026 02:17:59 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f8e982fd3sm36145226b3a.10.2026.04.26.02.17.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 02:17:59 -0700 (PDT) From: Sanjay Chitroda X-Google-Original-From: Sanjay Chitroda To: jic23@kernel.org Cc: dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, sanjayembeddedse@gmail.com, mingo@kernel.org, christophe.jaillet@wanadoo.fr, nabijaczleweli@nabijaczleweli.xyz, kees@kernel.org, kyungmin.park@samsung.com, k.wrona@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 9/9] iio: ssp_sensors: reuse embedded RX buffer for SPI transfers Date: Sun, 26 Apr 2026 14:47:10 +0530 Message-Id: <20260426091710.3722035-10-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260426091710.3722035-1-sanjayembedded@gmail.com> References: <20260426091710.3722035-1-sanjayembedded@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Sanjay Chitroda Avoid allocating a temporary DMA buffer in the interrupt context when handling hub-to-AP and AP-to-hub SPI write messages. Replace the dynamically allocated RX buffer with a fixed-size, preallocated buffer embedded in the driver structure and reused for all SPI receive operations. This removes memory allocation from the IRQ path, simplifies lifetime management. Signed-off-by: Sanjay Chitroda --- Changes in v6: - Replace dynamically allocated RX buffer with embedded fixed-size buffer - Fix struct layout to satisfy DMA alignment constraints comment from David - v5 change: https://lore.kernel.org/all/20260406080852.2727453-6-sanjayemb= edded@gmail.com/ Changes in v5: - Rebase change on top of latest v5 patch series. Changes in v4: - Use preallocated buffer and stash a buffer that gets reused each time ins= tead of a fresh allocation. - v3 change: https://lore.kernel.org/all/20260315125509.857195-3-sanjayembe= dded@gmail.com/ Changes in v3: - prepare series to have all respective cleanup API support for the ssp_sen= sors following input from Andy Shevchenko - v2 change: https://lore.kernel.org/all/20260311174151.3441429-1-sanjayemb= edded@gmail.com/ Changes in v2: - split series to individual patch - address review comment from Andy Shevchenko - v1 change: https://lore.kernel.org/all/20260310200513.2162018-3-sanjayemb= edded@gmail.com/ --- drivers/iio/common/ssp_sensors/ssp.h | 3 +++ drivers/iio/common/ssp_sensors/ssp_spi.c | 20 ++------------------ 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/drivers/iio/common/ssp_sensors/ssp.h b/drivers/iio/common/ssp_= sensors/ssp.h index f649cdecc277..8295bb7062a3 100644 --- a/drivers/iio/common/ssp_sensors/ssp.h +++ b/drivers/iio/common/ssp_sensors/ssp.h @@ -174,6 +174,7 @@ struct ssp_sensorhub_info { * @pending_list: pending list for messages queued to be sent/read * @sensor_devs: registered IIO devices table * @enable_refcount: enable reference count for wdt (watchdog timer) + * @rx_buf: buffer to receive SPI data * @header_buffer: cache aligned buffer for packet header */ struct ssp_data { @@ -221,6 +222,8 @@ struct ssp_data { struct iio_dev *sensor_devs[SSP_SENSOR_MAX]; atomic_t enable_refcount; =20 + u8 rx_buf[SSP_DATA_PACKET_SIZE]; + __le16 header_buffer[SSP_HEADER_BUFFER_SIZE / sizeof(__le16)] __aligned(I= IO_DMA_MINALIGN); }; =20 diff --git a/drivers/iio/common/ssp_sensors/ssp_spi.c b/drivers/iio/common/= ssp_sensors/ssp_spi.c index 870214551f0b..e41da88bf96d 100644 --- a/drivers/iio/common/ssp_sensors/ssp_spi.c +++ b/drivers/iio/common/ssp_sensors/ssp_spi.c @@ -339,7 +339,7 @@ static int ssp_parse_dataframe(struct ssp_data *data, c= har *dataframe, int len) /* threaded irq */ int ssp_irq_msg(struct ssp_data *data) { - char *buffer; + char *buffer =3D data->rx_buf; u8 msg_type; int ret; u16 length, msg_options; @@ -383,19 +383,12 @@ int ssp_irq_msg(struct ssp_data *data) * but the slave should not send such ones - it is to * check but let's handle this */ - buffer =3D kmalloc(length, GFP_KERNEL | GFP_DMA); - if (!buffer) { - ret =3D -ENOMEM; - goto _unlock; - } =20 /* got dead packet so it is always an error */ ret =3D spi_read(data->spi, buffer, length); if (ret >=3D 0) ret =3D -EPROTO; =20 - kfree(buffer); - dev_err(SSP_DEV, "No match error %x\n", msg_options); =20 @@ -428,22 +421,13 @@ int ssp_irq_msg(struct ssp_data *data) mutex_unlock(&data->pending_lock); break; case SSP_HUB2AP_WRITE: - buffer =3D kzalloc(length, GFP_KERNEL | GFP_DMA); - if (!buffer) - return -ENOMEM; - ret =3D spi_read(data->spi, buffer, length); if (ret < 0) { dev_err(SSP_DEV, "spi read fail\n"); - kfree(buffer); break; } =20 - ret =3D ssp_parse_dataframe(data, buffer, length); - - kfree(buffer); - break; - + return ssp_parse_dataframe(data, buffer, length); default: dev_err(SSP_DEV, "unknown msg type\n"); return -EPROTO; --=20 2.34.1