| 1078 | } |
| 1079 | |
| 1080 | static rt_int32_t sdio_irq_thread_delete(struct rt_mmcsd_card *card) |
| 1081 | { |
| 1082 | struct rt_mmcsd_host *host = card->host; |
| 1083 | |
| 1084 | RT_ASSERT(host->sdio_irq_num > 0); |
| 1085 | |
| 1086 | host->sdio_irq_num--; |
| 1087 | if (!host->sdio_irq_num) |
| 1088 | { |
| 1089 | if (host->flags & MMCSD_SUP_SDIO_IRQ) |
| 1090 | host->ops->enable_sdio_irq(host, 0); |
| 1091 | rt_sem_delete(host->sdio_irq_sem); |
| 1092 | host->sdio_irq_sem = RT_NULL; |
| 1093 | rt_thread_delete(host->sdio_irq_thread); |
| 1094 | host->sdio_irq_thread = RT_NULL; |
| 1095 | } |
| 1096 | |
| 1097 | return 0; |
| 1098 | } |
| 1099 | |
| 1100 | rt_int32_t sdio_attach_irq(struct rt_sdio_function *func, |
| 1101 | rt_sdio_irq_handler_t *handler) |
no test coverage detected