[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <0CE8B6BE3C4AD74AB97D9D29BD24E552015397DD@CORPEXCH1.na.ads.idt.com>
Date: Tue, 16 Nov 2010 06:00:42 -0800
From: "Bounine, Alexandre" <Alexandre.Bounine@....com>
To: "Shaohui Xie" <b21989@...escale.com>, <akpm@...ux-foundation.org>
Cc: <linux-kernel@...r.kernel.org>, <linuxppc-dev@...ts.ozlabs.org>,
"Li Yang" <leoli@...escale.com>,
"Kumar Gala" <kumar.gala@...escale.com>,
"Roy Zang" <tie-fei.zang@...escale.com>
Subject: RE: [PATCH 4/4][v2] rapidio, powerpc/85xx: Error interrupt handler for sRIO.
> From: Shaohui Xie [mailto:b21989@...escale.com]
>
> The sRIO controller reports errors to the core with one signal, it
uses
> register EPWISR to provides the core quick access to where the error
occurred.
> The EPWISR indicates that there are 4 interrupts sources, port1,
port2, message
> unit and port write receive, but the sRIO driver does not support
port2
> for now, still the handler takes care of port2.
> Currently the handler only clear error status without any recovery.
>
Do these dual-RIO controllers have only one port-write interrupt?
(sorry, user manuals are not available for download from FSL).
> @@ -1082,14 +1142,24 @@ fsl_rio_port_write_handler(int irq, void
*dev_instance)
> ipwsr = in_be32(&priv->msg_regs->pwsr);
>
> epwisr = in_be32(priv->regs_win + RIO_EPWISR);
> - if (epwisr & 0x80000000) {
> + if (epwisr & EPWISR_ERR_PINT1) {
> tmp = in_be32(priv->regs_win + RIO_LTLEDCSR);
> pr_info("RIO_LTLEDCSR = 0x%x\n", tmp);
> - out_be32(priv->regs_win + RIO_LTLEDCSR, 0);
> + port_error_handler(port, 0);
> + }
> +
> + if (epwisr & EPWISR_ERR_PINT2) {
> + pr_info("RIO: port2 error\n");
> + port_error_handler(port, 1);
> + }
> +
> + if (epwisr & EPWISR_ERR_MU) {
> + pr_info("RIO: message unit error\n");
> + msg_unit_error_handler(port);
> }
>
> - if (!(epwisr & 0x00000001))
> - return IRQ_HANDLED;
> + if (!(epwisr & EPWISR_ERR_PW))
> + return IRQ_NONE;
>
> #ifdef DEBUG_PW
> pr_debug("PW Int->IPWMR: 0x%08x IPWSR: 0x%08x (", ipwmr, ipwsr);
This part is out of sync with mainline code tree (37-rc1). Probably it
should be updated to make it easier to apply your patch. Besides that,
works as expected on my RIO setup.
Regards,
Alex.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists