* drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c:242:51-57: opportunity for str_on_off(enable)
@ 2025-02-16 15:01 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-02-16 15:01 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Julia Lawall
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Bingbu Cao <bingbu.cao@intel.com>
CC: Hans Verkuil <hverkuil@xs4all.nl>
CC: Andreas Helbech Kleist <andreaskleist@gmail.com>
CC: Sakari Ailus <sakari.ailus@linux.intel.com>
Hi Bingbu,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: ad1b832bf1cf2df9304f8eb72943111625c7e5a7
commit: c70281cc83d666d8c064b4c82cc94b6dc9e9f310 media: intel/ipu6: add Kconfig and Makefile
date: 10 months ago
:::::: branch date: 14 hours ago
:::::: commit date: 10 months ago
config: x86_64-randconfig-102-20250216 (https://download.01.org/0day-ci/archive/20250216/202502162250.oxR8oKDN-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
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>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202502162250.oxR8oKDN-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c:242:51-57: opportunity for str_on_off(enable)
drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c:352:43-49: opportunity for str_on_off(enable)
vim +242 drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
a11a5570a09dbc Bingbu Cao 2024-01-31 227
a11a5570a09dbc Bingbu Cao 2024-01-31 228 static int ipu6_isys_csi2_set_stream(struct v4l2_subdev *sd,
a11a5570a09dbc Bingbu Cao 2024-01-31 229 const struct ipu6_isys_csi2_timing *timing,
a11a5570a09dbc Bingbu Cao 2024-01-31 230 unsigned int nlanes, int enable)
a11a5570a09dbc Bingbu Cao 2024-01-31 231 {
a11a5570a09dbc Bingbu Cao 2024-01-31 232 struct ipu6_isys_subdev *asd = to_ipu6_isys_subdev(sd);
a11a5570a09dbc Bingbu Cao 2024-01-31 233 struct ipu6_isys_csi2 *csi2 = to_ipu6_isys_csi2(asd);
a11a5570a09dbc Bingbu Cao 2024-01-31 234 struct ipu6_isys *isys = csi2->isys;
a11a5570a09dbc Bingbu Cao 2024-01-31 235 struct device *dev = &isys->adev->auxdev.dev;
a11a5570a09dbc Bingbu Cao 2024-01-31 236 struct ipu6_isys_csi2_config cfg;
a11a5570a09dbc Bingbu Cao 2024-01-31 237 unsigned int nports;
a11a5570a09dbc Bingbu Cao 2024-01-31 238 int ret = 0;
a11a5570a09dbc Bingbu Cao 2024-01-31 239 u32 mask = 0;
a11a5570a09dbc Bingbu Cao 2024-01-31 240 u32 i;
a11a5570a09dbc Bingbu Cao 2024-01-31 241
a11a5570a09dbc Bingbu Cao 2024-01-31 @242 dev_dbg(dev, "stream %s CSI2-%u with %u lanes\n", enable ? "on" : "off",
a11a5570a09dbc Bingbu Cao 2024-01-31 243 csi2->port, nlanes);
a11a5570a09dbc Bingbu Cao 2024-01-31 244
a11a5570a09dbc Bingbu Cao 2024-01-31 245 cfg.port = csi2->port;
a11a5570a09dbc Bingbu Cao 2024-01-31 246 cfg.nlanes = nlanes;
a11a5570a09dbc Bingbu Cao 2024-01-31 247
a11a5570a09dbc Bingbu Cao 2024-01-31 248 mask = isys->pdata->ipdata->csi2.irq_mask;
a11a5570a09dbc Bingbu Cao 2024-01-31 249 nports = isys->pdata->ipdata->csi2.nports;
a11a5570a09dbc Bingbu Cao 2024-01-31 250
a11a5570a09dbc Bingbu Cao 2024-01-31 251 if (!enable) {
a11a5570a09dbc Bingbu Cao 2024-01-31 252 writel(0, csi2->base + CSI_REG_CSI_FE_ENABLE);
a11a5570a09dbc Bingbu Cao 2024-01-31 253 writel(0, csi2->base + CSI_REG_PPI2CSI_ENABLE);
a11a5570a09dbc Bingbu Cao 2024-01-31 254
a11a5570a09dbc Bingbu Cao 2024-01-31 255 writel(0,
a11a5570a09dbc Bingbu Cao 2024-01-31 256 csi2->base + CSI_PORT_REG_BASE_IRQ_CSI +
a11a5570a09dbc Bingbu Cao 2024-01-31 257 CSI_PORT_REG_BASE_IRQ_ENABLE_OFFSET);
a11a5570a09dbc Bingbu Cao 2024-01-31 258 writel(mask,
a11a5570a09dbc Bingbu Cao 2024-01-31 259 csi2->base + CSI_PORT_REG_BASE_IRQ_CSI +
a11a5570a09dbc Bingbu Cao 2024-01-31 260 CSI_PORT_REG_BASE_IRQ_CLEAR_OFFSET);
a11a5570a09dbc Bingbu Cao 2024-01-31 261 writel(0,
a11a5570a09dbc Bingbu Cao 2024-01-31 262 csi2->base + CSI_PORT_REG_BASE_IRQ_CSI_SYNC +
a11a5570a09dbc Bingbu Cao 2024-01-31 263 CSI_PORT_REG_BASE_IRQ_ENABLE_OFFSET);
a11a5570a09dbc Bingbu Cao 2024-01-31 264 writel(0xffffffff,
a11a5570a09dbc Bingbu Cao 2024-01-31 265 csi2->base + CSI_PORT_REG_BASE_IRQ_CSI_SYNC +
a11a5570a09dbc Bingbu Cao 2024-01-31 266 CSI_PORT_REG_BASE_IRQ_CLEAR_OFFSET);
a11a5570a09dbc Bingbu Cao 2024-01-31 267
a11a5570a09dbc Bingbu Cao 2024-01-31 268 isys->phy_set_power(isys, &cfg, timing, false);
a11a5570a09dbc Bingbu Cao 2024-01-31 269
a11a5570a09dbc Bingbu Cao 2024-01-31 270 writel(0, isys->pdata->base + CSI_REG_HUB_FW_ACCESS_PORT
a11a5570a09dbc Bingbu Cao 2024-01-31 271 (isys->pdata->ipdata->csi2.fw_access_port_ofs,
a11a5570a09dbc Bingbu Cao 2024-01-31 272 csi2->port));
a11a5570a09dbc Bingbu Cao 2024-01-31 273 writel(0, isys->pdata->base +
a11a5570a09dbc Bingbu Cao 2024-01-31 274 CSI_REG_HUB_DRV_ACCESS_PORT(csi2->port));
a11a5570a09dbc Bingbu Cao 2024-01-31 275
a11a5570a09dbc Bingbu Cao 2024-01-31 276 return ret;
a11a5570a09dbc Bingbu Cao 2024-01-31 277 }
a11a5570a09dbc Bingbu Cao 2024-01-31 278
a11a5570a09dbc Bingbu Cao 2024-01-31 279 /* reset port reset */
a11a5570a09dbc Bingbu Cao 2024-01-31 280 writel(0x1, csi2->base + CSI_REG_PORT_GPREG_SRST);
a11a5570a09dbc Bingbu Cao 2024-01-31 281 usleep_range(100, 200);
a11a5570a09dbc Bingbu Cao 2024-01-31 282 writel(0x0, csi2->base + CSI_REG_PORT_GPREG_SRST);
a11a5570a09dbc Bingbu Cao 2024-01-31 283
a11a5570a09dbc Bingbu Cao 2024-01-31 284 /* enable port clock */
a11a5570a09dbc Bingbu Cao 2024-01-31 285 for (i = 0; i < nports; i++) {
a11a5570a09dbc Bingbu Cao 2024-01-31 286 writel(1, isys->pdata->base + CSI_REG_HUB_DRV_ACCESS_PORT(i));
a11a5570a09dbc Bingbu Cao 2024-01-31 287 writel(1, isys->pdata->base + CSI_REG_HUB_FW_ACCESS_PORT
a11a5570a09dbc Bingbu Cao 2024-01-31 288 (isys->pdata->ipdata->csi2.fw_access_port_ofs, i));
a11a5570a09dbc Bingbu Cao 2024-01-31 289 }
a11a5570a09dbc Bingbu Cao 2024-01-31 290
a11a5570a09dbc Bingbu Cao 2024-01-31 291 /* enable all error related irq */
a11a5570a09dbc Bingbu Cao 2024-01-31 292 writel(mask,
a11a5570a09dbc Bingbu Cao 2024-01-31 293 csi2->base + CSI_PORT_REG_BASE_IRQ_CSI +
a11a5570a09dbc Bingbu Cao 2024-01-31 294 CSI_PORT_REG_BASE_IRQ_STATUS_OFFSET);
a11a5570a09dbc Bingbu Cao 2024-01-31 295 writel(mask,
a11a5570a09dbc Bingbu Cao 2024-01-31 296 csi2->base + CSI_PORT_REG_BASE_IRQ_CSI +
a11a5570a09dbc Bingbu Cao 2024-01-31 297 CSI_PORT_REG_BASE_IRQ_MASK_OFFSET);
a11a5570a09dbc Bingbu Cao 2024-01-31 298 writel(mask,
a11a5570a09dbc Bingbu Cao 2024-01-31 299 csi2->base + CSI_PORT_REG_BASE_IRQ_CSI +
a11a5570a09dbc Bingbu Cao 2024-01-31 300 CSI_PORT_REG_BASE_IRQ_CLEAR_OFFSET);
a11a5570a09dbc Bingbu Cao 2024-01-31 301 writel(mask,
a11a5570a09dbc Bingbu Cao 2024-01-31 302 csi2->base + CSI_PORT_REG_BASE_IRQ_CSI +
a11a5570a09dbc Bingbu Cao 2024-01-31 303 CSI_PORT_REG_BASE_IRQ_LEVEL_NOT_PULSE_OFFSET);
a11a5570a09dbc Bingbu Cao 2024-01-31 304 writel(mask,
a11a5570a09dbc Bingbu Cao 2024-01-31 305 csi2->base + CSI_PORT_REG_BASE_IRQ_CSI +
a11a5570a09dbc Bingbu Cao 2024-01-31 306 CSI_PORT_REG_BASE_IRQ_ENABLE_OFFSET);
a11a5570a09dbc Bingbu Cao 2024-01-31 307
a11a5570a09dbc Bingbu Cao 2024-01-31 308 /*
a11a5570a09dbc Bingbu Cao 2024-01-31 309 * Using event from firmware instead of irq to handle CSI2 sync event
a11a5570a09dbc Bingbu Cao 2024-01-31 310 * which can reduce system wakeups. If CSI2 sync irq enabled, we need
a11a5570a09dbc Bingbu Cao 2024-01-31 311 * disable the firmware CSI2 sync event to avoid duplicate handling.
a11a5570a09dbc Bingbu Cao 2024-01-31 312 */
a11a5570a09dbc Bingbu Cao 2024-01-31 313 writel(0xffffffff, csi2->base + CSI_PORT_REG_BASE_IRQ_CSI_SYNC +
a11a5570a09dbc Bingbu Cao 2024-01-31 314 CSI_PORT_REG_BASE_IRQ_STATUS_OFFSET);
a11a5570a09dbc Bingbu Cao 2024-01-31 315 writel(0, csi2->base + CSI_PORT_REG_BASE_IRQ_CSI_SYNC +
a11a5570a09dbc Bingbu Cao 2024-01-31 316 CSI_PORT_REG_BASE_IRQ_MASK_OFFSET);
a11a5570a09dbc Bingbu Cao 2024-01-31 317 writel(0xffffffff, csi2->base + CSI_PORT_REG_BASE_IRQ_CSI_SYNC +
a11a5570a09dbc Bingbu Cao 2024-01-31 318 CSI_PORT_REG_BASE_IRQ_CLEAR_OFFSET);
a11a5570a09dbc Bingbu Cao 2024-01-31 319 writel(0, csi2->base + CSI_PORT_REG_BASE_IRQ_CSI_SYNC +
a11a5570a09dbc Bingbu Cao 2024-01-31 320 CSI_PORT_REG_BASE_IRQ_LEVEL_NOT_PULSE_OFFSET);
a11a5570a09dbc Bingbu Cao 2024-01-31 321 writel(0xffffffff, csi2->base + CSI_PORT_REG_BASE_IRQ_CSI_SYNC +
a11a5570a09dbc Bingbu Cao 2024-01-31 322 CSI_PORT_REG_BASE_IRQ_ENABLE_OFFSET);
a11a5570a09dbc Bingbu Cao 2024-01-31 323
a11a5570a09dbc Bingbu Cao 2024-01-31 324 /* configure to enable FE and PPI2CSI */
a11a5570a09dbc Bingbu Cao 2024-01-31 325 writel(0, csi2->base + CSI_REG_CSI_FE_MODE);
a11a5570a09dbc Bingbu Cao 2024-01-31 326 writel(CSI_SENSOR_INPUT, csi2->base + CSI_REG_CSI_FE_MUX_CTRL);
a11a5570a09dbc Bingbu Cao 2024-01-31 327 writel(CSI_CNTR_SENSOR_LINE_ID | CSI_CNTR_SENSOR_FRAME_ID,
a11a5570a09dbc Bingbu Cao 2024-01-31 328 csi2->base + CSI_REG_CSI_FE_SYNC_CNTR_SEL);
a11a5570a09dbc Bingbu Cao 2024-01-31 329 writel(FIELD_PREP(PPI_INTF_CONFIG_NOF_ENABLED_DLANES_MASK, nlanes - 1),
a11a5570a09dbc Bingbu Cao 2024-01-31 330 csi2->base + CSI_REG_PPI2CSI_CONFIG_PPI_INTF);
a11a5570a09dbc Bingbu Cao 2024-01-31 331
a11a5570a09dbc Bingbu Cao 2024-01-31 332 writel(1, csi2->base + CSI_REG_PPI2CSI_ENABLE);
a11a5570a09dbc Bingbu Cao 2024-01-31 333 writel(1, csi2->base + CSI_REG_CSI_FE_ENABLE);
a11a5570a09dbc Bingbu Cao 2024-01-31 334
a11a5570a09dbc Bingbu Cao 2024-01-31 335 ret = isys->phy_set_power(isys, &cfg, timing, true);
a11a5570a09dbc Bingbu Cao 2024-01-31 336 if (ret)
a11a5570a09dbc Bingbu Cao 2024-01-31 337 dev_err(dev, "csi-%d phy power up failed %d\n", csi2->port,
a11a5570a09dbc Bingbu Cao 2024-01-31 338 ret);
a11a5570a09dbc Bingbu Cao 2024-01-31 339
a11a5570a09dbc Bingbu Cao 2024-01-31 340 return ret;
a11a5570a09dbc Bingbu Cao 2024-01-31 341 }
a11a5570a09dbc Bingbu Cao 2024-01-31 342
:::::: The code at line 242 was first introduced by commit
:::::: a11a5570a09dbcbe3b8813bd9fb7e9c630afdbf4 media: intel/ipu6: add IPU6 CSI2 receiver v4l2 sub-device
:::::: TO: Bingbu Cao <bingbu.cao@intel.com>
:::::: CC: Hans Verkuil <hverkuil-cisco@xs4all.nl>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-02-16 15:01 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-16 15:01 drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c:242:51-57: opportunity for str_on_off(enable) kernel test robot
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.