From nobody Tue Sep 29 01:59:57 2026 Received: from mail-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.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 921AF48AE0F for ; Thu, 13 Aug 2026 15:31:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786635110; cv=none; b=FU4AxQkIWEDdUbHWDwDLNWzEQAq1R+XnezcqIhQzBAzbtET2SIIBOsfmHUlykh7cIhjklfO4CsV95lqrKW1TZU/Uvpxn4oqskbSDNnKmba7Xtpg5EAJk89rFPh9jJOB94UTLIekUhadiS2l+mYW8PtA57TCXyYUBzJ78Rafq39M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786635110; c=relaxed/simple; bh=lF29cWX1tHGjImIaJT5dMIBt9ZzlqVZT0rak3Y5g1HA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mow2RmTcrUh8OCA0zx4C3Ujc3fQx7dSjKfXobeSrlJUBzGPJQvTCHUBASF9fc6fQXK3kyIFyOG8c66v2ZlVQGGDwWs535qYcWIqAOqceUg49i1NnTis2/vYC2UdOqjsGmKguMGJ8H5tFZUDiVnUWfWyPq+BQ+gMJzJi5tzgG8aA= 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=XqHCt4/c; arc=none smtp.client-ip=209.85.215.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="XqHCt4/c" Received: by mail-pg1-f181.google.com with SMTP id 41be03b00d2f7-c9eefcf9175so2107895a12.3 for ; Thu, 13 Aug 2026 08:31:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786635108; x=1787239908; 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=B3+9o3R/kRPttqUDwWN7jjdrSbSX27cMxLLa8OmPEoE=; b=XqHCt4/cuH0PjiZkwq7TUQx/nUyZvxBmR0k2nMKvBimTETHcYQn2vJtc+aBE9cj0rJ K6NijqZvv6zTHwqbSO2j1xKC31Wn9rAAh6jkrgOSx5tJVPZOvvGRQhO8Lk3dSIZUjlvc qB679bcxIOP4Yv+WhTaYPqxuZKgPp0RIRhDRHnuqD8qxfDvoLNvYVpvE/oflDed06uHG IGaPJlefaeFjHvBn9u5e6oMxiWYS7pCgQtdF9VGeLBbpEy8fyZG3+daxd8yUIhALj5lY pOQbsQqkW4nKT4bmybXAjzxFHo0gu5q7cRqJp4vExfINJ+ml9r4N8A6CXYfg+BSzHKEt rSng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786635108; x=1787239908; 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=B3+9o3R/kRPttqUDwWN7jjdrSbSX27cMxLLa8OmPEoE=; b=A7h7uIvac9VhXDI/t4CHpE2GSCLdT/R7B9D0khMbYTsvk4Fk4kEQdYd9ou2VTuu0qX HwVS4fsGoEsQp4Nb2QiJtlpYPqNEMCrM3cX0uu4Y/MUJs/yyYXvElW6W8hL69Dmz+EuH 6QS/qYuEWAod1zw8u2rYbCsxuh3L8neClzzsrqJ5SD+a579fFu9HNo2J99kzZeLnUPms 7zawu0UmSmtW4oNrTaeos4hM7zAeHwzyY9sOiCXA3SmDVdOyMCNZuWA5QB8LAJ2h+6iw oB+5dMq+J42RDv6l+QwjXA5JhAfG9P8gYi5LtjLrwzp39cQv51Xwzj35ygaDGfamj90Z Yy7A== X-Forwarded-Encrypted: i=1; AHgh+RruXoBsiHWKw+VBaIqZ5qJmLcbXG7yg9vVE2S7xYZ/Go8ysCPOLEdY/4TroF6a9xm6cNUjMfabSJlbt1/w=@vger.kernel.org X-Gm-Message-State: AOJu0YykjMh+8UUG/zidZROhFqD948DROUkQqIIOXGHUo6hEWutfV8MF EEWDHIzpgFy0vBYmWvUq0l6hQ2ICfXVW2tVIUoBAK+yJyG3iQOV9BCcI X-Gm-Gg: AR+sD13sn0NZ81Y/cdLCzzPTA05ytiTE9Oz3oV1Uhl74Jb9CG6i5+2c0hHHJ3mDkb+L +/QmGe6mtyD13jOAkKAZ+09X+s4PtonL+G6cGlBvmx601v9unz8EN6OlseLP5PYGSb+fuWa1yDb 7WSIE5dGsdBhNnCACFcMeSHyBXbW9QPSe3nE3WkJP5Ggbl6Cbi7q9TiA0MNNVHbaoq+VhuuaAXh BY135dFgBJiVhhe2dAp7DsFDlHvbpHhtpqb4cUpeuyU4JzK7vQBD66SG6EHA8jC3ba219DtVVaD cEfaHA3VIW2aPOb7hhoXmDfI46k4CL+WDYfD0cFIIA+oVOQTjX4A6JS2NnqDPDUJyU9HcGclsOr 1rYDjYOxyXFFLtK1Q7tsleiboJxP4hN6tVOTciaEhOlUY6Iurcqj3zX+gfyOjz9m6ZRMShE/VfT B+LoJNKHFjcNfBuToLjI077YITHEHg6snClbKITfuwMrzCV0sl8pEv8EC0//mlqH25BHS5jWj0z oAW/v7HjhXdW7TtGJ+DRIw8g+sc+losNjXY5rJCu58r0/2ZNd9z4rlvdt0HnLvTT51cc9Gj X-Received: by 2002:a05:6a21:2d4c:b0:3b2:a809:ffe with SMTP id adf61e73a8af0-3cc5504409bmr9635887637.14.1786635107720; Thu, 13 Aug 2026 08:31:47 -0700 (PDT) Received: from debian13.localdomain (bb219-75-96-14.singnet.com.sg. [219.75.96.14]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-31ec082943fsm7960604eec.29.2026.08.13.08.31.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Aug 2026 08:31:47 -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 v2 1/5] iio: humidity: hts221: report available values via read_avail() Date: Thu, 13 Aug 2026 23:31:25 +0800 Message-ID: <20260813153129.12423-2-adinata.softwareengineer@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260813153129.12423-1-adinata.softwareengineer@gmail.com> References: <20260813153129.12423-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. As a consequence, the incorrectly named in_humidity_oversampling_ratio_available attribute is replaced by the standard in_humidityrelative_oversampling_ratio_available name for the IIO_HUMIDITYRELATIVE channel. The temperature oversampling and sampling frequency available attribute names are unchanged. Fixes: e4a70e3e7d84 ("iio: humidity: add support to hts221 rh/temp combo de= vice") Signed-off-by: Adi Nata Reviewed-by: Andy Shevchenko --- 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 01:59:57 2026 Received: from mail-pg1-f178.google.com (mail-pg1-f178.google.com [209.85.215.178]) (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 D9E5F48CD7A for ; Thu, 13 Aug 2026 15:31:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786635115; cv=none; b=iEGgoBtqu5NLY8ETxLAY4AqwbuJ9Vqx1qJax+4hSBJD6PPIolQoMbLUPI0uC89AwmdroEG7SvHPAPJ3blHPBr02KptTV8AICyNUWuzyPWRobN39c0mBS+aX+4zuPAaw5fc3Uv85pp6QXkw1BKAqdh3ZSAgmA9JCce8bq8ALCffE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786635115; c=relaxed/simple; bh=NX1mj7lWqmufaNh1/+yRMHowMT7G1KD8ApMLqE2vOgk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fV6HERy7EcFKBKjIVb/2Gtt9LSZKi+NqXqADj0BGEFllWPdCS0RuyYT53+JOCBqUcn+MjzCNt/HIWiIkxbg22g59W1UkcdAK6ceqx+TzXE8jut8BD5WgLHdyiznwrB5lDHZ7Hqv5k3OdaHy1A2aWFQJT0Lp3FAtun5ZUKXZQuWg= 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=aWX0tb7o; arc=none smtp.client-ip=209.85.215.178 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="aWX0tb7o" Received: by mail-pg1-f178.google.com with SMTP id 41be03b00d2f7-c96b08cdd1cso742625a12.0 for ; Thu, 13 Aug 2026 08:31:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786635112; x=1787239912; 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=cLBFetwFpohNSM2IPfXMfUKp4/p+7rRpSzLCPfNU/RA=; b=aWX0tb7ocDLCDLcO2tqQDPDJkSBNUGsv6K03NtxvZDP9liLTmFVpVuE6vdQ47L0wcE XqEZg/gD4WBzFVGXhBrPbSBNzObgclN7IIlpYOCn54gfWhqaRYZwFeTlV2Wf9QRQlrBh mejoNW9tErj9RULkOB7Q/yOb546tw672+k9xkLST0qG89vCxkd/U7dOwRqeFYHeZZcSf E4v2Xon8r/6cx/YpI8QhGIK+A1lUQs2Gy/XyPmbd8A+IRk5Engh8O66VLBHEjxEYDxAS 3iXePwrzrrzJPtzbXJX97DWVpHxSwAMrrFOVjRzgFbftzNJGkfU0VLT1vAv9toDAOyap C48w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786635112; x=1787239912; 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=cLBFetwFpohNSM2IPfXMfUKp4/p+7rRpSzLCPfNU/RA=; b=CyjKvnCXr/XAabJ3NwbRNEDe3xBZaNX6/+1s2gcaYlkeo+pN63YkShCrkFUaJwzZqG 0kE2Hb1G5i6x6ciMIPgsQPLNItO9rPt/TuNsAvtxeixVFanuG9kF0U48Hc0RMtcgHZ5y 1p1pyhXKDsupzAZBBkWT+gqt9h1a1GssVdLTitV8ArUX8stkidMx8tShqbqtLDrWd7eX 1ZNAfTPFoQKx5D4ivUhFRQ8GE924ovGei62FKFtySd+Z33ZtGCEGTVFoyK+x041MRrsQ w3SvcWju89f+HXNTILKDM5IT2yBkC7XDhFC0NaXRgrvHUVyTaC57Cww3ALlWaI/glzMs eXFg== X-Forwarded-Encrypted: i=1; AHgh+RpJqS4g9ZSb5S8//Z1Al5meyEZVS8c1MXajGVrCiDTylD6larkIim+HyHAhsMdInFpaV0RDBgcUFIrTFx0=@vger.kernel.org X-Gm-Message-State: AOJu0YzRNBR7KTujd2gXhqCT0rARtW52jY+Uq4hXahnTPuEzWmvo88vE 5MA7bcvtMUATTrl1+xS/YF1LLjQeH8t+UxojCZTcidlOIjFUr3K+xZAU X-Gm-Gg: AR+sD11zFPW5PuhmmH1oxeM3QI1TuKgGcMecYdlO5J2saOGYFQhEmO38aF9s+iZxGCH b7yaxfl4Xe6C2zGyY7QCfV0TXB4J4Ja7EuUp4r/EinkSB0+hJ6xsARmxJbRdB+Pefiwts9HuT7L vPrnWJHwJIzf2ikwDeTmCd6iVPO5tc7S3046bTqHJC4LJu4X+D7e9XyValqLp/f/WGoOI7tCE2X JRy5TuuMuXULk9GqcQjw5vZUTVxJRyF0WoCfcA7MeHswZgwM93shkZ6YGYfpWvz+GjX3mpSKl92 Z59e6z29o9r7DVLUF4f8IrHRHN04d59zF2QD2EeddcNNtqbgqElLWez/be4ldvnIlrLsGudOVbi ibm15lfWCUx0Y+HrNnhOvkkv1IRyFYLVtQJmmC1f5T/uQoOBL7HATzmqahU2FGyFUIfnc8qcxFJ JBglgfP5ONPqWFEEA5X7Xl8lG81PXRvapEQJKkgS9MWApmEaGFF/XtIw+HpDUoAxP9nmt0Ybf5j lLfp+HSl1ZOckU2A91F5KPHLTTjxorT3/0zQrNDDTel4JfVhHaE6DxiNJX8rg== X-Received: by 2002:a05:6a20:6f8a:b0:3c4:4272:b400 with SMTP id adf61e73a8af0-3cc5524204cmr10350676637.18.1786635111712; Thu, 13 Aug 2026 08:31:51 -0700 (PDT) Received: from debian13.localdomain (bb219-75-96-14.singnet.com.sg. [219.75.96.14]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-31ec082943fsm7960604eec.29.2026.08.13.08.31.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Aug 2026 08:31:51 -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 v2 2/5] iio: humidity: hts221: Add a blank line after variable declarations Date: Thu, 13 Aug 2026 23:31:26 +0800 Message-ID: <20260813153129.12423-3-adinata.softwareengineer@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260813153129.12423-1-adinata.softwareengineer@gmail.com> References: <20260813153129.12423-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 Reviewed-by: Andy Shevchenko --- 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 01:59:57 2026 Received: from mail-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.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 2CFE348D868 for ; Thu, 13 Aug 2026 15:31:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786635118; cv=none; b=Dpp6wk1bdN0ZbALSDTOGuKf1ZViyHVNyUdcbHVYRqbBlY2hdDlj0/qB7JNWcxyfHy0ITqvSueIZms7DYPtALTlMpaBPR1h4u/Xf+w1OgTaoAxtnc2PjCy6+vkvwMi3JlXwdOclo+HPM8I1XuX89ecG5FwIEt5vYKY6psjhPPiUw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786635118; c=relaxed/simple; bh=6/z9IRV5ZQn/Frw7BWoJwC2CimqWWJl4hMDciS+A1D0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gjCM5CEcm4nCmR2ZvD/MTZZNxLQ5LqSjZQj4qQLYxSryjECsIDH7z2n2hwACmphDfV2oaMwRGjG5yTw972g9X4F/ZGjclhJS/1/kE0cTKDD3D0m7KVlYXiuwqcZXg6yYsj+PIi+VFRqc8RxTvgPiiCaQKYG0wwkJ2udABEsc9DI= 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=iVhUKz6t; arc=none smtp.client-ip=209.85.215.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="iVhUKz6t" Received: by mail-pg1-f181.google.com with SMTP id 41be03b00d2f7-c9aea40d799so1410461a12.0 for ; Thu, 13 Aug 2026 08:31:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786635116; x=1787239916; 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=lRy+t8tNDkimDr+BoBwwY6yvO7nk9mVt02bQsB0YYA8=; b=iVhUKz6todDkgwKQ4DI2oErKKRfJTpIoP2RDQpIlDVZg+orUa6PUB4kcHcEbCB5166 Zi/YS6Rmi2mhyx5QB6uuHBhaWcH8xq9W0aDq1WwrLYruAqKsuTHLy1r4AdulR8Ph6gX3 qiDgMZbZkEzIPcuT4CHSpMtF/z/EbHu6s7FXu+qLZt7BJ7aCKTC/EoAFjcpxOqvQa7oz tuyMYPUdU+P4NS0vqj9Dfes4YMTe21gfpjur1DQ97vH1+CN4KUylXPRlZxNf3DrXBhVa KH/WdB6/mXrW4jhf8NDQbGCOgpIpm1cGZxZZ2+a55szB35Ibwu+Kri92EPToAfhsY28t fzdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786635116; x=1787239916; 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=lRy+t8tNDkimDr+BoBwwY6yvO7nk9mVt02bQsB0YYA8=; b=qxMJx2zXtnFU2+pQry0WIlybdgCoVbmOf8YP2KHrXAZhoof3PIWCO9OFtnwPC+8U+S EgoN2iKeKpKKd/HvJV9F2uZderGMezKYfvZyA1NneTBbbnOCN9JAo1FsTL8jgoe/77Hi nZCFoshRKJVgdyWrLqQYMZiJp2G0wb9BvE6RR0eoNHozK0l1GMWRPTRzNSpO8t97SFT4 zl71F1etDzHC2EZLIWiX3nBwokZ+AdVlywC4FTdnac9KXW89MsmXs0cejAGR0MvFOzvQ XAht6kfCeqSsvXa4LaR+495ncR1Vdjve3bBcRq7d8WB0negV5r6ZNcQTv3lR91Gb2tUN 7eAA== X-Forwarded-Encrypted: i=1; AHgh+RqzGCAd4lIjEnTbs1FqU+JI26AYat/lz5zZgLG3Fk3JUyy4lXNI5zaHEIJ+9cQEm1ZK/LA/v9Br6UC2LrQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzsN7DW0yU9ZkBpNRZk0Y8twt+unZBZPIitdMPwjdlYlqO7yD6f MVKFd3+FVMRuYRsHi8YVkdMYGr2Q0rTqWw3gs8bluclCerTh5C0CdLYz X-Gm-Gg: AR+sD104jrYEjWbc9CC8DfOIvwy0wHsmgnbvsO8H7PiS3BQGcKRLg3F9sdr1ECIiNB/ a0JFbW1Ev/1kNHYVEuHOlgA71kAER1YRakyAZqzJQzjLZyIl9kir2rEZVkASJCJS+OSmq96jF0c gVzg7lH/MjuIbRj1ScJMGO5USfJVy6eLEFe6eoDwYXCwCYdBtJ0yHt7SbajV1Iczz+5IiMQsOl9 cc5+ldiSg0mYsX0Wm1gf2bHZTMSN1MmTdbGhI+odv4VRs/d7skNXvkB/UIeQi6AR0lMYkO4Z4WU iarG7bIFG8kQZDABi1tY6QjtvTWEoU8T1nZcKQdOQhdpbf7URIK4m7H5m3a0UpdxiBWLjzb2x5h Z5oE2NNiQSVw1G0B+DAefoMl+UslKIg6VuErSytNiaFD4XViuYFJs0kDjRQtDG5OyIzEQCxWA7T aXJUvhhgznEwRkOkdAdtZUxzJzwQuKgD7YAq6IG9HzGtRyfeCNpy3YBWSVJhdhGW6gmCcQ7KgDQ nmiG0dv0T3ZpYxJAA2/EhZ/w17q6xKMiUTaSWWQ+P4qZUVYzwmA6Gso3ZTUwg== X-Received: by 2002:a05:6a20:2589:b0:3bf:7bf7:7913 with SMTP id adf61e73a8af0-3cc5503a34bmr8643790637.14.1786635115961; Thu, 13 Aug 2026 08:31: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 5a478bee46e88-31ec082943fsm7960604eec.29.2026.08.13.08.31.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Aug 2026 08:31: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 v2 3/5] iio: humidity: hts221: Allow unknown whoami for DT fallback Date: Thu, 13 Aug 2026 23:31:27 +0800 Message-ID: <20260813153129.12423-4-adinata.softwareengineer@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260813153129.12423-1-adinata.softwareengineer@gmail.com> References: <20260813153129.12423-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 Reviewed-by: Andy Shevchenko --- drivers/iio/humidity/hts221_core.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/drivers/iio/humidity/hts221_core.c b/drivers/iio/humidity/hts2= 21_core.c index 76a391f421f5..b73c26aae9ec 100644 --- a/drivers/iio/humidity/hts221_core.c +++ b/drivers/iio/humidity/hts221_core.c @@ -136,19 +136,15 @@ static const struct iio_chan_spec hts221_channels[] = =3D { =20 static int hts221_check_whoami(struct hts221_hw *hw) { + struct device *dev =3D hw->dev; 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(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(dev, "unexpected whoami 0x%02x, continuing\n", data); =20 return 0; } --=20 2.47.3 From nobody Tue Sep 29 01:59:57 2026 Received: from mail-pg1-f178.google.com (mail-pg1-f178.google.com [209.85.215.178]) (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 77FA748A2C5 for ; Thu, 13 Aug 2026 15:32:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786635126; cv=none; b=ZJl73+KF55PoK77wbcXROS6br7U8xcR+/mXPTAYeN3hX3OKDizDXhFoYKxqscMafMmUkvXovvOtFlGFf3fi2rG1XEuiqHgabUxwa3haCpCN5hxWagnS9P5RCAjcHeL9BwXWJGUvH51BXXBfUDuXkrUg0lb9aX2gc9BjKSxfReY0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786635126; c=relaxed/simple; bh=0weGnRdWwgswxJ4W5rEhhfCRwov11YGiMGfnVZ1X3gA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Gu+YNIokOQpjtpQm/GlE6ETJjaevVqyz8dVgVr4THiM/km5cXemyqcAzJH5yC2fM4w51Q5iLxKvkiwoKc3m7rLj5Ir09xfGTSnJD7N2VeKpx+5/CKclv1ceCIXiyLbgLp+rsy0/RWIaDNmOUQeO7OfGONDG/MbE/v/sX0g4BvSg= 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=ddcbPk+O; arc=none smtp.client-ip=209.85.215.178 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="ddcbPk+O" Received: by mail-pg1-f178.google.com with SMTP id 41be03b00d2f7-cbed97fa26fso849642a12.0 for ; Thu, 13 Aug 2026 08:32:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786635122; x=1787239922; 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=jRBl9QkRiwpLHI9/rNlYzWl0ldnHScwdP87IIdtHCSI=; b=ddcbPk+OhMbHiK7yRLk8Pe4BvQ8jX6Xsz8BOHDFdC0qpG/4IWjimNNZtSDOOSfp6IA FjZeXWJpD7APNgvYWMGIciE7EC3DWVWAiyHZalCgJWMQALCePVgmDhq+Vdif6GP+5/cl uMPanpV+k35mWVOqzYDiLFaynLSbbDr6I904vT4G59YMSoLGVoSwHXaqvcYxnmLWyDRF 7rJVWYlWbl3cVUSKzo8izKJS5ekyuguQcVPGHLqOwpMNRzxNlxB1i9Mr0F+tyaLeZurQ IPjMeJ+63sHvcZfG/BPbj1NzV4LUoi5aRh1xM7L4w/ghsSpugPz1Ldj9MymySZ1/0uzI OkhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786635122; x=1787239922; 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=jRBl9QkRiwpLHI9/rNlYzWl0ldnHScwdP87IIdtHCSI=; b=Ox+PiukFImDwY6t6aD4r5LtA5hsX15XnRxl75SfFk+YvCX25B/NnxI77sD9SZWuC6I PV0N+GpxjxLtfVFuVF78U9y0Zfpohp7pmfwrEre4FG6eFOAfAO5eL4838xovTV/tuHQA JDnzw1dGgZwfRTTyMeVRr1yKCHTW5rKRpijm91pkuYmv3gpiMI65NhrjV31NQGn4oHfM c0N7UacVwn8153y+IPiNN1yGqM+jUO9tBtgBerHrVAZ2y0xVaxBNbw0TA4Ti0AAUdxEG JjS8y+dFz9Xf19wKTF5v7jHIBwDq36WL19lNKLiotb+3SuZ9dCBAvGDz9Ow83EhRDoFr Tp5Q== X-Forwarded-Encrypted: i=1; AHgh+RqQifgFn129NwabhH/F80kqPQZTV9KQEqi4DxXzMiAbDNKz57N1zKjIJIqTZdjwkKTWtdN+8qnSZNSafjM=@vger.kernel.org X-Gm-Message-State: AOJu0YwpRR6Y8lPbSNhwmcxgGVmenuptWrYFTMU65sHpbwSfvHTS5EyK PkQFboQxSb1wR97GeDJO6rlJGJWFTfa3dB6TJMSNYI6+NCa6ctDf03yi X-Gm-Gg: AR+sD11WoHdRdjgCJV/jdWOwXT8C3IvLaIWZ21vuQLrGflb5bQR+nxDUqoyF1tPltu+ 3dUXu9XAvi8knfKe5vbG3b5kTyuneAzPBkMZGnHnhgQyvr6LiIoH/PWwBhuES975m4ykN6V3bJr AHdnadImQE8eDX7rhZZI+SjkAzOTXgP+/I1xOo4Kpk+eSGQjovNDAqRX0lY/zOCsbTjDP2rmH26 yK28w50AzEX4zQm5GKteP/oq8M9+WKSZqY+kdXPA74MesWpWG1NrKvF9FVtmNIptAnzbgni16Z1 oVL6JqcJf0whQlY9rRCbd0bT1zKKtA6Udp3gYkUIZdRunLcho2Vl7jBKaK4n/iGeYYUqHpseOue 78lb0PEZqKWmT5YrMdV1y8u1dkpEmWElFElAoQR+WRaQeNeJkHBOvZHd9HJbBthtd3y9kDjyWUe P457UzoDChZd1Rw472Ao36OgTygoK/IxhIztrqkWBkdvBTdi0A2MXWQ5w9RqhxEheTAKUIJO1F0 wpS5z1znO9YhsgMg53dgE227+SIKe+uXDbFO09hnHOW+/OxOUroWYonsJm16w== X-Received: by 2002:a05:6a20:3c8f:b0:3b4:6af4:bdd5 with SMTP id adf61e73a8af0-3cc5769db39mr7615107637.15.1786635122196; Thu, 13 Aug 2026 08:32:02 -0700 (PDT) Received: from debian13.localdomain (bb219-75-96-14.singnet.com.sg. [219.75.96.14]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-31ec082943fsm7960604eec.29.2026.08.13.08.31.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Aug 2026 08:32:01 -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 v2 4/5] iio: humidity: hts221: use dev_err_probe() in probe paths Date: Thu, 13 Aug 2026 23:31:28 +0800 Message-ID: <20260813153129.12423-5-adinata.softwareengineer@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260813153129.12423-1-adinata.softwareengineer@gmail.com> References: <20260813153129.12423-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 Reviewed-by: Andy Shevchenko --- drivers/iio/humidity/hts221_core.c | 26 ++++++++------------------ drivers/iio/humidity/hts221_i2c.c | 11 ++++------- drivers/iio/humidity/hts221_spi.c | 11 ++++------- 3 files changed, 16 insertions(+), 32 deletions(-) diff --git a/drivers/iio/humidity/hts221_core.c b/drivers/iio/humidity/hts2= 21_core.c index b73c26aae9ec..fda38dfc6742 100644 --- a/drivers/iio/humidity/hts221_core.c +++ b/drivers/iio/humidity/hts221_core.c @@ -578,33 +578,23 @@ 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(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(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(dev, err, "failed to get temperature calibration da= ta\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(dev, err, "failed to set temperature oversampling r= atio\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..e6dc9532cfbd 100644 --- a/drivers/iio/humidity/hts221_i2c.c +++ b/drivers/iio/humidity/hts221_i2c.c @@ -26,17 +26,14 @@ static const struct regmap_config hts221_i2c_regmap_con= fig =3D { =20 static int hts221_i2c_probe(struct i2c_client *client) { + struct device *dev =3D &client->dev; 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(dev, PTR_ERR(regmap), "Failed to register i2c regma= p\n"); =20 - return hts221_probe(&client->dev, client->irq, - client->name, regmap); + return hts221_probe(dev, client->irq, client->name, regmap); } =20 static const struct acpi_device_id hts221_acpi_match[] =3D { diff --git a/drivers/iio/humidity/hts221_spi.c b/drivers/iio/humidity/hts22= 1_spi.c index e6fef2acd523..8bcc1b5d150e 100644 --- a/drivers/iio/humidity/hts221_spi.c +++ b/drivers/iio/humidity/hts221_spi.c @@ -27,17 +27,14 @@ static const struct regmap_config hts221_spi_regmap_con= fig =3D { =20 static int hts221_spi_probe(struct spi_device *spi) { + struct device *dev =3D &spi->dev; 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(dev, PTR_ERR(regmap), "Failed to register spi regma= p\n"); =20 - return hts221_probe(&spi->dev, spi->irq, - spi->modalias, regmap); + return hts221_probe(dev, spi->irq, spi->modalias, regmap); } =20 static const struct of_device_id hts221_spi_of_match[] =3D { --=20 2.47.3 From nobody Tue Sep 29 01:59:57 2026 Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) (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 387B948C41B for ; Thu, 13 Aug 2026 15:32:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786635131; cv=none; b=EF4jB+ppTAVm9bYBvzc+QJ5VZEq89DQZRPzt6jy/lY1f6mOKxqDwdoujQGVTxFV2lEBj03Kf36Ba3Wat5o/VpB2D+jkV+ThRXYmFhzMj2lJ48f2lIuaslg93pbqFCdDGas6y2egxoLEmanwfpNygCDQPB2kThnmWUPND9pP/7cg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786635131; c=relaxed/simple; bh=sfBAezaRbgRTasTkRdf7Yl4IPx6PAR6DvqI2G38FvDA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cIWVuDyUl4wq21MXnV0QJ7T8A/3hXLmc+9sLatZsFC0ffL2dfRTkRzcN7Mk0iwQbgF9g1aUQKC7STCG3E0BMo+0i3xsUIfsgS6YBmq1/I4fF/H0cnzTVzXw2RMD2p+SNmWPkPAbKisGIyLtFiaUySULVHIgCqJRjaOijAAHRf/U= 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=LPo/RxGr; arc=none smtp.client-ip=209.85.216.50 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="LPo/RxGr" Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-38101f85591so1124910a91.1 for ; Thu, 13 Aug 2026 08:32:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786635129; x=1787239929; 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=Q2qdJ72LpMBcvPrJb15/0HrRL2gmcJhiINfNwI4WIvY=; b=LPo/RxGreTuVBvodu6e5CRs62zGeuSd4AXYxN6atXQyh9vFIKOdKjKx9QM7QNzaof9 PmKchn8EbSxTfBZGVnOSxLVkhuG+HGatOBySRk9EDM9UPUNOzhOeIGjK20PE8SPT/i5F mfwROpeQQMVA23GL21SDsIh56fHP/TxSYrl7z59leJUCdlca7kU15tWMirEjIPtMBmFw n+O43djMaKyYrJJZ188ffZWpl0RDtWm5Mj9V+ex+pMxFuc4yQyXdBpN61xd81nF9a/WC TXLOqJOwVZVnBF65deEiZbppGKp25nzKINTpowFeR5hzyX2+uFZqBFwLMNM6FfzfGncA poaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786635129; x=1787239929; 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=Q2qdJ72LpMBcvPrJb15/0HrRL2gmcJhiINfNwI4WIvY=; b=nZtWNY77kIL3SfpoaszYq1rwhpXDoCV6VVU+Tb3p24Olx05t3X+IT3vUJobXAHtFuq xoYecRc1wK2/2KsFC25UWTQU2gvXsoiAS9RzbsA2Sc1k1NlzDMV4bGYtEN0LgoMZpxWk j0SU0Sk6xuTNnImMsmfBKA/S8TKK1pjc/4KbDIuFAV0HafA9k6AxK7ANGQ25fHjXgyOz d2N59fbN/EUFL4BKyKP9WCkIKoYLYtquJIvBXBwweWkAhQ2mhgLFG9G6HJqSFqJa5mM7 13OFT7vuZRae4o/YkBPQuxQqjzK6pFAtSY8iKw6HDjT3Ry4PmaHS/CZ4qY2ye+N+1xBh js8Q== X-Forwarded-Encrypted: i=1; AHgh+RoZPczj9obVOaDXd5tz5eD1hXVI7b5T+xp6w5fc4+yAFUL0PZWyqd9cLqYIIzU3/n3/jLqUnWhNKWte4JU=@vger.kernel.org X-Gm-Message-State: AOJu0Yx7oe/KHQ+NEfgOElsoDbmeeq2HtgtD5c++GwGRFAHOI8/HyA// fdieXBUbSAlq8CTVOU3lwNV0MSW5tPe0wIoMbNqEfQ1Qjwr/kmWg6qX8 X-Gm-Gg: AR+sD11Jdr58WcudY2LnT72qSK0RwjbmuevmmcPGpovrApykjVLUgrClSSpCWHG8juk LxmPevSIP1+sgE24lOmf/WYFSYZ25wx94WwF2/+7kQn+v3VghmKHqJCBhsTwG7dYtTEgsPy8MOt 3ZDSskV3uzzTNBTSnPcAduayyWp9pnwY9l/NNBgZurCn8T7IQoVCjSIwCIuOAegKsS9Gyix1iMn rqtHEEL5nG99WHfdA1RUaaxZ6CSB8wJQumjlJJCHQtdC/m9z5RBF9DpmaJwUaDqsurtgKsNrJUl a0zePXDtm+gGwWg1uPinKmiQY5nVIO5TR4DvUEAuZ7fsljzs8LbXwMW35osgBjznZ0u63GOu7br odfE1E7ED1wwbMtCVtVmTwpGgGpEyJgaertAHtKGJn9K+71NhYKKGqQZL7x4eVm6FiT9fP58Zuf laXsAJcTcyhCC+rQ8DCtmztj7gzAuCpok4vqQgdzhlQtONqsycOI5puBa2fMm1Opqn97K/XYohq IIOAbwZx+Yp8XPv9c3c3OzaZI9tYeW6c0Nq9u83j75F3QxuCSNktd4pVGkVEQ== X-Received: by 2002:a17:90b:50:b0:38e:7f22:f674 with SMTP id 98e67ed59e1d1-3931f9069femr2991671a91.11.1786635129125; Thu, 13 Aug 2026 08:32:09 -0700 (PDT) Received: from debian13.localdomain (bb219-75-96-14.singnet.com.sg. [219.75.96.14]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-31ec082943fsm7960604eec.29.2026.08.13.08.32.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Aug 2026 08:32:08 -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 v2 5/5] iio: humidity: hts221: fix division by zero in calibration parsing Date: Thu, 13 Aug 2026 23:31:29 +0800 Message-ID: <20260813153129.12423-6-adinata.softwareengineer@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260813153129.12423-1-adinata.softwareengineer@gmail.com> References: <20260813153129.12423-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 Reviewed-by: Andy Shevchenko --- drivers/iio/humidity/hts221_core.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/iio/humidity/hts221_core.c b/drivers/iio/humidity/hts2= 21_core.c index fda38dfc6742..47a10884d812 100644 --- a/drivers/iio/humidity/hts221_core.c +++ b/drivers/iio/humidity/hts221_core.c @@ -245,6 +245,7 @@ int hts221_set_enable(struct hts221_hw *hw, bool enable) =20 static int hts221_parse_temp_caldata(struct hts221_hw *hw) { + struct device *dev =3D hw->dev; int err, *slope, *b_gen, cal0, cal1; s16 cal_x0, cal_x1, cal_y0, cal_y1; __le16 val; @@ -275,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(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(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; @@ -288,6 +299,7 @@ static int hts221_parse_temp_caldata(struct hts221_hw *= hw) =20 static int hts221_parse_rh_caldata(struct hts221_hw *hw) { + struct device *dev =3D hw->dev; int err, *slope, *b_gen, data; s16 cal_x0, cal_x1, cal_y0, cal_y1; __le16 val; @@ -314,10 +326,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(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(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