* I am modeling after the slip driver
@ David
` Samuel Thibault
0 siblings, 1 reply; 9+ messages in thread
From: David @ UTC (permalink / raw)
To: speakup
The slip driver looks to me like a good place to start.
It does most of what I want as far as tty manipulation etc.
Obviously I will do considerable tweeking and replace the speakup/serial.c
with a slip style driver. Then on startup, the poll thread
will look for the tty to become ready and attach the tweeked driver to it.
Then it should run as normal. So serial/usb/whatever will make no difference.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: I am modeling after the slip driver
I am modeling after the slip driver David
@ ` Samuel Thibault
` John G Heim
` Contributing to speakup Okash Khawaja
0 siblings, 2 replies; 9+ messages in thread
From: Samuel Thibault @ UTC (permalink / raw)
To: Speakup is a screen review system for Linux.
David, on Tue 15 Nov 2016 14:54:28 -0500, wrote:
> The slip driver looks to me like a good place to start.
That's an instance of line discipline, yes.
> It does most of what I want as far as tty manipulation etc.
But it lacks what I mentioned in my other thread: actually opening the
serial port from the kernel itself. In slirp it's a userland process
which does this. That's the tricky part which will probably need some
changes to the rest of the kernel.
Samuel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: I am modeling after the slip driver
` Samuel Thibault
@ ` John G Heim
` Samuel Thibault
` Contributing to speakup Okash Khawaja
1 sibling, 1 reply; 9+ messages in thread
From: John G Heim @ UTC (permalink / raw)
To: Speakup is a screen review system for Linux.
On 11/15/2016 01:59 PM, Samuel Thibault wrote:
> > But it lacks what I mentioned in my other thread: actually opening the
>serial port from the kernel itself. In slirp it's a userland process
> which does this. That's the tricky part which will probably need some
> changes to the rest of the kernel.
Is anybody working on those changes? I haven't done this kind of work
for 20 years but maybe I can still contribute.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: I am modeling after the slip driver
` John G Heim
@ ` Samuel Thibault
0 siblings, 0 replies; 9+ messages in thread
From: Samuel Thibault @ UTC (permalink / raw)
To: jheim, Speakup is a screen review system for Linux.
John G Heim, on Tue 15 Nov 2016 14:38:34 -0600, wrote:
> On 11/15/2016 01:59 PM, Samuel Thibault wrote:
> >> But it lacks what I mentioned in my other thread: actually opening the
> >serial port from the kernel itself. In slirp it's a userland process
> > which does this. That's the tricky part which will probably need some
> > changes to the rest of the kernel.
>
> Is anybody working on those changes?
The thread I had started was meant to provide info for a student to do
the work, but I haven't actually seen him make progress.
Samuel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Contributing to speakup
` Samuel Thibault
` John G Heim
@ ` Okash Khawaja
` Samuel Thibault
1 sibling, 1 reply; 9+ messages in thread
From: Okash Khawaja @ UTC (permalink / raw)
To: Samuel Thibault, David Borowski
Cc: Speakup is a screen review system for Linux.
Hi Samuel and David,
As I've mention in 'Status of kernel' thread, I would like to contribute to this project. I have done some kernel work in personal capacity, like Eudyptula challenge and Free Electrons embedded linux drivers course. I have also been studying speakup code and - after Samuel's replies to the other thread - line discipline and wider TTY subsystem.
Looks like there are some ideas on what to do. Is there any piece of work that I can take up? This is an interesting project and I hope to learn from it, therefore happy to commit time and effort. Please advise.
Thanks,
Okash
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Contributing to speakup
` Contributing to speakup Okash Khawaja
@ ` Samuel Thibault
` Okash Khawaja
0 siblings, 1 reply; 9+ messages in thread
From: Samuel Thibault @ UTC (permalink / raw)
To: Okash Khawaja
Cc: David Borowski, Speakup is a screen review system for Linux.
Hello,
Okash Khawaja, on Wed 16 Nov 2016 05:36:19 +0000, wrote:
> Looks like there are some ideas on what to do. Is there any piece of work that I can take up?
AFAIK, there has been no real code written.
I've however digged up my mails with Shraddha a bit, to find this:
“
Testing
with all actual synthesis hardware will be needed at some point, yes,
but most of the work can be done with the dummy driver. Then we can ask
the speakup community to make tests with actual hardware. I don't think
you need actual hardware (I have myself actually worked on speakup for a
long time without any particular hardware).
The I/O operations are already very well factorized (some drivers do
some I/O by hand, but we can forget about them in a first step), into
the following functions used by the drivers:
- spk_serial_synth_probe
- spk_serial_out
- spk_synth_immediate
To make things go smoothly, I'd say we should add equivalents of those
functions that would use proper kernel APIs, testing them with the
dummy driver. Then, for each driver, we can have it tested with the
new equivalents (that would be a matter of switching the probe and
synth_immediate methods of the driver), and once verified by users with
the actual hardware, commit the switch to the equivalents.
You will notice calls to spk_serial_out() in spk_do_catch_up() and
spk_synth_flush(). Actually the very first step of your work could be
to add a serial_out() method to drivers, which for now would be set
to spk_serial_out() in all drivers, and make spk_do_catch_up() and
spk_synth_flush() call the method instead of spk_serial_out(). Direct
calls to spk_serial_out() within drivers could be converted into calling
the method too, so that switching methods will be trivial.
About spk_stop_serial_interrupt, it could be made to return immediately
if spk_serial_init was never called.
> And also I'll have to convert spk_serial_in() too right?
Ah, I missed that one while checking functions. Yes, just like
spk_serial_out.
”
Samuel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Contributing to speakup
` Samuel Thibault
@ ` Okash Khawaja
` Samuel Thibault
0 siblings, 1 reply; 9+ messages in thread
From: Okash Khawaja @ UTC (permalink / raw)
To: Samuel Thibault
Cc: David Borowski, Speakup is a screen review system for Linux.
Okay the initial refactoring seems straightforward. If no one has picked it
up, I can start working on it. However, I am not sure about what the new
implmentation of serial_out() et el will look like.
Also, I understand speakup being a line discipline and the challenges
involved in creating device file and assigning speakup ldisc to it. But
don't know how it ties with it this work. And how it facilitates comms with
USB, PCI etc. Perhaps we can come back to that later and start with the
refactor first.
Thanks
On Wed, Nov 16, 2016 at 8:42 AM, Samuel Thibault <
samuel.thibault@ens-lyon.org> wrote:
> Hello,
>
> Okash Khawaja, on Wed 16 Nov 2016 05:36:19 +0000, wrote:
> > Looks like there are some ideas on what to do. Is there any piece of
> work that I can take up?
>
> AFAIK, there has been no real code written.
>
> I've however digged up my mails with Shraddha a bit, to find this:
>
> “
> Testing
> with all actual synthesis hardware will be needed at some point, yes,
> but most of the work can be done with the dummy driver. Then we can ask
> the speakup community to make tests with actual hardware. I don't think
> you need actual hardware (I have myself actually worked on speakup for a
> long time without any particular hardware).
>
> The I/O operations are already very well factorized (some drivers do
> some I/O by hand, but we can forget about them in a first step), into
> the following functions used by the drivers:
>
> - spk_serial_synth_probe
> - spk_serial_out
> - spk_synth_immediate
>
> To make things go smoothly, I'd say we should add equivalents of those
> functions that would use proper kernel APIs, testing them with the
> dummy driver. Then, for each driver, we can have it tested with the
> new equivalents (that would be a matter of switching the probe and
> synth_immediate methods of the driver), and once verified by users with
> the actual hardware, commit the switch to the equivalents.
>
> You will notice calls to spk_serial_out() in spk_do_catch_up() and
> spk_synth_flush(). Actually the very first step of your work could be
> to add a serial_out() method to drivers, which for now would be set
> to spk_serial_out() in all drivers, and make spk_do_catch_up() and
> spk_synth_flush() call the method instead of spk_serial_out(). Direct
> calls to spk_serial_out() within drivers could be converted into calling
> the method too, so that switching methods will be trivial.
>
> About spk_stop_serial_interrupt, it could be made to return immediately
> if spk_serial_init was never called.
>
> > And also I'll have to convert spk_serial_in() too right?
>
> Ah, I missed that one while checking functions. Yes, just like
> spk_serial_out.
> ”
>
> Samuel
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Contributing to speakup
` Okash Khawaja
@ ` Samuel Thibault
` Okash Khawaja
0 siblings, 1 reply; 9+ messages in thread
From: Samuel Thibault @ UTC (permalink / raw)
To: Okash Khawaja
Cc: David Borowski, Speakup is a screen review system for Linux.
Okash Khawaja, on Wed 16 Nov 2016 10:03:32 +0000, wrote:
> However, I am not sure about what the new
> implmentation of serial_out() et el will look like.
It will call tty->ops->write(), typically.
> Also, I understand speakup being a line discipline and the challenges involved
> in creating device file and assigning speakup ldisc to it. But don't know how
> it ties with it this work.
That's what will produce the 'tty' pointer.
> And how it facilitates comms with USB, PCI etc.
It will bring them for free: opening ttyS0 will open whatever serial
port appears as ttyS0 in Linux, be it ISA or PCI. Opening ttyUSB0 will
open whatever USB serial port which appears as ttyUSB0.
> Perhaps we can come back to that later and start with the refactor first.
Yes, the refactor can be done first. The tty initialization will however
come immediately after, to replace the outb() of serial_out() with
tty->ops->write().
Samuel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Contributing to speakup
` Samuel Thibault
@ ` Okash Khawaja
0 siblings, 0 replies; 9+ messages in thread
From: Okash Khawaja @ UTC (permalink / raw)
To: Samuel Thibault
Cc: David Borowski, Speakup is a screen review system for Linux.
I see, now it's falling into place. Still more questions to come but I can
see the way forward. Thanks
On Wed, Nov 16, 2016 at 6:28 PM, Samuel Thibault <
samuel.thibault@ens-lyon.org> wrote:
> Okash Khawaja, on Wed 16 Nov 2016 10:03:32 +0000, wrote:
> > However, I am not sure about what the new
> > implmentation of serial_out() et el will look like.
>
> It will call tty->ops->write(), typically.
>
> > Also, I understand speakup being a line discipline and the challenges
> involved
> > in creating device file and assigning speakup ldisc to it. But don't
> know how
> > it ties with it this work.
>
> That's what will produce the 'tty' pointer.
>
> > And how it facilitates comms with USB, PCI etc.
>
> It will bring them for free: opening ttyS0 will open whatever serial
> port appears as ttyS0 in Linux, be it ISA or PCI. Opening ttyUSB0 will
> open whatever USB serial port which appears as ttyUSB0.
>
> > Perhaps we can come back to that later and start with the refactor first.
>
> Yes, the refactor can be done first. The tty initialization will however
> come immediately after, to replace the outb() of serial_out() with
> tty->ops->write().
>
> Samuel
>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~ UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
I am modeling after the slip driver David
` Samuel Thibault
` John G Heim
` Samuel Thibault
` Contributing to speakup Okash Khawaja
` Samuel Thibault
` Okash Khawaja
` Samuel Thibault
` Okash Khawaja
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 read-only IMAP folder(s) and NNTP newsgroup(s).