diff --git a/community/libcrystalhd/APKBUILD b/community/libcrystalhd/APKBUILD
index eadf0f116dfee3a8f4c6eb3e6c4bc19787a7c504..5bf3b481d84a9a321cb319c5c01529b3f1df7968 100644
--- a/community/libcrystalhd/APKBUILD
+++ b/community/libcrystalhd/APKBUILD
@@ -6,13 +6,17 @@ _date=$pkgver
 pkgrel=3
 pkgdesc="Broadcom CrystalHD kernel driver library"
 url="https://git.linuxtv.org/jarod/crystalhd.git"
-arch="x86 x86_64"
+arch="x86 x86_64 aarch64"
 license="LGPL-2.1-only"
 options="!check" # No test suite
 makedepends="linux-headers"
 subpackages="$pkgname-dev"
+_sse2neon_commit="34527ec22a73cb85bb7060848147eb4c2be82e3a"
+
 source="https://dev.alpinelinux.org/archive/libcrystalhd/libcrystalhd-$_date.tar.gz
+	sse2neon-$_sse2neon_commit.h::https://github.com/DLTcollab/sse2neon/raw/$_sse2neon_commit/sse2neon.h
 	gcc-opts-fix.patch
+	libcrystalhd_alpine_aarch64.patch
 	"
 
 _giturl="git://linuxtv.org/jarod/crystalhd.git"
@@ -37,6 +41,11 @@ snapshot() {
 	abuild checksum
 }
 
+prepare() {
+	default_prepare
+	cp "$srcdir"/sse2neon-$_sse2neon_commit.h "$builddir"/sse2neon.h
+}
+
 build() {
 	msg "Building library"
 	make
@@ -47,4 +56,6 @@ package() {
 }
 
 sha512sums="70a84f8102250a797b658153d7cd2ed2b05d00d801b52a0b6f877e0feecd55a83c32032c5b66dba8cb53863dabc5536dde6405087403d8fe730c27f6ea3ee1b2  libcrystalhd-20130708.tar.gz
-8ff2710dfd1580d1dc05a67e2bf07679f37de67768df6267a7037bc25f94a4ea46be4c52057b4a849fe8774bd9c80f75df8f95a62eeec2f7b7a1e6622f6d9bae  gcc-opts-fix.patch"
+f623fefd128c7c42b9f49e1aa359ac18727ef8b81f17ad8036e9fd3aadf803cb743e0116f1408dd49abecd13609ee5c19d90a23fb6ead1c059d4be3010bfcb8a  sse2neon-34527ec22a73cb85bb7060848147eb4c2be82e3a.h
+8ff2710dfd1580d1dc05a67e2bf07679f37de67768df6267a7037bc25f94a4ea46be4c52057b4a849fe8774bd9c80f75df8f95a62eeec2f7b7a1e6622f6d9bae  gcc-opts-fix.patch
+9f7a877a1c5281af7265a509712e9885b7c80034db9cdeb511a9cde12e8bcef336d4f548ea25ea403a220630c5a3a142c93684aa0a59c8769cab5355bc1fe44f  libcrystalhd_alpine_aarch64.patch"
diff --git a/community/libcrystalhd/libcrystalhd_alpine_aarch64.patch b/community/libcrystalhd/libcrystalhd_alpine_aarch64.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e957e25d84c5cbfd095f34c634d0b3401cb533f6
--- /dev/null
+++ b/community/libcrystalhd/libcrystalhd_alpine_aarch64.patch
@@ -0,0 +1,16 @@
+diff -auN a/libcrystalhd_int_if.cpp b/libcrystalhd_int_if.cpp
+--- a/libcrystalhd_int_if.cpp	2012-11-05 19:25:34.000000000 +0000
++++ b/libcrystalhd_int_if.cpp	2020-04-17 11:34:32.000000000 +0000
+@@ -33,7 +33,11 @@
+ #include "libcrystalhd_int_if.h"
+ #include "libcrystalhd_fwcmds.h"
+ 
+-#include <emmintrin.h>
++#if defined(__aarch64__)
++       #include "sse2neon.h"
++#else
++       #include <emmintrin.h>
++#endif
+ 
+ #define SV_MAX_LINE_SZ 128
+ #define PCI_GLOBAL_CONTROL MISC2_GLOBAL_CTRL