[PATCH 6/6] spi : use class iteration api



Convert to use the class iteration api.

Signed-off-by: Dave Young <hidave.darkstar@xxxxxxxxx>

---
drivers/spi/spi.c | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)

diff -upr linux/drivers/spi/spi.c linux.new/drivers/spi/spi.c
--- linux/drivers/spi/spi.c 2008-01-16 08:43:35.000000000 +0800
+++ linux.new/drivers/spi/spi.c 2008-01-16 08:43:35.000000000 +0800
@@ -485,6 +485,15 @@ void spi_unregister_master(struct spi_ma
}
EXPORT_SYMBOL_GPL(spi_unregister_master);

+static int __spi_master_match(struct device *dev, void *data)
+{
+ struct spi_master *m;
+ u16 *bus_num = (u16 *)data;
+
+ m = container_of(dev, struct spi_master, dev);
+ return m->bus_num == *bus_num;
+}
+
/**
* spi_busnum_to_master - look up master associated with bus_num
* @bus_num: the master's bus number
@@ -499,17 +508,12 @@ struct spi_master *spi_busnum_to_master(
{
struct device *dev;
struct spi_master *master = NULL;
- struct spi_master *m;

- down(&spi_master_class.sem);
- list_for_each_entry(dev, &spi_master_class.children, node) {
- m = container_of(dev, struct spi_master, dev);
- if (m->bus_num == bus_num) {
- master = spi_master_get(m);
- break;
- }
- }
- up(&spi_master_class.sem);
+ dev = class_find_device(&spi_master_class, &bus_num,
+ __spi_master_match);
+ if (dev)
+ master = container_of(dev, struct spi_master, dev);
+ /* reference got in class_find_device */
return master;
}
EXPORT_SYMBOL_GPL(spi_busnum_to_master);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: [2.6 patch] mark virt_to_bus/bus_to_virt as __deprecated on i386
    ... Then what would you use to return the proper bus address to put ... addresses and the DMA uses physical addresses. ... More majordomo info at http://vger.kernel.org/majordomo-info.html ... Please read the FAQ at http://www.tux.org/lkml/ ...
    (Linux-Kernel)
  • Re: [PATCH 2/5] Add support for the Arcom/Eurotech Viper SBC onboard ethernet.
    ... Consider merging this to the following code in the front of smc91x.h ... /* Now the bus width is specified in the platform data ... More majordomo info at http://vger.kernel.org/majordomo-info.html ... Please read the FAQ at http://www.tux.org/lkml/ ...
    (Linux-Kernel)
  • Re: [PATCH 6/6] spi : use class iteration api
    ... Convert to use the class iteration api. ... @bus_num: the master's bus number ... More majordomo info at http://vger.kernel.org/majordomo-info.html ... Please read the FAQ at http://www.tux.org/lkml/ ...
    (Linux-Kernel)
  • [PATCH 6/7] spi : use class iteration api
    ... Convert to use the class iteration api. ... @bus_num: the master's bus number ... More majordomo info at http://vger.kernel.org/majordomo-info.html ... Please read the FAQ at http://www.tux.org/lkml/ ...
    (Linux-Kernel)
  • [PATCH] acpiphp: only size new bus
    ... Only size the bus that has been added. ... More majordomo info at http://vger.kernel.org/majordomo-info.html ... Please read the FAQ at http://www.tux.org/lkml/ ... Prev by Date: ...
    (Linux-Kernel)