diff options
Diffstat (limited to 'firmware/target/arm/s3c2440/sd-s3c2440.c')
-rw-r--r-- | firmware/target/arm/s3c2440/sd-s3c2440.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/firmware/target/arm/s3c2440/sd-s3c2440.c b/firmware/target/arm/s3c2440/sd-s3c2440.c index 4a15835b67..0dcd900d11 100644 --- a/firmware/target/arm/s3c2440/sd-s3c2440.c +++ b/firmware/target/arm/s3c2440/sd-s3c2440.c | |||
@@ -119,7 +119,7 @@ static long sd_stack [(DEFAULT_STACK_SIZE*2 + 0x1c0)/sizeof(long)]; | |||
119 | static const char sd_thread_name[] = "sd"; | 119 | static const char sd_thread_name[] = "sd"; |
120 | static struct mutex sd_mtx SHAREDBSS_ATTR; | 120 | static struct mutex sd_mtx SHAREDBSS_ATTR; |
121 | static struct event_queue sd_queue; | 121 | static struct event_queue sd_queue; |
122 | static struct wakeup transfer_completion_signal; | 122 | static struct semaphore transfer_completion_signal; |
123 | static volatile unsigned int transfer_error[NUM_VOLUMES]; | 123 | static volatile unsigned int transfer_error[NUM_VOLUMES]; |
124 | /* align on cache line size */ | 124 | /* align on cache line size */ |
125 | static unsigned char aligned_buffer[UNALIGNED_NUM_SECTORS * SD_BLOCK_SIZE] | 125 | static unsigned char aligned_buffer[UNALIGNED_NUM_SECTORS * SD_BLOCK_SIZE] |
@@ -223,7 +223,7 @@ void SDI (void) | |||
223 | 223 | ||
224 | dbgprintf ("SDI %x\n", transfer_error[curr_card]); | 224 | dbgprintf ("SDI %x\n", transfer_error[curr_card]); |
225 | 225 | ||
226 | wakeup_signal(&transfer_completion_signal); | 226 | semaphore_release(&transfer_completion_signal); |
227 | 227 | ||
228 | /* Ack the interrupt */ | 228 | /* Ack the interrupt */ |
229 | SRCPND = SDI_MASK; | 229 | SRCPND = SDI_MASK; |
@@ -242,7 +242,7 @@ void dma_callback (void) | |||
242 | SDIDSTA |= S3C2410_SDIDSTA_CLEAR_BITS; /* needed to clear int */ | 242 | SDIDSTA |= S3C2410_SDIDSTA_CLEAR_BITS; /* needed to clear int */ |
243 | 243 | ||
244 | dbgprintf ("dma_cb\n"); | 244 | dbgprintf ("dma_cb\n"); |
245 | wakeup_signal(&transfer_completion_signal); | 245 | semaphore_release(&transfer_completion_signal); |
246 | } | 246 | } |
247 | #endif | 247 | #endif |
248 | 248 | ||
@@ -783,7 +783,7 @@ static int sd_transfer_sectors(int card_no, unsigned long start, | |||
783 | (9<<4) /* 2^9 = 512 */ ; | 783 | (9<<4) /* 2^9 = 512 */ ; |
784 | #endif | 784 | #endif |
785 | 785 | ||
786 | wakeup_wait(&transfer_completion_signal, 100 /*TIMEOUT_BLOCK*/); | 786 | semaphore_wait(&transfer_completion_signal, 100 /*TIMEOUT_BLOCK*/); |
787 | 787 | ||
788 | /* wait for DMA to finish */ | 788 | /* wait for DMA to finish */ |
789 | while (DSTAT0 & DSTAT_STAT_BUSY) | 789 | while (DSTAT0 & DSTAT_STAT_BUSY) |
@@ -928,7 +928,7 @@ int sd_init(void) | |||
928 | sd_enabled = true; | 928 | sd_enabled = true; |
929 | sd_enable(false); | 929 | sd_enable(false); |
930 | #endif | 930 | #endif |
931 | wakeup_init(&transfer_completion_signal); | 931 | semaphore_init(&transfer_completion_signal, 1, 0); |
932 | /* init mutex */ | 932 | /* init mutex */ |
933 | mutex_init(&sd_mtx); | 933 | mutex_init(&sd_mtx); |
934 | queue_init(&sd_queue, true); | 934 | queue_init(&sd_queue, true); |