CC: [email protected] CC: [email protected] TO: Robert Hancock <[email protected]> CC: Stephen Boyd <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: f71077a4d84bbe8c7b91b7db7c4ef815755ac5e3 commit: b7bbf6ec4940d1a69811ec354edeeb9751fa8e85 clk: si5341: Allow different output VDD_SEL values date: 8 months ago :::::: branch date: 19 hours ago :::::: commit date: 8 months ago compiler: powerpc64-linux-gcc (GCC) 11.2.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> cppcheck warnings: (new ones prefixed by >>) >> drivers/clk/clk-si5341.c:1491:3: warning: %d in format string (no. 1) >> requires 'int' but the argument type is 'unsigned int'. >> [invalidPrintfArgType_sint] snprintf(reg_name, sizeof(reg_name), "vddo%d", i); ^ vim +1491 drivers/clk/clk-si5341.c 692751879ea876d Mike Looijmans 2020-01-07 1450 3044a860fd09f02 Mike Looijmans 2019-05-17 1451 static int si5341_probe(struct i2c_client *client, 3044a860fd09f02 Mike Looijmans 2019-05-17 1452 const struct i2c_device_id *id) 3044a860fd09f02 Mike Looijmans 2019-05-17 1453 { 3044a860fd09f02 Mike Looijmans 2019-05-17 1454 struct clk_si5341 *data; 3044a860fd09f02 Mike Looijmans 2019-05-17 1455 struct clk_init_data init; 692751879ea876d Mike Looijmans 2020-01-07 1456 struct clk *input; 3044a860fd09f02 Mike Looijmans 2019-05-17 1457 const char *root_clock_name; 3044a860fd09f02 Mike Looijmans 2019-05-17 1458 const char *synth_clock_names[SI5341_NUM_SYNTH]; 3044a860fd09f02 Mike Looijmans 2019-05-17 1459 int err; 3044a860fd09f02 Mike Looijmans 2019-05-17 1460 unsigned int i; 3044a860fd09f02 Mike Looijmans 2019-05-17 1461 struct clk_si5341_output_config config[SI5341_MAX_NUM_OUTPUTS]; 3044a860fd09f02 Mike Looijmans 2019-05-17 1462 bool initialization_required; 71dcc4d1f7d2ad9 Robert Hancock 2021-03-25 1463 u32 status; 3044a860fd09f02 Mike Looijmans 2019-05-17 1464 3044a860fd09f02 Mike Looijmans 2019-05-17 1465 data = devm_kzalloc(&client->dev, sizeof(*data), GFP_KERNEL); 3044a860fd09f02 Mike Looijmans 2019-05-17 1466 if (!data) 3044a860fd09f02 Mike Looijmans 2019-05-17 1467 return -ENOMEM; 3044a860fd09f02 Mike Looijmans 2019-05-17 1468 3044a860fd09f02 Mike Looijmans 2019-05-17 1469 data->i2c_client = client; 3044a860fd09f02 Mike Looijmans 2019-05-17 1470 6e7d2de1e000d36 Robert Hancock 2021-03-25 1471 /* Must be done before otherwise touching hardware */ 6e7d2de1e000d36 Robert Hancock 2021-03-25 1472 err = si5341_wait_device_ready(client); 6e7d2de1e000d36 Robert Hancock 2021-03-25 1473 if (err) 6e7d2de1e000d36 Robert Hancock 2021-03-25 1474 return err; 6e7d2de1e000d36 Robert Hancock 2021-03-25 1475 692751879ea876d Mike Looijmans 2020-01-07 1476 for (i = 0; i < SI5341_NUM_INPUTS; ++i) { 692751879ea876d Mike Looijmans 2020-01-07 1477 input = devm_clk_get(&client->dev, si5341_input_clock_names[i]); 692751879ea876d Mike Looijmans 2020-01-07 1478 if (IS_ERR(input)) { 692751879ea876d Mike Looijmans 2020-01-07 1479 if (PTR_ERR(input) == -EPROBE_DEFER) 3044a860fd09f02 Mike Looijmans 2019-05-17 1480 return -EPROBE_DEFER; 692751879ea876d Mike Looijmans 2020-01-07 1481 data->input_clk_name[i] = si5341_input_clock_names[i]; 692751879ea876d Mike Looijmans 2020-01-07 1482 } else { 692751879ea876d Mike Looijmans 2020-01-07 1483 data->input_clk[i] = input; 692751879ea876d Mike Looijmans 2020-01-07 1484 data->input_clk_name[i] = __clk_get_name(input); 692751879ea876d Mike Looijmans 2020-01-07 1485 } 3044a860fd09f02 Mike Looijmans 2019-05-17 1486 } 3044a860fd09f02 Mike Looijmans 2019-05-17 1487 b7bbf6ec4940d1a Robert Hancock 2021-03-25 1488 for (i = 0; i < SI5341_MAX_NUM_OUTPUTS; ++i) { b7bbf6ec4940d1a Robert Hancock 2021-03-25 1489 char reg_name[10]; b7bbf6ec4940d1a Robert Hancock 2021-03-25 1490 b7bbf6ec4940d1a Robert Hancock 2021-03-25 @1491 snprintf(reg_name, sizeof(reg_name), "vddo%d", i); b7bbf6ec4940d1a Robert Hancock 2021-03-25 1492 data->clk[i].vddo_reg = devm_regulator_get_optional( b7bbf6ec4940d1a Robert Hancock 2021-03-25 1493 &client->dev, reg_name); b7bbf6ec4940d1a Robert Hancock 2021-03-25 1494 if (IS_ERR(data->clk[i].vddo_reg)) { b7bbf6ec4940d1a Robert Hancock 2021-03-25 1495 err = PTR_ERR(data->clk[i].vddo_reg); b7bbf6ec4940d1a Robert Hancock 2021-03-25 1496 data->clk[i].vddo_reg = NULL; b7bbf6ec4940d1a Robert Hancock 2021-03-25 1497 if (err == -ENODEV) b7bbf6ec4940d1a Robert Hancock 2021-03-25 1498 continue; b7bbf6ec4940d1a Robert Hancock 2021-03-25 1499 goto cleanup; b7bbf6ec4940d1a Robert Hancock 2021-03-25 1500 } else { b7bbf6ec4940d1a Robert Hancock 2021-03-25 1501 err = regulator_enable(data->clk[i].vddo_reg); b7bbf6ec4940d1a Robert Hancock 2021-03-25 1502 if (err) { b7bbf6ec4940d1a Robert Hancock 2021-03-25 1503 dev_err(&client->dev, b7bbf6ec4940d1a Robert Hancock 2021-03-25 1504 "failed to enable %s regulator: %d\n", b7bbf6ec4940d1a Robert Hancock 2021-03-25 1505 reg_name, err); b7bbf6ec4940d1a Robert Hancock 2021-03-25 1506 data->clk[i].vddo_reg = NULL; b7bbf6ec4940d1a Robert Hancock 2021-03-25 1507 goto cleanup; b7bbf6ec4940d1a Robert Hancock 2021-03-25 1508 } b7bbf6ec4940d1a Robert Hancock 2021-03-25 1509 } b7bbf6ec4940d1a Robert Hancock 2021-03-25 1510 } b7bbf6ec4940d1a Robert Hancock 2021-03-25 1511 b7bbf6ec4940d1a Robert Hancock 2021-03-25 1512 err = si5341_dt_parse_dt(data, config); 3044a860fd09f02 Mike Looijmans 2019-05-17 1513 if (err) b7bbf6ec4940d1a Robert Hancock 2021-03-25 1514 goto cleanup; 3044a860fd09f02 Mike Looijmans 2019-05-17 1515 3044a860fd09f02 Mike Looijmans 2019-05-17 1516 if (of_property_read_string(client->dev.of_node, "clock-output-names", 3044a860fd09f02 Mike Looijmans 2019-05-17 1517 &init.name)) 3044a860fd09f02 Mike Looijmans 2019-05-17 1518 init.name = client->dev.of_node->name; 3044a860fd09f02 Mike Looijmans 2019-05-17 1519 root_clock_name = init.name; 3044a860fd09f02 Mike Looijmans 2019-05-17 1520 3044a860fd09f02 Mike Looijmans 2019-05-17 1521 data->regmap = devm_regmap_init_i2c(client, &si5341_regmap_config); b7bbf6ec4940d1a Robert Hancock 2021-03-25 1522 if (IS_ERR(data->regmap)) { b7bbf6ec4940d1a Robert Hancock 2021-03-25 1523 err = PTR_ERR(data->regmap); b7bbf6ec4940d1a Robert Hancock 2021-03-25 1524 goto cleanup; b7bbf6ec4940d1a Robert Hancock 2021-03-25 1525 } 3044a860fd09f02 Mike Looijmans 2019-05-17 1526 3044a860fd09f02 Mike Looijmans 2019-05-17 1527 i2c_set_clientdata(client, data); 3044a860fd09f02 Mike Looijmans 2019-05-17 1528 3044a860fd09f02 Mike Looijmans 2019-05-17 1529 err = si5341_probe_chip_id(data); 3044a860fd09f02 Mike Looijmans 2019-05-17 1530 if (err < 0) b7bbf6ec4940d1a Robert Hancock 2021-03-25 1531 goto cleanup; 3044a860fd09f02 Mike Looijmans 2019-05-17 1532 3044a860fd09f02 Mike Looijmans 2019-05-17 1533 if (of_property_read_bool(client->dev.of_node, "silabs,reprogram")) { 3044a860fd09f02 Mike Looijmans 2019-05-17 1534 initialization_required = true; 3044a860fd09f02 Mike Looijmans 2019-05-17 1535 } else { 3044a860fd09f02 Mike Looijmans 2019-05-17 1536 err = si5341_is_programmed_already(data); 3044a860fd09f02 Mike Looijmans 2019-05-17 1537 if (err < 0) b7bbf6ec4940d1a Robert Hancock 2021-03-25 1538 goto cleanup; 3044a860fd09f02 Mike Looijmans 2019-05-17 1539 3044a860fd09f02 Mike Looijmans 2019-05-17 1540 initialization_required = !err; 3044a860fd09f02 Mike Looijmans 2019-05-17 1541 } 3044a860fd09f02 Mike Looijmans 2019-05-17 1542 3044a860fd09f02 Mike Looijmans 2019-05-17 1543 if (initialization_required) { 3044a860fd09f02 Mike Looijmans 2019-05-17 1544 /* Populate the regmap cache in preparation for "cache only" */ 3044a860fd09f02 Mike Looijmans 2019-05-17 1545 err = si5341_read_settings(data); 3044a860fd09f02 Mike Looijmans 2019-05-17 1546 if (err < 0) b7bbf6ec4940d1a Robert Hancock 2021-03-25 1547 goto cleanup; 3044a860fd09f02 Mike Looijmans 2019-05-17 1548 3044a860fd09f02 Mike Looijmans 2019-05-17 1549 err = si5341_send_preamble(data); 3044a860fd09f02 Mike Looijmans 2019-05-17 1550 if (err < 0) b7bbf6ec4940d1a Robert Hancock 2021-03-25 1551 goto cleanup; 3044a860fd09f02 Mike Looijmans 2019-05-17 1552 3044a860fd09f02 Mike Looijmans 2019-05-17 1553 /* 3044a860fd09f02 Mike Looijmans 2019-05-17 1554 * We intend to send all 'final' register values in a single 3044a860fd09f02 Mike Looijmans 2019-05-17 1555 * transaction. So cache all register writes until we're done 3044a860fd09f02 Mike Looijmans 2019-05-17 1556 * configuring. 3044a860fd09f02 Mike Looijmans 2019-05-17 1557 */ 3044a860fd09f02 Mike Looijmans 2019-05-17 1558 regcache_cache_only(data->regmap, true); 3044a860fd09f02 Mike Looijmans 2019-05-17 1559 3044a860fd09f02 Mike Looijmans 2019-05-17 1560 /* Write the configuration pairs from the firmware blob */ 3044a860fd09f02 Mike Looijmans 2019-05-17 1561 err = si5341_write_multiple(data, si5341_reg_defaults, 3044a860fd09f02 Mike Looijmans 2019-05-17 1562 ARRAY_SIZE(si5341_reg_defaults)); 3044a860fd09f02 Mike Looijmans 2019-05-17 1563 if (err < 0) b7bbf6ec4940d1a Robert Hancock 2021-03-25 1564 goto cleanup; 692751879ea876d Mike Looijmans 2020-01-07 1565 } 692751879ea876d Mike Looijmans 2020-01-07 1566 692751879ea876d Mike Looijmans 2020-01-07 1567 /* Input must be up and running at this point */ 692751879ea876d Mike Looijmans 2020-01-07 1568 err = si5341_clk_select_active_input(data); 692751879ea876d Mike Looijmans 2020-01-07 1569 if (err < 0) b7bbf6ec4940d1a Robert Hancock 2021-03-25 1570 goto cleanup; 3044a860fd09f02 Mike Looijmans 2019-05-17 1571 692751879ea876d Mike Looijmans 2020-01-07 1572 if (initialization_required) { 3044a860fd09f02 Mike Looijmans 2019-05-17 1573 /* PLL configuration is required */ 3044a860fd09f02 Mike Looijmans 2019-05-17 1574 err = si5341_initialize_pll(data); 3044a860fd09f02 Mike Looijmans 2019-05-17 1575 if (err < 0) b7bbf6ec4940d1a Robert Hancock 2021-03-25 1576 goto cleanup; 3044a860fd09f02 Mike Looijmans 2019-05-17 1577 } 3044a860fd09f02 Mike Looijmans 2019-05-17 1578 3044a860fd09f02 Mike Looijmans 2019-05-17 1579 /* Register the PLL */ 692751879ea876d Mike Looijmans 2020-01-07 1580 init.parent_names = data->input_clk_name; 692751879ea876d Mike Looijmans 2020-01-07 1581 init.num_parents = SI5341_NUM_INPUTS; 3044a860fd09f02 Mike Looijmans 2019-05-17 1582 init.ops = &si5341_clk_ops; 3044a860fd09f02 Mike Looijmans 2019-05-17 1583 init.flags = 0; 3044a860fd09f02 Mike Looijmans 2019-05-17 1584 data->hw.init = &init; 3044a860fd09f02 Mike Looijmans 2019-05-17 1585 3044a860fd09f02 Mike Looijmans 2019-05-17 1586 err = devm_clk_hw_register(&client->dev, &data->hw); 3044a860fd09f02 Mike Looijmans 2019-05-17 1587 if (err) { 3044a860fd09f02 Mike Looijmans 2019-05-17 1588 dev_err(&client->dev, "clock registration failed\n"); b7bbf6ec4940d1a Robert Hancock 2021-03-25 1589 goto cleanup; 3044a860fd09f02 Mike Looijmans 2019-05-17 1590 } 3044a860fd09f02 Mike Looijmans 2019-05-17 1591 3044a860fd09f02 Mike Looijmans 2019-05-17 1592 init.num_parents = 1; 3044a860fd09f02 Mike Looijmans 2019-05-17 1593 init.parent_names = &root_clock_name; 3044a860fd09f02 Mike Looijmans 2019-05-17 1594 init.ops = &si5341_synth_clk_ops; 3044a860fd09f02 Mike Looijmans 2019-05-17 1595 for (i = 0; i < data->num_synth; ++i) { 3044a860fd09f02 Mike Looijmans 2019-05-17 1596 synth_clock_names[i] = devm_kasprintf(&client->dev, GFP_KERNEL, 3044a860fd09f02 Mike Looijmans 2019-05-17 1597 "%s.N%u", client->dev.of_node->name, i); 3044a860fd09f02 Mike Looijmans 2019-05-17 1598 init.name = synth_clock_names[i]; 3044a860fd09f02 Mike Looijmans 2019-05-17 1599 data->synth[i].index = i; 3044a860fd09f02 Mike Looijmans 2019-05-17 1600 data->synth[i].data = data; 3044a860fd09f02 Mike Looijmans 2019-05-17 1601 data->synth[i].hw.init = &init; 3044a860fd09f02 Mike Looijmans 2019-05-17 1602 err = devm_clk_hw_register(&client->dev, &data->synth[i].hw); 3044a860fd09f02 Mike Looijmans 2019-05-17 1603 if (err) { 3044a860fd09f02 Mike Looijmans 2019-05-17 1604 dev_err(&client->dev, 3044a860fd09f02 Mike Looijmans 2019-05-17 1605 "synth N%u registration failed\n", i); 3044a860fd09f02 Mike Looijmans 2019-05-17 1606 } 3044a860fd09f02 Mike Looijmans 2019-05-17 1607 } 3044a860fd09f02 Mike Looijmans 2019-05-17 1608 3044a860fd09f02 Mike Looijmans 2019-05-17 1609 init.num_parents = data->num_synth; 3044a860fd09f02 Mike Looijmans 2019-05-17 1610 init.parent_names = synth_clock_names; 3044a860fd09f02 Mike Looijmans 2019-05-17 1611 init.ops = &si5341_output_clk_ops; 3044a860fd09f02 Mike Looijmans 2019-05-17 1612 for (i = 0; i < data->num_outputs; ++i) { 3044a860fd09f02 Mike Looijmans 2019-05-17 1613 init.name = kasprintf(GFP_KERNEL, "%s.%d", 3044a860fd09f02 Mike Looijmans 2019-05-17 1614 client->dev.of_node->name, i); 3044a860fd09f02 Mike Looijmans 2019-05-17 1615 init.flags = config[i].synth_master ? CLK_SET_RATE_PARENT : 0; 3044a860fd09f02 Mike Looijmans 2019-05-17 1616 data->clk[i].index = i; 3044a860fd09f02 Mike Looijmans 2019-05-17 1617 data->clk[i].data = data; 3044a860fd09f02 Mike Looijmans 2019-05-17 1618 data->clk[i].hw.init = &init; 3044a860fd09f02 Mike Looijmans 2019-05-17 1619 if (config[i].out_format_drv_bits & 0x07) { 3044a860fd09f02 Mike Looijmans 2019-05-17 1620 regmap_write(data->regmap, 3044a860fd09f02 Mike Looijmans 2019-05-17 1621 SI5341_OUT_FORMAT(&data->clk[i]), 3044a860fd09f02 Mike Looijmans 2019-05-17 1622 config[i].out_format_drv_bits); 3044a860fd09f02 Mike Looijmans 2019-05-17 1623 regmap_write(data->regmap, 3044a860fd09f02 Mike Looijmans 2019-05-17 1624 SI5341_OUT_CM(&data->clk[i]), 3044a860fd09f02 Mike Looijmans 2019-05-17 1625 config[i].out_cm_ampl_bits); b7bbf6ec4940d1a Robert Hancock 2021-03-25 1626 regmap_update_bits(data->regmap, b7bbf6ec4940d1a Robert Hancock 2021-03-25 1627 SI5341_OUT_MUX_SEL(&data->clk[i]), b7bbf6ec4940d1a Robert Hancock 2021-03-25 1628 SI5341_OUT_MUX_VDD_SEL_MASK, b7bbf6ec4940d1a Robert Hancock 2021-03-25 1629 config[i].vdd_sel_bits); 3044a860fd09f02 Mike Looijmans 2019-05-17 1630 } 3044a860fd09f02 Mike Looijmans 2019-05-17 1631 err = devm_clk_hw_register(&client->dev, &data->clk[i].hw); 3044a860fd09f02 Mike Looijmans 2019-05-17 1632 kfree(init.name); /* clock framework made a copy of the name */ 3044a860fd09f02 Mike Looijmans 2019-05-17 1633 if (err) { 3044a860fd09f02 Mike Looijmans 2019-05-17 1634 dev_err(&client->dev, 3044a860fd09f02 Mike Looijmans 2019-05-17 1635 "output %u registration failed\n", i); b7bbf6ec4940d1a Robert Hancock 2021-03-25 1636 goto cleanup; 3044a860fd09f02 Mike Looijmans 2019-05-17 1637 } 3044a860fd09f02 Mike Looijmans 2019-05-17 1638 if (config[i].always_on) 3044a860fd09f02 Mike Looijmans 2019-05-17 1639 clk_prepare(data->clk[i].hw.clk); 3044a860fd09f02 Mike Looijmans 2019-05-17 1640 } 3044a860fd09f02 Mike Looijmans 2019-05-17 1641 3044a860fd09f02 Mike Looijmans 2019-05-17 1642 err = of_clk_add_hw_provider(client->dev.of_node, of_clk_si5341_get, 3044a860fd09f02 Mike Looijmans 2019-05-17 1643 data); 3044a860fd09f02 Mike Looijmans 2019-05-17 1644 if (err) { 3044a860fd09f02 Mike Looijmans 2019-05-17 1645 dev_err(&client->dev, "unable to add clk provider\n"); b7bbf6ec4940d1a Robert Hancock 2021-03-25 1646 goto cleanup; 3044a860fd09f02 Mike Looijmans 2019-05-17 1647 } 3044a860fd09f02 Mike Looijmans 2019-05-17 1648 3044a860fd09f02 Mike Looijmans 2019-05-17 1649 if (initialization_required) { 3044a860fd09f02 Mike Looijmans 2019-05-17 1650 /* Synchronize */ 3044a860fd09f02 Mike Looijmans 2019-05-17 1651 regcache_cache_only(data->regmap, false); 3044a860fd09f02 Mike Looijmans 2019-05-17 1652 err = regcache_sync(data->regmap); 3044a860fd09f02 Mike Looijmans 2019-05-17 1653 if (err < 0) b7bbf6ec4940d1a Robert Hancock 2021-03-25 1654 goto cleanup; 3044a860fd09f02 Mike Looijmans 2019-05-17 1655 3044a860fd09f02 Mike Looijmans 2019-05-17 1656 err = si5341_finalize_defaults(data); 3044a860fd09f02 Mike Looijmans 2019-05-17 1657 if (err < 0) b7bbf6ec4940d1a Robert Hancock 2021-03-25 1658 goto cleanup; 3044a860fd09f02 Mike Looijmans 2019-05-17 1659 } 3044a860fd09f02 Mike Looijmans 2019-05-17 1660 71dcc4d1f7d2ad9 Robert Hancock 2021-03-25 1661 /* wait for device to report input clock present and PLL lock */ 71dcc4d1f7d2ad9 Robert Hancock 2021-03-25 1662 err = regmap_read_poll_timeout(data->regmap, SI5341_STATUS, status, 71dcc4d1f7d2ad9 Robert Hancock 2021-03-25 1663 !(status & (SI5341_STATUS_LOSREF | SI5341_STATUS_LOL)), 71dcc4d1f7d2ad9 Robert Hancock 2021-03-25 1664 10000, 250000); 71dcc4d1f7d2ad9 Robert Hancock 2021-03-25 1665 if (err) { 71dcc4d1f7d2ad9 Robert Hancock 2021-03-25 1666 dev_err(&client->dev, "Error waiting for input clock or PLL lock\n"); b7bbf6ec4940d1a Robert Hancock 2021-03-25 1667 goto cleanup; 71dcc4d1f7d2ad9 Robert Hancock 2021-03-25 1668 } 71dcc4d1f7d2ad9 Robert Hancock 2021-03-25 1669 71dcc4d1f7d2ad9 Robert Hancock 2021-03-25 1670 /* clear sticky alarm bits from initialization */ 71dcc4d1f7d2ad9 Robert Hancock 2021-03-25 1671 err = regmap_write(data->regmap, SI5341_STATUS_STICKY, 0); 71dcc4d1f7d2ad9 Robert Hancock 2021-03-25 1672 if (err) { 71dcc4d1f7d2ad9 Robert Hancock 2021-03-25 1673 dev_err(&client->dev, "unable to clear sticky status\n"); b7bbf6ec4940d1a Robert Hancock 2021-03-25 1674 goto cleanup; 71dcc4d1f7d2ad9 Robert Hancock 2021-03-25 1675 } 71dcc4d1f7d2ad9 Robert Hancock 2021-03-25 1676 3044a860fd09f02 Mike Looijmans 2019-05-17 1677 /* Free the names, clk framework makes copies */ 3044a860fd09f02 Mike Looijmans 2019-05-17 1678 for (i = 0; i < data->num_synth; ++i) 3044a860fd09f02 Mike Looijmans 2019-05-17 1679 devm_kfree(&client->dev, (void *)synth_clock_names[i]); 3044a860fd09f02 Mike Looijmans 2019-05-17 1680 3044a860fd09f02 Mike Looijmans 2019-05-17 1681 return 0; b7bbf6ec4940d1a Robert Hancock 2021-03-25 1682 b7bbf6ec4940d1a Robert Hancock 2021-03-25 1683 cleanup: b7bbf6ec4940d1a Robert Hancock 2021-03-25 1684 for (i = 0; i < SI5341_MAX_NUM_OUTPUTS; ++i) { b7bbf6ec4940d1a Robert Hancock 2021-03-25 1685 if (data->clk[i].vddo_reg) b7bbf6ec4940d1a Robert Hancock 2021-03-25 1686 regulator_disable(data->clk[i].vddo_reg); b7bbf6ec4940d1a Robert Hancock 2021-03-25 1687 } b7bbf6ec4940d1a Robert Hancock 2021-03-25 1688 return err; b7bbf6ec4940d1a Robert Hancock 2021-03-25 1689 } b7bbf6ec4940d1a Robert Hancock 2021-03-25 1690 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
