summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorThéo Le Calvar2021-11-10 14:00:48 +0100
committerThéo Le Calvar2021-11-10 14:00:48 +0100
commit3e1c6b52fd535ff96e8975bfc0235e1935dd138b (patch)
treedeb2373182b6e8321712cb734221051c068b21f4
parent009eb079e763006bb6c190d7f07fdb62079f095a (diff)
downloadaur-3e1c6b52fd535ff96e8975bfc0235e1935dd138b.tar.gz
fix compilation issue with kernel 5.15 and above
-rw-r--r--.SRCINFO4
-rw-r--r--01-fix-alloc_tty_driver.patch112
-rw-r--r--PKGBUILD19
3 files changed, 126 insertions, 9 deletions
diff --git a/.SRCINFO b/.SRCINFO
index af9de1932e6b..53321ffdcbc3 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = decklink
pkgdesc = Drivers for Blackmagic Design DeckLink, Intensity or Multibridge video editing cards
pkgver = 12.2
- pkgrel = 0
+ pkgrel = 1
url = https://www.blackmagicdesign.com/support/family/capture-and-playback
arch = i686
arch = x86_64
@@ -10,7 +10,9 @@ pkgbase = decklink
options = !strip
options = staticlibs
source = decklink-12.2.tar.gz::https://www.blackmagicdesign.com/api/register/us/download/f3106b481e2b4cd5934a650c869be25f
+ source = 01-fix-alloc_tty_driver.patch
sha256sums = 62954a18b60d9040aa4a959dff30ac9c260218ef78d6a63cbb243788f7abc05f
+ sha256sums = ede66414652d5bb669bf32eb8aa870d8e91889db23919a454606daa1a4c2cd73
pkgname = decklink
install = decklink.install
diff --git a/01-fix-alloc_tty_driver.patch b/01-fix-alloc_tty_driver.patch
new file mode 100644
index 000000000000..25f6729abbc3
--- /dev/null
+++ b/01-fix-alloc_tty_driver.patch
@@ -0,0 +1,112 @@
+*** a/blackmagic-io-12.2a12/bmio_serial.c 2021-11-10 13:53:06.486238131 +0100
+--- b/blackmagic-io-12.2a12/bmio_serial.c 2021-11-10 13:53:12.872862463 +0100
+*************** int bmio_serial_driver_init(void)
+*** 304,310 ****
+ {
+ int ret;
+
+! struct tty_driver* serial = alloc_tty_driver(MAX_SERIAL_LINES);
+ if (!serial)
+ return -ENOMEM;
+
+--- 304,316 ----
+ {
+ int ret;
+
+! struct tty_driver* serial;
+! #if KERNEL_VERSION_OR_LATER(5, 15, 0)
+! serial = tty_alloc_driver(MAX_SERIAL_LINES, 0);
+! #else
+! serial = alloc_tty_driver(MAX_SERIAL_LINES);
+! #endif
+!
+ if (!serial)
+ return -ENOMEM;
+
+*************** int bmio_serial_driver_init(void)
+*** 324,330 ****
+--- 330,340 ----
+ ret = tty_register_driver(serial);
+ if (ret)
+ {
++ #if KERNEL_VERSION_OR_LATER(5, 15, 0)
++ tty_driver_kref_put(serial);
++ #else
+ put_tty_driver(serial);
++ #endif
+ return ret;
+ }
+
+*************** void bmio_serial_driver_exit(void)
+*** 340,346 ****
+--- 350,362 ----
+ if (serial_driver)
+ {
+ tty_unregister_driver(serial_driver);
++
++ #if KERNEL_VERSION_OR_LATER(5, 15, 0)
++ tty_driver_kref_put(serial_driver);
++ #else
+ put_tty_driver(serial_driver);
++ #endif
++
+ serial_driver = NULL;
+ }
+ }
+
+*** a/blackmagic-12.2a12/blackmagic_serial.c 2021-11-10 13:52:55.462977861 +0100
+--- b/blackmagic-12.2a12/blackmagic_serial.c 2021-11-10 13:53:12.872862463 +0100
+*************** int __init blackmagic_serial_init(void)
+*** 613,619 ****
+--- 613,623 ----
+ int ret;
+ struct tty_driver *driver;
+
++ #if KERNEL_VERSION_OR_LATER(5, 15, 0)
++ driver = tty_alloc_driver(BLACKMAGIC_SERIAL_MINORS, 0);
++ #else
+ driver = alloc_tty_driver(BLACKMAGIC_SERIAL_MINORS);
++ #endif
+ if (!driver)
+ return -ENOMEM;
+
+*************** int __init blackmagic_serial_init(void)
+*** 639,645 ****
+
+ abort:
+ printk(KERN_ERR "failed to register blackmagic serial driver");
+! put_tty_driver(driver);
+ return ret;
+ }
+
+--- 643,653 ----
+
+ abort:
+ printk(KERN_ERR "failed to register blackmagic serial driver");
+! #if KERNEL_VERSION_OR_LATER(5, 15, 0)
+! tty_driver_kref_put(driver);
+! #else
+! put_tty_driver(driver);
+! #endif
+ return ret;
+ }
+
+*************** void __exit blackmagic_serial_exit(void)
+*** 648,653 ****
+ if (blackmagic_tty_driver)
+ {
+ tty_unregister_driver(blackmagic_tty_driver);
+! put_tty_driver(blackmagic_tty_driver);
+ }
+ }
+--- 656,665 ----
+ if (blackmagic_tty_driver)
+ {
+ tty_unregister_driver(blackmagic_tty_driver);
+! #if KERNEL_VERSION_OR_LATER(5, 15, 0)
+! tty_driver_kref_put(blackmagic_tty_driver);
+! #else
+! put_tty_driver(blackmagic_tty_driver);
+! #endif
+ }
+ }
diff --git a/PKGBUILD b/PKGBUILD
index 699fd7937488..607a2d8d04ae 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,7 +3,7 @@ pkgbase=decklink
pkgname=(decklink mediaexpress)
_pkgname=decklink
pkgver=12.2
-pkgrel=0
+pkgrel=1
pkgdesc="Drivers for Blackmagic Design DeckLink, Intensity or Multibridge video editing cards"
arch=('i686' 'x86_64')
url="https://www.blackmagicdesign.com/support/family/capture-and-playback"
@@ -29,8 +29,11 @@ DLAGENTS=("https::/usr/bin/curl \
)"
)
-source=("${_pkgsrc_file}"::"${_pkgsrc_url}")
-sha256sums=('62954a18b60d9040aa4a959dff30ac9c260218ef78d6a63cbb243788f7abc05f')
+source=("${_pkgsrc_file}"::"${_pkgsrc_url}"
+ "01-fix-alloc_tty_driver.patch"
+ )
+sha256sums=('62954a18b60d9040aa4a959dff30ac9c260218ef78d6a63cbb243788f7abc05f'
+ 'ede66414652d5bb669bf32eb8aa870d8e91889db23919a454606daa1a4c2cd73')
prepare() {
cd $srcdir/Blackmagic_Desktop_Video_Linux_$pkgver/other/${_arch}
@@ -39,11 +42,11 @@ prepare() {
cd desktopvideo-*/usr/src
- # for p in ${srcdir}/*.patch;
- # do
- # echo "Applying ${p}"
- # patch --forward --strip=1 --input="${p}"
- # done
+ for p in ${srcdir}/*.patch;
+ do
+ echo "Applying ${p}"
+ patch --forward --strip=1 --input="${p}"
+ done
}