| From 30441b6767296017619be3dab7e658c204d526ab Mon Sep 17 00:00:00 2001 |
| From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
| Date: Wed, 22 Mar 2017 04:02:43 +0000 |
| Subject: [PATCH 092/286] ASoC: rcar: ssi: don't set SSICR.CKDV = 000 with |
| SSIWSR.CONT |
| |
| R-Car Datasheet is indicating "SSICR.CKDV = 000 is invalid when |
| SSIWSR.WS_MODE = 1 or SSIWSR.CONT = 1". |
| Current driver will set CONT, thus, we shouldn't use CKDV = 000. |
| This patch fixup it. |
| |
| Reported-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com> |
| Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
| Tested-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com> |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| (cherry picked from commit 6b8530cc056efd4a11b034ca5b1e9f7e9563f553) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| sound/soc/sh/rcar/ssi.c | 9 +++++++++ |
| 1 file changed, 9 insertions(+) |
| |
| --- a/sound/soc/sh/rcar/ssi.c |
| +++ b/sound/soc/sh/rcar/ssi.c |
| @@ -228,6 +228,15 @@ static int rsnd_ssi_master_clk_start(str |
| for (j = 0; j < ARRAY_SIZE(ssi_clk_mul_table); j++) { |
| |
| /* |
| + * It will set SSIWSR.CONT here, but SSICR.CKDV = 000 |
| + * with it is not allowed. (SSIWSR.WS_MODE with |
| + * SSICR.CKDV = 000 is not allowed either). |
| + * Skip it. See SSICR.CKDV |
| + */ |
| + if (j == 0) |
| + continue; |
| + |
| + /* |
| * this driver is assuming that |
| * system word is 32bit x chan |
| * see rsnd_ssi_init() |