#ifdef CONFIG_WOWLAN static struct mmc_host *mmc_host = NULL; #endif static const struct sdio_device_id sdio_ids[] = { #ifdef CONFIG_RTL8723A { SDIO_DEVICE(0x024c, 0x8723) }, #endif //CONFIG_RTL8723A #ifdef CONFIG_RTL8188E { SDIO_DEVICE(0x024c, 0x8179) }, #endif //CONFIG_RTL8188E #if defined(RTW_ENABLE_WIFI_CONTROL_FUNC) /* temporarily add this to accept all sdio wlan id */ { SDIO_DEVICE_CLASS(SDIO_CLASS_WLAN) }, #endif // { /* end: all zeroes */ }, }; static int rtw_drv_init(struct sdio_func *func, const struct sdio_device_id *id); static void rtw_dev_remove(struct sdio_func *func); static int rtw_sdio_resume(struct device *dev); static int rtw_sdio_suspend(struct device *dev); #ifdef CONFIG_PM_RUNTIME static void rtw_start_runtime(struct sdio_func *func); #endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) static const struct dev_pm_ops rtw_sdio_pm_ops = { .suspend = rtw_sdio_suspend,
if ((func->num == 2) || (func->num == 1 && func->device == 0x4)) sdioh_remove(func); } /* devices we support, null terminated */ static const struct sdio_device_id bcmsdh_sdmmc_ids[] = { { SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_DEFAULT) }, { SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_4325_SDGWB) }, { SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_4325) }, { SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_4329) }, { SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_4319) }, { SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_4330) }, { SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_4334) }, { SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_4324) }, { SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_43239) }, { SDIO_DEVICE_CLASS(SDIO_CLASS_NONE) }, { /* end: all zeroes */ }, }; MODULE_DEVICE_TABLE(sdio, bcmsdh_sdmmc_ids); #if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)) && defined(CONFIG_PM) static int bcmsdh_sdmmc_suspend(struct device *pdev) { int err; sdioh_info_t *sdioh; struct sdio_func *func = dev_to_sdio_func(pdev); mmc_pm_flag_t sdio_flags; sd_err(("%s +\n", __FUNCTION__)); if (func->num != 2)
#include <linux/mmc/sdio_ids.h> #include <linux/mmc/sdio_func.h> #include <net/bluetooth/bluetooth.h> #include <net/bluetooth/hci_core.h> #ifndef CONFIG_BT_HCIBTSDIO_DEBUG #undef BT_DBG #define BT_DBG(D...) #endif #define VERSION "0.1" static const struct sdio_device_id btsdio_table[] = { /* Generic Bluetooth Type-A SDIO device */ { SDIO_DEVICE_CLASS(SDIO_CLASS_BT_A) }, /* Generic Bluetooth Type-B SDIO device */ { SDIO_DEVICE_CLASS(SDIO_CLASS_BT_B) }, { } /* Terminating entry */ }; MODULE_DEVICE_TABLE(sdio, btsdio_table); struct btsdio_data { struct hci_dev *hdev; struct sdio_func *func; struct work_struct work;