summaryrefslogtreecommitdiff
path: root/firmware/target/arm/imx31/gigabeat-s/adc-gigabeat-s.c
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2011-03-02 08:49:38 +0000
committerMichael Sevakis <jethead71@rockbox.org>2011-03-02 08:49:38 +0000
commit12375d1d3aa41f7d277a9af584c7b810b636ec95 (patch)
treefc9ce8029a6910a8dac71b3bf60c71155a01eea4 /firmware/target/arm/imx31/gigabeat-s/adc-gigabeat-s.c
parent05e180a1308a095d51d51d0e047fcd44425ea88f (diff)
downloadrockbox-12375d1d3aa41f7d277a9af584c7b810b636ec95.tar.gz
rockbox-12375d1d3aa41f7d277a9af584c7b810b636ec95.zip
Merge functionality of wakeups and semaphores-- fewer APIs and object types. semaphore_wait takes a timeout now so codecs and plugins have to be made incompatible. Don't make semaphores for targets not using them.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29492 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/imx31/gigabeat-s/adc-gigabeat-s.c')
-rw-r--r--firmware/target/arm/imx31/gigabeat-s/adc-gigabeat-s.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/firmware/target/arm/imx31/gigabeat-s/adc-gigabeat-s.c b/firmware/target/arm/imx31/gigabeat-s/adc-gigabeat-s.c
index f7bc0ed37c..eb30919077 100644
--- a/firmware/target/arm/imx31/gigabeat-s/adc-gigabeat-s.c
+++ b/firmware/target/arm/imx31/gigabeat-s/adc-gigabeat-s.c
@@ -35,7 +35,7 @@ static const unsigned char reg_array[4] =
35}; 35};
36 36
37static uint32_t channels[2][4]; 37static uint32_t channels[2][4];
38static struct wakeup adc_wake; 38static struct semaphore adc_done_signal;
39static struct mutex adc_mtx; 39static struct mutex adc_mtx;
40static long last_adc_read[2]; /* One for each input group */ 40static long last_adc_read[2]; /* One for each input group */
41 41
@@ -67,7 +67,7 @@ unsigned short adc_read(int channel)
67 mc13783_write(MC13783_ADC1, adc1); 67 mc13783_write(MC13783_ADC1, adc1);
68 68
69 /* Wait for done signal */ 69 /* Wait for done signal */
70 wakeup_wait(&adc_wake, TIMEOUT_BLOCK); 70 semaphore_wait(&adc_done_signal, TIMEOUT_BLOCK);
71 71
72 /* Read all 8 channels that are converted - two channels in each 72 /* Read all 8 channels that are converted - two channels in each
73 * word. */ 73 * word. */
@@ -113,12 +113,12 @@ bool adc_enable_channel(int channel, bool enable)
113/* Called by mc13783 interrupt thread when conversion is complete */ 113/* Called by mc13783 interrupt thread when conversion is complete */
114void adc_done(void) 114void adc_done(void)
115{ 115{
116 wakeup_signal(&adc_wake); 116 semaphore_release(&adc_done_signal);
117} 117}
118 118
119void adc_init(void) 119void adc_init(void)
120{ 120{
121 wakeup_init(&adc_wake); 121 semaphore_init(&adc_done_signal, 1, 0);
122 mutex_init(&adc_mtx); 122 mutex_init(&adc_mtx);
123 123
124 /* Init so first reads get data */ 124 /* Init so first reads get data */