Received: by 2002:a05:7412:2a8c:b0:e2:908c:2ebd with SMTP id u12csp759903rdh; Sun, 24 Sep 2023 10:26:13 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG37ozIjFCT0kF0CpG/OpxfUddwWWBWgKi8oHiUaY319cTc9qdb/kfEvw1xKScDrOsC6t2i X-Received: by 2002:a05:6871:72a:b0:1d6:cbc7:fa17 with SMTP id f42-20020a056871072a00b001d6cbc7fa17mr7441377oap.55.1695576373633; Sun, 24 Sep 2023 10:26:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695576373; cv=none; d=google.com; s=arc-20160816; b=SPtbFzRvfO7/EncRVqWbhBG01Kjutwl0WI8eyTEXQfseYoSceJKlWKmvOulatr5u9M vwdOftuFpp4bPRdU6N1BSFLzEtc/qUYYgQsy/EpbiHitxTwBWDNcWfPUuFMCZMYDw9Ti dCk7sxOQHA7/osBqA5q5VbQz3C9RMJM0gbbe1J25msu5YqLggmGF6ZqPFuzvbkrAfztV cl2SgHgPwcWcrRNepN/0GLCD6HkwSmpUu35vfPCH1yIYwajKxUesg3YfNiOjZcDf2V2k OyCNkNcifLxlaudUvomowf73cMgXk/TCOfuT1BnFj7R0/zEVV5DmnnTCSrqqyy1eIVag sL8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=bqu4ShUJ5iDze3LkoCaqfhpDW3lhkKgueUUSGC312eQ=; fh=J/aQ3VQ1usFn2OiUKgsoebtsI6yr0VQFLqFjqmvpq44=; b=hNjqFXUg658ovUmFKEjRJpZh8G9OFm5EgomaDrBy3eWdETn7l6X+EfjaISjNdKrZi8 aw4V2dNRAJj4SNGcSmQv2/dJpUmz0wfPEccrxDXocgWqujskUPwG9GaqAD6xXcUZMYVR Pl5T63GBP0QAei/FeWwco3oQtlTAFIqoYK/DLlOqxlAJ0a+qClbTUet1+SJa6YDGJAqG nTm0IbHEiLD61jIRORf3nZKNE8pRXwpLnJAFeOhTZ5Q7Ao2zsvJz2V6ZH9NLrJbvna+R U32dk9CCFnDBbgJU6wwxjERpv5wvQ8PzcZSx413j6urmINhgXPBaHk6JwsEeyfgNMQaZ Xosg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=SXzScmqN; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id h11-20020a65480b000000b00577dd005706si8167200pgs.779.2023.09.24.10.26.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 24 Sep 2023 10:26:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=SXzScmqN; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 5CFFC80FD8BA; Sun, 24 Sep 2023 10:26:11 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230225AbjIXR0F (ORCPT + 99 others); Sun, 24 Sep 2023 13:26:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38706 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229710AbjIXR0E (ORCPT ); Sun, 24 Sep 2023 13:26:04 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1E0F5126; Sun, 24 Sep 2023 10:25:57 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C4248C433C8; Sun, 24 Sep 2023 17:25:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1695576356; bh=bMpotNnwaohECqLY5FvgEgcZ0XP2V5cdsM+zfMWQjQ4=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=SXzScmqNF7XuuQ2Ls4XEJeulZKQhJqqykAKSjQIplhUQqEuPsGiPYewx/5JsfUIqf gb0WFVSIIErOs+S9zE0Ws9cHku3Zhyy3E+35aynp0e+mv2vZNzldHgyBDMYfEPZcOQ tfAyVISJjf51o/eMxQIZYcoylY+8SIQnHgaY+8546ZUJWA4kHTNAQ1yteHILGbhNnk /LE7v6YNZEew68H7QN1Vj1ksGMy2OXXUt/K/hPcLEtbqtT1n2m+xFSJYS/hfl7/anR 7nc/8JmMgAHcsPa/yYkcj1R54EbCw2VGtP7JAzhh/iX/HNq+Y6RYO7Zo5gbQlf802v /wZ0K6WkmmEAA== Date: Sun, 24 Sep 2023 18:25:48 +0100 From: Jonathan Cameron To: David Lechner Cc: linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Rob Herring , Krzysztof Kozlowski , Conor Dooley , Michael Hennerich , Nuno =?UTF-8?B?U8Oh?= , Axel Haslam , Philip Molloy Subject: Re: [PATCH v2 05/19] staging: iio: resolver: ad2s1210: fix probe Message-ID: <20230924182548.580dc03f@jic23-huawei> In-Reply-To: <20230921144400.62380-6-dlechner@baylibre.com> References: <20230921144400.62380-1-dlechner@baylibre.com> <20230921144400.62380-6-dlechner@baylibre.com> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, 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 lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Sun, 24 Sep 2023 10:26:11 -0700 (PDT) On Thu, 21 Sep 2023 09:43:46 -0500 David Lechner wrote: > This fixes a number of issues in the ad2s1210_probe() function: > - Move call to ad2s1210_setup_gpios() after `st->sdev = spi;`. This > fixes use of this pointer before it is initialized. > - Check return value on ad2s1210_initial(). Should mention moving it as well. > - Move devm_iio_device_register() to the end to avoid race of > registering before fully initialized. > - Remove call to spi_setup(). Note: MODE_3 was incorrect, it should be > MODE_1 but we can let the device tree select this. > - Change default value for fclkin. This is an external oscillator, not > the SPI bus clock. (Will use device tree to get the correct value > in a future patch. For now, using the eval board value.) > - Remove spi_set_drvdata(). Hmm. This is a lot of different things. I'd prefer it more split up as a few of these are not completely trivial. > > Signed-off-by: David Lechner I think the patch split up broke on this one... > --- > drivers/staging/iio/resolver/ad2s1210.c | 30 ++++++++++++------------- > 1 file changed, 15 insertions(+), 15 deletions(-) > > diff --git a/drivers/staging/iio/resolver/ad2s1210.c b/drivers/staging/iio/resolver/ad2s1210.c > index 0bdd5a30d45d..9c7f76114360 100644 > --- a/drivers/staging/iio/resolver/ad2s1210.c > +++ b/drivers/staging/iio/resolver/ad2s1210.c > @@ -3,6 +3,7 @@ > * ad2s1210.c support for the ADI Resolver to Digital Converters: AD2S1210 > * > * Copyright (c) 2010-2010 Analog Devices Inc. > + * Copyright (C) 2023 BayLibre, SAS Bit early to justify that, but I'm fine with it anyway as it will soon be justified! > */ > #include > #include > @@ -657,12 +658,8 @@ static int ad2s1210_probe(struct spi_device *spi) > indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); > if (!indio_dev) > return -ENOMEM; > - st = iio_priv(indio_dev); > - ret = ad2s1210_setup_gpios(st); > - if (ret < 0) > - return ret; > > - spi_set_drvdata(spi, indio_dev); Looks fine, but unconnected to the rest of this patch. > + st = iio_priv(indio_dev); > > mutex_init(&st->lock); > st->sdev = spi; > @@ -671,22 +668,25 @@ static int ad2s1210_probe(struct spi_device *spi) > st->resolution = 12; > st->fexcit = AD2S1210_DEF_EXCIT; > > + ret = ad2s1210_setup_clocks(st); doesn't exist yet. > + if (ret < 0) > + return ret; > + > + ret = ad2s1210_setup_gpios(st); > + if (ret < 0) > + return ret; > + > + ret = ad2s1210_initial(st); > + if (ret < 0) > + return ret; > + > indio_dev->info = &ad2s1210_info; > indio_dev->modes = INDIO_DIRECT_MODE; > indio_dev->channels = ad2s1210_channels; > indio_dev->num_channels = ARRAY_SIZE(ad2s1210_channels); > indio_dev->name = spi_get_device_id(spi)->name; > > - ret = devm_iio_device_register(&spi->dev, indio_dev); > - if (ret) > - return ret; > - > - st->fclkin = spi->max_speed_hz; > - spi->mode = SPI_MODE_3; > - spi_setup(spi); > - ad2s1210_initial(st); > - > - return 0; > + return devm_iio_device_register(&spi->dev, indio_dev); > } > > static const struct of_device_id ad2s1210_of_match[] = {