DSR-signal problem with dgnc-1.0 Linux driver

We tring to use Digi Neo 8 under Linux Fedora Core 1
with kernel 2.6.3. We have downloaded the 40002369_A.src.rpm
from Digi site and successfully installed it.
Driver working. But there is a little strange problem:
programms can’t see DSR-signal :frowning:

Then we tried Windows - everything Ok winth DSR…
Now I went through dgnc-1.0 sources and found suspicious
place in dgnc_neo.c modem signals account:

    if (signals & UART_MSR_DCD)
            ch->ch_mistat |= UART_MSR_DCD;
    else
            ch->ch_mistat &= ~UART_MSR_DCD;
   
    if (signals & UART_MSR_DCD)
            ch->ch_mistat |= UART_MSR_DCD;
    else
            ch->ch_mistat &= ~UART_MSR_DCD;
   
    if (signals & UART_MSR_RI)
            ch->ch_mistat |= UART_MSR_RI;
    else
            ch->ch_mistat &= ~UART_MSR_RI;
   
    if (signals & UART_MSR_CTS)
            ch->ch_mistat |= UART_MSR_CTS;
    else
            ch->ch_mistat &= ~UART_MSR_CTS;

As you see - DCD twice, but no DRS?!
My be this is a bug?

Please contact Digi Technical Support for a new updated driver.

I’ll try to fix this:

diff dgnc_neo.c.Qrig dgnc_neo.c
1119,1120c1119,1120
< if (signals & UART_MSR_DCD)
< ch->ch_mistat |= UART_MSR_DCD;

> if (signals & UART_MSR_DSR)
> ch->ch_mistat |= UART_MSR_DSR;
1122c1122
< ch->ch_mistat &= ~UART_MSR_DCD;

> ch->ch_mistat &= ~UART_MSR_DSR;

and rebuild driver.
Now:
ditty -a -n /dev/ttyn1b

DTR+ RTS+ CTS+ CD+ DSR+ RI+

Ok!?
But I see nearby another strange place in Altpin:

           if (swap &amp; UART_MSR_DSR) {
                      ^^^^^^^^^^^^
                    signals &amp;= ~UART_MSR_DCD;
                    signals |= UART_MSR_DSR;
            }
            if (swap &amp; UART_MSR_DSR) {
                    signals &amp;= ~UART_MSR_DSR;
                    signals |= UART_MSR_DCD;
            }

Is it correct?!