Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp1236954pxa; Thu, 13 Aug 2020 04:16:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyipiyw7HgY+Gi9sN6rdcvM5u1prAh9JfNIA7m5/i7MXR27ySvdFfZiqGO4f/KtaxjIVC8M X-Received: by 2002:a17:906:cc4a:: with SMTP id mm10mr4075935ejb.451.1597317384771; Thu, 13 Aug 2020 04:16:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597317384; cv=none; d=google.com; s=arc-20160816; b=Fj4gmN8nz/ARe0ZRO3pG0XlScRpZKbQcKxezM5xB8FRPCXie2yJiTYAjRcI9ws1Ug0 3wqJWrPd8Xpc3xWeg0fsFE6wBjKsxudAUzrHePXHw9BR2wqBwMuzEogWMMqQaOLEUTn8 4YfZaS/qlh5JnS6kPZH+5nLIbVuFgn+AwH8ZAMWBUZ1ZLpo7OLKrkkPqgE3/jdURWDTL L23qEKN53JDVqxLOienUdtUerBVwTTdamiHxPyP1O1DCujY0nu7+L6z22vks6su4Z6Xr AhvJ64qNUKP0HiRi0/f+WdktuYRLpSK6UFsKcZIPgs+8TQIBogofLvdLrg4C5Q6pzwa1 R/ZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=Drw0mASaMxjwlc+v1sEJiZJDPjdekVV/QXUc/HktK+E=; b=INAPrp4dE8hNNrtjm/1K3+cbl0wh6tKnKJsaTIvhOBU86SZghI1a8WilZiDVVjTzhi 1oKJrEKRQRokMbX3228kCGaQ/9oHMCieNSk4/jv0QhtOzfV0tR4mO3aLFbp5FP4pui0f VMl9Vjk/fmTJzKfkVt/wJTdNERT3/raEJtsuypYhnrM3Lk2n0fOKeLPdnihdMQ51EjdQ +wTGZgbFs1itGVL4PrRd8mz4rQKntRsXzzD+sT60Q1aTF1Vm6RVUQIUSlIJpEiKAFa9i TL6QQvEBhSfPWdHYORqPiub9mGCEARHQL/FX9V4CofNhNmmtRCplo5i9iKEdQSEw2aa7 5blg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@melexis.com header.s=google header.b=g9q7mJIb; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v27si2997619edw.469.2020.08.13.04.16.00; Thu, 13 Aug 2020 04:16:24 -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=@melexis.com header.s=google header.b=g9q7mJIb; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726710AbgHMLOf (ORCPT + 99 others); Thu, 13 Aug 2020 07:14:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40448 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726688AbgHMLOb (ORCPT ); Thu, 13 Aug 2020 07:14:31 -0400 Received: from mail-il1-x143.google.com (mail-il1-x143.google.com [IPv6:2607:f8b0:4864:20::143]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A4FDBC061383 for ; Thu, 13 Aug 2020 04:14:29 -0700 (PDT) Received: by mail-il1-x143.google.com with SMTP id p13so5200511ilh.4 for ; Thu, 13 Aug 2020 04:14:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=melexis.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Drw0mASaMxjwlc+v1sEJiZJDPjdekVV/QXUc/HktK+E=; b=g9q7mJIbn3hrQSrv9YwGoI4XhEzdCzVWGnEUw5xoILnYYN3Ttz7J/Q62eH435j0rzE n958oIBgnA7/jlXprmT92J8OOROvm+Z2jYMbl5NJonSzQILJVQ5B1JeO2JJFyTFJXVS5 NjPgUvdEK48UsonLlcxIxMB35ZnY+YYMa8Tci/vKsSKvMirvq/t/YdYOuQtcW9J8W8RF PR4JNyv9rgtvMd6rpEaipaiK6f4h5sCCeHB4UNbItLmioP2wFoGiAT8WslEGljc8FfyZ iiaYUVD7oqYxf3v4JynFgR/Zxwwx7v0GDs59u4Qein+KaBaDBp4ELWuF/Xu7N6xqIulE 8gOw== 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=Drw0mASaMxjwlc+v1sEJiZJDPjdekVV/QXUc/HktK+E=; b=rsFomv9a2QvQs3KqOid5hoxlJJ04ZeNzPhtWRgvqYmkBYSaCqr84YVTBj5cCb7AD0M WC5l1e6cAsfsFyMyykQGp/gKJT3JfV8KKb9QAnAK7W4MQlE3IqlHuKmbwR0rQcP+mKWz 9dkS2niVn+wDsspOyLZPgpuAjRKQZ8M8ceVRsc2U0FqokmM40JUDsLsNZcbqpbxoTlqT Cr9LWht/Xx6VTw89M5482Ehtl1MUT5F+/8vMjWXKYO14dqSqzMQIl2sq7LXQ9sOIiDeP 6SSJW+odobHb0a6gKWyvPu1fBUI//WI6WgOJhJo5BJtbWxAc4uVDf1rkzJJVct+gqIKZ vMgg== X-Gm-Message-State: AOAM532Gtt5B4EzwdEAq8nnTlqehEXb+cuL/gWio3lydLgqO7R/eWlfx bAvPoSwQAWurpwmX6nJ5qIQr6gb25zF31TDbzS3Ckw== X-Received: by 2002:a92:cb12:: with SMTP id s18mr4341576ilo.13.1597317268867; Thu, 13 Aug 2020 04:14:28 -0700 (PDT) MIME-Version: 1.0 References: <20200813075125.4949-1-cmo@melexis.com> <20200813075125.4949-4-cmo@melexis.com> In-Reply-To: From: Crt Mori Date: Thu, 13 Aug 2020 13:13:53 +0200 Message-ID: Subject: Re: [PATCH v5 3/5] iio:temperature:mlx90632: Convert polling while loop to do-while To: Andy Shevchenko Cc: Jonathan Cameron , linux-iio , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 13 Aug 2020 at 13:03, Andy Shevchenko wrote: > > On Thu, Aug 13, 2020 at 10:53 AM Crt Mori wrote: > > > > Reduce number of lines and improve readability to convert polling while > > loops to do-while. The iopoll.h interface was not used, because we > > require more than 20ms timeout, because time for sensor to perform a > > measurement is around 10ms and it needs to perform measurements for each > > channel (which currently is 3). > > I don't see how it prevents using iopoll.h. It uses usleep_range() > under the hood in the same way you did here, but open coded. > One loop is indeed 10ms and that is not the problem, the problem is that timeout is at least 3 calls of this data ready (3 channels), so that is at minimum 30ms of timeout, or it could even be 4 in worse case scenario and that is outside of the range for usleep to measure. So in case of the other loop, where we wait 200ms for channel refresh it is also out of scope. Timeout should be in number of tries or in msleep range if you ask me. > ... > > > - while (tries-- > 0) { > > + do { > > ret = regmap_read(data->regmap, MLX90632_REG_STATUS, > > ®_status); > > if (ret < 0) > > return ret; > > - if (reg_status & MLX90632_STAT_DATA_RDY) > > - break; > > usleep_range(10000, 11000); > > - } > > + } while (!(reg_status & MLX90632_STAT_DATA_RDY) && tries--); > > > > if (tries < 0) { > > dev_err(&data->client->dev, "data not ready"); > > -- > With Best Regards, > Andy Shevchenko