Re: [PATCH v4] i2c: ocores: use devm_ managed clks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Wang,

> -	i2c->clk = devm_clk_get(&pdev->dev, NULL);
> -
> -	if (!IS_ERR(i2c->clk)) {
> -		int ret = clk_prepare_enable(i2c->clk);
> -
> -		if (ret) {
> -			dev_err(&pdev->dev,
> -				"clk_prepare_enable failed: %d\n", ret);
> -			return ret;
> -		}
> -		i2c->ip_clock_khz = clk_get_rate(i2c->clk) / 1000;
> -		if (clock_frequency_present)
> -			i2c->bus_clock_khz = clock_frequency / 1000;
> -	}
> -
> +	i2c->clk = devm_clk_get_optional_enabled(&pdev->dev, NULL);
> +	if (IS_ERR(i2c->clk))
> +		return dev_err_probe(&pdev->dev, PTR_ERR(i2c->clk),
> +				     "devm_clk_get_optional_enabled failed\n");
> +
> +	i2c->ip_clock_khz = clk_get_rate(i2c->clk) / 1000;

if devm_clk_get_optional_enabled() returns NULL, clk_get_rate()
returns '0' and op_clk_khz would be '0'...

> +	if (clock_frequency_present)
> +		i2c->bus_clock_khz = clock_frequency / 1000;
>  	if (i2c->ip_clock_khz == 0) {

... and we fall inside this 'if', as expected. Looks correct!

Reviewed-by: Andi Shyti <andi.shyti@xxxxxxxxxx> 

Thanks,
Andi



[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux