Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp2658037rwl; Sat, 1 Apr 2023 11:46:24 -0700 (PDT) X-Google-Smtp-Source: AKy350YeU6KX2/MWYg5WbzrCNEVw0oSdKV74cXWLhrZWV4k80KTnxT2KS85/xPLSvQzxNPKqGrt7 X-Received: by 2002:a17:90b:4b8b:b0:23f:c096:7129 with SMTP id lr11-20020a17090b4b8b00b0023fc0967129mr36786726pjb.26.1680374783915; Sat, 01 Apr 2023 11:46:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680374783; cv=none; d=google.com; s=arc-20160816; b=FCL5OfDRh1XX70LlGXt+qfX8JPYmgFxWFSY1X5lrrMmFOcxkfFqQAF7t0kt4AI54ih cXmjVpddRQe71z0upRvrj7oeforDNbfcNHBrZPLiknNMNT9ctmcldW1FWpqa9pZYea+J w3R1SIe8KUgEzDsXsax5uVnLxcChIUvveZpRR8leqBw41SfRPj8WtbkvN3lF1Jc+N1sR 6LQQivumvbBXHY9bmJYhzFkkQqr5zKytgWqEwfPNBkBlTLmkPNlW7zK57iFm4sDq6ex2 epfrwj48ai0NmEWxZV8zaxXekZ5AiGjqi/Orzvcxzf6nUwQe2AQUMi7aHXZNeV31x+kE cZlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=DHIjBw8q8o7HwiSFrp1UBh7BKrSxY4k3nqqzolvVuUU=; b=upE6I7CS3LGT6zYRNXTAxdP7bxK3vhUu0jIcFI02WXiY6PxOa4p1m749O2cS7yzJ39 1tXD/hAb36iEAyAxkfQDyourKOgs5QKftqN8VjIbL0QbC58kOUe9zd/ifxQvPA7phnBk ejaH3YUGcbuP9RPLK571+5XJ1GUZNDs8ZTaGBwux27pXYTSpoo4erCO/J0ysHBmTShg4 z+c5/ysVoit8oLxLgtBuQ/TPNPHAElsTWAIzAzdfop7g7JK6/ZuiyyT5Z/shsP5l8LjA jDrVffKGKzfpvg0CbKqLf0vYDGZ2ez/wtsC/RxRpPavqi8vnSJtOAdflXiiCArmgXj4d t33w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@metafoo.de header.s=default2002 header.b="e/rJd21m"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=metafoo.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ot15-20020a17090b3b4f00b00233c7c617e7si10182892pjb.101.2023.04.01.11.46.12; Sat, 01 Apr 2023 11:46:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@metafoo.de header.s=default2002 header.b="e/rJd21m"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=metafoo.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229672AbjDAS3I (ORCPT + 99 others); Sat, 1 Apr 2023 14:29:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53790 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229441AbjDAS3H (ORCPT ); Sat, 1 Apr 2023 14:29:07 -0400 Received: from www381.your-server.de (www381.your-server.de [78.46.137.84]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2BE351BF4C; Sat, 1 Apr 2023 11:29:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=metafoo.de; s=default2002; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From: References:Cc:To:Subject:MIME-Version:Date:Message-ID:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID; bh=DHIjBw8q8o7HwiSFrp1UBh7BKrSxY4k3nqqzolvVuUU=; b=e/rJd21mkM22+PJJcC01YmpLKW 3kU7QEWSc5VIqRFUBO3WWcIzQqelw7BppWDqTMDIXhBHOT6KdZlFRCY0ikB0MNsrZG984JiP1q10Y ve/9EMsB9Dl1Btjg+XpsYO7WiB3fzgxdMcv/Mvtbw7sfQbNfAtAMcG51pol7SU2kumFi4j0M31+jV UrDQ1pGPqt6ViBBqTo0OBrDvsAVGfczJfEnwqtN2SPU1J1LE2/Ln0n/oTbLutJjgtpNEp15bUa3CY 4wFhIg2MV9+L6+A/W1eeXmBtM9AimvbeW45r23OzzjHL4XsmCfCWKRmtKu9fYWK2j5ShXw5hViEVR MOaGUmGQ==; Received: from sslproxy01.your-server.de ([78.46.139.224]) by www381.your-server.de with esmtpsa (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1pifyJ-000P2F-IU; Sat, 01 Apr 2023 20:29:03 +0200 Received: from [2604:5500:c0e5:eb00:da5e:d3ff:feff:933b] by sslproxy01.your-server.de with esmtpsa (TLSv1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pifyJ-000Nvc-6P; Sat, 01 Apr 2023 20:29:03 +0200 Message-ID: <5c142a1b-c413-66b2-86d9-b8c95ed46241@metafoo.de> Date: Sat, 1 Apr 2023 11:29:00 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: [PATCH 2/3] iio: pressure: Honeywell mpr pressure sensor Content-Language: en-US To: Andreas Klinger , linux-iio@vger.kernel.org, devicetree@vger.kernel.org Cc: Jonathan Cameron , Rob Herring , Krzysztof Kozlowski , Angel Iglesias , linux-kernel@vger.kernel.org References: From: Lars-Peter Clausen In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Authenticated-Sender: lars@metafoo.de X-Virus-Scanned: Clear (ClamAV 0.103.8/26862/Sat Apr 1 09:22:47 2023) X-Spam-Status: No, score=-0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Looks pretty good. Jonathan already covered most of it, a few additional comments. On 4/1/23 02:10, Andreas Klinger wrote: > [...] > +struct mpr_data { > + struct device *dev; > + void *client; Any reason not to use `struct i2c_client` for the type? > + struct mutex lock; > + s32 pmin; > + s32 pmax; > + struct gpio_desc *gpiod_reset; > + int irq; > + struct completion completion; > + s64 channel[2] __aligned(8); > +}; > + > [...] > +static int mpr_read_pressure(struct mpr_data *data, s64 *press) > +{ > + int ret, i; > + u8 wdata[] = {0xAA, 0x00, 0x00}; > + s32 status; > + int nloops = 10; > + char buf[5]; The tx buffer is `u8`, the rx buffer is `char`. This should be consistent. > + s64 press_cnt; > + s64 outputmin = 1677722; > + s64 outputmax = 15099494; > + > + reinit_completion(&data->completion); > + > + ret = i2c_master_send(data->client, wdata, sizeof(wdata)); The i2c family of transfer functions returns the number of bytes transferred, this can be less than what you expect if you get an early NACK. Its always good to check that all the data was transferred. E.g. if (ret >= 0 && ret != sizeof(wdata))    ret = -EIO; Same for the receive later on. [...]