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=-8.6 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_2 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 E7BFCC35242 for ; Sat, 8 Feb 2020 16:39:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id BF8CA217BA for ; Sat, 8 Feb 2020 16:39:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1581179987; bh=tqrUZ/jGcb2dyM3IngNypNvzJPOW//Pyd4e3xKhd/Zs=; h=Date:From:To:Cc:Subject:In-Reply-To:References:List-ID:From; b=CaqpuCrHddEDHi32mgJAKex/cvBbk/25CZ3ELJjPJubkqHgULOan5HvLdW3Q/+4Tc EUZ/KwvndZm87lH2RVBQ2k3x4d5d4tKvYEJ2GK8hUisY9K9JiBXoa1Fv2/iBV49hUN uvbwLdjvWe50WEIdXQqQrf5nVBMyiP7I4vQtMASs= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727456AbgBHQjr (ORCPT ); Sat, 8 Feb 2020 11:39:47 -0500 Received: from mail.kernel.org ([198.145.29.99]:42870 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727341AbgBHQjr (ORCPT ); Sat, 8 Feb 2020 11:39:47 -0500 Received: from archlinux (cpc149474-cmbg20-2-0-cust94.5-4.cable.virginm.net [82.4.196.95]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 388FA217BA; Sat, 8 Feb 2020 16:39:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1581179986; bh=tqrUZ/jGcb2dyM3IngNypNvzJPOW//Pyd4e3xKhd/Zs=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=QBo7gkDQYdwgJwEIruJd5ztOctDoW/EmZ8hlVhIRfE4nO6D17Gbqv1+BOx0Rztg4/ bPACMTJT7j/t0NApDZvhpnLOzQt7MhwJ5ZAeY6oQcPgomL870j1sTWT/Qehfeqe+1Z VxOhIUamV9eqjkntDTU5Le43/UGF/m6f6lqDhXB8= Date: Sat, 8 Feb 2020 16:39:43 +0000 From: Jonathan Cameron To: Matt Ranostay Cc: linux-iio@vger.kernel.org Subject: Re: [PATCH v4 1/3] iio: chemical: atlas-sensor: allow probe without interrupt line Message-ID: <20200208163943.098ba614@archlinux> In-Reply-To: <20200206061332.20427-2-matt.ranostay@konsulko.com> References: <20200206061332.20427-1-matt.ranostay@konsulko.com> <20200206061332.20427-2-matt.ranostay@konsulko.com> X-Mailer: Claws Mail 3.17.4 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-iio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-iio@vger.kernel.org On Wed, 5 Feb 2020 22:13:30 -0800 Matt Ranostay wrote: > Sensors don't actually need a interrupt line to give valid readings, > and can triggered with CONFIG_IIO_HRTIMER_TRIGGER as well. Remove > the required check for interrupt, and continue along in the probe > function. Basic aim is good, but if you don't have an interrupt doesn't make sense to register the trigger either. The interrupt enable / disable is also tied up with the buffer whereas it should probably be done via the trigger enable callback or am I missing something? Jonathan > > Signed-off-by: Matt Ranostay > --- > drivers/iio/chemical/atlas-sensor.c | 27 ++++++++++++--------------- > 1 file changed, 12 insertions(+), 15 deletions(-) > > diff --git a/drivers/iio/chemical/atlas-sensor.c b/drivers/iio/chemical/atlas-sensor.c > index 2f0a6fed2589..2e34c82cb65d 100644 > --- a/drivers/iio/chemical/atlas-sensor.c > +++ b/drivers/iio/chemical/atlas-sensor.c > @@ -572,11 +572,6 @@ static int atlas_probe(struct i2c_client *client, > if (ret) > return ret; > > - if (client->irq <= 0) { > - dev_err(&client->dev, "no valid irq defined\n"); > - return -EINVAL; > - } > - > ret = chip->calibration(data); > if (ret) > return ret; > @@ -596,16 +591,18 @@ static int atlas_probe(struct i2c_client *client, > > init_irq_work(&data->work, atlas_work_handler); > > - /* interrupt pin toggles on new conversion */ > - ret = devm_request_threaded_irq(&client->dev, client->irq, > - NULL, atlas_interrupt_handler, > - IRQF_TRIGGER_RISING | > - IRQF_TRIGGER_FALLING | IRQF_ONESHOT, > - "atlas_irq", > - indio_dev); > - if (ret) { > - dev_err(&client->dev, "request irq (%d) failed\n", client->irq); > - goto unregister_buffer; > + if (client->irq <= 0) { > + /* interrupt pin toggles on new conversion */ > + ret = devm_request_threaded_irq(&client->dev, client->irq, > + NULL, atlas_interrupt_handler, > + IRQF_TRIGGER_RISING | > + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, > + "atlas_irq", > + indio_dev); > + > + if (ret) > + dev_warn(&client->dev, > + "request irq (%d) failed\n", client->irq); > } > > ret = atlas_set_powermode(data, 1);