Re: [Regression drm-tip] Internal audio device missing

From: Paul Menzel
Date: Thu Dec 26 2019 - 09:41:38 EST


Dear Takashi,


Am 26.12.19 um 11:03 schrieb Takashi Iwai:
On Thu, 26 Dec 2019 10:47:18 +0100, Paul Menzel wrote:

With

$ git describe --tags drm-tip/drm-tip
v5.5-rc3-1481-ga20d8cd6901a

the internal audio device is not available, and just a dummy device.

Running `alsa-info.sh` [1], the messages below are shown with the
problematic Linux kernel.

alsactl: get_controls:567: snd_ctl_open error: Sound protocol is
not compatible
cat: /tmp/alsa-info.ateDlDjrZX/alsactl.tmp: No such file or directory

That's an unexpected side-effect of the recent protocol version bump
in sound.git for-next branch. It seems that we can't change the minor
version unless we really want to break something.

Below is the fix patch. Please give it a try.

Thank you for the quick reply and fix.

-- 8< --
From: Takashi Iwai <tiwai@xxxxxxx>
Subject: [PATCH] ALSA: control: Fix incompatible protocol error

The recent change to bump the ALSA control API protocol version from
2.0.7 to 2.1.0 caused a regression on user-space; while the user-space
expects both the major and the minor versions to be identical with the
supported numbers, we changed the minor number from 0 to 1.

For recovering from the incompatibility, this patch changes the
protocol version again to 2.0.8, which is compatible, but yet higher
than the original number 2.0.7, indicating that the protocol change.

Fixes: bd3eb4e87eb3 ("ALSA: ctl: bump protocol version up to v2.1.0")
Reported-by: Paul Menzel <pmenzel@xxxxxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
---
include/uapi/sound/asound.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/uapi/sound/asound.h b/include/uapi/sound/asound.h
index e36dadaf84ba..30ebb2a42983 100644
--- a/include/uapi/sound/asound.h
+++ b/include/uapi/sound/asound.h
@@ -936,7 +936,7 @@ struct snd_timer_tread {
* *
****************************************************************************/
-#define SNDRV_CTL_VERSION SNDRV_PROTOCOL_VERSION(2, 1, 0)
+#define SNDRV_CTL_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 8)
struct snd_ctl_card_info {
int card; /* card number */


Tested-by: Paul Menzel <pmenzel@xxxxxxxxxxxxx>

Are there CI systems, which should have caught this problem?

Which user-space component should forward this problem to the user (desktop environment displaying a warning)?


Kind regards,

Paul