mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-04 09:34:12 +08:00
spi: Remove code duplication in spi_add_device*()
The commit 0c79378c01
("spi: add ancillary device support")
added a dozen of duplicating lines of code. We may move them
to the __spi_add_device(). Note, that the code may be called
under the mutex.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Link: https://lore.kernel.org/r/20230714091748.89681-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
3b38cabd5e
commit
36124dea16
@ -631,6 +631,16 @@ static int __spi_add_device(struct spi_device *spi)
|
||||
struct device *dev = ctlr->dev.parent;
|
||||
int status;
|
||||
|
||||
/* Chipselects are numbered 0..max; validate. */
|
||||
if (spi_get_chipselect(spi, 0) >= ctlr->num_chipselect) {
|
||||
dev_err(dev, "cs%d >= max %d\n", spi_get_chipselect(spi, 0),
|
||||
ctlr->num_chipselect);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* Set the bus ID string */
|
||||
spi_dev_set_name(spi);
|
||||
|
||||
/*
|
||||
* We need to make sure there's no other device with this
|
||||
* chipselect **BEFORE** we call setup(), else we'll trash
|
||||
@ -689,19 +699,8 @@ static int __spi_add_device(struct spi_device *spi)
|
||||
int spi_add_device(struct spi_device *spi)
|
||||
{
|
||||
struct spi_controller *ctlr = spi->controller;
|
||||
struct device *dev = ctlr->dev.parent;
|
||||
int status;
|
||||
|
||||
/* Chipselects are numbered 0..max; validate. */
|
||||
if (spi_get_chipselect(spi, 0) >= ctlr->num_chipselect) {
|
||||
dev_err(dev, "cs%d >= max %d\n", spi_get_chipselect(spi, 0),
|
||||
ctlr->num_chipselect);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* Set the bus ID string */
|
||||
spi_dev_set_name(spi);
|
||||
|
||||
mutex_lock(&ctlr->add_lock);
|
||||
status = __spi_add_device(spi);
|
||||
mutex_unlock(&ctlr->add_lock);
|
||||
@ -712,17 +711,6 @@ EXPORT_SYMBOL_GPL(spi_add_device);
|
||||
static int spi_add_device_locked(struct spi_device *spi)
|
||||
{
|
||||
struct spi_controller *ctlr = spi->controller;
|
||||
struct device *dev = ctlr->dev.parent;
|
||||
|
||||
/* Chipselects are numbered 0..max; validate. */
|
||||
if (spi_get_chipselect(spi, 0) >= ctlr->num_chipselect) {
|
||||
dev_err(dev, "cs%d >= max %d\n", spi_get_chipselect(spi, 0),
|
||||
ctlr->num_chipselect);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* Set the bus ID string */
|
||||
spi_dev_set_name(spi);
|
||||
|
||||
WARN_ON(!mutex_is_locked(&ctlr->add_lock));
|
||||
return __spi_add_device(spi);
|
||||
|
Loading…
Reference in New Issue
Block a user