openwrt/target/linux/layerscape/patches-5.4/801-audio-0048-MLK-17580-ASoC-fsl-sai-Use-DSD-helper.patch
Yangbo Lu cddd459140 layerscape: add patches-5.4
Add patches for linux-5.4. The patches are from NXP LSDK-20.04 release
which was tagged LSDK-20.04-V5.4.
https://source.codeaurora.org/external/qoriq/qoriq-components/linux/

For boards LS1021A-IOT, and Traverse-LS1043 which are not involved in
LSDK, port the dts patches from 4.14.

The patches are sorted into the following categories:
  301-arch-xxxx
  302-dts-xxxx
  303-core-xxxx
  701-net-xxxx
  801-audio-xxxx
  802-can-xxxx
  803-clock-xxxx
  804-crypto-xxxx
  805-display-xxxx
  806-dma-xxxx
  807-gpio-xxxx
  808-i2c-xxxx
  809-jailhouse-xxxx
  810-keys-xxxx
  811-kvm-xxxx
  812-pcie-xxxx
  813-pm-xxxx
  814-qe-xxxx
  815-sata-xxxx
  816-sdhc-xxxx
  817-spi-xxxx
  818-thermal-xxxx
  819-uart-xxxx
  820-usb-xxxx
  821-vfio-xxxx

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-05-07 12:53:06 +02:00

97 lines
2.8 KiB
Diff

From 0a71cfbd55ba50414bfcb4ecccf656a580930790 Mon Sep 17 00:00:00 2001
From: Viorel Suman <viorel.suman@nxp.com>
Date: Thu, 8 Mar 2018 14:43:34 +0200
Subject: [PATCH] MLK-17580: ASoC: fsl: sai: Use DSD helper
Replace DSD related code with calls to DSD helper functions.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com
---
sound/soc/fsl/fsl_sai.c | 34 +++++++++++-----------------------
sound/soc/fsl/fsl_sai.h | 2 +-
2 files changed, 12 insertions(+), 24 deletions(-)
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
@@ -22,6 +22,7 @@
#include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
#include <linux/pm_runtime.h>
+#include "fsl_dsd.h"
#include "fsl_sai.h"
#include "imx-pcm.h"
@@ -523,31 +524,21 @@ static int fsl_sai_hw_params(struct snd_
int ret;
int i;
int trce_mask = 0;
- snd_pcm_format_t format = params_format(params);
if (sai->slots)
slots = sai->slots;
pins = DIV_ROUND_UP(channels, slots);
+ sai->is_dsd = fsl_is_dsd(params);
+ sai->pins_state = fsl_get_pins_state(sai->pinctrl, params);
- if (format == SNDRV_PCM_FORMAT_DSD_U8 ||
- format == SNDRV_PCM_FORMAT_DSD_U16_LE ||
- format == SNDRV_PCM_FORMAT_DSD_U16_BE ||
- format == SNDRV_PCM_FORMAT_DSD_U32_LE ||
- format == SNDRV_PCM_FORMAT_DSD_U32_BE) {
- sai->is_dsd = true;
-
- if (!IS_ERR_OR_NULL(sai->pins_dsd)) {
- ret = pinctrl_select_state(sai->pinctrl, sai->pins_dsd);
- if (ret) {
- dev_err(cpu_dai->dev,
- "failed to set proper pins state: %d\n", ret);
- return ret;
- }
+ if (!IS_ERR_OR_NULL(sai->pins_state)) {
+ ret = pinctrl_select_state(sai->pinctrl, sai->pins_state);
+ if (ret) {
+ dev_err(cpu_dai->dev,
+ "failed to set proper pins state: %d\n", ret);
+ return ret;
}
- } else {
- pinctrl_pm_select_default_state(cpu_dai->dev);
- sai->is_dsd = false;
}
if (sai->is_dsd)
@@ -929,8 +920,8 @@ static int fsl_sai_dai_resume(struct snd
struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
int ret;
- if (sai->is_dsd && !IS_ERR_OR_NULL(sai->pins_dsd)) {
- ret = pinctrl_select_state(sai->pinctrl, sai->pins_dsd);
+ if (!IS_ERR_OR_NULL(sai->pins_state)) {
+ ret = pinctrl_select_state(sai->pinctrl, sai->pins_state);
if (ret) {
dev_err(cpu_dai->dev,
"failed to set proper pins state: %d\n", ret);
@@ -1356,9 +1347,6 @@ static int fsl_sai_probe(struct platform
sai->pinctrl = devm_pinctrl_get(&pdev->dev);
- if (!IS_ERR_OR_NULL(sai->pinctrl))
- sai->pins_dsd = pinctrl_lookup_state(sai->pinctrl, "dsd");
-
platform_set_drvdata(pdev, sai);
pm_runtime_enable(&pdev->dev);
--- a/sound/soc/fsl/fsl_sai.h
+++ b/sound/soc/fsl/fsl_sai.h
@@ -211,7 +211,7 @@ struct fsl_sai {
const struct fsl_sai_soc_data *soc;
struct pm_qos_request pm_qos_req;
struct pinctrl *pinctrl;
- struct pinctrl_state *pins_dsd;
+ struct pinctrl_state *pins_state;
};
#define TX 1