diff for duplicates of <1498668381.2337.10.camel@baylibre.com> diff --git a/a/1.txt b/N1/1.txt index 38628ed..bc66dda 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -20,24 +20,24 @@ On Wed, 2017-06-28 at 16:52 +0100, Sudeep Holla wrote: > > the > > Oops call trace: > > -> > [ 2.202284] [<ffff00000849a058>] __clk_create_clk.part.18+0x68/0xb0 -> > [ 2.208494] [<ffff00000849ac2c>] __of_clk_get_from_provider+0xfc/0x140 -> > [ 2.214962] [<ffff000008496c28>] __of_clk_get_by_name+0x100/0x118 -> > [ 2.220999] [<ffff000008496c94>] clk_get+0x2c/0x78 -> > [ 2.225744] [<ffff000008570110>] dev_pm_opp_get_opp_table+0xb0/0x118 -> > [ 2.232039] [<ffff000008570940>] dev_pm_opp_add+0x20/0x68 -> > [ 2.237388] [<ffff0000087a0f30>] scpi_init_opp_table+0xa8/0x188 -> > [ 2.243252] [<ffff0000087a0558>] +> > [????2.202284] [<ffff00000849a058>] __clk_create_clk.part.18+0x68/0xb0 +> > [????2.208494] [<ffff00000849ac2c>] __of_clk_get_from_provider+0xfc/0x140 +> > [????2.214962] [<ffff000008496c28>] __of_clk_get_by_name+0x100/0x118 +> > [????2.220999] [<ffff000008496c94>] clk_get+0x2c/0x78 +> > [????2.225744] [<ffff000008570110>] dev_pm_opp_get_opp_table+0xb0/0x118 +> > [????2.232039] [<ffff000008570940>] dev_pm_opp_add+0x20/0x68 +> > [????2.237388] [<ffff0000087a0f30>] scpi_init_opp_table+0xa8/0x188 +> > [????2.243252] [<ffff0000087a0558>] > > _get_cluster_clk_and_freq_table+0x80/0x180 -> > [ 2.250151] [<ffff0000087a0a48>] bL_cpufreq_init+0x3f0/0x480 -> > [ 2.255758] [<ffff00000879eed8>] cpufreq_online+0xc0/0x658 -> > [ 2.261191] [<ffff00000879f500>] cpufreq_add_dev+0x78/0x88 -> > [ 2.266625] [<ffff00000855c2c4>] subsys_interface_register+0x84/0xc8 -> > [ 2.272922] [<ffff00000879e330>] cpufreq_register_driver+0x138/0x1b8 -> > [ 2.279218] [<ffff0000087a0b4c>] bL_cpufreq_register+0x74/0x120 -> > [ 2.285083] [<ffff0000087a1038>] scpi_cpufreq_probe+0x28/0x38 -> > [ 2.290776] [<ffff00000855fbf0>] platform_drv_probe+0x50/0xb8 -> > [ 2.296468] [<ffff00000855dd84>] driver_probe_device+0x21c/0x2d8 +> > [????2.250151] [<ffff0000087a0a48>] bL_cpufreq_init+0x3f0/0x480 +> > [????2.255758] [<ffff00000879eed8>] cpufreq_online+0xc0/0x658 +> > [????2.261191] [<ffff00000879f500>] cpufreq_add_dev+0x78/0x88 +> > [????2.266625] [<ffff00000855c2c4>] subsys_interface_register+0x84/0xc8 +> > [????2.272922] [<ffff00000879e330>] cpufreq_register_driver+0x138/0x1b8 +> > [????2.279218] [<ffff0000087a0b4c>] bL_cpufreq_register+0x74/0x120 +> > [????2.285083] [<ffff0000087a1038>] scpi_cpufreq_probe+0x28/0x38 +> > [????2.290776] [<ffff00000855fbf0>] platform_drv_probe+0x50/0xb8 +> > [????2.296468] [<ffff00000855dd84>] driver_probe_device+0x21c/0x2d8 > > > > Thanks for this stack. I just worked out the same path now. I did come @@ -45,22 +45,22 @@ On Wed, 2017-06-28 at 16:52 +0100, Sudeep Holla wrote: I tried. It does not work unfortunately. Still crashes but somewhere else: -[ 2.301482] [<ffff00000849e67c>] scpi_of_clk_src_get+0x14/0x58 -[ 2.307261] [<ffff000008495f40>] __of_clk_get_by_name+0x100/0x118 -[ 2.313297] [<ffff000008495fac>] clk_get+0x2c/0x78 -[ 2.318044] [<ffff00000856f4d0>] dev_pm_opp_get_opp_table+0xb0/0x118 -[ 2.324338] [<ffff00000856fd00>] dev_pm_opp_add+0x20/0x68 -[ 2.329687] [<ffff0000087a04f8>] scpi_init_opp_table+0xa8/0x188 -[ 2.335550] [<ffff00000879fb20>] _get_cluster_clk_and_freq_table+0x80/0x180 -[ 2.342450] [<ffff0000087a0010>] bL_cpufreq_init+0x3f0/0x480 -[ 2.348056] [<ffff00000879e4a0>] cpufreq_online+0xc0/0x658 -[ 2.353490] [<ffff00000879eac8>] cpufreq_add_dev+0x78/0x88 -[ 2.358924] [<ffff00000855b684>] subsys_interface_register+0x84/0xc8 -[ 2.365220] [<ffff00000879d8f8>] cpufreq_register_driver+0x138/0x1b8 -[ 2.371516] [<ffff0000087a0114>] bL_cpufreq_register+0x74/0x120 -[ 2.377381] [<ffff0000087a0600>] scpi_cpufreq_probe+0x28/0x38 -[ 2.383076] [<ffff00000855efb0>] platform_drv_probe+0x50/0xb8 -[ 2.388766] [<ffff00000855d144>] driver_probe_device+0x21c/0x2d8 +[????2.301482] [<ffff00000849e67c>] scpi_of_clk_src_get+0x14/0x58 +[????2.307261] [<ffff000008495f40>] __of_clk_get_by_name+0x100/0x118 +[????2.313297] [<ffff000008495fac>] clk_get+0x2c/0x78 +[????2.318044] [<ffff00000856f4d0>] dev_pm_opp_get_opp_table+0xb0/0x118 +[????2.324338] [<ffff00000856fd00>] dev_pm_opp_add+0x20/0x68 +[????2.329687] [<ffff0000087a04f8>] scpi_init_opp_table+0xa8/0x188 +[????2.335550] [<ffff00000879fb20>] _get_cluster_clk_and_freq_table+0x80/0x180 +[????2.342450] [<ffff0000087a0010>] bL_cpufreq_init+0x3f0/0x480 +[????2.348056] [<ffff00000879e4a0>] cpufreq_online+0xc0/0x658 +[????2.353490] [<ffff00000879eac8>] cpufreq_add_dev+0x78/0x88 +[????2.358924] [<ffff00000855b684>] subsys_interface_register+0x84/0xc8 +[????2.365220] [<ffff00000879d8f8>] cpufreq_register_driver+0x138/0x1b8 +[????2.371516] [<ffff0000087a0114>] bL_cpufreq_register+0x74/0x120 +[????2.377381] [<ffff0000087a0600>] scpi_cpufreq_probe+0x28/0x38 +[????2.383076] [<ffff00000855efb0>] platform_drv_probe+0x50/0xb8 +[????2.388766] [<ffff00000855d144>] driver_probe_device+0x21c/0x2d8 I have not looked at ALL the clock providers, but I have seen a few and I don't remember seeing any which fails, at some point, to register a clocks and still @@ -71,14 +71,14 @@ It seems strange to continue with a broken controller. > > > But that's not the point. The point is there is path in clk-scpi driver > > which -> > registers uninitialized data in the clock provider. That's not good. +> > registers uninitialized data in the clock provider. That's not good.? > > > > > Also one of the reason for keeping it continuing is, if firmware fails > > > on some non-critical clock, that's fine rather than punishing the entire > > > set of clocks and may even fail the boot. > > > > I understand, but you have no way to know whether a clock is critical or not -> > so +> > so? > > this explanation looks a bit weak, plus it does not keep the boot from > > failing > > ... not for me at least. @@ -108,22 +108,22 @@ It seems strange to continue with a broken controller. > +++ w/drivers/clk/clk-scpi.c > @@ -245,11 +245,14 @@ static int scpi_clk_add(struct device *dev, struct > device_node *np, -> sclk->id = val; +> ????????????????sclk->id = val; > -> err = scpi_clk_ops_init(dev, match, sclk, name); -> - if (err) -> + if (err) { -> dev_err(dev, "failed to register clock '%s'\n", +> ????????????????err = scpi_clk_ops_init(dev, match, sclk, name); +> -???????????????if (err) +> +???????????????if (err) { +> ????????????????????????dev_err(dev, "failed to register clock '%s'\n", > name); -> - else -> + clk_data->clk[idx] = NULL; -> + devm_kfree(dev, sclk); -> + } else { -> dev_dbg(dev, "Registered clock '%s'\n", name); -> - clk_data->clk[idx] = sclk; -> + clk_data->clk[idx] = sclk; -> + } -> } +> -???????????????else +> +???????????????????????clk_data->clk[idx] = NULL; +> +???????????????????????devm_kfree(dev, sclk); +> +???????????????} else { +> ????????????????????????dev_dbg(dev, "Registered clock '%s'\n", name); +> -???????????????clk_data->clk[idx] = sclk; +> +???????????????????????clk_data->clk[idx] = sclk; +> +???????????????} +> ????????} > -> return of_clk_add_hw_provider(np, scpi_of_clk_src_get, clk_data); +> ????????return of_clk_add_hw_provider(np, scpi_of_clk_src_get, clk_data); > diff --git a/a/content_digest b/N1/content_digest index aeee267..f58a056 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -2,17 +2,10 @@ "ref\0c7123c06-b75b-5209-5817-230c63c1bf49@arm.com\0" "ref\01498664332.2337.6.camel@baylibre.com\0" "ref\076efd418-9fd5-6ac5-b4c9-c75c5df69df0@arm.com\0" - "From\0Jerome Brunet <jbrunet@baylibre.com>\0" - "Subject\0Re: [PATCH] clk: scpi: error when clock fails to register\0" + "From\0jbrunet@baylibre.com (Jerome Brunet)\0" + "Subject\0[PATCH] clk: scpi: error when clock fails to register\0" "Date\0Wed, 28 Jun 2017 18:46:21 +0200\0" - "To\0Sudeep Holla <sudeep.holla@arm.com>" - Michael Turquette <mturquette@baylibre.com> - " Stephen Boyd <sboyd@codeaurora.org>\0" - "Cc\0linux-arm-kernel@lists.infradead.org" - linux-clk@vger.kernel.org - linux-kernel@vger.kernel.org - Neil Armstrong <narmstrong@baylibre.com> - " Kevin Hilman <khilman@baylibre.com>\0" + "To\0linux-arm-kernel@lists.infradead.org\0" "\00:1\0" "b\0" "On Wed, 2017-06-28 at 16:52 +0100, Sudeep Holla wrote:\n" @@ -37,24 +30,24 @@ "> > the\n" "> > Oops call trace:\n" "> > \n" - "> > [\302\240\302\240\302\240\302\2402.202284] [<ffff00000849a058>] __clk_create_clk.part.18+0x68/0xb0\n" - "> > [\302\240\302\240\302\240\302\2402.208494] [<ffff00000849ac2c>] __of_clk_get_from_provider+0xfc/0x140\n" - "> > [\302\240\302\240\302\240\302\2402.214962] [<ffff000008496c28>] __of_clk_get_by_name+0x100/0x118\n" - "> > [\302\240\302\240\302\240\302\2402.220999] [<ffff000008496c94>] clk_get+0x2c/0x78\n" - "> > [\302\240\302\240\302\240\302\2402.225744] [<ffff000008570110>] dev_pm_opp_get_opp_table+0xb0/0x118\n" - "> > [\302\240\302\240\302\240\302\2402.232039] [<ffff000008570940>] dev_pm_opp_add+0x20/0x68\n" - "> > [\302\240\302\240\302\240\302\2402.237388] [<ffff0000087a0f30>] scpi_init_opp_table+0xa8/0x188\n" - "> > [\302\240\302\240\302\240\302\2402.243252] [<ffff0000087a0558>]\n" + "> > [????2.202284] [<ffff00000849a058>] __clk_create_clk.part.18+0x68/0xb0\n" + "> > [????2.208494] [<ffff00000849ac2c>] __of_clk_get_from_provider+0xfc/0x140\n" + "> > [????2.214962] [<ffff000008496c28>] __of_clk_get_by_name+0x100/0x118\n" + "> > [????2.220999] [<ffff000008496c94>] clk_get+0x2c/0x78\n" + "> > [????2.225744] [<ffff000008570110>] dev_pm_opp_get_opp_table+0xb0/0x118\n" + "> > [????2.232039] [<ffff000008570940>] dev_pm_opp_add+0x20/0x68\n" + "> > [????2.237388] [<ffff0000087a0f30>] scpi_init_opp_table+0xa8/0x188\n" + "> > [????2.243252] [<ffff0000087a0558>]\n" "> > _get_cluster_clk_and_freq_table+0x80/0x180\n" - "> > [\302\240\302\240\302\240\302\2402.250151] [<ffff0000087a0a48>] bL_cpufreq_init+0x3f0/0x480\n" - "> > [\302\240\302\240\302\240\302\2402.255758] [<ffff00000879eed8>] cpufreq_online+0xc0/0x658\n" - "> > [\302\240\302\240\302\240\302\2402.261191] [<ffff00000879f500>] cpufreq_add_dev+0x78/0x88\n" - "> > [\302\240\302\240\302\240\302\2402.266625] [<ffff00000855c2c4>] subsys_interface_register+0x84/0xc8\n" - "> > [\302\240\302\240\302\240\302\2402.272922] [<ffff00000879e330>] cpufreq_register_driver+0x138/0x1b8\n" - "> > [\302\240\302\240\302\240\302\2402.279218] [<ffff0000087a0b4c>] bL_cpufreq_register+0x74/0x120\n" - "> > [\302\240\302\240\302\240\302\2402.285083] [<ffff0000087a1038>] scpi_cpufreq_probe+0x28/0x38\n" - "> > [\302\240\302\240\302\240\302\2402.290776] [<ffff00000855fbf0>] platform_drv_probe+0x50/0xb8\n" - "> > [\302\240\302\240\302\240\302\2402.296468] [<ffff00000855dd84>] driver_probe_device+0x21c/0x2d8\n" + "> > [????2.250151] [<ffff0000087a0a48>] bL_cpufreq_init+0x3f0/0x480\n" + "> > [????2.255758] [<ffff00000879eed8>] cpufreq_online+0xc0/0x658\n" + "> > [????2.261191] [<ffff00000879f500>] cpufreq_add_dev+0x78/0x88\n" + "> > [????2.266625] [<ffff00000855c2c4>] subsys_interface_register+0x84/0xc8\n" + "> > [????2.272922] [<ffff00000879e330>] cpufreq_register_driver+0x138/0x1b8\n" + "> > [????2.279218] [<ffff0000087a0b4c>] bL_cpufreq_register+0x74/0x120\n" + "> > [????2.285083] [<ffff0000087a1038>] scpi_cpufreq_probe+0x28/0x38\n" + "> > [????2.290776] [<ffff00000855fbf0>] platform_drv_probe+0x50/0xb8\n" + "> > [????2.296468] [<ffff00000855dd84>] driver_probe_device+0x21c/0x2d8\n" "> > \n" "> \n" "> Thanks for this stack. I just worked out the same path now. I did come\n" @@ -62,22 +55,22 @@ "\n" "I tried.\n" "It does not work unfortunately. Still crashes but somewhere else:\n" - "[\302\240\302\240\302\240\302\2402.301482] [<ffff00000849e67c>] scpi_of_clk_src_get+0x14/0x58\n" - "[\302\240\302\240\302\240\302\2402.307261] [<ffff000008495f40>] __of_clk_get_by_name+0x100/0x118\n" - "[\302\240\302\240\302\240\302\2402.313297] [<ffff000008495fac>] clk_get+0x2c/0x78\n" - "[\302\240\302\240\302\240\302\2402.318044] [<ffff00000856f4d0>] dev_pm_opp_get_opp_table+0xb0/0x118\n" - "[\302\240\302\240\302\240\302\2402.324338] [<ffff00000856fd00>] dev_pm_opp_add+0x20/0x68\n" - "[\302\240\302\240\302\240\302\2402.329687] [<ffff0000087a04f8>] scpi_init_opp_table+0xa8/0x188\n" - "[\302\240\302\240\302\240\302\2402.335550] [<ffff00000879fb20>] _get_cluster_clk_and_freq_table+0x80/0x180\n" - "[\302\240\302\240\302\240\302\2402.342450] [<ffff0000087a0010>] bL_cpufreq_init+0x3f0/0x480\n" - "[\302\240\302\240\302\240\302\2402.348056] [<ffff00000879e4a0>] cpufreq_online+0xc0/0x658\n" - "[\302\240\302\240\302\240\302\2402.353490] [<ffff00000879eac8>] cpufreq_add_dev+0x78/0x88\n" - "[\302\240\302\240\302\240\302\2402.358924] [<ffff00000855b684>] subsys_interface_register+0x84/0xc8\n" - "[\302\240\302\240\302\240\302\2402.365220] [<ffff00000879d8f8>] cpufreq_register_driver+0x138/0x1b8\n" - "[\302\240\302\240\302\240\302\2402.371516] [<ffff0000087a0114>] bL_cpufreq_register+0x74/0x120\n" - "[\302\240\302\240\302\240\302\2402.377381] [<ffff0000087a0600>] scpi_cpufreq_probe+0x28/0x38\n" - "[\302\240\302\240\302\240\302\2402.383076] [<ffff00000855efb0>] platform_drv_probe+0x50/0xb8\n" - "[\302\240\302\240\302\240\302\2402.388766] [<ffff00000855d144>] driver_probe_device+0x21c/0x2d8\n" + "[????2.301482] [<ffff00000849e67c>] scpi_of_clk_src_get+0x14/0x58\n" + "[????2.307261] [<ffff000008495f40>] __of_clk_get_by_name+0x100/0x118\n" + "[????2.313297] [<ffff000008495fac>] clk_get+0x2c/0x78\n" + "[????2.318044] [<ffff00000856f4d0>] dev_pm_opp_get_opp_table+0xb0/0x118\n" + "[????2.324338] [<ffff00000856fd00>] dev_pm_opp_add+0x20/0x68\n" + "[????2.329687] [<ffff0000087a04f8>] scpi_init_opp_table+0xa8/0x188\n" + "[????2.335550] [<ffff00000879fb20>] _get_cluster_clk_and_freq_table+0x80/0x180\n" + "[????2.342450] [<ffff0000087a0010>] bL_cpufreq_init+0x3f0/0x480\n" + "[????2.348056] [<ffff00000879e4a0>] cpufreq_online+0xc0/0x658\n" + "[????2.353490] [<ffff00000879eac8>] cpufreq_add_dev+0x78/0x88\n" + "[????2.358924] [<ffff00000855b684>] subsys_interface_register+0x84/0xc8\n" + "[????2.365220] [<ffff00000879d8f8>] cpufreq_register_driver+0x138/0x1b8\n" + "[????2.371516] [<ffff0000087a0114>] bL_cpufreq_register+0x74/0x120\n" + "[????2.377381] [<ffff0000087a0600>] scpi_cpufreq_probe+0x28/0x38\n" + "[????2.383076] [<ffff00000855efb0>] platform_drv_probe+0x50/0xb8\n" + "[????2.388766] [<ffff00000855d144>] driver_probe_device+0x21c/0x2d8\n" "\n" "I have not looked at ALL the clock providers, but I have seen a few and I don't\n" "remember seeing any which fails, at some point, to register a clocks and still\n" @@ -88,14 +81,14 @@ "> \n" "> > But that's not the point. The point is there is path in clk-scpi driver\n" "> > which\n" - "> > registers uninitialized data in the clock provider. That's not good.\302\240\n" + "> > registers uninitialized data in the clock provider. That's not good.?\n" "> > \n" "> > > Also one of the reason for keeping it continuing is, if firmware fails\n" "> > > on some non-critical clock, that's fine rather than punishing the entire\n" "> > > set of clocks and may even fail the boot.\n" "> > \n" "> > I understand, but you have no way to know whether a clock is critical or not\n" - "> > so\302\240\n" + "> > so?\n" "> > this explanation looks a bit weak, plus it does not keep the boot from\n" "> > failing\n" "> > ... not for me at least.\n" @@ -125,24 +118,24 @@ "> +++ w/drivers/clk/clk-scpi.c\n" "> @@ -245,11 +245,14 @@ static int scpi_clk_add(struct device *dev, struct\n" "> device_node *np,\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\240sclk->id = val;\n" + "> ????????????????sclk->id = val;\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\240err = scpi_clk_ops_init(dev, match, sclk, name);\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\240if (err)\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\240if (err) {\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\240dev_err(dev, \"failed to register clock '%s'\\n\",\n" + "> ????????????????err = scpi_clk_ops_init(dev, match, sclk, name);\n" + "> -???????????????if (err)\n" + "> +???????????????if (err) {\n" + "> ????????????????????????dev_err(dev, \"failed to register clock '%s'\\n\",\n" "> name);\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\240else\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\240clk_data->clk[idx] = NULL;\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\240devm_kfree(dev, sclk);\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} else {\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\240dev_dbg(dev, \"Registered clock '%s'\\n\", name);\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\240clk_data->clk[idx] = sclk;\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\240clk_data->clk[idx] = sclk;\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}\n" - "> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240}\n" + "> -???????????????else\n" + "> +???????????????????????clk_data->clk[idx] = NULL;\n" + "> +???????????????????????devm_kfree(dev, sclk);\n" + "> +???????????????} else {\n" + "> ????????????????????????dev_dbg(dev, \"Registered clock '%s'\\n\", name);\n" + "> -???????????????clk_data->clk[idx] = sclk;\n" + "> +???????????????????????clk_data->clk[idx] = sclk;\n" + "> +???????????????}\n" + "> ????????}\n" "> \n" - "> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return of_clk_add_hw_provider(np, scpi_of_clk_src_get, clk_data);\n" + "> ????????return of_clk_add_hw_provider(np, scpi_of_clk_src_get, clk_data);\n" > -305d18956f1068cf4c488a6d88470b110bfaaa5254cb435046b0c37a1c0529d7 +c73d3ccaf200744dbe5163fbc8ca1498a4bc8c5832221317484209b39d7b2fa9
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.