From patchwork Mon Jul 8 15:43:53 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sudeep Holla X-Patchwork-Id: 168673 Delivered-To: patch@linaro.org Received: by 2002:a92:4782:0:0:0:0:0 with SMTP id e2csp7327311ilk; Mon, 8 Jul 2019 08:44:32 -0700 (PDT) X-Google-Smtp-Source: APXvYqy0dK3BwzZ1aBaU2SF3UPvEeLegVx17C/gi4n+6Zc2IQfAf8xnLR2u6aUGxA7R2qpVpTogC X-Received: by 2002:a17:90a:32c7:: with SMTP id l65mr26727668pjb.1.1562600672029; Mon, 08 Jul 2019 08:44:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562600672; cv=none; d=google.com; s=arc-20160816; b=X2FOope9lc3eW6FEdbr80F8HuFKXZRADydY8IgfSlIcGgmcWsscSeSaw1xquw0ddaF S6CpjrFa5rac+8gcTw8MgfJWKaj5GFIdTVlfNfB5cAyx3/hXzn61j3UIQZplEeVS//Wx Dph+Wj5NXeN2cneS+CmrV3gXGLLxldIgDprM0a2rhobaPh2NKAV/qm9C8OAWDDtgR5Pp OL8PosOviUrffJJBc9u1md0rckFHYmRHp2lvyQisitqQLkt57EGVRnDbm7MIEMKhc6OS Yodhn83Q9XELit+Vp/Ptc7veErnYUk3dvOS0w0Fcgj/hpywl+6pr59ewIiMwlG5wSGTA HBKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=lPW1mgDpd0FkjGSP4cRRH/Evl7WkTB67m18Duhem4So=; b=wb3jdps3oau6Ak0XAfSRGvQ75Gwj55Fh/2GcY6Ff5MB/H+4Nd06eS/fryecMR3rcI/ fVBoAc3hBjGSTxDVMYJPIF/u1OHYhMnCPJ3QPOOV3Gvbwv8tCqcNqt/QQrmb+z/L0mjm eBDVqbuo4QF8srWdpBZIp7yAXg4fmF7Wxvt7y8KLpInVALjOlakZJi8UmMtjg2tP5Cvf FcajQhLWxf2iOzMWMKrnOYvvFE7v+5rnIBWCn//A7uA/VVKwRpP+BqrUSWg+cadTVJjZ WVTe/IO+RGy88RJ089EEjroYoGi9BJJvGPebX4mFo3SJOEAw74Yz9/uz4zMmOc4VOKck XnAw== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b8si14787840plk.140.2019.07.08.08.44.31; Mon, 08 Jul 2019 08:44:32 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2403858AbfGHPoO (ORCPT + 30 others); Mon, 8 Jul 2019 11:44:14 -0400 Received: from foss.arm.com ([217.140.110.172]:52006 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391211AbfGHPoI (ORCPT ); Mon, 8 Jul 2019 11:44:08 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 28994CFC; Mon, 8 Jul 2019 08:44:08 -0700 (PDT) Received: from usa.arm.com (e107155-lin.cambridge.arm.com [10.1.196.42]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 024BF3F59C; Mon, 8 Jul 2019 08:44:06 -0700 (PDT) From: Sudeep Holla To: linux-arm-kernel@lists.infradead.org Cc: Sudeep Holla , linux-kernel@vger.kernel.org, Peng Fan , Jim Quinlan , Bo Zhang , Volodymyr Babchuk , Nishad Kamdar Subject: [PATCH 1/6] firmware: arm_scmi: Use the correct style for SPDX License Identifier Date: Mon, 8 Jul 2019 16:43:53 +0100 Message-Id: <20190708154358.16227-2-sudeep.holla@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190708154358.16227-1-sudeep.holla@arm.com> References: <20190708154358.16227-1-sudeep.holla@arm.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Nishad Kamdar This patch corrects the SPDX License Identifier style in header file related to Firmware Drivers for ARM SCMI Message Protocol. For C header files Documentation/process/license-rules.rst mandates C-like comments(opposed to C source files where C++ style should be used) Changes made by using a script provided by Joe Perches here: https://lkml.org/lkml/2019/2/7/46 Suggested-by: Joe Perches Signed-off-by: Nishad Kamdar Signed-off-by: Sudeep Holla --- drivers/firmware/arm_scmi/common.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.17.1 diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm_scmi/common.h index 937a930ce87d..44fd4f9404a9 100644 --- a/drivers/firmware/arm_scmi/common.h +++ b/drivers/firmware/arm_scmi/common.h @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: GPL-2.0 +/* SPDX-License-Identifier: GPL-2.0 */ /* * System Control and Management Interface (SCMI) Message Protocol * driver common header file containing some definitions, structures From patchwork Mon Jul 8 15:43:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sudeep Holla X-Patchwork-Id: 168669 Delivered-To: patch@linaro.org Received: by 2002:a92:4782:0:0:0:0:0 with SMTP id e2csp7327055ilk; Mon, 8 Jul 2019 08:44:17 -0700 (PDT) X-Google-Smtp-Source: APXvYqwV9t652/PTKLduJp0o/l7FS3+miWCyBJjx8nmA9nnP04a6+fTgeNN3i7La/JfZwyu0RBF7 X-Received: by 2002:a17:902:16f:: with SMTP id 102mr24906811plb.94.1562600657056; Mon, 08 Jul 2019 08:44:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562600657; cv=none; d=google.com; s=arc-20160816; b=YaqcFMg+b32ixxYs/0lRCngtrDsAcCDFRhzIgTyPTysr15PjcVvCh1X+4C4xuYuqnB cYwGJ6uYOnXaYaJnqhiR9t4hTBSXVE6WTaBk1QIxfIA0gwlWqszmpBMSth9rA4udUVnf j9Fn+oVyH8stnqTvq2hv5olio2pppF6t1Axu+79Ej8BhtrHsXGjWtpLy35Ne3Xb0yV1M Z9Zq87BXkxCYuWhJPb67JRlAqhv5ZXDDk3UN+T3uPjU4b8lioOYqfEJscsxSCNht34sC Aqc7tbNCj+mwlDak3iFOZAoQOXmwPT08ZUFZjC8kMYvSHLEAhYBbYxDMp9tfaWf/qCri OS5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=awt3BzpI0//iCh1ptntq/7xRjXLpiELKCJNyrNuLlzE=; b=J4v5+MuzW4FwazrqT/RH7nrVnfvxby+rbOmmCqH4K4nanf8/swyeJeyfJkakkED6Qu IsgX6AD56lO7fm0o/8417GFKJwBSaYpeyPNLoYh4SfV0MWkXdPGF7tUJeOpCpUH6BqFU bWGQVZDBKSSxLFqQkh+jJ2mRY7Lgtdt2PVVRGg6ZpvDYzyXwi/Rf1waLDPk079i8AOyJ pQKqPmsYeKNKu0RfAN8+Dyo/+aOXYZBLDKrmLU2ffcKD6ovhA+90VLU5bdJFgI80DX4e rLfc7Q3QUwsCkH58mnyV5eq/SOpdG5QVSJbIyt8ouNHLw8G+lahXJt1Ke24p33mmsfBx B2pw== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m5si17362557plt.167.2019.07.08.08.44.16; Mon, 08 Jul 2019 08:44:17 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2403870AbfGHPoP (ORCPT + 30 others); Mon, 8 Jul 2019 11:44:15 -0400 Received: from foss.arm.com ([217.140.110.172]:52020 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390268AbfGHPoK (ORCPT ); Mon, 8 Jul 2019 11:44:10 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5FCFB1509; Mon, 8 Jul 2019 08:44:09 -0700 (PDT) Received: from usa.arm.com (e107155-lin.cambridge.arm.com [10.1.196.42]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 5CE6A3F59C; Mon, 8 Jul 2019 08:44:08 -0700 (PDT) From: Sudeep Holla To: linux-arm-kernel@lists.infradead.org Cc: Sudeep Holla , linux-kernel@vger.kernel.org, Peng Fan , Jim Quinlan , Bo Zhang , Volodymyr Babchuk Subject: [PATCH 2/6] firmware: arm_scmi: Align few names in sensors protocol with SCMI specification Date: Mon, 8 Jul 2019 16:43:54 +0100 Message-Id: <20190708154358.16227-3-sudeep.holla@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190708154358.16227-1-sudeep.holla@arm.com> References: <20190708154358.16227-1-sudeep.holla@arm.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Looks like more code developed during the draft versions of the specification slipped through and they don't match the final released version. This seem to have happened only with sensor protocol. Renaming few command and function names here to match exactly with the released version of SCMI specification for ease of maintenance. Signed-off-by: Sudeep Holla --- drivers/firmware/arm_scmi/sensors.c | 28 +++++++++++++++------------- include/linux/scmi_protocol.h | 12 ++++++------ 2 files changed, 21 insertions(+), 19 deletions(-) -- 2.17.1 diff --git a/drivers/firmware/arm_scmi/sensors.c b/drivers/firmware/arm_scmi/sensors.c index 0e94ab56f679..17dbabd8a94a 100644 --- a/drivers/firmware/arm_scmi/sensors.c +++ b/drivers/firmware/arm_scmi/sensors.c @@ -9,8 +9,8 @@ enum scmi_sensor_protocol_cmd { SENSOR_DESCRIPTION_GET = 0x3, - SENSOR_CONFIG_SET = 0x4, - SENSOR_TRIP_POINT_SET = 0x5, + SENSOR_TRIP_POINT_NOTIFY = 0x4, + SENSOR_TRIP_POINT_CONFIG = 0x5, SENSOR_READING_GET = 0x6, }; @@ -42,9 +42,10 @@ struct scmi_msg_resp_sensor_description { } desc[0]; }; -struct scmi_msg_set_sensor_config { +struct scmi_msg_sensor_trip_point_notify { __le32 id; __le32 event_control; +#define SENSOR_TP_NOTIFY_ALL BIT(0) }; struct scmi_msg_set_sensor_trip_point { @@ -160,15 +161,15 @@ static int scmi_sensor_description_get(const struct scmi_handle *handle, return ret; } -static int -scmi_sensor_configuration_set(const struct scmi_handle *handle, u32 sensor_id) +static int scmi_sensor_trip_point_notify(const struct scmi_handle *handle, + u32 sensor_id, bool enable) { int ret; - u32 evt_cntl = BIT(0); + u32 evt_cntl = enable ? SENSOR_TP_NOTIFY_ALL : 0; struct scmi_xfer *t; - struct scmi_msg_set_sensor_config *cfg; + struct scmi_msg_sensor_trip_point_notify *cfg; - ret = scmi_xfer_get_init(handle, SENSOR_CONFIG_SET, + ret = scmi_xfer_get_init(handle, SENSOR_TRIP_POINT_NOTIFY, SCMI_PROTOCOL_SENSOR, sizeof(*cfg), 0, &t); if (ret) return ret; @@ -183,15 +184,16 @@ scmi_sensor_configuration_set(const struct scmi_handle *handle, u32 sensor_id) return ret; } -static int scmi_sensor_trip_point_set(const struct scmi_handle *handle, - u32 sensor_id, u8 trip_id, u64 trip_value) +static int +scmi_sensor_trip_point_config(const struct scmi_handle *handle, u32 sensor_id, + u8 trip_id, u64 trip_value) { int ret; u32 evt_cntl = SENSOR_TP_BOTH; struct scmi_xfer *t; struct scmi_msg_set_sensor_trip_point *trip; - ret = scmi_xfer_get_init(handle, SENSOR_TRIP_POINT_SET, + ret = scmi_xfer_get_init(handle, SENSOR_TRIP_POINT_CONFIG, SCMI_PROTOCOL_SENSOR, sizeof(*trip), 0, &t); if (ret) return ret; @@ -255,8 +257,8 @@ static int scmi_sensor_count_get(const struct scmi_handle *handle) static struct scmi_sensor_ops sensor_ops = { .count_get = scmi_sensor_count_get, .info_get = scmi_sensor_info_get, - .configuration_set = scmi_sensor_configuration_set, - .trip_point_set = scmi_sensor_trip_point_set, + .trip_point_notify = scmi_sensor_trip_point_notify, + .trip_point_config = scmi_sensor_trip_point_config, .reading_get = scmi_sensor_reading_get, }; diff --git a/include/linux/scmi_protocol.h b/include/linux/scmi_protocol.h index 9ff2e9357e9a..ea6b72018752 100644 --- a/include/linux/scmi_protocol.h +++ b/include/linux/scmi_protocol.h @@ -167,9 +167,9 @@ enum scmi_sensor_class { * * @count_get: get the count of sensors provided by SCMI * @info_get: get the information of the specified sensor - * @configuration_set: control notifications on cross-over events for + * @trip_point_notify: control notifications on cross-over events for * the trip-points - * @trip_point_set: selects and configures a trip-point of interest + * @trip_point_config: selects and configures a trip-point of interest * @reading_get: gets the current value of the sensor */ struct scmi_sensor_ops { @@ -177,10 +177,10 @@ struct scmi_sensor_ops { const struct scmi_sensor_info *(*info_get) (const struct scmi_handle *handle, u32 sensor_id); - int (*configuration_set)(const struct scmi_handle *handle, - u32 sensor_id); - int (*trip_point_set)(const struct scmi_handle *handle, u32 sensor_id, - u8 trip_id, u64 trip_value); + int (*trip_point_notify)(const struct scmi_handle *handle, + u32 sensor_id, bool enable); + int (*trip_point_config)(const struct scmi_handle *handle, + u32 sensor_id, u8 trip_id, u64 trip_value); int (*reading_get)(const struct scmi_handle *handle, u32 sensor_id, bool async, u64 *value); }; From patchwork Mon Jul 8 15:43:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sudeep Holla X-Patchwork-Id: 168671 Delivered-To: patch@linaro.org Received: by 2002:a92:4782:0:0:0:0:0 with SMTP id e2csp7327198ilk; Mon, 8 Jul 2019 08:44:24 -0700 (PDT) X-Google-Smtp-Source: APXvYqzyVOmDGjkAGnLSraVVCDFwriHsLIiPkezR7gjPX6a3zucpw2C2tTRYBzOoYx0beN57j5+b X-Received: by 2002:a63:c0f:: with SMTP id b15mr14911223pgl.33.1562600664751; Mon, 08 Jul 2019 08:44:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562600664; cv=none; d=google.com; s=arc-20160816; b=073ApGeSa+Nd3F8rEplFwjzQSFxGonTGlsoQROlRHr6yvOvn6KCkPoyScpZWlJiuwD qC1dO1x2gKqKUmyyig/yx7vovhDTrmHAczhTizWQGviLNNP9lA0VRBbnmsE+N5FdBiEJ VYbFD2INT9exKQ2D0HfsBl8F1vBzBNca/R88Va3W+3aQnxWSxz6L7zJDrz45QeCysV4w Owl4AJpJfKo2JIaRDYFFDJI/PsCyyTqn1feca3AU87EXi0VllqwCxa62wdbumfXAtwOH iaZitXuqSurDXFZbmqKeXbIqrZmT70lPat8KMmz+vpuoT/hHe8rfgDsa3uJMx7i55MTX 4apg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=320TQZ5w2lNhAFIX1hOIch8yO3WN60yBrBwenhig/C4=; b=c5qFY6xOlje69JSd3ZUNX+624AX+a94eh+hGVWrxdjPhNzak2Ql4zWq7z0KZx3gXa6 wbS2/V0Q5gv2ZL9chMHW0gHJ4Nm8sxFogA/f4N44TBlhMrTMh9u+Lp3go1/eCOW6bBtN bsohyzkX+Q7nWnhJKHDmc+Jgfg/B+x0aISw0KneR3oGvd9mN2JXamZ7uTs6GrBrHIiyB mMzZLTyOXLl8EfXWf4vuB/mSbWNgtXrNTtUN7CHo4Qc7IO2iC9xHu5zB3VMONo4w9EfL eQhHxc+LgAI+mrnbC8jEXa07R+dHQqmxKOxGrJAbH9bE3AYwriCpZ2gi/oZyOTGsS5dK czVA== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m5si17362557plt.167.2019.07.08.08.44.24; Mon, 08 Jul 2019 08:44:24 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391223AbfGHPoS (ORCPT + 30 others); Mon, 8 Jul 2019 11:44:18 -0400 Received: from foss.arm.com ([217.140.110.172]:52032 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391215AbfGHPoL (ORCPT ); Mon, 8 Jul 2019 11:44:11 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 96AEB360; Mon, 8 Jul 2019 08:44:10 -0700 (PDT) Received: from usa.arm.com (e107155-lin.cambridge.arm.com [10.1.196.42]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 93E563F59C; Mon, 8 Jul 2019 08:44:09 -0700 (PDT) From: Sudeep Holla To: linux-arm-kernel@lists.infradead.org Cc: Sudeep Holla , linux-kernel@vger.kernel.org, Peng Fan , Jim Quinlan , Bo Zhang , Volodymyr Babchuk Subject: [PATCH 3/6] firmware: arm_scmi: Remove extra check for invalid length message responses Date: Mon, 8 Jul 2019 16:43:55 +0100 Message-Id: <20190708154358.16227-4-sudeep.holla@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190708154358.16227-1-sudeep.holla@arm.com> References: <20190708154358.16227-1-sudeep.holla@arm.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org scmi_xfer_get_init ensures both transmit and receive buffer lengths are within the maximum limits. If receive buffer length is not supplied by the caller, it's set to the maximum limit value. Receive buffer length is never modified after that. So there's no need for the extra check when receive transmit completion for a command essage. Further, if the response header length is greater than the prescribed receive buffer length, the response buffer is truncated to the latter. Reported-by: Jim Quinlan Signed-off-by: Sudeep Holla --- drivers/firmware/arm_scmi/driver.c | 6 ------ 1 file changed, 6 deletions(-) -- 2.17.1 diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c index b5bc4c7a8fab..6ef652940099 100644 --- a/drivers/firmware/arm_scmi/driver.c +++ b/drivers/firmware/arm_scmi/driver.c @@ -230,12 +230,6 @@ static void scmi_rx_callback(struct mbox_client *cl, void *m) xfer = &minfo->xfer_block[xfer_id]; scmi_dump_header_dbg(dev, &xfer->hdr); - /* Is the message of valid length? */ - if (xfer->rx.len > info->desc->max_msg_size) { - dev_err(dev, "unable to handle %zu xfer(max %d)\n", - xfer->rx.len, info->desc->max_msg_size); - return; - } scmi_fetch_response(xfer, mem); complete(&xfer->done); From patchwork Mon Jul 8 15:43:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sudeep Holla X-Patchwork-Id: 168670 Delivered-To: patch@linaro.org Received: by 2002:a92:4782:0:0:0:0:0 with SMTP id e2csp7327147ilk; Mon, 8 Jul 2019 08:44:22 -0700 (PDT) X-Google-Smtp-Source: APXvYqwQ3riphsrmeRQGMHah5mrh9Awr7YNvS4CWdhxySgrmzK5jM9D0YUujjzYoUopMG92oYHpr X-Received: by 2002:a63:2b8e:: with SMTP id r136mr24507034pgr.216.1562600661869; Mon, 08 Jul 2019 08:44:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562600661; cv=none; d=google.com; s=arc-20160816; b=FNvBmeakSaofI28XfVASPKP1Js9dnPPtjh0tEMhp+t88srJzRgPBNOoIynizXnqARQ lN97V3V0yO8yqi8Z/5bHVihYSf79g1ZfmQjas3kb+L4O0CcGAguVCnN0ql1ZrhSNAm1g bGp6dMWTKGYPFC5SYdP91frRuOB2QIVLC3XdUj/RvXkAhSEaMpZUYCXclqHTTg351xwG 2bgpdfcc7ShduslVJv3SSyDNKTD5BR5wA85rgVHFG9FqyYuZne1EysuJMS4g4Ojd04m5 SjnYOa1G3Uvqb0gbnoxh7kN2xD0m57mi3tpY/TX4S9XtU2Bxch+69z+4FBJ7rZPqkP/U PknQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=LMRfo5J2HD+7hXucKs2m2w52v+uy/YNGRj9kWx0rlXI=; b=icz6EJvU8onZEaeJjl+YKe+6SVLXd1vIHx5e9kiaXtF6qx2JNvYZVgOFHH0XrvmQzh zGyYgrv2fmrPrGHaVnyiyexM3HOCUJ0wg5msPZqRkPPmtrdz5sGHkLBCM65HA3bHrBtv krUFLpDV3zcKPCPgqaGJ0ASESumCTFHuG4Mv28RcSa5jlzT6sHAMzw0YGV5E7RCMWOEp Tsg98ONXwAU2qqcGAEEsvgFc6+SHoSIGFT5HKO6f6JPbAfkHKYjC1ZiTBi2ElE+E7wCC AeI9B02lcDeOW22yUTMcH17SqbrEt854kSRthZOuutgq5wIyiKfJFEODiR2PfcdURKD6 GEQg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m5si17362557plt.167.2019.07.08.08.44.21; Mon, 08 Jul 2019 08:44:21 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390356AbfGHPoU (ORCPT + 30 others); Mon, 8 Jul 2019 11:44:20 -0400 Received: from foss.arm.com ([217.140.110.172]:52044 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2403850AbfGHPoM (ORCPT ); Mon, 8 Jul 2019 11:44:12 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D6BBE1516; Mon, 8 Jul 2019 08:44:11 -0700 (PDT) Received: from usa.arm.com (e107155-lin.cambridge.arm.com [10.1.196.42]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id CACB43F59C; Mon, 8 Jul 2019 08:44:10 -0700 (PDT) From: Sudeep Holla To: linux-arm-kernel@lists.infradead.org Cc: Sudeep Holla , linux-kernel@vger.kernel.org, Peng Fan , Jim Quinlan , Bo Zhang , Volodymyr Babchuk Subject: [PATCH 4/6] firmware: arm_scmi: Fix few trivial typos in comments Date: Mon, 8 Jul 2019 16:43:56 +0100 Message-Id: <20190708154358.16227-5-sudeep.holla@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190708154358.16227-1-sudeep.holla@arm.com> References: <20190708154358.16227-1-sudeep.holla@arm.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org While adding new comments found couple of typos that are better fixed. s/informfation/information/ s/statues/status/ Signed-off-by: Sudeep Holla --- drivers/firmware/arm_scmi/driver.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.17.1 diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c index 6ef652940099..cac255c418b2 100644 --- a/drivers/firmware/arm_scmi/driver.c +++ b/drivers/firmware/arm_scmi/driver.c @@ -86,7 +86,7 @@ struct scmi_desc { }; /** - * struct scmi_chan_info - Structure representing a SCMI channel informfation + * struct scmi_chan_info - Structure representing a SCMI channel information * * @cl: Mailbox Client * @chan: Transmit/Receive mailbox channel @@ -190,7 +190,7 @@ static void scmi_fetch_response(struct scmi_xfer *xfer, struct scmi_shared_mem __iomem *mem) { xfer->hdr.status = ioread32(mem->msg_payload); - /* Skip the length of header and statues in payload area i.e 8 bytes*/ + /* Skip the length of header and status in payload area i.e 8 bytes */ xfer->rx.len = min_t(size_t, xfer->rx.len, ioread32(&mem->length) - 8); /* Take a copy to the rx buffer.. */ From patchwork Mon Jul 8 15:43:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sudeep Holla X-Patchwork-Id: 168674 Delivered-To: patch@linaro.org Received: by 2002:a92:4782:0:0:0:0:0 with SMTP id e2csp7327338ilk; Mon, 8 Jul 2019 08:44:33 -0700 (PDT) X-Google-Smtp-Source: APXvYqx9ENcD9bMBCsSUHW7d7zNxm7akPM7I7mzrOKHA7LTyCMtkXPVZncmOLS4GJjuwDizpoKqg X-Received: by 2002:a17:902:27e6:: with SMTP id i35mr25824621plg.190.1562600673690; Mon, 08 Jul 2019 08:44:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562600673; cv=none; d=google.com; s=arc-20160816; b=rKpxJtaOtyWLWngv1SGTdi+ZFXQAiFlhKiAO19KJlWhn1q3ksadl3lJaWP75Alb2dz RsNNwVlJpjinavPTfLSyhU++lgqLcfvPVEo0+ZhPc7uicHUJlY+4z+kyMdT4dWVNlKKp LtYu0iPQPHzCCQemXUc/f5kdIdsnOfbwCTe1C2xYUYKxfJRefXzsoFIA0Pf4LuAkuatL L1J4WDFWz0t4d0RNUhWKyqCzKo8cc0NyZJo2hKud2GDSE6rJbJo6VtLxX2GiAPbKCMfx D7ENjTqR3543MW2gcg2h23cZ6xp/e+3pkXX0cJNF7qBzQirklSJ6y/MwBv8RXYYqnXCx dEcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=/L/LOuIUmAIGtqCTCnIBdeoGVTyAKPSex/6AeJb6GeQ=; b=QRrxD5CcVMcxA6FHKYMkAiLIi/W8wotNoKv5Qq8CsGmL1Iy+VTliH1NnfJ+36ThxcK zaYcjMkWeJDFsQxn4JpBvwFCtdPffId8QCzOWU8Cr8s6EaL39u6UIzEnvF5+MJmhdcT0 aiqqoEzXLZanQkjYcdocpCLTsuT/S9VlAmP3rrEXlLgyg3RFLZM6f5ZEVAecWXSaUNIQ HdA0A8eCh2REBVQBfqp7qZsH6728ID2UUVUzdtYC8uphY8xISKA48qGLgWHGDVCa+u9o Jk9cS1cU6YiIgg9Pf5si+fU5gJV7PFTcHtvInhbQNrnWnlU/bIICmCw8Z4Js4ZX2AUO6 zIlg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b8si14787840plk.140.2019.07.08.08.44.33; Mon, 08 Jul 2019 08:44:33 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391243AbfGHPoc (ORCPT + 30 others); Mon, 8 Jul 2019 11:44:32 -0400 Received: from foss.arm.com ([217.140.110.172]:52052 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2403855AbfGHPoN (ORCPT ); Mon, 8 Jul 2019 11:44:13 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 1A85B152B; Mon, 8 Jul 2019 08:44:13 -0700 (PDT) Received: from usa.arm.com (e107155-lin.cambridge.arm.com [10.1.196.42]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 166063F59C; Mon, 8 Jul 2019 08:44:11 -0700 (PDT) From: Sudeep Holla To: linux-arm-kernel@lists.infradead.org Cc: Sudeep Holla , linux-kernel@vger.kernel.org, Peng Fan , Jim Quinlan , Bo Zhang , Volodymyr Babchuk Subject: [PATCH 5/6] firmware: arm_scmi: Use the term 'message' instead of 'command' Date: Mon, 8 Jul 2019 16:43:57 +0100 Message-Id: <20190708154358.16227-6-sudeep.holla@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190708154358.16227-1-sudeep.holla@arm.com> References: <20190708154358.16227-1-sudeep.holla@arm.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In preparation to adding support for other two types of messages that SCMI specification mentions, let's replace the term 'command' with the correct term 'message'. As per the specification the messages are of 3 types: commands(synchronous or asynchronous), delayed responses and notifications. Signed-off-by: Sudeep Holla --- drivers/firmware/arm_scmi/common.h | 10 +++++----- drivers/firmware/arm_scmi/driver.c | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) -- 2.17.1 diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm_scmi/common.h index 44fd4f9404a9..4349d836b392 100644 --- a/drivers/firmware/arm_scmi/common.h +++ b/drivers/firmware/arm_scmi/common.h @@ -48,11 +48,11 @@ struct scmi_msg_resp_prot_version { /** * struct scmi_msg_hdr - Message(Tx/Rx) header * - * @id: The identifier of the command being sent - * @protocol_id: The identifier of the protocol used to send @id command - * @seq: The token to identify the message. when a message/command returns, - * the platform returns the whole message header unmodified including - * the token + * @id: The identifier of the message being sent + * @protocol_id: The identifier of the protocol used to send @id message + * @seq: The token to identify the message. when a message returns, the] + * platform returns the whole message header unmodified including the + * token * @status: Status of the transfer once it's complete * @poll_completion: Indicate if the transfer needs to be polled for * completion or interrupt mode is used diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c index cac255c418b2..69bf85fea967 100644 --- a/drivers/firmware/arm_scmi/driver.c +++ b/drivers/firmware/arm_scmi/driver.c @@ -182,7 +182,7 @@ static inline int scmi_to_linux_errno(int errno) static inline void scmi_dump_header_dbg(struct device *dev, struct scmi_msg_hdr *hdr) { - dev_dbg(dev, "Command ID: %x Sequence ID: %x Protocol: %x\n", + dev_dbg(dev, "Message ID: %x Sequence ID: %x Protocol: %x\n", hdr->id, hdr->seq, hdr->protocol_id); } @@ -241,7 +241,7 @@ static void scmi_rx_callback(struct mbox_client *cl, void *m) * @hdr: pointer to header containing all the information on message id, * protocol id and sequence id. * - * Return: 32-bit packed command header to be sent to the platform. + * Return: 32-bit packed message header to be sent to the platform. */ static inline u32 pack_scmi_header(struct scmi_msg_hdr *hdr) { @@ -280,7 +280,7 @@ static void scmi_tx_prepare(struct mbox_client *cl, void *m) * * @handle: Pointer to SCMI entity handle * - * Helper function which is used by various command functions that are + * Helper function which is used by various message functions that are * exposed to clients of this driver for allocating a message traffic event. * * This function can sleep depending on pending requests already in the system From patchwork Mon Jul 8 15:43:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sudeep Holla X-Patchwork-Id: 168672 Delivered-To: patch@linaro.org Received: by 2002:a92:4782:0:0:0:0:0 with SMTP id e2csp7327272ilk; Mon, 8 Jul 2019 08:44:29 -0700 (PDT) X-Google-Smtp-Source: APXvYqxgT72oary1IlvzbYAp12T37X2e/cqN+rkHEtAH7iMSMc9wRSeJTf1IuEKtYdxeSGp73pdb X-Received: by 2002:a17:90a:9905:: with SMTP id b5mr27171601pjp.70.1562600669162; Mon, 08 Jul 2019 08:44:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562600669; cv=none; d=google.com; s=arc-20160816; b=pxdlob6SpBvhSXgP7NRhoUFKSebQ1wP5oqXnpUqLlTM5CovgTMuhnfIoq7HmT1Y2Hh NVH8rsVRjMawXtvghLk2tAvCMlMgagrniXhtG6wj1gIHBeeAAD1zri74SSagHtQYW91E S/ihKvdyxE6eLFk7x2FBCEu36Pu3pTFaT9ZCaZ2la9UnybYwuj/u99Egb1EsB1yth3fF 6whjMFK1O+PUBfBjzxZ6subC8OrCwIm/GlMHKJ+w7cNDV8zJ1JIG1Vm1ABSPBW4/bujh yhUHB05eXeVZc8t+n0H++UhcBfZNoxtJV7bFvec0r/pImIf1bntqQSF3ecr7I1XTFmOi xpRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=X1ffVu6Vb8FU1aen0pD8PW3t8MRrTZq2juCamyoHnXM=; b=dwVo/szBndYyw9bo2FAK2imv34uMmfKQZPl2B77QNL/ElfyNUggfXvf55KhVqpG58i 04b5AwphE6k6yCYNWy2laWacenanuEEFXcHRNyZrORnw0m3joYJZkPNbMdGa3J7v0Nd9 XuN76t3NsNgkj7wqfq+CTA5GIv7hE6I7nRDku8B3zpdT0zv5mClvXEQNsArV4pQ3eR/u v+DvxrO19ccLzMu/fdzOy4X9JwKcEZAKVR75t1o79/bfFVx9rsKsw7Jqgf4OwK8Drluo 39HzKXOL4/Wcr9iYGgx+2jK85cNYhJBZ2aHT67JzaEN0iRu0ziQ8f3BKWFbjU+own0ZB 0frQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m5si17362557plt.167.2019.07.08.08.44.28; Mon, 08 Jul 2019 08:44:29 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391234AbfGHPo2 (ORCPT + 30 others); Mon, 8 Jul 2019 11:44:28 -0400 Received: from foss.arm.com ([217.140.110.172]:52064 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2403861AbfGHPoO (ORCPT ); Mon, 8 Jul 2019 11:44:14 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 50670360; Mon, 8 Jul 2019 08:44:14 -0700 (PDT) Received: from usa.arm.com (e107155-lin.cambridge.arm.com [10.1.196.42]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 4D5A23F59C; Mon, 8 Jul 2019 08:44:13 -0700 (PDT) From: Sudeep Holla To: linux-arm-kernel@lists.infradead.org Cc: Sudeep Holla , linux-kernel@vger.kernel.org, Peng Fan , Jim Quinlan , Bo Zhang , Volodymyr Babchuk Subject: [PATCH 6/6] firmware: arm_scmi: Check if platform has released shmem before using Date: Mon, 8 Jul 2019 16:43:58 +0100 Message-Id: <20190708154358.16227-7-sudeep.holla@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190708154358.16227-1-sudeep.holla@arm.com> References: <20190708154358.16227-1-sudeep.holla@arm.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Sometimes platfom may take too long to respond to the command and OS might timeout before platform transfer the ownership of the shared memory region to the OS with the response. Since the mailbox channel associated with the channel is freed and new commands are dispatch on the same channel, OS needs to wait until it gets back the ownership. If not, either OS may end up overwriting the platform response for the last command(which is fine as OS timed out that command) or platform might overwrite the payload for the next command with the response for the old. The latter is problematic as platform may end up interpretting the response as the payload. In order to avoid such race, let's wait until the OS gets back the ownership before we prepare the shared memory with the payload for the next command. Reported-by: Jim Quinlan Signed-off-by: Sudeep Holla --- drivers/firmware/arm_scmi/driver.c | 8 ++++++++ 1 file changed, 8 insertions(+) -- 2.17.1 diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c index 69bf85fea967..765573756987 100644 --- a/drivers/firmware/arm_scmi/driver.c +++ b/drivers/firmware/arm_scmi/driver.c @@ -265,6 +265,14 @@ static void scmi_tx_prepare(struct mbox_client *cl, void *m) struct scmi_chan_info *cinfo = client_to_scmi_chan_info(cl); struct scmi_shared_mem __iomem *mem = cinfo->payload; + /* + * Ideally channel must be free by now unless OS timeout last + * request and platform continued to process the same, wait + * until it releases the shared memory, otherwise we may endup + * overwriting it's response with new command payload or vice-versa + */ + spin_until_cond(ioread32(&mem->channel_status) & + SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE); /* Mark channel busy + clear error */ iowrite32(0x0, &mem->channel_status); iowrite32(t->hdr.poll_completion ? 0 : SCMI_SHMEM_FLAG_INTR_ENABLED,