Hi Mauro, It's probably a bug fix that unveils the link errors.
tree: git://git.ragnatech.se/linux media-tree
head: f67449fdba3b9dbdd340d8cbf17dfa711d5bd2fb
commit: 238f694e1b7f8297f1256c57e41f69c39576c9b4 [369/405] media: v4l2-common:
fix a compilation breakage
config: x86_64-randconfig-s4-03231521 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
git checkout 238f694e1b7f8297f1256c57e41f69c39576c9b4
# save the attached .config to linux build tree
make ARCH=x86_64
All errors (new ones prefixed by >>):
drivers/media/dvb-frontends/af9013.o: In function `af9013_remove':
>> drivers/media/dvb-frontends/af9013.c:1560: undefined reference to
>> `i2c_mux_del_adapters'
drivers/media/dvb-frontends/af9013.o: In function `af9013_probe':
>> drivers/media/dvb-frontends/af9013.c:1488: undefined reference to
>> `i2c_mux_alloc'
>> drivers/media/dvb-frontends/af9013.c:1495: undefined reference to
>> `i2c_mux_add_adapter'
drivers/media/dvb-frontends/af9013.c:1544: undefined reference to
`i2c_mux_del_adapters'
vim +1560 drivers/media/dvb-frontends/af9013.c
f458a1bc67 Antti Palosaari 2017-06-12 1443
82d1ce3eba Antti Palosaari 2017-06-10 1444 static int af9013_probe(struct
i2c_client *client,
82d1ce3eba Antti Palosaari 2017-06-10 1445 const struct
i2c_device_id *id)
82d1ce3eba Antti Palosaari 2017-06-10 1446 {
82d1ce3eba Antti Palosaari 2017-06-10 1447 struct af9013_state *state;
82d1ce3eba Antti Palosaari 2017-06-10 1448 struct af9013_platform_data
*pdata = client->dev.platform_data;
d029799b2f Antti Palosaari 2017-06-12 1449 struct dtv_frontend_properties
*c;
82d1ce3eba Antti Palosaari 2017-06-10 1450 int ret, i;
82d1ce3eba Antti Palosaari 2017-06-10 1451 u8 firmware_version[4];
f458a1bc67 Antti Palosaari 2017-06-12 1452 static const struct regmap_bus
regmap_bus = {
f458a1bc67 Antti Palosaari 2017-06-12 1453 .read =
af9013_regmap_read,
f458a1bc67 Antti Palosaari 2017-06-12 1454 .write =
af9013_regmap_write,
f458a1bc67 Antti Palosaari 2017-06-12 1455 };
f458a1bc67 Antti Palosaari 2017-06-12 1456 static const struct
regmap_config regmap_config = {
22e59e7204 Antti Palosaari 2017-06-22 1457 /* Actual reg is 16
bits, see i2c adapter lock */
22e59e7204 Antti Palosaari 2017-06-22 1458 .reg_bits = 24,
f458a1bc67 Antti Palosaari 2017-06-12 1459 .val_bits = 8,
f458a1bc67 Antti Palosaari 2017-06-12 1460 };
82d1ce3eba Antti Palosaari 2017-06-10 1461
82d1ce3eba Antti Palosaari 2017-06-10 1462 state = kzalloc(sizeof(*state),
GFP_KERNEL);
82d1ce3eba Antti Palosaari 2017-06-10 1463 if (!state) {
82d1ce3eba Antti Palosaari 2017-06-10 1464 ret = -ENOMEM;
82d1ce3eba Antti Palosaari 2017-06-10 1465 goto err;
82d1ce3eba Antti Palosaari 2017-06-10 1466 }
82d1ce3eba Antti Palosaari 2017-06-10 1467
22e59e7204 Antti Palosaari 2017-06-22 1468 dev_dbg(&client->dev, "\n");
22e59e7204 Antti Palosaari 2017-06-22 1469
82d1ce3eba Antti Palosaari 2017-06-10 1470 /* Setup the state */
82d1ce3eba Antti Palosaari 2017-06-10 1471 state->client = client;
82d1ce3eba Antti Palosaari 2017-06-10 1472 i2c_set_clientdata(client,
state);
82d1ce3eba Antti Palosaari 2017-06-10 1473 state->clk = pdata->clk;
82d1ce3eba Antti Palosaari 2017-06-10 1474 state->tuner = pdata->tuner;
82d1ce3eba Antti Palosaari 2017-06-10 1475 state->if_frequency =
pdata->if_frequency;
82d1ce3eba Antti Palosaari 2017-06-10 1476 state->ts_mode = pdata->ts_mode;
eaa455f023 Antti Palosaari 2017-06-13 1477 state->ts_output_pin =
pdata->ts_output_pin;
82d1ce3eba Antti Palosaari 2017-06-10 1478 state->spec_inv =
pdata->spec_inv;
82d1ce3eba Antti Palosaari 2017-06-10 1479 memcpy(&state->api_version,
pdata->api_version, sizeof(state->api_version));
82d1ce3eba Antti Palosaari 2017-06-10 1480 memcpy(&state->gpio,
pdata->gpio, sizeof(state->gpio));
f458a1bc67 Antti Palosaari 2017-06-12 1481 state->regmap =
regmap_init(&client->dev, ®map_bus, client,
f458a1bc67 Antti Palosaari 2017-06-12 1482
®map_config);
f458a1bc67 Antti Palosaari 2017-06-12 1483 if (IS_ERR(state->regmap)) {
f458a1bc67 Antti Palosaari 2017-06-12 1484 ret =
PTR_ERR(state->regmap);
f458a1bc67 Antti Palosaari 2017-06-12 1485 goto err_kfree;
f458a1bc67 Antti Palosaari 2017-06-12 1486 }
22e59e7204 Antti Palosaari 2017-06-22 1487 /* Create mux i2c adapter */
22e59e7204 Antti Palosaari 2017-06-22 @1488 state->muxc =
i2c_mux_alloc(client->adapter, &client->dev, 1, 0, 0,
22e59e7204 Antti Palosaari 2017-06-22 1489
af9013_select, af9013_deselect);
22e59e7204 Antti Palosaari 2017-06-22 1490 if (!state->muxc) {
22e59e7204 Antti Palosaari 2017-06-22 1491 ret = -ENOMEM;
22e59e7204 Antti Palosaari 2017-06-22 1492 goto err_regmap_exit;
22e59e7204 Antti Palosaari 2017-06-22 1493 }
22e59e7204 Antti Palosaari 2017-06-22 1494 state->muxc->priv = state;
22e59e7204 Antti Palosaari 2017-06-22 @1495 ret =
i2c_mux_add_adapter(state->muxc, 0, 0, 0);
22e59e7204 Antti Palosaari 2017-06-22 1496 if (ret)
22e59e7204 Antti Palosaari 2017-06-22 1497 goto err_regmap_exit;
82d1ce3eba Antti Palosaari 2017-06-10 1498
82d1ce3eba Antti Palosaari 2017-06-10 1499 /* Download firmware */
eaa455f023 Antti Palosaari 2017-06-13 1500 if (state->ts_mode !=
AF9013_TS_MODE_USB) {
82d1ce3eba Antti Palosaari 2017-06-10 1501 ret =
af9013_download_firmware(state);
82d1ce3eba Antti Palosaari 2017-06-10 1502 if (ret)
22e59e7204 Antti Palosaari 2017-06-22 1503 goto
err_i2c_mux_del_adapters;
82d1ce3eba Antti Palosaari 2017-06-10 1504 }
82d1ce3eba Antti Palosaari 2017-06-10 1505
82d1ce3eba Antti Palosaari 2017-06-10 1506 /* Firmware version */
f458a1bc67 Antti Palosaari 2017-06-12 1507 ret =
regmap_bulk_read(state->regmap, 0x5103, firmware_version,
82d1ce3eba Antti Palosaari 2017-06-10 1508
sizeof(firmware_version));
82d1ce3eba Antti Palosaari 2017-06-10 1509 if (ret)
22e59e7204 Antti Palosaari 2017-06-22 1510 goto
err_i2c_mux_del_adapters;
82d1ce3eba Antti Palosaari 2017-06-10 1511
82d1ce3eba Antti Palosaari 2017-06-10 1512 /* Set GPIOs */
82d1ce3eba Antti Palosaari 2017-06-10 1513 for (i = 0; i <
sizeof(state->gpio); i++) {
82d1ce3eba Antti Palosaari 2017-06-10 1514 ret =
af9013_set_gpio(state, i, state->gpio[i]);
82d1ce3eba Antti Palosaari 2017-06-10 1515 if (ret)
22e59e7204 Antti Palosaari 2017-06-22 1516 goto
err_i2c_mux_del_adapters;
82d1ce3eba Antti Palosaari 2017-06-10 1517 }
82d1ce3eba Antti Palosaari 2017-06-10 1518
82d1ce3eba Antti Palosaari 2017-06-10 1519 /* Create dvb frontend */
82d1ce3eba Antti Palosaari 2017-06-10 1520 memcpy(&state->fe.ops,
&af9013_ops, sizeof(state->fe.ops));
82d1ce3eba Antti Palosaari 2017-06-10 1521 state->fe.demodulator_priv =
state;
82d1ce3eba Antti Palosaari 2017-06-10 1522
82d1ce3eba Antti Palosaari 2017-06-10 1523 /* Setup callbacks */
82d1ce3eba Antti Palosaari 2017-06-10 1524 pdata->get_dvb_frontend =
af9013_get_dvb_frontend;
22e59e7204 Antti Palosaari 2017-06-22 1525 pdata->get_i2c_adapter =
af9013_get_i2c_adapter;
83d6b7c327 Antti Palosaari 2017-06-26 1526 pdata->pid_filter =
af9013_pid_filter;
83d6b7c327 Antti Palosaari 2017-06-26 1527 pdata->pid_filter_ctrl =
af9013_pid_filter_ctrl;
82d1ce3eba Antti Palosaari 2017-06-10 1528
d029799b2f Antti Palosaari 2017-06-12 1529 /* Init stats to indicate which
stats are supported */
d029799b2f Antti Palosaari 2017-06-12 1530 c =
&state->fe.dtv_property_cache;
943a720f5c Antti Palosaari 2017-06-18 1531 c->strength.len = 1;
d029799b2f Antti Palosaari 2017-06-12 1532 c->cnr.len = 1;
233f3ef71c Antti Palosaari 2017-06-18 1533 c->post_bit_error.len = 1;
233f3ef71c Antti Palosaari 2017-06-18 1534 c->post_bit_count.len = 1;
233f3ef71c Antti Palosaari 2017-06-18 1535 c->block_error.len = 1;
233f3ef71c Antti Palosaari 2017-06-18 1536 c->block_count.len = 1;
d029799b2f Antti Palosaari 2017-06-12 1537
82d1ce3eba Antti Palosaari 2017-06-10 1538 dev_info(&client->dev, "Afatech
AF9013 successfully attached\n");
82d1ce3eba Antti Palosaari 2017-06-10 1539 dev_info(&client->dev,
"firmware version: %d.%d.%d.%d\n",
82d1ce3eba Antti Palosaari 2017-06-10 1540 firmware_version[0],
firmware_version[1],
82d1ce3eba Antti Palosaari 2017-06-10 1541 firmware_version[2],
firmware_version[3]);
82d1ce3eba Antti Palosaari 2017-06-10 1542 return 0;
22e59e7204 Antti Palosaari 2017-06-22 1543 err_i2c_mux_del_adapters:
22e59e7204 Antti Palosaari 2017-06-22 1544
i2c_mux_del_adapters(state->muxc);
f458a1bc67 Antti Palosaari 2017-06-12 1545 err_regmap_exit:
f458a1bc67 Antti Palosaari 2017-06-12 1546 regmap_exit(state->regmap);
82d1ce3eba Antti Palosaari 2017-06-10 1547 err_kfree:
82d1ce3eba Antti Palosaari 2017-06-10 1548 kfree(state);
82d1ce3eba Antti Palosaari 2017-06-10 1549 err:
82d1ce3eba Antti Palosaari 2017-06-10 1550 dev_dbg(&client->dev, "failed
%d\n", ret);
82d1ce3eba Antti Palosaari 2017-06-10 1551 return ret;
82d1ce3eba Antti Palosaari 2017-06-10 1552 }
82d1ce3eba Antti Palosaari 2017-06-10 1553
82d1ce3eba Antti Palosaari 2017-06-10 1554 static int af9013_remove(struct
i2c_client *client)
82d1ce3eba Antti Palosaari 2017-06-10 1555 {
82d1ce3eba Antti Palosaari 2017-06-10 1556 struct af9013_state *state =
i2c_get_clientdata(client);
82d1ce3eba Antti Palosaari 2017-06-10 1557
82d1ce3eba Antti Palosaari 2017-06-10 1558 dev_dbg(&client->dev, "\n");
82d1ce3eba Antti Palosaari 2017-06-10 1559
22e59e7204 Antti Palosaari 2017-06-22 @1560
i2c_mux_del_adapters(state->muxc);
22e59e7204 Antti Palosaari 2017-06-22 1561
f458a1bc67 Antti Palosaari 2017-06-12 1562 regmap_exit(state->regmap);
f458a1bc67 Antti Palosaari 2017-06-12 1563
82d1ce3eba Antti Palosaari 2017-06-10 1564 kfree(state);
82d1ce3eba Antti Palosaari 2017-06-10 1565
82d1ce3eba Antti Palosaari 2017-06-10 1566 return 0;
82d1ce3eba Antti Palosaari 2017-06-10 1567 }
82d1ce3eba Antti Palosaari 2017-06-10 1568
:::::: The code at line 1560 was first introduced by commit
:::::: 22e59e7204a46d9f3c6abc02909927a19640f91f media: af9013: add i2c mux
adapter for tuner bus
:::::: TO: Antti Palosaari <[email protected]>
:::::: CC: Mauro Carvalho Chehab <[email protected]>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: application/gzip
