[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v6 08/15] emul/ns16x50: implement MCR/MSR registers



On Fri, Sep 05, 2025 at 06:42:23PM -0700, Stefano Stabellini wrote:
> On Fri, 5 Sep 2025, dmukhin@xxxxxxx wrote:
> > From: Denis Mukhin <dmukhin@xxxxxxxx> 
[..]
> > +            /* Calculate changes in modem status */
> > +            if ( (msr_curr & UART_MSR_CTS) ^ (msr_next & UART_MSR_CTS) )
> > +                msr_delta |= UART_MSR_DCTS;
> > +            if ( (msr_curr & UART_MSR_DSR) ^ (msr_next & UART_MSR_DSR) )
> > +                msr_delta |= UART_MSR_DDSR;
> > +            if ( (msr_curr & UART_MSR_RI)  & (msr_next & UART_MSR_RI) )
> > +                msr_delta |= UART_MSR_TERI;
> 
> Should this be:
> 
> if ( (msr_curr & UART_MSR_RI) && !(msr_next & UART_MSR_RI) )
>     msr_delta |= UART_MSR_TERI;
> 
> ?

Thanks for the catch!

TL16C550C spec (7.7.10 Modem Status Register (MSR)) says TERI is set on
RI's 0->1 transition:

   if ( !(msr_curr & UART_MSR_RI) && (msr_next & UART_MSR_RI) )



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.