diff --git a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
index ec51d8b..c7f3e67 100644
--- a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
+++ b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -56,13 +56,21 @@
                     file://src/pulsecore/filter/biquad.h;beginline=1;endline=4;md5=6d46d1365206528a20137355924233c1 \
 "
 
-DEPENDS = "libatomic-ops libsndfile1 libtool intltool-native"
+DEPENDS = "libatomic-ops libsndfile1 libtool"
 # optional
 DEPENDS += "udev alsa-lib glib-2.0"
 DEPENDS += "speexdsp libxml-parser-perl-native libcap"
 
 inherit autotools bash-completion pkgconfig useradd gettext perlnative systemd manpages gsettings
 
+# When compiling for Thumb or Thumb2, frame pointers _must_ be disabled since the
+# Thumb frame pointer in r7 clashes with pulseaudio's use of inline asm to make syscalls
+# (where r7 is used for the syscall NR). In most cases, frame pointers will be
+# disabled automatically due to the optimisation level, but append an explicit
+# -fomit-frame-pointer to handle cases where optimisation is set to -O0 or frame
+# pointers have been enabled by -fno-omit-frame-pointer earlier in CFLAGS, etc.
+CFLAGS_append_arm = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
+
 # *.desktop rules wont be generated during configure and build will fail
 # if using --disable-nls
 USE_NLS = "yes"
@@ -158,12 +166,22 @@
                               --no-create-home --shell /bin/false \
                               --groups audio,pulse --gid pulse pulse"
 
+PACKAGES =+ "\
+             libpulse \
+             libpulse-mainloop-glib \
+             libpulse-simple \
+             libpulsecommon \
+             libpulsecore \
+             ${PN}-pa-info \
+             ${PN}-server \
+             ${PN}-misc \
+             "
+
 # The console-kit module is included here explicitly so bitbake can map to the
 # RDEPENDS we define for it in this recipe, and thereby ensure that when
 # adding the console-kit module to an image, we also get the necessary
 # consolekit package produced.
-PACKAGES =+ "libpulsecore libpulsecommon libpulse libpulse-simple libpulse-mainloop-glib \
-             pulseaudio-server pulseaudio-misc ${@bb.utils.contains('PACKAGECONFIG', 'dbus', 'pulseaudio-module-console-kit', '', d)}"
+PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'dbus', 'pulseaudio-module-console-kit', '', d)}"
 
 #upgrade path:
 RREPLACES_pulseaudio-server = "libpulse-bin libpulse-conf"
@@ -183,6 +201,7 @@
 FILES_${PN}-dev += "${libdir}/pulse-${PV}/modules/*.la ${datadir}/vala ${libdir}/cmake"   
 FILES_${PN}-conf = "${sysconfdir}"
 FILES_${PN}-bin += "${sysconfdir}/default/volatiles/volatiles.04_pulse"
+FILES_${PN}-pa-info = "${bindir}/pa-info"
 FILES_${PN}-server = "${bindir}/pulseaudio ${bindir}/start-* ${sysconfdir} ${bindir}/pactl */udev/rules.d/*.rules */*/udev/rules.d/*.rules ${systemd_user_unitdir}/*"
 
 #SYSTEMD_PACKAGES = "${PN}-server"
@@ -214,6 +233,16 @@
     do_split_packages(d, plugindir, r'^lib(.*)\.so$', '${PN}-lib-%s', 'PulseAudio library for %s', extra_depends='', prepend=True)
 }
 
+# pa-info is a bash script that collects information about the audio setup.
+# It's primarily useful for attaching an information dump when reporting bugs.
+RDEPENDS_${PN}-pa-info = "\
+                          alsa-utils-amixer \
+                          alsa-utils-aplay \
+                          alsa-utils-scripts \
+                          bash \
+                          ${PN}-server \
+                          "
+
 RDEPENDS_pulseaudio-server = " \
     pulseaudio-module-filter-apply \
     pulseaudio-module-filter-heuristics \
diff --git a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-alsa-Fix-inclusion-of-use-case.h.patch b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-alsa-Fix-inclusion-of-use-case.h.patch
deleted file mode 100644
index 15026a2..0000000
--- a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-alsa-Fix-inclusion-of-use-case.h.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From b89d33bb182c42db5ad3987b0e91b7bf62f421e8 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai@suse.de>
-Date: Sun, 21 Apr 2019 11:59:30 +0200
-Subject: [PATCH] alsa: Fix inclusion of use-case.h
-
-The recent change in ALSA upstream stripped -I$include/alsa path from
-pkgconfig.  We already fixed for this change in some places but still
-the code for UCM was overlooked, and this resulted in the unresolved
-symbols in alsa card module. Fix them as well.
-
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Upstream-Status: Backport
----
- configure.ac                | 2 +-
- src/modules/alsa/alsa-ucm.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index c004bd70d..b44ed1595 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -826,7 +826,7 @@ AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"],
- AS_IF([test "x$HAVE_ALSA" = "x1"],
-     [
-         save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $ASOUNDLIB_CFLAGS"
--        AC_CHECK_HEADERS([use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0)
-+        AC_CHECK_HEADERS([alsa/use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0)
-         CPPFLAGS="$save_CPPFLAGS"
-     ],
-     HAVE_ALSA_UCM=0)
-diff --git a/src/modules/alsa/alsa-ucm.h b/src/modules/alsa/alsa-ucm.h
-index 53abf3f90..c926f3cc3 100644
---- a/src/modules/alsa/alsa-ucm.h
-+++ b/src/modules/alsa/alsa-ucm.h
-@@ -23,7 +23,7 @@
- ***/
- 
- #ifdef HAVE_ALSA_UCM
--#include <use-case.h>
-+#include <alsa/use-case.h>
- #else
- typedef void snd_use_case_mgr_t;
- #endif
--- 
-2.21.0
-
diff --git a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-introduce-a-special-build-flag-to-explicitly-disable.patch b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-introduce-a-special-build-flag-to-explicitly-disable.patch
deleted file mode 100644
index b7e9cd8..0000000
--- a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-introduce-a-special-build-flag-to-explicitly-disable.patch
+++ /dev/null
@@ -1,161 +0,0 @@
-From 36feb98e568221e24286615730888d5f6ff323f0 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Fri, 7 Dec 2018 15:12:38 +0800
-Subject: [PATCH] introduce a special build flag to explicitly disables running
- from build tree
-
-It is helpful to improve reproducibility build [1] since
-PA_SRCDIR/PA_BUILDDIR contains build path, disable running
-from build tree could drop these macros at precompilation.
-
-[1] https://reproducible-builds.org/
-
-Upstream-Status: Submitted [pulseaudio-discuss@lists.freedesktop.org]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-Acked-by: Tanu Kaskinen <tanuk@iki.fi>
----
- configure.ac                             | 10 ++++++++++
- src/daemon/daemon-conf.c                 |  4 +++-
- src/daemon/main.c                        |  6 ++++++
- src/modules/alsa/alsa-mixer.c            |  4 ++++
- src/modules/gconf/module-gconf.c         |  2 +-
- src/modules/gsettings/module-gsettings.c |  2 +-
- src/pulsecore/core-util.c                |  4 +++-
- 7 files changed, 28 insertions(+), 4 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index c9c414f..8b345ef 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -998,6 +998,16 @@ AS_IF([test "x$enable_asyncns" = "xyes" && test "x$HAVE_LIBASYNCNS" = "x0"],
- AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
- AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?]))
- 
-+#### Running from build tree (optional) ####
-+
-+AC_ARG_ENABLE([running-from-build-tree],
-+    AS_HELP_STRING([--disable-running-from-build-tree],[Disable running from build tree]))
-+
-+AS_IF([test "x$enable_running_from_build_tree" != "xno"],
-+      AC_DEFINE([HAVE_RUNNING_FROM_BUILD_TREE], 1, [Have running from build tree]))
-+
-+AC_SUBST(HAVE_RUNNING_FROM_BUILD_TREE)
-+
- #### TCP wrappers (optional) ####
- 
- AC_ARG_ENABLE([tcpwrap],
-diff --git a/src/daemon/daemon-conf.c b/src/daemon/daemon-conf.c
-index 9883126..f01eff4 100644
---- a/src/daemon/daemon-conf.c
-+++ b/src/daemon/daemon-conf.c
-@@ -155,12 +155,14 @@ pa_daemon_conf *pa_daemon_conf_new(void) {
-     c->dl_search_path = pa_sprintf_malloc("%s" PA_PATH_SEP "lib" PA_PATH_SEP "pulse-%d.%d" PA_PATH_SEP "modules",
-                                           pa_win32_get_toplevel(NULL), PA_MAJOR, PA_MINOR);
- #else
-+#ifdef HAVE_RUNNING_FROM_BUILD_TREE
-     if (pa_run_from_build_tree()) {
-         pa_log_notice("Detected that we are run from the build tree, fixing search path.");
-         c->dl_search_path = pa_xstrdup(PA_BUILDDIR);
-     } else
--        c->dl_search_path = pa_xstrdup(PA_DLSEARCHPATH);
- #endif
-+        c->dl_search_path = pa_xstrdup(PA_DLSEARCHPATH);
-+#endif //Endof #ifdef OS_IS_WIN32
- 
-     return c;
- }
-diff --git a/src/daemon/main.c b/src/daemon/main.c
-index c80fa94..1e00388 100644
---- a/src/daemon/main.c
-+++ b/src/daemon/main.c
-@@ -932,6 +932,12 @@ int main(int argc, char *argv[]) {
- 
-     pa_log_debug("Running in VM: %s", pa_yes_no(pa_running_in_vm()));
- 
-+#ifdef HAVE_RUNNING_FROM_BUILD_TREE
-+    pa_log_debug("Running from build tree: %s", pa_yes_no(pa_run_from_build_tree()));
-+#else
-+    pa_log_debug("Running from build tree: no");
-+#endif
-+
- #ifdef __OPTIMIZE__
-     pa_log_debug("Optimized build: yes");
- #else
-diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c
-index a524d6d..670f646 100644
---- a/src/modules/alsa/alsa-mixer.c
-+++ b/src/modules/alsa/alsa-mixer.c
-@@ -2571,9 +2571,11 @@ static int path_verify(pa_alsa_path *p) {
- }
- 
- static const char *get_default_paths_dir(void) {
-+#ifdef HAVE_RUNNING_FROM_BUILD_TREE
-     if (pa_run_from_build_tree())
-         return PA_SRCDIR "/modules/alsa/mixer/paths/";
-     else
-+#endif
-         return PA_ALSA_PATHS_DIR;
- }
- 
-@@ -4455,7 +4457,9 @@ pa_alsa_profile_set* pa_alsa_profile_set_new(const char *fname, const pa_channel
-         fname = "default.conf";
- 
-     fn = pa_maybe_prefix_path(fname,
-+#ifdef HAVE_RUNNING_FROM_BUILD_TREE
-                               pa_run_from_build_tree() ? PA_SRCDIR "/modules/alsa/mixer/profile-sets/" :
-+#endif
-                               PA_ALSA_PROFILE_SETS_DIR);
- 
-     r = pa_config_parse(fn, NULL, items, NULL, false, ps);
-diff --git a/src/modules/gconf/module-gconf.c b/src/modules/gconf/module-gconf.c
-index c0f4dde..76a1f19 100644
---- a/src/modules/gconf/module-gconf.c
-+++ b/src/modules/gconf/module-gconf.c
-@@ -51,7 +51,7 @@ int pa__init(pa_module*m) {
-     u->buf_fill = 0;
- 
-     if ((u->fd = pa_start_child_for_read(
--#if defined(__linux__) && !defined(__OPTIMIZE__)
-+#if defined(__linux__) && defined(HAVE_RUNNING_FROM_BUILD_TREE)
-                               pa_run_from_build_tree() ? PA_BUILDDIR "/gconf-helper" :
- #endif
-                  PA_GCONF_HELPER, NULL, &u->pid)) < 0)
-diff --git a/src/modules/gsettings/module-gsettings.c b/src/modules/gsettings/module-gsettings.c
-index 330eca1..209c857 100644
---- a/src/modules/gsettings/module-gsettings.c
-+++ b/src/modules/gsettings/module-gsettings.c
-@@ -51,7 +51,7 @@ int pa__init(pa_module*m) {
-     u->buf_fill = 0;
- 
-     if ((u->fd = pa_start_child_for_read(
--#if defined(__linux__) && !defined(__OPTIMIZE__)
-+#if defined(__linux__) && defined(HAVE_RUNNING_FROM_BUILD_TREE)
-                               pa_run_from_build_tree() ? PA_BUILDDIR "/gsettings-helper" :
- #endif
-                  PA_GSETTINGS_HELPER, NULL, &u->pid)) < 0)
-diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c
-index 64e9f21..f85dd20 100644
---- a/src/pulsecore/core-util.c
-+++ b/src/pulsecore/core-util.c
-@@ -3436,15 +3436,17 @@ void pa_reset_personality(void) {
- }
- 
- bool pa_run_from_build_tree(void) {
--    char *rp;
-     static bool b = false;
- 
-+#ifdef HAVE_RUNNING_FROM_BUILD_TREE
-+    char *rp;
-     PA_ONCE_BEGIN {
-         if ((rp = pa_readlink("/proc/self/exe"))) {
-             b = pa_startswith(rp, PA_BUILDDIR);
-             pa_xfree(rp);
-         }
-     } PA_ONCE_END;
-+#endif
- 
-     return b;
- }
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap-arm-Adjust-inline-asm-constraints.patch b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap-arm-Adjust-inline-asm-constraints.patch
new file mode 100644
index 0000000..95133fd
--- /dev/null
+++ b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap-arm-Adjust-inline-asm-constraints.patch
@@ -0,0 +1,114 @@
+From 3450d1fcfe8a8f84553ab299cd96ae0705ddffbe Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 5 Mar 2020 11:48:28 -0800
+Subject: [PATCH] remap/arm: Adjust inline asm constraints
+
+gcc10 can effectively emit single precision registers if right
+operand modifier constraint is not in use
+
+This results in assembler rejecting the code
+
+/tmp/ccEG4QpI.s:646: Error: VFP/Neon double precision register expected -- `vtbl.8 d3,{d0,d1},s8'
+/tmp/ccEG4QpI.s:678: Error: invalid instruction shape -- `vmul.f32 d0,d0,s8'
+
+Therefore add %P qualifier to request double registers sinece 'w' could
+mean variable could be stored in s0..s14 and GCC defaults to printing out s0..s14.
+Note those registers map to d0..d7 also.
+
+Output generated is exactly same with gcc9, and it also now compiles
+with gcc10
+
+Its not documented well in gcc docs and there is a ticket for that
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84343
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/261]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/pulsecore/remap_neon.c | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/src/pulsecore/remap_neon.c b/src/pulsecore/remap_neon.c
+index 41208986d..ca3b95b48 100644
+--- a/src/pulsecore/remap_neon.c
++++ b/src/pulsecore/remap_neon.c
+@@ -189,7 +189,7 @@ static void remap_ch4_to_mono_float32ne_neon(pa_remap_t *m, float *dst, const fl
+             "vadd.f32   d0, d0, d1              \n\t"
+             "vadd.f32   d2, d2, d3              \n\t"
+             "vadd.f32   d0, d0, d2              \n\t"
+-            "vmul.f32   d0, d0, %[quart]        \n\t"
++            "vmul.f32   d0, d0, %P[quart]       \n\t"
+             "vst1.32    {d0}, [%[dst]]!         \n\t"
+             : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
+             : [quart] "w" (quart) /* input operands */
+@@ -276,7 +276,7 @@ static void remap_arrange_stereo_s16ne_neon(pa_remap_t *m, int16_t *dst, const i
+     for (; n >= 2; n -= 2) {
+         __asm__ __volatile__ (
+             "vld1.s16   d0, [%[src]]!           \n\t"
+-            "vtbl.8     d0, {d0}, %[t]          \n\t"
++            "vtbl.8     d0, {d0}, %P[t]         \n\t"
+             "vst1.s16   d0, [%[dst]]!           \n\t"
+             : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
+             : [t] "w" (t) /* input operands */
+@@ -287,7 +287,7 @@ static void remap_arrange_stereo_s16ne_neon(pa_remap_t *m, int16_t *dst, const i
+     if (n > 0) {
+         __asm__ __volatile__ (
+             "vld1.32   d0[0], [%[src]]!         \n\t"
+-            "vtbl.8    d0, {d0}, %[t]           \n\t"
++            "vtbl.8    d0, {d0}, %P[t]          \n\t"
+             "vst1.32   d0[0], [%[dst]]!         \n\t"
+             : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
+             : [t] "w" (t) /* input operands */
+@@ -302,8 +302,8 @@ static void remap_arrange_ch2_ch4_s16ne_neon(pa_remap_t *m, int16_t *dst, const
+     for (; n > 0; n--) {
+         __asm__ __volatile__ (
+             "vld1.32    d0[0], [%[src]]!           \n\t"
+-            "vtbl.8     d0, {d0}, %[t]          \n\t"
+-            "vst1.s16   d0, [%[dst]]!           \n\t"
++            "vtbl.8     d0, {d0}, %P[t]            \n\t"
++            "vst1.s16   d0, [%[dst]]!              \n\t"
+             : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
+             : [t] "w" (t) /* input operands */
+             : "memory", "d0" /* clobber list */
+@@ -317,7 +317,7 @@ static void remap_arrange_ch4_s16ne_neon(pa_remap_t *m, int16_t *dst, const int1
+     for (; n > 0; n--) {
+         __asm__ __volatile__ (
+             "vld1.s16   d0, [%[src]]!           \n\t"
+-            "vtbl.8     d0, {d0}, %[t]          \n\t"
++            "vtbl.8     d0, {d0}, %P[t]         \n\t"
+             "vst1.s16   d0, [%[dst]]!           \n\t"
+             : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
+             : [t] "w" (t) /* input operands */
+@@ -332,7 +332,7 @@ static void remap_arrange_stereo_float32ne_neon(pa_remap_t *m, float *dst, const
+     for (; n > 0; n--) {
+         __asm__ __volatile__ (
+             "vld1.f32   d0, [%[src]]!           \n\t"
+-            "vtbl.8     d0, {d0}, %[t]          \n\t"
++            "vtbl.8     d0, {d0}, %P[t]         \n\t"
+             "vst1.s16   {d0}, [%[dst]]!         \n\t"
+             : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
+             : [t] "w" (t) /* input operands */
+@@ -349,8 +349,8 @@ static void remap_arrange_ch2_ch4_any32ne_neon(pa_remap_t *m, float *dst, const
+     for (; n > 0; n--) {
+         __asm__ __volatile__ (
+             "vld1.f32   d0, [%[src]]!           \n\t"
+-            "vtbl.8     d1, {d0}, %[t0]         \n\t"
+-            "vtbl.8     d2, {d0}, %[t1]         \n\t"
++            "vtbl.8     d1, {d0}, %P[t0]        \n\t"
++            "vtbl.8     d2, {d0}, %P[t1]        \n\t"
+             "vst1.s16   {d1,d2}, [%[dst]]!      \n\t"
+             : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
+             : [t0] "w" (t0), [t1] "w" (t1) /* input operands */
+@@ -366,8 +366,8 @@ static void remap_arrange_ch4_float32ne_neon(pa_remap_t *m, float *dst, const fl
+     for (; n > 0; n--) {
+         __asm__ __volatile__ (
+             "vld1.f32   {d0,d1}, [%[src]]!      \n\t"
+-            "vtbl.8     d2, {d0,d1}, %[t0]      \n\t"
+-            "vtbl.8     d3, {d0,d1}, %[t1]      \n\t"
++            "vtbl.8     d2, {d0,d1}, %P[t0]     \n\t"
++            "vtbl.8     d3, {d0,d1}, %P[t1]     \n\t"
+             "vst1.s16   {d2,d3}, [%[dst]]!      \n\t"
+             : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
+             : [t0] "w" (t0), [t1] "w" (t1) /* input operands */
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_12.2.bb b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_12.2.bb
deleted file mode 100644
index 88b4975..0000000
--- a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_12.2.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-require pulseaudio.inc
-
-SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \
-           file://0001-client-conf-Add-allow-autospawn-for-root.patch \
-           file://0001-introduce-a-special-build-flag-to-explicitly-disable.patch \
-           file://0001-alsa-Fix-inclusion-of-use-case.h.patch \
-           file://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \
-           file://volatiles.04_pulse \
-           "
-SRC_URI[md5sum] = "c42f1f1465e8df9859d023dc184734bf"
-SRC_URI[sha256sum] = "809668ffc296043779c984f53461c2b3987a45b7a25eb2f0a1d11d9f23ba4055"
-
-do_compile_prepend() {
-    mkdir -p ${S}/libltdl
-    cp ${STAGING_LIBDIR}/libltdl* ${S}/libltdl
-}
diff --git a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb
new file mode 100644
index 0000000..601499b
--- /dev/null
+++ b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb
@@ -0,0 +1,15 @@
+require pulseaudio.inc
+
+SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \
+           file://0001-client-conf-Add-allow-autospawn-for-root.patch \
+           file://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \
+           file://0001-remap-arm-Adjust-inline-asm-constraints.patch \
+           file://volatiles.04_pulse \
+           "
+SRC_URI[md5sum] = "e41d606f90254ed45c90520faf83d95c"
+SRC_URI[sha256sum] = "961b23ca1acfd28f2bc87414c27bb40e12436efcf2158d29721b1e89f3f28057"
+
+do_compile_prepend() {
+    mkdir -p ${S}/libltdl
+    cp ${STAGING_LIBDIR}/libltdl* ${S}/libltdl
+}
