openwrt/target/linux/layerscape/patches-5.4/801-audio-0049-MLK-17580-ASoC-fsl-sai-check-for-pinctrl-status.patch
Adrian Schmutzler cf7c101135 layerscape: remove useless pairs of kernel patches
The layerscape kernel patches appears to be just some uncleaned local
development tree, where patches are sometimes directly followed by
their revert. While this does not seem a problem in the first place,
it becomes incredibly unpleasant when the upstream kernel changes in
the relevant areas and requires rebase.

This removes all these patch-revert pairs and refreshs the rest.

It removes about 44000 lines of entirely useless code.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-08-20 14:19:39 +02:00

61 lines
2.0 KiB
Diff

From 12b887445779c33285dac5279fc02fd80e0800d8 Mon Sep 17 00:00:00 2001
From: Viorel Suman <viorel.suman@nxp.com>
Date: Fri, 9 Mar 2018 12:41:42 +0200
Subject: [PATCH] MLK-17580: ASoC: fsl: sai: check for pinctrl status
For some cases (like AMIX) pinctrl may be null - this
breaks SAI functionality. Enforce pinctrl null pointer
checking prior calling any function which involves
pins state changes.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
---
sound/soc/fsl/fsl_sai.c | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
@@ -530,14 +530,17 @@ static int fsl_sai_hw_params(struct snd_
pins = DIV_ROUND_UP(channels, slots);
sai->is_dsd = fsl_is_dsd(params);
- sai->pins_state = fsl_get_pins_state(sai->pinctrl, params);
- 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;
+ if (!IS_ERR_OR_NULL(sai->pinctrl)) {
+ sai->pins_state = fsl_get_pins_state(sai->pinctrl, params);
+
+ 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;
+ }
}
}
@@ -920,7 +923,7 @@ static int fsl_sai_dai_resume(struct snd
struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai);
int ret;
- if (!IS_ERR_OR_NULL(sai->pins_state)) {
+ if (!IS_ERR_OR_NULL(sai->pinctrl) && !IS_ERR_OR_NULL(sai->pins_state)) {
ret = pinctrl_select_state(sai->pinctrl, sai->pins_state);
if (ret) {
dev_err(cpu_dai->dev,
@@ -1343,7 +1346,7 @@ static int fsl_sai_probe(struct platform
sai->dma_params_rx.maxburst = FSL_SAI_MAXBURST_RX;
sai->dma_params_tx.maxburst = FSL_SAI_MAXBURST_TX;
- sai->pinctrl = devm_pinctrl_get(&pdev->dev);
+ sai->pinctrl = devm_pinctrl_get(&pdev->dev);
platform_set_drvdata(pdev, sai);