[RFC][PATCH 1/3] spi: let master a chance to setup device before registering it

Paul Fertser fercerpav at gmail.com
Mon Aug 29 08:25:42 EDT 2011


Call setup() before registering the device because registering leads
to a probe routine of the slave device and that requires an
initialised master.

Signed-off-by: Paul Fertser <fercerpav at gmail.com>
---

TBH, i do not fully understand the framework, so this and the following patches
might be rather wrong. But the issues i tried to fix were real indeed :)

 drivers/spi/spi.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index b561f9d..82393ea 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -80,7 +80,6 @@ struct spi_device *spi_new_device(struct spi_master *master,
 	strcpy(proxy->dev.name, chip->name);
 	proxy->dev.type_data = proxy;
 	dev_add_child(master->dev, &proxy->dev);
-	status = register_device(&proxy->dev);
 
 	/* drivers may modify this initial i/o setup */
 	status = master->setup(proxy);
@@ -90,10 +89,10 @@ struct spi_device *spi_new_device(struct spi_master *master,
 		goto fail;
 	}
 
-	return proxy;
+	register_device(&proxy->dev);
 
+	return proxy;
 fail:
-	unregister_device(&proxy->dev);
 	free(proxy);
 	return NULL;
 }
-- 
1.5.2.2




More information about the barebox mailing list