Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp3145457pxk; Mon, 5 Oct 2020 02:10:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz/i9kWtVOk9yzVOb43BdgkXni5CqTWynd0aoDnmv51iQ4z1wf9xfYGYieXDiGg1qKYmF5c X-Received: by 2002:a17:906:a256:: with SMTP id bi22mr14421298ejb.375.1601889055687; Mon, 05 Oct 2020 02:10:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601889055; cv=none; d=google.com; s=arc-20160816; b=abCcPYHNsMW/025XQy7MOFhXDcBY5n3d8UCVwUiQkZCxEMyjLMWNXTmiq2tLGTJJ5u nBSXJOnHt9/mA+mVYmjs/yHIFfJdYg5GMnaYhu6ASa05Quzm4x4obAUFfm47oDYy1VbE uPM7BdIuH5Eg8sJhhVKdLKYERCCOP1GUGO7lBcbUYwefGVCV90fQXTC03qzyMfYCs2lp +pGYlWwGLpvSdzGLyktTWOVv+R5dElU0oKUlTlQWIC681zJP5B7rlPXjuyJLdZEkhlKQ 1huCeGarSdUPZ/mPZu3QhtIwYsy+3qljFE8Kx+zpRrxEhqjimN9k4ZZ7p+fzTHjeP2nF wNKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=eUORg47spfL73f7H/PLu8NLMtjAqRWZqjYpdZQW2IeA=; b=mcIwXfoUb7dBu8kvy4a1Q4iWGPuAAl/DFE+YztXcY0qgTql4fBborn+JVrv9Oib08c hblSAGKu5RlMPl3FDsNVxNZtXHUJYGVaxijKhFallkPALW0VEJrtwGFA/2HIe4dV5mPs bfPQbWZfKNAszWDC9q0f/HXBHwup4Onw0fEGXJS9J8fZiaH/v0EDrwT7OCvd8rrcCevc IdYJ5+C3vJR8F7URjGciKF0KbgDfB5v37EMteJ44ykbzrZ4FdAgBBFOadyPs6tuNRN7D JwXL49JJo+9gfZN4y0WC8nu8VO07v5DocUsyOZmJZRFW4vcQqDZacpYYBO0J4JUnPBa7 4P4w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=mczHn7MV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s7si6754734edi.576.2020.10.05.02.10.32; Mon, 05 Oct 2020 02:10:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=mczHn7MV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725960AbgJEJHI (ORCPT + 99 others); Mon, 5 Oct 2020 05:07:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45924 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725915AbgJEJHH (ORCPT ); Mon, 5 Oct 2020 05:07:07 -0400 Received: from mail-pg1-x541.google.com (mail-pg1-x541.google.com [IPv6:2607:f8b0:4864:20::541]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B1BD2C0613CE; Mon, 5 Oct 2020 02:07:07 -0700 (PDT) Received: by mail-pg1-x541.google.com with SMTP id t14so5591383pgl.10; Mon, 05 Oct 2020 02:07:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=eUORg47spfL73f7H/PLu8NLMtjAqRWZqjYpdZQW2IeA=; b=mczHn7MVXcsomQTFrw5fjFQDY6Z2sHBj48BuZ+oqxp0x1dRrhtzk7jZ799ntIIiXxX lZJOgxdZiEewNVhmAThkQtkBri/M92ZndaceRxCWEF/3hBbUe21AvPxrFjS8zIjl5z8A TeStuo/AHh2/bx8Wyk8EDbFMH62S3C2xj2r5rFPDrrzcOqmNdXvonpBbdxYLtJpGoSej Pi58cFQwb2Qv5HT7FSgqsJdHGCA3M6PkZUFdKAyuEKmRS/1r61BaJ7WDBCpMTGGWsq9V Cf4/5Oc/VP6cNow8noQMnn81MZA4fzac7y0IkZws1K8fvkEmFrAlJTNz/xkzaJNWsY5q ohQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=eUORg47spfL73f7H/PLu8NLMtjAqRWZqjYpdZQW2IeA=; b=JAdKZ7VdCALXfBiDWZIRBCqbfwqiJttOyvVw8sWIc4sQ/EkO1EuTI3k+bB58kPbDmV 5pXklEvQ25fvJ1NTv0oniTC4cd/HAxo+JTax993H8GY6ZL5PkjjoiL+v7cW55CZ/LGuB 9J9XAyxBBBRLWAG5NyAXQUGiBsq+7pQWnagFsTZyz1AIVPYNCnubBFB9hO9nO7GMD21e GC9ToAWUwfYbtaiIk0Kr4/fP5Q7jnT7yQ4TEF5S4P57nQZXIzh85/xN+Z1L6tMCfQKCA Y1ZexHqo4WcRl77Yg0+4cV6XmZUsJYjYdPysw5cyvBQUgMIQLImYhOPf9cpIh1eDS1c1 zoCQ== X-Gm-Message-State: AOAM531TlAg5iL26cJOZr62NasEEhiSJkWFFUxcswsa2Nhh7sKGCHeIf 2R+h8Ww79yAAemLlGwfiuc5kgDj7mn8kQAXDgm8= X-Received: by 2002:a63:ec4c:: with SMTP id r12mr13296765pgj.74.1601888827197; Mon, 05 Oct 2020 02:07:07 -0700 (PDT) MIME-Version: 1.0 References: <20201002181135.GI3956970@smile.fi.intel.com> In-Reply-To: From: Andy Shevchenko Date: Mon, 5 Oct 2020 12:06:48 +0300 Message-ID: Subject: Re: [PATCH v4 2/2] Add hardware monitoring driver for Moortec MR75203 PVT controller To: "Tanwar, Rahul" Cc: Andy Shevchenko , Jean Delvare , Guenter Roeck , Philipp Zabel , linux-hwmon@vger.kernel.org, Rob Herring , Linux Kernel Mailing List , devicetree , songjun.Wu@intel.com, cheol.yong.kim@intel.com, qi-ming.wu@intel.com, rtanwar@maxlinear.com Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Oct 5, 2020 at 11:53 AM Tanwar, Rahul wrote: > On 3/10/2020 2:11 am, Andy Shevchenko wrote: > > On Fri, Oct 02, 2020 at 03:04:27PM +0800, Rahul Tanwar wrote: ... > >> + pvt_temp.config = temp_config; > >> + > >> + pvt_info[index++] = &pvt_temp; > >> + } > >> + > >> + if (pd_num) { > >> + ret = pvt_get_regmap(pdev, "pd", pvt); > >> + if (ret) > >> + return ret; > >> + } > >> + > >> + if (vm_num) { > >> + u32 num = vm_num; > >> + > >> + ret = pvt_get_regmap(pdev, "vm", pvt); > >> + if (ret) > >> + return ret; > >> + > >> + pvt->vm_idx = devm_kcalloc(dev, vm_num, sizeof(*pvt->vm_idx), > >> + GFP_KERNEL); > >> + if (!pvt->vm_idx) > >> + return -ENOMEM; > >> + for (i = 0; i < vm_num; i++) > >> + pvt->vm_idx[i] = i; > > What the point if you are replace them below in one case? > > > >> + ret = device_property_read_u8_array(dev, "intel,vm-map", > >> + pvt->vm_idx, vm_num); > >> + if (!ret) > > Misses {} and because of above > > > > if (ret) { > > for () ... > > } else { > > for () ... > > } > > > >> + for (i = 0; i < vm_num; i++) > >> + if (pvt->vm_idx[i] >= vm_num || > >> + pvt->vm_idx[i] == 0xff) { > >> + num = i; > >> + break; > >> + } > > Or looking in this, perhaps move the incremental for-loop here and start it > > with num which is 0. > > Not able to understand what exactly you are suggesting here. Presently > it is like below: > 1. Init vm_idx array with incremental values. > 2. Read array from device property. > 3. If success, figure out the last valid value and assign to num. > > Can you please elaborate and explain more clearly? Thanks. device_property_read_u8_array() effectively (partially) rewrites the vm_idx array. The code above is inefficient and not clear. My understanding based on the above is that half of the code may be dropped. So, clearer variant looks like this to me: ret = device_property_read_u8_array(dev, "intel,vm-map", pvt->vm_idx, vm_num); if (ret) { num = 0; } else { for (i = 0; i < vm_num; i++) { if (pvt->vm_idx[i] >= vm_num || pvt->vm_idx[i] == 0xff) break; } num = i; } for (i = num; i < vm_num; i++) pvt->vm_idx[i] = i; And all these require a good comment to describe why you are doing the trailing loop. -- With Best Regards, Andy Shevchenko