[Sound-open-firmware] [PATCH 8/8] ssp: switch to use SCR for BCLK
Keyon Jie
yang.jie at linux.intel.com
Tue Dec 20 08:46:55 CET 2016
switch the BCLK generated from shim ssp clock divider to
SSCR0.SCR.
please note that we need clear SSPSP.SFRMP while using
SSCR0.SCR, otherwise the L/R channel may swap, no document
to describe that though.
Signed-off-by: Keyon Jie <yang.jie at linux.intel.com>
---
src/drivers/ssp.c | 4 +---
src/ipc/intel-ipc.c | 9 ---------
2 files changed, 1 insertion(+), 12 deletions(-)
diff --git a/src/drivers/ssp.c b/src/drivers/ssp.c
index 77341b6..c0d6251 100644
--- a/src/drivers/ssp.c
+++ b/src/drivers/ssp.c
@@ -221,7 +221,6 @@ static inline int ssp_set_config(struct dai *dai, struct dai_config *dai_config)
/* clock signal polarity */
switch (dai->config.format & DAI_FMT_INV_MASK) {
case DAI_FMT_NB_NF:
- sspsp |= SSPSP_SFRMP;
break;
case DAI_FMT_NB_IF:
break;
@@ -253,8 +252,7 @@ static inline int ssp_set_config(struct dai *dai, struct dai_config *dai_config)
return -ENODEV;
}
- /* TODO: clock frequency */
- //scr = dai_config->mclk / (
+ sscr0 |= SSCR0_SCR(dai->config.mclk_fs / dai->config.bclk_fs - 1);
/* format */
switch (dai->config.format & DAI_FMT_FORMAT_MASK) {
diff --git a/src/ipc/intel-ipc.c b/src/ipc/intel-ipc.c
index 33727a0..4d2acb2 100644
--- a/src/ipc/intel-ipc.c
+++ b/src/ipc/intel-ipc.c
@@ -530,7 +530,6 @@ static uint32_t ipc_device_set_formats(uint32_t header)
{
struct ipc_intel_ipc_device_config_req config_req;
struct ipc_dai_dev *dai_dev;
- int err;
trace_ipc("DsF");
@@ -570,14 +569,6 @@ static uint32_t ipc_device_set_formats(uint32_t header)
dai_dev->dai_config.mclk_fs = 400;
dai_dev->dai_config.clk_src = SSP_CLK_EXT;
- /* set SSP M/N dividers */
- err = platform_ssp_set_mn(config_req.ssp_interface, 48000,
- dai_dev->dai_config.bclk_fs);
- if (err < 0) {
- trace_ipc_error("eDs");
- goto error;
- }
-
comp_dai_config(dai_dev->dev.cd, &dai_dev->dai_config);
error:
--
2.7.4
More information about the Sound-open-firmware
mailing list