linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sean Young <sean@mess.org>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-input@vger.kernel.org, linux-media@vger.kernel.org,
	gregkh@linuxfoundation.org
Subject: Re: [PATCH 2/3] input: serio: allow more than one byte to be sent at once
Date: Thu, 7 May 2020 21:59:18 +0100	[thread overview]
Message-ID: <20200507205918.GA13370@gofer.mess.org> (raw)
In-Reply-To: <20200507202546.GM89269@dtor-ws>

On Thu, May 07, 2020 at 01:25:46PM -0700, Dmitry Torokhov wrote:
> On Thu, May 07, 2020 at 02:53:36PM +0100, Sean Young wrote:
> > serio drivers can only send one byte at a time. If the underlying tty
> > is a usb serial port, then each byte will be put into separate usb
> > urbs, which is not efficient.
> > 
> > Additionally, the Infrared Toy device refuses to transmit IR if the
> > IR data is sent one byte at a time. IR data is formatted in u16 values,
> > and the firmware expects complete u16 values in the packet.
> > 
> > https://github.com/DangerousPrototypes/USB_IR_Toy/blob/master/Firmware-main/IRs.c#L240
> 
> Ummm, serial protocol data size is at most 9 bits so I have no earthly
> idea how they expect to get 16.

serio is a layer on top several serial protocols, including ttys. ttys allow
more than one byte to be written at a time, see struct tty_operations:

        int  (*write)(struct tty_struct * tty,
                      const unsigned char *buf, int count);

ttys would be very inefficient if you could only write one byte at a time,
and they are very serial.

This patch exposes the underlying tty write() functionality to serio. When
the underlying tty is a usb serial port this makes for far fewer usb packets
being used to send the same data, and fixes my driver problem, and it
would reduce the number of calls in a few other cases too.

I'm happy to rework the patch if there are comments on the style or
approach.

Thanks,

Sean

  reply	other threads:[~2020-05-07 20:59 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-07 13:53 [PATCH 1/3] input: add support for the USB IR Toy and USB IR Droid Sean Young
2020-05-07 13:53 ` [PATCH 2/3] input: serio: allow more than one byte to be sent at once Sean Young
2020-05-07 20:25   ` Dmitry Torokhov
2020-05-07 20:59     ` Sean Young [this message]
2020-05-11  6:51       ` Greg KH
2020-05-12  9:07         ` Sean Young
2020-05-12 17:37           ` Dmitry Torokhov
2020-05-13 17:04             ` Sean Young
2020-05-13  8:16           ` Greg KH
2020-05-13 16:09             ` Sean Young
2020-05-07 13:53 ` [PATCH 3/3] media: rc: add support for Infrared Toy and IR Droid devices Sean Young

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200507205918.GA13370@gofer.mess.org \
    --to=sean@mess.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).