From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ot1-f46.google.com (mail-ot1-f46.google.com [209.85.210.46]) (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 97CF82931C3 for ; Sun, 2 Aug 2026 15:48:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.46 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785685711; cv=none; b=uJoJ0oAM64lb58kFLt+luqccjhl6AyU4E9wtRkL55ESNclrPK3fIqppOn5FlPBB8scU7SgAa8pjhByg1D/Mh0PbhKkNXgKnVVhhrdAt0zvcoM/utvnMRTYYEJVHKNE4PIYdhcw0vw2kEtbtCACw76DHA5VtfCgL3qt28b75CJno= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785685711; c=relaxed/simple; bh=myTdP4N4s072DWu1gMOV6W69n/MSNQkO82Bmy91tiEA=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=l9eoxElPiMPg5Hvm0j53yAx5aZ1eUV9a9r31eeRDOPaYvYtju1BwLLbI0Nj1yo1DUIBI+jQq1M5q6WSBsWIlIqmW5fmWC48gfWqxIS1cfPzu62kWV35EJAEgdkUjzylM47VZDIw6DuXRbGrDVGBmDvBucPIPTkOSkRfsrPsL5Rc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre.com header.i=@baylibre.com header.b=pfIcUDRy; arc=none smtp.client-ip=209.85.210.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre.com header.i=@baylibre.com header.b="pfIcUDRy" Received: by mail-ot1-f46.google.com with SMTP id 46e09a7af769-7e9eaf04bfaso918388a34.1 for ; Sun, 02 Aug 2026 08:48:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre.com; s=google; t=1785685708; x=1786290508; darn=vger.kernel.org; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to :content-type; bh=nLFjfOG0F3eOdr1zFSNvNYgJ1EFWsu5Z5Uaya2xDFW4=; b=pfIcUDRyD5XZSVDwci0YsxwyvZERKtH3g2EwYCnn8KFnuwa0e87V6dIpH8M9pwdG8d 72cB0TJcwuvui3nm/FCor3CCUoDOv+SJ/5aPk7CY3li0rsQoK34iWVHHcqaaivFQYEeI G8f6WJ+AjesBpaT+q814YCzizllOC+p+f/5ho7D+RYYfKtv43pwVrFl5F9k+/KsmVb34 LluVnpQbvY1yUHQNFeOkJNhmhDkwnLTtbvXpz1JLaZXWd7n2z4RzEOJ2Popb349VkQuq ZRD14v0wbCqO7o2qCM59yDbpnGVvwsy3GIFM8sJNaAd4Zb5rDp8J8goMhR3SFSoSBAiz 19NQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785685708; x=1786290508; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=nLFjfOG0F3eOdr1zFSNvNYgJ1EFWsu5Z5Uaya2xDFW4=; b=sof0Ez4GOCV0B/XbJv8wmX0PQs7QPLJQgaci9VlWM5bRYMyeJlu0d8c5hq/pE9hkxl 2JjDRfQwPBg4fcd+npYmkIC5/KgcRvQukvBget7nicTheAH/NPn0PELFUCPj0E7dedfm boi6oAVYt7k6k1th+ldIIJrNuVttN0WIWTyBw3xoKVpyS2NfWba8423cmgDwSi4fQKZu GhAkgXEy6raTwUVJoH3BJzshua5RcG7PzGLLgJCpzqn1kFcWHAxXiGbCBxTDXZOjUHRN 1NQiPyuR1UQF6BwaL7YMEicMp3NyoCoE8VzZJyHtVdAF+kXBUkM/bdtwFLzHWYCfdT38 Vymw== X-Forwarded-Encrypted: i=1; AHgh+RpYJhgsaImM+T7g2dBcDcZsS5OdwwNarDF/dDObCY6ChOmrTmo7oaHWHPnFlsnyWWdQm+ZL2CTfoyjNp9k=@vger.kernel.org X-Gm-Message-State: AOJu0Yy8JDS7h5fN25BQ4yjytI1uO+iZAdk9G7BefdglvuSbx1K6B0RZ 6p6NmkxC3RvZDjX0HMBRSj2dzdRl56J3LXGqMPOqzTNcpcZkdMRc1BenZzkssHaWf7Q= X-Gm-Gg: AR+sD13WAlvAQv4PGen1wkKAu+x5hTTeHEMFgbUXv3NX3tl86u4pxTJR0w/2bTj4t8w /ENtufZaMv0ZPQuAbdUddf8fp98EHLZ5JVpVaVzhEYCksC4et4gK1M97Be0wucIoY4Cr54SdtBd Tg/vKUtKAnMPrnpPV1McQMRD8tQ0fmfACarF9+ko4nn25ZiUvj5A/Ns5wMDTMyHd0755cN3NZsw FbIl5FmtX9t2NuD9kTkkpT/wEuacu//goDH/sLUdcI7kGqp/VDt8OgKtG5fhwrip8QVu9fTV7wG U33BnXeLeMFw5UXjOMWGx8o+0QTmZIsPR4yJs5XhIsBwJT8Rao2HeOp6lMr9Zz/N6REDWaWLCOz rIJMiWY9kbbsJpPBcwfmfWqaGVmWXC2q2rj5zLfkIX3Igm6FGa+oPcp6WFf7ojRSQjW137REVwO 2CMBn/rB9URqIzTinR+vVid0a9NMgJhUyAAQVXyxho5Lenzubqi1ut8jm6M2SuL/xgxYYbJcVFl LT/+rFdWAP0AmolBv3bQZUOQIWgk9kJ2HG6V1XSGR7Jp4YtNng= X-Received: by 2002:a05:6830:63cd:b0:7ec:6512:ee12 with SMTP id 46e09a7af769-7f196d614f5mr12718596a34.12.1785685708502; Sun, 02 Aug 2026 08:48:28 -0700 (PDT) Received: from ?IPV6:2600:8803:e7e4:500:5487:2b6e:1057:d3d3? ([2600:8803:e7e4:500:5487:2b6e:1057:d3d3]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7f18f07a586sm5341084a34.16.2026.08.02.08.48.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 02 Aug 2026 08:48:26 -0700 (PDT) Message-ID: <06f059d0-ac5f-408e-81ed-220f4cb1daf5@baylibre.com> Date: Sun, 2 Aug 2026 10:48:26 -0500 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] iio: adc: pac1921: fix wrong channel used in trigger handler read To: Cong Nguyen , Matteo Martelli , Jonathan Cameron Cc: =?UTF-8?Q?Nuno_S=C3=A1?= , Andy Shevchenko , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org References: <20260802071246.62046-1-congnt264@gmail.com> Content-Language: en-US From: David Lechner In-Reply-To: <20260802071246.62046-1-congnt264@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 8/2/26 2:12 AM, Cong Nguyen wrote: > pac1921_trigger_handler() walks the enabled channels with > iio_for_each_active_channel(), which yields the scan index (bit) of each > active channel, while ch is a separate counter used to pack the samples > contiguously into the scan buffer. > > The register to read was looked up with the packing counter instead of > the scan index: > > ret = pac1921_read_res(priv, idev->channels[ch].address, &val); > > pac1921_channels[] is ordered by scan index, so channels[bit] is the > channel that is actually enabled, whereas channels[ch] is merely the > ch-th array entry. These coincide only when the enabled channels form a > contiguous prefix (e.g. all channels enabled). With a sparse scan mask - > for example when only the power channel (scan index 3) is enabled - the > handler reads the wrong register (VBUS instead of VPOWER) and pushes it > to userspace as the enabled channel's data. > > Index the channel array by the scan index (bit) to read the correct > register, keeping ch only for contiguous packing into the scan buffer. > > Fixes: 371f778b83cd ("iio: adc: add support for pac1921") > Cc: stable@vger.kernel.org > Assisted-by: Claude:claude-opus-4 > Signed-off-by: Cong Nguyen > --- > drivers/iio/adc/pac1921.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/iio/adc/pac1921.c b/drivers/iio/adc/pac1921.c > index bce7185953ec..0037509503ed 100644 > --- a/drivers/iio/adc/pac1921.c > +++ b/drivers/iio/adc/pac1921.c > @@ -1037,7 +1037,7 @@ static irqreturn_t pac1921_trigger_handler(int irq, void *p) > iio_for_each_active_channel(idev, bit) { > u16 val; > > - ret = pac1921_read_res(priv, idev->channels[ch].address, &val); > + ret = pac1921_read_res(priv, idev->channels[bit].address, &val); > if (ret) > goto done; > Looks correct. Reviewed-by: David Lechner