static void hifDeviceRemoved(struct sdio_func *func) { A_STATUS status = A_OK; HIF_DEVICE *device; AR_DEBUG_ASSERT(func != NULL); AR_DEBUG_PRINTF(ATH_DEBUG_TRACE, ("AR6000: +hifDeviceRemoved\n")); device = getHifDevice(func); if (device->claimedContext != NULL) { status = osdrvCallbacks.deviceRemovedHandler(device->claimedContext, device); } if (device->is_suspend) { device->is_suspend = FALSE; } else { if (hifDisableFunc(device, func)!=0) { status = A_ERROR; } } CleanupHIFScatterResources(device); delHifDevice(device); AR_DEBUG_ASSERT(status == A_OK); AR_DEBUG_PRINTF(ATH_DEBUG_TRACE, ("AR6000: -hifDeviceRemoved\n")); }
static void hifDeviceRemoved(struct sdio_func *func) { A_STATUS status = A_OK; HIF_DEVICE *device; int ret; AR_DEBUG_ASSERT(func != NULL); AR_DEBUG_PRINTF(ATH_DEBUG_TRACE, ("AR6000: +hifDeviceRemoved\n")); device = getHifDevice(func); if (device->claimedContext != NULL) { status = osdrvCallbacks.deviceRemovedHandler(device->claimedContext, device); } do { if (device->is_suspend) { device->is_suspend = FALSE; break; } if (!IS_ERR(device->async_task)) { init_completion(&device->async_completion); device->async_shutdown = 1; up(&device->sem_async); wait_for_completion(&device->async_completion); device->async_task = NULL; } /* Disable the card */ sdio_claim_host(device->func); ret = sdio_disable_func(device->func); sdio_release_host(device->func); } while (0); delHifDevice(device); AR_DEBUG_ASSERT(status == A_OK); AR_DEBUG_PRINTF(ATH_DEBUG_TRACE, ("AR6000: -hifDeviceRemoved\n")); }
void hifDeviceRemoved(SDFUNCTION *function, SDDEVICE *handle) { A_STATUS status = A_OK; HIF_DEVICE *device; AR_DEBUG_ASSERT(function != NULL); AR_DEBUG_ASSERT(handle != NULL); /* our device is the IRQ context we stored */ device = (HIF_DEVICE *)handle->IrqContext; if (device->claimedContext != NULL) { status = osdrvCallbacks.deviceRemovedHandler(device->claimedContext, device); } /* cleanup the instance */ hifCleanupDevice(device); AR_DEBUG_ASSERT(status == A_OK); }
void hifDeviceRemoved(SD_DEVICE_HANDLE *handle) { A_STATUS status; HIF_DEVICE *device; NDIS_DEBUG_PRINTF(1, "%s() : + Enter \r\n", __FUNCTION__); device = getHifDevice(handle); if (device->claimedContext != NULL) { status = osdrvCallbacks.deviceRemovedHandler(device->claimedContext, device); } delHifDevice(handle); AR_DEBUG_ASSERT(status == A_OK); return; }