lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 10 Sep 2013 10:51:00 +0300
From:	Mika Westerberg <mika.westerberg@...ux.intel.com>
To:	Mark Brown <broonie@...nel.org>
Cc:	linux-i2c@...r.kernel.org, Wolfram Sang <wsa@...-dreams.de>,
	"Rafael J. Wysocki" <rafael.j.wysocki@...el.com>,
	linux-acpi@...r.kernel.org, linux-kernel@...r.kernel.org,
	Lv Zheng <lv.zheng@...el.com>, Aaron Lu <aaron.lu@...el.com>,
	linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH RESEND 1/2] i2c: prepare runtime PM support for I2C
 client devices

On Mon, Sep 09, 2013 at 04:40:28PM +0100, Mark Brown wrote:
> On Mon, Sep 09, 2013 at 04:34:38PM +0300, Mika Westerberg wrote:
> 
> > +	/*
> > +	 * Enable runtime PM for the client device. If the client wants to
> > +	 * participate on runtime PM it should call pm_runtime_put() in its
> > +	 * probe() callback.
> > +	 *
> > +	 * User still needs to allow the PM runtime before it can actually
> > +	 * happen.
> > +	 */
> > +	pm_runtime_forbid(&client->dev);
> > +	pm_runtime_get_noresume(&client->dev);
> > +	pm_runtime_set_active(&client->dev);
> > +	pm_runtime_enable(&client->dev);
> 
> How is this going to interact with client devices which are already
> enabling runtime PM for themselves, and what are the advantages of doing
> this over having the client device enable runtime PM for itself (given
> that the client still needs an explicit put() adding)?

My understanding is that you can call pm_runtime_enable() several times
(provided that pm_runtime_disable() is called as many times). So that
should have no effect on the current drivers that already take advantage of
runtime PM.

There is one difference though -- runtime PM is now blocked by default and
it needs to be unblocked from the userspace per each device.

For the advantages compared to each driver handling it completely
themselves:

	- Few lines less as you only need to call _put().
	- It follows what is already been done for other buses, like PCI
	  and AMBA .
	- The I2C core makes sure that the device is available (from bus
	  point of view) when the driver ->probe() is called.

> Given that it's relatively common for devices to have both I2C and SPI
> control it seems like it'd be sensible to keep the policy common between
> the two buses to simplify driver implementation.

Yes and IMHO if I2C and SPI follows what has already been done for other
buses it should make the driver writer's job easier as the usage is similar
from one bus to another.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ