* [PATCH 1/1] spi: initialize of_node in spi_alloc_master
@ 2010-10-14 8:37 Jonas Bonn
[not found] ` <1287045461-20470-1-git-send-email-jonas-A9uVI2HLR7kOP4wsBPIw7w@public.gmane.org>
0 siblings, 1 reply; 2+ messages in thread
From: Jonas Bonn @ 2010-10-14 8:37 UTC (permalink / raw)
To: devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ
spi_alloc_master should do the work of setting the of_node on the device if
it is set on the incoming parent.
Signed-off-by: Jonas Bonn <jonas-A9uVI2HLR7kOP4wsBPIw7w@public.gmane.org>
---
drivers/spi/mpc512x_psc_spi.c | 1 -
drivers/spi/mpc52xx_psc_spi.c | 1 -
drivers/spi/mpc52xx_spi.c | 1 -
drivers/spi/spi.c | 3 +++
drivers/spi/spi_mpc8xxx.c | 1 -
drivers/spi/spi_ppc4xx.c | 1 -
drivers/spi/xilinx_spi.c | 3 ---
7 files changed, 3 insertions(+), 8 deletions(-)
diff --git a/drivers/spi/mpc512x_psc_spi.c b/drivers/spi/mpc512x_psc_spi.c
index 77d9e7e..1ab1807 100644
--- a/drivers/spi/mpc512x_psc_spi.c
+++ b/drivers/spi/mpc512x_psc_spi.c
@@ -441,7 +441,6 @@ static int __devinit mpc512x_psc_spi_do_probe(struct device *dev, u32 regaddr,
master->setup = mpc512x_psc_spi_setup;
master->transfer = mpc512x_psc_spi_transfer;
master->cleanup = mpc512x_psc_spi_cleanup;
- master->dev.of_node = dev->of_node;
tempp = ioremap(regaddr, size);
if (!tempp) {
diff --git a/drivers/spi/mpc52xx_psc_spi.c b/drivers/spi/mpc52xx_psc_spi.c
index 983fbbf..44077f8 100644
--- a/drivers/spi/mpc52xx_psc_spi.c
+++ b/drivers/spi/mpc52xx_psc_spi.c
@@ -398,7 +398,6 @@ static int __init mpc52xx_psc_spi_do_probe(struct device *dev, u32 regaddr,
master->setup = mpc52xx_psc_spi_setup;
master->transfer = mpc52xx_psc_spi_transfer;
master->cleanup = mpc52xx_psc_spi_cleanup;
- master->dev.of_node = dev->of_node;
mps->psc = ioremap(regaddr, size);
if (!mps->psc) {
diff --git a/drivers/spi/mpc52xx_spi.c b/drivers/spi/mpc52xx_spi.c
index ec9f0b1..b46dbd0 100644
--- a/drivers/spi/mpc52xx_spi.c
+++ b/drivers/spi/mpc52xx_spi.c
@@ -438,7 +438,6 @@ static int __devinit mpc52xx_spi_probe(struct platform_device *op,
master->setup = mpc52xx_spi_setup;
master->transfer = mpc52xx_spi_transfer;
master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LSB_FIRST;
- master->dev.of_node = op->dev.of_node;
dev_set_drvdata(&op->dev, master);
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index b5a78a1..28f9d1a 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -482,6 +482,9 @@ struct spi_master *spi_alloc_master(struct device *dev, unsigned size)
device_initialize(&master->dev);
master->dev.class = &spi_master_class;
master->dev.parent = get_device(dev);
+#ifdef CONFIG_OF
+ master->dev.of_node = dev->of_node;
+#endif
spi_master_set_devdata(master, &master[1]);
return master;
diff --git a/drivers/spi/spi_mpc8xxx.c b/drivers/spi/spi_mpc8xxx.c
index 1dd86b8..5a35741 100644
--- a/drivers/spi/spi_mpc8xxx.c
+++ b/drivers/spi/spi_mpc8xxx.c
@@ -1014,7 +1014,6 @@ mpc8xxx_spi_probe(struct device *dev, struct resource *mem, unsigned int irq)
master->setup = mpc8xxx_spi_setup;
master->transfer = mpc8xxx_spi_transfer;
master->cleanup = mpc8xxx_spi_cleanup;
- master->dev.of_node = dev->of_node;
mpc8xxx_spi = spi_master_get_devdata(master);
mpc8xxx_spi->dev = dev;
diff --git a/drivers/spi/spi_ppc4xx.c b/drivers/spi/spi_ppc4xx.c
index 80e172d..ca18432 100644
--- a/drivers/spi/spi_ppc4xx.c
+++ b/drivers/spi/spi_ppc4xx.c
@@ -407,7 +407,6 @@ static int __init spi_ppc4xx_of_probe(struct platform_device *op,
master = spi_alloc_master(dev, sizeof *hw);
if (master == NULL)
return -ENOMEM;
- master->dev.of_node = np;
dev_set_drvdata(dev, master);
hw = spi_master_get_devdata(master);
hw->master = spi_master_get(master);
diff --git a/drivers/spi/xilinx_spi.c b/drivers/spi/xilinx_spi.c
index 80f2db5..1b47363 100644
--- a/drivers/spi/xilinx_spi.c
+++ b/drivers/spi/xilinx_spi.c
@@ -390,9 +390,6 @@ struct spi_master *xilinx_spi_init(struct device *dev, struct resource *mem,
master->bus_num = bus_num;
master->num_chipselect = pdata->num_chipselect;
-#ifdef CONFIG_OF
- master->dev.of_node = dev->of_node;
-#endif
xspi->mem = *mem;
xspi->irq = irq;
--
1.7.1
^ permalink raw reply related [flat|nested] 2+ messages in thread[parent not found: <1287045461-20470-1-git-send-email-jonas-A9uVI2HLR7kOP4wsBPIw7w@public.gmane.org>]
* Re: [PATCH 1/1] spi: initialize of_node in spi_alloc_master [not found] ` <1287045461-20470-1-git-send-email-jonas-A9uVI2HLR7kOP4wsBPIw7w@public.gmane.org> @ 2010-10-14 14:08 ` Grant Likely 0 siblings, 0 replies; 2+ messages in thread From: Grant Likely @ 2010-10-14 14:08 UTC (permalink / raw) To: Jonas Bonn; +Cc: devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ On Thu, Oct 14, 2010 at 2:37 AM, Jonas Bonn <jonas-A9uVI2HLR7kOP4wsBPIw7w@public.gmane.org> wrote: > spi_alloc_master should do the work of setting the of_node on the device if > it is set on the incoming parent. > > Signed-off-by: Jonas Bonn <jonas-A9uVI2HLR7kOP4wsBPIw7w@public.gmane.org> Hi Jonas. Thanks for the patch, but I have to nack it. The way it is done right now is by design. Each spi bus driver is responsible to ensure that the correct device tree node is used for the spi bus, which is not necessarily the same node as the bus controller node (depending on the binding). The bus driver always needs the ability to use a different node, or to omit OF registrations entirely. Cheers, g. > --- > drivers/spi/mpc512x_psc_spi.c | 1 - > drivers/spi/mpc52xx_psc_spi.c | 1 - > drivers/spi/mpc52xx_spi.c | 1 - > drivers/spi/spi.c | 3 +++ > drivers/spi/spi_mpc8xxx.c | 1 - > drivers/spi/spi_ppc4xx.c | 1 - > drivers/spi/xilinx_spi.c | 3 --- > 7 files changed, 3 insertions(+), 8 deletions(-) > > diff --git a/drivers/spi/mpc512x_psc_spi.c b/drivers/spi/mpc512x_psc_spi.c > index 77d9e7e..1ab1807 100644 > --- a/drivers/spi/mpc512x_psc_spi.c > +++ b/drivers/spi/mpc512x_psc_spi.c > @@ -441,7 +441,6 @@ static int __devinit mpc512x_psc_spi_do_probe(struct device *dev, u32 regaddr, > master->setup = mpc512x_psc_spi_setup; > master->transfer = mpc512x_psc_spi_transfer; > master->cleanup = mpc512x_psc_spi_cleanup; > - master->dev.of_node = dev->of_node; > > tempp = ioremap(regaddr, size); > if (!tempp) { > diff --git a/drivers/spi/mpc52xx_psc_spi.c b/drivers/spi/mpc52xx_psc_spi.c > index 983fbbf..44077f8 100644 > --- a/drivers/spi/mpc52xx_psc_spi.c > +++ b/drivers/spi/mpc52xx_psc_spi.c > @@ -398,7 +398,6 @@ static int __init mpc52xx_psc_spi_do_probe(struct device *dev, u32 regaddr, > master->setup = mpc52xx_psc_spi_setup; > master->transfer = mpc52xx_psc_spi_transfer; > master->cleanup = mpc52xx_psc_spi_cleanup; > - master->dev.of_node = dev->of_node; > > mps->psc = ioremap(regaddr, size); > if (!mps->psc) { > diff --git a/drivers/spi/mpc52xx_spi.c b/drivers/spi/mpc52xx_spi.c > index ec9f0b1..b46dbd0 100644 > --- a/drivers/spi/mpc52xx_spi.c > +++ b/drivers/spi/mpc52xx_spi.c > @@ -438,7 +438,6 @@ static int __devinit mpc52xx_spi_probe(struct platform_device *op, > master->setup = mpc52xx_spi_setup; > master->transfer = mpc52xx_spi_transfer; > master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LSB_FIRST; > - master->dev.of_node = op->dev.of_node; > > dev_set_drvdata(&op->dev, master); > > diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c > index b5a78a1..28f9d1a 100644 > --- a/drivers/spi/spi.c > +++ b/drivers/spi/spi.c > @@ -482,6 +482,9 @@ struct spi_master *spi_alloc_master(struct device *dev, unsigned size) > device_initialize(&master->dev); > master->dev.class = &spi_master_class; > master->dev.parent = get_device(dev); > +#ifdef CONFIG_OF > + master->dev.of_node = dev->of_node; > +#endif > spi_master_set_devdata(master, &master[1]); > > return master; > diff --git a/drivers/spi/spi_mpc8xxx.c b/drivers/spi/spi_mpc8xxx.c > index 1dd86b8..5a35741 100644 > --- a/drivers/spi/spi_mpc8xxx.c > +++ b/drivers/spi/spi_mpc8xxx.c > @@ -1014,7 +1014,6 @@ mpc8xxx_spi_probe(struct device *dev, struct resource *mem, unsigned int irq) > master->setup = mpc8xxx_spi_setup; > master->transfer = mpc8xxx_spi_transfer; > master->cleanup = mpc8xxx_spi_cleanup; > - master->dev.of_node = dev->of_node; > > mpc8xxx_spi = spi_master_get_devdata(master); > mpc8xxx_spi->dev = dev; > diff --git a/drivers/spi/spi_ppc4xx.c b/drivers/spi/spi_ppc4xx.c > index 80e172d..ca18432 100644 > --- a/drivers/spi/spi_ppc4xx.c > +++ b/drivers/spi/spi_ppc4xx.c > @@ -407,7 +407,6 @@ static int __init spi_ppc4xx_of_probe(struct platform_device *op, > master = spi_alloc_master(dev, sizeof *hw); > if (master == NULL) > return -ENOMEM; > - master->dev.of_node = np; > dev_set_drvdata(dev, master); > hw = spi_master_get_devdata(master); > hw->master = spi_master_get(master); > diff --git a/drivers/spi/xilinx_spi.c b/drivers/spi/xilinx_spi.c > index 80f2db5..1b47363 100644 > --- a/drivers/spi/xilinx_spi.c > +++ b/drivers/spi/xilinx_spi.c > @@ -390,9 +390,6 @@ struct spi_master *xilinx_spi_init(struct device *dev, struct resource *mem, > > master->bus_num = bus_num; > master->num_chipselect = pdata->num_chipselect; > -#ifdef CONFIG_OF > - master->dev.of_node = dev->of_node; > -#endif > > xspi->mem = *mem; > xspi->irq = irq; > -- > 1.7.1 > > _______________________________________________ > devicetree-discuss mailing list > devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org > https://lists.ozlabs.org/listinfo/devicetree-discuss > -- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-10-14 14:08 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-14 8:37 [PATCH 1/1] spi: initialize of_node in spi_alloc_master Jonas Bonn
[not found] ` <1287045461-20470-1-git-send-email-jonas-A9uVI2HLR7kOP4wsBPIw7w@public.gmane.org>
2010-10-14 14:08 ` Grant Likely
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox