From: Alexey Khoroshilov <khoroshilov@ispras.ru>
To: Wolfram Sang <wsa@the-dreams.de>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Jarkko Nikula <jarkko.nikula@linux.intel.com>,
Mika Westerberg <mika.westerberg@linux.intel.com>,
linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org,
ldv-project@linuxtesting.org
Subject: Re: [PATCH] i2c: designware: balance clk enable/disable on removal
Date: Sun, 14 Feb 2016 01:16:31 +0300 [thread overview]
Message-ID: <56BFAB3F.7080607@ispras.ru> (raw)
In-Reply-To: <20160212185400.GH1520@katana>
On 12.02.2016 21:54, Wolfram Sang wrote:
> On Mon, Feb 01, 2016 at 04:44:05PM +0200, Andy Shevchenko wrote:
>> On Mon, 2016-02-01 at 16:21 +0200, Jarkko Nikula wrote:
>>> On 01/30/2016 12:31 AM, Alexey Khoroshilov wrote:
>>>> It seems clk_disable_unprepare() is missed in dw_i2c_plat_remove(),
>>>> so the patch adds it.
>>>>
>>>> Found by Linux Driver Verification project (linuxtesting.org).
>>>>
>>>> Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
>>>> ---
>>>> drivers/i2c/busses/i2c-designware-platdrv.c | 1 +
>>>> 1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c
>>>> b/drivers/i2c/busses/i2c-designware-platdrv.c
>>>> index 438f1b4964c0..8f19b7b81fe0 100644
>>>> --- a/drivers/i2c/busses/i2c-designware-platdrv.c
>>>> +++ b/drivers/i2c/busses/i2c-designware-platdrv.c
>>>> @@ -267,6 +267,7 @@ static int dw_i2c_plat_remove(struct
>>>> platform_device *pdev)
>>>> i2c_del_adapter(&dev->adapter);
>>>>
>>>> i2c_dw_disable(dev);
>>>> + i2c_dw_plat_prepare_clk(dev, false);
>>>>
>>> I tried this quickly and it appears more work is needed. When
>>> CONFIG_PM_SLEEP is set then autosuspending will do the unprepare and
>>> this patch causes double unprepare at remove. But when
>>> CONFIG_PM_SLEEP
>>> is not set then indeed those clk calls are out of sync.
>>
>> Besides that I would suggest to check carefully error patch in the
>> probe(), i.e. handling error from i2c_dw_probe(). There maybe similar
>> issue is hidden.
>
> So, waiting for V2 on this one.
>
I have a fix for error handling of i2c_dw_probe(), but I am not sure
what is the right approach to handle CONFIG_PM_SLEEP case.
What is a safe way to distinguish a need for the unprepare in
dw_i2c_plat_remove()?
Should we try to avoid double i2c_dw_disable(dev) in the same case?
--
Alexey
prev parent reply other threads:[~2016-02-13 22:16 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-29 22:31 [PATCH] i2c: designware: balance clk enable/disable on removal Alexey Khoroshilov
2016-02-01 14:21 ` Jarkko Nikula
2016-02-01 14:44 ` Andy Shevchenko
2016-02-12 18:54 ` Wolfram Sang
2016-02-13 22:16 ` Alexey Khoroshilov [this message]
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=56BFAB3F.7080607@ispras.ru \
--to=khoroshilov@ispras.ru \
--cc=andriy.shevchenko@linux.intel.com \
--cc=jarkko.nikula@linux.intel.com \
--cc=ldv-project@linuxtesting.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=wsa@the-dreams.de \
/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.