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=-6.7 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS autolearn=ham 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 37766C004C9 for ; Tue, 7 May 2019 13:31:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 07A212053B for ; Tue, 7 May 2019 13:31:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cyO3r8Sj" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726455AbfEGNbJ (ORCPT ); Tue, 7 May 2019 09:31:09 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:35993 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726444AbfEGNbJ (ORCPT ); Tue, 7 May 2019 09:31:09 -0400 Received: by mail-pf1-f193.google.com with SMTP id v80so8684214pfa.3; Tue, 07 May 2019 06:31:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=pDfPW38KIL1dpHg7F2t1sYsKkAGlXFceYNzNKtg9UBI=; b=cyO3r8SjaSPvRgAnIrHKGrO5McmBXE+WgNeJJg+p7LUXjuglPx0pTYyxK9DRLM7qQL X+hnR2TsuMoSzC4XtSsRT4AYHD0Ace+teIBTvnvx+CTZp0a5HCsjLsHHLIMko8qMDNGc onbOQHHwLlaF7lk76q1lBaV9YtcJ+vr/Sq2Ittup/KNS/N/f8JchuewoPlD0KOyFraRN vUaADbkBjER77QoaMv2SazHjGquXwLSynG0QyGmBp14oyb/FwiPW51cXQMpJOOSPnyBs 63qr5wtgj3PeIe8g14L4uCkqslg94SEQSzNqPxbwsiqCxZe4pjAqeuGtDWaWlvoeZHqr 5T4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=pDfPW38KIL1dpHg7F2t1sYsKkAGlXFceYNzNKtg9UBI=; b=HhkDz+/vfWCbOafvFt46PyhPPHDaHIVyq26Zi/Gvf5ls2fo/f8BbBWtKp+Akbjx++P KpMtI1uzR61d07kqF2vX2BP2ZLxul8QYjqW5QbH24Ixy4xGE9Z87wDijdZBCM11psUaw zn/Ohj5GS3gyG7ynMkVVt860lUa7nSk4wY7LTK24UuW//jkbpT+d8qfpcFjieazp5nra EpQVm6fpy2jU4myV8Wu5+phJDsSJQi6kku9EJh7JMJDoP4+xBAMYqZjGbn4qtDg9DlbG tHtr8+vCgN7V8UcxijJzipItBGCebQ//csMKPEOXFtC1Y/8k/+xRGOl5jeVVh1NGUo66 oXcQ== X-Gm-Message-State: APjAAAUKF/6c5ciO9/J2pL7mSDTGBAFmawm6KrkuULre27po74rZl255 cpfoKIPAxhVAi5Jot7JNIOPGkfXi X-Google-Smtp-Source: APXvYqzq+Z/Wj+qUOgwRvo3HHKRynDEDgnsJskGpr7/iplM2VPRNaEbMdqqGJgcNsTpPQurrvC4Eog== X-Received: by 2002:aa7:8096:: with SMTP id v22mr41241600pff.94.1557235868496; Tue, 07 May 2019 06:31:08 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id o5sm34369209pfa.135.2019.05.07.06.31.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 07 May 2019 06:31:07 -0700 (PDT) Subject: Re: [PATCH 1/2] firmware: arm_scmi: Fetch and store sensor scale To: Florian Fainelli , linux-kernel@vger.kernel.org Cc: bcm-kernel-feedback-list@broadcom.com, Sudeep Holla , Jean Delvare , linux-arm-kernel@lists.infradead.org, "open list:HARDWARE MONITORING" References: <20190506224109.9357-1-f.fainelli@gmail.com> <20190506224109.9357-2-f.fainelli@gmail.com> From: Guenter Roeck Message-ID: <84470f47-4e65-80c4-d378-9b83b7f487fb@roeck-us.net> Date: Tue, 7 May 2019 06:31:06 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <20190506224109.9357-2-f.fainelli@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-hwmon-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-hwmon@vger.kernel.org On 5/6/19 3:41 PM, Florian Fainelli wrote: > In preparation for dealing with scales within the SCMI HWMON driver, > fetch and store the sensor unit scale into the scmi_sensor_info > structure. > > Signed-off-by: Florian Fainelli > --- > drivers/firmware/arm_scmi/sensors.c | 7 ++++++- > include/linux/scmi_protocol.h | 1 + > 2 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/firmware/arm_scmi/sensors.c b/drivers/firmware/arm_scmi/sensors.c > index b53d5cc9c9f6..f324f0a13ebe 100644 > --- a/drivers/firmware/arm_scmi/sensors.c > +++ b/drivers/firmware/arm_scmi/sensors.c > @@ -33,7 +33,8 @@ struct scmi_msg_resp_sensor_description { > #define NUM_TRIP_POINTS(x) (((x) >> 4) & 0xff) > __le32 attributes_high; > #define SENSOR_TYPE(x) ((x) & 0xff) > -#define SENSOR_SCALE(x) (((x) >> 11) & 0x3f) > +#define SENSOR_SCALE_MASK 0x3f > +#define SENSOR_SCALE(x) (((x) >> 11) & SENSOR_SCALE_MASK) > #define SENSOR_UPDATE_SCALE(x) (((x) >> 22) & 0x1f) > #define SENSOR_UPDATE_BASE(x) (((x) >> 27) & 0x1f) > u8 name[SCMI_MAX_STR_SIZE]; > @@ -140,6 +141,10 @@ static int scmi_sensor_description_get(const struct scmi_handle *handle, > s = &si->sensors[desc_index + cnt]; > s->id = le32_to_cpu(buf->desc[cnt].id); > s->type = SENSOR_TYPE(attrh); > + s->scale = SENSOR_SCALE(attrh); > + /* Sign extend to a full u8 */ > + if (s->scale & ((SENSOR_SCALE_MASK + 1) >> 1)) The logic here is quite confusing. I think it would be better to define, say, SENSOR_SCALE_SIGN and use it. > + s->scale |= GENMASK(7, 6); > strlcpy(s->name, buf->desc[cnt].name, SCMI_MAX_STR_SIZE); > } > > diff --git a/include/linux/scmi_protocol.h b/include/linux/scmi_protocol.h > index 3105055c00a7..7746f171f108 100644 > --- a/include/linux/scmi_protocol.h > +++ b/include/linux/scmi_protocol.h > @@ -144,6 +144,7 @@ struct scmi_power_ops { > struct scmi_sensor_info { > u32 id; > u8 type; > + u8 scale; Why not s8 if this is a signed value ? Thanks, Guenter > char name[SCMI_MAX_STR_SIZE]; > }; > > 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=-6.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,T_DKIMWL_WL_HIGH 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 E17C7C004C9 for ; Tue, 7 May 2019 13:31:20 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 B39B5206A3 for ; Tue, 7 May 2019 13:31:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="a+rSsKTo"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cyO3r8Sj" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B39B5206A3 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=roeck-us.net Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-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=bombadil.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=vrKhsyJhpUqwXbOdyQRRq3Cz68WRqe7ZeKCnHTGXwY4=; b=a+rSsKToF0lTCqO4E8tXBjzkQ fXUMAOSvDqlvPZoV2esLmfeFnO/CxqeXOP/JF8OVmj5be+U+plm3t0aFY/IptG0OQ2nT7dlq1yUIp 0fJdc9/U/99jU2ZEYsc9fXWkRwYCFox9V82eLBYnLhZxYc9g3u/kwLUnwdKCuZIkRnXRDS/ughe2Q x/bVR6Kisz99NRBfa8AjFlyDYzD3OdKM7uCXYtyEYWLoLis89QXF3yv1PvFEn6rwFtQcXk/99/sil BLq+defNgQM4vIHuvXqgG+ZnoEnssadusPAMiFUtYBRS7JeGUvURTOzQGy0FGFiVtUvUYqT22rood 8APxe4kbg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hO0Bf-0002bn-HN; Tue, 07 May 2019 13:31:15 +0000 Received: from mail-pg1-x541.google.com ([2607:f8b0:4864:20::541]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hO0Bc-0002b7-EP for linux-arm-kernel@lists.infradead.org; Tue, 07 May 2019 13:31:13 +0000 Received: by mail-pg1-x541.google.com with SMTP id j26so8328758pgl.5 for ; Tue, 07 May 2019 06:31:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=pDfPW38KIL1dpHg7F2t1sYsKkAGlXFceYNzNKtg9UBI=; b=cyO3r8SjaSPvRgAnIrHKGrO5McmBXE+WgNeJJg+p7LUXjuglPx0pTYyxK9DRLM7qQL X+hnR2TsuMoSzC4XtSsRT4AYHD0Ace+teIBTvnvx+CTZp0a5HCsjLsHHLIMko8qMDNGc onbOQHHwLlaF7lk76q1lBaV9YtcJ+vr/Sq2Ittup/KNS/N/f8JchuewoPlD0KOyFraRN vUaADbkBjER77QoaMv2SazHjGquXwLSynG0QyGmBp14oyb/FwiPW51cXQMpJOOSPnyBs 63qr5wtgj3PeIe8g14L4uCkqslg94SEQSzNqPxbwsiqCxZe4pjAqeuGtDWaWlvoeZHqr 5T4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=pDfPW38KIL1dpHg7F2t1sYsKkAGlXFceYNzNKtg9UBI=; b=lKv90+XJZBmZtGee+VWynB0vdtr3PuzoaYJw6PU++Mwj28LXsjBYVx7yhz2GjXs9C0 rAtoqBgNRV7svXKVEYVKV8AjTHJ08Dp6lemeIkieu+HpHAyrfucmW3YfrFByu0zBEQlY O6CAoJEyMJoDhnXJU9/BgBh49NZ2gjjwsAdt6Kc4eT5JBywyJjbrM6luZn3zFyFH7mKR cin/rHm3pixVBvQVy8B9SAx3tKE54pooz1rD4dgIKKVczZDapWipu6wx3U+CCaxwZGAu dw6rG4ALrYxmpGCJNOWYcHvFbXogMHAGEm+V6cKA+L6P07oyKPLDH/hBEZIiyzri9x5z SnOQ== X-Gm-Message-State: APjAAAW0n6GQHBPX4b3mGdXdaB2xCE5MJ/ezndh9jAaFLSG+yK4i+g2f Pfjl4C27vb48PgIwNI8hGtE= X-Google-Smtp-Source: APXvYqzq+Z/Wj+qUOgwRvo3HHKRynDEDgnsJskGpr7/iplM2VPRNaEbMdqqGJgcNsTpPQurrvC4Eog== X-Received: by 2002:aa7:8096:: with SMTP id v22mr41241600pff.94.1557235868496; Tue, 07 May 2019 06:31:08 -0700 (PDT) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id o5sm34369209pfa.135.2019.05.07.06.31.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 07 May 2019 06:31:07 -0700 (PDT) Subject: Re: [PATCH 1/2] firmware: arm_scmi: Fetch and store sensor scale To: Florian Fainelli , linux-kernel@vger.kernel.org References: <20190506224109.9357-1-f.fainelli@gmail.com> <20190506224109.9357-2-f.fainelli@gmail.com> From: Guenter Roeck Message-ID: <84470f47-4e65-80c4-d378-9b83b7f487fb@roeck-us.net> Date: Tue, 7 May 2019 06:31:06 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <20190506224109.9357-2-f.fainelli@gmail.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190507_063112_542187_1E55E292 X-CRM114-Status: GOOD ( 21.47 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "open list:HARDWARE MONITORING" , Jean Delvare , bcm-kernel-feedback-list@broadcom.com, linux-arm-kernel@lists.infradead.org, Sudeep Holla Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 5/6/19 3:41 PM, Florian Fainelli wrote: > In preparation for dealing with scales within the SCMI HWMON driver, > fetch and store the sensor unit scale into the scmi_sensor_info > structure. > > Signed-off-by: Florian Fainelli > --- > drivers/firmware/arm_scmi/sensors.c | 7 ++++++- > include/linux/scmi_protocol.h | 1 + > 2 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/firmware/arm_scmi/sensors.c b/drivers/firmware/arm_scmi/sensors.c > index b53d5cc9c9f6..f324f0a13ebe 100644 > --- a/drivers/firmware/arm_scmi/sensors.c > +++ b/drivers/firmware/arm_scmi/sensors.c > @@ -33,7 +33,8 @@ struct scmi_msg_resp_sensor_description { > #define NUM_TRIP_POINTS(x) (((x) >> 4) & 0xff) > __le32 attributes_high; > #define SENSOR_TYPE(x) ((x) & 0xff) > -#define SENSOR_SCALE(x) (((x) >> 11) & 0x3f) > +#define SENSOR_SCALE_MASK 0x3f > +#define SENSOR_SCALE(x) (((x) >> 11) & SENSOR_SCALE_MASK) > #define SENSOR_UPDATE_SCALE(x) (((x) >> 22) & 0x1f) > #define SENSOR_UPDATE_BASE(x) (((x) >> 27) & 0x1f) > u8 name[SCMI_MAX_STR_SIZE]; > @@ -140,6 +141,10 @@ static int scmi_sensor_description_get(const struct scmi_handle *handle, > s = &si->sensors[desc_index + cnt]; > s->id = le32_to_cpu(buf->desc[cnt].id); > s->type = SENSOR_TYPE(attrh); > + s->scale = SENSOR_SCALE(attrh); > + /* Sign extend to a full u8 */ > + if (s->scale & ((SENSOR_SCALE_MASK + 1) >> 1)) The logic here is quite confusing. I think it would be better to define, say, SENSOR_SCALE_SIGN and use it. > + s->scale |= GENMASK(7, 6); > strlcpy(s->name, buf->desc[cnt].name, SCMI_MAX_STR_SIZE); > } > > diff --git a/include/linux/scmi_protocol.h b/include/linux/scmi_protocol.h > index 3105055c00a7..7746f171f108 100644 > --- a/include/linux/scmi_protocol.h > +++ b/include/linux/scmi_protocol.h > @@ -144,6 +144,7 @@ struct scmi_power_ops { > struct scmi_sensor_info { > u32 id; > u8 type; > + u8 scale; Why not s8 if this is a signed value ? Thanks, Guenter > char name[SCMI_MAX_STR_SIZE]; > }; > > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel