Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1209966

Re: [PATCH] i2c: allow specifying separate wakeup interrupt in device tree

From Wolfram Sang <wsa@the-dreams.de>
Newsgroups linux.kernel
Subject Re: [PATCH] i2c: allow specifying separate wakeup interrupt in device tree
Date 2015-08-19 19:50 +0200
Message-ID <pZfER-4uL-5@gated-at.bofh.it> (permalink)
References <pS2t5-pi-23@gated-at.bofh.it> <pVAHU-1zK-3@gated-at.bofh.it> <pVOhQ-535-5@gated-at.bofh.it> <pVOBc-5JE-31@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


> > > > @@ -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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: [PATCH] i2c: allow specifying separate wakeup interrupt in  device tree Wolfram Sang <wsa@the-dreams.de> - 2015-08-09 17:30 +0200
  Re: [PATCH] i2c: allow specifying separate wakeup interrupt in  device tree Dmitry Torokhov <dmitry.torokhov@gmail.com> - 2015-08-10 08:00 +0200
    Re: [PATCH] i2c: allow specifying separate wakeup interrupt in  device tree Wolfram Sang <wsa@the-dreams.de> - 2015-08-10 08:20 +0200
      Re: [PATCH] i2c: allow specifying separate wakeup interrupt in  device tree Wolfram Sang <wsa@the-dreams.de> - 2015-08-19 19:50 +0200
        Re: [PATCH] i2c: allow specifying separate wakeup interrupt in device tree Dmitry Torokhov <dmitry.torokhov@gmail.com> - 2015-08-19 20:00 +0200
          Re: [PATCH] i2c: allow specifying separate wakeup interrupt in  device tree Wolfram Sang <wsa@the-dreams.de> - 2015-08-24 14:40 +0200

csiph-web