summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Ser <simon.ser@intel.com>2019-04-23 16:04:54 +0300
committerArkadiusz Hiler <arkadiusz.hiler@intel.com>2019-04-25 13:07:41 +0300
commit9a0770f04f7e24fb9eb41308dd0435166d467323 (patch)
tree2d65105f9b182d14d96e7a3ee5b486a41178915f
parente5fc41b102ec50210646449822cb7f2f81d7f99a (diff)
lib/igt_{alsa, audio}: improve logging
- Print matched audio devices - Print min/max values when alsa_test_configuration fails - Print debug log line when skipping a frequency Signed-off-by: Simon Ser <simon.ser@intel.com> Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
-rw-r--r--lib/igt_alsa.c21
-rw-r--r--lib/igt_audio.c5
2 files changed, 23 insertions, 3 deletions
diff --git a/lib/igt_alsa.c b/lib/igt_alsa.c
index fc6d336b..3b1a9e90 100644
--- a/lib/igt_alsa.c
+++ b/lib/igt_alsa.c
@@ -182,6 +182,8 @@ static char *alsa_resolve_indentifier(const char *device_name, int skip)
continue;
}
+ igt_debug("Matched device \"%s\"\n", pcm_name);
+
snprintf(name, sizeof(name), "hw:%d,%d", card,
dev);
@@ -329,6 +331,9 @@ static bool alsa_test_configuration(snd_pcm_t *handle, int channels,
{
snd_pcm_hw_params_t *params;
int ret;
+ unsigned int min_channels, max_channels;
+ unsigned int min_rate, max_rate;
+ int min_rate_dir, max_rate_dir;
snd_pcm_hw_params_alloca(&params);
@@ -337,12 +342,24 @@ static bool alsa_test_configuration(snd_pcm_t *handle, int channels,
return false;
ret = snd_pcm_hw_params_test_rate(handle, params, sampling_rate, 0);
- if (ret < 0)
+ if (ret < 0) {
+ snd_pcm_hw_params_get_rate_min(params, &min_rate, &min_rate_dir);
+ snd_pcm_hw_params_get_rate_max(params, &max_rate, &max_rate_dir);
+ igt_debug("Output device supports rates between %u and %u, "
+ "requested %d\n",
+ min_rate, max_rate, sampling_rate);
return false;
+ }
ret = snd_pcm_hw_params_test_channels(handle, params, channels);
- if (ret < 0)
+ if (ret < 0) {
+ snd_pcm_hw_params_get_channels_min(params, &min_channels);
+ snd_pcm_hw_params_get_channels_max(params, &max_channels);
+ igt_debug("Output device supports between %u and "
+ "%u channels, requested %d\n",
+ min_channels, max_channels, channels);
return false;
+ }
return true;
}
diff --git a/lib/igt_audio.c b/lib/igt_audio.c
index 7624f565..5822fed7 100644
--- a/lib/igt_audio.c
+++ b/lib/igt_audio.c
@@ -102,8 +102,11 @@ int audio_signal_add_frequency(struct audio_signal *signal, int frequency)
return -1;
/* Stay within the Nyquist–Shannon sampling theorem. */
- if (frequency > signal->sampling_rate / 2)
+ if (frequency > signal->sampling_rate / 2) {
+ igt_debug("Skipping frequency %d: too high for a %d Hz "
+ "sampling rate\n", frequency, signal->sampling_rate);
return -1;
+ }
/* Clip the frequency to an integer multiple of the sampling rate.
* This to be able to store a full period of it and use that for