From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755971AbbCLTnc (ORCPT ); Thu, 12 Mar 2015 15:43:32 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:57871 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755393AbbCLTn2 (ORCPT ); Thu, 12 Mar 2015 15:43:28 -0400 Date: Thu, 12 Mar 2015 14:43:25 -0500 From: Andy Gross To: Lina Iyer Cc: Bjorn Andersson , Ohad Ben-Cohen , linux-arm-msm@vger.kernel.org, Jeffrey Hugo , Suman Anna , linux-kernel@vger.kernel.org Subject: Re: [PATCH v6 2/2] hwspinlock: qcom: Add support for Qualcomm HW Mutex block Message-ID: <20150312194325.GB31345@qualcomm.com> References: <1425076217-10415-1-git-send-email-bjorn.andersson@sonymobile.com> <1425076217-10415-2-git-send-email-bjorn.andersson@sonymobile.com> <20150312193150.GB497@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150312193150.GB497@linaro.org> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Mar 12, 2015 at 01:31:50PM -0600, Lina Iyer wrote: > On Fri, Feb 27 2015 at 15:30 -0700, Bjorn Andersson wrote: > >Add driver for Qualcomm Hardware Mutex block found in many Qualcomm > >SoCs. > > > >Based on initial effort by Kumar Gala > > > >Signed-off-by: Bjorn Andersson > >--- > > > > [...] > > >+#include "hwspinlock_internal.h" > >+ > >+#define QCOM_MUTEX_APPS_PROC_ID 1 > Hi Bjorn, > > Not all locks use 1 to indicate its locked. For example lock index 7 is > used by cpuidle driver between HLOS and SCM. It uses a write value of > (128 + smp_processor_id()) to lock. So this was the lock_rlock_id API? > > A cpu acquires the remote spin lock, and calls into SCM to terminate the > power down sequence while passing the state of the L2. The lock help > guarantee the last core to hold the spinlock to have the most up to date > value for the L2 flush flag. > > >+#define QCOM_MUTEX_NUM_LOCKS 32 > > Also, talking to Jeff it seems like that out of the 32 locks defined > only 8 is accessible from Linux. So its unnecessary and probably > incorrect to assume that there are 32 locks available. Out of curiosity, this is a TZ thing? If so, we'd expect issues if someone decides to utilize resources that, while technically are present, are unusable by that processor. This is not that much different from someone misconfiguring an EE on a DMA controller. > >+{ > >+ struct regmap_field *field = lock->priv; > >+ u32 lock_owner; > >+ int ret; > >+ > >+ ret = regmap_field_write(field, QCOM_MUTEX_APPS_PROC_ID); > >+ if (ret) > >+ return ret; > >+ > >+ ret = regmap_field_read(field, &lock_owner); > >+ if (ret) > >+ return ret; > >+ > >+ return lock_owner == QCOM_MUTEX_APPS_PROC_ID; > >+} > >+ > -- Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project