Subject: Re: Regression in 32-bit ppc kernel

From: Larry Finger <[email-masked]>
Date: Sat, 28 Apr 2012 13:09:22 -0500

On 04/27/2012 07:42 PM, Benjamin Herrenschmidt wrote:
>
> Ok, so you do have a serial port, probably two even :-) One of them is
> connected to the infra red transceiver and the other one is probably
> connected to the internal modem.
>
> (The modem itself might not use it, some of these machines use an
> i2s/i2c modem, some use a usb modem, but the serial port is wired to the
> connector regardless).

I have done a little more debugging. The problem is definitely coming from 
drivers/tty/serial/pmac_zilog.c. I am getting ChanB interrupts while open, which 
causes the following code segment to return IRQ_NONE:

        if (r3 & (CHBEXT | CHBTxIP | CHBRxIP)) {
                if (!ZS_IS_OPEN(uap_a)) {
                        pmz_debug("ChanB interrupt while open !\n");
                        goto skip_b;
                }
                write_zsreg(uap_b, R0, RES_H_IUS);
                zssync(uap_b);
                if (r3 & CHBEXT)

When this section is entered, r3 == 0x2 (CHBTxIP).

Larry