diff options
author | Alex Shi <alex.shi@linaro.org> | 2018-03-26 02:32:53 +0000 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2018-03-26 02:32:53 +0000 |
commit | 38b587878eee8f9f2664135ab76805d0510bb997 (patch) | |
tree | 66f5c8eb8821dc7fa1fe91741b24ff7291ef3bf1 /drivers/soc/fsl/qe/qe.c | |
parent | 323174b55ef1de0c70ed0b268fcaf9f2d6f842c6 (diff) | |
parent | 24f70aa804cd7f8fee4353cf4990997d1c8375ae (diff) |
Merge tag 'v4.9.90' into linux-linaro-lsk-v4.9lsk-v4.9-18.03
This is the 4.9.90 stable release
Diffstat (limited to 'drivers/soc/fsl/qe/qe.c')
-rw-r--r-- | drivers/soc/fsl/qe/qe.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/soc/fsl/qe/qe.c b/drivers/soc/fsl/qe/qe.c index 2707a827261b..5482302d3d9e 100644 --- a/drivers/soc/fsl/qe/qe.c +++ b/drivers/soc/fsl/qe/qe.c @@ -163,11 +163,15 @@ EXPORT_SYMBOL(qe_issue_cmd); */ static unsigned int brg_clk = 0; +#define CLK_GRAN (1000) +#define CLK_GRAN_LIMIT (5) + unsigned int qe_get_brg_clk(void) { struct device_node *qe; int size; const u32 *prop; + unsigned int mod; if (brg_clk) return brg_clk; @@ -185,6 +189,15 @@ unsigned int qe_get_brg_clk(void) of_node_put(qe); + /* round this if near to a multiple of CLK_GRAN */ + mod = brg_clk % CLK_GRAN; + if (mod) { + if (mod < CLK_GRAN_LIMIT) + brg_clk -= mod; + else if (mod > (CLK_GRAN - CLK_GRAN_LIMIT)) + brg_clk += CLK_GRAN - mod; + } + return brg_clk; } EXPORT_SYMBOL(qe_get_brg_clk); |