From: Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org>
To: Dmitry Torokhov
<dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Mika Westerberg
<mika.westerberg-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
"Rafael J. Wysocki"
<rafael.j.wysocki-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
Ulf Hansson <ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Vignesh R <vigneshr-l0cyMroinI0@public.gmane.org>,
Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>,
Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH] i2c: allow specifying separate wakeup interrupt in device tree
Date: Wed, 19 Aug 2015 19:43:49 +0200 [thread overview]
Message-ID: <20150819174347.GA2112@katana> (raw)
In-Reply-To: <20150810061621.GA1573@katana>
> > > > @@ -659,20 +662,47 @@ static int i2c_device_probe(struct device *dev)
> > > > if (!device_can_wakeup(&client->dev))
> > > > device_init_wakeup(&client->dev,
> > > > client->flags & I2C_CLIENT_WAKE);
> > >
> > > I was about to ask if we couldn't combine this and the later if-blocks
> > > with an if-else combination. But now I stumble over the above block in
> > > general: If the device cannot cause wake ups, then we might initialize
> > > it as a wakeup-device depending on client->flags??
> >
> > I believe it is done so that we do not try to re-add wakeup source after
> > unbinding/rebinding the device. With my patch we clearing wakeup flag on
> > unbind, so it is OK, but there is still error path where we might want
> > to reset the wakeup flag as well.
>
> I was wondering if it wants to achieve that, why does it not
> unconditionally use 0 instead of the WAKE flag.
When reviewing V2, I wasn't comfortable with just guessing what the old
code means. So, I did some digging and found:
https://lkml.org/lkml/2008/8/10/204
Quoting the interesting paragraph from David Brownell:
===
Better would be to preserve any existing settings:
if (!device_can_wakeup(&client->dev))
device_init_wakeup(...)
That way the userspace policy setting is preserved unless the
device itself gets removed ... instead of being clobbered by
the simple act of (re)probing a driver.
> > + device_init_wakeup(&client->dev, client->flags &
> > I2C_CLIENT_WAKE);
===
I have to admit that I am not familiar with device wakeup handling and
especially its userspace policies. Can you double check that your V2
meets the above intention?
Thanks,
Wolfram
WARNING: multiple messages have this Message-ID (diff)
From: Wolfram Sang <wsa@the-dreams.de>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Mika Westerberg <mika.westerberg@linux.intel.com>,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
Ulf Hansson <ulf.hansson@linaro.org>, Vignesh R <vigneshr@ti.com>,
Tony Lindgren <tony@atomide.com>,
Rob Herring <robh+dt@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] i2c: allow specifying separate wakeup interrupt in device tree
Date: Wed, 19 Aug 2015 19:43:49 +0200 [thread overview]
Message-ID: <20150819174347.GA2112@katana> (raw)
In-Reply-To: <20150810061621.GA1573@katana>
> > > > @@ -659,20 +662,47 @@ static int i2c_device_probe(struct device *dev)
> > > > if (!device_can_wakeup(&client->dev))
> > > > device_init_wakeup(&client->dev,
> > > > client->flags & I2C_CLIENT_WAKE);
> > >
> > > I was about to ask if we couldn't combine this and the later if-blocks
> > > with an if-else combination. But now I stumble over the above block in
> > > general: If the device cannot cause wake ups, then we might initialize
> > > it as a wakeup-device depending on client->flags??
> >
> > I believe it is done so that we do not try to re-add wakeup source after
> > unbinding/rebinding the device. With my patch we clearing wakeup flag on
> > unbind, so it is OK, but there is still error path where we might want
> > to reset the wakeup flag as well.
>
> I was wondering if it wants to achieve that, why does it not
> unconditionally use 0 instead of the WAKE flag.
When reviewing V2, I wasn't comfortable with just guessing what the old
code means. So, I did some digging and found:
https://lkml.org/lkml/2008/8/10/204
Quoting the interesting paragraph from David Brownell:
===
Better would be to preserve any existing settings:
if (!device_can_wakeup(&client->dev))
device_init_wakeup(...)
That way the userspace policy setting is preserved unless the
device itself gets removed ... instead of being clobbered by
the simple act of (re)probing a driver.
> > + device_init_wakeup(&client->dev, client->flags &
> > I2C_CLIENT_WAKE);
===
I have to admit that I am not familiar with device wakeup handling and
especially its userspace policies. Can you double check that your V2
meets the above intention?
Thanks,
Wolfram
next prev parent reply other threads:[~2015-08-19 17:43 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-30 20:14 [PATCH] i2c: allow specifying separate wakeup interrupt in device tree Dmitry Torokhov
2015-07-30 20:14 ` Dmitry Torokhov
2015-07-31 10:57 ` Vignesh R
[not found] ` <55BB54B1.80603-l0cyMroinI0@public.gmane.org>
2015-08-03 10:21 ` Tony Lindgren
2015-08-03 10:21 ` Tony Lindgren
[not found] ` <20150803102121.GO16878-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2015-08-03 20:02 ` Dmitry Torokhov
2015-08-03 20:02 ` Dmitry Torokhov
2015-08-05 13:33 ` Tony Lindgren
2015-08-09 15:22 ` Wolfram Sang
2015-08-09 15:22 ` Wolfram Sang
2015-08-10 5:59 ` Dmitry Torokhov
2015-08-10 5:59 ` Dmitry Torokhov
2015-08-10 6:16 ` Wolfram Sang
2015-08-19 17:43 ` Wolfram Sang [this message]
2015-08-19 17:43 ` Wolfram Sang
2015-08-19 17:51 ` Dmitry Torokhov
2015-08-24 12:33 ` Wolfram Sang
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=20150819174347.GA2112@katana \
--to=wsa-z923lk4zbo2bacvfa/9k2g@public.gmane.org \
--cc=dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=mika.westerberg-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=rafael.j.wysocki-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org \
--cc=ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=vigneshr-l0cyMroinI0@public.gmane.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.