[RFC PATCH 13/16] clk: hifiberry-dacpro: add "sclk" lookup
Stephen Boyd
sboyd at kernel.org
Wed Apr 22 11:35:07 CEST 2020
Quoting Pierre-Louis Bossart (2020-04-09 12:58:38)
> devm_clk_get() fails on ACPI platforms when a NULL string is used.
> Create a "sclk" lookup to make sure codec and machine drivers can get
> the clock.
>
> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
> ---
> drivers/clk/clk-hifiberry-dacpro.c | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
> diff --git a/drivers/clk/clk-hifiberry-dacpro.c b/drivers/clk/clk-hifiberry-dacpro.c
> index d01a90fed51b..36210f52c624 100644
> --- a/drivers/clk/clk-hifiberry-dacpro.c
> +++ b/drivers/clk/clk-hifiberry-dacpro.c
> @@ -24,10 +24,12 @@
> * struct clk_hifiberry_hw - Common struct to the HiFiBerry DAC Pro
> * @hw: clk_hw for the common clk framework
> * @mode: 0 => CLK44EN, 1 => CLK48EN
> + * @sclk_lookup: handle for "sclk"
> */
> struct clk_hifiberry_hw {
> struct clk_hw hw;
> u8 mode;
> + struct clk_lookup *sclk_lookup;
> };
>
> #define to_hifiberry_clk(_hw) container_of(_hw, struct clk_hifiberry_hw, hw)
> @@ -121,15 +123,34 @@ static int clk_hifiberry_dacpro_probe(struct platform_device *pdev)
> ret = devm_clk_hw_register_clkdev(dev, &proclk->hw,
> init.name, NULL);
> #endif
> + if (ret) {
> + dev_err(dev, "Fail to add clock driver\n");
> + return ret;
> + }
> +
> + proclk->sclk_lookup = clkdev_hw_create(&proclk->hw, "sclk", NULL);
> + if (!proclk->sclk_lookup) {
> +#ifndef CONFIG_ACPI
Is it to save code space? Otherwise the ifdefs are pretty ugly and I'd
prefer we just call of_clk APIs and rely on the inline stubs when
CONFIG_OF isn't enabled to be optimized out.
> + of_clk_del_provider(dev->of_node);
> +#endif
> + return -ENOMEM;
> + }
> +
More information about the Alsa-devel
mailing list