Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp429402ybl; Tue, 7 Jan 2020 23:03:55 -0800 (PST) X-Google-Smtp-Source: APXvYqzOW31yF2B73BuQi9ORszsSQngZP7id/BYECSWmMNuf96hdLG6HdyVmOWFw/saR0xLOydfI X-Received: by 2002:a05:6830:4ca:: with SMTP id s10mr3129343otd.268.1578467035448; Tue, 07 Jan 2020 23:03:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578467035; cv=none; d=google.com; s=arc-20160816; b=e/usfIDaT5zJKjnTT/Un6QRQvf++aiPXvQIKSO3Y05qL9k+gh4jkPUMEwH9FiZbkE+ ea51Bz35+0s25SZ1UDEm+jNMCLCvAWPH+hOACRVWMgHUZ0SY5D7hLXHvGwDLtqVlqD5c q1VNalm4ZCDHAxkE+F4Ra5zO82j1taXY7EoYekNds583/HLJkluSflP4x6IAforNH0fk e/shPC3c0Nbv1H/2K9IWdtNWG+ObNnDbJbz80YF3+fPduJSKgdGpOdDnKEBURXWOGGRB WGuD4GEcELZ7FonPko4PnMV02Tj3FqzBe8W+JLKJxTtLtAVr5YQHynt0Fh+I09oev6zF K8sw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:date:user-agent:from:to:subject:cc :references:in-reply-to:content-transfer-encoding:mime-version :message-id:dkim-signature; bh=D87ghgdaSO3k8NnHY1l/nPSvxAChoLFL85zOiWCVIOQ=; b=Mq57FGivfoQmYPxR6/wXxI1jwKc2E4nChoforn43URbQuyHWSqcShQ7adiQ+Ekk1ik CDS9wq0hSIy/fedTEjokHixMRxoy6YRGQcCEaps1qg1b2TAD+U9OLd17ZhHowh0b+o+b Mvg6uc2d4gWK55yZcTynWy9zRdn9xYNFPlSPVae1uRppIwQ2g6RRscpmHhygDfJVOne1 cNoSVLGnmM1iol280bKCHTFi96iQzHaDF2Tm8pobEtC+YTGbQJExqCWsvE4NGoiq0ZDa 4POnOtckuDJCRyIlARDHSeqHWJ/yEU9meK5siI2ECK3qwz2EtCW3xjgPNMWmMkgq5tSk b02A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=nt1b70vM; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w2si1270156oib.252.2020.01.07.23.03.43; Tue, 07 Jan 2020 23:03:55 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=nt1b70vM; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726290AbgAHHDC (ORCPT + 99 others); Wed, 8 Jan 2020 02:03:02 -0500 Received: from mail-pj1-f68.google.com ([209.85.216.68]:37386 "EHLO mail-pj1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726079AbgAHHDB (ORCPT ); Wed, 8 Jan 2020 02:03:01 -0500 Received: by mail-pj1-f68.google.com with SMTP id m13so658253pjb.2 for ; Tue, 07 Jan 2020 23:03:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=message-id:mime-version:content-transfer-encoding:in-reply-to :references:cc:subject:to:from:user-agent:date; bh=D87ghgdaSO3k8NnHY1l/nPSvxAChoLFL85zOiWCVIOQ=; b=nt1b70vMydunA/QR1B2tf2BIXLFnIBabYtlPrStWr++qSGtx203ggsaQ8g2aawn/Sp lvAKA8Iud+EBWvE0Vqa8KhY/8fPBzChYdUQpfn7ZZJxCnJ2/36qCpJbupzJyMLeRncZk 404Fg2eeY21Q2YtkI9e2f6VQQU1OxeIRWBsBc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:mime-version :content-transfer-encoding:in-reply-to:references:cc:subject:to:from :user-agent:date; bh=D87ghgdaSO3k8NnHY1l/nPSvxAChoLFL85zOiWCVIOQ=; b=LLoIinMBoNYOgKb6Ea1OhcooS5KEPPvX6CY+YJrKWsa13AGAPEemWH9qQ+WiYOTlfe mRk3CzVWcAX0eKJZmtPI9NKOgyEBCZEB3TqJCwBsudsaassabZybuvbGik4pe2I08Yt7 uaoKFPXeLQKNpTy9OdYtf1Q0OOfqnmy6ZyiRd81D5rDaVUKqcAV0NoDRh5Ery/8mpclI bp3KziW73V9MasgiviQ/pPvWPbIA5fsALsiIhJj0gsuXIZATYwOsmhHqQXebh0mBed7N k44oFuOU7TS8X3qjA65bAMTJ2U6cRUkDmmNv3RuPkkYV4SrKYHvJYZff2S1aFtCatCLf 3Vcg== X-Gm-Message-State: APjAAAXrS0rYyHVZmVW3ItzhZbokIMa62Vf42ItM+L3j3KnHSdgdVoeb eSCiYUkkibq2b0VeLf0llYqnvA== X-Received: by 2002:a17:90a:2808:: with SMTP id e8mr2750843pjd.63.1578466981196; Tue, 07 Jan 2020 23:03:01 -0800 (PST) Received: from chromium.org ([2620:15c:202:1:fa53:7765:582b:82b9]) by smtp.gmail.com with ESMTPSA id u18sm2168662pgn.9.2020.01.07.23.03.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jan 2020 23:03:00 -0800 (PST) Message-ID: <5e157ea4.1c69fb81.8361e.6698@mx.google.com> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable In-Reply-To: <1578431066-19600-18-git-send-email-eberman@codeaurora.org> References: <1578431066-19600-1-git-send-email-eberman@codeaurora.org> <1578431066-19600-18-git-send-email-eberman@codeaurora.org> Cc: Elliot Berman , saiprakash.ranjan@codeaurora.org, tsoni@codeaurora.org, sidgup@codeaurora.org, psodagud@codeaurora.org, Brian Masney , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v5 17/17] firmware: qcom_scm: Dynamically support SMCCC and legacy conventions To: Bjorn Andersson , Elliot Berman , Stephan Gerhold , agross@kernel.org From: Stephen Boyd User-Agent: alot/0.8.1 Date: Tue, 07 Jan 2020 23:02:59 -0800 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org (Nitpick trivia late at night) Quoting Elliot Berman (2020-01-07 13:04:26) > diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c > index 895f148..059bb0f 100644 > --- a/drivers/firmware/qcom_scm.c > +++ b/drivers/firmware/qcom_scm.c > @@ -72,6 +72,13 @@ static struct qcom_scm_wb_entry qcom_scm_wb[] =3D { > { .flag =3D QCOM_SCM_FLAG_WARMBOOT_CPU3 }, > }; > =20 > +static const char *qcom_scm_convention_names[] =3D { Can this be const char * const ? > + [SMC_CONVENTION_UNKNOWN] =3D "unknown", > + [SMC_CONVENTION_ARM_32] =3D "smc arm 32", > + [SMC_CONVENTION_ARM_64] =3D "smc arm 64", > + [SMC_CONVENTION_LEGACY] =3D "smc legacy", > +}; > + > static struct qcom_scm *__scm; > =20 > static int qcom_scm_clk_enable(void) > @@ -107,6 +114,143 @@ static void qcom_scm_clk_disable(void) > clk_disable_unprepare(__scm->bus_clk); > } > =20 > +static int __qcom_scm_is_call_available(struct device *dev, u32 svc_id, > + u32 cmd_id); > + > +enum qcom_scm_convention qcom_scm_convention; > +static bool has_queried __read_mostly; > +static DEFINE_SPINLOCK(query_lock); > + > +static void __query_convention(void) > +{ > + unsigned long flags; > + struct qcom_scm_desc desc =3D { > + .svc =3D QCOM_SCM_SVC_INFO, > + .cmd =3D QCOM_SCM_INFO_IS_CALL_AVAIL, > + .args[0] =3D SCM_SMC_FNID(QCOM_SCM_SVC_INFO, > + QCOM_SCM_INFO_IS_CALL_AVAIL) | > + (ARM_SMCCC_OWNER_SIP << ARM_SMCCC_OWNER_SHIFT), > + .arginfo =3D QCOM_SCM_ARGS(1), > + .owner =3D ARM_SMCCC_OWNER_SIP, > + }; > + struct qcom_scm_res res; > + int ret; > + > + spin_lock_irqsave(&query_lock, flags); > + if (has_queried) > + goto out; > + > + qcom_scm_convention =3D SMC_CONVENTION_ARM_64; > + // Device isn't required as there is only one argument - no device > + // needed to dma_map_single to secure world This isn't kernel style for multiline comments. Please use /* and */. > + ret =3D scm_smc_call(NULL, &desc, &res, true); > + if (!ret && res.result[0] =3D=3D 1) > + goto out; > +