summaryrefslogtreecommitdiffstats
path: root/meta/recipes-multimedia/pulseaudio
diff options
context:
space:
mode:
authorzangrc <zangrc.fnst@cn.fujitsu.com>2020-11-27 17:19:07 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-11-29 20:24:32 +0000
commit098d5bbafae4b0734d642373e1b974be3b876d26 (patch)
tree3c01bf04e1b478ddde572b530b43cfac9faa2273 /meta/recipes-multimedia/pulseaudio
parentaa82a10a0b901054cc173aecaa0872216505d2f6 (diff)
downloadpoky-098d5bbafae4b0734d642373e1b974be3b876d26.tar.gz
pulseaudio: upgrade 13.0 -> 14.0
0001-remap-arm-Adjust-inline-asm-constraints.patch 0001-remap_neon-use-register-r12-instead-of-r7.patch Removed since these are included in 14.0. (From OE-Core rev: 5ae2156d971ddd18f13a4377b4f9cc99bd4173fe) Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-multimedia/pulseaudio')
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap-arm-Adjust-inline-asm-constraints.patch114
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch48
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio_14.0.bb (renamed from meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb)6
3 files changed, 2 insertions, 166 deletions
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap-arm-Adjust-inline-asm-constraints.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap-arm-Adjust-inline-asm-constraints.patch
deleted file mode 100644
index 95133fd9d4..0000000000
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap-arm-Adjust-inline-asm-constraints.patch
+++ /dev/null
@@ -1,114 +0,0 @@
1From 3450d1fcfe8a8f84553ab299cd96ae0705ddffbe Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 5 Mar 2020 11:48:28 -0800
4Subject: [PATCH] remap/arm: Adjust inline asm constraints
5
6gcc10 can effectively emit single precision registers if right
7operand modifier constraint is not in use
8
9This results in assembler rejecting the code
10
11/tmp/ccEG4QpI.s:646: Error: VFP/Neon double precision register expected -- `vtbl.8 d3,{d0,d1},s8'
12/tmp/ccEG4QpI.s:678: Error: invalid instruction shape -- `vmul.f32 d0,d0,s8'
13
14Therefore add %P qualifier to request double registers sinece 'w' could
15mean variable could be stored in s0..s14 and GCC defaults to printing out s0..s14.
16Note those registers map to d0..d7 also.
17
18Output generated is exactly same with gcc9, and it also now compiles
19with gcc10
20
21Its not documented well in gcc docs and there is a ticket for that
22https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84343
23
24Upstream-Status: Submitted [https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/261]
25Signed-off-by: Khem Raj <raj.khem@gmail.com>
26---
27 src/pulsecore/remap_neon.c | 22 +++++++++++-----------
28 1 file changed, 11 insertions(+), 11 deletions(-)
29
30diff --git a/src/pulsecore/remap_neon.c b/src/pulsecore/remap_neon.c
31index 41208986d..ca3b95b48 100644
32--- a/src/pulsecore/remap_neon.c
33+++ b/src/pulsecore/remap_neon.c
34@@ -189,7 +189,7 @@ static void remap_ch4_to_mono_float32ne_neon(pa_remap_t *m, float *dst, const fl
35 "vadd.f32 d0, d0, d1 \n\t"
36 "vadd.f32 d2, d2, d3 \n\t"
37 "vadd.f32 d0, d0, d2 \n\t"
38- "vmul.f32 d0, d0, %[quart] \n\t"
39+ "vmul.f32 d0, d0, %P[quart] \n\t"
40 "vst1.32 {d0}, [%[dst]]! \n\t"
41 : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
42 : [quart] "w" (quart) /* input operands */
43@@ -276,7 +276,7 @@ static void remap_arrange_stereo_s16ne_neon(pa_remap_t *m, int16_t *dst, const i
44 for (; n >= 2; n -= 2) {
45 __asm__ __volatile__ (
46 "vld1.s16 d0, [%[src]]! \n\t"
47- "vtbl.8 d0, {d0}, %[t] \n\t"
48+ "vtbl.8 d0, {d0}, %P[t] \n\t"
49 "vst1.s16 d0, [%[dst]]! \n\t"
50 : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
51 : [t] "w" (t) /* input operands */
52@@ -287,7 +287,7 @@ static void remap_arrange_stereo_s16ne_neon(pa_remap_t *m, int16_t *dst, const i
53 if (n > 0) {
54 __asm__ __volatile__ (
55 "vld1.32 d0[0], [%[src]]! \n\t"
56- "vtbl.8 d0, {d0}, %[t] \n\t"
57+ "vtbl.8 d0, {d0}, %P[t] \n\t"
58 "vst1.32 d0[0], [%[dst]]! \n\t"
59 : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
60 : [t] "w" (t) /* input operands */
61@@ -302,8 +302,8 @@ static void remap_arrange_ch2_ch4_s16ne_neon(pa_remap_t *m, int16_t *dst, const
62 for (; n > 0; n--) {
63 __asm__ __volatile__ (
64 "vld1.32 d0[0], [%[src]]! \n\t"
65- "vtbl.8 d0, {d0}, %[t] \n\t"
66- "vst1.s16 d0, [%[dst]]! \n\t"
67+ "vtbl.8 d0, {d0}, %P[t] \n\t"
68+ "vst1.s16 d0, [%[dst]]! \n\t"
69 : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
70 : [t] "w" (t) /* input operands */
71 : "memory", "d0" /* clobber list */
72@@ -317,7 +317,7 @@ static void remap_arrange_ch4_s16ne_neon(pa_remap_t *m, int16_t *dst, const int1
73 for (; n > 0; n--) {
74 __asm__ __volatile__ (
75 "vld1.s16 d0, [%[src]]! \n\t"
76- "vtbl.8 d0, {d0}, %[t] \n\t"
77+ "vtbl.8 d0, {d0}, %P[t] \n\t"
78 "vst1.s16 d0, [%[dst]]! \n\t"
79 : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
80 : [t] "w" (t) /* input operands */
81@@ -332,7 +332,7 @@ static void remap_arrange_stereo_float32ne_neon(pa_remap_t *m, float *dst, const
82 for (; n > 0; n--) {
83 __asm__ __volatile__ (
84 "vld1.f32 d0, [%[src]]! \n\t"
85- "vtbl.8 d0, {d0}, %[t] \n\t"
86+ "vtbl.8 d0, {d0}, %P[t] \n\t"
87 "vst1.s16 {d0}, [%[dst]]! \n\t"
88 : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
89 : [t] "w" (t) /* input operands */
90@@ -349,8 +349,8 @@ static void remap_arrange_ch2_ch4_any32ne_neon(pa_remap_t *m, float *dst, const
91 for (; n > 0; n--) {
92 __asm__ __volatile__ (
93 "vld1.f32 d0, [%[src]]! \n\t"
94- "vtbl.8 d1, {d0}, %[t0] \n\t"
95- "vtbl.8 d2, {d0}, %[t1] \n\t"
96+ "vtbl.8 d1, {d0}, %P[t0] \n\t"
97+ "vtbl.8 d2, {d0}, %P[t1] \n\t"
98 "vst1.s16 {d1,d2}, [%[dst]]! \n\t"
99 : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
100 : [t0] "w" (t0), [t1] "w" (t1) /* input operands */
101@@ -366,8 +366,8 @@ static void remap_arrange_ch4_float32ne_neon(pa_remap_t *m, float *dst, const fl
102 for (; n > 0; n--) {
103 __asm__ __volatile__ (
104 "vld1.f32 {d0,d1}, [%[src]]! \n\t"
105- "vtbl.8 d2, {d0,d1}, %[t0] \n\t"
106- "vtbl.8 d3, {d0,d1}, %[t1] \n\t"
107+ "vtbl.8 d2, {d0,d1}, %P[t0] \n\t"
108+ "vtbl.8 d3, {d0,d1}, %P[t1] \n\t"
109 "vst1.s16 {d2,d3}, [%[dst]]! \n\t"
110 : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
111 : [t0] "w" (t0), [t1] "w" (t1) /* input operands */
112--
1132.25.1
114
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch
deleted file mode 100644
index aaa162f9b0..0000000000
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch
+++ /dev/null
@@ -1,48 +0,0 @@
1From 4a1668f341f0228904105f77fe5871b9d59b2663 Mon Sep 17 00:00:00 2001
2From: Tanu Kaskinen <tanuk@iki.fi>
3Date: Mon, 13 Jul 2020 12:42:14 +0300
4Subject: [PATCH] remap_neon: use register r12 instead of r7
5
6When the Thumb instructions set is used and frame pointers are enabled
7(-fno-omit-frame-pointer), r7 can't be used, because it's used for the
8frame pointer. Trying to use r7 caused the compilation to fail.
9
10Thanks to Andre McCurdy for suggesting[1] this fix, all I had to do was to
11test that it works. The code builds now, and cpu-remap-test also
12succeeds.
13
14[1] https://lists.openembedded.org/g/openembedded-core/message/136786
15
16Upstream-Status: Submitted [https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/324]
17
18Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
19---
20 src/pulsecore/remap_neon.c | 10 +++++++---
21 1 file changed, 7 insertions(+), 3 deletions(-)
22
23diff --git a/src/pulsecore/remap_neon.c b/src/pulsecore/remap_neon.c
24index ca3b95b48..6f71345f8 100644
25--- a/src/pulsecore/remap_neon.c
26+++ b/src/pulsecore/remap_neon.c
27@@ -52,11 +52,15 @@ static void remap_mono_to_stereo_float32ne_generic_arm(pa_remap_t *m, float *dst
28 __asm__ __volatile__ (
29 "ldm %[src]!, {r4,r6} \n\t"
30 "mov r5, r4 \n\t"
31- "mov r7, r6 \n\t"
32- "stm %[dst]!, {r4-r7} \n\t"
33+
34+ /* We use r12 instead of r7 here, because r7 is reserved for the
35+ * frame pointer when using Thumb. */
36+ "mov r12, r6 \n\t"
37+
38+ "stm %[dst]!, {r4-r6,r12} \n\t"
39 : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
40 : /* input operands */
41- : "memory", "r4", "r5", "r6", "r7" /* clobber list */
42+ : "memory", "r4", "r5", "r6", "r12" /* clobber list */
43 );
44 }
45
46--
472.20.1
48
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb b/meta/recipes-multimedia/pulseaudio/pulseaudio_14.0.bb
index 53e9a2357d..ac0c82e37d 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio_14.0.bb
@@ -3,10 +3,8 @@ require pulseaudio.inc
3SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \ 3SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \
4 file://0001-client-conf-Add-allow-autospawn-for-root.patch \ 4 file://0001-client-conf-Add-allow-autospawn-for-root.patch \
5 file://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \ 5 file://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \
6 file://0001-remap-arm-Adjust-inline-asm-constraints.patch \
7 file://0001-remap_neon-use-register-r12-instead-of-r7.patch \
8 file://volatiles.04_pulse \ 6 file://volatiles.04_pulse \
9 " 7 "
10SRC_URI[md5sum] = "e41d606f90254ed45c90520faf83d95c" 8SRC_URI[md5sum] = "84a7776e63dd55c40db8fbd7c7e2e18e"
11SRC_URI[sha256sum] = "961b23ca1acfd28f2bc87414c27bb40e12436efcf2158d29721b1e89f3f28057" 9SRC_URI[sha256sum] = "a834775d9382b055504e5ee7625dc50768daac29329531deb6597bf05e06c261"
12UPSTREAM_CHECK_REGEX = "pulseaudio-(?P<pver>\d+(\.(?!99)\d+)+)\.tar" 10UPSTREAM_CHECK_REGEX = "pulseaudio-(?P<pver>\d+(\.(?!99)\d+)+)\.tar"