From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 919412FD7D3 for ; Sun, 29 Mar 2026 13:19:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774790349; cv=none; b=C4Mm+pxdM5gAWJ/Hk0LsoV0W6lKK37qtGlY+phUDrrjzJRWbhlVtS5BBwrTlu64uirTiHuR2shR5v5Uux8qsd5n9v6oKXsqjQJVi59mIdU78iHKJQ+QOIBydnbYRodfjSRPSmWW2iWWSnPGXMLLoX9BxdMdpXf+XgO0ffKN4/N4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774790349; c=relaxed/simple; bh=6HdxZeRqw294WoPFpTYC4yNIbr/WqiK6VFXqfn0XXUA=; h=Subject:To:From:Date:Message-ID:MIME-Version:Content-Type; b=K4rjVawsCIu+0yWnWbeoBna+SD98VBrCDaN1wFXhIPr78hngPWruJxpIvm7GJKoxLmCPDQlUN/maiMaca0QRg4FdHfXNs/ShuapulpTxLc5jhdhMD+0qnUEvs5iseZndexv48gmbU9g0jVGF5h+Uh9QSUiy4Vx111v6y5Ku4urQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=vbMLJq3q; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="vbMLJq3q" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DB7C0C116C6; Sun, 29 Mar 2026 13:19:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1774790349; bh=6HdxZeRqw294WoPFpTYC4yNIbr/WqiK6VFXqfn0XXUA=; h=Subject:To:From:Date:From; b=vbMLJq3q4JnIfGus7gKJ9AtkVYFL/I9R4ECBCCVnFYxGlY1qRjEXcnjGAoo5ddDCt cIb7kec+7T+AOMdIIcVfKJKC8D/+89wwoad0bzqeL93HOlGtIBK81e1a0p5UAWKcB2 /vvQkWKO0nlpOtIFFgYJtmYQgJT4owsaXgxVmIdI= Subject: patch "iio: adc: ti-ads7950: do not clobber gpio state in ti_ads7950_get()" added to char-misc-linus To: dmitry.torokhov@gmail.com,Jonathan.Cameron@huawei.com,Stable@vger.kernel.org,dlechner@baylibre.com From: Date: Sun, 29 Mar 2026 14:50:15 +0200 Message-ID: <2026032915-rebuilt-evil-48b0@gregkh> Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: 8bit This is a note to let you know that I've just added the patch titled iio: adc: ti-ads7950: do not clobber gpio state in ti_ads7950_get() to my char-misc git tree which can be found at git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git in the char-misc-linus branch. The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.) The patch will hopefully also be merged in Linus's tree for the next -rc kernel release. If you have any questions about this process, please let me know. >From d20bbae6e5d408a8a7c2a4344d76dd1ac557a149 Mon Sep 17 00:00:00 2001 From: Dmitry Torokhov Date: Thu, 5 Mar 2026 11:21:53 -0800 Subject: iio: adc: ti-ads7950: do not clobber gpio state in ti_ads7950_get() GPIO state was inadvertently overwritten by the result of spi_sync(), resulting in ti_ads7950_get() only returning 0 as GPIO state (or error). Fix this by introducing a separate variable to hold the state. Fixes: c97dce792dc8 ("iio: adc: ti-ads7950: add GPIO support") Reported-by: David Lechner Signed-off-by: Dmitry Torokhov Cc: Signed-off-by: Jonathan Cameron --- drivers/iio/adc/ti-ads7950.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c index b8cc39fc39fb..cdc624889559 100644 --- a/drivers/iio/adc/ti-ads7950.c +++ b/drivers/iio/adc/ti-ads7950.c @@ -427,13 +427,15 @@ static int ti_ads7950_set(struct gpio_chip *chip, unsigned int offset, static int ti_ads7950_get(struct gpio_chip *chip, unsigned int offset) { struct ti_ads7950_state *st = gpiochip_get_data(chip); + bool state; int ret; mutex_lock(&st->slock); /* If set as output, return the output */ if (st->gpio_cmd_settings_bitmask & BIT(offset)) { - ret = (st->cmd_settings_bitmask & BIT(offset)) ? 1 : 0; + state = st->cmd_settings_bitmask & BIT(offset); + ret = 0; goto out; } @@ -444,7 +446,7 @@ static int ti_ads7950_get(struct gpio_chip *chip, unsigned int offset) if (ret) goto out; - ret = ((st->single_rx >> 12) & BIT(offset)) ? 1 : 0; + state = (st->single_rx >> 12) & BIT(offset); /* Revert back to original settings */ st->cmd_settings_bitmask &= ~TI_ADS7950_CR_GPIO_DATA; @@ -456,7 +458,7 @@ static int ti_ads7950_get(struct gpio_chip *chip, unsigned int offset) out: mutex_unlock(&st->slock); - return ret; + return ret ?: state; } static int ti_ads7950_get_direction(struct gpio_chip *chip, -- 2.53.0