aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sound/soc/codecs/max98390.c6
-rw-r--r--sound/soc/codecs/max98390.h2
-rw-r--r--sound/soc/soc-component.c14
3 files changed, 12 insertions, 10 deletions
diff --git a/sound/soc/codecs/max98390.c b/sound/soc/codecs/max98390.c
index 3e8094241645..325d8dee79fa 100644
--- a/sound/soc/codecs/max98390.c
+++ b/sound/soc/codecs/max98390.c
@@ -790,7 +790,7 @@ static int max98390_dsm_init(struct snd_soc_component *component)
param_start_addr = (dsm_param[0] & 0xff) | (dsm_param[1] & 0xff) << 8;
param_size = (dsm_param[2] & 0xff) | (dsm_param[3] & 0xff) << 8;
if (param_size > MAX98390_DSM_PARAM_MAX_SIZE ||
- param_start_addr < DSM_STBASS_HPF_B0_BYTE0 ||
+ param_start_addr < MAX98390_IRQ_CTRL ||
fw->size < param_size + MAX98390_DSM_PAYLOAD_OFFSET) {
dev_err(component->dev,
"param fw is invalid.\n");
@@ -864,11 +864,11 @@ static int max98390_probe(struct snd_soc_component *component)
regmap_write(max98390->regmap, MAX98390_SOFTWARE_RESET, 0x01);
/* Sleep reset settle time */
msleep(20);
- /* Update dsm bin param */
- max98390_dsm_init(component);
/* Amp init setting */
max98390_init_regs(component);
+ /* Update dsm bin param */
+ max98390_dsm_init(component);
/* Dsm Setting */
if (max98390->ref_rdc_value) {
diff --git a/sound/soc/codecs/max98390.h b/sound/soc/codecs/max98390.h
index 5f444e7779b0..dff884f68e3e 100644
--- a/sound/soc/codecs/max98390.h
+++ b/sound/soc/codecs/max98390.h
@@ -650,7 +650,7 @@
/* DSM register offset */
#define MAX98390_DSM_PAYLOAD_OFFSET 16
-#define MAX98390_DSM_PARAM_MAX_SIZE 770
+#define MAX98390_DSM_PARAM_MAX_SIZE 1024
#define MAX98390_DSM_PARAM_MIN_SIZE 670
struct max98390_priv {
diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
index c1b799f98460..dcc89fa8913a 100644
--- a/sound/soc/soc-component.c
+++ b/sound/soc/soc-component.c
@@ -344,13 +344,15 @@ int snd_soc_component_of_xlate_dai_name(struct snd_soc_component *component,
struct of_phandle_args *args,
const char **dai_name)
{
- int ret = -ENOTSUPP;
-
if (component->driver->of_xlate_dai_name)
- ret = component->driver->of_xlate_dai_name(component,
- args, dai_name);
-
- return soc_component_ret(component, ret);
+ return component->driver->of_xlate_dai_name(component,
+ args, dai_name);
+ /*
+ * Don't use soc_component_ret here because we may not want to report
+ * the error just yet. If a device has more than one component, the
+ * first may not match and we don't want spam the log with this.
+ */
+ return -ENOTSUPP;
}
void snd_soc_component_setup_regmap(struct snd_soc_component *component)