aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi.c
diff options
context:
space:
mode:
authorMatthias Kaehlcke <matthias.kaehlcke@gmail.com>2007-07-17 07:04:16 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-17 13:23:05 -0400
commit940408289842677cfe9e053a6c423bf3fb922560 (patch)
tree5648e2dc2ae121395e33e596fbf6d252f7c51cbd /drivers/spi/spi.c
parentf2cac67dd36626128e06e79fc7ca95d544dcdc67 (diff)
use mutex instead of semaphore in SPI core/init code
The SPI core/init code uses a semaphore as mutex. Use the mutex API instead of the (binary) semaphore. Signed-off-by: Matthias Kaehlcke <matthias.kaehlcke@gmail.com> Acked-by: David Brownell <david-b@pacbell.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/spi/spi.c')
-rw-r--r--drivers/spi/spi.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 4831edbae2d5..018884d7a5fa 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -23,6 +23,7 @@
23#include <linux/device.h> 23#include <linux/device.h>
24#include <linux/init.h> 24#include <linux/init.h>
25#include <linux/cache.h> 25#include <linux/cache.h>
26#include <linux/mutex.h>
26#include <linux/spi/spi.h> 27#include <linux/spi/spi.h>
27 28
28 29
@@ -185,7 +186,7 @@ struct boardinfo {
185}; 186};
186 187
187static LIST_HEAD(board_list); 188static LIST_HEAD(board_list);
188static DECLARE_MUTEX(board_lock); 189static DEFINE_MUTEX(board_lock);
189 190
190 191
191/** 192/**
@@ -292,9 +293,9 @@ spi_register_board_info(struct spi_board_info const *info, unsigned n)
292 bi->n_board_info = n; 293 bi->n_board_info = n;
293 memcpy(bi->board_info, info, n * sizeof *info); 294 memcpy(bi->board_info, info, n * sizeof *info);
294 295
295 down(&board_lock); 296 mutex_lock(&board_lock);
296 list_add_tail(&bi->list, &board_list); 297 list_add_tail(&bi->list, &board_list);
297 up(&board_lock); 298 mutex_unlock(&board_lock);
298 return 0; 299 return 0;
299} 300}
300 301
@@ -308,7 +309,7 @@ scan_boardinfo(struct spi_master *master)
308 struct boardinfo *bi; 309 struct boardinfo *bi;
309 struct device *dev = master->cdev.dev; 310 struct device *dev = master->cdev.dev;
310 311
311 down(&board_lock); 312 mutex_lock(&board_lock);
312 list_for_each_entry(bi, &board_list, list) { 313 list_for_each_entry(bi, &board_list, list) {
313 struct spi_board_info *chip = bi->board_info; 314 struct spi_board_info *chip = bi->board_info;
314 unsigned n; 315 unsigned n;
@@ -330,7 +331,7 @@ scan_boardinfo(struct spi_master *master)
330 (void) spi_new_device(master, chip); 331 (void) spi_new_device(master, chip);
331 } 332 }
332 } 333 }
333 up(&board_lock); 334 mutex_unlock(&board_lock);
334} 335}
335 336
336/*-------------------------------------------------------------------------*/ 337/*-------------------------------------------------------------------------*/