|
@@ -69,6 +69,7 @@ struct rsnd_ssi {
|
|
u32 cr_own;
|
|
u32 cr_own;
|
|
u32 cr_clk;
|
|
u32 cr_clk;
|
|
u32 cr_mode;
|
|
u32 cr_mode;
|
|
|
|
+ u32 wsr;
|
|
int chan;
|
|
int chan;
|
|
int rate;
|
|
int rate;
|
|
int err;
|
|
int err;
|
|
@@ -214,11 +215,10 @@ static int rsnd_ssi_master_clk_start(struct rsnd_ssi *ssi,
|
|
if (0 == ret) {
|
|
if (0 == ret) {
|
|
ssi->cr_clk = FORCE | SWL_32 |
|
|
ssi->cr_clk = FORCE | SWL_32 |
|
|
SCKD | SWSD | CKDV(j);
|
|
SCKD | SWSD | CKDV(j);
|
|
|
|
+ ssi->wsr = CONT;
|
|
|
|
|
|
ssi->rate = rate;
|
|
ssi->rate = rate;
|
|
|
|
|
|
- rsnd_mod_write(mod, SSIWSR, CONT);
|
|
|
|
-
|
|
|
|
dev_dbg(dev, "%s[%d] outputs %u Hz\n",
|
|
dev_dbg(dev, "%s[%d] outputs %u Hz\n",
|
|
rsnd_mod_name(mod),
|
|
rsnd_mod_name(mod),
|
|
rsnd_mod_id(mod), rate);
|
|
rsnd_mod_id(mod), rate);
|
|
@@ -421,6 +421,7 @@ static int __rsnd_ssi_start(struct rsnd_mod *mod,
|
|
EN;
|
|
EN;
|
|
|
|
|
|
rsnd_mod_write(mod, SSICR, cr);
|
|
rsnd_mod_write(mod, SSICR, cr);
|
|
|
|
+ rsnd_mod_write(mod, SSIWSR, ssi->wsr);
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|