Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ASoC: rsnd: adg: ignore undefined clock error

undefined clock is not error. Accept such case. And this is prepare
for clock out support in the same time.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Kuninori Morimoto and committed by
Mark Brown
248e88c2 3af6c3ac

+23 -9
+23 -9
sound/soc/sh/rcar/adg.c
··· 394 394 return 0; 395 395 } 396 396 397 + static void rsnd_adg_get_clkin(struct rsnd_priv *priv, 398 + struct rsnd_adg *adg) 399 + { 400 + struct device *dev = rsnd_priv_to_dev(priv); 401 + struct clk *clk; 402 + static const char * const clk_name[] = { 403 + [CLKA] = "clk_a", 404 + [CLKB] = "clk_b", 405 + [CLKC] = "clk_c", 406 + [CLKI] = "clk_i", 407 + }; 408 + int i; 409 + 410 + for (i = 0; i < CLKMAX; i++) { 411 + clk = devm_clk_get(dev, clk_name[i]); 412 + adg->clk[i] = IS_ERR(clk) ? NULL : clk; 413 + } 414 + 415 + for_each_rsnd_clk(clk, adg, i) 416 + dev_dbg(dev, "clk %d : %p : %ld\n", i, clk, clk_get_rate(clk)); 417 + } 418 + 397 419 static void rsnd_adg_ssi_clk_init(struct rsnd_priv *priv, struct rsnd_adg *adg) 398 420 { 399 421 struct clk *clk; ··· 488 466 { 489 467 struct rsnd_adg *adg; 490 468 struct device *dev = rsnd_priv_to_dev(priv); 491 - struct clk *clk; 492 - int i; 493 469 494 470 adg = devm_kzalloc(dev, sizeof(*adg), GFP_KERNEL); 495 471 if (!adg) { ··· 503 483 adg->mod.ops = &adg_ops; 504 484 adg->mod.priv = priv; 505 485 506 - adg->clk[CLKA] = devm_clk_get(dev, "clk_a"); 507 - adg->clk[CLKB] = devm_clk_get(dev, "clk_b"); 508 - adg->clk[CLKC] = devm_clk_get(dev, "clk_c"); 509 - adg->clk[CLKI] = devm_clk_get(dev, "clk_i"); 510 - 511 - for_each_rsnd_clk(clk, adg, i) 512 - dev_dbg(dev, "clk %d : %p : %ld\n", i, clk, clk_get_rate(clk)); 486 + rsnd_adg_get_clkin(priv, adg); 513 487 514 488 rsnd_adg_ssi_clk_init(priv, adg); 515 489