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=-11.2 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, USER_AGENT_SANE_1 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 DFCD5C388F7 for ; Tue, 10 Nov 2020 17:21:51 +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 64981206F1 for ; Tue, 10 Nov 2020 17:21:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="q8O2XR9u" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 64981206F1 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com 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:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=UQdbxcw/hM085blXppm/oHEKJHj4tISG4N6TsDYTtIs=; b=q8O2XR9udSCH049dPdBCsTBEG a9jio6zx6uPp4GKFL6ugqo1fMLen9j0gP8KQOn108wbX1uSGrTae08r2ncIy6wcgYj6mYJxp1Gh4f HIPFV9wrypLNLUFncN0J58vb+VyAbqulDhiBlA5u0f6TF2vrlVAT2P2kzsCvpnaiGOTMxeYxEbTkm qX2FhvsKe4LupFtmF6bTcUsh82A14RCNh0cECOdUrKjvennVOCy5BgSTNYoUqY0ETUK16CZwoJYrN 9po1fQxJvPaUKlG2HViv1xVlEcCd4e+S2KBxKLxFHLRCx2kkSvySlOk+UU/A2TrKF337abSb0eEMK TfbmGKMIw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kcXKi-0002yu-Bf; Tue, 10 Nov 2020 17:21:28 +0000 Received: from foss.arm.com ([217.140.110.172]) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kcXKf-0002xq-99 for linux-arm-kernel@lists.infradead.org; Tue, 10 Nov 2020 17:21:26 +0000 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 EF8361396; Tue, 10 Nov 2020 09:21:23 -0800 (PST) Received: from e120937-lin (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5B5A13F7BB; Tue, 10 Nov 2020 09:21:22 -0800 (PST) Date: Tue, 10 Nov 2020 17:21:20 +0000 From: Cristian Marussi To: Mailing Lists Subject: Re: [PATCH v2 2/6] firmware: arm_scmi: add SCMIv3.0 Sensors descriptors extensions Message-ID: <20201110172120.GF42652@e120937-lin> References: <20201026201007.23591-1-cristian.marussi@arm.com> <20201026201007.23591-3-cristian.marussi@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201110_122125_448701_F4D96682 X-CRM114-Status: GOOD ( 26.16 ) 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, linux-kernel@vger.kernel.org, peter.hilber@opensynergy.com, linux-arm-kernel@lists.infradead.org, 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 Tue, Nov 10, 2020 at 05:00:05PM +0100, Mailing Lists wrote: > 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. > Yes, bits [21:16] 'Number of Axes' in sensor_attributes_high, but this #define was meant to represent the maximum number of sensor axis (64...ranging from 0 to 63) not the highest possible numbered (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. > Ah, right. Regards Cristian > 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