All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Antoniu Miclaus <antoniu.miclaus@analog.com>,
	jic23@kernel.org, robh@kernel.org, conor+dt@kernel.org,
	devicetree@vger.kernel.org, linux-iio@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev,
	Antoniu Miclaus <antoniu.miclaus@analog.com>
Subject: Re: [PATCH 3/3] iio: adc: add ade9000 support
Date: Sun, 13 Jul 2025 06:16:04 +0800	[thread overview]
Message-ID: <202507130521.iaXBguXP-lkp@intel.com> (raw)
In-Reply-To: <20250711130241.159143-4-antoniu.miclaus@analog.com>

Hi Antoniu,

kernel test robot noticed the following build warnings:

[auto build test WARNING on jic23-iio/togreg]
[also build test WARNING on robh/for-next linus/master v6.16-rc5 next-20250711]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Antoniu-Miclaus/iio-add-power-and-energy-measurement-modifiers/20250712-022300
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg
patch link:    https://lore.kernel.org/r/20250711130241.159143-4-antoniu.miclaus%40analog.com
patch subject: [PATCH 3/3] iio: adc: add ade9000 support
config: arc-randconfig-r133-20250713 (https://download.01.org/0day-ci/archive/20250713/202507130521.iaXBguXP-lkp@intel.com/config)
compiler: arc-linux-gcc (GCC) 10.5.0
reproduce: (https://download.01.org/0day-ci/archive/20250713/202507130521.iaXBguXP-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202507130521.iaXBguXP-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/iio/adc/ade9000.c:1176:40: sparse: sparse: cast truncates bits from constant value (100000 becomes 0)
   drivers/iio/adc/ade9000.c:1185:40: sparse: sparse: cast truncates bits from constant value (200000 becomes 0)
   drivers/iio/adc/ade9000.c:1194:40: sparse: sparse: cast truncates bits from constant value (400000 becomes 0)
   drivers/iio/adc/ade9000.c:1203:40: sparse: sparse: cast truncates bits from constant value (800000 becomes 0)
   drivers/iio/adc/ade9000.c:1212:40: sparse: sparse: cast truncates bits from constant value (1000000 becomes 0)
   drivers/iio/adc/ade9000.c:1221:40: sparse: sparse: cast truncates bits from constant value (2000000 becomes 0)
   drivers/iio/adc/ade9000.c:1230:40: sparse: sparse: cast truncates bits from constant value (40000 becomes 0)
   drivers/iio/adc/ade9000.c:1249:12: sparse: sparse: context imbalance in 'ade9000_read_raw' - different lock contexts for basic block
>> drivers/iio/adc/ade9000.c:1761:9: sparse: sparse: dereference of noderef expression
>> drivers/iio/adc/ade9000.c:1761:9: sparse: sparse: dereference of noderef expression

vim +1176 drivers/iio/adc/ade9000.c

  1051	
  1052	static irqreturn_t ade9000_irq1_thread(int irq, void *data)
  1053	{
  1054		struct iio_dev *indio_dev = data;
  1055		struct ade9000_state *st = iio_priv(indio_dev);
  1056		unsigned int bit = ADE9000_ST1_CROSSING_FIRST;
  1057		s64 timestamp = iio_get_time_ns(indio_dev);
  1058		u32 handled_irq = 0;
  1059		u32 interrupts;
  1060		u32 result;
  1061		u32 status;
  1062		u32 tmp;
  1063		int ret;
  1064	
  1065		if (!st->rst_done) {
  1066			ret = regmap_read(st->regmap, ADE9000_REG_STATUS1, &result);
  1067			if (ret)
  1068				return ret;
  1069	
  1070			if (result & ADE9000_ST1_RSTDONE_BIT)
  1071				st->rst_done = true;
  1072			else
  1073				dev_err(&st->spi->dev, "Error testing reset done");
  1074	
  1075			return IRQ_HANDLED;
  1076		}
  1077	
  1078		ret = regmap_read(st->regmap, ADE9000_REG_STATUS1, &status);
  1079		if (ret)
  1080			return IRQ_HANDLED;
  1081	
  1082		ret = regmap_read(st->regmap, ADE9000_REG_MASK1, &interrupts);
  1083		if (ret) {
  1084			dev_err(&st->spi->dev, "IRQ1 read status fail");
  1085			return IRQ_HANDLED;
  1086		}
  1087	
  1088		for_each_set_bit_from(bit, (unsigned long *)&interrupts,
  1089				      ADE9000_ST1_CROSSING_DEPTH){
  1090			tmp = status & BIT(bit);
  1091	
  1092			switch (tmp) {
  1093			case ADE9000_ST1_ZXVA_BIT:
  1094				iio_push_event(indio_dev,
  1095					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1096								    ADE9000_ST1_ZXVA_BIT,
  1097								    IIO_EV_TYPE_THRESH,
  1098								    IIO_EV_DIR_EITHER),
  1099					       timestamp);
  1100				handled_irq |= ADE9000_ST1_ZXVA_BIT;
  1101				break;
  1102			case ADE9000_ST1_ZXTOVA_BIT:
  1103				iio_push_event(indio_dev,
  1104					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1105								    ADE9000_ST1_ZXTOVA_BIT,
  1106								    IIO_EV_TYPE_THRESH,
  1107								    IIO_EV_DIR_EITHER),
  1108					       timestamp);
  1109				handled_irq |= ADE9000_ST1_ZXTOVA_BIT;
  1110				break;
  1111			case ADE9000_ST1_ZXIA_BIT:
  1112				iio_push_event(indio_dev,
  1113					       IIO_UNMOD_EVENT_CODE(IIO_CURRENT,
  1114								    ADE9000_ST1_ZXIA_BIT,
  1115								    IIO_EV_TYPE_THRESH,
  1116								    IIO_EV_DIR_EITHER),
  1117					       timestamp);
  1118				handled_irq |= ADE9000_ST1_ZXIA_BIT;
  1119				break;
  1120			case ADE9000_ST1_ZXVB_BIT:
  1121				iio_push_event(indio_dev,
  1122					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1123								    ADE9000_ST1_ZXVB_BIT,
  1124								    IIO_EV_TYPE_THRESH,
  1125								    IIO_EV_DIR_EITHER),
  1126					       timestamp);
  1127				handled_irq |= ADE9000_ST1_ZXVB_BIT;
  1128				break;
  1129			case ADE9000_ST1_ZXTOVB_BIT:
  1130				iio_push_event(indio_dev,
  1131					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1132								    ADE9000_ST1_ZXTOVB_BIT,
  1133								    IIO_EV_TYPE_THRESH,
  1134								    IIO_EV_DIR_EITHER),
  1135					       timestamp);
  1136				handled_irq |= ADE9000_ST1_ZXTOVB_BIT;
  1137				break;
  1138			case ADE9000_ST1_ZXIB_BIT:
  1139				iio_push_event(indio_dev,
  1140					       IIO_UNMOD_EVENT_CODE(IIO_CURRENT,
  1141								    ADE9000_ST1_ZXIB_BIT,
  1142								    IIO_EV_TYPE_THRESH,
  1143								    IIO_EV_DIR_EITHER),
  1144					       timestamp);
  1145				handled_irq |= ADE9000_ST1_ZXIB_BIT;
  1146				break;
  1147			case ADE9000_ST1_ZXVC_BIT:
  1148				iio_push_event(indio_dev,
  1149					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1150								    ADE9000_ST1_ZXVC_BIT,
  1151								    IIO_EV_TYPE_THRESH,
  1152								    IIO_EV_DIR_EITHER),
  1153					       timestamp);
  1154				handled_irq |= ADE9000_ST1_ZXVC_BIT;
  1155				break;
  1156			case ADE9000_ST1_ZXTOVC_BIT:
  1157				iio_push_event(indio_dev,
  1158					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1159								    ADE9000_ST1_ZXTOVC_BIT,
  1160								    IIO_EV_TYPE_THRESH,
  1161								    IIO_EV_DIR_EITHER),
  1162					       timestamp);
  1163				handled_irq |= ADE9000_ST1_ZXTOVC_BIT;
  1164				break;
  1165			case ADE9000_ST1_ZXIC_BIT:
  1166				iio_push_event(indio_dev,
  1167					       IIO_UNMOD_EVENT_CODE(IIO_CURRENT,
  1168								    ADE9000_ST1_ZXIC_BIT,
  1169								    IIO_EV_TYPE_THRESH,
  1170								    IIO_EV_DIR_EITHER),
  1171					       timestamp);
  1172				handled_irq |= ADE9000_ST1_ZXIC_BIT;
  1173				break;
  1174			case ADE9000_ST1_SWELLA_BIT:
  1175				iio_push_event(indio_dev,
> 1176					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1177								    ADE9000_ST1_SWELLA_BIT,
  1178								    IIO_EV_TYPE_THRESH,
  1179								    IIO_EV_DIR_RISING),
  1180					       timestamp);
  1181				handled_irq |= ADE9000_ST1_SWELLA_BIT;
  1182				break;
  1183			case ADE9000_ST1_SWELLB_BIT:
  1184				iio_push_event(indio_dev,
  1185					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1186								    ADE9000_ST1_SWELLB_BIT,
  1187								    IIO_EV_TYPE_THRESH,
  1188								    IIO_EV_DIR_RISING),
  1189					       timestamp);
  1190				handled_irq |= ADE9000_ST1_SWELLB_BIT;
  1191				break;
  1192			case ADE9000_ST1_SWELLC_BIT:
  1193				iio_push_event(indio_dev,
  1194					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1195								    ADE9000_ST1_SWELLC_BIT,
  1196								    IIO_EV_TYPE_THRESH,
  1197								    IIO_EV_DIR_RISING),
  1198					       timestamp);
  1199				handled_irq |= ADE9000_ST1_SWELLC_BIT;
  1200				break;
  1201			case ADE9000_ST1_DIPA_BIT:
  1202				iio_push_event(indio_dev,
  1203					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1204								    ADE9000_ST1_DIPA_BIT,
  1205								    IIO_EV_TYPE_THRESH,
  1206								    IIO_EV_DIR_FALLING),
  1207					       timestamp);
  1208				handled_irq |= ADE9000_ST1_DIPA_BIT;
  1209				break;
  1210			case ADE9000_ST1_DIPB_BIT:
  1211				iio_push_event(indio_dev,
  1212					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1213								    ADE9000_ST1_DIPB_BIT,
  1214								    IIO_EV_TYPE_THRESH,
  1215								    IIO_EV_DIR_FALLING),
  1216					       timestamp);
  1217				handled_irq |= ADE9000_ST1_DIPB_BIT;
  1218				break;
  1219			case ADE9000_ST1_DIPC_BIT:
  1220				iio_push_event(indio_dev,
  1221					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1222								    ADE9000_ST1_DIPC_BIT,
  1223								    IIO_EV_TYPE_THRESH,
  1224								    IIO_EV_DIR_FALLING),
  1225					       timestamp);
  1226				handled_irq |= ADE9000_ST1_DIPC_BIT;
  1227				break;
  1228			case ADE9000_ST1_SEQERR_BIT:
  1229				iio_push_event(indio_dev,
  1230					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1231								    ADE9000_ST1_SEQERR_BIT,
  1232								    IIO_EV_TYPE_CHANGE,
  1233								    IIO_EV_DIR_NONE),
  1234					       timestamp);
  1235				handled_irq |= ADE9000_ST1_SEQERR_BIT;
  1236				break;
  1237			default:
  1238				return IRQ_HANDLED;
  1239			}
  1240		}
  1241	
  1242		ret = regmap_write(st->regmap, ADE9000_REG_STATUS1, handled_irq);
  1243		if (ret)
  1244			return ret;
  1245	
  1246		return IRQ_HANDLED;
  1247	}
  1248	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

  parent reply	other threads:[~2025-07-12 22:16 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-11 13:02 [PATCH 0/3] iio: adc: add support for ADE9000 Energy Monitoring IC Antoniu Miclaus
2025-07-11 13:02 ` [PATCH 1/3] iio: add power and energy measurement modifiers Antoniu Miclaus
2025-07-11 19:23   ` David Lechner
2025-07-24 13:09     ` Jonathan Cameron
2025-07-24 13:58       ` David Lechner
2025-07-27 13:17         ` Jonathan Cameron
2025-07-11 13:02 ` [PATCH 2/3] dt-bindings: iio: adc: add ade9000 Antoniu Miclaus
2025-07-11 17:43   ` David Lechner
2025-07-11 13:02 ` [PATCH 3/3] iio: adc: add ade9000 support Antoniu Miclaus
2025-07-12 17:56   ` kernel test robot
2025-07-12 22:16   ` kernel test robot [this message]
2025-07-11 17:09 ` [PATCH 0/3] iio: adc: add support for ADE9000 Energy Monitoring IC David Lechner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202507130521.iaXBguXP-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=antoniu.miclaus@analog.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=jic23@kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.