All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mylene Josserand <mylene.josserand@free-electrons.com>
To: Maxime Ripard <maxime.ripard@free-electrons.com>,
	Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: mark.rutland@arm.com, devicetree@vger.kernel.org,
	alsa-devel@alsa-project.org, vinod.koul@intel.com,
	linux-kernel@vger.kernel.org, mturquette@baylibre.com,
	tiwai@suse.com, sboyd@codeaurora.org, lgirdwood@gmail.com,
	robh+dt@kernel.org, perex@perex.cz, wens@csie.org,
	broonie@kernel.org, alexandre.belloni@free-electrons.com,
	dmaengine@vger.kernel.org, lee.jones@linaro.org,
	linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 03/14] ASoC: sun4i-i2s: Add apb reset
Date: Wed, 5 Oct 2016 11:43:10 +0200	[thread overview]
Message-ID: <efd96516-c5f4-91d0-450d-7521b1b76ed7@free-electrons.com> (raw)
In-Reply-To: <20161004154218.GM5228@lukather>

Hello,


On 04/10/2016 17:42, Maxime Ripard wrote:
> Hi,
>
> On Tue, Oct 04, 2016 at 02:15:16PM +0200, Thomas Petazzoni wrote:
>> Hello,
>>
>> On Tue,  4 Oct 2016 11:46:16 +0200, Mylène Josserand wrote:
>>
>>>  #include <sound/dmaengine_pcm.h>
>>>  #include <sound/pcm_params.h>
>>> @@ -589,6 +590,7 @@ static int sun4i_i2s_probe(struct platform_device *pdev)
>>>  {
>>>  	struct sun4i_i2s *i2s;
>>>  	struct resource *res;
>>> +	struct reset_control *reset_apb;
>>>  	void __iomem *regs;
>>>  	int irq, ret;
>>>
>>> @@ -626,7 +628,19 @@ static int sun4i_i2s_probe(struct platform_device *pdev)
>>>  		dev_err(&pdev->dev, "Can't get our mod clock\n");
>>>  		return PTR_ERR(i2s->mod_clk);
>>>  	}
>>> -	
>>> +
>>> +	reset_apb = devm_reset_control_get(&pdev->dev, "apb_reset");
>>
>> I believe this is a change in the Device Tree binding, since you're
>> adding support for a new resource. Perhaps the Device Tree binding
>> documentation should be updated accordingly?
>
> Indeed.
>
> You have two solutions to do that:
>   - Either mark it as optional and use reset_control_get_optional
>     (because here, you broke the other SoCs that have that controller
>     but no reset line)
>   - Or introduce a new compatible, and make the reset property
>     mandatory for that new compatible.
>
> I prefer the latter, since you get a stricter error check, and you
> cannot end up in a situation where your driver probes but is
> useless. But you'll find both in our drivers.
>


Okay, thank you for the hints!


>>> +	}
>>> +
>>> +	ret = reset_control_deassert(reset_apb);
>>> +	if (ret < 0) {
>>> +		dev_err(&pdev->dev, "Can't deassert apb reset (%d)\n", ret);
>>> +		return ret;
>>> +	}
>>
>> Do you need to re-assert the reset line in the ->remove() hook?
>
> Even better, you can add it to the runtime_pm hooks! :)


I will have a look to runtime_pm and update it for a V2.


-- 
Mylène Josserand, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

WARNING: multiple messages have this Message-ID (diff)
From: mylene.josserand@free-electrons.com (Mylene Josserand)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 03/14] ASoC: sun4i-i2s: Add apb reset
Date: Wed, 5 Oct 2016 11:43:10 +0200	[thread overview]
Message-ID: <efd96516-c5f4-91d0-450d-7521b1b76ed7@free-electrons.com> (raw)
In-Reply-To: <20161004154218.GM5228@lukather>

Hello,


On 04/10/2016 17:42, Maxime Ripard wrote:
> Hi,
>
> On Tue, Oct 04, 2016 at 02:15:16PM +0200, Thomas Petazzoni wrote:
>> Hello,
>>
>> On Tue,  4 Oct 2016 11:46:16 +0200, Myl?ne Josserand wrote:
>>
>>>  #include <sound/dmaengine_pcm.h>
>>>  #include <sound/pcm_params.h>
>>> @@ -589,6 +590,7 @@ static int sun4i_i2s_probe(struct platform_device *pdev)
>>>  {
>>>  	struct sun4i_i2s *i2s;
>>>  	struct resource *res;
>>> +	struct reset_control *reset_apb;
>>>  	void __iomem *regs;
>>>  	int irq, ret;
>>>
>>> @@ -626,7 +628,19 @@ static int sun4i_i2s_probe(struct platform_device *pdev)
>>>  		dev_err(&pdev->dev, "Can't get our mod clock\n");
>>>  		return PTR_ERR(i2s->mod_clk);
>>>  	}
>>> -	
>>> +
>>> +	reset_apb = devm_reset_control_get(&pdev->dev, "apb_reset");
>>
>> I believe this is a change in the Device Tree binding, since you're
>> adding support for a new resource. Perhaps the Device Tree binding
>> documentation should be updated accordingly?
>
> Indeed.
>
> You have two solutions to do that:
>   - Either mark it as optional and use reset_control_get_optional
>     (because here, you broke the other SoCs that have that controller
>     but no reset line)
>   - Or introduce a new compatible, and make the reset property
>     mandatory for that new compatible.
>
> I prefer the latter, since you get a stricter error check, and you
> cannot end up in a situation where your driver probes but is
> useless. But you'll find both in our drivers.
>


Okay, thank you for the hints!


>>> +	}
>>> +
>>> +	ret = reset_control_deassert(reset_apb);
>>> +	if (ret < 0) {
>>> +		dev_err(&pdev->dev, "Can't deassert apb reset (%d)\n", ret);
>>> +		return ret;
>>> +	}
>>
>> Do you need to re-assert the reset line in the ->remove() hook?
>
> Even better, you can add it to the runtime_pm hooks! :)


I will have a look to runtime_pm and update it for a V2.


-- 
Myl?ne Josserand, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

  reply	other threads:[~2016-10-05  9:43 UTC|newest]

Thread overview: 170+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-04  9:46 [PATCH 00/14] ASoc: sunxi: Add Allwinner A33 codec driver Mylène Josserand
2016-10-04  9:46 ` Mylène Josserand
     [not found] ` <cover.1475571575.git.mylene.josserand@free-electrons.com>
2016-10-04  9:46   ` [PATCH 01/14] dma: sun6i-dma: Add burst case of 4 Mylène Josserand
2016-10-04  9:46     ` Mylène Josserand
2016-10-04 10:40     ` Jean-Francois Moine
2016-10-04 10:40       ` Jean-Francois Moine
2016-10-04 10:40       ` Jean-Francois Moine
2016-10-04 12:12       ` Thomas Petazzoni
2016-10-04 12:12         ` Thomas Petazzoni
2016-10-04 12:12         ` Thomas Petazzoni
2016-10-04 12:12         ` Thomas Petazzoni
2016-10-04 13:46         ` Jean-Francois Moine
2016-10-04 13:46           ` Jean-Francois Moine
2016-10-04 13:46           ` Jean-Francois Moine
2016-10-04 13:46           ` Jean-Francois Moine
2016-10-04 15:40           ` Vinod Koul
2016-10-04 15:40             ` Vinod Koul
2016-10-04 15:40             ` Vinod Koul
2016-10-04 16:55       ` Maxime Ripard
2016-10-04 16:55         ` Maxime Ripard
2016-10-23 16:31         ` Jean-Francois Moine
2016-10-23 16:31           ` Jean-Francois Moine
2016-10-23 16:31           ` Jean-Francois Moine
2016-10-23 16:31           ` Jean-Francois Moine
2016-10-27 17:51           ` Maxime Ripard
2016-10-27 17:51             ` Maxime Ripard
2016-10-27 17:51             ` Maxime Ripard
2016-10-30  2:06             ` Chen-Yu Tsai
2016-10-30  2:06               ` Chen-Yu Tsai
2016-10-30  2:06               ` Chen-Yu Tsai
2016-10-30  2:06               ` Chen-Yu Tsai
2016-10-30  6:16               ` Jean-Francois Moine
2016-10-30  6:16                 ` Jean-Francois Moine
2016-10-30  6:16                 ` Jean-Francois Moine
2016-10-30  6:16                 ` Jean-Francois Moine
2016-11-01 13:46               ` Koul, Vinod
2016-11-01 13:46                 ` Koul, Vinod
2016-11-01 13:46                 ` Koul, Vinod
2016-11-01 13:46                 ` Koul, Vinod
2016-11-01 14:55                 ` Chen-Yu Tsai
2016-11-01 14:55                   ` Chen-Yu Tsai
2016-11-01 14:55                   ` Chen-Yu Tsai
2016-11-01 14:55                   ` Chen-Yu Tsai
2016-11-14  4:54                   ` Vinod Koul
2016-11-14  4:54                     ` Vinod Koul
2016-11-14  4:54                     ` Vinod Koul
2016-11-14  4:54                     ` Vinod Koul
2016-10-04  9:46   ` [PATCH 02/14] clk: ccu-sun8i-a33: Add CLK_SET_RATE_PARENT to ac-dig Mylène Josserand
2016-10-04  9:46     ` Mylène Josserand
2016-10-04 12:12     ` Thomas Petazzoni
2016-10-04 12:12       ` Thomas Petazzoni
2016-10-04 12:12       ` Thomas Petazzoni
2016-10-04 12:12       ` Thomas Petazzoni
2016-10-05  9:37       ` Mylene Josserand
2016-10-05  9:37         ` Mylene Josserand
2016-10-04  9:46   ` [PATCH 03/14] ASoC: sun4i-i2s: Add apb reset Mylène Josserand
2016-10-04  9:46     ` Mylène Josserand
2016-10-04 12:15     ` Thomas Petazzoni
2016-10-04 12:15       ` Thomas Petazzoni
2016-10-04 12:15       ` Thomas Petazzoni
2016-10-04 15:42       ` Maxime Ripard
2016-10-04 15:42         ` Maxime Ripard
2016-10-05  9:43         ` Mylene Josserand [this message]
2016-10-05  9:43           ` Mylene Josserand
2016-10-04 12:22     ` Code Kipper
2016-10-04 12:22       ` Code Kipper
2016-10-04 12:22       ` Code Kipper
2016-10-04  9:46   ` [PATCH 04/14] ASoC: Add sun8i analog codec driver Mylène Josserand
2016-10-04  9:46     ` Mylène Josserand
2016-10-04  9:46     ` Mylène Josserand
2016-10-04 10:21     ` Code Kipper
2016-10-04 10:21       ` Code Kipper
2016-10-04 10:21       ` Code Kipper
2016-10-04 10:21       ` Code Kipper
2016-10-04 10:56       ` Chen-Yu Tsai
2016-10-04 10:56         ` Chen-Yu Tsai
2016-10-04 10:56         ` Chen-Yu Tsai
2016-10-04 10:56         ` Chen-Yu Tsai
2016-10-04  9:46   ` [PATCH 05/14] mfd: sun6i-prcm: Add sun8i analog codec as subnode Mylène Josserand
2016-10-04  9:46     ` Mylène Josserand
2016-10-04 10:52     ` Jean-Francois Moine
2016-10-04 10:52       ` Jean-Francois Moine
2016-10-04 10:52       ` Jean-Francois Moine
2016-10-26 14:05     ` Lee Jones
2016-10-26 14:05       ` Lee Jones
2016-10-26 14:05       ` Lee Jones
2016-10-04  9:46   ` [PATCH 06/14] ASoC: Add sun8i digital audio codec Mylène Josserand
2016-10-04  9:46     ` Mylène Josserand
2016-10-04 12:40     ` Thomas Petazzoni
2016-10-04 12:40       ` Thomas Petazzoni
2016-10-04 12:40       ` Thomas Petazzoni
2016-10-04 13:07       ` Mark Brown
2016-10-04 13:07         ` Mark Brown
2016-10-04 13:07         ` Mark Brown
2016-10-04 13:16         ` Thomas Petazzoni
2016-10-04 13:16           ` Thomas Petazzoni
2016-10-04 16:09       ` Maxime Ripard
2016-10-04 16:09         ` Maxime Ripard
2016-10-04 16:09         ` Maxime Ripard
2016-10-05 11:54       ` Mylene Josserand
2016-10-05 11:54         ` Mylene Josserand
2016-10-04 16:15     ` Maxime Ripard
2016-10-04 16:15       ` Maxime Ripard
2016-10-06 16:06       ` Icenowy Zheng
2016-10-06 16:06         ` Icenowy Zheng
2016-10-06 16:06         ` Icenowy Zheng
2016-10-06 18:23         ` Alexandre Belloni
2016-10-06 18:23           ` Alexandre Belloni
2016-10-06 18:23           ` Alexandre Belloni
     [not found]     ` <85cbd9926e52d0aa03f6bbfd8794373d8db491e0.1475571575.git.mylene.josserand-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-10-05 10:19       ` Icenowy Zheng
2016-10-05 10:19         ` Icenowy Zheng
2016-10-05 10:19         ` Icenowy Zheng
2016-10-04  9:46   ` [PATCH 07/14] ASoC: Add sun8i audio card Mylène Josserand
2016-10-04  9:46     ` Mylène Josserand
2016-10-04 10:16     ` Code Kipper
2016-10-04 10:16       ` Code Kipper
2016-10-04 10:16       ` Code Kipper
2016-10-04 10:16       ` Code Kipper
2016-10-04 10:59       ` Chen-Yu Tsai
2016-10-04 10:59         ` Chen-Yu Tsai
2016-10-04 10:59         ` Chen-Yu Tsai
2016-10-04 10:59         ` Chen-Yu Tsai
2016-10-04 12:25     ` Thomas Petazzoni
2016-10-04 12:25       ` Thomas Petazzoni
2016-10-04 12:25       ` Thomas Petazzoni
2016-10-05  6:04     ` Code Kipper
2016-10-05  6:04       ` Code Kipper
2016-10-05  6:04       ` Code Kipper
2016-10-05  6:04       ` Code Kipper
2016-10-05 10:03       ` Jean-Francois Moine
2016-10-05 10:03         ` Jean-Francois Moine
2016-10-05 10:03         ` Jean-Francois Moine
2016-10-05 10:03         ` Jean-Francois Moine
2016-10-04  9:46   ` [PATCH 08/14] dt-bindings: sound: Add sun8i analog codec documentation Mylène Josserand
2016-10-04  9:46     ` Mylène Josserand
2016-10-04 10:32     ` Mark Brown
2016-10-04 10:32       ` Mark Brown
2016-10-04 10:32       ` Mark Brown
2016-10-04 16:24     ` Maxime Ripard
2016-10-04 16:24       ` Maxime Ripard
2016-10-04 16:24       ` Maxime Ripard
2016-10-05  2:59       ` Chen-Yu Tsai
2016-10-05  2:59         ` Chen-Yu Tsai
2016-10-05  2:59         ` Chen-Yu Tsai
2016-10-05  2:59         ` Chen-Yu Tsai
2016-10-05 12:08         ` Mylene Josserand
2016-10-05 12:08           ` Mylene Josserand
2016-10-05 12:08           ` Mylene Josserand
2016-10-04  9:46   ` [PATCH 09/14] dt-bindings: sound: Add sun8i " Mylène Josserand
2016-10-04  9:46     ` Mylène Josserand
2016-10-04  9:46     ` Mylène Josserand
2016-10-04 16:19     ` Maxime Ripard
2016-10-04 16:19       ` Maxime Ripard
2016-10-04  9:46   ` [PATCH 10/14] dt-bindings: sound: Add sun8i audio card documentation Mylène Josserand
2016-10-04  9:46     ` Mylène Josserand
2016-10-04  9:46     ` Mylène Josserand
2016-10-04 16:32     ` Maxime Ripard
2016-10-04 16:32       ` Maxime Ripard
2016-10-04 16:32       ` Maxime Ripard
2016-10-04  9:46   ` [PATCH 11/14] ARM: dts: sun8i: Add analog codec on prcm node Mylène Josserand
2016-10-04  9:46     ` Mylène Josserand
2016-10-04  9:46   ` [PATCH 12/14] ARM: dts: sun8i: Add audio codec, dai and card for A33 Mylène Josserand
2016-10-04  9:46     ` Mylène Josserand
2016-10-04  9:46   ` [PATCH 13/14] ARM: dts: sun8i: parrot: Enable audio nodes Mylène Josserand
2016-10-04  9:46     ` Mylène Josserand
2016-10-04  9:46   ` [PATCH 14/14] ARM: dts: sun8i: sinlinx: " Mylène Josserand
2016-10-04  9:46     ` Mylène Josserand
     [not found] ` <cover.1475569400.git.mylene.josserand-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-10-07  8:35   ` [PATCH 00/14] ASoc: sunxi: Add Allwinner A33 codec driver Icenowy Zheng
2016-10-07  8:35     ` Icenowy Zheng
2016-10-07  8:35     ` Icenowy Zheng

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=efd96516-c5f4-91d0-450d-7521b1b76ed7@free-electrons.com \
    --to=mylene.josserand@free-electrons.com \
    --cc=alexandre.belloni@free-electrons.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmaengine@vger.kernel.org \
    --cc=lee.jones@linaro.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=maxime.ripard@free-electrons.com \
    --cc=mturquette@baylibre.com \
    --cc=perex@perex.cz \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@codeaurora.org \
    --cc=thomas.petazzoni@free-electrons.com \
    --cc=tiwai@suse.com \
    --cc=vinod.koul@intel.com \
    --cc=wens@csie.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 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.