about summary refs log tree commit diff
path: root/nixpkgs/pkgs/os-specific/linux/ch9344
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/os-specific/linux/ch9344')
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ch9344/default.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types.patch26
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types_6_3.patch13
3 files changed, 13 insertions, 36 deletions
diff --git a/nixpkgs/pkgs/os-specific/linux/ch9344/default.nix b/nixpkgs/pkgs/os-specific/linux/ch9344/default.nix
index e7da864b90c1..42c26503ea15 100644
--- a/nixpkgs/pkgs/os-specific/linux/ch9344/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ch9344/default.nix
@@ -2,20 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "ch9344";
-  version = "1.9";
+  version = "2.0";
 
   src = fetchzip {
     name = "CH9344SER_LINUX.zip";
     url = "https://www.wch.cn/downloads/file/386.html#CH9344SER_LINUX.zip";
-    hash = "sha256-g55ftAfjKKlUFzGhI1a/O7Eqbz6rkGf1vWuEJjBZxBE=";
+    hash = "sha256-YKNMYpap7CjhgTIpd/M9+nB11NtpwGYT/P14J6q3XZg=";
   };
 
-  patches = lib.optionals (lib.versionAtLeast kernel.modDirVersion "6.1") [
-    # https://github.com/torvalds/linux/commit/a8c11c1520347be74b02312d10ef686b01b525f1
+  patches = [
     ./fix-incompatible-pointer-types.patch
-  ] ++ lib.optionals (lib.versionAtLeast kernel.modDirVersion "6.3") [
-    # https://github.com/torvalds/linux/commit/5d420399073770134d2b03e004b2c0201c7fa26f
-    ./fix-incompatible-pointer-types_6_3.patch
   ];
 
   sourceRoot = "${src.name}/driver";
diff --git a/nixpkgs/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types.patch b/nixpkgs/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types.patch
index 31088538733e..89c95347ed65 100644
--- a/nixpkgs/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types.patch
+++ b/nixpkgs/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types.patch
@@ -1,22 +1,16 @@
 diff --git a/ch9344.c b/ch9344.c
-index 1e37293..a16af82 100644
+index bfa10bb..76a94a7 100644
 --- a/ch9344.c
 +++ b/ch9344.c
-@@ -79,7 +79,7 @@ static DEFINE_IDR(ch9344_minors);
- static DEFINE_MUTEX(ch9344_minors_lock);
- 
- static void ch9344_tty_set_termios(struct tty_struct *tty,
--                                   struct ktermios *termios_old);
-+                                   const struct ktermios *termios_old);
- 
- static int ch9344_get_portnum(int index);
- 
-@@ -1597,7 +1597,7 @@ u8 cal_recv_tmt(__le32 bd)
+@@ -837,7 +837,11 @@ static void ch9344_tty_close(struct tty_struct *tty, struct file *filp)
+ 	}
  }
  
- static void ch9344_tty_set_termios(struct tty_struct *tty,
--                                   struct ktermios *termios_old)
-+                                   const struct ktermios *termios_old)
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 6, 0))
++static ssize_t ch9344_tty_write(struct tty_struct *tty, const u8 *buf, size_t count)
++#else
+ static int ch9344_tty_write(struct tty_struct *tty, const unsigned char *buf, int count)
++#endif
  {
-     struct ch9344 *ch9344 = tty->driver_data;
-     struct ktermios *termios = &tty->termios;
+ 	struct ch9344 *ch9344 = tty->driver_data;
+ 	int stat;
diff --git a/nixpkgs/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types_6_3.patch b/nixpkgs/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types_6_3.patch
deleted file mode 100644
index b4cf265daac9..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types_6_3.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/ch9344.c b/ch9344.c
-index a16af82..8922ed9 100644
---- a/ch9344.c
-+++ b/ch9344.c
-@@ -774,7 +774,7 @@ static inline void *tty_get_portdata(struct ch9344_ttyport *port)
-     return (port->portdata);
- }
- 
--static void ch9344_port_dtr_rts(struct tty_port *port, int raise)
-+static void ch9344_port_dtr_rts(struct tty_port *port, bool raise)
- {
-     struct ch9344_ttyport *ttyport = container_of(port, struct ch9344_ttyport, port);
-     struct ch9344 *ch9344 = tty_get_portdata(ttyport);