From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AA24A30BB97 for ; Mon, 6 Apr 2026 08:09:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.179 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775462952; cv=none; b=FnJ9Jen0SVBUdaDNxvlipzSuNi2mYNO+1GYbY65wHWzg7/opJM7q/DspTkllvWr4B+1qIuNQUjzMHV9hE5wj87V0LobwuhqprxmoblHPwHD+RCCBlUjTuk6fkjdR5hnXt+1O5cwaJ/Ie1XG9n1/OTfKNgSTU+vs4syYAB7eAjow= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775462952; c=relaxed/simple; bh=u/NbEkZKqHcYkS63Ubm7NmgdI+5+BWjcSYEk24oIQwc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=fn+IZV66cCylgOwt4+LZ9P30Wp5USSdyRBwwxQqlLGD9AyAd00V0vPo9zHb1JosdBy3KbK5TAo61m6H2qmGFjRsqWu9r1+Bu8K9IWpXtopDj3EGeQU0D591FJASxLh1ClJ+lNO51/ZwXE2aKVN56wXGH0+5waTVZJV0c8rV/lhc= 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=Dn2B0Ifa; arc=none smtp.client-ip=209.85.215.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Dn2B0Ifa" Received: by mail-pg1-f179.google.com with SMTP id 41be03b00d2f7-c648bc907ebso2629693a12.3 for ; Mon, 06 Apr 2026 01:09:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775462951; x=1776067751; 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=u/7ec0UO3+S/ayxldfyYQuoWnFpVoh3m8YAbLEUE80I=; b=Dn2B0IfaaMtiDMJUv2xqsVwdVNtE2p0ujRXItQIa5SbYl+l+Ta/WTbVakZaHh5vU4x nnszTMnCXJ15WE+5nnGC4NgHORdCuO3ZvmdCubB9h409lvLwiyTlVmEFFBZPl56V9olv 3TOsnEhJJbZDq41Pat1TOqYjBcT9eCbGDZm15hVu3gCkhoDWhr/fUvrEpaGIdp4umAFn BO2/afJJYIMthcNOzAVHULvxZF65X1us0k09za1WMJ2bhNaAdk5V66uFRRYTQi/lO291 ilY//M17J57CkpTF5HG/dDikDI1Z9K41X+eCbBVykRLbcHkeEHc+nGDBkA7/MqIztgHp L1Ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775462951; x=1776067751; 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=u/7ec0UO3+S/ayxldfyYQuoWnFpVoh3m8YAbLEUE80I=; b=rqHgycoYySOedSY4LLjODRB7U2GINzeTmjI3TYhIOnDQVq+yPWfGRCeCmfCJyrXF/8 N2pVohG2QyMx4bmVQahPbXEwoZf5yvnTkfsJ4nEHpCxxyTM9o1JkAETVzQlE76w+TpSt nn23CU05+2Go7iadRnLEFAOUa/UHRXS5dBaKufnEJoWmkhgjZMFwn8+l0aY/K/Yz/3az Qnb27yrIL+R+m9XKeDKDNhSM2ocvEpFQhZJpi059FMZfZ1pI4xUiqaH8+BULKXdisWhz KGAh0HYYMaZgxhovDPwmlIOqI98mYviVtVy4mG09W6jskI87Tuf/qTuqtQN0KzHQmzKh aJEw== X-Forwarded-Encrypted: i=1; AJvYcCWc/hyqtByJwP/RxLYv70zBA6CIfxNKUy6YwcuR3xxgZyoRhLR0Q9Tgblm5wFpFJZp7h8qaL9iP4MZ2MNo=@vger.kernel.org X-Gm-Message-State: AOJu0Yz4h6g2PfI4yT5RUCgKk/ie1zMJVdLlKSZDdguWGesMGrGi82f4 oZB3zH8dft95tKfJS+SEIb77Pnq0RVDH0NSvXcgrfXB7s3CPRPWOmjVx X-Gm-Gg: AeBDies3cA4GSaTIFtlutQoqK6NzjR3T/IQKtCNhFh3uWngeahfNuetEsIlOAL2/9tB AcZeG8SPT5lQ0LMulj0o2jtlKgHKrFH0JqQ7YzOquYLdYG+YBjPP4BMnA9xdrRBZTaK9HPlPRVC mDGujVxBqKLKEEZlM0pRnkRlqPNRgfBf5LkcOgeWPlxP37nDxm0Z+KDbTV+9L3iNww2UmuWTpTT ZIoMvqG3zDcSgBQMF0P5v+tILN5ibUqCfvg6XlqxjmwCWl+tzuep36sfGIQD7L2s/D3qEXWIccv OziTTeQ9KtZiEwSBYSFDwg+QLB5/MFwqxbWDJjAiYfNGcozNP38SBHbJqyz/g13y+l9jsRL3sZU ZtMkK8D6Qh39rwdNzc7Y9i4rauVV8er+cAK3GSHDdOwiZwfnFfuHKF/d+R8n4aU5H8r7Q56qZeL /+BS9yiZkLOtC8dXpsw7w7kqe+C0VDz8bmqc1PXOVekyVM/QgxAH4dqTn/uIc= X-Received: by 2002:a17:903:9ce:b0:2b0:54dc:63e with SMTP id d9443c01a7336-2b28193257amr126569705ad.33.1775462950951; Mon, 06 Apr 2026 01:09:10 -0700 (PDT) Received: from hu-ckantibh-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b27497af19sm127961835ad.50.2026.04.06.01.09.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Apr 2026 01:09:10 -0700 (PDT) From: Sanjay Chitroda X-Google-Original-From: Sanjay Chitroda To: jic23@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org Cc: kees@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, sanjayembeddedse@gmail.com Subject: [PATCH v5 4/5] iio: ssp_sensors: use devm APIs for mutex and IRQ resources Date: Mon, 6 Apr 2026 13:38:51 +0530 Message-Id: <20260406080852.2727453-5-sanjayembedded@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260406080852.2727453-1-sanjayembedded@gmail.com> References: <20260406080852.2727453-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: 8bit From: Sanjay Chitroda Convert mutex initialization and IRQ registration to use devm-managed helpers, tying their lifetime to the device. This removes the need for explicit cleanup in the error and remove paths, as the resources are automatically released on probe failure or device unbind. Signed-off-by: Sanjay Chitroda --- drivers/iio/common/ssp_sensors/ssp_dev.c | 36 +++++++++++------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/ssp_sensors/ssp_dev.c index da09c9f3ceb6..f4fc869fc770 100644 --- a/drivers/iio/common/ssp_sensors/ssp_dev.c +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c @@ -510,7 +510,11 @@ static int ssp_probe(struct spi_device *spi) data->spi = spi; spi_set_drvdata(spi, data); - mutex_init(&data->comm_lock); + ret = devm_mutex_init(&spi->dev, &data->comm_lock); + if (ret < 0) { + dev_err(&spi->dev, "Failed to init comm_lock mutex\n"); + goto err_setup_spi; + } for (i = 0; i < SSP_SENSOR_MAX; ++i) { data->delay_buf[i] = SSP_DEFAULT_POLLING_DELAY; @@ -523,7 +527,11 @@ static int ssp_probe(struct spi_device *spi) data->time_syncing = true; - mutex_init(&data->pending_lock); + ret = devm_mutex_init(&spi->dev, &data->pending_lock); + if (ret < 0) { + dev_err(&spi->dev, "Failed to init pending_lock mutex\n"); + goto err_setup_spi; + } INIT_LIST_HEAD(&data->pending_list); atomic_set(&data->enable_refcount, 0); @@ -533,13 +541,13 @@ static int ssp_probe(struct spi_device *spi) timer_setup(&data->wdt_timer, ssp_wdt_timer_func, 0); - ret = request_threaded_irq(data->spi->irq, NULL, - ssp_irq_thread_fn, - IRQF_TRIGGER_FALLING | IRQF_ONESHOT, - "SSP_Int", data); + ret = devm_request_threaded_irq(&spi->dev, data->spi->irq, NULL, + ssp_irq_thread_fn, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + "SSP_Int", data); if (ret < 0) { dev_err(&spi->dev, "Irq request fail\n"); - goto err_setup_irq; + goto err_setup_spi; } /* Let's start with enabled one so irq balance could be ok */ @@ -553,21 +561,16 @@ static int ssp_probe(struct spi_device *spi) ret = ssp_initialize_mcu(data); if (ret < 0) { dev_err(&spi->dev, "Initialize_mcu failed\n"); - goto err_read_reg; + goto err_setup_spi; } } else { dev_err(&spi->dev, "Firmware version not supported\n"); ret = -EPERM; - goto err_read_reg; + goto err_setup_spi; } 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(&spi->dev); @@ -589,14 +592,9 @@ static void ssp_remove(struct spi_device *spi) ssp_clean_pending_list(data); - free_irq(data->spi->irq, data); - timer_delete_sync(&data->wdt_timer); cancel_work_sync(&data->work_wdt); - mutex_destroy(&data->comm_lock); - mutex_destroy(&data->pending_lock); - mfd_remove_devices(&spi->dev); } -- 2.34.1