From: Jonathan Cameron <jic23@kernel.org>
To: kernel test robot <lkp@intel.com>
Cc: "Marcelo Schmitt" <marcelo.schmitt@analog.com>,
linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
linux-doc@vger.kernel.org, linux-spi@vger.kernel.org,
linux-kernel@vger.kernel.org, oe-kbuild-all@lists.linux.dev,
michael.hennerich@analog.com, nuno.sa@analog.com,
eblanc@baylibre.com, dlechner@baylibre.com, andy@kernel.org,
robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
corbet@lwn.net, marcelo.schmitt1@gmail.com,
"Trevor Gamblin" <tgamblin@baylibre.com>,
"Axel Haslam" <ahaslam@baylibre.com>,
"Uwe Kleine-König" <ukleinek@kernel.org>
Subject: Re: [PATCH v3 6/8] iio: adc: ad4030: Add SPI offload support
Date: Sun, 28 Sep 2025 11:02:39 +0100 [thread overview]
Message-ID: <20250928110239.20f81375@jic23-huawei> (raw)
In-Reply-To: <202509272028.0zLNiR5w-lkp@intel.com>
On Sat, 27 Sep 2025 20:59:36 +0800
kernel test robot <lkp@intel.com> wrote:
> Hi Marcelo,
>
> kernel test robot noticed the following build errors:
So, question is stubs or add a dependency.
(Assuming there isn't a patch in flight already to add the stubs).
Uwe, does it make sense to add stubs for these, similar to many of the
other consumer interfaces?
Jonathan
>
> [auto build test ERROR on 561285d048053fec8a3d6d1e3ddc60df11c393a0]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Marcelo-Schmitt/dt-bindings-iio-adc-adi-ad4030-Reference-spi-peripheral-props/20250927-044546
> base: 561285d048053fec8a3d6d1e3ddc60df11c393a0
> patch link: https://lore.kernel.org/r/0028720d2cb21898ef044458065ac8a0bc829588.1758916484.git.marcelo.schmitt%40analog.com
> patch subject: [PATCH v3 6/8] iio: adc: ad4030: Add SPI offload support
> config: i386-randconfig-014-20250927 (https://download.01.org/0day-ci/archive/20250927/202509272028.0zLNiR5w-lkp@intel.com/config)
> compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250927/202509272028.0zLNiR5w-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202509272028.0zLNiR5w-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> drivers/spi/spi-offload-trigger-pwm.c: In function 'spi_offload_trigger_pwm_validate':
> >> drivers/spi/spi-offload-trigger-pwm.c:55:15: error: implicit declaration of function 'pwm_round_waveform_might_sleep' [-Wimplicit-function-declaration]
> 55 | ret = pwm_round_waveform_might_sleep(st->pwm, &wf);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/spi/spi-offload-trigger-pwm.c: In function 'spi_offload_trigger_pwm_enable':
> >> drivers/spi/spi-offload-trigger-pwm.c:81:16: error: implicit declaration of function 'pwm_set_waveform_might_sleep' [-Wimplicit-function-declaration]
> 81 | return pwm_set_waveform_might_sleep(st->pwm, &wf, false);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/spi/spi-offload-trigger-pwm.c: In function 'spi_offload_trigger_pwm_disable':
> >> drivers/spi/spi-offload-trigger-pwm.c:90:15: error: implicit declaration of function 'pwm_get_waveform_might_sleep' [-Wimplicit-function-declaration]
> 90 | ret = pwm_get_waveform_might_sleep(st->pwm, &wf);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Kconfig warnings: (for reference only)
> WARNING: unmet direct dependencies detected for SPI_OFFLOAD_TRIGGER_PWM
> Depends on [n]: SPI [=y] && SPI_OFFLOAD [=y] && PWM [=n]
> Selected by [y]:
> - AD4030 [=y] && IIO [=y] && SPI [=y] && GPIOLIB [=y]
>
>
> vim +/pwm_round_waveform_might_sleep +55 drivers/spi/spi-offload-trigger-pwm.c
>
> ebb398ae1e052c David Lechner 2025-02-07 36
> ebb398ae1e052c David Lechner 2025-02-07 37 static int spi_offload_trigger_pwm_validate(struct spi_offload_trigger *trigger,
> ebb398ae1e052c David Lechner 2025-02-07 38 struct spi_offload_trigger_config *config)
> ebb398ae1e052c David Lechner 2025-02-07 39 {
> ebb398ae1e052c David Lechner 2025-02-07 40 struct spi_offload_trigger_pwm_state *st = spi_offload_trigger_get_priv(trigger);
> ebb398ae1e052c David Lechner 2025-02-07 41 struct spi_offload_trigger_periodic *periodic = &config->periodic;
> ebb398ae1e052c David Lechner 2025-02-07 42 struct pwm_waveform wf = { };
> ebb398ae1e052c David Lechner 2025-02-07 43 int ret;
> ebb398ae1e052c David Lechner 2025-02-07 44
> ebb398ae1e052c David Lechner 2025-02-07 45 if (config->type != SPI_OFFLOAD_TRIGGER_PERIODIC)
> ebb398ae1e052c David Lechner 2025-02-07 46 return -EINVAL;
> ebb398ae1e052c David Lechner 2025-02-07 47
> ebb398ae1e052c David Lechner 2025-02-07 48 if (!periodic->frequency_hz)
> ebb398ae1e052c David Lechner 2025-02-07 49 return -EINVAL;
> ebb398ae1e052c David Lechner 2025-02-07 50
> ebb398ae1e052c David Lechner 2025-02-07 51 wf.period_length_ns = DIV_ROUND_UP_ULL(NSEC_PER_SEC, periodic->frequency_hz);
> ebb398ae1e052c David Lechner 2025-02-07 52 /* REVISIT: 50% duty-cycle for now - may add config parameter later */
> ebb398ae1e052c David Lechner 2025-02-07 53 wf.duty_length_ns = wf.period_length_ns / 2;
> ebb398ae1e052c David Lechner 2025-02-07 54
> ebb398ae1e052c David Lechner 2025-02-07 @55 ret = pwm_round_waveform_might_sleep(st->pwm, &wf);
> ebb398ae1e052c David Lechner 2025-02-07 56 if (ret < 0)
> ebb398ae1e052c David Lechner 2025-02-07 57 return ret;
> ebb398ae1e052c David Lechner 2025-02-07 58
> ebb398ae1e052c David Lechner 2025-02-07 59 periodic->frequency_hz = DIV_ROUND_UP_ULL(NSEC_PER_SEC, wf.period_length_ns);
> ebb398ae1e052c David Lechner 2025-02-07 60
> ebb398ae1e052c David Lechner 2025-02-07 61 return 0;
> ebb398ae1e052c David Lechner 2025-02-07 62 }
> ebb398ae1e052c David Lechner 2025-02-07 63
> ebb398ae1e052c David Lechner 2025-02-07 64 static int spi_offload_trigger_pwm_enable(struct spi_offload_trigger *trigger,
> ebb398ae1e052c David Lechner 2025-02-07 65 struct spi_offload_trigger_config *config)
> ebb398ae1e052c David Lechner 2025-02-07 66 {
> ebb398ae1e052c David Lechner 2025-02-07 67 struct spi_offload_trigger_pwm_state *st = spi_offload_trigger_get_priv(trigger);
> ebb398ae1e052c David Lechner 2025-02-07 68 struct spi_offload_trigger_periodic *periodic = &config->periodic;
> ebb398ae1e052c David Lechner 2025-02-07 69 struct pwm_waveform wf = { };
> ebb398ae1e052c David Lechner 2025-02-07 70
> ebb398ae1e052c David Lechner 2025-02-07 71 if (config->type != SPI_OFFLOAD_TRIGGER_PERIODIC)
> ebb398ae1e052c David Lechner 2025-02-07 72 return -EINVAL;
> ebb398ae1e052c David Lechner 2025-02-07 73
> ebb398ae1e052c David Lechner 2025-02-07 74 if (!periodic->frequency_hz)
> ebb398ae1e052c David Lechner 2025-02-07 75 return -EINVAL;
> ebb398ae1e052c David Lechner 2025-02-07 76
> ebb398ae1e052c David Lechner 2025-02-07 77 wf.period_length_ns = DIV_ROUND_UP_ULL(NSEC_PER_SEC, periodic->frequency_hz);
> ebb398ae1e052c David Lechner 2025-02-07 78 /* REVISIT: 50% duty-cycle for now - may add config parameter later */
> ebb398ae1e052c David Lechner 2025-02-07 79 wf.duty_length_ns = wf.period_length_ns / 2;
> ebb398ae1e052c David Lechner 2025-02-07 80
> ebb398ae1e052c David Lechner 2025-02-07 @81 return pwm_set_waveform_might_sleep(st->pwm, &wf, false);
> ebb398ae1e052c David Lechner 2025-02-07 82 }
> ebb398ae1e052c David Lechner 2025-02-07 83
> ebb398ae1e052c David Lechner 2025-02-07 84 static void spi_offload_trigger_pwm_disable(struct spi_offload_trigger *trigger)
> ebb398ae1e052c David Lechner 2025-02-07 85 {
> ebb398ae1e052c David Lechner 2025-02-07 86 struct spi_offload_trigger_pwm_state *st = spi_offload_trigger_get_priv(trigger);
> ebb398ae1e052c David Lechner 2025-02-07 87 struct pwm_waveform wf;
> ebb398ae1e052c David Lechner 2025-02-07 88 int ret;
> ebb398ae1e052c David Lechner 2025-02-07 89
> ebb398ae1e052c David Lechner 2025-02-07 @90 ret = pwm_get_waveform_might_sleep(st->pwm, &wf);
> ebb398ae1e052c David Lechner 2025-02-07 91 if (ret < 0) {
> ebb398ae1e052c David Lechner 2025-02-07 92 dev_err(st->dev, "failed to get waveform: %d\n", ret);
> ebb398ae1e052c David Lechner 2025-02-07 93 return;
> ebb398ae1e052c David Lechner 2025-02-07 94 }
> ebb398ae1e052c David Lechner 2025-02-07 95
> ebb398ae1e052c David Lechner 2025-02-07 96 wf.duty_length_ns = 0;
> ebb398ae1e052c David Lechner 2025-02-07 97
> ebb398ae1e052c David Lechner 2025-02-07 98 ret = pwm_set_waveform_might_sleep(st->pwm, &wf, false);
> ebb398ae1e052c David Lechner 2025-02-07 99 if (ret < 0)
> ebb398ae1e052c David Lechner 2025-02-07 100 dev_err(st->dev, "failed to disable PWM: %d\n", ret);
> ebb398ae1e052c David Lechner 2025-02-07 101 }
> ebb398ae1e052c David Lechner 2025-02-07 102
>
next prev parent reply other threads:[~2025-09-28 10:02 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-26 20:37 [PATCH v3 0/8] Add SPI offload support to AD4030 Marcelo Schmitt
2025-09-26 20:38 ` [PATCH v3 1/8] dt-bindings: iio: adc: adi,ad4030: Reference spi-peripheral-props Marcelo Schmitt
2025-09-26 20:38 ` [PATCH v3 2/8] Docs: iio: ad4030: Add double PWM SPI offload doc Marcelo Schmitt
2025-09-26 20:39 ` [PATCH v3 3/8] dt-bindings: iio: adc: adi,ad4030: Add PWM Marcelo Schmitt
2025-09-26 20:39 ` [PATCH v3 4/8] iio: adc: ad4030: Reduce register access transfer speed Marcelo Schmitt
2025-09-28 9:53 ` Jonathan Cameron
2025-09-28 14:17 ` Marcelo Schmitt
2025-09-26 20:40 ` [PATCH v3 5/8] iio: adc: ad4030: Use BIT macro to improve code readability Marcelo Schmitt
2025-09-26 20:40 ` [PATCH v3 6/8] iio: adc: ad4030: Add SPI offload support Marcelo Schmitt
2025-09-27 12:59 ` kernel test robot
2025-09-28 10:02 ` Jonathan Cameron [this message]
2025-09-28 10:08 ` Jonathan Cameron
2025-09-26 20:40 ` [PATCH v3 7/8] dt-bindings: iio: adc: adi,ad4030: Add ADAQ4216 and ADAQ4224 Marcelo Schmitt
2025-09-26 22:10 ` Rob Herring (Arm)
2025-09-28 10:19 ` Jonathan Cameron
2025-09-29 14:31 ` Rob Herring
2025-09-29 16:16 ` David Lechner
2025-09-30 14:47 ` Marcelo Schmitt
2025-09-30 17:02 ` Marcelo Schmitt
2025-09-30 18:26 ` Rob Herring
2025-10-01 11:55 ` David Lechner
2025-09-26 20:41 ` [PATCH v3 8/8] iio: adc: ad4030: Add support for " Marcelo Schmitt
2025-09-28 10:26 ` Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250928110239.20f81375@jic23-huawei \
--to=jic23@kernel.org \
--cc=ahaslam@baylibre.com \
--cc=andy@kernel.org \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=eblanc@baylibre.com \
--cc=krzk+dt@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=lkp@intel.com \
--cc=marcelo.schmitt1@gmail.com \
--cc=marcelo.schmitt@analog.com \
--cc=michael.hennerich@analog.com \
--cc=nuno.sa@analog.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=robh@kernel.org \
--cc=tgamblin@baylibre.com \
--cc=ukleinek@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox