All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding@gmail.com>
To: Rajkumar Rampelli <rrajk@nvidia.com>
Cc: robh+dt@kernel.org, mark.rutland@arm.com, jonathanh@nvidia.com,
	jdelvare@suse.com, linux@roeck-us.net, corbet@lwn.net,
	catalin.marinas@arm.com, will.deacon@arm.com,
	kstewart@linuxfoundation.org, gregkh@linuxfoundation.org,
	pombredanne@nexb.com, mmaddireddy@nvidia.com,
	mperttunen@nvidia.com, arnd@arndb.de, timur@codeaurora.org,
	andy.gross@linaro.org, xuwei5@hisilicon.com, elder@linaro.org,
	heiko@sntech.de, krzk@kernel.org, ard.biesheuvel@linaro.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-pwm@vger.kernel.org, linux-tegra@vger.kernel.org,
	linux-hwmon@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, ldewangan@nvidia.com
Subject: Re: [PATCH V2 1/9] pwm: core: Add support for PWM HW driver with pwm capture only
Date: Mon, 30 Apr 2018 11:51:59 +0200	[thread overview]
Message-ID: <20180430095159.GD2476@ulmo> (raw)
In-Reply-To: <1521607244-29734-2-git-send-email-rrajk@nvidia.com>

[-- Attachment #1: Type: text/plain, Size: 1848 bytes --]

On Wed, Mar 21, 2018 at 10:10:36AM +0530, Rajkumar Rampelli wrote:
> Add support for pwm HW driver which has only capture functionality.
> This helps to implement the PWM based Tachometer driver which reads
> the PWM output signals from electronic fans.
> 
> PWM Tachometer captures the period and duty cycle of the PWM signal
> 
> Add conditional checks for callabacks enable(), disable(), config()
> to check if they are supported by the client driver or not. Skip these
> callbacks if they are not supported.
> 
> Signed-off-by: Rajkumar Rampelli <rrajk@nvidia.com>
> ---
> 
> V2: Added if conditional checks for pwm callbacks since drivers may
>     implements only pwm capture functionality.
> 
>  drivers/pwm/core.c | 21 +++++++++++++++------
>  1 file changed, 15 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c
> index 1581f6a..f70fe68 100644
> --- a/drivers/pwm/core.c
> +++ b/drivers/pwm/core.c
> @@ -246,6 +246,10 @@ static bool pwm_ops_check(const struct pwm_ops *ops)
>  	if (ops->apply)
>  		return true;
>  
> +	/* driver supports capture operation */
> +	if (ops->capture)
> +		return true;
> +
>  	return false;
>  }
>  
> @@ -495,7 +499,8 @@ int pwm_apply_state(struct pwm_device *pwm, struct pwm_state *state)
>  			 * ->apply().
>  			 */
>  			if (pwm->state.enabled) {
> -				pwm->chip->ops->disable(pwm->chip, pwm);
> +				if (pwm->chip->ops->disable)
> +					pwm->chip->ops->disable(pwm->chip, pwm);

This is not a good idea. It means that you'll be able to successfully
configure a capture-only PWM channel for output. I think all of the
output configuration functions should return an error (-ENOSYS?) for
capture-only devices, much like we return -ENOSYS for pwm_capture() if
the driver doesn't implement capture support.

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: thierry.reding@gmail.com (Thierry Reding)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V2 1/9] pwm: core: Add support for PWM HW driver with pwm capture only
Date: Mon, 30 Apr 2018 11:51:59 +0200	[thread overview]
Message-ID: <20180430095159.GD2476@ulmo> (raw)
In-Reply-To: <1521607244-29734-2-git-send-email-rrajk@nvidia.com>

On Wed, Mar 21, 2018 at 10:10:36AM +0530, Rajkumar Rampelli wrote:
> Add support for pwm HW driver which has only capture functionality.
> This helps to implement the PWM based Tachometer driver which reads
> the PWM output signals from electronic fans.
> 
> PWM Tachometer captures the period and duty cycle of the PWM signal
> 
> Add conditional checks for callabacks enable(), disable(), config()
> to check if they are supported by the client driver or not. Skip these
> callbacks if they are not supported.
> 
> Signed-off-by: Rajkumar Rampelli <rrajk@nvidia.com>
> ---
> 
> V2: Added if conditional checks for pwm callbacks since drivers may
>     implements only pwm capture functionality.
> 
>  drivers/pwm/core.c | 21 +++++++++++++++------
>  1 file changed, 15 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c
> index 1581f6a..f70fe68 100644
> --- a/drivers/pwm/core.c
> +++ b/drivers/pwm/core.c
> @@ -246,6 +246,10 @@ static bool pwm_ops_check(const struct pwm_ops *ops)
>  	if (ops->apply)
>  		return true;
>  
> +	/* driver supports capture operation */
> +	if (ops->capture)
> +		return true;
> +
>  	return false;
>  }
>  
> @@ -495,7 +499,8 @@ int pwm_apply_state(struct pwm_device *pwm, struct pwm_state *state)
>  			 * ->apply().
>  			 */
>  			if (pwm->state.enabled) {
> -				pwm->chip->ops->disable(pwm->chip, pwm);
> +				if (pwm->chip->ops->disable)
> +					pwm->chip->ops->disable(pwm->chip, pwm);

This is not a good idea. It means that you'll be able to successfully
configure a capture-only PWM channel for output. I think all of the
output configuration functions should return an error (-ENOSYS?) for
capture-only devices, much like we return -ENOSYS for pwm_capture() if
the driver doesn't implement capture support.

Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180430/2ad7ea34/attachment.sig>

  reply	other threads:[~2018-04-30  9:52 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-21  4:40 [PATCH V2 0/9] Implementation of Tegra Tachometer driver Rajkumar Rampelli
2018-03-21  4:40 ` Rajkumar Rampelli
2018-03-21  4:40 ` Rajkumar Rampelli
2018-03-21  4:40 ` Rajkumar Rampelli
2018-03-21  4:40 ` [PATCH V2 1/9] pwm: core: Add support for PWM HW driver with pwm capture only Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-04-30  9:51   ` Thierry Reding [this message]
2018-04-30  9:51     ` Thierry Reding
2018-03-21  4:40 ` [PATCH V2 2/9] arm64: tegra: Add PWM controller on Tegra186 soc Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40 ` [PATCH V2 3/9] dt-bindings: Tegra186 tachometer device tree bindings Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-27 14:52   ` Rob Herring
2018-03-27 14:52     ` Rob Herring
2018-03-27 14:52     ` Rob Herring
2018-03-27 15:00     ` Rob Herring
2018-03-27 15:00       ` Rob Herring
2018-03-27 15:00       ` Rob Herring
2018-04-09  5:38     ` Mikko Perttunen
2018-04-09  5:38       ` Mikko Perttunen
2018-04-09  5:38       ` Mikko Perttunen
2018-04-09 13:21       ` Rob Herring
2018-04-09 13:21         ` Rob Herring
2018-04-09 13:21         ` Rob Herring
2018-04-09 13:21         ` Rob Herring
2018-04-09 14:37         ` Mikko Perttunen
2018-04-09 14:37           ` Mikko Perttunen
2018-04-09 14:37           ` Mikko Perttunen
2018-04-09 14:37           ` Mikko Perttunen
2018-04-10 13:30           ` Rob Herring
2018-04-10 13:30             ` Rob Herring
2018-04-10 13:30             ` Rob Herring
2018-04-10 13:30             ` Rob Herring
2018-04-10 13:43             ` Guenter Roeck
2018-04-10 13:43               ` Guenter Roeck
2018-04-10 13:43               ` Guenter Roeck
2018-04-10 13:43               ` Guenter Roeck
2018-03-21  4:40 ` [PATCH V2 4/9] arm64: tegra: Add Tachometer Controller on Tegra186 Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40 ` [PATCH V2 5/9] pwm: tegra: Add PWM based Tachometer driver Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40 ` [PATCH V2 6/9] arm64: tegra: Add pwm based fan support on Tegra186 Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40 ` [PATCH V2 7/9] hwmon: pwm-fan: add sysfs node to read rpm of fan Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  6:09   ` Guenter Roeck
2018-03-21  6:09     ` Guenter Roeck
2018-03-21  6:09     ` Guenter Roeck
2018-03-21  4:40 ` [PATCH V2 8/9] arm64: defconfig: enable Nvidia Tegra Tachometer as a module Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40 ` [PATCH V2 9/9] arm64: defconfig: enable pwm-fan as a loadable module Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli
2018-03-21  4:40   ` Rajkumar Rampelli

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=20180430095159.GD2476@ulmo \
    --to=thierry.reding@gmail.com \
    --cc=andy.gross@linaro.org \
    --cc=ard.biesheuvel@linaro.org \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=corbet@lwn.net \
    --cc=devicetree@vger.kernel.org \
    --cc=elder@linaro.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=heiko@sntech.de \
    --cc=jdelvare@suse.com \
    --cc=jonathanh@nvidia.com \
    --cc=krzk@kernel.org \
    --cc=kstewart@linuxfoundation.org \
    --cc=ldewangan@nvidia.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-hwmon@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=mark.rutland@arm.com \
    --cc=mmaddireddy@nvidia.com \
    --cc=mperttunen@nvidia.com \
    --cc=pombredanne@nexb.com \
    --cc=robh+dt@kernel.org \
    --cc=rrajk@nvidia.com \
    --cc=timur@codeaurora.org \
    --cc=will.deacon@arm.com \
    --cc=xuwei5@hisilicon.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.