[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[RFC] tty (or char) bus?


In my attempt to add support for contols to a voice modem codec sound device driver, I found that in order to talk to the modem, it would be convenient if I can get access to a tty device from inside the kernel in a way similiar to that available form userspace. AFAICS, even if tty lowlevel write() could be used unmodified, a convenient way of reading characters from a tty is missing and should be implemented in a line discipline. Please correct me if I am wrong.

OTOH, I found that some kind of abstraction layer for acccessing devices over a tty could be convenient. Instead of allocating a new line discipline for each specific device, sometimes found on a specific board only, why not just create a new bus type?

Implemented as a line discipline, activated (hot-plugged) from userspace with ldattach, that new bus adapter would give kernel level access to an arbitrary device hanging off a tty. As the bus can be assumed point-to-point, a single generic device could be registered automatically in order to trigger that bus registerd drivers' probes (vendor/model id queries, for example). If not enough, an ioctl and a ldattach replacement could be provided for setting up a device id that would match a driver id (something like inputattach does for N_MOUSE).

Once detected by a voice modem codec driver tty bus probe(), a codec subdevice could then be registered with a sound card.

Please let me know if you like the idea. If not, please push me in a better direction.

Many of the new code could be probably based on currently existing drivers and line discplines. As I'm not familiar enough with the linux kernel code, unlike most of you, so please give me some hints on what specific drivers should I look at to get examples best matching my idea.

To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Photo]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Resources]

  Powered by Linux