CC: [email protected] In-Reply-To: <20201020092732.GA30983@laureti-dev> References: <20201020092732.GA30983@laureti-dev> TO: Helmut Grohne <[email protected]>
Hi Helmut, [FYI, it's a private test report for your RFC patch.] [auto build test WARNING on linuxtv-media/master] [also build test WARNING on v5.9 next-20201023] [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] url: https://github.com/0day-ci/linux/commits/Helmut-Grohne/media-new-driver-mt9m02x-for-Onsemi-MT9M024-and-AR0141CS/20201020-173420 base: git://linuxtv.org/media_tree.git master :::::: branch date: 3 days ago :::::: commit date: 3 days ago config: i386-randconfig-m021-20201022 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> smatch warnings: drivers/media/i2c/mt9m02x.c:1459 mt9m02x_probe() warn: should '(((1))) << (state->model->chip->digital_gain_shift)' be a 64 bit type? vim +1459 drivers/media/i2c/mt9m02x.c 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1382 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1383 // read out device tree and probe driver 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1384 static int mt9m02x_probe(struct i2c_client *client, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1385 const struct i2c_device_id *did) 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1386 { 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1387 int ret; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1388 struct mt9m02x_state *state; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1389 struct mt9m02x_platform_data pdatabuffer; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1390 struct mt9m02x_platform_data *pdata; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1391 struct v4l2_ctrl *ctrl; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1392 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1393 dev_dbg(&client->dev, "start probing i2c device %s!\n", client->name); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1394 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1395 if (client->dev.of_node) { 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1396 if (of_property_read_u32(client->dev.of_node, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1397 "input-clock-frequency", 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1398 &pdatabuffer.ext_freq)) { 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1399 dev_err(&client->dev, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1400 "input-clock-frequency property missing"); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1401 return -EINVAL; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1402 } 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1403 if (of_property_read_u32(client->dev.of_node, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1404 "pixel-clock-frequency", 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1405 &pdatabuffer.pix_clock)) { 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1406 dev_err(&client->dev, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1407 "pixel-clock-frequency property missing"); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1408 return -EINVAL; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1409 } 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1410 pdata = &pdatabuffer; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1411 } else { 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1412 pdata = client->dev.platform_data; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1413 if (!pdata) { 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1414 dev_err(&client->dev, "No platform data found."); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1415 return -EINVAL; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1416 } 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1417 } 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1418 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1419 state = devm_kzalloc(&client->dev, sizeof(*state), GFP_KERNEL); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1420 if (!state) 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1421 return -ENOMEM; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1422 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1423 state->client = client; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1424 state->model = (const void *)did->driver_data; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1425 state->pll.ext_clock = pdata->ext_freq; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1426 dev_dbg(&client->dev, "ext_clock = %d\n", state->pll.ext_clock); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1427 state->pll.pix_clock = pdata->pix_clock; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1428 dev_dbg(&client->dev, "pix_clock = %d\n", state->pll.pix_clock); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1429 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1430 state->reset_gpio = devm_gpiod_get_optional(&client->dev, "reset", 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1431 GPIOD_OUT_LOW); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1432 if (IS_ERR(state->reset_gpio)) 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1433 return PTR_ERR(state->reset_gpio); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1434 state->standby_gpio = devm_gpiod_get_optional(&client->dev, "standby", 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1435 GPIOD_OUT_HIGH); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1436 if (IS_ERR(state->standby_gpio)) 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1437 return PTR_ERR(state->standby_gpio); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1438 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1439 ret = init_image_sensor(state); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1440 if (ret) { 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1441 dev_err(&client->dev, "init image sensor failed!\n"); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1442 return ret; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1443 } 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1444 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1445 dev_dbg(&client->dev, "initialization succeeded!\n"); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1446 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1447 v4l2_ctrl_handler_init(&state->ctrls, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1448 state->model->chip == &chip_mt9m024 ? 9 : 6); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1449 /* Monotone mapping of available gains to 0..N. */ 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1450 v4l2_ctrl_new_int_menu(&state->ctrls, &mt9m02x_ctrl_ops, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1451 V4L2_CID_ISO_SENSITIVITY, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1452 state->model->chip->again_menu_length - 1, 0, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1453 state->model->chip->again_menu); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1454 state->digital_gain_ctrl = v4l2_ctrl_new_std( 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1455 &state->ctrls, &mt9m02x_ctrl_ops, V4L2_CID_DIGITAL_GAIN, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1456 state->model->chip->digital_gain_min, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1457 GENMASK(state->model->chip->digital_gain_bits - 1, 0) * 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1458 BIT(state->model->chip->digital_gain_shift), 7e5cc022d1b3453 Helmut Grohne 2020-10-20 @1459 BIT(state->model->chip->digital_gain_shift), 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1460 max_t(s64, BIT(8), state->model->chip->digital_gain_min)); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1461 state->mode_cluster.hflip = v4l2_ctrl_new_std( 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1462 &state->ctrls, &mt9m02x_ctrl_ops, V4L2_CID_HFLIP, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1463 0, 1, 1, 1); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1464 state->mode_cluster.vflip = v4l2_ctrl_new_std( 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1465 &state->ctrls, &mt9m02x_ctrl_ops, V4L2_CID_VFLIP, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1466 0, 1, 1, 1); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1467 ctrl = v4l2_ctrl_new_std(&state->ctrls, &mt9m02x_ctrl_ops, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1468 V4L2_CID_PIXEL_RATE, state->pll.pix_clock, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1469 state->pll.pix_clock, 1, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1470 state->pll.pix_clock); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1471 if (ctrl) 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1472 ctrl->flags |= V4L2_CTRL_FLAG_READ_ONLY; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1473 state->exposure_ctrl = v4l2_ctrl_new_std( 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1474 &state->ctrls, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1475 &mt9m02x_ctrl_ops, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1476 V4L2_CID_EXPOSURE_ABSOLUTE, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1477 /* Actual range is set later. */ 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1478 mt9m02x_exposure_coarse_to_100us( 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1479 state, APT_COARSE_INTEGRATION_TIME_DEFAULT), 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1480 mt9m02x_exposure_coarse_to_100us( 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1481 state, APT_COARSE_INTEGRATION_TIME_DEFAULT), 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1482 1, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1483 mt9m02x_exposure_coarse_to_100us( 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1484 state, APT_COARSE_INTEGRATION_TIME_DEFAULT)); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1485 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1486 if (state->model->chip == &chip_mt9m024) { 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1487 state->opmode_cluster.wdr = v4l2_ctrl_new_std( 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1488 &state->ctrls, &mt9m02x_ctrl_ops, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1489 V4L2_CID_WIDE_DYNAMIC_RANGE, 0, 1, 1, 0); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1490 state->opmode_cluster.ratio_t1t2 = v4l2_ctrl_new_custom( 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1491 &state->ctrls, &mt9m02x_hdr_ratio_t1t2_ctrl, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1492 NULL); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1493 state->opmode_cluster.ratio_t2t3 = v4l2_ctrl_new_custom( 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1494 &state->ctrls, &mt9m02x_hdr_ratio_t2t3_ctrl, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1495 NULL); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1496 } 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1497 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1498 if (state->ctrls.error) { 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1499 dev_err(&client->dev, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1500 "v4l2 control handler registration failed!\n"); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1501 return state->ctrls.error; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1502 } 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1503 v4l2_ctrl_cluster(2, &state->mode_cluster.hflip); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1504 if (state->model->chip == &chip_mt9m024) 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1505 v4l2_ctrl_cluster(3, &state->opmode_cluster.wdr); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1506 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1507 state->sd.ctrl_handler = &state->ctrls; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1508 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1509 ret = v4l2_ctrl_handler_setup(&state->ctrls); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1510 if (ret) { 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1511 dev_err(&client->dev, "v4l2_ctrl_handler_setup failed!\n"); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1512 return ret; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1513 } 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1514 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1515 v4l2_ctrl_lock(state->exposure_ctrl); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1516 ret = mt9m02x_update_exposure_range(state); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1517 v4l2_ctrl_unlock(state->exposure_ctrl); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1518 if (ret) 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1519 return ret; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1520 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1521 v4l2_i2c_subdev_init(&state->sd, client, &mt9m02x_v4l2_subdev_ops); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1522 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1523 state->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1524 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1525 state->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1526 state->pad.flags = MEDIA_PAD_FL_SOURCE; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1527 ret = media_entity_pads_init(&state->sd.entity, 1, &state->pad); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1528 if (ret) 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1529 return ret; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1530 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1531 ret = v4l2_async_register_subdev(&state->sd); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1532 if (ret) { 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1533 dev_err(&client->dev, "v4l2_async_register_subdev failed!\n"); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1534 goto error_entity; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1535 } 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1536 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1537 if (state->temp_value1 != state->temp_value2) { 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1538 struct device *hwmon_dev; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1539 /* Ignore errors from hwmon device as this functionality is 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1540 * optional. 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1541 */ 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1542 hwmon_dev = devm_hwmon_device_register_with_info( 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1543 &client->dev, client->name, state, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1544 &mt9m02x_hwmon_info, NULL); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1545 if (IS_ERR(hwmon_dev)) 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1546 dev_warn(&client->dev, 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1547 "adding hwmon device failed (%ld).", 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1548 PTR_ERR(hwmon_dev)); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1549 } 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1550 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1551 dev_dbg(&client->dev, "probing i2c device %s successful.\n", 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1552 client->name); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1553 return 0; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1554 error_entity: 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1555 media_entity_cleanup(&state->sd.entity); 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1556 return ret; 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1557 } 7e5cc022d1b3453 Helmut Grohne 2020-10-20 1558 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
