From patchwork Thu Jun 3 06:34:12 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hiroshi DOYU X-Patchwork-Id: 104023 X-Patchwork-Delegate: hiroshi.doyu@nokia.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.3/8.14.3) with ESMTP id o536Yxlq027667 for ; Thu, 3 Jun 2010 06:34:59 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933332Ab0FCGe6 (ORCPT ); Thu, 3 Jun 2010 02:34:58 -0400 Received: from smtp.nokia.com ([192.100.122.233]:35383 "EHLO mgw-mx06.nokia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932855Ab0FCGey (ORCPT ); Thu, 3 Jun 2010 02:34:54 -0400 Received: from esebh106.NOE.Nokia.com (esebh106.ntc.nokia.com [172.21.138.213]) by mgw-mx06.nokia.com (Switch-3.3.3/Switch-3.3.3) with ESMTP id o536Ymn5027249; Thu, 3 Jun 2010 09:34:50 +0300 Received: from vaebh104.NOE.Nokia.com ([10.160.244.30]) by esebh106.NOE.Nokia.com with Microsoft SMTPSVC(6.0.3790.4675); Thu, 3 Jun 2010 09:34:40 +0300 Received: from mgw-sa02.ext.nokia.com ([147.243.1.48]) by vaebh104.NOE.Nokia.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.4675); Thu, 3 Jun 2010 09:34:38 +0300 Received: from oreo.research.nokia.com (esdhcp041152.research.nokia.com [172.21.41.152]) by mgw-sa02.ext.nokia.com (Switch-3.3.3/Switch-3.3.3) with ESMTP id o536YbKx031083 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO); Thu, 3 Jun 2010 09:34:37 +0300 Received: from doyu by oreo.research.nokia.com with local (Exim 4.69) (envelope-from ) id 1OK40j-0007gp-3d; Thu, 03 Jun 2010 09:34:37 +0300 From: Hiroshi DOYU To: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Hiroshi DOYU , Fernando Guzman Lugo Subject: [PATCH 04/10] Mailbox: new mutext lock for h/w mailbox configuration Date: Thu, 3 Jun 2010 09:34:12 +0300 Message-Id: <1275546858-29507-5-git-send-email-Hiroshi.DOYU@nokia.com> X-Mailer: git-send-email 1.7.1.rc1 In-Reply-To: <1275546858-29507-1-git-send-email-Hiroshi.DOYU@nokia.com> References: <1275546858-29507-1-git-send-email-Hiroshi.DOYU@nokia.com> X-OriginalArrivalTime: 03 Jun 2010 06:34:38.0750 (UTC) FILETIME=[D74443E0:01CB02E6] X-Nokia-AV: Clean 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.3 (demeter.kernel.org [140.211.167.41]); Thu, 03 Jun 2010 06:34:59 +0000 (UTC) diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c index 72efbe5..986002b 100644 --- a/arch/arm/plat-omap/mailbox.c +++ b/arch/arm/plat-omap/mailbox.c @@ -34,6 +34,7 @@ static struct omap_mbox *mboxes; static DEFINE_RWLOCK(mboxes_lock); static int mbox_configured; +static DEFINE_MUTEX(mbox_configured_lock); /* Mailbox FIFO handle functions */ static inline mbox_msg_t mbox_fifo_read(struct omap_mbox *mbox) @@ -250,16 +251,16 @@ static int omap_mbox_startup(struct omap_mbox *mbox) struct omap_mbox_queue *mq; if (likely(mbox->ops->startup)) { - write_lock(&mboxes_lock); + mutex_lock(&mbox_configured_lock); if (!mbox_configured) ret = mbox->ops->startup(mbox); if (unlikely(ret)) { - write_unlock(&mboxes_lock); + mutex_unlock(&mbox_configured_lock); return ret; } mbox_configured++; - write_unlock(&mboxes_lock); + mutex_unlock(&mbox_configured_lock); } ret = request_irq(mbox->irq, mbox_interrupt, IRQF_SHARED, @@ -306,12 +307,12 @@ static void omap_mbox_fini(struct omap_mbox *mbox) mbox_queue_free(mbox->rxq); if (unlikely(mbox->ops->shutdown)) { - write_lock(&mboxes_lock); + mutex_lock(&mbox_configured_lock); if (mbox_configured > 0) mbox_configured--; if (!mbox_configured) mbox->ops->shutdown(mbox); - write_unlock(&mboxes_lock); + mutex_unlock(&mbox_configured_lock); } }