From nobody Tue Sep 29 11:52:44 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 59CE63B8939 for ; Sat, 8 Aug 2026 09:00:57 +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=1786179659; cv=none; b=IV5dPH95hqV6/qWtEzhpCiZ60coZbjGCDXYPRMPmi0CBri4hVuCVxcSqLtPy1YjjOpJU7DMAfTqMkRWRnCJAfyKqKQlxSH2HsmGMkToffvfftB2PNajmatXBEy9yKLyLqamtBPagWYtDnQ4cwcnjNse0wxOIWmSlFSa/N4xYzLA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786179659; c=relaxed/simple; bh=IKD1gKaNsgaVAcBRxbLjFsH0xtEpv4azMpvN9XRWifk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EmoiOPdh1uk/knkmt9LJRZN3OiK1APo5hK/o0yE/seT0Thkee9UY+sM4Iy7gYHLPU4lzFZ9wjoFieFcl84FbWKbPdHIWjZHxwc+Dt6JyZ7r6bRNVKKHYJF5WQoaNhE9koM+ys2DzE6gLZrDia0mljww5QDRD2yfFFSDk+XxYhns= 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=JDv6UNi7; 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="JDv6UNi7" Received: by mail-pf1-f169.google.com with SMTP id d2e1a72fcca58-848743155bcso80187b3a.0 for ; Sat, 08 Aug 2026 02:00:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786179656; x=1786784456; 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:content-type; bh=Ge2ItlSoH59iRKQvJyLrgo1nbfxoN8NfgLJkyxe+oXw=; b=JDv6UNi7R/JJOEkTAS3sxRymdXep/egbQsjETJ8/9mLqzIKrDFXDn8BFkTir5vuBfz S3V2uP4Qjjv08r9vN7byUtySn+iEXgZ6cCz2+YbKnOrqI0JLNqVlNk1IcbgHqTYHOiaa P+JzACMkuaNA2ctjWSccx1MOEGGffAkNIdtx7p/trzqfQuJ2POsU452kAi5gtNqhqu4V p5XyVsKQz+A2EJ5F/YkRiV9MF77CgWAQmooWISFyu4gYee9GE5OIIt5vDMU7QpGZrKzC NXgp5cDHb2ED2OUe5Xv+cPzmHsYa1NvxrAt2Q8cIRZb9r9h28UiBpLIsQnidLupa4JEA x2NQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786179656; x=1786784456; 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:content-type; bh=Ge2ItlSoH59iRKQvJyLrgo1nbfxoN8NfgLJkyxe+oXw=; b=Jg49ta2NuX38I9/MV3c/AAzPq0wCa0b0Drvua2UAYvweB5Sc4c5kRrO8Iiazp0I5a3 X7z8XJdsoAkN07tmnEVPXSVRjx1fvwY4MTpqI7o7bSnv0jReJIRG0EWSkTGURvo3vxg4 7n6y6JQMxf1Fib0aLtpnGxR4IHjQwmDITQcfO1E0CkVdm0el55n2GKXKDZjwGUG6DQEL qOkZ3TNw2ewfgPIS2fFDN169q8L1uqc+5Hz0epoqLqAoCJTigs1kDk9ZGkzzVjk810KP 59bT9rDNoKz/SU98jjzBmgUicbq5uK3m1JRzEbmPXyN5yRuDUJDycEqRU7wGAsXPen0H kE/Q== X-Forwarded-Encrypted: i=1; AHgh+RpUdFix84/PgvSY9t2aTCYcZ654iJnq2U+jv7UjaLPoiA49hgBy1JaXNGy9UNnTxqJA7bUJFn7KjYGigkE=@vger.kernel.org X-Gm-Message-State: AOJu0YwNTVphX100XyMx+5quzIHnoFUDoZnO26wU76SNSxa+AN8rtzKe a/G6WO9ryfGETnns8CDn+skH6KcKZ5jrIgLhLaGrkNjswZWmfjW0NgXW X-Gm-Gg: AR+sD13WwWgq9isvz89EAJmv0aMePq5QhGgRwCcFp4M3OGijtCYxgQx7v+LO3hhM8k4 mIXjURZBbiUArzNDeiEJLKH4SNDryp2U1HnZbH+SK9Om8dBK/GSj8BXGH7/rQ5hxEsfqf1PY7pu 9fRbWYu68LK5CR75YyQFbC6ATwquVTS9VA4lx0Y2mGrm1QOcKPK6q991ovPLs8XPxBUGCWY+Zh+ Z5XMTEulkay76XP+lPq6qEvjNreTWt6Bpf6EiASxr1K0PLJWaWaQs1xMxSnE7jc0pitNZ0huJhv DSgVA+E1LpMggqBScmeb0+qO+5miv9z3BDv8WD0vd+3hB929wV/LTOQfhvcgU+SvfVEhBraXg7T +ak78vej/zwu5aoHqwg65/0iv+rb4LVG/AM3v206NPg78S/YynM4QOo7FxQLt0frCzL56shygBq Xjuc5li4ekuzUFvfFi30wWJHIGjfJP0zaNb6bgBra/1htrwxVge4UpCRMQtIxBivZ1K7dS5gf6g HMYbM2OufakxhgAx/0LQXmZr//vH7Q6CjY9L4yOo6D9l7ykM01lJEDn7ABwgPQ= X-Received: by 2002:a05:6a00:1391:b0:845:dfef:75b8 with SMTP id d2e1a72fcca58-84f4fdbfe20mr15922860b3a.15.1786179655627; Sat, 08 Aug 2026 02:00:55 -0700 (PDT) Received: from debian13.localdomain (bb219-75-96-14.singnet.com.sg. [219.75.96.14]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84f5a51e9f0sm1973871b3a.28.2026.08.08.02.00.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Aug 2026 02:00:55 -0700 (PDT) From: Adi Nata To: lorenzo@kernel.org, jic23@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: linux-kernel-mentees@lists.linux.dev, Adi Nata Subject: [PATCH 1/5] iio: humidity: hts221: report available values via read_avail() Date: Sat, 8 Aug 2026 17:00:22 +0800 Message-ID: <20260808090026.34187-2-adinata.softwareengineer@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260808090026.34187-1-adinata.softwareengineer@gmail.com> References: <20260808090026.34187-1-adinata.softwareengineer@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 the custom oversampling_ratio_available sysfs attributes with the standard IIO read_avail() callback. This lets the IIO core create and format *_available attributes and exposes the lists to in-kernel consumers. Signed-off-by: Adi Nata --- drivers/iio/humidity/hts221_core.c | 106 +++++++++++------------------ 1 file changed, 40 insertions(+), 66 deletions(-) diff --git a/drivers/iio/humidity/hts221_core.c b/drivers/iio/humidity/hts2= 21_core.c index bfeb0a60d3af..76a391f421f5 100644 --- a/drivers/iio/humidity/hts221_core.c +++ b/drivers/iio/humidity/hts221_core.c @@ -10,7 +10,6 @@ #include #include #include -#include #include #include #include @@ -49,7 +48,7 @@ struct hts221_odr { struct hts221_avg { u8 addr; u8 mask; - u16 avg_avl[HTS221_AVG_DEPTH]; + int avg_avl[HTS221_AVG_DEPTH]; }; =20 static const struct hts221_odr hts221_odr_table[] =3D { @@ -58,6 +57,8 @@ static const struct hts221_odr hts221_odr_table[] =3D { { 13, 0x03 }, /* 12.5Hz */ }; =20 +static const int hts221_odr_avail[] =3D { 1, 7, 13 }; + static const struct hts221_avg hts221_avg_list[] =3D { { .addr =3D 0x10, @@ -97,7 +98,11 @@ static const struct iio_chan_spec hts221_channels[] =3D { BIT(IIO_CHAN_INFO_OFFSET) | BIT(IIO_CHAN_INFO_SCALE) | BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), + .info_mask_separate_available =3D + BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), .info_mask_shared_by_all =3D BIT(IIO_CHAN_INFO_SAMP_FREQ), + .info_mask_shared_by_all_available =3D + BIT(IIO_CHAN_INFO_SAMP_FREQ), .scan_index =3D 0, .scan_type =3D { .sign =3D 's', @@ -113,7 +118,11 @@ static const struct iio_chan_spec hts221_channels[] = =3D { BIT(IIO_CHAN_INFO_OFFSET) | BIT(IIO_CHAN_INFO_SCALE) | BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), + .info_mask_separate_available =3D + BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), .info_mask_shared_by_all =3D BIT(IIO_CHAN_INFO_SAMP_FREQ), + .info_mask_shared_by_all_available =3D + BIT(IIO_CHAN_INFO_SAMP_FREQ), .scan_index =3D 1, .scan_type =3D { .sign =3D 's', @@ -192,53 +201,35 @@ static int hts221_update_avg(struct hts221_hw *hw, return 0; } =20 -static ssize_t hts221_sysfs_sampling_freq(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - int i; - ssize_t len =3D 0; - - for (i =3D 0; i < ARRAY_SIZE(hts221_odr_table); i++) - len +=3D scnprintf(buf + len, PAGE_SIZE - len, "%d ", - hts221_odr_table[i].hz); - buf[len - 1] =3D '\n'; - - return len; -} - -static ssize_t -hts221_sysfs_rh_oversampling_avail(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - const struct hts221_avg *avg =3D &hts221_avg_list[HTS221_SENSOR_H]; - ssize_t len =3D 0; - int i; - - for (i =3D 0; i < ARRAY_SIZE(avg->avg_avl); i++) - len +=3D scnprintf(buf + len, PAGE_SIZE - len, "%d ", - avg->avg_avl[i]); - buf[len - 1] =3D '\n'; - - return len; -} - -static ssize_t -hts221_sysfs_temp_oversampling_avail(struct device *dev, - struct device_attribute *attr, - char *buf) +static int hts221_read_avail(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + const int **vals, int *type, int *length, + long mask) { - const struct hts221_avg *avg =3D &hts221_avg_list[HTS221_SENSOR_T]; - ssize_t len =3D 0; - int i; - - for (i =3D 0; i < ARRAY_SIZE(avg->avg_avl); i++) - len +=3D scnprintf(buf + len, PAGE_SIZE - len, "%d ", - avg->avg_avl[i]); - buf[len - 1] =3D '\n'; - - return len; + switch (mask) { + case IIO_CHAN_INFO_OVERSAMPLING_RATIO: + switch (chan->type) { + case IIO_HUMIDITYRELATIVE: + *vals =3D hts221_avg_list[HTS221_SENSOR_H].avg_avl; + *length =3D ARRAY_SIZE(hts221_avg_list[HTS221_SENSOR_H].avg_avl); + break; + case IIO_TEMP: + *vals =3D hts221_avg_list[HTS221_SENSOR_T].avg_avl; + *length =3D ARRAY_SIZE(hts221_avg_list[HTS221_SENSOR_T].avg_avl); + break; + default: + return -EINVAL; + } + *type =3D IIO_VAL_INT; + return IIO_AVAIL_LIST; + case IIO_CHAN_INFO_SAMP_FREQ: + *vals =3D hts221_odr_avail; + *type =3D IIO_VAL_INT; + *length =3D ARRAY_SIZE(hts221_odr_avail); + return IIO_AVAIL_LIST; + default: + return -EINVAL; + } } =20 int hts221_set_enable(struct hts221_hw *hw, bool enable) @@ -521,27 +512,10 @@ static int hts221_validate_trigger(struct iio_dev *ii= o_dev, return hw->trig =3D=3D trig ? 0 : -EINVAL; } =20 -static IIO_DEVICE_ATTR(in_humidity_oversampling_ratio_available, S_IRUGO, - hts221_sysfs_rh_oversampling_avail, NULL, 0); -static IIO_DEVICE_ATTR(in_temp_oversampling_ratio_available, S_IRUGO, - hts221_sysfs_temp_oversampling_avail, NULL, 0); -static IIO_DEV_ATTR_SAMP_FREQ_AVAIL(hts221_sysfs_sampling_freq); - -static struct attribute *hts221_attributes[] =3D { - &iio_dev_attr_sampling_frequency_available.dev_attr.attr, - &iio_dev_attr_in_humidity_oversampling_ratio_available.dev_attr.attr, - &iio_dev_attr_in_temp_oversampling_ratio_available.dev_attr.attr, - NULL, -}; - -static const struct attribute_group hts221_attribute_group =3D { - .attrs =3D hts221_attributes, -}; - static const struct iio_info hts221_info =3D { - .attrs =3D &hts221_attribute_group, .read_raw =3D hts221_read_raw, .write_raw =3D hts221_write_raw, + .read_avail =3D hts221_read_avail, .validate_trigger =3D hts221_validate_trigger, }; =20 --=20 2.47.3 From nobody Tue Sep 29 11:52:44 2026 Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) (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 9AC9A3B8130 for ; Sat, 8 Aug 2026 09:01:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786179666; cv=none; b=tkj5PXE/MX/uEz6IOvEyzAGqhQL5iyewkK4GfKZwCw7PBcNacdoJzQ0VH5Uk7kpPoc1/ahUHcXd9vJ5SkN1E+jzinezKRyi/N/HjyBuO2n6Ef0xkQpxFL/uA89ssQdp8tTRom8vU5vWoXk6epWphrSWvVR6ITEjqQGeLzm5Bc9E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786179666; c=relaxed/simple; bh=Al+keQgNW/pNQNnVIlyN6dMkqxOCg3QqdJNuM9v8JS4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PaOWMuxm6TiX7lPkpP1/bnygPUEO4ytY97icxfr7ZVjrOjavK3k8EtwNcko9mWBPLETZ1NQSeum953b8ZbgiTV0j1ndBtJlhxV6xu+lWDViFqPkZE3zJds+PVJttGxwUOJJOsNgAohpGgW/Tsz57i00NbI5Cx0e4v4h3Y1vRkR0= 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=Br0L/tVg; arc=none smtp.client-ip=209.85.210.170 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="Br0L/tVg" Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-84862b0d5f8so214190b3a.3 for ; Sat, 08 Aug 2026 02:01:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786179664; x=1786784464; 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:content-type; bh=kF/b+Gd23S8p1kMd//04QDrp+FqRSM+cdSuEkId8c2c=; b=Br0L/tVgEF5jRdZCcCHaxnOkaQClwNrY/c/chdEK046dW3g5ptmmjs/RxdWh+Hg+XQ oUB1hPshHRGv9RPzLaxD8aIkMi9XCO7lojGKEU2mEu+whO3Rhrr8udm+JT8xWcT4nwob 5IrYRfaJGH7HboTqsbxq2pGO5oUM/0qShnx+6IaHt31N16cNK/bGklEdJVud1IqYh87P pbXvpg9Kb4a9OfbNjs+Pem5iGtP0Uxe7k84ym7umqGEXasYAYc8wruT1k8+ir0A9bnWX 90fKdZTKr3br04AWxwpkgCkr07dKshUGjPX7/MikXChpfPJZtDIX4+lc1iwKe4ZWBWVM 5fiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786179664; x=1786784464; 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:content-type; bh=kF/b+Gd23S8p1kMd//04QDrp+FqRSM+cdSuEkId8c2c=; b=gKVfSo/1XdTeTOCdeL8BetZNWKjL//g0uu8Z/EFpbIubO06Fe7kxAdRJ7zE+uFd8pP QOKaVYoXekqiWItIM+4pGDbFJklbM/535KXhQv0zTdTH7WAQkhvpb8VAhmpbntkfxIA9 2AXfq42pct3nS/tsgBqS/RmDKeD+grpTQ7inAb17vma4we/WWaSZ0SiFQb9GC2AeAgva B8ciVFJ2Nn7kclaZe4SOVqoWmkod1ptg4ptgKL1dug7pXbCs0WifKE5314E0dPQQ0m// famv2P4mtl5557jtMzx/GEUoEJJruG/eFV1XGMMzuzIi42B4ho34VkQF+0026w8W/99s JhnQ== X-Forwarded-Encrypted: i=1; AHgh+RpzG5S0zr8x9Y65WXn9L/liOHA6VtVa2qys1OevljQoF6BlAeRNtzgmPOYPyg9SY1JuJukSmWpchNWhjBQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyOPZJphjchzWY6jrGYpPWE81q4HvR7EbzmV2CjbZkznbhiAbHf LIp69Tf8eth3c7uSqxJ0j0zc86t/jcGyuZHtaBRmK/X7pb2tPMmB85D/ X-Gm-Gg: AR+sD11qg7CfCJmPFZ+CXq9lTS2Uusm6KhqkfxJt9gMG/jaD8+hk8HgSuPtNMhgPpsv sX09xoZf95WaYhqlXGSkXgwKWIluwVyBmLVwYsT1TK57YIxSo9HN2bKArwmMqK6tZ7s82cPTFXt y9EZ2Cm1d8qnt51QSjTEGkANPtGfE0T70uK9wb9b9IKkto1RxlX0WOjPG76yuOYTgDDWM+f7CEC ETlXK30DSC/1WxbyuIVBNFRVGnKTNKOJcAPaRvjoujaKoHwB6MqDITVYr5GhyfIWeoRvdXLzsYq EYfoGWgpBlT6bFCSzcoLjMQC08U6SJapD5yfWHQb+UoJwhZa/R1R56ldEr01nXVA/JjYviMOQg5 I1vCu8tGE6qj01UWhW74j9xLP+M7yzYYbEOVnZFxqFl1HdfAEvLzjO7TBHxrTY8894ZWdgPYGvp gFaGG9Ad53kvKUsAEeNaGtEimLQjkD26kL6ov4EyxEeknVihMmSayUVzNMnGun4ElUZaYWQLUCf Nfj+7qW1hk45b1R2r4cAsaidBsyzEGmefrlaEjHCuROY7nilA9XI0QTv/bc3w== X-Received: by 2002:a05:6a00:399f:b0:848:42a7:1854 with SMTP id d2e1a72fcca58-84f4fee21bemr16602687b3a.39.1786179663846; Sat, 08 Aug 2026 02:01:03 -0700 (PDT) Received: from debian13.localdomain (bb219-75-96-14.singnet.com.sg. [219.75.96.14]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84f5a51e9f0sm1973871b3a.28.2026.08.08.02.01.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Aug 2026 02:01:03 -0700 (PDT) From: Adi Nata To: lorenzo@kernel.org, jic23@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: linux-kernel-mentees@lists.linux.dev, Adi Nata Subject: [PATCH 2/5] iio: humidity: hts221: Add a blank line after variable declarations Date: Sat, 8 Aug 2026 17:00:23 +0800 Message-ID: <20260808090026.34187-3-adinata.softwareengineer@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260808090026.34187-1-adinata.softwareengineer@gmail.com> References: <20260808090026.34187-1-adinata.softwareengineer@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" Improve code readability per checkpatch warning Signed-off-by: Adi Nata --- drivers/iio/humidity/hts221_buffer.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/iio/humidity/hts221_buffer.c b/drivers/iio/humidity/ht= s221_buffer.c index 4d03db19063e..c868549d09c0 100644 --- a/drivers/iio/humidity/hts221_buffer.c +++ b/drivers/iio/humidity/hts221_buffer.c @@ -194,6 +194,7 @@ static irqreturn_t hts221_buffer_handler_thread(int irq= , void *p) int hts221_allocate_buffers(struct iio_dev *iio_dev) { struct hts221_hw *hw =3D iio_priv(iio_dev); + return devm_iio_triggered_buffer_setup(hw->dev, iio_dev, NULL, hts221_buffer_handler_thread, &hts221_buffer_ops); --=20 2.47.3 From nobody Tue Sep 29 11:52:44 2026 Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) (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 C10783BA25F for ; Sat, 8 Aug 2026 09:01:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786179671; cv=none; b=uSC93BYNaIWljhz5Mj9s9X+838v+L/BKMH/npoNNtQJ2CeSkxa/c0Xfr5Sw69IIq6CYUMiExXYXKUL8q4ciJPx1pfSlALxUcZR/o9mIkX055X4/8atir3ZU3d/m5jHCxfKDwU7CWMrZRuZhgk4Wq8G56tqFgIu3BkbGJ3JizDaQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786179671; c=relaxed/simple; bh=EHfaoi/H5aVDlNxnEr2yGng8APrb8ROD3VYBvv0JVis=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tth4y+Q9RT6wWmr653DfKl1ZRszTHzGdzMBiqVpHBXAi/yzYlkwsOEdSDyWwckGNnH0Gl0o3oEKDnYYbzn9qt8GpP3CpP+wbqVlZxJnWvjjBkFZq6K55P/MrAxo5DlVpUjPzW0UOXB9s9hJdzZo51PCq3uKSavDYDKdPnIPumpQ= 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=POfxsR+o; arc=none smtp.client-ip=209.85.210.171 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="POfxsR+o" Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-84f38f3b36eso196541b3a.1 for ; Sat, 08 Aug 2026 02:01:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786179668; x=1786784468; 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:content-type; bh=y0kd4BZdCcR2jnnA1HcZjBK3ddxINoAkrrsu0qcIwIE=; b=POfxsR+ocwgVUhaYW72DlLRGNjGsxhYuTbpfZ36s/t1LCGv5DY/cIkS+fiGipnvn38 7xYG4ztHYi5/4K+cIVGpWOq7Hzqxxbqb+s8tINUhwK3cdBiM4FfhR9+0TNf2/BQ4sG/U xy/cwQqGzz+scH/RvTRNVxoJu06nCHB72e6DUXW1WwBTuNshUi4KxY1sgvfe2Rv9d5Te kycK3yNzYU5czCLY/brqkVEiSzC5okNatT4EzH8rTee+uHV0C7zxcmoDDJvgLcmeVjXp aOJdV+LcqivtfZ004TmZ/ENoEUldDoeuevck1ehW6hRA1xVVqOISAvIeC9CGFJXEjBjm pvNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786179668; x=1786784468; 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:content-type; bh=y0kd4BZdCcR2jnnA1HcZjBK3ddxINoAkrrsu0qcIwIE=; b=rgDsRZ2HZEVzNQxwlrpXc2dxit7sp4hv8LNFM5DssQwqXEqYXIfrC58rqvhwoBq2KT JWmgYGPKMn97wS7LWaR62Wm4ssfHGD88WU0ApMZx0ZyAlp7lWrNwrQI2/fnqfsKSiJNy 3owDBFbKgwOvNruncVqUhfakNpG5S8GBrNBCdYrJxP0n9H3JPLreB4zCaHncw859Ahch HXCyXnnqIrhzCdJB00aDg+gqwkuuD1fXNQ+7KwYZEE4Q8x/M76/dyaMKI6BU+0jqnM2+ ljsL/GeY0Xus25aNoVtc7LoMxK//0tR/1VXev8gEfClcQbvao43BwoJi9zzbFj8sj+ae ajTw== X-Forwarded-Encrypted: i=1; AHgh+RqSsxCSkJ8WoQWtvMkU2/l0UC9hhAlFBKJxRi1FyiGxnyHUAY+rO8Mk21LL0pzq4Vtk2w1QI3eUpW1bWIY=@vger.kernel.org X-Gm-Message-State: AOJu0YyhAe2KzBbukNlRAfudNK89+88f/79h7hjFRUMyX9k0FeF3vKa1 M/5qK1+Un5omxVlk+Gb4sM1TJvpEAc+G7dpVwbVKKE1H6RTanVga+9DB X-Gm-Gg: AR+sD121R1Pm7cNdnzj8aS+FS+G8PL9209pNjRt2SoKPbtYYx8PC+MOfTqEoZJeXtOD Iu0jwpBgahQhw1YykJ+u7cUuAlV2EaKyjsd0uA53b8i2OklOaCsOxH/KLcF8laidzVaNamOAoRY NWW6u9PKXYu5l491qKL7aAC0+H7ClWm2/iBf3+vX5blA2stuEJIhkMUoxWdqbk9jyda3Gp2CK7U YWA8kZwVzrMRfc5vlrYsst2hX5dlsAU0pErhnqyl0ifotBNC/WGarkr93kRlzfFz2hj0yNkigkh C9NypOa2rPcSDuBcMlaCZnzgQebh0b56n8EaF9/giVV8qWDjV3q5YjluTehhUZeV7YamkafLF96 CPqpTqFPTOLhPy1JRqpCClCB5yHvg7rv9+A0eekQ+YXr9k88i1Ny5p+sv2zGyVM85ctsvenpatk FMTJy82UnvJJd+rs6jk24My4UUjDlsmExntu4OIh9nKZsw/tltVonrY3QZe0qkdcL7t0QQXoy7/ PMwwmZDgS3+PcLb0Fe8w1VkFDsBwi/fQuG19eTM1GZH85nzrmMc17fip9Lbkg== X-Received: by 2002:a05:6a00:8d1:b0:845:ba94:a56 with SMTP id d2e1a72fcca58-84f4fd9f82amr15992649b3a.5.1786179668348; Sat, 08 Aug 2026 02:01:08 -0700 (PDT) Received: from debian13.localdomain (bb219-75-96-14.singnet.com.sg. [219.75.96.14]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84f5a51e9f0sm1973871b3a.28.2026.08.08.02.01.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Aug 2026 02:01:07 -0700 (PDT) From: Adi Nata To: lorenzo@kernel.org, jic23@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: linux-kernel-mentees@lists.linux.dev, Adi Nata Subject: [PATCH 3/5] iio: humidity: hts221: Allow unknown whoami for DT fallback Date: Sat, 8 Aug 2026 17:00:24 +0800 Message-ID: <20260808090026.34187-4-adinata.softwareengineer@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260808090026.34187-1-adinata.softwareengineer@gmail.com> References: <20260808090026.34187-1-adinata.softwareengineer@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" The WHOAMI check currently returns -ENODEV when the chip ID is not 0xbc. That rejects Device Tree fallback compatibles. Keep failing if the WHOAMI register cannot be read. On an unexpected ID, log it and continue so OF fallback matching can work. Use dev_err_probe() for the read-failure path. Signed-off-by: Adi Nata --- drivers/iio/humidity/hts221_core.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/drivers/iio/humidity/hts221_core.c b/drivers/iio/humidity/hts2= 21_core.c index 76a391f421f5..da773d2edc80 100644 --- a/drivers/iio/humidity/hts221_core.c +++ b/drivers/iio/humidity/hts221_core.c @@ -139,16 +139,13 @@ static int hts221_check_whoami(struct hts221_hw *hw) int err, data; =20 err =3D regmap_read(hw->regmap, HTS221_REG_WHOAMI_ADDR, &data); - if (err < 0) { - dev_err(hw->dev, "failed to read whoami register\n"); - return err; - } + if (err < 0) + return dev_err_probe(hw->dev, err, + "failed to read whoami register\n"); =20 - if (data !=3D HTS221_REG_WHOAMI_VAL) { - dev_err(hw->dev, "wrong whoami {%02x vs %02x}\n", - data, HTS221_REG_WHOAMI_VAL); - return -ENODEV; - } + if (data !=3D HTS221_REG_WHOAMI_VAL) + dev_info(hw->dev, + "unexpected whoami 0x%02x, continuing\n", data); =20 return 0; } --=20 2.47.3 From nobody Tue Sep 29 11:52:44 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 D0E793BA237 for ; Sat, 8 Aug 2026 09:01:15 +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=1786179679; cv=none; b=Lu+rKye5RS5OpaX9NYi/5N1OR58Nds9vr5MwhHdI0yizT6G8fIC035N6GdVC0FV6DhPhlTCtS1k/yxMsZKn/t6Vw+8xu+AtXiQBkxwbZ0VqXLN3kuJ2Muh1V1Z+AFpDolEPkZd+GWSC2RA7E3SfHEjG+u30fU/S/XsIBZx945hY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786179679; c=relaxed/simple; bh=l8Qv18UovxownEXrOfGdKkbDuZk8btA6NtUxQm/Mqi0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RN3dh6RnTDutjZd3GwDzYz1S/AqzlPePXKSO0HUnshOiaYS92g9TsgWyziRDY2gA3b9t2h5hUROfG2BBqtVkdcWPECEfTbfG8rW/K7yw6zSNW/dLVQQ1Pf9DSnv07il9ylx9bDM6CtN4rlNAPFJRBJGQsLc/5ZToQL8XOAjGOus= 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=dTW8yNoi; 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="dTW8yNoi" Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-84874b52eabso444719b3a.0 for ; Sat, 08 Aug 2026 02:01:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786179673; x=1786784473; 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:content-type; bh=dhrwdZr63D/YjEj/MiL58RSc/8ReOPlilFBlib5Rh+o=; b=dTW8yNoizBdtqHKWdPdeIcdt6aW7krngQH/ngfLGvbWcmkoH1tgb4yvLmVpt9ASGFj 9C53ehgg/7q2q9lEwyw/t/tdb7pVBYfRMfz8Puvii44zRYIGONkScJp7dBpvwLhj5kWM 3LE0KKbj2aE/BvMc5gacgvenEYdKeFundVPFIl1s7qdd79du4l1X6N38PZeGS+xJd5np 9Cwzla76u+FtT0Nakue3jzXWbISnvmLDB4HrpEVIvtzfcjFkmgUvQrQs1HSiGi9V4jgz HrFhNT5opfBMLbzEzZmJvkRHJkIRwUZPwlC007idHqT91LCjegziWaHi7jA/h62quPPQ nFBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786179673; x=1786784473; 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:content-type; bh=dhrwdZr63D/YjEj/MiL58RSc/8ReOPlilFBlib5Rh+o=; b=HaYTNSXMDIAU/kaddVXb+vIrhqitzVYnhlNNEYS3oAmqCTq7Ez+iYuKVeJQCJSl4GS 1TGZyQR7rLBm8fU4mEkTVXfemgjl8v5rJ+fmIuyKn5D7u4zlgE89z6UfOsxG128+Y/wR yCu5Zp6EwdcKOr2fXBHB3rE42cmsiDqPoQd+mNvBJsrRIxkFJ8iZUlT3uAndcVHmMHzF xGbUglbxdQbgiiUER901nug+24m0uwdW4ChcsowxQResCVf44V3+gkDxPwz+9iNEu8mj yDSgxCzovD//+0Jmn0DwMK/WFmZLxRZwD2KxdN3YRydeMKYfk1zDYKG+Z4aKkUEZDkwh Q5oA== X-Forwarded-Encrypted: i=1; AHgh+RoABdZzC34zI9YVLVozIHVpAu/N27fW4/CLTfQ264ojPt4+HW6MjD+zXa8veuaAkz8sUfGXF4dnzhQtPPk=@vger.kernel.org X-Gm-Message-State: AOJu0YxhZ5O3WD/mWJJOa13jpAURM/6XtK1Vsfp+k2BGzp6aVyySJYej +Dj9VC8+ePRDDqrvbpvsoc0jiZf5SSPT9TS4fhcurNxVMvMFwRO4g/gT X-Gm-Gg: AR+sD12zOLrlmK5qUFK1VvEVezmq1+5QmdlKpVzm26+VF4t5frZ3JfIngC/nW2mHqFg +hpHuChs54qqFsp0TzGQ9DMCYtSp/Sql4J6nWepYVZOqjDiTwwJwbnjuBER0xNhlrHN18deDINR t4VBVr4NwJdStWZFGjxdUTRcpZj8JKnLG4+gYrqXhTpU6I0XTk5UY5gj7GC1ARo/AF75oaFTyqI Oef2/Q5UjNrQrHcdDgkGh9ZtJgNdLGuwDmfNcxLWb/GnGPDXUu3Ghq0cm7DZK4iuajAAgFhqJpE c1GMNU/u6rAmvGw7yYtqy8GI7NSYBaeL56m8guhhzR/pe1IS2j1NDUPbaZLGC0NgzuXNjDGak8E ZUz122iMkiYQPucgAQCoVxAEx7BEqp9Q+k3Eic939U/vzijt40vhqwVcUiGelB/SXFYthf6rRI6 q6snQBTRgT8l6L4Ok5JGipe48bN0feKTUFft1yeXG/NuZ7DiEtmgdF2P8Rgl5ydpHQmCZgs5yNw iTow64uqlP1xBD1RH3KK8XPMjt4TfVgtwkqL7mLvjKoxxyNZfID1qQAQDw5nA== X-Received: by 2002:a05:6a00:f03:b0:848:56d4:3288 with SMTP id d2e1a72fcca58-84f5df36ec9mr11268071b3a.4.1786179672941; Sat, 08 Aug 2026 02:01:12 -0700 (PDT) Received: from debian13.localdomain (bb219-75-96-14.singnet.com.sg. [219.75.96.14]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84f5a51e9f0sm1973871b3a.28.2026.08.08.02.01.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Aug 2026 02:01:12 -0700 (PDT) From: Adi Nata To: lorenzo@kernel.org, jic23@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: linux-kernel-mentees@lists.linux.dev, Adi Nata Subject: [PATCH 4/5] iio: humidity: hts221: use dev_err_probe() in probe paths Date: Sat, 8 Aug 2026 17:00:25 +0800 Message-ID: <20260808090026.34187-5-adinata.softwareengineer@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260808090026.34187-1-adinata.softwareengineer@gmail.com> References: <20260808090026.34187-1-adinata.softwareengineer@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" Convert remaining probe-time error logs to dev_err_probe() so the errno is included and deferred probe failures stay quiet. Signed-off-by: Adi Nata --- drivers/iio/humidity/hts221_core.c | 30 ++++++++++++------------------ drivers/iio/humidity/hts221_i2c.c | 8 +++----- drivers/iio/humidity/hts221_spi.c | 8 +++----- 3 files changed, 18 insertions(+), 28 deletions(-) diff --git a/drivers/iio/humidity/hts221_core.c b/drivers/iio/humidity/hts2= 21_core.c index da773d2edc80..313c80df3f6e 100644 --- a/drivers/iio/humidity/hts221_core.c +++ b/drivers/iio/humidity/hts221_core.c @@ -579,33 +579,27 @@ int hts221_probe(struct device *dev, int irq, const c= har *name, =20 /* configure humidity sensor */ err =3D hts221_parse_rh_caldata(hw); - if (err < 0) { - dev_err(hw->dev, "failed to get rh calibration data\n"); - return err; - } + if (err < 0) + return dev_err_probe(hw->dev, err, + "failed to get rh calibration data\n"); =20 data =3D hts221_avg_list[HTS221_SENSOR_H].avg_avl[3]; err =3D hts221_update_avg(hw, HTS221_SENSOR_H, data); - if (err < 0) { - dev_err(hw->dev, "failed to set rh oversampling ratio\n"); - return err; - } + if (err < 0) + return dev_err_probe(hw->dev, err, + "failed to set rh oversampling ratio\n"); =20 /* configure temperature sensor */ err =3D hts221_parse_temp_caldata(hw); - if (err < 0) { - dev_err(hw->dev, - "failed to get temperature calibration data\n"); - return err; - } + if (err < 0) + return dev_err_probe(hw->dev, err, + "failed to get temperature calibration data\n"); =20 data =3D hts221_avg_list[HTS221_SENSOR_T].avg_avl[3]; err =3D hts221_update_avg(hw, HTS221_SENSOR_T, data); - if (err < 0) { - dev_err(hw->dev, - "failed to set temperature oversampling ratio\n"); - return err; - } + if (err < 0) + return dev_err_probe(hw->dev, err, + "failed to set temperature oversampling ratio\n"); =20 if (hw->irq > 0) { err =3D hts221_allocate_buffers(iio_dev); diff --git a/drivers/iio/humidity/hts221_i2c.c b/drivers/iio/humidity/hts22= 1_i2c.c index 40276abc5d2e..8f5fa7d3eaf5 100644 --- a/drivers/iio/humidity/hts221_i2c.c +++ b/drivers/iio/humidity/hts221_i2c.c @@ -29,11 +29,9 @@ static int hts221_i2c_probe(struct i2c_client *client) struct regmap *regmap; =20 regmap =3D devm_regmap_init_i2c(client, &hts221_i2c_regmap_config); - if (IS_ERR(regmap)) { - dev_err(&client->dev, "Failed to register i2c regmap %ld\n", - PTR_ERR(regmap)); - return PTR_ERR(regmap); - } + if (IS_ERR(regmap)) + return dev_err_probe(&client->dev, PTR_ERR(regmap), + "Failed to register i2c regmap\n"); =20 return hts221_probe(&client->dev, client->irq, client->name, regmap); diff --git a/drivers/iio/humidity/hts221_spi.c b/drivers/iio/humidity/hts22= 1_spi.c index e6fef2acd523..916fe8481c4a 100644 --- a/drivers/iio/humidity/hts221_spi.c +++ b/drivers/iio/humidity/hts221_spi.c @@ -30,11 +30,9 @@ static int hts221_spi_probe(struct spi_device *spi) struct regmap *regmap; =20 regmap =3D devm_regmap_init_spi(spi, &hts221_spi_regmap_config); - if (IS_ERR(regmap)) { - dev_err(&spi->dev, "Failed to register spi regmap %ld\n", - PTR_ERR(regmap)); - return PTR_ERR(regmap); - } + if (IS_ERR(regmap)) + return dev_err_probe(&spi->dev, PTR_ERR(regmap), + "Failed to register spi regmap\n"); =20 return hts221_probe(&spi->dev, spi->irq, spi->modalias, regmap); --=20 2.47.3 From nobody Tue Sep 29 11:52:44 2026 Received: from mail-pg1-f174.google.com (mail-pg1-f174.google.com [209.85.215.174]) (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 4E7713B8130 for ; Sat, 8 Aug 2026 09:01:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786179682; cv=none; b=kIVGValtj9EAYz4fSRIEHtStVat1jeE5YmLFg+1eTZrzgFBP/B/ZFl1zngCv5Go8oLpCPjHYs7L9WGyGwyJgbcSk3rPCQd9lUl6uzZcDvKjIFfwfL4RUGkyJCYKSyxVqZGB+pEbVWMJQSeefMdA6PLHg3K4tefDuhv24Vl3lbj8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786179682; c=relaxed/simple; bh=qk/kOYORym5I+8ya8cWHEEAmCjE1vOB3NM+RASUrorQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ojgtm3vwPZA2GmjmEb/XqkArbtoTz6R2Al9+SpeAPz9rpmw5VvHMTP8nGELC2JKITLcQskRROb7sG4Q4Ao+u/tmWiGQSKZ6/EKQAMsajWQFAaeRUxTozzXQCbqqCbn8KIsgD6h4co9zCnT5LJRzeA30xE/SjYrl0i3dfw7bmZXI= 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=SDescYPP; arc=none smtp.client-ip=209.85.215.174 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="SDescYPP" Received: by mail-pg1-f174.google.com with SMTP id 41be03b00d2f7-ca957432c7fso297182a12.1 for ; Sat, 08 Aug 2026 02:01:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786179677; x=1786784477; 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:content-type; bh=v1Lu5z40VaFQBmnLoOwaqvwm+6VvtbjWSO8Fgi8tuuA=; b=SDescYPPwBEsuUEofEc07fwUzF8NI8m/CaSOQbp5VAfiFHV+Ur5jub08T2kP9wqoJd /qBCZBqLH9/7/THmPJxLSBZXB078o0u55YDX/WxfoMILAYg0DpZzSW+TQxPG25m4tgWp sfi3D8fgFOKASS/VU8an/JNCCWI1az+dJfHLaR16VcndGbGHWak/W9e0k+MujkACr/op pXucNoJ+i0Gj1wdIRZwXyac5Sv4wdmVdmlVZb6v2zcLyJTWswaPCC2o0o5JW3wb3hjtR Y6po729K+U/AB8Dg8xygZ0rAQg/I8Y7B4Ia0dNz7W3RVs1W+vWp4T26V9tskJQCW+pL7 8waA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786179677; x=1786784477; 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:content-type; bh=v1Lu5z40VaFQBmnLoOwaqvwm+6VvtbjWSO8Fgi8tuuA=; b=hgHPrY28AeZSi7tN/XReuxq5PaMNVIXipHNhRnGDa/Lip7gO8ai8VTyFbREhqg99j+ PR7zJ9cjp1yf7FWBPzML1ZpAFGTMh9Gf5NjMPunbWeU0+mvOBtCl7DbHZO7yCY8bVzAT s5NA+RJL0OwOsm628i1J3L6msi0MSQX41rSr1n8D8eoAcu1flvK0w6xQMeLiaRHZDRtE UFCQFgiZ62luFodGg60msDL6iyHL8Elf3qhSfHSnOuzX1wo3YLY5OjFQExxBxgkt38y5 e8D5rx5nGjhZeXBBvT1g7shmIQp0o0BNZZAT6gFMSTQVKC1jowtBY+Wa1d6XiJWa6QN7 +1Qg== X-Forwarded-Encrypted: i=1; AHgh+Rqv+IIEdnzk/NBaJwLZ3yi2QqMW9XDb9kgsyUR7Dthk0DJC972qD2K+XGrhBM9wWQEIs1FFMRBVikzYSGg=@vger.kernel.org X-Gm-Message-State: AOJu0YzAiCdeynDH5TkagUf7dcPP9tvi5Pl/y9CN2UiR95cktXkbq1rN SBn4VdF+3uBFdh7eW4LDRtlNrNuqMC9W67sf+iPuvozpETs91Ib736T2bncXD+EZ X-Gm-Gg: AR+sD1317vo1GYo04q8RJQNoJ8ynD6lIX4uQb1ATNpaNaD0OnI5C4mSUNXKN60uYYCA 4MAgUrTBmUZg993TFNwpWdFM2upWg05Mnc+MC8/8x5frpMC2HoxqaG4LQWcntC5YKtFU1P9BYYr gELsDovo7xACb3RBmgo3LC3BOzalvxbg34ZHXjxuD+/QTbW+Noi4nKM0rdaDJVv53BLY3D3PCLZ 2igsgECTYn1N5xUdj5K8LKqomHdUhU0Xq9+A8oHZXI3f34AqLNhZfo0kaepRU5OepTYcVo0JJnK WUzxt3DNOecwITI2f1KqFg+Ak1F8rH8Z/chMIGpnZSATDZz4nWEj14YLUnPR/pP6COxj+jcmqER RkGaCVWYwh2eOqAS0w0aHoLASg+5XehXsIN1wT5OID+vkc/kMlWu+3U7CfwbxydjWQrowhTUSzJ ukrZHK1i+mGYDV1I4zYHqKwbtGTdBXlZWoinsM/8aVqM7c5i1C6wfDwCdYfeNZ7r+I8z5Rp0LoC JoiGqyEE6bBPsfMTxsupU0DJKKZhV3sOUIFxbQjnBtWpy9eGSNo8K9Z4CRteA== X-Received: by 2002:a05:6a00:1daa:b0:846:8b21:6304 with SMTP id d2e1a72fcca58-84f2dfd2c03mr32330956b3a.14.1786179677117; Sat, 08 Aug 2026 02:01:17 -0700 (PDT) Received: from debian13.localdomain (bb219-75-96-14.singnet.com.sg. [219.75.96.14]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84f5a51e9f0sm1973871b3a.28.2026.08.08.02.01.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Aug 2026 02:01:16 -0700 (PDT) From: Adi Nata To: lorenzo@kernel.org, jic23@kernel.org, dlechner@baylibre.com, nuno.sa@analog.com, andy@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: linux-kernel-mentees@lists.linux.dev, Adi Nata Subject: [PATCH 5/5] iio: humidity: hts221: fix division by zero in calibration parsing Date: Sat, 8 Aug 2026 17:00:26 +0800 Message-ID: <20260808090026.34187-6-adinata.softwareengineer@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260808090026.34187-1-adinata.softwareengineer@gmail.com> References: <20260808090026.34187-1-adinata.softwareengineer@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" hts221_parse_rh_caldata() and hts221_parse_temp_caldata() divide by (cal_x1 - cal_x0) without checking that the two calibration points differ can cause division by zero. Reject zero divisor with -EINVAL, logging the offending calibration values. A device with such calibration data cannot produce meaningful scale or offset values anyway. Signed-off-by: Adi Nata --- drivers/iio/humidity/hts221_core.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/iio/humidity/hts221_core.c b/drivers/iio/humidity/hts2= 21_core.c index 313c80df3f6e..fd11cc881dbf 100644 --- a/drivers/iio/humidity/hts221_core.c +++ b/drivers/iio/humidity/hts221_core.c @@ -276,10 +276,20 @@ static int hts221_parse_temp_caldata(struct hts221_hw= *hw) return err; cal_x1 =3D le16_to_cpu(val); =20 + if (cal_x1 =3D=3D cal_x0) + return dev_err_probe(hw->dev, -EINVAL, + "invalid temperature calibration points (x0 %d, x1 %d)\n", + cal_x0, cal_x1); + slope =3D &hw->sensors[HTS221_SENSOR_T].slope; b_gen =3D &hw->sensors[HTS221_SENSOR_T].b_gen; =20 *slope =3D ((cal_y1 - cal_y0) * 8000) / (cal_x1 - cal_x0); + if (!*slope) + return dev_err_probe(hw->dev, -EINVAL, + "invalid temperature calibration slope (y0 %d, y1 %d)\n", + cal_y0, cal_y1); + *b_gen =3D (((s32)cal_x1 * cal_y0 - (s32)cal_x0 * cal_y1) * 1000) / (cal_x1 - cal_x0); *b_gen *=3D 8; @@ -315,10 +325,20 @@ static int hts221_parse_rh_caldata(struct hts221_hw *= hw) return err; cal_x1 =3D le16_to_cpu(val); =20 + if (cal_x1 =3D=3D cal_x0) + return dev_err_probe(hw->dev, -EINVAL, + "invalid rh calibration points (x0 %d, x1 %d)\n", + cal_x0, cal_x1); + slope =3D &hw->sensors[HTS221_SENSOR_H].slope; b_gen =3D &hw->sensors[HTS221_SENSOR_H].b_gen; =20 *slope =3D ((cal_y1 - cal_y0) * 8000) / (cal_x1 - cal_x0); + if (!*slope) + return dev_err_probe(hw->dev, -EINVAL, + "invalid rh calibration slope (y0 %d, y1 %d)\n", + cal_y0, cal_y1); + *b_gen =3D (((s32)cal_x1 * cal_y0 - (s32)cal_x0 * cal_y1) * 1000) / (cal_x1 - cal_x0); *b_gen *=3D 8; --=20 2.47.3