* [PATCH] of_i2c: Honour "status=disabled" property of device @ 2012-11-28 14:21 Alexander Sverdlin [not found] ` <50B61DDA.5090109-uSbOeAmDUekAvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Alexander Sverdlin @ 2012-11-28 14:21 UTC (permalink / raw) To: Jochen Friedrich, Jon Smirl, linux-i2c-u79uwXL29TY76Z2rM5mHXA, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ, Rob Herring, Grant Likely Cc: alexander sverdlin From: Alexander Sverdlin <alexander.sverdlin-uSbOeAmDUekAvxtiuMwx3w@public.gmane.org> of_i2c: Honour "status=disabled" property of device Currently of_i2c_register_devices() function registers all i2c devices, independently from their status property in device tree. According to "ePAPR 1.1" spec, device should only be registered if there is no "status" property, or it has "ok" (or "okay") value (see of_device_is_available()). In case of "platform devices", of_platform_device_create_pdata() checks for "status" and ensures that disabled devices are not populated. But such check for i2c buses was missing until now. Fix it. Signed-off-by: Alexander Sverdlin <alexander.sverdlin-uSbOeAmDUekAvxtiuMwx3w@public.gmane.org> --- --- linux.orig/drivers/of/of_i2c.c +++ linux/drivers/of/of_i2c.c @@ -29,7 +29,7 @@ void of_i2c_register_devices(struct i2c_ dev_dbg(&adap->dev, "of_i2c: walking child nodes\n"); - for_each_child_of_node(adap->dev.of_node, node) { + for_each_available_child_of_node(adap->dev.of_node, node) { struct i2c_board_info info = {}; struct dev_archdata dev_ad = {}; const __be32 *addr; ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <50B61DDA.5090109-uSbOeAmDUekAvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH] of_i2c: Honour "status=disabled" property of device [not found] ` <50B61DDA.5090109-uSbOeAmDUekAvxtiuMwx3w@public.gmane.org> @ 2012-11-28 16:16 ` Stephen Warren [not found] ` <50B638CC.6070106-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> 2012-11-28 17:10 ` Wolfram Sang 2012-11-29 3:20 ` Barry Song 2 siblings, 1 reply; 6+ messages in thread From: Stephen Warren @ 2012-11-28 16:16 UTC (permalink / raw) To: Alexander Sverdlin Cc: Jochen Friedrich, Jon Smirl, linux-i2c-u79uwXL29TY76Z2rM5mHXA, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ, Rob Herring, Grant Likely, alexander sverdlin On 11/28/2012 07:21 AM, Alexander Sverdlin wrote: > of_i2c: Honour "status=disabled" property of device > > Currently of_i2c_register_devices() function registers all i2c devices, > independently from their status property in device tree. According to > "ePAPR 1.1" spec, device should only be registered if there is no > "status" property, or it has "ok" (or "okay") value (see > of_device_is_available()). In case of "platform devices", > of_platform_device_create_pdata() checks for "status" and ensures > that disabled devices are not populated. But such check for i2c buses > was missing until now. Fix it. Do SPI and other buses (e.g. MDIO/MDIO mux?) need a similar change? ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <50B638CC.6070106-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>]
* Re: [PATCH] of_i2c: Honour "status=disabled" property of device [not found] ` <50B638CC.6070106-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> @ 2012-11-28 16:51 ` Alexander Sverdlin [not found] ` <50B6412E.7060906-uSbOeAmDUekAvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Alexander Sverdlin @ 2012-11-28 16:51 UTC (permalink / raw) To: Stephen Warren Cc: Jochen Friedrich, Jon Smirl, linux-i2c-u79uwXL29TY76Z2rM5mHXA, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ, Rob Herring, Grant Likely, alexander sverdlin Hi! On 11/28/2012 05:16 PM, Stephen Warren wrote: > On 11/28/2012 07:21 AM, Alexander Sverdlin wrote: >> of_i2c: Honour "status=disabled" property of device >> >> Currently of_i2c_register_devices() function registers all i2c devices, >> independently from their status property in device tree. According to >> "ePAPR 1.1" spec, device should only be registered if there is no >> "status" property, or it has "ok" (or "okay") value (see >> of_device_is_available()). In case of "platform devices", >> of_platform_device_create_pdata() checks for "status" and ensures >> that disabled devices are not populated. But such check for i2c buses >> was missing until now. Fix it. > > Do SPI and other buses (e.g. MDIO/MDIO mux?) need a similar change? You are right, of_register_spi_devices() and of_mdiobus_register() both have exactly the same issue. Should it be a follow-up patch, or better to combine them to one patch? -- Best regards, Alexander Sverdlin. ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <50B6412E.7060906-uSbOeAmDUekAvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH] of_i2c: Honour "status=disabled" property of device [not found] ` <50B6412E.7060906-uSbOeAmDUekAvxtiuMwx3w@public.gmane.org> @ 2012-11-28 17:05 ` Rob Herring 0 siblings, 0 replies; 6+ messages in thread From: Rob Herring @ 2012-11-28 17:05 UTC (permalink / raw) To: Alexander Sverdlin Cc: Stephen Warren, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ, Rob Herring, linux-i2c-u79uwXL29TY76Z2rM5mHXA, alexander sverdlin, Jon Smirl, Grant Likely On 11/28/2012 10:51 AM, Alexander Sverdlin wrote: > Hi! > > On 11/28/2012 05:16 PM, Stephen Warren wrote: >> On 11/28/2012 07:21 AM, Alexander Sverdlin wrote: >>> of_i2c: Honour "status=disabled" property of device >>> >>> Currently of_i2c_register_devices() function registers all i2c devices, >>> independently from their status property in device tree. According to >>> "ePAPR 1.1" spec, device should only be registered if there is no >>> "status" property, or it has "ok" (or "okay") value (see >>> of_device_is_available()). In case of "platform devices", >>> of_platform_device_create_pdata() checks for "status" and ensures >>> that disabled devices are not populated. But such check for i2c buses >>> was missing until now. Fix it. >> >> Do SPI and other buses (e.g. MDIO/MDIO mux?) need a similar change? > > You are right, of_register_spi_devices() and of_mdiobus_register() both have exactly the same issue. > Should it be a follow-up patch, or better to combine them to one patch? Separate please in case there is some reason to revert. Also, I already have a patch for i2c that does the same thing in my tree. However, your patch is better, so I'll probably replace it with yours. Rob ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] of_i2c: Honour "status=disabled" property of device [not found] ` <50B61DDA.5090109-uSbOeAmDUekAvxtiuMwx3w@public.gmane.org> 2012-11-28 16:16 ` Stephen Warren @ 2012-11-28 17:10 ` Wolfram Sang 2012-11-29 3:20 ` Barry Song 2 siblings, 0 replies; 6+ messages in thread From: Wolfram Sang @ 2012-11-28 17:10 UTC (permalink / raw) To: Alexander Sverdlin Cc: Jochen Friedrich, Jon Smirl, linux-i2c-u79uwXL29TY76Z2rM5mHXA, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ, Rob Herring, Grant Likely, alexander sverdlin [-- Attachment #1: Type: text/plain, Size: 1111 bytes --] On Wed, Nov 28, 2012 at 03:21:14PM +0100, Alexander Sverdlin wrote: > From: Alexander Sverdlin <alexander.sverdlin-uSbOeAmDUekAvxtiuMwx3w@public.gmane.org> > > of_i2c: Honour "status=disabled" property of device > > Currently of_i2c_register_devices() function registers all i2c devices, > independently from their status property in device tree. According to > "ePAPR 1.1" spec, device should only be registered if there is no > "status" property, or it has "ok" (or "okay") value (see > of_device_is_available()). In case of "platform devices", > of_platform_device_create_pdata() checks for "status" and ensures > that disabled devices are not populated. But such check for i2c buses > was missing until now. Fix it. > > Signed-off-by: Alexander Sverdlin <alexander.sverdlin-uSbOeAmDUekAvxtiuMwx3w@public.gmane.org> Seems like Rob wants to pick it, so: Acked-by: Wolfram Sang <w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> -- Pengutronix e.K. | Wolfram Sang | Industrial Linux Solutions | http://www.pengutronix.de/ | [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH] of_i2c: Honour "status=disabled" property of device [not found] ` <50B61DDA.5090109-uSbOeAmDUekAvxtiuMwx3w@public.gmane.org> 2012-11-28 16:16 ` Stephen Warren 2012-11-28 17:10 ` Wolfram Sang @ 2012-11-29 3:20 ` Barry Song 2 siblings, 0 replies; 6+ messages in thread From: Barry Song @ 2012-11-29 3:20 UTC (permalink / raw) To: Alexander Sverdlin, Jochen Friedrich, Jon Smirl, linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org, Rob Herring, Grant Likely Cc: alexander sverdlin > -----Original Message----- > From: devicetree-discuss > [mailto:devicetree-discuss-bounces+bs14=csr.com@lists.ozlabs.org] On Behalf > Of Alexander Sverdlin > Sent: Wednesday, November 28, 2012 10:21 PM > To: Jochen Friedrich; Jon Smirl; linux-i2c@vger.kernel.org; > devicetree-discuss@lists.ozlabs.org; Rob Herring; Grant Likely > Cc: alexander sverdlin > Subject: [PATCH] of_i2c: Honour "status=disabled" property of device > > From: Alexander Sverdlin <alexander.sverdlin@sysgo.com> > > of_i2c: Honour "status=disabled" property of device > > Currently of_i2c_register_devices() function registers all i2c devices, > independently from their status property in device tree. According to > "ePAPR 1.1" spec, device should only be registered if there is no > "status" property, or it has "ok" (or "okay") value (see > of_device_is_available()). In case of "platform devices", > of_platform_device_create_pdata() checks for "status" and ensures > that disabled devices are not populated. But such check for i2c buses > was missing until now. Fix it. > > Signed-off-by: Alexander Sverdlin <alexander.sverdlin@sysgo.com> > --- Reviewed-by: Barry Song <Baohua.Song@csr.com> > --- linux.orig/drivers/of/of_i2c.c > +++ linux/drivers/of/of_i2c.c > @@ -29,7 +29,7 @@ void of_i2c_register_devices(struct i2c_ > > dev_dbg(&adap->dev, "of_i2c: walking child nodes\n"); > > - for_each_child_of_node(adap->dev.of_node, node) { > + for_each_available_child_of_node(adap->dev.of_node, node) { > struct i2c_board_info info = {}; > struct dev_archdata dev_ad = {}; > const __be32 *addr; Member of the CSR plc group of companies. CSR plc registered in England and Wales, registered number 4187346, registered office Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom More information can be found at www.csr.com. Follow CSR on Twitter at http://twitter.com/CSR_PLC and read our blog at www.csr.com/blog ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-11-29 3:20 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-11-28 14:21 [PATCH] of_i2c: Honour "status=disabled" property of device Alexander Sverdlin [not found] ` <50B61DDA.5090109-uSbOeAmDUekAvxtiuMwx3w@public.gmane.org> 2012-11-28 16:16 ` Stephen Warren [not found] ` <50B638CC.6070106-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> 2012-11-28 16:51 ` Alexander Sverdlin [not found] ` <50B6412E.7060906-uSbOeAmDUekAvxtiuMwx3w@public.gmane.org> 2012-11-28 17:05 ` Rob Herring 2012-11-28 17:10 ` Wolfram Sang 2012-11-29 3:20 ` Barry Song
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).