Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4322f028 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux

Pull clk fixes from Stephen Boyd:
 "A small set of fixes for problems found by smatch in new drivers that
  we added this rc and a handful of driver fixes that came in during the
  merge window"

* tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
  drivers: clk: st: Incorrect register offset used for lock_status
  clk: mediatek: mt8173: Fix enabling of critical clocks
  drivers: clk: st: Fix mux bit-setting for Cortex A9 clocks
  drivers: clk: st: Add CLK_GET_RATE_NOCACHE flag to clocks
  drivers: clk: st: Fix flexgen lock init
  drivers: clk: st: Fix FSYN channel values
  drivers: clk: st: Remove unused code
  clk: qcom: Use parent rate when set rate to pixel RCG clock
  clk: at91: do not leak resources
  clk: stm32: Fix out-by-one error path in the index lookup
  clk: iproc: fix bit manipulation arithmetic
  clk: iproc: fix memory leak from clock name
parents 9cb1680c 56551da9
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -116,8 +116,10 @@ void __init of_sama5d4_clk_h32mx_setup(struct device_node *np,
	h32mxclk->pmc = pmc;

	clk = clk_register(NULL, &h32mxclk->hw);
	if (!clk)
	if (!clk) {
		kfree(h32mxclk);
		return;
	}

	of_clk_add_provider(np, of_clk_src_simple_get, clk);
}
+3 −1
Original line number Diff line number Diff line
@@ -171,8 +171,10 @@ at91_clk_register_main_osc(struct at91_pmc *pmc,
	irq_set_status_flags(osc->irq, IRQ_NOAUTOEN);
	ret = request_irq(osc->irq, clk_main_osc_irq_handler,
			  IRQF_TRIGGER_HIGH, name, osc);
	if (ret)
	if (ret) {
		kfree(osc);
		return ERR_PTR(ret);
	}

	if (bypass)
		pmc_write(pmc, AT91_CKGR_MOR,
+6 −2
Original line number Diff line number Diff line
@@ -165,12 +165,16 @@ at91_clk_register_master(struct at91_pmc *pmc, unsigned int irq,
	irq_set_status_flags(master->irq, IRQ_NOAUTOEN);
	ret = request_irq(master->irq, clk_master_irq_handler,
			  IRQF_TRIGGER_HIGH, "clk-master", master);
	if (ret)
	if (ret) {
		kfree(master);
		return ERR_PTR(ret);
	}

	clk = clk_register(NULL, &master->hw);
	if (IS_ERR(clk))
	if (IS_ERR(clk)) {
		free_irq(master->irq, master);
		kfree(master);
	}

	return clk;
}
+6 −2
Original line number Diff line number Diff line
@@ -346,12 +346,16 @@ at91_clk_register_pll(struct at91_pmc *pmc, unsigned int irq, const char *name,
	irq_set_status_flags(pll->irq, IRQ_NOAUTOEN);
	ret = request_irq(pll->irq, clk_pll_irq_handler, IRQF_TRIGGER_HIGH,
			  id ? "clk-pllb" : "clk-plla", pll);
	if (ret)
	if (ret) {
		kfree(pll);
		return ERR_PTR(ret);
	}

	clk = clk_register(NULL, &pll->hw);
	if (IS_ERR(clk))
	if (IS_ERR(clk)) {
		free_irq(pll->irq, pll);
		kfree(pll);
	}

	return clk;
}
+6 −2
Original line number Diff line number Diff line
@@ -130,13 +130,17 @@ at91_clk_register_system(struct at91_pmc *pmc, const char *name,
		irq_set_status_flags(sys->irq, IRQ_NOAUTOEN);
		ret = request_irq(sys->irq, clk_system_irq_handler,
				IRQF_TRIGGER_HIGH, name, sys);
		if (ret)
		if (ret) {
			kfree(sys);
			return ERR_PTR(ret);
		}
	}

	clk = clk_register(NULL, &sys->hw);
	if (IS_ERR(clk))
	if (IS_ERR(clk)) {
		free_irq(sys->irq, sys);
		kfree(sys);
	}

	return clk;
}
Loading