xone: fix build on 6.8, 6.11, 6.12
This commit is contained in:
parent
7ea2f31963
commit
cd7cd6dadd
26
srcpkgs/xone/patches/linux6.11.patch
Normal file
26
srcpkgs/xone/patches/linux6.11.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
From 28df566c38e0ee500fd5f74643fc35f21a4ff696 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Torleif=20Sk=C3=A5r?=
|
||||||
|
<16509259+tskaar@users.noreply.github.com>
|
||||||
|
Date: Tue, 30 Jul 2024 22:35:25 +0200
|
||||||
|
Subject: [PATCH] fix: build on kernel v6.11
|
||||||
|
|
||||||
|
---
|
||||||
|
bus/bus.c | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/bus/bus.c b/bus/bus.c
|
||||||
|
index 4a6c64f..8dc9bbb 100644
|
||||||
|
--- a/bus/bus.c
|
||||||
|
+++ b/bus/bus.c
|
||||||
|
@@ -56,7 +56,11 @@ static struct device_type gip_client_type = {
|
||||||
|
.release = gip_client_release,
|
||||||
|
};
|
||||||
|
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 11, 0)
|
||||||
|
static int gip_bus_match(struct device *dev, struct device_driver *driver)
|
||||||
|
+#else
|
||||||
|
+static int gip_bus_match(struct device *dev, const struct device_driver *driver)
|
||||||
|
+#endif
|
||||||
|
{
|
||||||
|
struct gip_client *client;
|
||||||
|
struct gip_driver *drv;
|
74
srcpkgs/xone/patches/linux6.12.patch
Normal file
74
srcpkgs/xone/patches/linux6.12.patch
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
From d88ea1e8b430d4b96134e43ca1892ac48334578e Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Torleif=20Sk=C3=A5r?=
|
||||||
|
<16509259+tskaar@users.noreply.github.com>
|
||||||
|
Date: Mon, 30 Sep 2024 21:07:13 +0200
|
||||||
|
Subject: [PATCH] fix: build on kernel v6.12
|
||||||
|
|
||||||
|
Upstream "Drop of obsoloted vmalloc PCM buffer helper API";
|
||||||
|
https://lore.kernel.org/all/20240807152725.18948-3-tiwai@suse.de/
|
||||||
|
|
||||||
|
Code taken from the driver;
|
||||||
|
https://lore.kernel.org/all/20240807152725.18948-2-tiwai@suse.de/
|
||||||
|
---
|
||||||
|
driver/headset.c | 30 ++++++++++++++++++++++++++----
|
||||||
|
1 file changed, 26 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/driver/headset.c b/driver/headset.c
|
||||||
|
index ebee92d..c736351 100644
|
||||||
|
--- a/driver/headset.c
|
||||||
|
+++ b/driver/headset.c
|
||||||
|
@@ -5,6 +5,7 @@
|
||||||
|
|
||||||
|
#include <linux/module.h>
|
||||||
|
#include <linux/hrtimer.h>
|
||||||
|
+#include <linux/vmalloc.h>
|
||||||
|
#include <sound/core.h>
|
||||||
|
#include <sound/initval.h>
|
||||||
|
#include <sound/pcm.h>
|
||||||
|
@@ -90,13 +91,34 @@ static int gip_headset_pcm_close(struct snd_pcm_substream *sub)
|
||||||
|
static int gip_headset_pcm_hw_params(struct snd_pcm_substream *sub,
|
||||||
|
struct snd_pcm_hw_params *params)
|
||||||
|
{
|
||||||
|
- return snd_pcm_lib_alloc_vmalloc_buffer(sub,
|
||||||
|
- params_buffer_bytes(params));
|
||||||
|
+ struct snd_pcm_runtime *runtime = sub->runtime;
|
||||||
|
+ size_t size = params_buffer_bytes(params);
|
||||||
|
+
|
||||||
|
+ if (runtime->dma_area) {
|
||||||
|
+ if (runtime->dma_bytes >= size)
|
||||||
|
+ return 0; /* Already large enough */
|
||||||
|
+ vfree(runtime->dma_area);
|
||||||
|
+ }
|
||||||
|
+ runtime->dma_area = vzalloc(size);
|
||||||
|
+ if (!runtime->dma_area)
|
||||||
|
+ return -ENOMEM;
|
||||||
|
+ runtime->dma_bytes = size;
|
||||||
|
+ return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int gip_headset_pcm_hw_free(struct snd_pcm_substream *sub)
|
||||||
|
{
|
||||||
|
- return snd_pcm_lib_free_vmalloc_buffer(sub);
|
||||||
|
+ struct snd_pcm_runtime *runtime = sub->runtime;
|
||||||
|
+
|
||||||
|
+ vfree(runtime->dma_area);
|
||||||
|
+ runtime->dma_area = NULL;
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static struct page *gip_headset_pcm_get_page(struct snd_pcm_substream *sub,
|
||||||
|
+ unsigned long offset)
|
||||||
|
+{
|
||||||
|
+ return vmalloc_to_page(sub->runtime->dma_area + offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int gip_headset_pcm_prepare(struct snd_pcm_substream *sub)
|
||||||
|
@@ -157,7 +179,7 @@ static const struct snd_pcm_ops gip_headset_pcm_ops = {
|
||||||
|
.prepare = gip_headset_pcm_prepare,
|
||||||
|
.trigger = gip_headset_pcm_trigger,
|
||||||
|
.pointer = gip_headset_pcm_pointer,
|
||||||
|
- .page = snd_pcm_lib_get_vmalloc_page,
|
||||||
|
+ .page = gip_headset_pcm_get_page,
|
||||||
|
};
|
||||||
|
|
||||||
|
static bool gip_headset_advance_pointer(struct gip_headset_stream *stream,
|
33
srcpkgs/xone/patches/linux6.8.patch
Normal file
33
srcpkgs/xone/patches/linux6.8.patch
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
From 1b4344ab8d9d7891f843dc993b0c5447f46c9889 Mon Sep 17 00:00:00 2001
|
||||||
|
From: medusalix <ss7@live.de>
|
||||||
|
Date: Sun, 21 Jan 2024 21:18:17 +0100
|
||||||
|
Subject: [PATCH] Fix build on kernel 6.8
|
||||||
|
|
||||||
|
---
|
||||||
|
transport/dongle.c | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/transport/dongle.c b/transport/dongle.c
|
||||||
|
index 1a30922..71aed1c 100644
|
||||||
|
--- a/transport/dongle.c
|
||||||
|
+++ b/transport/dongle.c
|
||||||
|
@@ -6,6 +6,7 @@
|
||||||
|
#include <linux/module.h>
|
||||||
|
#include <linux/slab.h>
|
||||||
|
#include <linux/bitfield.h>
|
||||||
|
+#include <linux/version.h>
|
||||||
|
#include <linux/usb.h>
|
||||||
|
#include <linux/ieee80211.h>
|
||||||
|
#include <net/cfg80211.h>
|
||||||
|
@@ -1024,7 +1025,11 @@ static struct usb_driver xone_dongle_driver = {
|
||||||
|
.suspend = xone_dongle_suspend,
|
||||||
|
.resume = xone_dongle_resume,
|
||||||
|
.id_table = xone_dongle_id_table,
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 8, 0)
|
||||||
|
.drvwrap.driver.shutdown = xone_dongle_shutdown,
|
||||||
|
+#else
|
||||||
|
+ .driver.shutdown = xone_dongle_shutdown,
|
||||||
|
+#endif
|
||||||
|
.supports_autosuspend = true,
|
||||||
|
.disable_hub_initiated_lpm = true,
|
||||||
|
.soft_unbind = true,
|
@ -1,7 +1,7 @@
|
|||||||
# Template file for 'xone'
|
# Template file for 'xone'
|
||||||
pkgname=xone
|
pkgname=xone
|
||||||
version=0.3
|
version=0.3
|
||||||
revision=2
|
revision=3
|
||||||
depends="curl cabextract dkms"
|
depends="curl cabextract dkms"
|
||||||
short_desc="Modern Linux driver for Xbox One and Xbox Series X|S controllers"
|
short_desc="Modern Linux driver for Xbox One and Xbox Series X|S controllers"
|
||||||
maintainer="Orphaned <orphan@voidlinux.org>"
|
maintainer="Orphaned <orphan@voidlinux.org>"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user