From patchwork Wed Mar 2 22:14:18 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Uribe de Leon, Armando" X-Patchwork-Id: 604121 X-Patchwork-Delegate: tony@atomide.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id p22LvEQQ016659 for ; Wed, 2 Mar 2011 21:57:14 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757714Ab1CBV4x (ORCPT ); Wed, 2 Mar 2011 16:56:53 -0500 Received: from bear.ext.ti.com ([192.94.94.41]:53214 "EHLO bear.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756306Ab1CBV4w (ORCPT ); Wed, 2 Mar 2011 16:56:52 -0500 Received: from dlep34.itg.ti.com ([157.170.170.115]) by bear.ext.ti.com (8.13.7/8.13.7) with ESMTP id p22LudjE020077 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 2 Mar 2011 15:56:39 -0600 Received: from legion.dal.design.ti.com (localhost [127.0.0.1]) by dlep34.itg.ti.com (8.13.7/8.13.7) with ESMTP id p22LucAk013400; Wed, 2 Mar 2011 15:56:39 -0600 (CST) Received: from localhost (x0095840-desktop.am.dhcp.ti.com [128.247.77.51]) by legion.dal.design.ti.com (8.11.7p1+Sun/8.11.7) with ESMTP id p22Lucf18193; Wed, 2 Mar 2011 15:56:38 -0600 (CST) From: Armando Uribe To: Cc: , Tony Lindgren , Russell King , , , , Hari Kanigeri , Armando Uribe , Fernando Guzman Lugo Subject: [PATCHv2] omap:mailbox: resolve hang issue Date: Wed, 2 Mar 2011 16:14:18 -0600 Message-Id: <1299104058-28565-1-git-send-email-x0095078@ti.com> X-Mailer: git-send-email 1.6.3.3 Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Wed, 02 Mar 2011 21:57:14 +0000 (UTC) diff --git a/arch/arm/mach-omap2/mailbox.c b/arch/arm/mach-omap2/mailbox.c index 394413d..011ca50 100644 --- a/arch/arm/mach-omap2/mailbox.c +++ b/arch/arm/mach-omap2/mailbox.c @@ -193,10 +193,12 @@ static void omap2_mbox_disable_irq(struct omap_mbox *mbox, omap_mbox_type_t irq) { struct omap_mbox2_priv *p = mbox->priv; - u32 l, bit = (irq == IRQ_TX) ? p->notfull_bit : p->newmsg_bit; - l = mbox_read_reg(p->irqdisable); - l &= ~bit; - mbox_write_reg(l, p->irqdisable); + u32 bit = (irq == IRQ_TX) ? p->notfull_bit : p->newmsg_bit; + + if (!cpu_is_omap44xx()) + bit = mbox_read_reg(p->irqdisable) & ~bit; + + mbox_write_reg(bit, p->irqdisable); } static void omap2_mbox_ack_irq(struct omap_mbox *mbox,