From: Miroslav Ondra Date: Wed, 4 Aug 2021 08:52:08 +0000 (+0200) Subject: Add missing ioctl to 5.10+ unipi_tty X-Git-Url: http://git.graph-it.com/?a=commitdiff_plain;h=cb9a918136b2579a4600d216cfa3121a5eb579d8;p=graphit%2Funipi-kernel.git Add missing ioctl to 5.10+ unipi_tty --- diff --git a/modules/unipi/src/unipi_tty.c b/modules/unipi/src/unipi_tty.c index 724fc56..76c0184 100644 --- a/modules/unipi/src/unipi_tty.c +++ b/modules/unipi/src/unipi_tty.c @@ -1032,6 +1032,8 @@ static void (*alias_n_tty_receive_buf)(struct tty_struct *tty, const unsigned ch char *fp, int count); static int (*alias_n_tty_receive_buf2)(struct tty_struct *tty, const unsigned char *cp, char *fp, int count); +static int (*alias_n_tty_ioctl)(struct tty_struct *tty, struct file *file, + unsigned int cmd, unsigned long arg); static void unipi_tty_receive_buf(struct tty_struct *tty, const unsigned char *cp, char *fp, int count) @@ -1063,6 +1065,24 @@ static int unipi_tty_receive_buf2(struct tty_struct *tty, const unsigned char *c return ret; } +static int unipi_tty_ioctl(struct tty_struct *tty, struct file *file, + unsigned int cmd, unsigned long arg) +{ + int retval; + + unipi_tty_trace(KERN_INFO "UNIPI_LDISC: Ioctl start. cmd=%x", cmd); + switch (cmd) { + case 0x5481: + case 0x5480: + if (tty->ops->ioctl != NULL) { + retval = tty->ops->ioctl(tty, cmd, arg); + if (retval != -ENOIOCTLCMD) + return retval; + } + } + return alias_n_tty_ioctl(tty, file, cmd, arg); +} + int __init unipi_tty_init(void) { int err; @@ -1076,9 +1096,11 @@ int __init unipi_tty_init(void) alias_n_tty_receive_buf = unipi_tty_ldisc.receive_buf; alias_n_tty_receive_buf2 = unipi_tty_ldisc.receive_buf2; + alias_n_tty_ioctl = unipi_tty_ldisc.ioctl; - unipi_tty_ldisc.receive_buf = unipi_tty_receive_buf, - unipi_tty_ldisc.receive_buf2 = unipi_tty_receive_buf2, + unipi_tty_ldisc.receive_buf = unipi_tty_receive_buf; + unipi_tty_ldisc.receive_buf2 = unipi_tty_receive_buf2; + unipi_tty_ldisc.ioctl = unipi_tty_ioctl; err = tty_register_ldisc(N_PROFIBUS_FDL, &unipi_tty_ldisc); if (err) {