[alsa-devel] [PATCH v5 1/2] ALSA: ASoC: davinci-mcasp: don't configure AFSX direction in DIT mode
From: Yegor Yefremov yegorslists@googlemail.com
AFSX won't be used in DIT mode. The related pins are AHCLKX and the data pins.
Signed-off-by: Yegor Yefremov yegorslists@googlemail.com Acked-by: Vaibhav Bedia vaibhav.bedia@ti.com Tested-by: Daniel Mack zonque@gmail.com --- v5: add Daniel's Tested-by v4: change subjuct to include "ALSA: ASoC: "
sound/soc/davinci/davinci-mcasp.c | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-)
diff --git a/sound/soc/davinci/davinci-mcasp.c b/sound/soc/davinci/davinci-mcasp.c index 9321e5c..90a9b99 100644 --- a/sound/soc/davinci/davinci-mcasp.c +++ b/sound/soc/davinci/davinci-mcasp.c @@ -772,9 +772,6 @@ static void davinci_hw_param(struct davinci_audio_dev *dev, int stream) /* S/PDIF */ static void davinci_hw_dit_param(struct davinci_audio_dev *dev) { - /* Set the PDIR for Serialiser as output */ - mcasp_set_bits(dev->base + DAVINCI_MCASP_PDIR_REG, AFSX); - /* TXMASK for 24 bits */ mcasp_set_reg(dev->base + DAVINCI_MCASP_TXMASK_REG, 0x00FFFFFF);
From: Yegor Yefremov yegorslists@googlemail.com
Channel size settings will be made at the end of davinci_mcasp_hw_params() routine and thus overwrite frame format settings made for DIT mode. This patch fixes this issue by taking op_mode into account. Tested with official PSP 3.2 kernel and sii9022a HDMI transmitter.
Signed-off-by: Yegor Yefremov yegorslists@googlemail.com Tested-by: Daniel Mack zonque@gmail.com --- v5: add Daniel's Tested-by v4: change subjuct to include "ALSA: ASoC: " v3: don't set mask in davinci_hw_dit_param() v2: fix checkpatch.pl warnings
sound/soc/davinci/davinci-mcasp.c | 25 +++++++++++++------------ 1 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/sound/soc/davinci/davinci-mcasp.c b/sound/soc/davinci/davinci-mcasp.c index 90a9b99..dcd56f2 100644 --- a/sound/soc/davinci/davinci-mcasp.c +++ b/sound/soc/davinci/davinci-mcasp.c @@ -643,16 +643,20 @@ static int davinci_config_channel_size(struct davinci_audio_dev *dev, /* mapping of the XSSZ bit-field as described in the datasheet */ fmt = (word_length >> 1) - 1;
- mcasp_mod_bits(dev->base + DAVINCI_MCASP_RXFMT_REG, - RXSSZ(fmt), RXSSZ(0x0F)); - mcasp_mod_bits(dev->base + DAVINCI_MCASP_TXFMT_REG, - TXSSZ(fmt), TXSSZ(0x0F)); - mcasp_mod_bits(dev->base + DAVINCI_MCASP_TXFMT_REG, TXROT(rotate), - TXROT(7)); - mcasp_mod_bits(dev->base + DAVINCI_MCASP_RXFMT_REG, RXROT(rotate), - RXROT(7)); + if (dev->op_mode != DAVINCI_MCASP_DIT_MODE) { + mcasp_mod_bits(dev->base + DAVINCI_MCASP_RXFMT_REG, + RXSSZ(fmt), RXSSZ(0x0F)); + mcasp_mod_bits(dev->base + DAVINCI_MCASP_TXFMT_REG, + TXSSZ(fmt), TXSSZ(0x0F)); + mcasp_mod_bits(dev->base + DAVINCI_MCASP_TXFMT_REG, + TXROT(rotate), TXROT(7)); + mcasp_mod_bits(dev->base + DAVINCI_MCASP_RXFMT_REG, + RXROT(rotate), RXROT(7)); + mcasp_set_reg(dev->base + DAVINCI_MCASP_RXMASK_REG, + mask); + } + mcasp_set_reg(dev->base + DAVINCI_MCASP_TXMASK_REG, mask); - mcasp_set_reg(dev->base + DAVINCI_MCASP_RXMASK_REG, mask);
return 0; } @@ -772,9 +776,6 @@ static void davinci_hw_param(struct davinci_audio_dev *dev, int stream) /* S/PDIF */ static void davinci_hw_dit_param(struct davinci_audio_dev *dev) { - /* TXMASK for 24 bits */ - mcasp_set_reg(dev->base + DAVINCI_MCASP_TXMASK_REG, 0x00FFFFFF); - /* Set the TX format : 24 bit right rotation, 32 bit slot, Pad 0 and LSB first */ mcasp_set_bits(dev->base + DAVINCI_MCASP_TXFMT_REG,
On Thu, Mar 7, 2013 at 2:38 PM, yegorslists@googlemail.com wrote:
From: Yegor Yefremov yegorslists@googlemail.com
Channel size settings will be made at the end of davinci_mcasp_hw_params() routine and thus overwrite frame format settings made for DIT mode. This patch fixes this issue by taking op_mode into account. Tested with official PSP 3.2 kernel and sii9022a HDMI transmitter.
Signed-off-by: Yegor Yefremov yegorslists@googlemail.com Tested-by: Daniel Mack zonque@gmail.com
v5: add Daniel's Tested-by v4: change subjuct to include "ALSA: ASoC: " v3: don't set mask in davinci_hw_dit_param() v2: fix checkpatch.pl warnings
sound/soc/davinci/davinci-mcasp.c | 25 +++++++++++++------------ 1 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/sound/soc/davinci/davinci-mcasp.c b/sound/soc/davinci/davinci-mcasp.c index 90a9b99..dcd56f2 100644 --- a/sound/soc/davinci/davinci-mcasp.c +++ b/sound/soc/davinci/davinci-mcasp.c @@ -643,16 +643,20 @@ static int davinci_config_channel_size(struct davinci_audio_dev *dev, /* mapping of the XSSZ bit-field as described in the datasheet */ fmt = (word_length >> 1) - 1;
mcasp_mod_bits(dev->base + DAVINCI_MCASP_RXFMT_REG,
RXSSZ(fmt), RXSSZ(0x0F));
mcasp_mod_bits(dev->base + DAVINCI_MCASP_TXFMT_REG,
TXSSZ(fmt), TXSSZ(0x0F));
mcasp_mod_bits(dev->base + DAVINCI_MCASP_TXFMT_REG, TXROT(rotate),
TXROT(7));
mcasp_mod_bits(dev->base + DAVINCI_MCASP_RXFMT_REG, RXROT(rotate),
RXROT(7));
if (dev->op_mode != DAVINCI_MCASP_DIT_MODE) {
mcasp_mod_bits(dev->base + DAVINCI_MCASP_RXFMT_REG,
RXSSZ(fmt), RXSSZ(0x0F));
mcasp_mod_bits(dev->base + DAVINCI_MCASP_TXFMT_REG,
TXSSZ(fmt), TXSSZ(0x0F));
mcasp_mod_bits(dev->base + DAVINCI_MCASP_TXFMT_REG,
TXROT(rotate), TXROT(7));
mcasp_mod_bits(dev->base + DAVINCI_MCASP_RXFMT_REG,
RXROT(rotate), RXROT(7));
mcasp_set_reg(dev->base + DAVINCI_MCASP_RXMASK_REG,
mask);
}
mcasp_set_reg(dev->base + DAVINCI_MCASP_TXMASK_REG, mask);
mcasp_set_reg(dev->base + DAVINCI_MCASP_RXMASK_REG, mask); return 0;
} @@ -772,9 +776,6 @@ static void davinci_hw_param(struct davinci_audio_dev *dev, int stream) /* S/PDIF */ static void davinci_hw_dit_param(struct davinci_audio_dev *dev) {
/* TXMASK for 24 bits */
mcasp_set_reg(dev->base + DAVINCI_MCASP_TXMASK_REG, 0x00FFFFFF);
/* Set the TX format : 24 bit right rotation, 32 bit slot, Pad 0 and LSB first */ mcasp_set_bits(dev->base + DAVINCI_MCASP_TXFMT_REG,
-- 1.7.7
Same for this patch.
Yegor
On Thu, Mar 7, 2013 at 2:38 PM, yegorslists@googlemail.com wrote:
From: Yegor Yefremov yegorslists@googlemail.com
AFSX won't be used in DIT mode. The related pins are AHCLKX and the data pins.
Signed-off-by: Yegor Yefremov yegorslists@googlemail.com Acked-by: Vaibhav Bedia vaibhav.bedia@ti.com Tested-by: Daniel Mack zonque@gmail.com
v5: add Daniel's Tested-by v4: change subjuct to include "ALSA: ASoC: "
sound/soc/davinci/davinci-mcasp.c | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-)
diff --git a/sound/soc/davinci/davinci-mcasp.c b/sound/soc/davinci/davinci-mcasp.c index 9321e5c..90a9b99 100644 --- a/sound/soc/davinci/davinci-mcasp.c +++ b/sound/soc/davinci/davinci-mcasp.c @@ -772,9 +772,6 @@ static void davinci_hw_param(struct davinci_audio_dev *dev, int stream) /* S/PDIF */ static void davinci_hw_dit_param(struct davinci_audio_dev *dev) {
/* Set the PDIR for Serialiser as output */
mcasp_set_bits(dev->base + DAVINCI_MCASP_PDIR_REG, AFSX);
/* TXMASK for 24 bits */ mcasp_set_reg(dev->base + DAVINCI_MCASP_TXMASK_REG, 0x00FFFFFF);
-- 1.7.7
Mark, could you please take a look at this patch and queue for 3.10?
Thanks.
Yegor
On Thu, Apr 04, 2013 at 12:49:32PM +0200, Yegor Yefremov wrote:
Mark, could you please take a look at this patch and queue for 3.10?
Don't send contentless pings. If you want patches to be applied you need to send them to the maintainers as covered in SubmittingPatches, please do that.
On Thu, Apr 4, 2013 at 12:58 PM, Mark Brown broonie@opensource.wolfsonmicro.com wrote:
On Thu, Apr 04, 2013 at 12:49:32PM +0200, Yegor Yefremov wrote:
Mark, could you please take a look at this patch and queue for 3.10?
Don't send contentless pings. If you want patches to be applied you need to send them to the maintainers as covered in SubmittingPatches, please do that.
Do you mean sending v6 with you in CC? Looking through MAINTAINERS, I couldn't find any person responsible for sound/soc/davinci/. So you were the closest maintainer.
Do I see it right?
Yegor
On Thu, Apr 04, 2013 at 02:21:35PM +0200, Yegor Yefremov wrote:
On Thu, Apr 4, 2013 at 12:58 PM, Mark Brown
Don't send contentless pings. If you want patches to be applied you need to send them to the maintainers as covered in SubmittingPatches, please do that.
Do you mean sending v6 with you in CC? Looking through MAINTAINERS, I couldn't find any person responsible for sound/soc/davinci/. So you were the closest maintainer.
Do I see it right?
Yes, you need to send me a copy. You can just bounce the posts along to me but unless it winds up in my inbox it's likely to get lost.
If you can't find a maintainer for the specific driver then go to the subsystem; in general you should copy in the subsystem maintainer anyway as it's them who usually actually does the commit (looking at the git logs to see who's commiting things will help here).
participants (3)
-
Mark Brown
-
Yegor Yefremov
-
yegorslists@googlemail.com