add udev rules for PAZ00

This commit is contained in:
Jaroslav Kysela 2018-09-07 13:20:25 +02:00
parent 4cc6303d53
commit bce19f4bab
2 changed files with 243 additions and 3 deletions

231
alsa-git.patch Normal file
View File

@ -0,0 +1,231 @@
From da4d5bd53a1a57d1b39318b83d3280fbcd78e9f6 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Tue, 15 May 2018 22:17:01 +0200
Subject: [PATCH 1/6] aplay: Fix invalid file size check for non-regular files
aplay tries to check the file size via fstat() at parsing the format
headers and avoids parsing when the size is shorter than the given
size. This works fine for regular files, but when a special file like
pipe is passed, it fails, eventually leading to the fallback mode
wrongly.
A proper fix is to do this sanity check only for a regular file.
Reported-by: Jay Foster <jay@systech.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
aplay/aplay.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/aplay/aplay.c b/aplay/aplay.c
index bbd7fff..63ec9ef 100644
--- a/aplay/aplay.c
+++ b/aplay/aplay.c
@@ -2821,7 +2821,8 @@ static int read_header(int *loaded, int header_size)
/* don't be adventurous, get out if file size is smaller than
* requested header size */
- if (buf.st_size < header_size)
+ if ((buf.st_mode & S_IFMT) == S_IFREG &&
+ buf.st_size < header_size)
return -1;
if (*loaded < header_size) {
--
2.13.6
From 0e2703cef90a2c53d49a49d5e9233aeb6db8960b Mon Sep 17 00:00:00 2001
From: Julian Scheel <julian@jusst.de>
Date: Wed, 23 May 2018 15:42:20 +0200
Subject: [PATCH 2/6] speaker-test: Support S24_3LE sample format
Implement support signed 24 bit samples, packed in 3 bytes.
Signed-off-by: Julian Scheel <julian@jusst.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
speaker-test/speaker-test.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c
index 65ab523..4804bcf 100644
--- a/speaker-test/speaker-test.c
+++ b/speaker-test/speaker-test.c
@@ -283,6 +283,8 @@ static const int supported_formats[] = {
SND_PCM_FORMAT_S16_LE,
SND_PCM_FORMAT_S16_BE,
SND_PCM_FORMAT_FLOAT_LE,
+ SND_PCM_FORMAT_S24_3LE,
+ SND_PCM_FORMAT_S24_3BE,
SND_PCM_FORMAT_S32_LE,
SND_PCM_FORMAT_S32_BE,
-1
@@ -325,6 +327,18 @@ static void do_generate(uint8_t *frames, int channel, int count,
case SND_PCM_FORMAT_FLOAT_LE:
*samp_f++ = res.f;
break;
+ case SND_PCM_FORMAT_S24_3LE:
+ res.i >>= 8;
+ *samp8++ = LE_INT(res.i);
+ *samp8++ = LE_INT(res.i) >> 8;
+ *samp8++ = LE_INT(res.i) >> 16;
+ break;
+ case SND_PCM_FORMAT_S24_3BE:
+ res.i >>= 8;
+ *samp8++ = BE_INT(res.i);
+ *samp8++ = BE_INT(res.i) >> 8;
+ *samp8++ = BE_INT(res.i) >> 16;
+ break;
case SND_PCM_FORMAT_S32_LE:
*samp32++ = LE_INT(res.i);
break;
--
2.13.6
From 98ff61743188101920cbf0b1b2e3cd6d015e3c83 Mon Sep 17 00:00:00 2001
From: Julian Scheel <julian@jusst.de>
Date: Wed, 23 May 2018 15:42:21 +0200
Subject: [PATCH 3/6] speaker-test: Remove unused variable
Signed-off-by: Julian Scheel <julian@jusst.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
speaker-test/speaker-test.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c
index 4804bcf..0cdecb3 100644
--- a/speaker-test/speaker-test.c
+++ b/speaker-test/speaker-test.c
@@ -300,7 +300,6 @@ static void do_generate(uint8_t *frames, int channel, int count,
{
value_t res;
int chn;
- int32_t ires;
int8_t *samp8 = (int8_t*) frames;
int16_t *samp16 = (int16_t*) frames;
int32_t *samp32 = (int32_t*) frames;
--
2.13.6
From a3d81b6beab1ad33ea02f7d3c19f894490a661b9 Mon Sep 17 00:00:00 2001
From: Julian Scheel <julian@jusst.de>
Date: Thu, 7 Jun 2018 11:10:55 +0200
Subject: [PATCH 4/6] speaker-test: Allow sampling rates up to 768000
There are audio devices around that support up to 768kHz playback, allow
testing them by increasing the maximum supported sampling rate.
Signed-off-by: Julian Scheel <julian@jusst.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
speaker-test/speaker-test.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c
index 0cdecb3..773af0a 100644
--- a/speaker-test/speaker-test.c
+++ b/speaker-test/speaker-test.c
@@ -1034,7 +1034,7 @@ int main(int argc, char *argv[]) {
case 'r':
rate = atoi(optarg);
rate = rate < 4000 ? 4000 : rate;
- rate = rate > 384000 ? 384000 : rate;
+ rate = rate > 768000 ? 768000 : rate;
break;
case 'c':
channels = atoi(optarg);
--
2.13.6
From f6b59282f7c3bddc6aa4aca93e8e19163955675b Mon Sep 17 00:00:00 2001
From: Jonathan Liu <net147@gmail.com>
Date: Sun, 5 Aug 2018 13:59:35 +1000
Subject: [PATCH 5/6] alsabat: Allow custom sample format for round trip
latency test
Setting the format to BAT_PCM_FORMAT_S16_LE in the round trip latency
test initialization is redundant as it is already set by default to
BAT_PCM_FORMAT_S16_LE unless a sample format is specified on the command
line.
Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
bat/latencytest.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/bat/latencytest.c b/bat/latencytest.c
index fae191c..ec3abe2 100644
--- a/bat/latencytest.c
+++ b/bat/latencytest.c
@@ -178,7 +178,6 @@ void roundtrip_latency_init(struct bat *bat)
bat->latency.is_playing = false;
bat->latency.error = 0;
bat->latency.xrun_error = false;
- bat->format = BAT_PCM_FORMAT_S16_LE;
bat->frames = LATENCY_TEST_TIME_LIMIT * bat->rate;
bat->periods_played = 0;
}
--
2.13.6
From 25bea6baf7097dc0a701b27587be88b0b54a529c Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Fri, 7 Sep 2018 10:53:19 +0200
Subject: [PATCH 6/6] alsaucm: add alsa-ucm udev rules for PAZ00 (Toshiba
AC100/Dynabook AZ).
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
---
.gitignore | 1 +
alsaucm/89-alsa-ucm.rules.in | 8 ++++++++
alsaucm/Makefile.am | 15 ++++++++++++++-
3 files changed, 23 insertions(+), 1 deletion(-)
create mode 100644 alsaucm/89-alsa-ucm.rules.in
diff --git a/alsaucm/89-alsa-ucm.rules.in b/alsaucm/89-alsa-ucm.rules.in
new file mode 100644
index 0000000..52a7616
--- /dev/null
+++ b/alsaucm/89-alsa-ucm.rules.in
@@ -0,0 +1,8 @@
+SUBSYSTEM!="sound", GOTO="ucm_end"
+ACTION!="change", GOTO="ucm_end"
+KERNEL!="card*", GOTO="ucm_end"
+
+ATTRS{id}=="PAZ00", RUN+="@bindir@/alsaucm -c PAZ00 set _verb HiFi"
+ATTRS{id}=="PAZ00", RUN+="@bindir@/alsaucm -c PAZ00 set _verb Record"
+
+LABEL="ucm_end"
diff --git a/alsaucm/Makefile.am b/alsaucm/Makefile.am
index ee0391e..651f678 100644
--- a/alsaucm/Makefile.am
+++ b/alsaucm/Makefile.am
@@ -15,4 +15,17 @@ alsaucm_LDADD = -lasound
%.1: %.rst
rst2man $< > $@
-EXTRA_DIST = alsaucm.rst
+udevrules_DATA = \
+ 89-alsa-ucm.rules
+
+edit = \
+ $(SED) -r -e 's,@bindir\@,$(bindir),g' \
+ -e 's,@mydatadir\@,$(mydatadir),g' \
+ < $< > $@ || rm $@
+
+89-alsa-ucm.rules: 89-alsa-ucm.rules.in
+ $(edit)
+
+EXTRA_DIST = alsaucm.rst 89-alsa-ucm.rules.in
+
+CLEANFILES = 89-alsa-ucm.rules
--
2.13.6

View File

@ -5,11 +5,12 @@
Summary: Advanced Linux Sound Architecture (ALSA) utilities Summary: Advanced Linux Sound Architecture (ALSA) utilities
Name: alsa-utils Name: alsa-utils
Version: %{baseversion}%{?fixversion} Version: %{baseversion}%{?fixversion}
Release: 3%{?dist} Release: 5%{?dist}
License: GPLv2+ License: GPLv2+
Group: Applications/Multimedia Group: Applications/Multimedia
URL: http://www.alsa-project.org/ URL: http://www.alsa-project.org/
Source: ftp://ftp.alsa-project.org/pub/utils/alsa-utils-%{version}.tar.bz2 Source: ftp://ftp.alsa-project.org/pub/utils/alsa-utils-%{version}.tar.bz2
Patch1: alsa-git.patch
Source4: alsaunmute Source4: alsaunmute
Source5: alsaunmute.1 Source5: alsaunmute.1
Source10: alsa.rules Source10: alsa.rules
@ -18,11 +19,12 @@ Source20: alsa-restore.service
Source22: alsa-state.service Source22: alsa-state.service
BuildRequires: gcc BuildRequires: gcc
BuildRequires: alsa-lib-devel >= %{baseversion} #BuildRequires: alsa-lib-devel >= %{baseversion}
BuildRequires: libsamplerate-devel BuildRequires: libsamplerate-devel
BuildRequires: ncurses-devel BuildRequires: ncurses-devel
BuildRequires: gettext-devel BuildRequires: gettext-devel
BuildRequires: xmlto BuildRequires: xmlto
BuildRequires: python2-docutils
BuildRequires: systemd BuildRequires: systemd
Requires(post): systemd Requires(post): systemd
Requires(preun): systemd Requires(preun): systemd
@ -45,6 +47,7 @@ Architecture (ALSA) framework and Fast Fourier Transform library.
%prep %prep
%setup -q -n %{name}-%{version} %setup -q -n %{name}-%{version}
%patch1 -p1
%build %build
%configure CFLAGS="$RPM_OPT_FLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" --disable-alsaconf \ %configure CFLAGS="$RPM_OPT_FLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" --disable-alsaconf \
@ -60,13 +63,15 @@ make install DESTDIR=%{buildroot}
# Install ALSA udev rules # Install ALSA udev rules
mkdir -p %{buildroot}/%{_prefix}/lib/udev/rules.d mkdir -p %{buildroot}/%{_prefix}/lib/udev/rules.d
install -p -m 644 %{SOURCE10} %{buildroot}/%{_prefix}/lib/udev/rules.d/90-alsa-restore.rules install -p -m 644 %{SOURCE10} %{buildroot}/%{_prefix}/lib/udev/rules.d/90-alsa-restore.rules
sed -e 's,@bindir@,%{_bindir},g' alsaucm/89-alsa-ucm.rules.in > alsaucm/89-alsa-ucm.rules
install -p -m 644 alsaucm/89-alsa-ucm.rules %{buildroot}/%{_prefix}/lib/udev/rules.d/89-alsa-ucm.rules
mkdir -p %{buildroot}/%{_unitdir} mkdir -p %{buildroot}/%{_unitdir}
install -p -m 644 %{SOURCE20} %{buildroot}/%{_unitdir}/alsa-restore.service install -p -m 644 %{SOURCE20} %{buildroot}/%{_unitdir}/alsa-restore.service
install -p -m 644 %{SOURCE22} %{buildroot}/%{_unitdir}/alsa-state.service install -p -m 644 %{SOURCE22} %{buildroot}/%{_unitdir}/alsa-state.service
# Install support utilities # Install support utilities
mkdir -p -m755 %{buildroot}/%{_bindir} mkdir -p -m755 %{buildroot}/%{_bindir}
install -p -m 755 alsaunmute %{buildroot}/%{_bindir} install -p -m 755 %{SOURCE4} %{buildroot}/%{_bindir}
mkdir -p -m755 %{buildroot}/%{_mandir}/man1 mkdir -p -m755 %{buildroot}/%{_mandir}/man1
install -p -m 644 %{SOURCE5} %{buildroot}/%{_mandir}/man1/alsaunmute.1 install -p -m 644 %{SOURCE5} %{buildroot}/%{_mandir}/man1/alsaunmute.1
@ -115,6 +120,7 @@ mkdir -p -m 755 %{buildroot}/var/lib/alsa
%{_mandir}/man1/alsaloop.1.gz %{_mandir}/man1/alsaloop.1.gz
%{_mandir}/man1/alsamixer.1.gz %{_mandir}/man1/alsamixer.1.gz
%{_mandir}/man1/alsaunmute.1.gz %{_mandir}/man1/alsaunmute.1.gz
%{_mandir}/man1/alsaucm.1.gz
%{_mandir}/man1/amidi.1.gz %{_mandir}/man1/amidi.1.gz
%{_mandir}/man1/amixer.1.gz %{_mandir}/man1/amixer.1.gz
%{_mandir}/man1/aplay.1.gz %{_mandir}/man1/aplay.1.gz
@ -160,6 +166,9 @@ fi
%systemd_postun_with_restart alsa-state.service %systemd_postun_with_restart alsa-state.service
%changelog %changelog
* Fri Sep 07 2018 Jaroslav Kysela <perex@perex.cz> - 1.1.6-5
- Added udev rules for PAZ00
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.6-3 * Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild