Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3d940b7d authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

USB: symbolserial: log the ioctl commands



We need to figure out what userspace programs are expecting from this
driver, so log them so we can try to get it right.

Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 68b44eae
Loading
Loading
Loading
Loading
+59 −0
Original line number Diff line number Diff line
@@ -205,6 +205,62 @@ static void symbol_unthrottle(struct tty_struct *tty)
							__func__, result);
}

static int symbol_ioctl(struct tty_struct *tty, struct file *file,
			unsigned int cmd, unsigned long arg)
{
	struct usb_serial_port *port = tty->driver_data;
	struct device *dev = &port->dev;

	/*
	 * Right now we need to figure out what commands
	 * most userspace tools want to see for this driver,
	 * so just log the things.
	 */
	switch (cmd) {
	case TIOCSERGETLSR:
		dev_info(dev, "%s: TIOCSERGETLSR\n", __func__);
		break;

	case TIOCGSERIAL:
		dev_info(dev, "%s: TIOCGSERIAL\n", __func__);
		break;

	case TIOCMIWAIT:
		dev_info(dev, "%s: TIOCMIWAIT\n", __func__);
		break;

	case TIOCGICOUNT:
		dev_info(dev, "%s: TIOCGICOUNT\n", __func__);
		break;
	default:
		dev_info(dev, "%s: unknown (%d)\n", __func__, cmd);
	}
	return -ENOIOCTLCMD;
}

static int symbol_tiocmget(struct tty_struct *tty, struct file *file)
{
	struct usb_serial_port *port = tty->driver_data;
	struct device *dev = &port->dev;

	/* TODO */
	/* probably just need to shadow whatever was sent to us here */
	dev_info(dev, "%s\n", __func__);
	return 0;
}

static int symbol_tiocmset(struct tty_struct *tty, struct file *file,
			   unsigned int set, unsigned int clear)
{
	struct usb_serial_port *port = tty->driver_data;
	struct device *dev = &port->dev;

	/* TODO */
	/* probably just need to shadow whatever was sent to us here */
	dev_info(dev, "%s\n", __func__);
	return 0;
}

static int symbol_startup(struct usb_serial *serial)
{
	struct symbol_private *priv;
@@ -311,6 +367,9 @@ static struct usb_serial_driver symbol_device = {
	.shutdown =		symbol_shutdown,
	.throttle = 		symbol_throttle,
	.unthrottle =		symbol_unthrottle,
	.ioctl = 		symbol_ioctl,
	.tiocmget = 		symbol_tiocmget,
	.tiocmset = 		symbol_tiocmset,
};

static int __init symbol_init(void)