| 1056 | } |
| 1057 | |
| 1058 | static rt_int32_t sdio_irq_thread_create(struct rt_mmcsd_card *card) |
| 1059 | { |
| 1060 | struct rt_mmcsd_host *host = card->host; |
| 1061 | |
| 1062 | /* init semaphore and create sdio irq processing thread */ |
| 1063 | if (!host->sdio_irq_num) |
| 1064 | { |
| 1065 | host->sdio_irq_num++; |
| 1066 | host->sdio_irq_sem = rt_sem_create("sdio_irq", 0, RT_IPC_FLAG_FIFO); |
| 1067 | RT_ASSERT(host->sdio_irq_sem != RT_NULL); |
| 1068 | |
| 1069 | host->sdio_irq_thread = rt_thread_create("sdio_irq", sdio_irq_thread, host, |
| 1070 | RT_SDIO_STACK_SIZE, RT_SDIO_THREAD_PRIORITY, 20); |
| 1071 | if (host->sdio_irq_thread != RT_NULL) |
| 1072 | { |
| 1073 | rt_thread_startup(host->sdio_irq_thread); |
| 1074 | } |
| 1075 | } |
| 1076 | |
| 1077 | return 0; |
| 1078 | } |
| 1079 | |
| 1080 | static rt_int32_t sdio_irq_thread_delete(struct rt_mmcsd_card *card) |
| 1081 | { |
no test coverage detected