diff options
author | Takashi Iwai <tiwai@suse.de> | 2014-09-10 13:48:07 +0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2014-09-15 17:52:09 +0400 |
commit | 8d3a8b5cb57da4e327bdaf7c81a90d4105b73205 (patch) | |
tree | ea6b853a3c3ebc09d085115e59871bbee4f08a41 /sound/pci/mixart/mixart.h | |
parent | db0a5214b8d6cc7a90ce3336d24a85b90cbb4e67 (diff) | |
download | linux-8d3a8b5cb57da4e327bdaf7c81a90d4105b73205.tar.xz |
ALSA: mixart: Use nonatomic PCM ops
Like the previous patch for VX boards, miXart device driver can be
also rewritten to use nonatomic PCM ops. Simply spinlocks are
replaced with mutex, the tasklet code is merged into the threaded irq
handler. Also, now mgr->msg_mutex is superfluous, so merged to
msg_lock.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/mixart/mixart.h')
-rw-r--r-- | sound/pci/mixart/mixart.h | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/sound/pci/mixart/mixart.h b/sound/pci/mixart/mixart.h index 561634d5c007..0cc17e0ea34a 100644 --- a/sound/pci/mixart/mixart.h +++ b/sound/pci/mixart/mixart.h @@ -78,22 +78,18 @@ struct mixart_mgr { char shortname[32]; /* short name of this soundcard */ char longname[80]; /* name of this soundcard */ - /* message tasklet */ - struct tasklet_struct msg_taskq; - /* one and only blocking message or notification may be pending */ u32 pending_event; wait_queue_head_t msg_sleep; - /* messages stored for tasklet */ + /* messages fifo */ u32 msg_fifo[MSG_FIFO_SIZE]; int msg_fifo_readptr; int msg_fifo_writeptr; atomic_t msg_processed; /* number of messages to be processed in takslet */ - spinlock_t lock; /* interrupt spinlock */ - spinlock_t msg_lock; /* mailbox spinlock */ - struct mutex msg_mutex; /* mutex for blocking_requests */ + struct mutex lock; /* interrupt lock */ + struct mutex msg_lock; /* mailbox lock */ struct mutex setup_mutex; /* mutex used in hw_params, open and close */ |