Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752148AbdHQHnf (ORCPT ); Thu, 17 Aug 2017 03:43:35 -0400 Received: from mail.kernel.org ([198.145.29.99]:33342 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751734AbdHQHnc (ORCPT ); Thu, 17 Aug 2017 03:43:32 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9A34C22B4F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=shawnguo@kernel.org Date: Thu, 17 Aug 2017 15:41:51 +0800 From: Shawn Guo To: Kiran Gunda Cc: gregkh@linuxfoundation.org, sboyd@codeaurora.org, Abhijeet Dharmapurikar , David Collins , linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-msm-owner@vger.kernel.org Subject: Re: [PATCH V2 11/12] spmi: pmic-arb: add support for HW version 5 Message-ID: <20170817074150.GA17549@dragon> References: <1501225847-27807-1-git-send-email-kgunda@codeaurora.org> <1501225847-27807-12-git-send-email-kgunda@codeaurora.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1501225847-27807-12-git-send-email-kgunda@codeaurora.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 Content-Length: 1994 Lines: 52 Hi Kiran, On Fri, Jul 28, 2017 at 12:40:46PM +0530, Kiran Gunda wrote: > From: David Collins > > Add support for version 5 of the SPMI PMIC arbiter. It utilizes > different offsets for registers than those found on version 3. > Also, the procedure to determine if writing and IRQ access is > allowed for a given PPID changes for version 5. > > Signed-off-by: David Collins > Signed-off-by: Kiran Gunda > Reviewed-by: Stephen Boyd > --- > drivers/spmi/spmi-pmic-arb.c | 236 +++++++++++++++++++++++++++++++++++++++---- > 1 file changed, 214 insertions(+), 22 deletions(-) > > diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c > index bc68e08..3f46445 100644 > --- a/drivers/spmi/spmi-pmic-arb.c > +++ b/drivers/spmi/spmi-pmic-arb.c > @@ -680,12 +701,19 @@ static int qpnpint_irq_domain_dt_translate(struct irq_domain *d, > ppid = intspec[0] << 8 | intspec[1]; > rc = pmic_arb->ver_ops->ppid_to_apid(pmic_arb, ppid); > if (rc < 0) { > - dev_err(&pmic_arb->spmic->dev, "failed to xlate sid = 0x%x, periph = 0x%x, irq = %x rc = %d\n", > + dev_err(&pmic_arb->spmic->dev, "failed to xlate sid = %#x, periph = %#x, irq = %u rc = %d\n", > intspec[0], intspec[1], intspec[2], rc); > return rc; > } > > apid = rc; > + if (pmic_arb->apid_data[apid].irq_ee != pmic_arb->ee) { > + dev_err(&pmic_arb->spmic->dev, "failed to xlate sid = %#x, periph = %#x, irq = %u: ee=%u but owner=%u\n", > + intspec[0], intspec[1], intspec[2], pmic_arb->ee, > + pmic_arb->apid_data[apid].irq_ee); > + return -ENODEV; > + } > + It seems to me that this check breaks pm8916_gpios on db410c. It causes the failure of pinctrl-spmi-gpio driver probing, because npins returned from platform_irq_count() call is 0. Shawn > /* Keep track of {max,min}_apid for bounding search during interrupt */ > if (apid > pmic_arb->max_apid) > pmic_arb->max_apid = apid;