speakup-r functionality
John Covici
covici at ccs.covici.com
Sun Aug 20 23:33:06 EDT 2017
I tried the new patch, but no joy. I hope you can fix your serial
synth to test.
Thanks for trying.
On Sun, 20 Aug 2017 17:45:27 -0400,
Okash Khawaja wrote:
>
> Hi,
>
> Here's one thing I think worth trying. I have updated the patch so that
> the net difference between before and after the patch is that
> speakup_fake_down_arrow() is not called when inside interrupt context.
>
> Calling speakup_fake_down_arrow() inside interrupt causes the kernel
> lock up because this itself generates same interrupt, leading to
> infinite recursion.
>
> I didn't think this code was triggered outside of interrupt context, but
> it possibly is when using a serial console - which is the only
> explanation I can think of for the behaviour you've described.
>
> Thanks
>
>
> ---
> drivers/staging/speakup/main.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> --- a/drivers/staging/speakup/main.c
> +++ b/drivers/staging/speakup/main.c
> @@ -1408,7 +1408,10 @@ static void read_all_doc(struct vc_data
> cursor_track = read_all_mode;
> spk_reset_index_count(0);
> if (get_sentence_buf(vc, 0) == -1) {
> - kbd_fakekey2(vc, RA_DOWN_ARROW);
> + del_timer(&cursor_timer);
> + if (!in_interrupt())
> + speakup_fake_down_arrow();
> + start_read_all_timer(vc, RA_DOWN_ARROW);
> } else {
> say_sentence_num(0, 0);
> synth_insert_next_index(0);
--
Your life is like a penny. You're going to lose it. The question is:
How do
you spend it?
John Covici
covici at ccs.covici.com
More information about the Speakup
mailing list