ch9344: 1.9 -> 2.0
This commit is contained in:
parent
8e9536d964
commit
5068ae6e15
3 changed files with 13 additions and 36 deletions
|
@ -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";
|
||||
|
|
|
@ -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;
|
||||
int stat;
|
||||
|
|
|
@ -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);
|
Loading…
Reference in a new issue