#include <linux/bitops.h>
#include <linux/delay.h>
#include <linux/module.h>
-#include <linux/serdev.h>
static int tty_port_default_receive_buf(struct tty_port *port,
const unsigned char *p,
if (!disc)
return 0;
+ mutex_lock(&tty->atomic_write_lock);
ret = tty_ldisc_receive_buf(disc, p, (char *)f, count);
+ mutex_unlock(&tty->atomic_write_lock);
tty_ldisc_deref(disc);
struct device *device, void *drvdata,
const struct attribute_group **attr_grp)
{
- struct device *dev;
-
tty_port_link_device(port, driver, index);
-
- dev = serdev_tty_port_register(port, device, driver, index);
- if (PTR_ERR(dev) != -ENODEV)
- /* Skip creating cdev if we registered a serdev device */
- return dev;
-
return tty_register_device_attr(driver, index, device, drvdata,
attr_grp);
}
/* check if last port ref was dropped before tty release */
if (WARN_ON(port->itty))
return;
-
- serdev_tty_port_unregister(port);
-
if (port->xmit_buf)
free_page((unsigned long)port->xmit_buf);
tty_port_destroy(port);