diff options
Diffstat (limited to 'drivers/clocksource/mtk_timer.c')
| -rw-r--r-- | drivers/clocksource/mtk_timer.c | 20 | 
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/clocksource/mtk_timer.c b/drivers/clocksource/mtk_timer.c index fbfc74685e6a..d67bc356488f 100644 --- a/drivers/clocksource/mtk_timer.c +++ b/drivers/clocksource/mtk_timer.c @@ -16,6 +16,8 @@   * GNU General Public License for more details.   */ +#define pr_fmt(fmt)	KBUILD_MODNAME ": " fmt +  #include <linux/clk.h>  #include <linux/clockchips.h>  #include <linux/interrupt.h> @@ -187,10 +189,8 @@ static void __init mtk_timer_init(struct device_node *node)  	struct clk *clk;  	evt = kzalloc(sizeof(*evt), GFP_KERNEL); -	if (!evt) { -		pr_warn("Can't allocate mtk clock event driver struct"); +	if (!evt)  		return; -	}  	evt->dev.name = "mtk_tick";  	evt->dev.rating = 300; @@ -204,31 +204,31 @@ static void __init mtk_timer_init(struct device_node *node)  	evt->gpt_base = of_io_request_and_map(node, 0, "mtk-timer");  	if (IS_ERR(evt->gpt_base)) { -		pr_warn("Can't get resource\n"); -		return; +		pr_err("Can't get resource\n"); +		goto err_kzalloc;  	}  	evt->dev.irq = irq_of_parse_and_map(node, 0);  	if (evt->dev.irq <= 0) { -		pr_warn("Can't parse IRQ"); +		pr_err("Can't parse IRQ\n");  		goto err_mem;  	}  	clk = of_clk_get(node, 0);  	if (IS_ERR(clk)) { -		pr_warn("Can't get timer clock"); +		pr_err("Can't get timer clock\n");  		goto err_irq;  	}  	if (clk_prepare_enable(clk)) { -		pr_warn("Can't prepare clock"); +		pr_err("Can't prepare clock\n");  		goto err_clk_put;  	}  	rate = clk_get_rate(clk);  	if (request_irq(evt->dev.irq, mtk_timer_interrupt,  			IRQF_TIMER | IRQF_IRQPOLL, "mtk_timer", evt)) { -		pr_warn("failed to setup irq %d\n", evt->dev.irq); +		pr_err("failed to setup irq %d\n", evt->dev.irq);  		goto err_clk_disable;  	} @@ -260,5 +260,7 @@ err_mem:  	iounmap(evt->gpt_base);  	of_address_to_resource(node, 0, &res);  	release_mem_region(res.start, resource_size(&res)); +err_kzalloc: +	kfree(evt);  }  CLOCKSOURCE_OF_DECLARE(mtk_mt6577, "mediatek,mt6577-timer", mtk_timer_init);  | 
