Re: speakup bug

From: Alan Cox
Date: Sat Mar 03 2012 - 12:37:23 EST


On Sat, 3 Mar 2012 11:18:12 -0600
"John G. Heim" <jheim@xxxxxxxxxxxxx> wrote:

> I need help fixing a bug in the driver for serial hardware speech synths in
> the speakup screen reader. According to the comments in the code, it is in a
> part of the code that is trying to "steal" the serial port.

Yes - and the code is broken. To start with it's assumig a legacy PC
serial port at 0x3F8 and that it can beat the serial layer to it.

> returns an error code. But it looks as if the region for a serial port,
> 0x3f8 - 0x3ff, in ioport_resource cannot be reserved because the entire
> range from 0x000 through 0xcf7 is already taken by something named "PCI Bus
> 0000:00". Therefore calling request_resource always fails and the driver
> for the speech synth errors out.

It's a heirarchical space, so you can allocate things within it. Look
at /proc/ioports.

> And therefore I can't use my hardware speech synth without modifying the
> kernel code. If you comment out the line that checks the return code from
> request_region, it works. So you have to modify the kernel code and compile
> a custom kernel to use a hardware speech synth. That's not such a problem
> for me but it is for a lot of people. Plus, the grml live CD doesn't work
> with hardware speech. That is a problem for me.
>
> Can anyone tell me how to fix this so it can be patched in the official
> kernel code?

The proper fix is to make the drivers work via the serial layer properly.
The speakup people have been told this repeatedly for years and years
which is why their drivers work on less and less systems and won't run
with things PCI or USB serial ports, and why they are forever buried in
staging.

Alan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/