Re: [PATCH v2 2/2] i2c: i2c-ocores: add common clock support

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

 



> -	if (of_property_read_u32(np, "opencores,ip-clock-frequency", &val)) {
> +#ifdef CONFIG_HAVE_CLK
> +	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;
> +	} else
> +#endif
> +		if (of_property_read_u32(np, "opencores,ip-clock-frequency",
> +					 &val)) {

This is not very readable (wrong indentation) and fragile. I'd suggest
to leave out #ifdeffery, the compiler will remove the code for !HAVE_CLK
because of the empty dummy functions[1]. Then, you can write properly
formatted code again.

[1] Well, it should if there wasn't a bug in that: https://lkml.org/lkml/2015/2/5/544

> +#ifdef CONFIG_HAVE_CLK
> +	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;
> +	}
> +#endif

Ahem, there is a build error in here :(

Attachment: signature.asc
Description: Digital signature


[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