From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6350EC5517A for ; Tue, 10 Nov 2020 16:01:50 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DFF05206E3 for ; Tue, 10 Nov 2020 16:01:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="IiiP5ADh"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=mailbox.org header.i=@mailbox.org header.b="eWMrw5EO"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=mailbox.org header.i=@mailbox.org header.b="DS37aFyv" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DFF05206E3 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=mailbox.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:References: To:Subject:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=jiSfOM4y3f2c0rc4TZ3UnTQWlR6ZtZJ/PvnM02qPgBk=; b=IiiP5ADh+NKkWTVz1+DOfa1Zu PNSMRdLpojg+lU2z8h448C30mEgREDXydE7nUcNdR8nUL1Usi8lYe7H3Ntsgqxt3cM+VXGkXQm/AI 4oxneRbLNZ7VNkVzj8MV6Y5hdDBfHRV8dN0K7hfe6XwtwLG7V6XOK17SV1jIA/Ee1VpeH2zaYk1XK NX7zDkMgJtofHIGdppM8Olfx0YJRCZJ7bJELPb7GTdB0EAeDYi0WN8aVTi49DbAoGLpJbtNCR+ejQ qDNYwH1YTX6wAGXDW9WLcsoJqW3kigJvwFVBw2I01TH/M8tN0sqcrUjD+A3Lo39Vwft9n7LIQtHWI GfE/Dy9sw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kcW4F-00019m-DP; Tue, 10 Nov 2020 16:00:23 +0000 Received: from mout-p-102.mailbox.org ([80.241.56.152]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kcW4C-00018w-OB for linux-arm-kernel@lists.infradead.org; Tue, 10 Nov 2020 16:00:22 +0000 Received: from smtp2.mailbox.org (smtp2.mailbox.org [80.241.60.241]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4CVsyS1T6FzQlWd; Tue, 10 Nov 2020 17:00:16 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mailbox.org; h= content-transfer-encoding:content-language:content-type :content-type:in-reply-to:mime-version:date:date:message-id :references:subject:subject:from:from:received; s=mail20150812; t=1605024008; bh=N9PX16ya4Ghdpo2W5cE71DhxszYEMLR/BL+nYIjj0kU=; b= eWMrw5EOao5pG7dsIVT2QZ0+CfGgP6Q3TqqL6ubuN7/zdy83eC9La/jcfii55k+U zkEtG9zqzvtzwa2u0xwRrcJi0GaOQLipt28jJ5R5Ypt/zYnpmTaw2cgGNzAzwXvi x+DtysIhnJTneNgr6Emb+xfDLf+Xe0CwRyMKQrLfklnhUzpHzW9Dz8CvY9SqGLxy DeonQCXJLyBLUaldSd+pTf4i6hcm5M0xCVcG/zpd+VdWrDtJl221bjxietnYUrIe 7kiF9kxb1agmIFszXGSu84QGnrAN0aDQC91leQikNVKYISngzTAM+amK2L6xNNFl mK/RMRkkTj0dbwiBgW1++Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailbox.org; s=mail20150812; t=1605024014; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7RnMHz+jP7JD1JkLTSgDWCwpbu8DgchFA05sk2+IWY8=; b=DS37aFyvdPT1LAHQd+gVOdEk35oF0GalIOkAZG5Q/LTpKAWcIaWPYK+JzTjw/oFi3IyhrR 8M+qyoVKLcl/VwqxCFxvaEl2pDTcY07a2i2u0ra0/e4GE7eV8OVIqu0RWYV51BLJHL5cvG dZHLegDWpcdvK75g5VbPsPDxsy00Z2rjPMWLsLDmbkJT0ggUy3oo/Ir3qtAvZvXuif4tFO 5+qCZzLTpEUGA310Nqz3O833KSkmZcHGWbWCYaosAxukxr4F+YfrQbC7r/qImoXc1qnmXj Te2e7O2SOjOIHZViEPNYqima0XFzl2s2+dQybDMO47qOIJcjP1HDXWR3fJXzkw== X-Virus-Scanned: amavisd-new at heinlein-support.de Received: from smtp2.mailbox.org ([80.241.60.241]) by hefe.heinlein-support.de (hefe.heinlein-support.de [91.198.250.172]) (amavisd-new, port 10030) with ESMTP id PJJGG1Nfw3S2; Tue, 10 Nov 2020 17:00:08 +0100 (CET) From: Mailing Lists Subject: Re: [PATCH v2 2/6] firmware: arm_scmi: add SCMIv3.0 Sensors descriptors extensions To: Cristian Marussi , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org References: <20201026201007.23591-1-cristian.marussi@arm.com> <20201026201007.23591-3-cristian.marussi@arm.com> Message-ID: Date: Tue, 10 Nov 2020 17:00:05 +0100 MIME-Version: 1.0 In-Reply-To: <20201026201007.23591-3-cristian.marussi@arm.com> Content-Language: en-US X-MBO-SPAM-Probability: X-Rspamd-Score: -4.86 / 15.00 / 15.00 X-Rspamd-Queue-Id: 80826108B X-Rspamd-UID: 30686e X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201110_110021_195975_9C941C8A X-CRM114-Status: GOOD ( 21.65 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mikhail.golubev@opensynergy.com, Igor.Skalkin@opensynergy.com, jbhayana@google.com, sudeep.holla@arm.com, peter.hilber@opensynergy.com, james.quinlan@broadcom.com, Jonathan.Cameron@Huawei.com, egranata@google.com, lukasz.luba@arm.com Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 26.10.20 21:10, Cristian Marussi wrote: > Add support for new SCMIv3.0 Sensors extensions related to new sensors' > features, like multiple axis and update intervals, while keeping > compatibility with SCMIv2.0 features. > While at that, refactor and simplify all the internal helpers macros and > move struct scmi_sensor_info to use only non-fixed-size typing. > > Signed-off-by: Cristian Marussi > --- > v1 --> v2 > - restrict segmented intervals descriptors to single triplet > - add proper usage of scmi_reset_rx_to_maxsz > --- > drivers/firmware/arm_scmi/sensors.c | 391 ++++++++++++++++++++++++++-- > include/linux/scmi_protocol.h | 219 +++++++++++++++- > 2 files changed, 584 insertions(+), 26 deletions(-) > > diff --git a/drivers/firmware/arm_scmi/sensors.c b/drivers/firmware/arm_scmi/sensors.c > index 6aaff478d032..5a18f8c84bef 100644 > --- a/drivers/firmware/arm_scmi/sensors.c > +++ b/drivers/firmware/arm_scmi/sensors.c > @@ -7,16 +7,21 @@ > > #define pr_fmt(fmt) "SCMI Notifications SENSOR - " fmt > > +#include > #include > > #include "common.h" > #include "notify.h" > > +#define SCMI_MAX_NUM_SENSOR_AXIS 64 IMHO the related 6 bit wide fields, like SENSOR_DESCRIPTION_GET "Number of axes", should determine the maximum value, so 64 -> 63. [...] > + > +/** > + * struct scmi_sensor_info - represents information related to one of the > + * available sensors. > + * @id: Sensor ID. > + * @type: Sensor type. Chosen amongst one of @enum scmi_sensor_class. > + * @scale: Power-of-10 multiplier applied to the sensor unit. > + * @num_trip_points: Number of maximum configurable trip points. > + * @async: Flag for asynchronous read support. > + * @update: Flag for continuouos update notification support. > + * @timestamped: Flag for timestamped read support. > + * @tstamp_scale: Power-of-10 multiplier applied to the sensor timestamps to > + * represent it in seconds. > + * @num_axis: Number of supported axis if any. Reported as 0 for scalar sensors. > + * @axis: Pointer to an array of @num_axis descriptors. > + * @intervals: Descriptor of available update intervals. > + * @sensor_config: A bitmask reporting the current sensor configuration as > + * detailed in the SCMI specification: it can accessed and > + * modified through the accompanying macros. > + * @name: NULL-terminated string representing sensor name as advertised by > + * SCMI platform. > + * @extended_scalar_attrs: Flag to indicate the presence of additional extended > + * attributes for this sensor. > + * @sensor_power: Extended attribute representing the average power > + * consumed by the sensor in microwatts (uW) when it is active. > + * Reported here only for scalar sensors. Above line should go to @resolution below. Best regards, Peter > + * Set to 0 if not reported by this sensor. > + * @resolution: Extended attribute representing the resolution of the sensor. > + * Set to 0 if not reported by this sensor. > + * @exponent: Extended attribute representing the power-of-10 multiplier that is > + * applied to the resolution field. > + * Reported here only for scalar sensors. > + * Set to 0 if not reported by this sensor. > + * @scalar_attrs: Extended attributes representing minimum and maximum > + * measurable values by this sensor. > + * Reported here only for scalar sensors. > + * Set to 0 if not reported by this sensor. > + */ > struct scmi_sensor_info { > - u32 id; > - u8 type; > - s8 scale; > - u8 num_trip_points; > + unsigned int id; > + unsigned int type; > + int scale; > + unsigned int num_trip_points; > bool async; > + bool update; > + bool timestamped; > + int tstamp_scale; > + unsigned int num_axis; > + struct scmi_sensor_axis_info *axis; > + struct scmi_sensor_intervals_info intervals; > char name[SCMI_MAX_STR_SIZE]; > + bool extended_scalar_attrs; > + unsigned int sensor_power; > + unsigned int resolution; > + int exponent; > + struct scmi_range_attrs scalar_attrs; > }; _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel