From nobody Mon May 25 08:10:49 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 493CC3DDDD7 for ; Fri, 15 May 2026 17:40:29 +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=1778866830; cv=none; b=IQC+B70QImrxrxl71B+K4w7ILd4K7EwvYXTrOacOH0lFPeRJAW4jeODZKLNxxNgDMCbgFMHkiyKOR/HhguWVHlfCM8C4TLat5qkQLkhnzcsPirTGTPSvQZ7wsQuNP25/6u5MWXk5xZAOS5Kvt7lfkQktbGjmjuluB+O8LiZqwJc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866830; c=relaxed/simple; bh=xAFbynpKTVh6Vw7bXMrdyHnb0DdWHbz9KtRRo6HUdUA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=gYsDmubeT88GdiE05MBN2h9DyRn7gAod6e6esZk3SF6zBCfKvqmXt1YvKOs+OYGvBFiq97zs9jy1FyWP2Paa95P0B7WyQFHhwCes/0MfTKanOOHuxQW+3XsHS4eazT8dXjeB7+BZ+rCPvqJVA2lAz9AdBi75FLoFeNYtyV2PB6M= 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=eTuePMTl; 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="eTuePMTl" Received: by mail-pf1-f175.google.com with SMTP id d2e1a72fcca58-835c98b659eso108841b3a.0 for ; Fri, 15 May 2026 10:40:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778866828; x=1779471628; 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=eTuePMTl6jvkqQ072wspk7h84eq+VpotdBf+Awm4lm805OWL07s3xzbk3bqdp8S93N WPo+w38MLvWAwseT8KDhFS2u1yl/AfO8ifI5nB17Zzl4DAx7E6veBm3B34tvSpKW+fd0 B7ip/MC5kFMwMiJkIvR0zPfaW3EH13C3b9oJO/Y9a08B9sQ49UDkN+d6RO9f8ou4mmli jY0qXZqiiPn69inC1Db+ubvsC8QELpZjG64fWFAhKrR9sPQeachv97bbmNi+0batJRwF sYrlsv/rIB3dgpbaFjGv/Dnu8DwP17/vtJBMPqH2QTJx6L6DsbRzjyKdV50K+bVu4EQJ 4+lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778866828; x=1779471628; 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=RQMG26NUMxhcw0drbbKyvYSs715PZbeI0SOo8s7m4zbwMZ3o0QQJ21r0EUmAJGfh8b 8s6sbkekDsXqCaFEHZWZuPxryINI2xIXYqWxbG7lVNdZlwjnFCpVhMQpo2RiTs0yngHm BacO2Y7JWAgXBqWogNFW91hpVK+LbHd1faLl9bUD8Zh8l/FUblatlLoC7OrEb9pvg3Od wcu1TbJUzR52wCK1rfSe63QQtJSjt69WCb+3BfO62zfHqnOSteYkWVZqzcd0L9H+qSt+ IHDuRZWx60y+gZE6xp/VIfelGAi3fBVJbCdw64Sfm7dwsZ/h9EMJFd6wk4G9bxg3P6Dq Npmw== X-Forwarded-Encrypted: i=1; AFNElJ/FzQ3vTR/L553HKqZCizSAdm/hTU7r9J4kiUG+YIO41z5akEudG34ay+Ytwc75zyHDj5/SqsFu9g18ErQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzVuPMPNcIysxEwUpHSUIxrGaVOEgu5ajQnjOVWOMa34AQszzSP mKau6Qsiu/TB5J7wGedDwxR5v56pEp0y4/irl6KRqhc1DWOiAnMhrlLP X-Gm-Gg: Acq92OEe4Be0rgsofg3KNNYWgQ1YGFE0cYWtceq5XoiGpnvU8JwQsOfQZJIWxmy+hVp gghfigQcN7Rluc361TUuaGoMqCISbyqKYNZcQhcuVIy8WGiVcCBOmatMMR9NxklvR5sA9VRKZ69 2ikKVixi4UQ5huaZbka/BSYmnXagrF+aw4sOP8xIokZbueykylloeJIXtSW91ZpF6QjdLg/s6pN /DDGeBayl6mQ41iW2DfN2yl46iYjOfVvIvxRulvYcrnvY2j8q3iiL0RunP6BCA4OlpCYl+S3jgp SiGLpeAUKsZAnuBFrvkJcXk/cSVwKfOFU8Q4HUGSWyOZgoMeyqCPTgvkttKb7+f/xV+VqjbBSzv Cw7yr2gn9ENkKRWCxO5AOcMEaBA4+9gZGnwpvcsyD5TKmCiPB0HdYH7dqZdSvQhwI3dO41jiu4H 4P0xJo8j3//zw1ODRuWUcxqMnjOHu2B5Dg7CzGNJ07FYEaLPCM X-Received: by 2002:a05:6a00:94f9:b0:835:45bf:9660 with SMTP id d2e1a72fcca58-83f33df29e4mr6181616b3a.42.1778866828495; Fri, 15 May 2026 10:40:28 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83f2875f0fbsm5579034b3a.57.2026.05.15.10.40.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 10:40:28 -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, tglx@kernel.org, christophe.jaillet@wanadoo.fr, mingo@kernel.org, kees@kernel.org, nabijaczleweli@nabijaczleweli.xyz, kyungmin.park@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 01/12] iio: ssp_sensors: cancel delayed work_refresh on remove Date: Fri, 15 May 2026 23:10:06 +0530 Message-Id: <20260515174017.3962168-2-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260515174017.3962168-1-sanjayembedded@gmail.com> References: <20260515174017.3962168-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 Mon May 25 08:10:49 2026 Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) (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 E638A3E832E for ; Fri, 15 May 2026 17:40:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866835; cv=none; b=McwzZXLIxStnmq7VGfoKfgn/o0BcOSlGuhFBQo5TGnOH5y3pVcRWRmBxgcmokgBwzRFrNZJfmoLLE/AGOZMpHkdHXo4f5RiQoxShTXm0MDBvDcq7qW+43ZQNp3mlBCXCF9r3sD0om3jSy1qMiSCrMUyzjnrHpAaJXPoW52dAY10= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866835; c=relaxed/simple; bh=RN/vwHhek3NUO7D/PWN0qaSY9GTno4kjz7JVIMu0VeM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=bYCGeqzLTMxW1XErhCoAc99m2NxVck6DR6gFutEM3Z6RLZPTuLSrywaaHzaGejK0KgoJOfcvU8QaOuI7XvhlrdfUerUaTvZJOtOQHmZjaE+2MQWs5VKd9MTDTUoXyujJHV38V6XyX2+KJw1Jn2b5vbRSI+4s1Wqtsa8v1lpy0LI= 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=Y7Ac3EJT; arc=none smtp.client-ip=209.85.210.181 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="Y7Ac3EJT" Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-82f8893bff3so55644b3a.2 for ; Fri, 15 May 2026 10:40:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778866833; x=1779471633; 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=C2Fwa3o4kXuuMSCYHAiMYt+UOUcR4mq7OdjkF9wTUSg=; b=Y7Ac3EJTCafgeTc8cQkcPgfU6Sw+7XDYuTxlDyZ39jwLEl7rNcu5pwjeCgXai9Z1Np DMOttaEW74pDqbJTyruyRQLU6IcHUrgTlwT53aBGiY6zQ3oCkK9Y0637/0nh/3glcQVH kgDDA7Oitzhbxiv7BDGYW8rK/z0BvIOFr573lOOxZMlW0mze/0VxsK7/Xt8YVKJTL9m1 vrUps7aNy0W4tJ2Yr2Mk8OL4xxPcaFbIroenlN10p58yx1V65Sw1HjY/QSdc2m6WSsUm l2GM8fhKQPsTZdubLc1rphp+DnJdcgYrpxRKHbgfo5aH6zY/GbT1r/WOd/ICIkrEnqAR v+BA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778866833; x=1779471633; 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=C2Fwa3o4kXuuMSCYHAiMYt+UOUcR4mq7OdjkF9wTUSg=; b=EegwzAS8wf09bH1vVpAHMDSDZpK+nOmMSGE8D3MV6tlZcZkroyBfd6KYdVP462kZoc Ztl8I5Wf3XPkwbN+UqvMdf7A4r4nwC1XqjsJaoIPtQ7dMgAXQzs/Nq+WxVcUThvJbhmr pcJ3+1gmXOtwBoKv/6NUm3714ccHEdftese0Hsy128X4uFLS/p94AO+uYEMf874wEWg2 GML6cdH617dMR3NsUg7ff0+t26nVansZ/xdK9mfULSJI1B+gMD+00GSIsEAymT+Uul42 gJE867cdcmfudYKTu/OIavGdeNRAPKusZPOUljRRZ+AAj80skfru/KF4znZQopRHXAON QdjQ== X-Forwarded-Encrypted: i=1; AFNElJ/2LCmoh56Te9ks6LsJiQxSu4EwmNgxyYCzYm2xL4EQ7B13RrQmCVq4aQECpPNABGBhn1SKKXBtYvqZNBg=@vger.kernel.org X-Gm-Message-State: AOJu0Yz91ueMtvdYvX+SDXWaowpggr7kmD+i3IFpukfnV8nUWbGjpW35 eFrEnthZioJ2SwivXoMMwrUWHyrO9c6P8nXJjtzKMOeSmkWk1iuz8nO/ X-Gm-Gg: Acq92OGpaE7jTacgJgxm5owsWHbJ911aE9CqmTNcfWNypjuyqvL+JR/UsIgGm0zqU39 GcSSb3NKz//UM0JjUHFUnS5Q7AWm9YQ/xRQncLQpjyERpM3FFCW2i9Qn8MpS8qd+n9R6Q1Ck6yx XtDIJ2ZCULBR9614cb0GWb79XskQPYt8GGA/5PQgfVsIwc1Y1/xMFPXKRqF3oLa8Al7TlZ9YQiz GgBxc5iGe1dpDQN/y3OlKXB9qylHr2CToF0HbZwhq8ZXPFeCumoW82XJq2FmQRQfof8kkMbRAdP G6qB11ebHDIoUY8FHSk4SlYsOKaMFMKzBZWBZG7vFolyn5xPqG+izGhXwNA+2Oey5m8fBCFh9az eXClS6jIDMY1BQ7UijE3Y7wX2anGdFpt1AQtACBq1ehfJPDmszueyES+RXvAzIE4amFiL4UmLEp M3kyBiUH/5RotUxLaODVK9GmVk8exSFK3q4NoJu25qOazyT1B9 X-Received: by 2002:a05:6a00:88e:b0:829:7e6d:cf22 with SMTP id d2e1a72fcca58-83f33dbe4famr5056871b3a.43.1778866832998; Fri, 15 May 2026 10:40:32 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83f2875f0fbsm5579034b3a.57.2026.05.15.10.40.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 10:40:32 -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, tglx@kernel.org, christophe.jaillet@wanadoo.fr, mingo@kernel.org, kees@kernel.org, nabijaczleweli@nabijaczleweli.xyz, kyungmin.park@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 02/12] iio: ssp_sensors: factor out pending list add/remove helpers Date: Fri, 15 May 2026 23:10:07 +0530 Message-Id: <20260515174017.3962168-3-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260515174017.3962168-1-sanjayembedded@gmail.com> References: <20260515174017.3962168-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, open-coding the same locking and list operations. Refactor the pending list add and remove logic into helper functions. This reduces duplication and simplifies the transfer flow by centralizing the pending list handling. No functional change intended. Signed-off-by: Sanjay Chitroda Suggested-by: Andy Shevchenko Reviewed-by: Andy Shevchenko --- Changes in v8: - Following discussion with Andy and Jonathan, handle the flag and have preparatory changes for subfunction help of critical section - v7 change: https://lore.kernel.org/all/20260426091710.3722035-3-sanjayemb= edded@gmail.com/ 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 | 50 ++++++++++++++---------- 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/drivers/iio/common/ssp_sensors/ssp_spi.c b/drivers/iio/common/= ssp_sensors/ssp_spi.c index 08ed92859be0..3d377a482161 100644 --- a/drivers/iio/common/ssp_sensors/ssp_spi.c +++ b/drivers/iio/common/ssp_sensors/ssp_spi.c @@ -174,6 +174,28 @@ static int ssp_check_lines(struct ssp_data *data, bool= state) return 0; } =20 +static inline void ssp_pending_add(struct ssp_data *data, struct ssp_msg *= msg, + bool no_irq) +{ + if (no_irq) + 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, + bool no_irq) +{ + if (no_irq) + 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) { @@ -202,35 +224,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, use_no_irq); =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, use_no_irq); 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 (!use_no_irq && done && + !wait_for_completion_timeout(done, msecs_to_jiffies(timeout))) { + ssp_pending_del(data, msg, use_no_irq); =20 - data->timeout_cnt++; - return -ETIMEDOUT; - } + data->timeout_cnt++; + return -ETIMEDOUT; + } =20 return 0; =20 --=20 2.34.1 From nobody Mon May 25 08:10:49 2026 Received: from mail-pf1-f177.google.com (mail-pf1-f177.google.com [209.85.210.177]) (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 536423E834B for ; Fri, 15 May 2026 17:40:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866839; cv=none; b=eHuhCVAJKRhXbrZN1Jqt/Yg5e8gREceX2cjr9H8U+60Igvw1oMBR8kQkblm75QJP1cUw2Qe/H2tI+JA+cx9/VMzdOhQFQmYKVtPuBBnOphxna1LWQoaafYVkpVYTd5xgGapR0sPyW+zqtww8Wswqq8CGHt9141Ah7Qvy/L3y7Ek= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866839; c=relaxed/simple; bh=vUNSUQJ2vSW/5TNiCAc3VZ2D/GxuOb+QHqUWQE4SluI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=DvMnwjKOA2SX+vjFCkW7C28wPbwDiRXN0UrHXYgh3kEuEnIzUhZgPFFn8seJEZ4NrFRd66ZBbxkMSir96BurqDMR3ZeBEsuez6bHXnKmtkzxY6BqSYOS4OMBDnj0RxfivxnBeSreZx1/XWBUqzu/fIDsPjLRhc2NcxLajqOtsLo= 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=dB16fdow; arc=none smtp.client-ip=209.85.210.177 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="dB16fdow" Received: by mail-pf1-f177.google.com with SMTP id d2e1a72fcca58-82748257f5fso872795b3a.1 for ; Fri, 15 May 2026 10:40:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778866837; x=1779471637; 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=oD4ghlSzEM0XpzQLkuHFPVSH8xE4TvBhIbAIWqVBMCw=; b=dB16fdowP5S8zvRHJO/bOZdlfhcc0jYXycbFrUt8MuzaTZRc8Escv3p4eQZA+o/lQc kV02zMXRMOW+E6Y/Q5nTOM1tUWM7csU+mqqIM3QedzmF8XVPn3DX6jFsY+/PQu4RHJJ2 7BEx2pCOT76mIoLtga5wSApk+6iBzkvG94H1PXuFUowhkYf9wz84WrV+DV2d8BA90UWl IJtE8bbD78mP7GDH6YCk7xJWyEXpwKNcaJBj7IK3TWvv54yyNn1CXI5Fi4Fy5IZVASEB O19Di4zq5AHgfohoevHT0HlBeWY9P0sYjBH8R1JsHvfLIAO4YoaFTQ2mWqAlgbxrm7ZG YI1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778866837; x=1779471637; 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=oD4ghlSzEM0XpzQLkuHFPVSH8xE4TvBhIbAIWqVBMCw=; b=iYpuPeeVNaDFsuEC9leW8vP9/nOYmjr0hH0lsQ54QRWkRw0ST445R1urQSczEghRyf HthePC/Atwg0lPPiENUK+buD/Gw8X5yS8JfnmgxAz/xxJ+POMEAj+BqlSnMnRhm4Ar/5 uGyQH865shQIXM0cFQkigFPwVqadPhvefsF5We+urL291M1QSlQRL8qajlGCwGta7O3q pEAfz7GZ9tH/2U9HRHeU4zQJ3Z7uIyqzv6GLkbZQPq+Egt0GdwS0g3Fr7nBa/Is1i/IX vLAYDx70Tu7SDADDMQ+6zOsG5lcBSNLwiGkmvU4e1SATfVwm2n1Udcrjh/cNh91Q68nA HnqQ== X-Forwarded-Encrypted: i=1; AFNElJ8jg0TpBi1Vu74m+En2IZjZnwlyJ2C48AKlaxaUP5upT81ctajs179/ElAgtvzVbiX83dh/JZcvY3pKQ7Y=@vger.kernel.org X-Gm-Message-State: AOJu0Yzd/oPKPcjO4OTzPNIwVDm7DT8oaFmGdgY5Wv3cPMUW2UDvJV6+ HPPVo0c8/rpb5y056zctgRaA8fOW17s7btv30o80pFWkqGAXaVeXCs2P X-Gm-Gg: Acq92OG5OtyCPbypHSWldMQizTNTPnqsfYtXCPTuqcoWtBo/Lz1oeMUMziFMKs7uat0 eqx2yvLIe2nxqgfEl2Ucya+M4xl/NewBr3miCFXdpS4I6xCUjllAAxTKtxX9tESCnZB9go2SbFw tPbxJx3LvPYhWVYYguH41sIWoMWdEW5nShtXdPW1Q86VyAmbytMfN5jufqRyA+WljQUV453YUZ3 78/k4CQwLDb3jsAcr4hff58z9use5JbJ3hsNJOrXSih4xTkMG6TdC7+7YycGyfrKmL9wlYtFYVN 5p2lFE0NndpbJOfj2e0bohbZ2oLT6gBjI1IKISCw0IEGq5TEESD4OdqpeWyBuqQxXf1btKWU8rP sVFnKZWTF0N9TL5kH6Ze0v/4IEvaajPfv0+5bPS39s3wycKVD/aJGIf4gSUcu5289ppLk1O286C /NxNq6pqY+N7zFQa5hBgFn7Xatfepog3JSrnU52yuXnt9F8Vhm X-Received: by 2002:a05:6a00:ace:b0:829:6f7d:3086 with SMTP id d2e1a72fcca58-83f33b62df1mr4199988b3a.11.1778866837486; Fri, 15 May 2026 10:40:37 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83f2875f0fbsm5579034b3a.57.2026.05.15.10.40.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 10:40:37 -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, tglx@kernel.org, christophe.jaillet@wanadoo.fr, mingo@kernel.org, kees@kernel.org, nabijaczleweli@nabijaczleweli.xyz, kyungmin.park@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 03/12] iio: ssp_sensors: refactor transfer logic into helper Date: Fri, 15 May 2026 23:10:08 +0530 Message-Id: <20260515174017.3962168-4-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260515174017.3962168-1-sanjayembedded@gmail.com> References: <20260515174017.3962168-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 Extract the core transfer logic under comm_lock into a new __ssp_do_transfer() helper. The change is preparatory for converting mutex usage to guard() helpers in subsequent patches. This restructuring simplifies ssp_do_transfer() and makes the transfer flow easier to follow. No functional change intended. Signed-off-by: Sanjay Chitroda --- drivers/iio/common/ssp_sensors/ssp_spi.c | 50 +++++++++++++++--------- 1 file changed, 32 insertions(+), 18 deletions(-) diff --git a/drivers/iio/common/ssp_sensors/ssp_spi.c b/drivers/iio/common/= ssp_sensors/ssp_spi.c index 3d377a482161..ebcda6de56c4 100644 --- a/drivers/iio/common/ssp_sensors/ssp_spi.c +++ b/drivers/iio/common/ssp_sensors/ssp_spi.c @@ -196,20 +196,13 @@ static inline void ssp_pending_del(struct ssp_data *d= ata, struct ssp_msg *msg, mutex_unlock(&data->pending_lock); } =20 -static int ssp_do_transfer(struct ssp_data *data, struct ssp_msg *msg, - struct completion *done, int timeout) +static int __ssp_do_transfer(struct ssp_data *data, struct ssp_msg *msg, + bool no_irq) { 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; - - msg->done =3D done; + /* msg->done must be initialized by caller */ + WARN_ON(!msg->done); =20 mutex_lock(&data->comm_lock); =20 @@ -224,15 +217,41 @@ static int ssp_do_transfer(struct ssp_data *data, str= uct ssp_msg *msg, goto _error_locked; } =20 - ssp_pending_add(data, msg, use_no_irq); + ssp_pending_add(data, msg, no_irq); =20 status =3D ssp_check_lines(data, true); if (status < 0) { - ssp_pending_del(data, msg, use_no_irq); + ssp_pending_del(data, msg, no_irq); goto _error_locked; } =20 mutex_unlock(&data->comm_lock); + return 0; + +_error_locked: + mutex_unlock(&data->comm_lock); + data->timeout_cnt++; + return status; +} + +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; + + if (data->shut_down) + return -EPERM; + + msg->done =3D done; + + status =3D __ssp_do_transfer(data, msg, use_no_irq); + if (status < 0) + return status; =20 if (!use_no_irq && done && !wait_for_completion_timeout(done, msecs_to_jiffies(timeout))) { @@ -243,11 +262,6 @@ static int ssp_do_transfer(struct ssp_data *data, stru= ct ssp_msg *msg, } =20 return 0; - -_error_locked: - mutex_unlock(&data->comm_lock); - data->timeout_cnt++; - return status; } =20 static inline int ssp_spi_sync_command(struct ssp_data *data, --=20 2.34.1 From nobody Mon May 25 08:10:50 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 C80D63F39C8 for ; Fri, 15 May 2026 17:40:42 +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=1778866844; cv=none; b=Y2CuCoZM2gThrz6Sal6cmH6Qv3UxvfFgQG161MyXsY3Lc95dsO70T9fgNVlxXIeCsgmFoAcbyUkdbX6n4Q6tnQwlchncxpR15xxIYvdmEgPVibGGbSxK6R3dF3ucUtIKfJzJ6UH2Ie2UOw3uXcZ6L+A7/c3OFdNbSc54uP22nNE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866844; c=relaxed/simple; bh=YI085fm37/ypf/0BfgnyWYfjlnTlCAzVT3T4Drtf7HI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=uO8jvPTVFOHSZ9PpozZaG6xz+oyCHhnrYdzEUbXv0vYPqtY8soPdc4OidT+qhwHZxo+ApAoVAc/NePg47XPnn5H+wnUVaZ4cNbjiA9yew8L35hZhugecWpKosanYeF57GU5fGVb9bHvqjBc8hHPM9H2acFzP37xvclftYznlkbA= 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=oEFPWXwy; 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="oEFPWXwy" Received: by mail-pf1-f175.google.com with SMTP id d2e1a72fcca58-83ea84df1d0so51299b3a.2 for ; Fri, 15 May 2026 10:40:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778866842; x=1779471642; 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=0kNSilLvGuFX4bD2pG7PVn8FSSIgnqfPybpOGUR9Wlw=; b=oEFPWXwyltXVz4hs47KwsDBtw+0Ljc6/SC5m/fUWwWI9ZuCa6MqcvHdaA3mabWIS4W ZchRDGg5Is00n3qrTXSNvZGJNj7IWNjPTv8S3RlqjUHIbjSu0VyoUwImUT3AqwA/jywG 16QfpY7d3CUSOorq/UaIIdal0jBwwwJv7nvO8W3c48Pyv7xYFUWJVWVMkGZlnxnPB2G9 dXDnu20yC6FRF4+kj+f2UMoza3VUOpudjC1lUKIPVAnRRq3CP1KsiYBA4allgZnK3y/S 9YqQVhVrg7DMpwsmmdDQBwBAaNRy5pjXpkOqLW/8tWfc7M1sYSteDF+E6g8atIrRVj9r KGng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778866842; x=1779471642; 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=0kNSilLvGuFX4bD2pG7PVn8FSSIgnqfPybpOGUR9Wlw=; b=AZ97KIQJ6+8+TYSOHRS/1FKZsFTWu1R2tljKlyTITlTg3EPB+YIZPLBUS/zEGLQEq7 EQ9u3n3lc+ubk7DltWOejdryjcCGfoV39DdMyAn3At4f/MBplsCjyRo4vVG5i1EfnsZT Ik7yy9Q4BPk2ox5XTNG2BEFESs/RvWHyP+fZtVRAd3S+o4pVKBbgltvrWakGc4k4nHfD Csez/pSYTjhEn6uno1gri/RP50O/zBPcqkQh4erHPgofx6/Vj0eAKgB7duTxcTkhaaA9 lnVlIyZZuXWfRY8qnTmbm5ldnmj7yjyGyGD/4jd0JxWhBaP05natBm7wLLVhK2K42pe3 WPsg== X-Forwarded-Encrypted: i=1; AFNElJ8Wb3Zo5KE/hI7upilClozeNNgLEZ/hhKAOQYS7Pt19+ZO8uttigj1GEUouw5pK0/SUSnTZs3+yaQ2McUM=@vger.kernel.org X-Gm-Message-State: AOJu0YxT7lYmLxD9qOXTSn8MDaTIhjq7OvJcw+AwzeA1e+BT2+LvcXtO CJnoIHe0LkSaEDJa2aL5MNRWmN+BmJsm38i1/VxU7e84IhuezfxDblIV X-Gm-Gg: Acq92OGvVHWFKuf2pBsYdoaX5D50VBH2npqP3/jooa843qHmunIdqLenv2n5Nb4Jz2+ upJqtABAhP0SWf3SUmS9LoOXrWOFAQ4NNuA1DlXL4RtsEJPTWv7CZ+onQXFrbjZc5xswYBX01I/ zGtlHsm66geOalTzgptrcdBMth2KQEn4GSGJz6KJBs+T4jH26PdmAWdA2glLCUTZgWYtgJcn51W m+G0c+52aVDnIbvoyqDgjPOFUBsxiB3zg6/93ZjEoThfvh0tefpwOj/YE0kUD87Asn8xNmfvrup PSWPwSXx8Zj+IIw1QaszlepgSHxpjAOjFeveYxsJkWWD88HpPxhffhhAOJp4Wk9XWVfm8ZNhhYS 0CuWlB/YUbYZs/fvjFMoAUSwxmzm5h7FdOQiP6zuylJz+6Npt7thMkbN4J21FMZy91/96ZAPOf3 ymHdKKvKsNIqD5kYSRkCM+R2XlII1Zi5HDXAECweO0ty5lRKkh X-Received: by 2002:a05:6a00:ad5:b0:823:cbb:a484 with SMTP id d2e1a72fcca58-83f33cbf6abmr5447942b3a.14.1778866842002; Fri, 15 May 2026 10:40:42 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83f2875f0fbsm5579034b3a.57.2026.05.15.10.40.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 10:40:41 -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, tglx@kernel.org, christophe.jaillet@wanadoo.fr, mingo@kernel.org, kees@kernel.org, nabijaczleweli@nabijaczleweli.xyz, kyungmin.park@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 04/12] iio: ssp_sensors: factor out MCU enable/disable helpers Date: Fri, 15 May 2026 23:10:09 +0530 Message-Id: <20260515174017.3962168-5-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260515174017.3962168-1-sanjayembedded@gmail.com> References: <20260515174017.3962168-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 Refactor the MCU enable and disable logic into small helper functions. This simplifies the control flow and improves readability. No functional change intended. Signed-off-by: Sanjay Chitroda --- Changes in v8: - Following comment from Jonathan, split function to have separate changes for each small helper function and demote the log level - v7 change: https://lore.kernel.org/all/20260426091710.3722035-5-sanjayemb= edded@gmail.com/ --- drivers/iio/common/ssp_sensors/ssp_dev.c | 43 +++++++++++++----------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/= ssp_sensors/ssp_dev.c index 51730dae5871..4280eb590c03 100644 --- a/drivers/iio/common/ssp_sensors/ssp_dev.c +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c @@ -89,23 +89,28 @@ static void ssp_sync_available_sensors(struct ssp_data = *data) "SSP_MSG2SSP_AP_MCU_SET_DUMPMODE failed\n"); } =20 -static void ssp_enable_mcu(struct ssp_data *data, bool enable) +static void ssp_enable_mcu(struct ssp_data *data) { - dev_info(&data->spi->dev, "current shutdown =3D %d, old =3D %d\n", enable, - data->shut_down); - - if (enable && data->shut_down) { - data->shut_down =3D false; - enable_irq(data->spi->irq); - enable_irq_wake(data->spi->irq); - } else if (!enable && !data->shut_down) { - data->shut_down =3D true; - disable_irq(data->spi->irq); - disable_irq_wake(data->spi->irq); - } else { - dev_warn(&data->spi->dev, "current shutdown =3D %d, old =3D %d\n", - enable, data->shut_down); - } + dev_dbg(&data->spi->dev, "enabling MCU (was shutdown: %d)\n", data->shut_= down); + + if (!data->shut_down) + return; + + data->shut_down =3D false; + enable_irq(data->spi->irq); + enable_irq_wake(data->spi->irq); +} + +static void ssp_disable_mcu(struct ssp_data *data) +{ + dev_dbg(&data->spi->dev, "disabling MCU (was shutdown: %d)\n", data->shut= _down); + + if (data->shut_down) + return; + + data->shut_down =3D true; + disable_irq(data->spi->irq); + disable_irq_wake(data->spi->irq); } =20 /* @@ -146,10 +151,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 +589,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 Mon May 25 08:10:50 2026 Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) (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 497983F39E0 for ; Fri, 15 May 2026 17:40:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866848; cv=none; b=qzKUYnJFX4G1UL1gpX/Qmn4UKRuiMfi9pdOo7GpmQXrT5BabhiW6L090M6/Uq6mbpkn5d0IEFNsxc1QFxIVLhtmY71CpGzuAgjmkAjXSvWOYIg8idLA9XPzB5+KqoLWVxCaD7mVnmekKFHSFfJiI1gW+xbuWIf6wAMyBqWuB96M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866848; c=relaxed/simple; bh=QpOYFv8tYMRTdnNISpiGdgVYHufG68uVcQwITa5shwI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=J4Qjwx4Me2TIyb2fBzWOUtQX/V/BqOzUdvc1Glsn/ECurVTSoHMNjTY4DmEvBgx4jCgGm1gm5lrq5cW1U9uh/YS2TbEN3e5Wu4phfX+L/d6VWVIpcUoSGkHMvp++2NF1IVrSEf/FRJhWXU6yJlmUa8dsLqrlnGzEJFXyFJjZWD4= 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=LysmruCW; arc=none smtp.client-ip=209.85.210.172 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="LysmruCW" Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-82fa8d6425bso75018b3a.0 for ; Fri, 15 May 2026 10:40:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778866846; x=1779471646; 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=fcTs3eLyOIE0l5GPVRit0A4+HMRVxCXis7Msp6YvA7k=; b=LysmruCWLLA+qeUSFHWT3o8XBjJYByrhpoRtqpxx5eV3mpG8Na61N9NWiA68QVUP0k u+SnKMZv2F6mGeVJVIxUSJ4fzyotGhMm70br/l8k9GqkYsMC7/pcXj9nO41m4GeFP8ar 1tgy/Yh/MQBlrWYHXJqxfrTkeyatne8783CjDV969FW3IhjEZ+2S6EYYPjHAah3z22AE 6uC1r0cwUneqYwvbIsAUZU78d4wnWCqGxQ29+i2CfC85/Wy9Y94M24UmNdUYqeciBmhx +chXlfs0IeDo6YBi7BwnW0iH9qDyKTbrv+Cmngrmn715V4pta8fyzGUI0+Vn8rQEw+/I oIbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778866846; x=1779471646; 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=fcTs3eLyOIE0l5GPVRit0A4+HMRVxCXis7Msp6YvA7k=; b=kxTJDvo6pkktsH28fp+zQ7p2dbW84MZeUifz2gvTlkhRZEq30v5d2oUFQolY1V7bCP lsK0VZ4A8zvC4cM51yt9Yxhw0CvH7Z8rtHNJyCR+d7kiUbGSf7uwSbCeMv9nl8AxrX10 j9keB7jhmTKj/UKi2WoGO617uoFbLmtNBVVJznOjxBgs1n85vre8h+5ZIBfYcuoaUsrf M+HyVlzV8s3rjjpPKtbAKxL94URBeBONdy2OtsWwe6q9/jsa+Arzdp0eQzqlXBgCa5Kt jJOJCpXx9YDpZAXwT66/zHWmUqr4N95VbDETjOiG3r/p8+D0OK9qJGHys4FQFPTq/Sdq BPAg== X-Forwarded-Encrypted: i=1; AFNElJ9tM9tgWid2Pi6x7QJNlstj1SC586dYg3848bZOahbQt3sWphcTNstwPXnw6Ox23qGJczKIckQOdLPV6eo=@vger.kernel.org X-Gm-Message-State: AOJu0YzQFGA5OjKLTvM9F4y5nA56b7q3htcUxR5N3UrojlYgy/0d62Xf zWYMa9ZY+nucMVyDmJ449dmJKLRyvMcQv6pBRygzjQUoXyos/z4+Du78 X-Gm-Gg: Acq92OFNwfa9Sc7O6eHWzL9/OOmJaUAT6veDNltBN86o71ZoCDpd/u6ADo2w40l3pCr 6j8813OB6HK0NHYyTc8HH5ZggubSEmhV0pDt+eRwRBNky9FGEhwthuwhhvwWpS7dVq0MpaqiCpU eeAh6KBKHej3MDLJmCXpLWVDbrlC/KANMil0TxlmtwM4ZRCX3Xmh/wsjoqtVYPAUlao9JcabI/H XsBYS17lqoNtNJF5+++CE/KtL9x6j2Wrk8KFFSEt7QKLplsQWBlAPNyIBuv2LA7cKmCKJ6D+uPx mwjT8mxyI2TY1lsOfWOnWo8d8A8bHntkeRvktF4fkejCUWM3jJ0B6ACDP4Xtd+zWBvAsVj74Q4y HON0+wb9OT4Q1ZFvv+csT4nj/Q1sxlzoMySsiONLKaR9RB6fBimOoTmuH+kXwXZcB1jaeEWqS2i kk2Bgb0DNQPBwlXsBYefHmQSN4R7L3xUte6cd/E1RN01KSHwJwEt/WIMXdt8s= X-Received: by 2002:a05:6a00:4f8f:b0:837:b5b6:1b98 with SMTP id d2e1a72fcca58-83f33c7aef6mr5385845b3a.12.1778866846467; Fri, 15 May 2026 10:40:46 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83f2875f0fbsm5579034b3a.57.2026.05.15.10.40.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 10:40:46 -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, tglx@kernel.org, christophe.jaillet@wanadoo.fr, mingo@kernel.org, kees@kernel.org, nabijaczleweli@nabijaczleweli.xyz, kyungmin.park@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 05/12] iio: ssp_sensors: use local struct device Date: Fri, 15 May 2026 23:10:10 +0530 Message-Id: <20260515174017.3962168-6-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260515174017.3962168-1-sanjayembedded@gmail.com> References: <20260515174017.3962168-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 drop redundant "Probe failed!" log in probe path. Signed-off-by: Sanjay Chitroda --- Changes in v8: - Following input from Andy and Jonathan don't mix variable reorder with new variable addition and drop redundant log - v7 change: https://lore.kernel.org/all/20260426091710.3722035-6-sanjayemb= edded@gmail.com/ --- drivers/iio/common/ssp_sensors/ssp_dev.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/= ssp_sensors/ssp_dev.c index 4280eb590c03..a652bb56c61f 100644 --- a/drivers/iio/common/ssp_sensors/ssp_dev.c +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c @@ -487,27 +487,28 @@ EXPORT_SYMBOL_NS(ssp_register_consumer, "IIO_SSP_SENS= ORS"); =20 static int ssp_probe(struct spi_device *spi) { + struct device *dev =3D &spi->dev; int ret, i; struct ssp_data *data; =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 @@ -543,7 +544,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 @@ -557,11 +558,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; } @@ -574,9 +575,7 @@ 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); - - dev_err(&spi->dev, "Probe failed!\n"); + mfd_remove_devices(dev); =20 return ret; } --=20 2.34.1 From nobody Mon May 25 08:10:50 2026 Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B23D93F8EA9 for ; Fri, 15 May 2026 17:40:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866852; cv=none; b=FQwjpCwrAxeBSZrfo3hhKgh+NNdzqBUE372QNzYkVc7uwtyH0HfU+axINc3Tw0YdC7GslfBb6MR9cRAV3Vhk6Pou3OhTAn1FLlkKDUSfNJrwNCdI+ASMckWe86+32JO0AdKTaWYtlFb2DDti/kgqRN9ga2aEFNtYMr7mLIKQQD0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866852; c=relaxed/simple; bh=upDmu/wUadyn7EkK4pxxtaTje+RL6foxGGvrGCWVzw4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=FKN/07VT0USHtPHX4d3cwRK58p4zogcM1LAyM1j3hfk4SkPe/mSOhPt8HARZtj9QYoYdgJY5njzWIKo+jlBC25wfYqEPfz/GwrENbzjenhTW1jqVbFY4NNw4CT29wuyyVHv/VsxV4DitXtO/wt5kcbVV0lRaUHDlfCqypbyvqOU= 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=Gm1g4beq; arc=none smtp.client-ip=209.85.210.176 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="Gm1g4beq" Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-835399c11e0so70669b3a.0 for ; Fri, 15 May 2026 10:40:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778866851; x=1779471651; 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=282Ldj8nwArLBdvCOtPNg09aNYay2lAqdtbMbUdvaTA=; b=Gm1g4beq7j88XosZnxydKG7VhRcMvNAqeJ3G8y0gjVU7wCkDpwKx7IwJYIvDq37I2O waLOoDc3vhYAxlgvfvGS9/SYbgAzfobhPv/0y6hFxMNKsm/yWTvjUPMLaUEj0OjYJTRK nIzu3u03YBn68XK5lR43o5sOv/zbTOr6tC+jPbQs7WIfMLXwooS2Jw1kfX4qjKifireQ lNGBLefdApQQiYIVJ8eLZerTPGUnsHIrU4d50YftH+HZCiiBMtDVM8+ofFTXSnksYHOk Xp+xPZ4ssy99mCRW7+lF6rStf66MtSp4IcxTSqXL6diLpVoiv0vFSSp+vV7vlG+W/vaQ MACQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778866851; x=1779471651; 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=282Ldj8nwArLBdvCOtPNg09aNYay2lAqdtbMbUdvaTA=; b=GOchyJoYQBjbhluhFD6robzNWo4k34rTwKrbKTao58fmVFJCK51xAALZbuK45cJ9XM 8f1VAa2Vpt55bbYcyhV+RTo+Y5YWoIz8qZ7DfWgsnW5Ux4nbgH2eufJ5uo7T+3wd0HJR MfMEcZLAZPauHFe9dimnLDpuvu6Es8YpypYbmBj+LeYIr3tHSmONTu/1L47/xzRFalIN Ma08Sh0Uyb8APh+O7xdo3HMrafgIQUhCpzf8eKz9w/oWa9gT6v7d8jXEG6l06rMXIaDL 0jl2ZTsEi8Mu4TWKy81S1L4osqfUrXnNhb2p4jKaB/ZgBJNiFbpEr8B3Pd3hXZWes3yd Qpzw== X-Forwarded-Encrypted: i=1; AFNElJ84tZPyLtxYkDb5cBXekH83FixKMhn2SyQ65+fUFuu03o25mXeDx4LYRp+UShn/fTkvUkPGsTdBBigacjo=@vger.kernel.org X-Gm-Message-State: AOJu0YwI61tA9R234ytTpKP18e5ezfLxxWYuaOYMtidr7GLC+DVOqg0k Ez1LFSuSIyuHEa6zm4IN3M1ejVmr92gg7MgcxIzke/E3xZTNqklCZ3C0 X-Gm-Gg: Acq92OGwD0l9PXGwJiaSkAVzBNvTHXxCC/Xj84bWA9SYarKPOP8XbsqqXxxVqyYbJmq y+7Hn1NaZqfMYYgTDPkLGRMi55oEWvR3/pk9/aJLyXVSPUnFj5mDwDHGLJsCRrKpgCYSqKJnfCE ApIpsfDCmWihn+/j1KWQE97DywsetbopE+Oajq11k6b07muC4sKkia+8sxYXyOqCyoX8/dXloSz ZtZn1AhUwGuUG59RCVxjFItKiKB/u3h8UHRYv6KaL9ycFv7x7/81IpUOTP+bonzQO8ahcVWSr3K qxXiHIK/RdYRXJThNOo+tBfAY2sw9SR6WbtnPPcsYJycLiMXyr9RD7E2rxFPULp6dHrUXiZr8iZ COKQdt4suSTf3VroaKPRrmptO2zcyYbKxVL5whxkDRGVrb2g8vV11i7W7b9P+VTqjZyu9pdixT8 jFa/ub2qre90XXyidyW4EPMKPwHzCONmQgojLIPzO0hMdbeR9jdhVV4kD+Yvg= X-Received: by 2002:a05:6a00:3d54:b0:824:afe1:f7e3 with SMTP id d2e1a72fcca58-83f33cc0b04mr5789896b3a.15.1778866850954; Fri, 15 May 2026 10:40:50 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83f2875f0fbsm5579034b3a.57.2026.05.15.10.40.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 10:40:50 -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, tglx@kernel.org, christophe.jaillet@wanadoo.fr, mingo@kernel.org, kees@kernel.org, nabijaczleweli@nabijaczleweli.xyz, kyungmin.park@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 06/12] iio: ssp_sensors: fix variable type and declaration order in probe() Date: Fri, 15 May 2026 23:10:11 +0530 Message-Id: <20260515174017.3962168-7-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260515174017.3962168-1-sanjayembedded@gmail.com> References: <20260515174017.3962168-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_probe() function declares both loop index and return code in a single statement. The loop index is unsigned and split declarations to follow common kernel coding style. Signed-off-by: Sanjay Chitroda --- drivers/iio/common/ssp_sensors/ssp_dev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/= ssp_sensors/ssp_dev.c index a652bb56c61f..f3ad2b38cc12 100644 --- a/drivers/iio/common/ssp_sensors/ssp_dev.c +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c @@ -488,8 +488,9 @@ EXPORT_SYMBOL_NS(ssp_register_consumer, "IIO_SSP_SENSOR= S"); static int ssp_probe(struct spi_device *spi) { struct device *dev =3D &spi->dev; - int ret, i; struct ssp_data *data; + unsigned int i; + int ret; =20 data =3D ssp_parse_dt(dev); if (!data) { --=20 2.34.1 From nobody Mon May 25 08:10:50 2026 Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) (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 461A43F8EB5 for ; Fri, 15 May 2026 17:40:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866857; cv=none; b=OUaLJLHHKB4jj0Nl5QKGZGEItBuMhtu8pEka+KdHWmjdW/XXf6ejYC1+G06qK5hg105YWasQtglwvqgE14WVCljeyO+b63x5ZVaLhsrde80/5C6ZJWoP+/T3hwkXMoVoV0ACbU8ilSu4qEObTyTamGhVxqblTUyVn9KesrU8Jyo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866857; c=relaxed/simple; bh=97ly4BjJHtk0X0D0XIMtHD1ZVF5yf0y6F7zT1Ri/QBk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=PmAAAVnIBNqQ4LnWjvJjFgrl+j5kxof9ZupgI39+pZD+xiKtvIW2m/+FwHiTuu4YSEbjiE9UtmfhS84EtjmQ4FRieV06w5PveArmiLS8HM9yF1O47innair1y6VzJsuRqAyCK4SXOmbV5pWctG/PyQFAvECgY5mp6+b/0VkyK3A= 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=OlRzfANP; arc=none smtp.client-ip=209.85.210.173 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="OlRzfANP" Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-82f8893bff3so55856b3a.2 for ; Fri, 15 May 2026 10:40:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778866855; x=1779471655; 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=XgncZFBSo1Y+nwYmK2FCTW++Gfuechd40CMtdCuk34Y=; b=OlRzfANPwHqRzVisOAOubUy8Hv9R867klGQbFmaiovocA/u2AXvNhf4yAbRPtSSyiN 9dev/AukNcGeTAD6JiaA2GCLX+KQXeYcktXU1TzIl8K4NbVLfUqI4HmtWICDZFqD/vKi RI4+SFy/1O/BAXx4MhJzU5MwJZcCtouD7+AQxIp5oyi2MYi8ZA3UmzJbEwumYFjMPP1J 7QShPxNBHeTCbvz0pAloajD7cz2YWZHO4ZJiQAU3xOdT5LMItoBj6bn1Knif0OJYeFAa twBgEa0v9mkdrLljYGTkhqrsmQgEad23lT+LrDa9wIa+SDxgOohyPCGpAImhTehO4TTb hnvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778866855; x=1779471655; 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=XgncZFBSo1Y+nwYmK2FCTW++Gfuechd40CMtdCuk34Y=; b=aA+1+bvinu8O3M4fQ6pkg9IFSBHgngMe1w60ZB7XAy5XUOG9iWYJf2z9MZ4ot3f8sd yHuAjFrqakjyq5rPq6QFrwrGX0zfkcZKdT9XoYYFpgei/nBotwwM2HhqM3U4rf7l+02P 3zB4MnzGoLEogLfnXyTJKrcFLAXL2f6yTJqRIWrpevjL4UBqtBTaS8/H+Q2DGkN0ZamG SikfQvJ0bAIZ1rutb7dungXOI63HUTysFc+TTkPXkZ5xlXq1J5QevoPxpO+TsbAjKMWa n92Eew88aTyQ5tHIDzgbtZBgFZAM2xXm/WaCs6I5WLTmiMUuWdEY85NimBxK1wKiEHS8 deUQ== X-Forwarded-Encrypted: i=1; AFNElJ/NzYXU/aEs/SL0ySaT7FO3o5T/9BMxlFTjG9LK9/EX3qLTfdpr6dpmfHlm8Cp+cZ6Ubjsn2nk/4iE2BHk=@vger.kernel.org X-Gm-Message-State: AOJu0YzZHRTtKqL1h0lFAsOoYz5+LpbZ2ARThi6UHiTD+087bFI5Q/eJ eLWrxOee+xIjugbyH+7u6d1qj50x2ogTDicazh+XNMDpMU578VTj1LRI X-Gm-Gg: Acq92OFD38Wf3t3g3MhWRl38FywYS1oxV6PNQ0cBSN0jiphAWxDQ3Xn/FVn6o/lf0cX OQ/jkzZeuNh2kvg597wk3DNkSgCBFPQ4dbNJC8ayTA/7bwWaC7e//82EDNee7AaAZim02/KzHES D4ggKhH/cDdi6D68AsAoBu59y2Tqg4YMxaGAnkX3sdeV4falPS6241ZYQvgAIO0W0J8e+48tp8v qeIpRjcbJsaA5GOoTMJghS9nG06Uou8KV7z69xCUh9W0NkyY9Sl/Uocz+thG5RHH/6XTy6lIA+i JeMumiT+WuzTcmabhm/Ztsfi66dpZ7gFmDN0QIq90T8LGOOUBhHLHQQ0/yDC6PwyFG2b+p4AO5r pzgBOD7G1ok8j2wPQgia9uTW86pi+8W3NIC7HcahlesqPr80mml0jz56Dhakw/AfuxX+dM2oWC8 nJgKiKPKC4hnRXq4o6x+ARMDy43QLMVDNYkKTpinBzXnB8OE0k X-Received: by 2002:a05:6a00:32cd:b0:83f:250d:5ab with SMTP id d2e1a72fcca58-83f33bc8888mr5959617b3a.7.1778866855475; Fri, 15 May 2026 10:40:55 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83f2875f0fbsm5579034b3a.57.2026.05.15.10.40.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 10:40:55 -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, tglx@kernel.org, christophe.jaillet@wanadoo.fr, mingo@kernel.org, kees@kernel.org, nabijaczleweli@nabijaczleweli.xyz, kyungmin.park@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 07/12] iio: ssp_sensors: Drop duplicated wdt timer and work cleanup Date: Fri, 15 May 2026 23:10:12 +0530 Message-Id: <20260515174017.3962168-8-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260515174017.3962168-1-sanjayembedded@gmail.com> References: <20260515174017.3962168-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. Calling ssp_disable_wdt_timer() after IRQ teardown is safe, as the watchdog disable helper does not depend on interrupt delivery and ensures all watchdog activity is fully synchronized before returning. 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 v8: - Add more information about wdt shifted to specific location and address comment from Andy - v7 change: https://lore.kernel.org/all/20260426091710.3722035-7-sanjayemb= edded@gmail.com/ 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 f3ad2b38cc12..88bb8ab0cd9b 100644 --- a/drivers/iio/common/ssp_sensors/ssp_dev.c +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c @@ -590,15 +590,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 Mon May 25 08:10:50 2026 Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) (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 B88133F8EB5 for ; Fri, 15 May 2026 17:41:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866862; cv=none; b=O1qYPOxeJwp8vzMG5XrAAiSphwSCcuQ+DHs1840zQu7rkm6BP4B8YYgXgCBjCI8eRcZ3BsSvsGquBTB8edi+Hcp2F7y4jVTuwMuBmLtkW3k8mbqxxbHPd/4e4lVSOYgreT7wdVeu1NUv5Uu51nNNK6rStT5odpqrJINEH4P6H2Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866862; c=relaxed/simple; bh=+gNU/PzW/qiy8WZGm3AmwTeKihAe2oIQqarPGjmyA4c=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=S8HPVu5bSAOb8TEGZrFDPrpQu/BP3TI9+5My4tU0maP5pzSg6can7TAKt9wmRp4H8DnyfMeKhgn6TKtXFWTw82AzBFyPQVtyxU9hggiU6b+TBx8kctCpDZ4553932xgzqWukGa66SKPsRQqjKtUnvDbaxS5Holk6rkHGoz9/WPk= 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=anE8hDbH; arc=none smtp.client-ip=209.85.210.178 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="anE8hDbH" Received: by mail-pf1-f178.google.com with SMTP id d2e1a72fcca58-83ea84df1d0so51455b3a.2 for ; Fri, 15 May 2026 10:41:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778866860; x=1779471660; 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=YSF5lHJsM33tChHrGrFP0wNPuH6dLxO3ISGQ3D5XuKA=; b=anE8hDbH3PnXcO72MAZItKosm+NXR8qNvhv9a7dysGdN33f+g5IDkDc/RRglf5iBR7 8Ht7uDIBpmKKubQuI+7s8twzXAWKuCWtNIxLUDGC+mOJydx4xjyXX6des67vvOBEr7YI 1dhqupZdS6Q5GevdBEbSWPbQCNozZGcI18yo7hPRn96IzgcZ15Ue/IrvEdoaSkK4P1oZ 0OGCJru8BKDx2VePaGJTMR7K1WSnOn0C99eEET9zBiBkuKLXotN36Npdq5L7msyTJw0k MPXol+vOjRfGdq4ZmGxnHY81wfTNsmtTJY7EeROWcnN6h6FWkLFKGWo0U/E+batSdry+ Pmjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778866860; x=1779471660; 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=YSF5lHJsM33tChHrGrFP0wNPuH6dLxO3ISGQ3D5XuKA=; b=Mem3uGcYXHUtRFq8eAL7lVTcjxa6QdDy7H0pb3y83jpUwMs1qXoGXfBWmcBYbOncda tdkuPOPTNyDrkpYR1ynUmSMDb3OpE/UX/t2ZcEJShpO3TIEReMuEHz5U6hAFDRUNDeAE 1WkrweOinwP/LNLD51c3PkwpqeYMMI+c0U3xi9/nenyMw3/zF7NH2PD7iOfYI5XE+OOq oHIrOdOoPb6gUFojoVy5xw8D8lNlRfpSCmQF4dlKf1M+Qvk58I561jM4hkwSrTeSNhIV YUOLQU9X7T+5gs2Z1/SFq5hDsXOWo+dp2ukfZYOu+RmiUsbEGMObdEHcLjPJYU4sgzl3 6Uaw== X-Forwarded-Encrypted: i=1; AFNElJ9XL9PyXg2mpKby1EsdO9a6ZaqFE/30CYTLqSMQwfw6LmaVv8N5rMJ35GCP7lyG2T4VoKo6pg4p9UX9Zk4=@vger.kernel.org X-Gm-Message-State: AOJu0YxxY6vpdQJkFlWeyRHWtwMMS4c5e2PV4v4tIUBpBuNWQLt4NFNt b5amY9Fy0zt+hlQMDt++CvGN0iPlAIM7THkpKYFyiEVuf2nRIeYCCRp6 X-Gm-Gg: Acq92OH93D6vFSNkxLCsFQH1xlcPziMy8HbqMuei9ip7jnYz7eaIeECvIiFwPOEI1a+ DSDmiO9HTtqWhSBs3Q4LBuSsa0O3+x+9WXAtoTFfotB67Il8ms8M3OmB0mdVjWHP2dYkWFkwIO1 eL1Oc5ktw5pjq2rFvzJg/5mMH/XGmwYZdVuWOK6XmMmgRuHwkPkm5pf4jbV9EUx6C7sFR8c2dr3 Pe+euPrnCRCQkAHkfl2cdYM4SCEqZOpNGTnHYkyJSKdd3U+myNOyT2vc+s2gcQ2SSpt0U151qgJ X0XR0qr84puh1whSJuyFvXnBm5tTfqPRkhfYpuXzN0+hzbODMAomtjFVDb2WowHfag+KD6b17dY IBMun7SLGrQxN1wEHwu912UZiz94zUdYJ/87/5QXCywTKS6bhEt7rMZMDQ7QsYEv6xwrHnvCYQK Kt6/FTHSEjBNMajNS/VuJhM8+XoaVoaNj2ndoDyY/FiO7t2mqM X-Received: by 2002:a05:6a00:ac2:b0:83d:b11f:795f with SMTP id d2e1a72fcca58-83f33d235e0mr5454415b3a.22.1778866859967; Fri, 15 May 2026 10:40:59 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83f2875f0fbsm5579034b3a.57.2026.05.15.10.40.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 10:40: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, tglx@kernel.org, christophe.jaillet@wanadoo.fr, mingo@kernel.org, kees@kernel.org, nabijaczleweli@nabijaczleweli.xyz, kyungmin.park@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 08/12] iio: ssp_sensors: convert probe and teardown to devm-managed resources Date: Fri, 15 May 2026 23:10:13 +0530 Message-Id: <20260515174017.3962168-9-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260515174017.3962168-1-sanjayembedded@gmail.com> References: <20260515174017.3962168-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 --- drivers/iio/common/ssp_sensors/ssp_dev.c | 114 +++++++++++++---------- 1 file changed, 64 insertions(+), 50 deletions(-) diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/= ssp_sensors/ssp_dev.c index 88bb8ab0cd9b..441416c612a4 100644 --- a/drivers/iio/common/ssp_sensors/ssp_dev.c +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c @@ -199,6 +199,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 @@ -498,9 +518,8 @@ 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_d= evs, + ARRAY_SIZE(sensorhub_sensor_devs), NULL, 0, NULL); if (ret < 0) { dev_err(dev, "mfd add devices fail\n"); return ret; @@ -510,14 +529,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; @@ -530,7 +551,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); @@ -540,14 +563,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; @@ -560,47 +592,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); - - 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) @@ -656,7 +671,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 Mon May 25 08:10:50 2026 Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) (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 4BA2347AF5C for ; Fri, 15 May 2026 17:41:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866868; cv=none; b=tI8QVNAUVRaKbQMMXYSupR621aun+L6HG0qkdeF2CjzKAY2fgyg/+b0rPsIzyGv0nGcErYBnq6xWaC/xKXVpOgyeXL/LxK1pUMJHaG1NK+L/Ua+6uBrZb3ljTq1EeSCw+TcHYn70/nsXca3NsMCOP3zPfQXvvCsWpcEXmKME3dA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866868; c=relaxed/simple; bh=uSuA/aq+O3Tb5ToGC82xOWMuSAsrdYEFRBOSaXRb3SE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ea1QD6Wn+W82yulU7u7ifEOnC/4yr04aV3iURdo+TpfYgdE2TuA6RmJJVoBeG7ytgxVrshnr/6EF6AJV4PxYpGMCSKoXO88cGlrA922UdKpRKBS/Na4muKWcoxfBzKBLTSxhP2pfTVFefI/sRabHEo2aXd0uZ/10Llt3eDm/jDc= 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=JI4ORN7Z; arc=none smtp.client-ip=209.85.210.172 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="JI4ORN7Z" Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-8353fd1cb5fso21170b3a.0 for ; Fri, 15 May 2026 10:41:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778866864; x=1779471664; 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=W1EmbB9yn/ziU4+rXTkis0g6M2ccv54s7vfcqmIwSMw=; b=JI4ORN7ZTdfwDCQZxQd7bTFB8st32rtMcjRODlJOSaNl4RpsU2zqp6Lb2Ret0yIGs7 WNS9LeEVPRHZH0q3GjhBWfknE2p5yrIxz7lmOwGMGuBg8uPriHUPGp32cdF04dhCMMBM La9kknQy434r30JB+lVXokHqLSu4nOiIlTIWSbBlYKuh7vW8UwoQz24oeBcGPt4AGyHl YxewfA804sYcUsxq7strIWNG33w6yawz04jdnEpJ3PyDKuq+dcSJNch5RB2ggq1Syn51 U9dEjPA/G2UDhCOvrzo2EMig9/1vI3zWoJNj5HrPTN66JjJDnIVBfZFbNhad44j98fFL eO/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778866864; x=1779471664; 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=W1EmbB9yn/ziU4+rXTkis0g6M2ccv54s7vfcqmIwSMw=; b=h5pUD9N6BZbfGzid1XSSiEGgGGfWzsmJnJ3xSxrkRza3uDSXAgE/nwbfj1ExLM+Bvu u2PjNCwaM/QxOlUwS2jXzBQTzkBrQsFHvgSqbJ3QtQjljr8AUU4ODLx+W5S20vr+dD1/ w9hkLdd3aZbhmrzKbuqOd3xbEwEY6wMVjLHAy+0Q8nDVBDWl2Gbao5kRVE6VLzmF38L+ 6UZw7wcKQj3vq5KnD1noGjaG/sL3Cd4pVxzd5cdXPu1pOlsv/6E3Y1ZrMlrYspfEr7t5 QjkJzNKkLJzbWhiVpL9HMpzOhsCh/EIL8N2onIFfIxyiAJCIY11T8L6dDrvyT2Z20wNk faLw== X-Forwarded-Encrypted: i=1; AFNElJ/qXeHXXHik+cjkFyyy+BFH7dDjApo0dSB/UmlMhhf0gv7e4jwmaAzrx3taaLSll31ZgbKZhJ7uG6l/BjU=@vger.kernel.org X-Gm-Message-State: AOJu0Yw81jQ/VaZwGXsVLdcDGAmJNHjMshwcrB1zI9XEbBUGuRHb5tlO LCLzgHh9oVqc1/c46nBixhRiddDIKIkn3leOMxZ0SFv5m2r/ApS3rNCq X-Gm-Gg: Acq92OHHfFXOVOYrPpWNo2Kky7iVRkWnB1Wi6hX1BNBaYEecKNQ+l77KTLVf5l5WV85 DY+NDherEZPqcGnZ9QfaAOd86hJQUGNB693BXbNNwzG8M8VvcgdegjxB+U80bNpj0g+38ifuXbo 0H3b89HlSN3WlUim9yvtSiGSuxtLiKxnq5d61/mtnTxs7PZrJdbc9xDJTvOoMgbpBODGSB/v9I2 kiEK9+QMHVp3hlhdRyQk6eEK448rteXdkuPUs1cP/gI6qsr9p23DHAWbiz2vVvcaiJh6gOFj1tP 6vep5JlmW1KSVjocP0C8RhD90+b68WeS2LlansVbhmpe1+CzJH47cntCCbQMN0plX3k2ed/oMyU DQx40fdgUyBzMvz78ocAAOwjIpKEtnB1FChx4FBMcRLFDBX2AZqmWaltB5aE1j3fwQx/PLeBKEX 3aqtvN+i0stCGPNBvF9dM4YEjRvj9rI6Ekf8l/tEETugAdmJfD X-Received: by 2002:a05:6a00:179b:b0:7e8:3fcb:9b03 with SMTP id d2e1a72fcca58-83f18eb0cbdmr8651952b3a.25.1778866864548; Fri, 15 May 2026 10:41:04 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83f2875f0fbsm5579034b3a.57.2026.05.15.10.41.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 10:41:04 -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, tglx@kernel.org, christophe.jaillet@wanadoo.fr, mingo@kernel.org, kees@kernel.org, nabijaczleweli@nabijaczleweli.xyz, kyungmin.park@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 09/12] iio: ssp_sensors: use guard() to release mutexes Date: Fri, 15 May 2026 23:10:14 +0530 Message-Id: <20260515174017.3962168-10-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260515174017.3962168-1-sanjayembedded@gmail.com> References: <20260515174017.3962168-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 Replace explicit mutex_lock() and mutex_unlock() with the guard() macro for cleaner and safer mutex handling. Signed-off-by: Sanjay Chitroda --- drivers/iio/common/ssp_sensors/ssp_spi.c | 47 ++++++++++-------------- 1 file changed, 20 insertions(+), 27 deletions(-) diff --git a/drivers/iio/common/ssp_sensors/ssp_spi.c b/drivers/iio/common/= ssp_sensors/ssp_spi.c index ebcda6de56c4..29bc3d48c42f 100644 --- a/drivers/iio/common/ssp_sensors/ssp_spi.c +++ b/drivers/iio/common/ssp_sensors/ssp_spi.c @@ -4,6 +4,7 @@ */ =20 #include "ssp.h" +#include =20 #define SSP_DEV (&data->spi->dev) #define SSP_GET_MESSAGE_TYPE(data) ((data) & (3 << SSP_RW)) @@ -180,9 +181,8 @@ static inline void ssp_pending_add(struct ssp_data *dat= a, struct ssp_msg *msg, if (no_irq) return; =20 - mutex_lock(&data->pending_lock); + guard(mutex)(&data->pending_lock); list_add_tail(&msg->list, &data->pending_list); - mutex_unlock(&data->pending_lock); } =20 static inline void ssp_pending_del(struct ssp_data *data, struct ssp_msg *= msg, @@ -191,9 +191,8 @@ static inline void ssp_pending_del(struct ssp_data *dat= a, struct ssp_msg *msg, if (no_irq) return; =20 - mutex_lock(&data->pending_lock); + guard(mutex)(&data->pending_lock); list_del(&msg->list); - mutex_unlock(&data->pending_lock); } =20 static int __ssp_do_transfer(struct ssp_data *data, struct ssp_msg *msg, @@ -204,17 +203,20 @@ static int __ssp_do_transfer(struct ssp_data *data, s= truct ssp_msg *msg, /* msg->done must be initialized by caller */ WARN_ON(!msg->done); =20 - mutex_lock(&data->comm_lock); + guard(mutex)(&data->comm_lock); =20 status =3D ssp_check_lines(data, false); - if (status < 0) - goto _error_locked; + if (status < 0) { + data->timeout_cnt++; + return status; + } =20 status =3D spi_write(data->spi, msg->buffer, SSP_HEADER_SIZE); if (status < 0) { gpiod_set_value_cansleep(data->ap_mcu_gpiod, 1); dev_err(SSP_DEV, "%s spi_write fail\n", __func__); - goto _error_locked; + data->timeout_cnt++; + return status; } =20 ssp_pending_add(data, msg, no_irq); @@ -222,16 +224,11 @@ static int __ssp_do_transfer(struct ssp_data *data, s= truct ssp_msg *msg, status =3D ssp_check_lines(data, true); if (status < 0) { ssp_pending_del(data, msg, no_irq); - goto _error_locked; + data->timeout_cnt++; + return status; } =20 - mutex_unlock(&data->comm_lock); return 0; - -_error_locked: - mutex_unlock(&data->comm_lock); - data->timeout_cnt++; - return status; } =20 static int ssp_do_transfer(struct ssp_data *data, struct ssp_msg *msg, @@ -379,12 +376,12 @@ int ssp_irq_msg(struct ssp_data *data) =20 switch (msg_type) { case SSP_AP2HUB_READ: - case SSP_AP2HUB_WRITE: + case SSP_AP2HUB_WRITE: { /* * this is a small list, a few elements - the packets can be * received with no order */ - mutex_lock(&data->pending_lock); + guard(mutex)(&data->pending_lock); list_for_each_entry_safe(iter, n, &data->pending_list, list) { if (iter->options =3D=3D msg_options) { list_del(&iter->list); @@ -400,10 +397,8 @@ int ssp_irq_msg(struct ssp_data *data) * check but let's handle this */ buffer =3D kmalloc(length, GFP_KERNEL | GFP_DMA); - if (!buffer) { - ret =3D -ENOMEM; - goto _unlock; - } + if (!buffer) + return -ENOMEM; =20 /* got dead packet so it is always an error */ ret =3D spi_read(data->spi, buffer, length); @@ -415,7 +410,7 @@ int ssp_irq_msg(struct ssp_data *data) dev_err(SSP_DEV, "No match error %x\n", msg_options); =20 - goto _unlock; + break; } =20 if (msg_type =3D=3D SSP_AP2HUB_READ) @@ -433,16 +428,15 @@ int ssp_irq_msg(struct ssp_data *data) msg->length =3D 1; =20 list_add_tail(&msg->list, &data->pending_list); - goto _unlock; + break; } } =20 if (msg->done) if (!completion_done(msg->done)) complete(msg->done); -_unlock: - mutex_unlock(&data->pending_lock); break; + } case SSP_HUB2AP_WRITE: buffer =3D kzalloc(length, GFP_KERNEL | GFP_DMA); if (!buffer) @@ -472,7 +466,7 @@ void ssp_clean_pending_list(struct ssp_data *data) { struct ssp_msg *msg, *n; =20 - mutex_lock(&data->pending_lock); + guard(mutex)(&data->pending_lock); list_for_each_entry_safe(msg, n, &data->pending_list, list) { list_del(&msg->list); =20 @@ -480,7 +474,6 @@ void ssp_clean_pending_list(struct ssp_data *data) if (!completion_done(msg->done)) complete(msg->done); } - mutex_unlock(&data->pending_lock); } =20 int ssp_command(struct ssp_data *data, char command, int arg) --=20 2.34.1 From nobody Mon May 25 08:10:50 2026 Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B2FE44BCAB8 for ; Fri, 15 May 2026 17:41:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866871; cv=none; b=rbq//7WMwj0AS8wKdm8IXSXkRUO4EKO232NpI5ZTibfKktl0JBz2NM2Xt17yf8Oe1o2fgi0Sd9iaC7ZmBzhfPLvIk2H2wqORAZEMfTn2oa+HK78RHC7KeqeUaZ8Wdl2v6Tuj4SQB43V33r/6pnoq1LRUx7CPQQvHwM2PUkUI33c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866871; c=relaxed/simple; bh=U1lxI/c9+STExeefINEuJhoclYlDv4h72phtQFTNdqs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=erTKu4zn2JOl4RBj3ZXXveLNymNtDLXVbeyvOzAwCT8DI95rjkh/oOy37yr3ySaRSJjZ/iryM+U2dxMGqmNCLdVEwmjjpXbUM7epZrQLex50PO/EWfm+ITDOYX5UIecAa2QFCMMlo15VaySC8P46J8rysuuGXsLnWG0aKdmCtXw= 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=l05kwG8g; arc=none smtp.client-ip=209.85.210.176 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="l05kwG8g" Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-835386ff122so98446b3a.3 for ; Fri, 15 May 2026 10:41:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778866869; x=1779471669; 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=cxlDQD1lMIcbSSKqgMoxstclmI/pLX6xnq0yZXUOyeY=; b=l05kwG8gY+mw8m3HJSJuSHMgN+6yxQcYDCQcPWYVzkQ4LC+EXRIm89drpwjrewboQm D3tqM9yLkeLsNIs1xRODQRbqMO0Sa5lqUFivH36YQlWEMxtMC1YtUSDtwgpdT+cYC7Bs Kf1A5kmzNxDSbb1Ku2qGGngPv64/NqgVNFdIUD2WcM8DXNyDPC1GSZJPJMz3nEfriNY5 u45gdYcH1vrKNohvFuh5aQKne40kFIanuGBGZ8d4P35sqdRyfKayLG6uPZclB/Nn5SAH sZfuAWa/zlGtnQBa5KC4MyEn61IlXNj4jo4PcIyHbpzNsXjDCYD6sYMtPW9TvTLmL+qO ASYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778866869; x=1779471669; 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=cxlDQD1lMIcbSSKqgMoxstclmI/pLX6xnq0yZXUOyeY=; b=n1QPZ02h5t4BT/s6CvOITr4S8lCVAbMQ6VG+6fe5LZIi2zBtDericDtXN4/P/lmupC Tuo315XOhU/SeXtUSeVGMcuwvBMT2nUYIu2c4nnkaUSmt2aQkKNW8tNbq6eLDgyijrBv fRaCUSyYxXzJk7juS4eqW9dwkiQQFJjnQDvynX0gh5sUDtSbO0EKSDXHmN1ac6NAwF+n 1FOCF54pXk7bQ9NbU6Iph3HL5pS3bH2HbFuL6pgUEiFwmQdTNQxCR8wZcI9Y69dKidUq pek6tgeIREEWVPQ0zpE4Deve08zsOFBavARG5mcN5owyoKEy3GhBLCAlv4e75UUF9ZOF OSeA== X-Forwarded-Encrypted: i=1; AFNElJ9WWLk+GR/XigOsuYdPp31sedFqA55vlTANzwRWZYgJhr7fmVGrmH9rC/rJ23odWxMjydaQhAEljz1Jn6U=@vger.kernel.org X-Gm-Message-State: AOJu0YxTfLn5QJSU9vlcVZ93P+9AlqO9+qAIrNICmA+C+PD+V5JEMD44 IPYmgjU9Yy9ptpSnVv8HE7Y9qyQIY3pSZjVVnmdtSQqAsEShqyCEeBD6 X-Gm-Gg: Acq92OFpGXqjkhwXYltOlRzlmzOKtp6bz01hLGtPbXykCKm3cWFtwQJu8fDpcoZ2Z+N +hyDCkDF/odNgCeNp65VXnKSUrLVy4dTA2utN4EAYd463WEQuPlLUxSNluMgR0Icl6ksI1jBUdR hLyGX5iLrVI9Yfy4zYKdIQRl57hrvQFxqQfwAoxhZR2URmghm5Q9rdgN+DVTOr5/NKQ0WNk5Jap 8QZKZG7tXV9USgKWPc0O8/7W57ovuDRRwNKzzrKn7SKdCx2sIsBfIAHTkkhuMiRnx0ZzlVV6/0i vANNC623zcx7c3NGSe6SR+jca7OCVMhD5JMGnRuiyr6d3ybgHGH/hliiUF/BDd3Ez/oJn7SZRcA Me3V84/vEb8B1+N0JuSIQjqO4hgA8ll0hkedPL+WxQwZCpayM/ih7qEvuF4kGD0RlnSg42oatrO bjMbKTWxC/+ml/FK5y9g++OHW6/DRjRi10ez4nhZwFzTwgWGB2 X-Received: by 2002:a05:6a00:4c0b:b0:827:3d52:5d1a with SMTP id d2e1a72fcca58-83f338d20c9mr5623462b3a.0.1778866869056; Fri, 15 May 2026 10:41:09 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83f2875f0fbsm5579034b3a.57.2026.05.15.10.41.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 10:41:08 -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, tglx@kernel.org, christophe.jaillet@wanadoo.fr, mingo@kernel.org, kees@kernel.org, nabijaczleweli@nabijaczleweli.xyz, kyungmin.park@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 10/12] iio: ssp_sensors: Use dev_err_probe() Date: Fri, 15 May 2026 23:10:15 +0530 Message-Id: <20260515174017.3962168-11-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260515174017.3962168-1-sanjayembedded@gmail.com> References: <20260515174017.3962168-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 v8: - Address coding style comment based on input from Andy - v7 change: https://lore.kernel.org/all/20260426091710.3722035-9-sanjayemb= edded@gmail.com/ 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 | 34 +++++++++--------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/= ssp_sensors/ssp_dev.c index 441416c612a4..2cd06c85ffe1 100644 --- a/drivers/iio/common/ssp_sensors/ssp_dev.c +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c @@ -513,24 +513,18 @@ static int ssp_probe(struct spi_device *spi) int ret; =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_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; @@ -588,16 +582,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 Mon May 25 08:10:50 2026 Received: from mail-pf1-f169.google.com (mail-pf1-f169.google.com [209.85.210.169]) (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 5F3DB3E832B for ; Fri, 15 May 2026 17:41:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866875; cv=none; b=oZOUowTX0Fhz5E7zLuCoyDpCwB5sfv5xMeWxnbWvgJjmLp/J5Hn5JcMwl9zkqqla4PVvLg19VvUB8R0JV+PcuROXzG73M0mEoSIO67p0Wg2Br/F6TUt6T4cAWjoxBuPBatXpMwW3QJA/lLOliynEXGJ5vSThmWdkOCI4LHsLm9c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866875; c=relaxed/simple; bh=jsuGpb2mMPaykr3eFzIY4cRo7k5b02mPEDyE1cLv9jc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ber7qWkX4LlA1mdzUImVIWu2snO8WQAmt3oxk79vkoBzJ/8LbB1jHHUtoC+l8n78imn2/SziEx1N8Yf5KWv6BdG0mei3OVfksXrWcWNECqrDcvWbvKyZYOO9UlPAIRzGdf+LBzuMj6qbFT+Gyv2ErymugUGYZrpXbJjF2gbCbcA= 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=L0OPvGgn; arc=none smtp.client-ip=209.85.210.169 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="L0OPvGgn" Received: by mail-pf1-f169.google.com with SMTP id d2e1a72fcca58-83975e992e1so58723b3a.2 for ; Fri, 15 May 2026 10:41:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778866874; x=1779471674; 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=1rxxcYYFlb5z1A5295QXlxiBsIWJkSP9LihNKkDQr2c=; b=L0OPvGgn8MRkvJgjmRAh8DowS7dWVHkBU8QKnMvYI/4qOOoiFKWCVt7QhO5qYRA6a5 vbgTNh1/QvKvRoobmHMjYNJ2Ap5UBu4jhD2kCosxaTJZGODmNC7EDQhraU7UZNDFtIYj Awico4Qp9owB5P1oJp7VlrLAReD+w4y+6Ey17HJ+QaH1gWBbstUkYlnip8aTtnhyEzeK Pvy+CXK56ill/nQhzHyp4qYiUG4olSiYT5vQYOsn+kAiyLPoQ+UCAG9kkTwMoTLGOJuc E1lrQMVDOO4ggKPF7JG2zFdmjEbwaEjxN0JSpVuFPoI54n44actEuVDGBTeUitfybm3o PWfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778866874; x=1779471674; 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=1rxxcYYFlb5z1A5295QXlxiBsIWJkSP9LihNKkDQr2c=; b=Ze77DeBtQJPYI4sUrwDEdlnWbbfSv7iHv5o2UGixYhv+zHTn7PDFyz2yqCfTLoeQYK rSFckNTPNyumZKqnPoorwND3r7ARF71QudZB+mTC0QywvRf7whaTZgEr7N6AKQgO/tjO hM/qISDOTcfphsTmzowGlnSYfnOuMOPM3xj0+wOXcE/OgTGx1ra0Me4oZdZOzubh1mmm PBIMnPc9iiOdjRbZ/ZxRHfEXQ5Xe0LmNE88X5sh/qXJdG/GBFJfagUWVG8hOP9JOcOnf TRr6/jIdKQHFuALLItWotKqyQN4qC+Nd8z2OnrIt7mEp51aZHptIojpy17oMv4R3QyyJ toKA== X-Forwarded-Encrypted: i=1; AFNElJ+03vOg2yT0YMa43YyZT7ipNEWI5nR9zJiyPwFF0wUeiBpraNcxMFsIvRK25rjVtuaB7oq98uZAaPgBqgI=@vger.kernel.org X-Gm-Message-State: AOJu0YxXB5KPWxX8WEotGtGT/HL+cblVABIUq00DH1phjC8H8NsX4fdu V3/pBICOn1lVdUflyLlHlK7dZLa0kdxTgG256gTcIr5oIautWKhYL0Qr X-Gm-Gg: Acq92OEMRjjQBUUP+btKzaJ8mSvANzq1wzj8zUbFc6RUBuBcI/H7/SiucCF5+u5/MtN 5Zki56ybzuyfo02y6ksV7Y6a1hUMgdAvud+cKOGCdS9EChbDEEYUjU29Y+MN1EP4SdpfMzvQeWj nUIrTdSbOcphSoX4Ulgw3SS1MiHjbAmWfY2RxNwox7waNB2n8yTH8M3RPKt4uS1MDzo3sKn2g/b FiNd0womVVsicbzI5u0+R+URFhfL0AY3q8w45F/Dma94eX4SVJB5eUOQw87LBckn4za1uZ2b3by bvCF/IyvkGMRhzSxMLqJ4V+CBH/uVjFGyxXPfVmHX1N7vm/2aGOCKHB3hL94qgsrCW5Or2LkQQE llOuNgXCAHISvs8cCI7eG5CzfiUxwWxnllIOGomSv82/dVFnEda6aBHJzmdoDs7zgc5/KqIeOEU sPpb6+oyt/cWblSrUFhDe9r8sZPGnxzy7MF9aFk7ImZP1VvZLY X-Received: by 2002:a05:6a00:808f:b0:81f:3bcb:af2a with SMTP id d2e1a72fcca58-83f33c60a46mr5166343b3a.26.1778866873535; Fri, 15 May 2026 10:41:13 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83f2875f0fbsm5579034b3a.57.2026.05.15.10.41.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 10:41:13 -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, tglx@kernel.org, christophe.jaillet@wanadoo.fr, mingo@kernel.org, kees@kernel.org, nabijaczleweli@nabijaczleweli.xyz, kyungmin.park@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 11/12] iio: ssp_sensors: return errors directly from ssp_irq_msg() Date: Fri, 15 May 2026 23:10:16 +0530 Message-Id: <20260515174017.3962168-12-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260515174017.3962168-1-sanjayembedded@gmail.com> References: <20260515174017.3962168-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 In the switch legs previously used break statements and relied on the common return path at the end of the function. Return directly on failure instead, allowing errors to be propagated immediately. The final return value now clearly indicates success. Signed-off-by: Sanjay Chitroda --- drivers/iio/common/ssp_sensors/ssp_spi.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/iio/common/ssp_sensors/ssp_spi.c b/drivers/iio/common/= ssp_sensors/ssp_spi.c index 29bc3d48c42f..172b4bbd298c 100644 --- a/drivers/iio/common/ssp_sensors/ssp_spi.c +++ b/drivers/iio/common/ssp_sensors/ssp_spi.c @@ -386,7 +386,7 @@ int ssp_irq_msg(struct ssp_data *data) if (iter->options =3D=3D msg_options) { list_del(&iter->list); msg =3D iter; - break; + return ret; } } =20 @@ -410,7 +410,7 @@ int ssp_irq_msg(struct ssp_data *data) dev_err(SSP_DEV, "No match error %x\n", msg_options); =20 - break; + return ret; } =20 if (msg_type =3D=3D SSP_AP2HUB_READ) @@ -428,14 +428,14 @@ int ssp_irq_msg(struct ssp_data *data) msg->length =3D 1; =20 list_add_tail(&msg->list, &data->pending_list); - break; + return ret; } } =20 if (msg->done) if (!completion_done(msg->done)) complete(msg->done); - break; + return ret; } case SSP_HUB2AP_WRITE: buffer =3D kzalloc(length, GFP_KERNEL | GFP_DMA); @@ -446,20 +446,20 @@ int ssp_irq_msg(struct ssp_data *data) if (ret < 0) { dev_err(SSP_DEV, "spi read fail\n"); kfree(buffer); - break; + return ret; } =20 ret =3D ssp_parse_dataframe(data, buffer, length); =20 kfree(buffer); - break; + return ret; =20 default: dev_err(SSP_DEV, "unknown msg type\n"); return -EPROTO; } =20 - return ret; + return 0; } =20 void ssp_clean_pending_list(struct ssp_data *data) --=20 2.34.1 From nobody Mon May 25 08:10:50 2026 Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) (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 C0A3F3F8883 for ; Fri, 15 May 2026 17:41:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866880; cv=none; b=etzgy+RMdCMQg8vR2ZcI9G9pJvu/Ty0Zbnu9DchI21iHL6U/XyiGLJY3ebkT7PofempGPqduENwijrSZWqI+K5AJftOMVf+Hi9gTufHZlTyrbd1Khlp9g/LEeTooy5bt27kqZnpnE2RdbU84XqeLp2puYEVL0Ky4IqP/bHBzNxI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778866880; c=relaxed/simple; bh=4RiR+ZXEajF7MeBQ0TdkfqGWEbJftjIU7gULv29t+Q8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=OFcuNNqA2TyQn6zRWUu+cKqE4Letck4po4Lrh0XJ8XxF61xTlLEFcRRm/ZYZzJ3TRoiGBZ+irM4U7jtrTOp0vEI+XXWDdPPzTJbgEJSaZbp7CLR6S7+Pwdg4TDzd/h3GSC5xHQHq83sVLEjifhW4RFpATL7OD68KWyIbtFRcWYg= 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=PI6dYQ3q; arc=none smtp.client-ip=209.85.210.172 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="PI6dYQ3q" Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-8383fb7143aso46081b3a.3 for ; Fri, 15 May 2026 10:41:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778866878; x=1779471678; 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=iFFgsQxDV1wnCquFjABZPsKXi5LVlrEz4bXpwyRs9wI=; b=PI6dYQ3qL+yHRxHK9ghKhrUultc8CCq3H884B9spwy2M+3l3dNKOb+GmEdFZDCyyEd MThBGb0J7eMzyISXi1MwFZBSKKriL9EaoLyFXB/0tZonUvqWyijR07QjXS2TvLeqp0rI bgKqzmAyuA2bszEuU/Gp9AC6ftcjUh2GWw7MFlgJzgx5sUDG6gEePlPDkIvd3AIqY9rv LIxmGlN6ufQyfXbSORJyvQnJaTFIaRitFHoa4vgbSSL8RXoXaX0h8I1Beqm0PRm0iT3v xvqOAzfDezv4NZEtsV74QgO47qSi4r6QJ1CgCMevJnr+MT7LE+kacvRsK9XrYnPBeBjT +5Gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778866878; x=1779471678; 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=iFFgsQxDV1wnCquFjABZPsKXi5LVlrEz4bXpwyRs9wI=; b=qXNR87qVhmUV09yGjE9+njO8LlqTOndz9OyAi46NCRJ1JBoJ2zl8DGvqu8xCXm5Zim VBe3arugGYxfmasnUIN2RJbdGt6ELH8oM0982N0cTJyFUmmnL9PY4kYCijAz06XwtvBe 5FJ6cw4mQw/qul9Qk1bfaqcwZUHrR9JBPayIowBKnEq9Be0QZ2cfHYxmg13FOkN77CG2 l22XJZxgGdYLU1Eyg5tlZDRxiCLOfDQmKd248lD3JEIteewJKaMgaT1c8UMwo5fQYMvs D73p6ugHWdu21sgqCHuhxzSK5zB55Iy7j87ntj7F216PZDonoOVGwmHj384Ac/2TOiT4 Naeg== X-Forwarded-Encrypted: i=1; AFNElJ9jgQJ9+Ly8IurVWuvyPtVqL3SFN0EjIX4GGXbJH8R1mcAoTdLTne6/A46ir4BJ+JYW5LrHvA2Sf25VUOQ=@vger.kernel.org X-Gm-Message-State: AOJu0Ywt29+OTQaRs+y42QBoPhACHDennyU8m4kB5afzdMCPXuz3icGi RzT/uS13AbfoJ3argrVRIkrdv5xLESfgZHW/AmCvZ++1cks5gEvGkVVc7wo/NA== X-Gm-Gg: Acq92OFw8Nm4qFqyCjVN7l411Muauj0rWA7J50LOwFGDUK7W5qz1qtxHmN535BPCgeh NGCORQyrFnqD1gI0IgvuZ9zXqWFBLmOUaW1SKUTd+/J2goxQCKZUsvX86GkaVo1nNTGXGT1JFTw hEOeLpbOmZrqqRxI5XSISVPbwbRJKLhEOsNbZN2dJR+bSYMEohLhqtaAlP3L4MHY+GPBi/SQlUL tuKTyg/2qBUrIZ7RnfQQ9kxX9Zp7751gP52TKbDqqZselP9tw1qABH3ASoYrBu5MZ5u1c71h8wP fSefSfs0XfZRK8hJMAQMeVxS+evb2XN14nYKsopyyZIvwebkrb0fCKsYgTNRaZGBpuep9lcPa3c e55fetFhaVDWRmH+l0eZyZYHIWdHnuvltxnFi3MIryAFbfhBJU0ph++k3JYXWYEVp+I8hd/lO0N E7YZESSha2plfFYXA2VCA+kI2tP8tn095pip+DGLYf4tnAsuI68iH2DdGrJIc= X-Received: by 2002:a05:6a00:3928:b0:82f:4191:da10 with SMTP id d2e1a72fcca58-83f33bc89d7mr5727837b3a.6.1778866878104; Fri, 15 May 2026 10:41:18 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83f2875f0fbsm5579034b3a.57.2026.05.15.10.41.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 10:41:17 -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, tglx@kernel.org, christophe.jaillet@wanadoo.fr, mingo@kernel.org, kees@kernel.org, nabijaczleweli@nabijaczleweli.xyz, kyungmin.park@samsung.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v8 12/12] iio: ssp_sensors: reuse embedded RX buffer for SPI transfers Date: Fri, 15 May 2026 23:10:17 +0530 Message-Id: <20260515174017.3962168-13-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260515174017.3962168-1-sanjayembedded@gmail.com> References: <20260515174017.3962168-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: - Address review comment of Jonathan and use __aligned(IIO_DMA_MINALIGN) and have buffer assignment specific to block instead of top. - Regarding DMA and size discussion point are open to check - v7 change: https://lore.kernel.org/all/20260426091710.3722035-10-sanjayem= bedded@gmail.com/ 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 | 17 +++-------------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/drivers/iio/common/ssp_sensors/ssp.h b/drivers/iio/common/ssp_= sensors/ssp.h index f649cdecc277..6d7409db014e 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] __aligned(IIO_DMA_MINALIGN); + __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 172b4bbd298c..d6919e86aa95 100644 --- a/drivers/iio/common/ssp_sensors/ssp_spi.c +++ b/drivers/iio/common/ssp_sensors/ssp_spi.c @@ -396,17 +396,13 @@ 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) - return -ENOMEM; + buffer =3D data->rx_buf; =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 @@ -438,22 +434,15 @@ int ssp_irq_msg(struct ssp_data *data) return ret; } case SSP_HUB2AP_WRITE: - buffer =3D kzalloc(length, GFP_KERNEL | GFP_DMA); - if (!buffer) - return -ENOMEM; + buffer =3D data->rx_buf; =20 ret =3D spi_read(data->spi, buffer, length); if (ret < 0) { dev_err(SSP_DEV, "spi read fail\n"); - kfree(buffer); return ret; } =20 - ret =3D ssp_parse_dataframe(data, buffer, length); - - kfree(buffer); - return ret; - + return ssp_parse_dataframe(data, buffer, length); default: dev_err(SSP_DEV, "unknown msg type\n"); return -EPROTO; --=20 2.34.1