Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753319AbcL2X1e (ORCPT ); Thu, 29 Dec 2016 18:27:34 -0500 Received: from mail-oi0-f42.google.com ([209.85.218.42]:34525 "EHLO mail-oi0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751416AbcL2X1d (ORCPT ); Thu, 29 Dec 2016 18:27:33 -0500 From: Andy Gross To: linux-kernel@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, will.deacon@arm.com, lorenzo.pieralisi@arm.com, Kevin Hilman , Srinivas Kandagatla , Bjorn Andersson , linux@armlinux.org.uk, Andy Gross Subject: [Patch v2 0/2] Support ARM SMCC SoC vendor quirks Date: Thu, 29 Dec 2016 17:27:24 -0600 Message-Id: <1483054046-3327-1-git-send-email-andy.gross@linaro.org> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1559 Lines: 39 At least one SoC vendor (Qualcomm) requires additional processing done during ARM SMCCC calls. As such, an additional parameter to the arm_smccc_smc is required to be able to handle SoC specific quirks. The Qualcomm quirk is necessary due to the fact that the scm call can be interrupted on Qualcomm ARM64 platforms. When this occurs, the call must be restarted using information that was passed back during the original smc call. The first patch in this series adds a quirk structure and also adds a quirk paramter to arm_smccc_smc calls. I added macros to allow users to choose the API they need. This keeps all of the current users who do not need quirks from having to change anything. The second patch adds the Qualcomm quirk and also implements the Qualcomm firmware changes required to handle the restarting of the interrupted SMC call. The original patch set for the SMCCC session ID is located at: https://lkml.org/lkml/2016/8/20/7 Changes from v1: - Add macros to handle both use cases per review comments Andy Gross (2): arm: kernel: Add SMC structure parameter firmware: qcom: scm: Fix interrupted SCM calls arch/arm/kernel/armksyms.c | 2 +- arch/arm/kernel/smccc-call.S | 7 ++++--- arch/arm64/kernel/arm64ksyms.c | 2 +- arch/arm64/kernel/asm-offsets.c | 7 +++++-- arch/arm64/kernel/smccc-call.S | 16 ++++++++++++---- drivers/firmware/qcom_scm-64.c | 13 ++++++++++--- include/linux/arm-smccc.h | 39 ++++++++++++++++++++++++++++++++------- 7 files changed, 65 insertions(+), 21 deletions(-) -- 1.9.1