diff for duplicates of <20170419164949.GH7065@codeaurora.org> diff --git a/a/1.txt b/N1/1.txt index e802aab..b98082f 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,10 +1,10 @@ On 04/05, Vlad Zakharov wrote: > Hi Stephen, > -> On Tue, 2017-04-04 at 18:35 -0700, Stephen Boyd wrote: -> > > + .pll_table = (struct pll_of_table []){ -> > > + { -> > > + .prate = 27000000, +> On Tue, 2017-04-04@18:35 -0700, Stephen Boyd wrote: +> > > +?????.pll_table = (struct pll_of_table []){ +> > > +?????????????{ +> > > +?????????????????????.prate = 27000000, > > > > Can this be another clk in the framework instead of hardcoding > > the parent rate? @@ -14,8 +14,8 @@ On 04/05, Vlad Zakharov wrote: > the correct table comparing .parent_node field with real hardware parent clock frequency: > ---------------------------------->8------------------------------------ > for (i = 0; pll_table[i].prate != 0; i++) -> if (pll_table[i].prate == prate) -> return pll_table[i].pll_cfg_table; +> ? ? if (pll_table[i].prate == prate) +> ? ? ? ? return pll_table[i].pll_cfg_table; > ---------------------------------->8------------------------------------ When is that done though? During round_rate and recalc_rate the @@ -24,15 +24,15 @@ possible to use that if the tree is properly expressed. > > > -> > > + .pll_cfg_table = (struct pll_cfg []){ -> > > + { 25200000, 1, 84, 90 }, -> > > + { 50000000, 1, 100, 54 }, -> > > + { 74250000, 1, 44, 16 }, -> > > + { }, -> > > + }, -> > > + }, -> > > + /* Used as list limiter */ -> > > + { }, +> > > +?????????????????????.pll_cfg_table = (struct pll_cfg []){ +> > > +?????????????????????????????{ 25200000, 1, 84, 90 }, +> > > +?????????????????????????????{ 50000000, 1, 100, 54 }, +> > > +?????????????????????????????{ 74250000, 1, 44, 16 }, +> > > +?????????????????????????????{ }, +> > > +?????????????????????}, +> > > +?????????????}, +> > > +?????????????/* Used as list limiter */ +> > > +?????????????{ }, > > > > There's only ever one, so I'm confused why we're making a list. > @@ -44,21 +44,21 @@ Ok. > > > > + -> > > + clk = clk_register(NULL, &pll_clk->hw); -> > > + if (IS_ERR(clk)) { -> > > + pr_err("failed to register %s clock (%ld)\n", -> > > + node->name, PTR_ERR(clk)); -> > > + kfree(pll_clk); -> > > + return; -> > > + } +> > > +?????clk = clk_register(NULL, &pll_clk->hw); +> > > +?????if (IS_ERR(clk)) { +> > > +?????????????pr_err("failed to register %s clock (%ld)\n", +> > > +?????????????????????????????node->name, PTR_ERR(clk)); +> > > +?????????????kfree(pll_clk); +> > > +?????????????return; +> > > +?????} > > > + -> > > + of_clk_add_provider(node, of_clk_src_simple_get, clk); +> > > +?????of_clk_add_provider(node, of_clk_src_simple_get, clk); > > > > Can you please use the clk_hw based provider and clk registration > > functions? > > Sure. Could you be so kind to explain what is the difference between hw and non-hw based provider and clk registration -> functions please? In which cases they are preferred? +> functions please? In which cases they are preferred?? > We're trying to split the consumer and provider APIs along struct diff --git a/a/content_digest b/N1/content_digest index dd8d6e5..be3d10a 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,26 +1,19 @@ "ref\01487682670-4164-1-git-send-email-vzakhar@synopsys.com\0" "ref\020170405013525.GJ18246@codeaurora.org\0" "ref\01491408370.9650.24.camel@synopsys.com\0" - "From\0sboyd@codeaurora.org <sboyd@codeaurora.org>\0" - "Subject\0Re: [PATCH v2] clk/axs10x: introduce AXS10X pll driver\0" + "From\0sboyd@codeaurora.org (sboyd@codeaurora.org)\0" + "Subject\0[PATCH v2] clk/axs10x: introduce AXS10X pll driver\0" "Date\0Wed, 19 Apr 2017 09:49:49 -0700\0" - "To\0Vlad Zakharov <Vladislav.Zakharov@synopsys.com>\0" - "Cc\0mark.rutland@arm.com <mark.rutland@arm.com>" - linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org> - Jose.Abreu@synopsys.com <Jose.Abreu@synopsys.com> - mturquette@baylibre.com <mturquette@baylibre.com> - devicetree@vger.kernel.org <devicetree@vger.kernel.org> - linux-clk@vger.kernel.org <linux-clk@vger.kernel.org> - " linux-snps-arc@lists.infradead.org <linux-snps-arc@lists.infradead.org>\0" + "To\0linux-snps-arc@lists.infradead.org\0" "\00:1\0" "b\0" "On 04/05, Vlad Zakharov wrote:\n" "> Hi Stephen,\n" "> \n" - "> On Tue, 2017-04-04 at 18:35 -0700, Stephen Boyd wrote:\n" - "> > > +\302\240\302\240\302\240\302\240\302\240.pll_table = (struct pll_of_table []){\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240{\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240.prate = 27000000,\n" + "> On Tue, 2017-04-04@18:35 -0700, Stephen Boyd wrote:\n" + "> > > +?????.pll_table = (struct pll_of_table []){\n" + "> > > +?????????????{\n" + "> > > +?????????????????????.prate = 27000000,\n" "> > \n" "> > Can this be another clk in the framework instead of hardcoding\n" "> > the parent rate?\n" @@ -30,8 +23,8 @@ "> the correct table comparing .parent_node field with real hardware parent clock frequency:\n" "> ---------------------------------->8------------------------------------\n" "> for (i = 0; pll_table[i].prate != 0; i++)\n" - "> \302\240 \302\240 if (pll_table[i].prate == prate)\n" - "> \302\240 \302\240 \302\240 \302\240 return pll_table[i].pll_cfg_table;\n" + "> ? ? if (pll_table[i].prate == prate)\n" + "> ? ? ? ? return pll_table[i].pll_cfg_table;\n" "> ---------------------------------->8------------------------------------\n" "\n" "When is that done though? During round_rate and recalc_rate the\n" @@ -40,15 +33,15 @@ "\n" "> \n" "> > \n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240.pll_cfg_table = (struct pll_cfg []){\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240{ 25200000, 1, 84, 90 },\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240{ 50000000, 1, 100, 54 },\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240{ 74250000, 1, 44, 16 },\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240{ },\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240},\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240},\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240/* Used as list limiter */\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240{ },\n" + "> > > +?????????????????????.pll_cfg_table = (struct pll_cfg []){\n" + "> > > +?????????????????????????????{ 25200000, 1, 84, 90 },\n" + "> > > +?????????????????????????????{ 50000000, 1, 100, 54 },\n" + "> > > +?????????????????????????????{ 74250000, 1, 44, 16 },\n" + "> > > +?????????????????????????????{ },\n" + "> > > +?????????????????????},\n" + "> > > +?????????????},\n" + "> > > +?????????????/* Used as list limiter */\n" + "> > > +?????????????{ },\n" "> > \n" "> > There's only ever one, so I'm confused why we're making a list.\n" "> \n" @@ -60,21 +53,21 @@ "\n" "> \n" "> > > +\n" - "> > > +\302\240\302\240\302\240\302\240\302\240clk = clk_register(NULL, &pll_clk->hw);\n" - "> > > +\302\240\302\240\302\240\302\240\302\240if (IS_ERR(clk)) {\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240pr_err(\"failed to register %s clock (%ld)\\n\",\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240node->name, PTR_ERR(clk));\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240kfree(pll_clk);\n" - "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return;\n" - "> > > +\302\240\302\240\302\240\302\240\302\240}\n" + "> > > +?????clk = clk_register(NULL, &pll_clk->hw);\n" + "> > > +?????if (IS_ERR(clk)) {\n" + "> > > +?????????????pr_err(\"failed to register %s clock (%ld)\\n\",\n" + "> > > +?????????????????????????????node->name, PTR_ERR(clk));\n" + "> > > +?????????????kfree(pll_clk);\n" + "> > > +?????????????return;\n" + "> > > +?????}\n" "> > > +\n" - "> > > +\302\240\302\240\302\240\302\240\302\240of_clk_add_provider(node, of_clk_src_simple_get, clk);\n" + "> > > +?????of_clk_add_provider(node, of_clk_src_simple_get, clk);\n" "> > \n" "> > Can you please use the clk_hw based provider and clk registration\n" "> > functions?\n" "> \n" "> Sure. Could you be so kind to explain what is the difference between hw and non-hw based provider and clk registration\n" - "> functions please? In which cases they are preferred?\302\240\n" + "> functions please? In which cases they are preferred??\n" "> \n" "\n" "We're trying to split the consumer and provider APIs along struct\n" @@ -112,4 +105,4 @@ "Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,\n" a Linux Foundation Collaborative Project -2d02aac4160abc50d18323dd441c7c6e8feecd77da6886e3bc88d46ceb8831fe +6320f3f2013880d58a7679c2286a2d9bcd8bd54267c373907e094b8397a0a755
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.