| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Copyright (C) ST-Ericsson SA 2012 |
|---|
| 3 | 4 | * |
|---|
| .. | .. |
|---|
| 13 | 14 | * for ST-Ericsson. |
|---|
| 14 | 15 | * |
|---|
| 15 | 16 | * License terms: |
|---|
| 16 | | - * |
|---|
| 17 | | - * This program is free software; you can redistribute it and/or modify it |
|---|
| 18 | | - * under the terms of the GNU General Public License version 2 as published |
|---|
| 19 | | - * by the Free Software Foundation. |
|---|
| 20 | 17 | */ |
|---|
| 21 | 18 | |
|---|
| 22 | 19 | #include <linux/kernel.h> |
|---|
| .. | .. |
|---|
| 1062 | 1059 | snd_soc_component_update_bits(component, AB8500_ANCCONF1, |
|---|
| 1063 | 1060 | BIT(AB8500_ANCCONF1_ANCIIRINIT), |
|---|
| 1064 | 1061 | BIT(AB8500_ANCCONF1_ANCIIRINIT)); |
|---|
| 1065 | | - usleep_range(AB8500_ANC_SM_DELAY, AB8500_ANC_SM_DELAY); |
|---|
| 1062 | + usleep_range(AB8500_ANC_SM_DELAY, AB8500_ANC_SM_DELAY*2); |
|---|
| 1066 | 1063 | snd_soc_component_update_bits(component, AB8500_ANCCONF1, |
|---|
| 1067 | 1064 | BIT(AB8500_ANCCONF1_ANCIIRINIT), 0); |
|---|
| 1068 | | - usleep_range(AB8500_ANC_SM_DELAY, AB8500_ANC_SM_DELAY); |
|---|
| 1065 | + usleep_range(AB8500_ANC_SM_DELAY, AB8500_ANC_SM_DELAY*2); |
|---|
| 1069 | 1066 | } else { |
|---|
| 1070 | 1067 | snd_soc_component_update_bits(component, AB8500_ANCCONF1, |
|---|
| 1071 | 1068 | BIT(AB8500_ANCCONF1_ANCIIRUPDATE), |
|---|
| .. | .. |
|---|
| 1103 | 1100 | if (apply_fir) |
|---|
| 1104 | 1101 | for (bnk = 0; bnk < AB8500_NR_OF_ANC_COEFF_BANKS; bnk++) |
|---|
| 1105 | 1102 | for (par = 0; par < AB8500_ANC_FIR_COEFFS; par++) { |
|---|
| 1106 | | - val = snd_soc_component_read32(component, |
|---|
| 1103 | + val = snd_soc_component_read(component, |
|---|
| 1107 | 1104 | drvdata->anc_fir_values[par]); |
|---|
| 1108 | 1105 | anc_fir(component, bnk, par, val); |
|---|
| 1109 | 1106 | } |
|---|
| .. | .. |
|---|
| 1111 | 1108 | if (apply_iir) |
|---|
| 1112 | 1109 | for (bnk = 0; bnk < AB8500_NR_OF_ANC_COEFF_BANKS; bnk++) |
|---|
| 1113 | 1110 | for (par = 0; par < AB8500_ANC_IIR_COEFFS; par++) { |
|---|
| 1114 | | - val = snd_soc_component_read32(component, |
|---|
| 1111 | + val = snd_soc_component_read(component, |
|---|
| 1115 | 1112 | drvdata->anc_iir_values[par]); |
|---|
| 1116 | 1113 | anc_iir(component, bnk, par, val); |
|---|
| 1117 | 1114 | } |
|---|
| .. | .. |
|---|
| 1156 | 1153 | |
|---|
| 1157 | 1154 | mutex_lock(&drvdata->ctrl_lock); |
|---|
| 1158 | 1155 | |
|---|
| 1159 | | - sidconf = snd_soc_component_read32(component, AB8500_SIDFIRCONF); |
|---|
| 1156 | + sidconf = snd_soc_component_read(component, AB8500_SIDFIRCONF); |
|---|
| 1160 | 1157 | if (((sidconf & BIT(AB8500_SIDFIRCONF_FIRSIDBUSY)) != 0)) { |
|---|
| 1161 | 1158 | if ((sidconf & BIT(AB8500_SIDFIRCONF_ENFIRSIDS)) == 0) { |
|---|
| 1162 | 1159 | dev_err(component->dev, "%s: Sidetone busy while off!\n", |
|---|
| .. | .. |
|---|
| 1171 | 1168 | snd_soc_component_write(component, AB8500_SIDFIRADR, 0); |
|---|
| 1172 | 1169 | |
|---|
| 1173 | 1170 | for (param = 0; param < AB8500_SID_FIR_COEFFS; param++) { |
|---|
| 1174 | | - val = snd_soc_component_read32(component, drvdata->sid_fir_values[param]); |
|---|
| 1171 | + val = snd_soc_component_read(component, drvdata->sid_fir_values[param]); |
|---|
| 1175 | 1172 | snd_soc_component_write(component, AB8500_SIDFIRCOEF1, val >> 8 & 0xff); |
|---|
| 1176 | 1173 | snd_soc_component_write(component, AB8500_SIDFIRCOEF2, val & 0xff); |
|---|
| 1177 | 1174 | } |
|---|
| .. | .. |
|---|
| 2129 | 2126 | dev_err(dai->component->dev, |
|---|
| 2130 | 2127 | "%s: ERROR: The device is either a master or a slave.\n", |
|---|
| 2131 | 2128 | __func__); |
|---|
| 2129 | + fallthrough; |
|---|
| 2132 | 2130 | default: |
|---|
| 2133 | 2131 | dev_err(dai->component->dev, |
|---|
| 2134 | 2132 | "%s: ERROR: Unsupporter master mask 0x%x\n", |
|---|