From nobody Sun Feb 8 18:29:47 2026 Received: from mail-qt1-f176.google.com (mail-qt1-f176.google.com [209.85.160.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 712771E9B02; Sun, 20 Apr 2025 17:54:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745171664; cv=none; b=hFZtCozX8LiQrt9nSidxlvb1VZ1Ggv69MxtHuCXhFIWX068SgH7rfn1I2Vtd0q8QjYsYgwOBjiS2sdRKFaru7pTJgjIXsxvKyykR/8h1qMf1Y7DSkJipc5c7IyqxjSorBucF2YvqsXCqusiU/gA8A0LuT2vF8b3pEIoX0oUWgVI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745171664; c=relaxed/simple; bh=G7cQA1vbU7ME82rND+ta8qnI8kBAvliO793si5bKvhw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dUquoZ3brQ6FwAiNtiW7/hMYWp2LsNnmKCLofu82gEU4UYzGce0JDV4/+AzIZh5YHauacbzaNr+BIwYReKkRhZ0vyT6/zRXpvMLyBOY5zgeKdi2eltEW+qhZZSKgYxgNoE/lYa2dR34nPPYOk1HDToxpUlBJmu/kS1q20dP/9Fw= 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=ZDqgK6aP; arc=none smtp.client-ip=209.85.160.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="ZDqgK6aP" Received: by mail-qt1-f176.google.com with SMTP id d75a77b69052e-47688ae873fso35465361cf.0; Sun, 20 Apr 2025 10:54:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745171662; x=1745776462; 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=YwMHB2nUwzNcRVsw3OgexWqiEt8JRdlA5caQ8STPGxo=; b=ZDqgK6aPcieRWCotSwz1dqbt/797gIyT5pGCwHv3zO3aSz5cUTCBxp9UCeStQ9pNk1 4oYVQH5udjWWW+uzpJ0ePIJEIgtolTflNscDM85AbMbXhB2hKHZ7z4zqPFsxTMtBxEsq 9grYga846Zpd7usnIlvOjXdw7SzlFFfvOgoKMcV4+4p1HyQEhCigJhXxnI5N1GD4wS37 ySFw1FTfXx3xu66iEv3m8hcbX22O2KFnk67cNNgdVeczXuusTJ4Kb4Nex74T8/EtuInU bN9ds92fohFGfmKgsX4f+X7e2N5I7rQZpJES70pFdNB+fyvBtrvIGj9YTeFYOBsJchtO O28g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745171662; x=1745776462; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YwMHB2nUwzNcRVsw3OgexWqiEt8JRdlA5caQ8STPGxo=; b=VFfVST83nzEE+Zvv5Vg9QOkU7nPLeNd7UkHoCC9JwwWuV6k14F0oaqDNyu8Rwz/+PE Xzt1KCZiYokmW90XkPgt+si9ijO8Rcc0yqKvWdZb+400rhyZd1DwT2hn6TVAeDn3gPNq vmG4tHVmvZYY+CInQU1FZg0s2y5OM+K31GA/sVZ8b6efaAe/FBllSOQTFu6BM29LthHY hNotH+y3dX2zY/3xy90Kb8PoH/uxDagQyG3iY65DolYEQ1EqZTmW/HQ0fpOYlb08AG5u FtTgHeMUsQXcK5U06GNdiNKsTCZqNliSqjfWyqYCMjnicJ9XCL4LANKCuMVq6xqzeqcZ /dWQ== X-Forwarded-Encrypted: i=1; AJvYcCVRc0thZUBicsZTTmmiY93NBQWpZl5xpGYaJbQnsl2rRMRMMvCFpWjYikbt3AAgkTJLMX3Q3Tmf@vger.kernel.org, AJvYcCWfpJd9P2mZ3HA5ely9Xwq5hg4pLTttSC9Eti0cTSpX4tELgb8MTdYynhCSlk1nNXpklCapYy30lDLSPPCI@vger.kernel.org, AJvYcCWtoaoZuO8f5f13maVJMBsyf+osMcZO+LWrWjmiUpKmBvH+8tZ/Jg3VplN8mCEk2dYMXjvVR2qXBqQ=@vger.kernel.org X-Gm-Message-State: AOJu0YysTposQcD0YRPyy2N63OGPbGqN0TYjmoxyU7gagraScRSZJokk CRPOt8jcjKPXVvjw0qY4dhruzobl0Tw1tn0nFq26kJejv5Sd+rAF X-Gm-Gg: ASbGncvHB0dapN0XCGaUO9D8eKO/BF4rrmNnd43FHgeVEKflCBGB4bQqTSEix0ek6M4 TXjzZnpZTmUhG4aTbcBLxzObRk7+v4YmlyIpBvbhLQHZ+SxZzg2sYXY0gtjbqK+0B5jwmFv9crj LKKxbG033TWgqlvLT5raBUdIF/iW2h4JD2yOGgehRzVyiLVihdySivQpiljpD/gpfEEIMyPENWi 5sccmhp9/jYAeI0nnPrVfUitsT98fc68dfLgko80XYW/kMqvxoQH8a5566eskBdhok7rgkXntvG 5X6mpcWdZ82Du5hSut5+GoGCf532wcflQMiCXlxvkDCZvJuuq+TLkRx749X6ojYUtw== X-Google-Smtp-Source: AGHT+IFh3Npe3ogkMASCYKQUaCIKFNmK5UDJSRG/Ql7bxSc7zZ6ONLkKYqeskbLzkROXB5vowu1hdQ== X-Received: by 2002:a05:6214:23cd:b0:6e6:5bd5:f3a8 with SMTP id 6a1803df08f44-6f2c4665531mr123099406d6.29.1745171662125; Sun, 20 Apr 2025 10:54:22 -0700 (PDT) Received: from theriatric.mshome.net ([73.123.232.110]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f2c2b0c1bcsm34801286d6.26.2025.04.20.10.54.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Apr 2025 10:54:21 -0700 (PDT) From: Gabriel Shahrouzi To: gregkh@linuxfoundation.org, jic23@kernel.org, lars@metafoo.de, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev, Michael.Hennerich@analog.com Cc: gshahrouzi@gmail.com, skhan@linuxfoundation.org, linux-kernel-mentees@lists.linux.dev, stable@vger.kernel.org Subject: [PATCH v3 1/3] iio: frequency: Use SLEEP bit instead of RESET to disable output Date: Sun, 20 Apr 2025 13:54:17 -0400 Message-ID: <20250420175419.889544-2-gshahrouzi@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250420175419.889544-1-gshahrouzi@gmail.com> References: <20250420175419.889544-1-gshahrouzi@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" According to the AD9832 datasheet (Table 10, D12 description), setting the RESET bit forces the phase accumulator to zero, which corresponds to a full-scale DC output, rather than disabling the output signal. The correct way to disable the output and enter a low-power state is to set the AD9832_SLEEP bit (Table 10, D13 description), which powers down the internal DAC current sources and disables internal clocks. Fixes: ea707584bac1 ("Staging: IIO: DDS: AD9832 / AD9835 driver") Cc: stable@vger.kernel.org Signed-off-by: Gabriel Shahrouzi --- drivers/staging/iio/frequency/ad9832.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/iio/frequency/ad9832.c b/drivers/staging/iio/f= requency/ad9832.c index db42810c7664b..0872ff4ec4896 100644 --- a/drivers/staging/iio/frequency/ad9832.c +++ b/drivers/staging/iio/frequency/ad9832.c @@ -232,7 +232,7 @@ static ssize_t ad9832_write(struct device *dev, struct = device_attribute *attr, st->ctrl_src &=3D ~(AD9832_RESET | AD9832_SLEEP | AD9832_CLR); else - st->ctrl_src |=3D AD9832_RESET; + st->ctrl_src |=3D AD9832_SLEEP; =20 st->data =3D cpu_to_be16((AD9832_CMD_SLEEPRESCLR << CMD_SHIFT) | st->ctrl_src); --=20 2.43.0 From nobody Sun Feb 8 18:29:47 2026 Received: from mail-qv1-f49.google.com (mail-qv1-f49.google.com [209.85.219.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4F17520CCDF; Sun, 20 Apr 2025 17:54:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745171665; cv=none; b=RJ9QIor6D12bW2St6lzCL43Sf4rWEbQImIIGp3qgAplifv+8AfX5472fNgomQ3mvsLnl+srgReQBW0oMLkhlPNssdLqvOFPGeMyLFdmEgl+TxohjJMI5meJhsipQiNzI3t2Rp2N0DhNJ5/nnMUBaQek7YU4nOdfJmfg70a8um40= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745171665; c=relaxed/simple; bh=2Vf/9v9oV3MQq5OTBU53RUwRdOhIL5//2e1Ab5etr2k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YSTTLfIELHsOj2qm/sC7qSQvPz34odTFkV8Tfv1ajYYw9wx5XSv569v/r/nMP4Hb1Z1LWKSLZg/62vOP5Qnrnrf35M6pz0gGp8prFmeb/vsbnyy0GsnlpItoVs5de2qjqJLaC0fudo8vhbjn0QNey32LT6cm7MDbPuCYEtUdbBw= 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=fXXGOdFB; arc=none smtp.client-ip=209.85.219.49 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="fXXGOdFB" Received: by mail-qv1-f49.google.com with SMTP id 6a1803df08f44-6ecf0e07947so33442106d6.0; Sun, 20 Apr 2025 10:54:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745171663; x=1745776463; 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=h24RgFyCcH7lzHlvjgR3evkgjumfAagNsNMPftg8pkw=; b=fXXGOdFBYJWODlF9aM0vdnIzIWRdTwww0jpez9ZSdSRurHT/RtbhLfSXZhY1LClrmp sAtVEHWMyG211X47qW23q897yaMitoH6s6IUS/0xCSkH1juAfBAdMqzGB+Z2DNe48FuU E9UDiD5Z6qYJq7PUAKcbQf2kc+kYB0Yf4vZKKoweqrM360jBx/hbK6YOijr67JlqxnMv 1U5lB8svpd5GtFln1n/hTz8ZUuZJldGNRTs1gxpVZoKkgxLmRIZED5kI70NNnH6xscR9 PRiAazZyniJLz6iIV6077KjYUnybffHAbZgpKUpAQYV6A+rOSbt29kGtlaDfNLikbC4m tveg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745171663; x=1745776463; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=h24RgFyCcH7lzHlvjgR3evkgjumfAagNsNMPftg8pkw=; b=NCE6vAJiRDhBiWC8TUMTZnc8hYjFYbhd3yHg+ftzNfZrdvAP/Ks6PEgtrbs1vBWF/o TIZkCafNIDlAcO/KdMMunBAzU0E7aOGgMJVBqs3ajUMBuH9k6hSQLuj4qRlmUmxgnKJj USJOZ1IINVG+bzMtP2LuOiwqlgHosy+HWbbWldT4HchRsf7DUxggbt8ae6Ro3ZQ7cwfx k7J950+YvcmYh4FTRsJ40RRmIki0mxiAFLlA7MLUl0H/wL2mxA7pdo0T31XVM58drZzV N8aybgb229qTASL05E59m9TABgKV0o5AoI+34dMzxkGSLard2vJFAwMd3xT9y73MIzRv CCKQ== X-Forwarded-Encrypted: i=1; AJvYcCVTEVkk+j4/G4MmYqvN4sylj1F2RivhJmEHNzgh4yZyTIobIM3D1Qzt5YZJsaiLJh6fTiIkbo6AaH8=@vger.kernel.org, AJvYcCW6Lcf8SW9BYY1IBGnYGcOV8Qg19igK7Lh01QTc3Ir8mUPN2P8Usjhp/N31MQ5DTOHbjq9FIIooIISAXTiA@vger.kernel.org X-Gm-Message-State: AOJu0Yy//M+yXg+mV6YfWoKqkLhFhYWTXQJ08YDfVkqeyKhrVH8BzhA2 OmboCEJYvfJaRrmU9zKsQeNhD1l1O7HD1d7q1oAHmQuuc8yOPMWc X-Gm-Gg: ASbGncsJ8WeUWP6XiBiq1F8mOe57WJ3HUNeYEc1I7XJTC6JVBzm6OBjsfaNfbaZAbCP 6iZ362cPzDNQLMSFEcaczC6NM1yx1Z6M0qor4N1GMEGwn45PVpc/YD036TaPY/+fQbi7NYdIkA9 sjuiT+d68pMFe0IPi7dg2BxJAwXaDkBAgcJ5IYRKPVWh477Pd9drP6kVmE185LJABxncqT+/NRL tAVw8vn+YDt2mKhhpZh3ZIkreqa0SnvSMqu0FK/uiMtsPyabCKYfWsPtTx0Bu5BCN5uGWQqDEI5 kJ3+RPkB/PT+fht938C9qMFyELVmQgPvL4bLCitOcsFORDHU5LH95zQ= X-Google-Smtp-Source: AGHT+IHL6GPjHZhPOvVwBwkyUv2IPgNtiGrMl108lh5c8K9FjJIX/sgeA87cxOW4bmHk+/oux5sNlw== X-Received: by 2002:a05:6214:1243:b0:6f0:e2e1:3f7b with SMTP id 6a1803df08f44-6f2c4d6a401mr122624846d6.3.1745171663104; Sun, 20 Apr 2025 10:54:23 -0700 (PDT) Received: from theriatric.mshome.net ([73.123.232.110]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f2c2b0c1bcsm34801286d6.26.2025.04.20.10.54.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Apr 2025 10:54:22 -0700 (PDT) From: Gabriel Shahrouzi To: gregkh@linuxfoundation.org, jic23@kernel.org, lars@metafoo.de, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev, Michael.Hennerich@analog.com Cc: gshahrouzi@gmail.com, skhan@linuxfoundation.org, linux-kernel-mentees@lists.linux.dev Subject: [PATCH v3 2/3] staging: iio: ad9832: Refactor powerdown control Date: Sun, 20 Apr 2025 13:54:18 -0400 Message-ID: <20250420175419.889544-3-gshahrouzi@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250420175419.889544-1-gshahrouzi@gmail.com> References: <20250420175419.889544-1-gshahrouzi@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" Replace custom implementation with out_altvoltage_powerdown ABI. The attribute's logic is inverted (1 now enables powerdown) to match the standard. Modernize driver by using the standard IIO interface. Signed-off-by: Gabriel Shahrouzi --- drivers/staging/iio/frequency/ad9832.c | 44 ++++++++++++++++++-------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/drivers/staging/iio/frequency/ad9832.c b/drivers/staging/iio/f= requency/ad9832.c index 0872ff4ec4896..a8fc20379efed 100644 --- a/drivers/staging/iio/frequency/ad9832.c +++ b/drivers/staging/iio/frequency/ad9832.c @@ -167,6 +167,34 @@ static int ad9832_write_phase(struct ad9832_state *st, return spi_sync(st->spi, &st->phase_msg); } =20 +static ssize_t ad9832_write_powerdown(struct device *dev, struct device_at= tribute *attr, + const char *buf, size_t len) +{ + struct iio_dev *indio_dev =3D dev_to_iio_dev(dev); + struct ad9832_state *st =3D iio_priv(indio_dev); + int ret; + unsigned long val; + + ret =3D kstrtoul(buf, 10, &val); + if (ret) + goto error_ret; + + mutex_lock(&st->lock); + if (val) + st->ctrl_src |=3D AD9832_SLEEP; + else + st->ctrl_src &=3D ~(AD9832_RESET | AD9832_SLEEP | + AD9832_CLR); + + st->data =3D cpu_to_be16((AD9832_CMD_SLEEPRESCLR << CMD_SHIFT) | + st->ctrl_src); + ret =3D spi_sync(st->spi, &st->msg); + mutex_unlock(&st->lock); + +error_ret: + return ret ? ret : len; +} + static ssize_t ad9832_write(struct device *dev, struct device_attribute *a= ttr, const char *buf, size_t len) { @@ -227,17 +255,6 @@ static ssize_t ad9832_write(struct device *dev, struct= device_attribute *attr, st->ctrl_fp); ret =3D spi_sync(st->spi, &st->msg); break; - case AD9832_OUTPUT_EN: - if (val) - st->ctrl_src &=3D ~(AD9832_RESET | AD9832_SLEEP | - AD9832_CLR); - else - st->ctrl_src |=3D AD9832_SLEEP; - - st->data =3D cpu_to_be16((AD9832_CMD_SLEEPRESCLR << CMD_SHIFT) | - st->ctrl_src); - ret =3D spi_sync(st->spi, &st->msg); - break; default: ret =3D -ENODEV; } @@ -266,8 +283,7 @@ static IIO_CONST_ATTR_PHASE_SCALE(0, "0.0015339808"); /= * 2PI/2^12 rad*/ =20 static IIO_DEV_ATTR_PINCONTROL_EN(0, 0200, NULL, ad9832_write, AD9832_PINCTRL_EN); -static IIO_DEV_ATTR_OUT_ENABLE(0, 0200, NULL, - ad9832_write, AD9832_OUTPUT_EN); +static IIO_DEVICE_ATTR(out_altvoltage_powerdown, 0200, NULL, ad9832_write_= powerdown, 0); =20 static struct attribute *ad9832_attributes[] =3D { &iio_dev_attr_out_altvoltage0_frequency0.dev_attr.attr, @@ -281,7 +297,7 @@ static struct attribute *ad9832_attributes[] =3D { &iio_dev_attr_out_altvoltage0_pincontrol_en.dev_attr.attr, &iio_dev_attr_out_altvoltage0_frequencysymbol.dev_attr.attr, &iio_dev_attr_out_altvoltage0_phasesymbol.dev_attr.attr, - &iio_dev_attr_out_altvoltage0_out_enable.dev_attr.attr, + &iio_dev_attr_out_altvoltage_powerdown.dev_attr.attr, NULL, }; =20 --=20 2.43.0 From nobody Sun Feb 8 18:29:47 2026 Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) (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 2BA3B20D4F6; Sun, 20 Apr 2025 17:54:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745171666; cv=none; b=T1++s1CEVu8fdOvZo4c1LUB4ET9imQmjtqjSFaCmauniwyh0smTBc+6g3kAHLl6t1+aTc8d0QfN5U1E3TJuE9fj3neOO/u+yjo9OtB2TJqGs31vewz/DW9xleidsnFsaQRsDrpPvC9v15d+VgKN3NloGcgf6obt9EAmDJ7SQqsM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745171666; c=relaxed/simple; bh=Yjwh6DrsjcKU5bFRc6zRRnv4rV0fIl8jZH8L4C5u09I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OJIhEuJSxMnWshcGufGXhFztAuZy30TOQqspgXKy6Cv/BW2MQhc4bTfGfRcWqjbYRU+dMBVpOB74huiT+o3MDd6WOLBP+TIcWnCcC0FwGUiBM+t1G+2JI2RZbTenJs1xrkjzFVoYKoS3JJ6RRnf3MkgpcmIyyDVoo023i+DW44s= 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=PNVc7wSt; arc=none smtp.client-ip=209.85.219.51 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="PNVc7wSt" Received: by mail-qv1-f51.google.com with SMTP id 6a1803df08f44-6f2b05f87fdso32145986d6.2; Sun, 20 Apr 2025 10:54:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745171664; x=1745776464; 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=gzOgfJm3r4ap/eGSZdUiYEYs4uCCNfYQBrjOjwlLAKQ=; b=PNVc7wStlUtPU0KjcVdk1st3Mxxm/X5CWKgpaNTCRdRn+Eav3s8vhyj8D0ZMRJrPKZ IMJZelb0JkQ5F3/OVsRyQt78GtPjiKe0nO7wTn5e/tHqQ2ArizqziLq6AB4P6cBEpw7y VtE/93rFE25GykXkOVqjBXZKJHHouIfpIKcM+7Gv+4YVs+DtSAsiX1nJa+ICkb+ScNbX 5Mn5XGu4+3hCClXPlpfo3m3jZ8WtOLTouH89iU7XnExx5oz97sK+k+gCKRJzCozaRfKm Ye7HN3h4Wlq1ChyWhHcLSq+SmWMJV+msKL/1XCNpeJHg03zEjmlMVf9iGUgGjSxEEJ3u d5Xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745171664; x=1745776464; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gzOgfJm3r4ap/eGSZdUiYEYs4uCCNfYQBrjOjwlLAKQ=; b=qU5I5tberMq29XgKmRTygi+iYi2lvXGBdX4vjKT7kA1Bdv7tjDYm8XJSmxLZLVpnjo UgdMCKJo4VGAqpGM0k/2wqkX5riGxGCPsiDxys1CwKfNusySYXaPiup5BLAco/lHZuD6 +zziXukslPXyAPOujE7c8Xb1/pKe7zqKPEiE6zJp1fdWyQiLInih51kMCZxYgBAFBBpK R86XyTYSZ68kfYB1p5u5m6f1qmdF6GX4FDC3UX3a2ROPpGkU2xWfT+6ftjcz2pIJOd63 l7ze7LToq3kK50JKRuYrnBQSL0FbVSVndYfGGM/P9pSOdyXdTFChTZGhmDTE2x21vFkM 0ouw== X-Forwarded-Encrypted: i=1; AJvYcCUBEFqaHDKcRADgdc6nJaH5bLJ4pHHsoxFRrWoq80WqIcOkGTSyfas+cNloxMK6wunmK1shmoeGeeEiDXIU@vger.kernel.org, AJvYcCXSTMRg2wpGWceGq60xCYYdhy5OJaVIOvWIjCa/sPcPIvF8ThhJ2holU1GTmipcB4+z7f3N7QMLVAs=@vger.kernel.org X-Gm-Message-State: AOJu0Yxn07D26r1iiahTQmuO4DWf2mEYxHSlnnkafgya3Z/+BFZjfH1X o4q/TB/iGbePlsuzQagEW6gxSh399am3/gUN0MP3UPM8tKENnqUg X-Gm-Gg: ASbGncvspa/C8M7Eij8gblyr/EYCjadjo8M13R37+gxJ4aqoYjssi3B0F6NO449NR4W BKWBUmdEIMyRjurcnh6V+sQ3v9K7y23pusza2+OEHUD/GpcVzZnjfQEW1c/v+4lJPlt9Jb+2QOq mCObLjM1XNbPNPMDjEbN3rV2b7k3YNna4pW7eSkloMwP6uBklZ2PdbpQZRst5ydez1NmOC3RkBi OBOCIRVhVKNBOV6FwYnXkG05AdXbaWLdnEQknmS/cbXaRMcJD21QDlYrtDd98YECviQive38iht sduLYvhZ5La1F6Xpc0aQNg65km35xsg3yZMUTU7jxXcKjtYwEm2ubz0zkYBWgiUerw== X-Google-Smtp-Source: AGHT+IHTykkMY2VPub0zs/b0tL0+U9e4zfzJQjPRSmVQA++TxLoy1VpNTKXhr0XTBBaywyQwZ0gxig== X-Received: by 2002:a05:6214:4004:b0:6e8:f3af:ed59 with SMTP id 6a1803df08f44-6f2c4578776mr128057446d6.22.1745171664054; Sun, 20 Apr 2025 10:54:24 -0700 (PDT) Received: from theriatric.mshome.net ([73.123.232.110]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f2c2b0c1bcsm34801286d6.26.2025.04.20.10.54.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Apr 2025 10:54:23 -0700 (PDT) From: Gabriel Shahrouzi To: gregkh@linuxfoundation.org, jic23@kernel.org, lars@metafoo.de, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev, Michael.Hennerich@analog.com Cc: gshahrouzi@gmail.com, skhan@linuxfoundation.org, linux-kernel-mentees@lists.linux.dev Subject: [PATCH v3 3/3] staging: iio: ad9832: Add minor improvements to ad9832_write_powerdown Date: Sun, 20 Apr 2025 13:54:19 -0400 Message-ID: <20250420175419.889544-4-gshahrouzi@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250420175419.889544-1-gshahrouzi@gmail.com> References: <20250420175419.889544-1-gshahrouzi@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" Minimize size of type that needs to be used by replacing unsigned long with bool. Avoid redundancy by checking if cached power state is the same as the one requested. Signed-off-by: Gabriel Shahrouzi --- drivers/staging/iio/frequency/ad9832.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/drivers/staging/iio/frequency/ad9832.c b/drivers/staging/iio/f= requency/ad9832.c index a8fc20379efed..2ab6026d56b5c 100644 --- a/drivers/staging/iio/frequency/ad9832.c +++ b/drivers/staging/iio/frequency/ad9832.c @@ -173,13 +173,19 @@ static ssize_t ad9832_write_powerdown(struct device *= dev, struct device_attribut struct iio_dev *indio_dev =3D dev_to_iio_dev(dev); struct ad9832_state *st =3D iio_priv(indio_dev); int ret; - unsigned long val; + bool val; + bool cur; =20 - ret =3D kstrtoul(buf, 10, &val); + ret =3D kstrtobool(buf, &val); if (ret) - goto error_ret; + return ret; =20 mutex_lock(&st->lock); + + cur =3D !!(st->ctrl_src & AD9832_SLEEP); + if (val =3D=3D cur) + goto unlock; + if (val) st->ctrl_src |=3D AD9832_SLEEP; else @@ -189,10 +195,10 @@ static ssize_t ad9832_write_powerdown(struct device *= dev, struct device_attribut st->data =3D cpu_to_be16((AD9832_CMD_SLEEPRESCLR << CMD_SHIFT) | st->ctrl_src); ret =3D spi_sync(st->spi, &st->msg); - mutex_unlock(&st->lock); =20 -error_ret: - return ret ? ret : len; +unlock: + mutex_unlock(&st->lock); + return len; } =20 static ssize_t ad9832_write(struct device *dev, struct device_attribute *a= ttr, --=20 2.43.0