From patchwork Tue Jul 7 05:32:07 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SUGIOKA Toshinobu X-Patchwork-Id: 34375 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id n675WDsO012379 for ; Tue, 7 Jul 2009 05:32:13 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751367AbZGGFcH (ORCPT ); Tue, 7 Jul 2009 01:32:07 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751930AbZGGFcH (ORCPT ); Tue, 7 Jul 2009 01:32:07 -0400 Received: from ns.itonet.jp ([61.199.205.34]:35350 "EHLO ns.itonet.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751367AbZGGFcG (ORCPT ); Tue, 7 Jul 2009 01:32:06 -0400 Received: from xpsugioka (xpsugioka.itonet.co.jp [192.168.0.200]) by ns.itonet.jp (8.11.6/8.11.6) with ESMTP id n675W7p01243; Tue, 7 Jul 2009 14:32:07 +0900 Message-Id: <4.2.0.58.J.20090707142727.03937f10@router.itonet.co.jp> X-Sender: sugioka@gate.itonet.co.jp X-Mailer: QUALCOMM Windows Eudora Pro Version 4.2.0.58.J Date: Tue, 07 Jul 2009 14:32:07 +0900 To: lethal@linux-sh.org From: SUGIOKA Toshinobu Subject: [PATCH] fix sci interrupt handler Cc: linux-sh@vger.kernel.org Mime-Version: 1.0 Sender: linux-sh-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sh@vger.kernel.org It seems that interrupt handler in sh-sci.c does not work for SCI. Signed-off-by: SUGIOKA Toshinobu SUGIOKA Toshinobu --- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c index 12bd646..8e2feb5 100644 --- a/drivers/serial/sh-sci.c +++ b/drivers/serial/sh-sci.c @@ -716,16 +716,16 @@ static irqreturn_t sci_mpxed_interrupt(int irq, void *ptr) err_enabled = scr_status & (SCI_CTRL_FLAGS_REIE | SCI_CTRL_FLAGS_RIE); /* Tx Interrupt */ - if ((ssr_status & 0x0020) && (scr_status & SCI_CTRL_FLAGS_TIE)) + if ((ssr_status & SCxSR_TDxE(port)) && (scr_status & SCI_CTRL_FLAGS_TIE)) ret = sci_tx_interrupt(irq, ptr); /* Rx Interrupt */ - if ((ssr_status & 0x0002) && (scr_status & SCI_CTRL_FLAGS_RIE)) + if ((ssr_status & SCxSR_RDxF(port)) && (scr_status & SCI_CTRL_FLAGS_RIE)) ret = sci_rx_interrupt(irq, ptr); /* Error Interrupt */ - if ((ssr_status & 0x0080) && err_enabled) + if ((ssr_status & SCxSR_ERRORS(port)) && err_enabled) ret = sci_er_interrupt(irq, ptr); /* Break Interrupt */ - if ((ssr_status & 0x0010) && err_enabled) + if ((ssr_status & SCxSR_BRK(port)) && err_enabled) ret = sci_br_interrupt(irq, ptr); return ret;