TTY/Serial fixes for 4.12-rc3
Here are some serial and tty fixes for 4.12-rc3. They are a bit "bigger" than normal, which is why I had them "bake" in linux-next for a few weeks and didn't send them to you for -rc2. They revert a few of the serdev patches from 4.12-rc1, and bring things back to how they were in 4.11, to try to make things a bit more stable there. Rob and Johan both agree that this is the way forward, so this isn't people squabbling over semantics. Other than that, just a few minor serial driver fixes that people have had problems with. All of these have been in linux-next for a few weeks with no reported issues. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCWSlOHA8cZ3JlZ0Brcm9h aC5jb20ACgkQMUfUDdst+ylDCACgn7RHT16JUASggJmRUBeadxQcFQAAnjtxX2kc 0AQLqXxqGyFxVZClAYMy =Y6+X -----END PGP SIGNATURE----- Merge tag 'tty-4.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull tty/serial fixes from Greg KH: "Here are some serial and tty fixes for 4.12-rc3. They are a bit bigger than normal, which is why I had them bake in linux-next for a few weeks and didn't send them to you for -rc2. They revert a few of the serdev patches from 4.12-rc1, and bring things back to how they were in 4.11, to try to make things a bit more stable there. Rob and Johan both agree that this is the way forward, so this isn't people squabbling over semantics. Other than that, just a few minor serial driver fixes that people have had problems with. All of these have been in linux-next for a few weeks with no reported issues" * tag 'tty-4.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: serial: altera_uart: call iounmap() at driver remove serial: imx: ensure UCR3 and UFCR are setup correctly MAINTAINERS/serial: Change maintainer of jsm driver serial: enable serdev support tty/serdev: add serdev registration interface serdev: Restore serdev_device_write_buf for atomic context serial: core: fix crash in uart_suspend_port tty: fix port buffer locking tty: ehv_bytechan: clean up init error handling serial: ifx6x60: fix use-after-free on module unload serial: altera_jtaguart: adding iounmap() serial: exar: Fix stuck MSIs serial: efm32: Fix parity management in 'efm32_uart_console_get_options()' serdev: fix tty-port client deregistration Revert "tty_port: register tty ports with serdev bus" drivers/tty: 8250: only call fintek_8250_probe when doing port I/O
This commit is contained in:
commit
249f1efd8e
14 changed files with 163 additions and 50 deletions
|
|
@ -195,6 +195,7 @@ int serdev_device_open(struct serdev_device *);
|
|||
void serdev_device_close(struct serdev_device *);
|
||||
unsigned int serdev_device_set_baudrate(struct serdev_device *, unsigned int);
|
||||
void serdev_device_set_flow_control(struct serdev_device *, bool);
|
||||
int serdev_device_write_buf(struct serdev_device *, const unsigned char *, size_t);
|
||||
void serdev_device_wait_until_sent(struct serdev_device *, long);
|
||||
int serdev_device_get_tiocm(struct serdev_device *);
|
||||
int serdev_device_set_tiocm(struct serdev_device *, int, int);
|
||||
|
|
@ -236,6 +237,12 @@ static inline unsigned int serdev_device_set_baudrate(struct serdev_device *sdev
|
|||
return 0;
|
||||
}
|
||||
static inline void serdev_device_set_flow_control(struct serdev_device *sdev, bool enable) {}
|
||||
static inline int serdev_device_write_buf(struct serdev_device *serdev,
|
||||
const unsigned char *buf,
|
||||
size_t count)
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
static inline void serdev_device_wait_until_sent(struct serdev_device *sdev, long timeout) {}
|
||||
static inline int serdev_device_get_tiocm(struct serdev_device *serdev)
|
||||
{
|
||||
|
|
@ -301,7 +308,7 @@ struct tty_driver;
|
|||
struct device *serdev_tty_port_register(struct tty_port *port,
|
||||
struct device *parent,
|
||||
struct tty_driver *drv, int idx);
|
||||
void serdev_tty_port_unregister(struct tty_port *port);
|
||||
int serdev_tty_port_unregister(struct tty_port *port);
|
||||
#else
|
||||
static inline struct device *serdev_tty_port_register(struct tty_port *port,
|
||||
struct device *parent,
|
||||
|
|
@ -309,14 +316,10 @@ static inline struct device *serdev_tty_port_register(struct tty_port *port,
|
|||
{
|
||||
return ERR_PTR(-ENODEV);
|
||||
}
|
||||
static inline void serdev_tty_port_unregister(struct tty_port *port) {}
|
||||
static inline int serdev_tty_port_unregister(struct tty_port *port)
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
#endif /* CONFIG_SERIAL_DEV_CTRL_TTYPORT */
|
||||
|
||||
static inline int serdev_device_write_buf(struct serdev_device *serdev,
|
||||
const unsigned char *data,
|
||||
size_t count)
|
||||
{
|
||||
return serdev_device_write(serdev, data, count, 0);
|
||||
}
|
||||
|
||||
#endif /*_LINUX_SERDEV_H */
|
||||
|
|
|
|||
|
|
@ -558,6 +558,15 @@ extern struct device *tty_port_register_device_attr(struct tty_port *port,
|
|||
struct tty_driver *driver, unsigned index,
|
||||
struct device *device, void *drvdata,
|
||||
const struct attribute_group **attr_grp);
|
||||
extern struct device *tty_port_register_device_serdev(struct tty_port *port,
|
||||
struct tty_driver *driver, unsigned index,
|
||||
struct device *device);
|
||||
extern struct device *tty_port_register_device_attr_serdev(struct tty_port *port,
|
||||
struct tty_driver *driver, unsigned index,
|
||||
struct device *device, void *drvdata,
|
||||
const struct attribute_group **attr_grp);
|
||||
extern void tty_port_unregister_device(struct tty_port *port,
|
||||
struct tty_driver *driver, unsigned index);
|
||||
extern int tty_port_alloc_xmit_buf(struct tty_port *port);
|
||||
extern void tty_port_free_xmit_buf(struct tty_port *port);
|
||||
extern void tty_port_destroy(struct tty_port *port);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue