net: ethernet: ti: cpts: fix unbalanced clk api usage in cpts_register/unregister
authorGrygorii Strashko <grygorii.strashko@ti.com>
Wed, 7 Dec 2016 00:00:36 +0000 (18:00 -0600)
committerDavid S. Miller <davem@davemloft.net>
Wed, 7 Dec 2016 16:13:46 +0000 (11:13 -0500)
commitfd123a9414766e73fa704547e7f03595741b7de1
tree97211277028a4eeb31860690c9dfcb01726084b7
parentb63ba58ee9957261b39209f3031ff06714cf13cb
net: ethernet: ti: cpts: fix unbalanced clk api usage in cpts_register/unregister

There are two issues with TI CPTS code which are reproducible when TI
CPSW ethX device passes few up/down iterations:
- cpts refclk prepare counter continuously incremented after each
up/down iteration;
- devm_clk_get(dev, "cpts") is called many times.

Hence, fix these issues by using clk_disable_unprepare() in
cpts_clk_release() and skipping devm_clk_get() if cpts refclk has been
acquired already.

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/cpts.c