[PATCH v2 0/8] Allow f_acm gadgets to notify the user about SetLineCoding requests
From: Tal Shorer
Date: Tue Jun 13 2017 - 02:52:37 EST
I'm currently working on a project where I'd like to have an omap board
running linux be a usb-to-uart converter (using f_acm), and I've ran
into an issue: there's no way for the application to know if the host
has issued a SetLineCoding requests (after which parity/baudrate should
be changed to match the host's request).
This series adds the support necessary to achieve that:
- Allowing tty drivers to supply a poll() function to notify the user of
driver-specific events.
- Propagating poll() and ioctl() from u_serial to the next layer (f_acm)
in this case.
- Let the user read the current line coding set by the host (via an
ioctl() call).
- Notify the user when there's a pending SetLineCoding request they
haven't read yet
The last patch also removes up the port_line_config field from
struct gserial. It made no sense to have there (and had a REVISIT
comment at every turn), it was never used and it was initialized with
invalid values.
Changes from v1:
- patch 5 was messed up, which made patch 6 also messed up. fixed both
of these.
Tal Shorer (8):
tty: add a poll() callback in struct tty_operations
usb: gadget: u_serial: propagate poll() to the next layer
usb: gadget: f_acm: validate set_line_coding requests
usb: gadget: u_serial: propagate ioctl() to the next layer
usb: gadget: f_acm: initialize port_line_coding when creating an
instance
usb: gadget: f_acm: add an ioctl to get the current line coding
usb: gadget: f_acm: notify the user on SetLineCoding
usb: gadget: u_serial: remove port_line_config from struct gserial
Documentation/ioctl/ioctl-number.txt | 1 +
drivers/tty/n_tty.c | 2 ++
drivers/usb/gadget/function/f_acm.c | 66 +++++++++++++++++++++++++++++-----
drivers/usb/gadget/function/u_serial.c | 53 ++++++++++++++++-----------
drivers/usb/gadget/function/u_serial.h | 7 ++--
include/linux/tty_driver.h | 3 ++
include/uapi/linux/usb/f_acm.h | 12 +++++++
7 files changed, 113 insertions(+), 31 deletions(-)
create mode 100644 include/uapi/linux/usb/f_acm.h
--
2.7.4