Merge tag 'tty-4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull tty/serial updates from Greg KH:
"Here is the "big" TTY/Serial patch updates for 4.12-rc1
Not a lot of new things here, the normal number of serial driver
updates and additions, tiny bugs fixed, and some core files split up
to make future changes a bit easier for Nicolas's "tiny-tty" work.
All of these have been in linux-next for a while"
* tag 'tty-4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (62 commits)
serial: small Makefile reordering
tty: split job control support into a file of its own
tty: move baudrate handling code to a file of its own
console: move console_init() out of tty_io.c
serial: 8250_early: Add earlycon support for Palmchip UART
tty: pl011: use "qdf2400_e44" as the earlycon name for QDF2400 E44
vt: make mouse selection of non-ASCII consistent
vt: set mouse selection word-chars to gpm's default
imx-serial: Reduce RX DMA startup latency when opening for reading
serial: omap: suspend device on probe errors
serial: omap: fix runtime-pm handling on unbind
tty: serial: omap: add UPF_BOOT_AUTOCONF flag for DT init
serial: samsung: Remove useless spinlock
serial: samsung: Add missing checks for dma_map_single failure
serial: samsung: Use right device for DMA-mapping calls
serial: imx: setup DCEDTE early and ensure DCD and RI irqs to be off
tty: fix comment typo s/repsonsible/responsible/
tty: amba-pl011: Fix spurious TX interrupts
serial: xuartps: Enable clocks in the pm disable case also
serial: core: Re-use struct uart_port {name} field
...
This commit is contained in:
@@ -41,12 +41,16 @@ struct serdev_device_ops {
|
||||
* @nr: Device number on serdev bus.
|
||||
* @ctrl: serdev controller managing this device.
|
||||
* @ops: Device operations.
|
||||
* @write_comp Completion used by serdev_device_write() internally
|
||||
* @write_lock Lock to serialize access when writing data
|
||||
*/
|
||||
struct serdev_device {
|
||||
struct device dev;
|
||||
int nr;
|
||||
struct serdev_controller *ctrl;
|
||||
const struct serdev_device_ops *ops;
|
||||
struct completion write_comp;
|
||||
struct mutex write_lock;
|
||||
};
|
||||
|
||||
static inline struct serdev_device *to_serdev_device(struct device *d)
|
||||
@@ -170,7 +174,7 @@ static inline void serdev_controller_write_wakeup(struct serdev_controller *ctrl
|
||||
if (!serdev || !serdev->ops->write_wakeup)
|
||||
return;
|
||||
|
||||
serdev->ops->write_wakeup(ctrl->serdev);
|
||||
serdev->ops->write_wakeup(serdev);
|
||||
}
|
||||
|
||||
static inline int serdev_controller_receive_buf(struct serdev_controller *ctrl,
|
||||
@@ -182,7 +186,7 @@ static inline int serdev_controller_receive_buf(struct serdev_controller *ctrl,
|
||||
if (!serdev || !serdev->ops->receive_buf)
|
||||
return -EINVAL;
|
||||
|
||||
return serdev->ops->receive_buf(ctrl->serdev, data, count);
|
||||
return serdev->ops->receive_buf(serdev, data, count);
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_SERIAL_DEV_BUS)
|
||||
@@ -194,7 +198,8 @@ void serdev_device_set_flow_control(struct serdev_device *, bool);
|
||||
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);
|
||||
int serdev_device_write_buf(struct serdev_device *, const unsigned char *, size_t);
|
||||
void serdev_device_write_wakeup(struct serdev_device *);
|
||||
int serdev_device_write(struct serdev_device *, const unsigned char *, size_t, unsigned long);
|
||||
void serdev_device_write_flush(struct serdev_device *);
|
||||
int serdev_device_write_room(struct serdev_device *);
|
||||
|
||||
@@ -240,7 +245,8 @@ static inline int serdev_device_set_tiocm(struct serdev_device *serdev, int set,
|
||||
{
|
||||
return -ENOTSUPP;
|
||||
}
|
||||
static inline int serdev_device_write_buf(struct serdev_device *sdev, const unsigned char *buf, size_t count)
|
||||
static inline int serdev_device_write(struct serdev_device *sdev, const unsigned char *buf,
|
||||
size_t count, unsigned long timeout)
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
@@ -306,4 +312,11 @@ static inline struct device *serdev_tty_port_register(struct tty_port *port,
|
||||
static inline void serdev_tty_port_unregister(struct tty_port *port) {}
|
||||
#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 */
|
||||
|
||||
Reference in New Issue
Block a user