aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Green <andy.green@linaro.org>2012-11-14 10:52:07 +0800
committerAndy Green <andy.green@linaro.org>2012-11-14 11:06:28 +0800
commitd0890bebfe7cbd2b9bc2a3e91fe205408de43cfa (patch)
tree0718cfc575436e8c8becf3c639117064282f5ffb
parentc13186e461d296641269eb808c0e5814a71ef7d1 (diff)
update to use sema init
Signed-off-by: Andy Green <andy.green@linaro.org>
-rw-r--r--fmb_driver/fmb_core.c10
-rw-r--r--fmb_driver/fmb_hw.c13
2 files changed, 12 insertions, 11 deletions
diff --git a/fmb_driver/fmb_core.c b/fmb_driver/fmb_core.c
index 64c42ec..252da0c 100644
--- a/fmb_driver/fmb_core.c
+++ b/fmb_driver/fmb_core.c
@@ -683,7 +683,7 @@ static int fmb_core_init_dma_queue_snd(
/* spin lock */
spin_lock_irqsave( &priv_p->dma_snd_queue.lock, flags );
- init_MUTEX( &priv_p->dma_snd_queue.mutex_write );
+ sema_init( &priv_p->dma_snd_queue.mutex_write, 1);
init_waitqueue_head( &queue_p->buf_waitq );
init_waitqueue_head( &queue_p->comp_waitq );
@@ -757,7 +757,7 @@ static int fmb_core_init_dma_queue_rcv(
priv_p->dma_rcv_queue.dma_comp_size = 0;
init_waitqueue_head( &priv_p->dma_rcv_queue.comp_waitq );
- init_MUTEX( &priv_p->dma_rcv_queue.mutex_read );
+ sema_init( &priv_p->dma_rcv_queue.mutex_read, 1);
init_waitqueue_head( &queue_p->buf_waitq );
init_waitqueue_head( &queue_p->comp_waitq );
@@ -6283,8 +6283,6 @@ static int fmb_core_private_data_init( struct fmb_hard_private* hw_priv_p,
minor = hw_priv_p->minor;
MSG( INTERNAL_FUNC, minor, "START" );
- priv_p->lock_core_priv = SPIN_LOCK_UNLOCKED;
- priv_p->lock_factor_num = SPIN_LOCK_UNLOCKED;
priv_p->firm_write_redy = 0;
priv_p->firm_write_size = 0;
priv_p->system_status = FMB_ADD_PRAM_M_MODE_IDLE;
@@ -6301,7 +6299,9 @@ static int fmb_core_private_data_init( struct fmb_hard_private* hw_priv_p,
init_waitqueue_head( &priv_p->audio_msg_wait );
init_waitqueue_head( &priv_p->xerror_info_wait );
init_waitqueue_head( &priv_p->vudata_info_wait );
- init_MUTEX( &priv_p->sys_cmd_sync_send_mutex );
+ sema_init( &priv_p->sys_cmd_sync_send_mutex, 1);
+ spin_lock_init(&priv_p->lock_core_priv);
+ spin_lock_init(&priv_p->lock_factor_num);
priv_p->read_dma_flg = FMB_DATA_DMAFLAG_ON;
priv_p->read_dma_count = g_Dmacount_read;
priv_p->write_dma_flg = FMB_DATA_DMAFLAG_ON;
diff --git a/fmb_driver/fmb_hw.c b/fmb_driver/fmb_hw.c
index 4a63b2f..3678441 100644
--- a/fmb_driver/fmb_hw.c
+++ b/fmb_driver/fmb_hw.c
@@ -30,7 +30,7 @@ PREPARE_DEBUG();
MODULE_LICENSE( "GPL" );
MODULE_DESCRIPTION( "MB86_Driver" );
-DECLARE_MUTEX( sm );
+struct semaphore sm;
/********************************************************/
/* GROBAL VALUES */
@@ -38,7 +38,7 @@ DECLARE_MUTEX( sm );
static struct fmb_hard_private s_Fmb_hard_private_list[FMB_MAX_CARDS];
static int s_Fmb_cards_active = 0;
static int s_Fmb_driver_version_major;
-static spinlock_t s_Fmb_hw_lock = SPIN_LOCK_UNLOCKED;
+static spinlock_t s_Fmb_hw_lock;
static dev_t s_dev;
/********************************************************/
/* */
@@ -917,9 +917,9 @@ static void fmb_hw_private_data_init(struct fmb_hard_private* priv_p)
MSG(INTERNAL_LOG, minor, "START");
- priv_p->lock_hw_priv = SPIN_LOCK_UNLOCKED;
- priv_p->dma_reg_lock = SPIN_LOCK_UNLOCKED;
- priv_p->core_reg_lock = SPIN_LOCK_UNLOCKED;
+ spin_lock_init(&priv_p->lock_hw_priv);
+ spin_lock_init(&priv_p->dma_reg_lock);
+ spin_lock_init(&priv_p->core_reg_lock);
pci_read_config_byte(priv_p->pci_dev_p, PCI_CLASS_REVISION, &priv_p->card_rev);
pci_read_config_byte(priv_p->pci_dev_p, PCI_LATENCY_TIMER, &pci_latency);
@@ -1452,7 +1452,8 @@ static int __init fmb_hw_init_module(void)
int rc;
minor = -1;
-
+ sema_init(&sm, 1);
+ spin_lock_init(&s_Fmb_hw_lock);
MSG(DRIVER_FUNC_LVL, minor, "START");
memset( s_Fmb_hard_private_list, 0x00, sizeof( s_Fmb_hard_private_list ) );