]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00231773-9 ASRC: increace convert speed while in ideal mode
authorChen Liangjun <b36089@freescale.com>
Wed, 31 Oct 2012 04:52:48 +0000 (12:52 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:35:40 +0000 (08:35 +0200)
Increase convert speed while ASRC is working on ideal ratio mode to
satisfy asrc plugin's timing request.

Signed-off-by: Chen Liangjun <b36089@freescale.com>
drivers/mxc/asrc/mxc_asrc.c

index d16d7166ed5abc233caa9a46e15019ec575d0b08..b728fe19226dba1a57fc49252af05fef8e61d04a 100644 (file)
@@ -450,6 +450,9 @@ int asrc_config_pair(struct asrc_config *config)
                        reg |= 7 << AOCPA;
                else if ((config->outclk & 0x0f) == OUTCLK_SPDIF_TX)
                        reg |= 6 << AOCPA;
+               else if (((config->outclk & 0x0f) == OUTCLK_ASRCK1_CLK) &&
+                               ((config->inclk & 0x0f) == INCLK_NONE))
+                       reg |= 5 << AOCPA;
                else if ((config->outclk & 0x0f) == OUTCLK_ASRCK1_CLK) {
                        tmp =
                            asrc_get_asrck_clock_divider(config->
@@ -492,6 +495,9 @@ int asrc_config_pair(struct asrc_config *config)
                        reg |= 7 << AOCPB;
                else if ((config->outclk & 0x0f) == OUTCLK_SPDIF_TX)
                        reg |= 6 << AOCPB;
+               else if (((config->outclk & 0x0f) == OUTCLK_ASRCK1_CLK) &&
+                               ((config->inclk & 0x0f) == INCLK_NONE))
+                       reg |= 5 << AOCPB;
                else if ((config->outclk & 0x0f) == OUTCLK_ASRCK1_CLK) {
                        tmp =
                            asrc_get_asrck_clock_divider(config->
@@ -534,6 +540,9 @@ int asrc_config_pair(struct asrc_config *config)
                        reg |= 7 << AOCPC;
                else if ((config->outclk & 0x0f) == OUTCLK_SPDIF_TX)
                        reg |= 6 << AOCPC;
+               else if (((config->outclk & 0x0f) == OUTCLK_ASRCK1_CLK) &&
+                               ((config->inclk & 0x0f) == INCLK_NONE))
+                       reg |= 5 << AOCPC;
                else if ((config->outclk & 0x0f) == OUTCLK_ASRCK1_CLK) {
                        tmp =
                            asrc_get_asrck_clock_divider(config->