19.11.2021 16:32, Akhil R пишет:
- i2c_dev->rst = devm_reset_control_get_exclusive(i2c_dev->dev, "i2c");
- if (IS_ERR(i2c_dev->rst)) {
dev_err_probe(i2c_dev->dev, PTR_ERR(i2c_dev->rst),
"failed to get reset control\n");
return PTR_ERR(i2c_dev->rst);
- }
- tegra_i2c_parse_dt(i2c_dev);
- err = tegra_i2c_init_clocks(i2c_dev);
- if (err)
return err;
- if (!has_acpi_companion(&pdev->dev)) {
i2c_dev->rst = devm_reset_control_get_exclusive(i2c_dev->dev, "i2c");
if (IS_ERR(i2c_dev->rst)) {
dev_err_probe(i2c_dev->dev, PTR_ERR(i2c_dev->rst),
"failed to get reset control\n");
return PTR_ERR(i2c_dev->rst);
}
err = tegra_i2c_init_clocks(i2c_dev);
if (err)
return err;
- }
What about to factor out the reset initialization into a separate function and write it like this:
static int tegra_i2c_init_reset(i2c_dev) { if (has_acpi_companion(i2c_dev->dev) return 0;
i2c_dev->rst = devm_reset_control_get_exclusive(i2c_dev->dev, "i2c"); if (IS_ERR(i2c_dev->rst)) return dev_err_probe(i2c_dev->dev, PTR_ERR(i2c_dev->rst), "failed to get reset control\n");
return 0; }
And then change tegra_i2c_init_clocks() to:
static int tegra_i2c_init_clocks(i2c_dev) { int err;
if (has_acpi_companion(i2c_dev->dev)) return 0;
... }
This will make both reset/clocks initialization to look more consistent.