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]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to