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

From: Wolfram Sang
Date: Thu Feb 05 2015 - 14:15:21 EST


> - 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