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.

Reply via email to