A recent commit moved the I2S samples per message operation
to the PCM's 'hw_params' callback. However, the 'hw_params'
callback is called numerous times while the samples per
message need only be done once (or seldom). Eliminate the
unnecessary samples per message operations by doing it only
once at Greybus protocol init time.
Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>
Acked-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
set_cfg.config.ll_wclk_rx_edge = GB_I2S_MGMT_EDGE_FALLING;
ret = gb_i2s_mgmt_set_configuration(snd_dev->mgmt_connection, &set_cfg);
- if (ret) {
- pr_err("set_configuration failed: %d\n", ret);
- return ret;
- }
-
- ret = gb_i2s_mgmt_set_samples_per_message(snd_dev->mgmt_connection,
- CONFIG_SAMPLES_PER_MSG);
if (ret)
- pr_err("set_samples_per_msg failed: %d\n", ret);
+ pr_err("set_configuration failed: %d\n", ret);
return ret;
}
goto err_free_snd_dev;
}
+ ret = gb_i2s_mgmt_set_samples_per_message(snd_dev->mgmt_connection,
+ CONFIG_SAMPLES_PER_MSG);
+ if (ret) {
+ pr_err("set_samples_per_msg failed: %d\n", ret);
+ goto err_free_i2s_configs;
+ }
+
snd_dev->send_data_req_buf = kzalloc(SEND_DATA_BUF_LEN, GFP_KERNEL);
if (!snd_dev->send_data_req_buf) {