<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: 12pt">
<DIV><FONT color=#000000>I’m sorry this is a little off topic but I’m pretty 
desperate. </FONT><FONT color=#000000>I need to find out where I can get help 
fixing a bug in a kernel module for a serial device. The bug is in the driver 
for a speech synthesizer. I’ve already emailed the original developer and he is 
not interested in continuing to work on the driver.  I’m blind and I need 
my hardware speech synthesizer to work. </FONT></DIV>
<DIV><FONT color=#000000></FONT> </DIV>
<DIV><FONT color=#000000>I’ve traced the bug to code that calls the function 
request_resource. The code for the request_region function says its copyright 
Linus Torvalds so I’m guessing its part of the linux core functions. Below is a 
code snippet that is like the code that is failing. An error code of –16 is 
always returned.  According to the comments in the driver module, this code 
is supposed to “steal” the serial port.   But it gets the -16 error 
code and errors out.  </FONT></DIV>
<DIV><FONT color=#000000></FONT> </DIV>
<DIV>int error;</DIV>
<DIV>struct resource myres;</DIV>
<DIV>myres.name = "ltlk";</DIV>
<DIV>myres.start = 0x3F8;</DIV>
<DIV>    myres.end = 0x3FF;</DIV>
<DIV>    myres.flags = IORESOURCE_BUSY;</DIV>
<DIV>    error = request_resource (&ioport_resource, 
&myres);</DIV>
<DIV> </DIV>
<DIV><FONT color=#000000>The actual code is in drivers/staging/speakup/synth.c. 
Its not exactly like the code snippet above but it does exactly the same thing. 
I pasted this code into the module, recompiled the kernel, and it has all the 
same values and has the same result. So if anyone could tell me what’s wrong 
with the above code, I could probably fix the real code.But if you want to look 
at the real code its in the kernel code in 
drivers/staging/speakup/synth.c.</FONT></DIV>
<DIV><FONT color=#000000></FONT> </DIV>
<DIV><FONT color=#000000>The code in the driver module has not changed. They 
must have changed something elsewhere in the kernel code that broke this module. 
I don’t know exactly when it started happening but it was sometime after 2.6.32 
and before 2.6.37.  The problem applies only to 64 bit hardware but it 
doesn’t matter if the kernel is compiled for 686 or amd64. So, for example, I 
can get speech with the 32-bit version of the  grml live CD on a 32 bit 
machine but not on a 64 bit machine. And I can’t get speech at all with the 64 
bit grml CD. Same is true for stock debian kernels and kernels I compile 
myself.  But a 2.6.32-amd64 stock debian kernel does work. </FONT></DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV></DIV></DIV></BODY></HTML>