* [PATCH] i2c: ocores: rework clk code to handle NULL cookie @ 2015-02-19 16:37 Wolfram Sang [not found] ` <1424363824-6093-1-git-send-email-wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org> 0 siblings, 1 reply; 4+ messages in thread From: Wolfram Sang @ 2015-02-19 16:37 UTC (permalink / raw) To: linux-i2c-u79uwXL29TY76Z2rM5mHXA Cc: Wolfram Sang, Max Filippov, Peter Korsgaard For, !HAVE_CLK the clk API returns a NULL cookie. Rework the initialization code to handle that. If clk_get_rate() delivers 0, we use the fallback mechanisms. The patch is pretty easy when ignoring white space issues (git diff -b). Suggested-by: Russell King <rmk+kernel-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org> Signed-off-by: Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org> Cc: Max Filippov <jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Cc: Peter Korsgaard <jacmet-OfajU3CKLf1/SzgSGea1oA@public.gmane.org> --- Max, can you please test/review. I can only compile-test. This is the outcome of this thread: https://lkml.org/lkml/2015/2/5/544 drivers/i2c/busses/i2c-ocores.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/drivers/i2c/busses/i2c-ocores.c b/drivers/i2c/busses/i2c-ocores.c index 3fc76b6ffcaade..abf5db7e441eba 100644 --- a/drivers/i2c/busses/i2c-ocores.c +++ b/drivers/i2c/busses/i2c-ocores.c @@ -354,20 +354,24 @@ static int ocores_i2c_of_probe(struct platform_device *pdev, i2c->ip_clock_khz = clk_get_rate(i2c->clk) / 1000; if (clock_frequency_present) i2c->bus_clock_khz = clock_frequency / 1000; - } else if (of_property_read_u32(np, "opencores,ip-clock-frequency", - &val)) { - if (!clock_frequency_present) { - dev_err(&pdev->dev, - "Missing required parameter 'opencores,ip-clock-frequency'\n"); - return -ENODEV; + } + + if (i2c->ip_clock_khz == 0) { + if (of_property_read_u32(np, "opencores,ip-clock-frequency", + &val)) { + if (!clock_frequency_present) { + dev_err(&pdev->dev, + "Missing required parameter 'opencores,ip-clock-frequency'\n"); + return -ENODEV; + } + i2c->ip_clock_khz = clock_frequency / 1000; + dev_warn(&pdev->dev, + "Deprecated usage of the 'clock-frequency' property, please update to 'opencores,ip-clock-frequency'\n"); + } else { + i2c->ip_clock_khz = val / 1000; + if (clock_frequency_present) + i2c->bus_clock_khz = clock_frequency / 1000; } - i2c->ip_clock_khz = clock_frequency / 1000; - dev_warn(&pdev->dev, - "Deprecated usage of the 'clock-frequency' property, please update to 'opencores,ip-clock-frequency'\n"); - } else { - i2c->ip_clock_khz = val / 1000; - if (clock_frequency_present) - i2c->bus_clock_khz = clock_frequency / 1000; } of_property_read_u32(pdev->dev.of_node, "reg-io-width", @@ -518,6 +522,7 @@ static int ocores_i2c_resume(struct device *dev) struct ocores_i2c *i2c = dev_get_drvdata(dev); if (!IS_ERR(i2c->clk)) { + unsigned long rate; int ret = clk_prepare_enable(i2c->clk); if (ret) { @@ -525,7 +530,9 @@ static int ocores_i2c_resume(struct device *dev) "clk_prepare_enable failed: %d\n", ret); return ret; } - i2c->ip_clock_khz = clk_get_rate(i2c->clk) / 1000; + rate = clk_get_rate(i2c->clk) / 1000; + if (rate) + i2c->ip_clock_khz = rate; } return ocores_init(dev, i2c); } -- 2.1.4 ^ permalink raw reply related [flat|nested] 4+ messages in thread
[parent not found: <1424363824-6093-1-git-send-email-wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org>]
* Re: [PATCH] i2c: ocores: rework clk code to handle NULL cookie [not found] ` <1424363824-6093-1-git-send-email-wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org> @ 2015-02-20 16:43 ` Wolfram Sang 2015-02-20 16:51 ` Max Filippov 1 sibling, 0 replies; 4+ messages in thread From: Wolfram Sang @ 2015-02-20 16:43 UTC (permalink / raw) To: linux-i2c-u79uwXL29TY76Z2rM5mHXA; +Cc: Max Filippov, Peter Korsgaard [-- Attachment #1: Type: text/plain, Size: 828 bytes --] On Thu, Feb 19, 2015 at 05:37:04PM +0100, Wolfram Sang wrote: > For, !HAVE_CLK the clk API returns a NULL cookie. Rework the > initialization code to handle that. If clk_get_rate() delivers 0, we use > the fallback mechanisms. The patch is pretty easy when ignoring white > space issues (git diff -b). > > Suggested-by: Russell King <rmk+kernel-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org> > Signed-off-by: Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org> > Cc: Max Filippov <jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > Cc: Peter Korsgaard <jacmet-OfajU3CKLf1/SzgSGea1oA@public.gmane.org> Applied to for-next so this gets larger build-testing ASAP. Then, it can be in my pull request today or tomorrow. We need it to avoid regressions for !HAVE_CLK configs. HW tests would be really appreciated! [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] i2c: ocores: rework clk code to handle NULL cookie [not found] ` <1424363824-6093-1-git-send-email-wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org> 2015-02-20 16:43 ` Wolfram Sang @ 2015-02-20 16:51 ` Max Filippov [not found] ` <CAMo8Bf+=Ny-uc+wmr9OsKh9kUhYqVXLw-nM4h+y_OMKx_FpCHg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 1 sibling, 1 reply; 4+ messages in thread From: Max Filippov @ 2015-02-20 16:51 UTC (permalink / raw) To: Wolfram Sang; +Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA, Peter Korsgaard Hi Wolfram, On Thu, Feb 19, 2015 at 7:37 PM, Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org> wrote: > > For, !HAVE_CLK the clk API returns a NULL cookie. Rework the > initialization code to handle that. If clk_get_rate() delivers 0, we use > the fallback mechanisms. The patch is pretty easy when ignoring white > space issues (git diff -b). > > Suggested-by: Russell King <rmk+kernel-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org> > Signed-off-by: Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org> > Cc: Max Filippov <jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > Cc: Peter Korsgaard <jacmet-OfajU3CKLf1/SzgSGea1oA@public.gmane.org> > --- > > Max, can you please test/review. I can only compile-test. This is the outcome > of this thread: https://lkml.org/lkml/2015/2/5/544 I've tested it with and without HAVE_CLK, both work well for me. -- Thanks. -- Max ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <CAMo8Bf+=Ny-uc+wmr9OsKh9kUhYqVXLw-nM4h+y_OMKx_FpCHg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: [PATCH] i2c: ocores: rework clk code to handle NULL cookie [not found] ` <CAMo8Bf+=Ny-uc+wmr9OsKh9kUhYqVXLw-nM4h+y_OMKx_FpCHg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2015-02-20 17:00 ` Wolfram Sang 0 siblings, 0 replies; 4+ messages in thread From: Wolfram Sang @ 2015-02-20 17:00 UTC (permalink / raw) To: Max Filippov; +Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA, Peter Korsgaard [-- Attachment #1: Type: text/plain, Size: 1002 bytes --] On Fri, Feb 20, 2015 at 07:51:44PM +0300, Max Filippov wrote: > Hi Wolfram, > > On Thu, Feb 19, 2015 at 7:37 PM, Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org> wrote: > > > > For, !HAVE_CLK the clk API returns a NULL cookie. Rework the > > initialization code to handle that. If clk_get_rate() delivers 0, we use > > the fallback mechanisms. The patch is pretty easy when ignoring white > > space issues (git diff -b). > > > > Suggested-by: Russell King <rmk+kernel-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org> > > Signed-off-by: Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org> > > Cc: Max Filippov <jcmvbkbc-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > > Cc: Peter Korsgaard <jacmet-OfajU3CKLf1/SzgSGea1oA@public.gmane.org> > > --- > > > > Max, can you please test/review. I can only compile-test. This is the outcome > > of this thread: https://lkml.org/lkml/2015/2/5/544 > > I've tested it with and without HAVE_CLK, both work well for me. Great, thanks! [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-02-20 17:00 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-02-19 16:37 [PATCH] i2c: ocores: rework clk code to handle NULL cookie Wolfram Sang [not found] ` <1424363824-6093-1-git-send-email-wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org> 2015-02-20 16:43 ` Wolfram Sang 2015-02-20 16:51 ` Max Filippov [not found] ` <CAMo8Bf+=Ny-uc+wmr9OsKh9kUhYqVXLw-nM4h+y_OMKx_FpCHg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-02-20 17:00 ` Wolfram Sang
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).