void diagfwd_bridge_exit(void) { pr_debug("diag: in %s\n", __func__); if (driver->hsic_device_enabled) { diag_hsic_close(); driver->hsic_device_enabled = 0; diagmem_exit(driver, POOL_TYPE_ALL); } if (driver->diag_smux_enabled) { driver->lcid = LCID_INVALID; kfree(driver->buf_in_smux); driver->diag_smux_enabled = 0; } platform_driver_unregister(&msm_hsic_ch_driver); platform_driver_unregister(&msm_diagfwd_smux_driver); #ifdef CONFIG_DIAG_OVER_USB if (driver->usb_mdm_connected) usb_diag_free_req(driver->mdm_ch); usb_diag_close(driver->mdm_ch); #endif kfree(driver->usb_buf_mdm_out); kfree(driver->hsic_buf_tbl); kfree(driver->write_ptr_mdm); kfree(driver->usb_read_mdm_ptr); destroy_workqueue(driver->diag_bridge_wq); }
void diag_usb_exit(int id) { struct diag_usb_info *ch = NULL; if (id < 0 || id >= NUM_DIAG_USB_DEV) { pr_err("diag: In %s, incorrect id %d\n", __func__, id); return; } ch = &diag_usb[id]; ch->ops = NULL; ch->connected = 0; ch->enabled = 0; ch->ctxt = 0; ch->read_cnt = 0; ch->write_cnt = 0; ch->read_pending = 0; diagmem_exit(driver, ch->mempool); ch->mempool = 0; if (ch->hdl) { usb_diag_close(ch->hdl); ch->hdl = NULL; } if (ch->usb_wq) destroy_workqueue(ch->usb_wq); kfree(ch->read_ptr); ch->read_ptr = NULL; kfree(ch->read_buf); ch->read_buf = NULL; }
void diagfwd_sdio_exit(void) { #ifdef CONFIG_DIAG_OVER_USB #ifdef CONFIG_SH_USB_CUST // if (driver->usb_connected) // diag_close(); #else /* CONFIG_SH_USB_CUST */ if (driver->usb_connected) usb_diag_free_req(driver->mdm_ch); #endif /* CONFIG_SH_USB_CUST */ #endif platform_driver_unregister(&msm_sdio_ch_driver); #ifdef CONFIG_DIAG_OVER_USB #ifdef CONFIG_SH_USB_CUST // diag_usb_unregister(); #else /* CONFIG_SH_USB_CUST */ usb_diag_close(driver->mdm_ch); #endif /* CONFIG_SH_USB_CUST */ #endif kfree(driver->buf_in_sdio); kfree(driver->usb_buf_mdm_out); kfree(driver->write_ptr_mdm); kfree(driver->usb_read_mdm_ptr); destroy_workqueue(driver->diag_sdio_wq); }
void diagfwd_exit(void) { int i; for (i = 0; i < NUM_SMD_DATA_CHANNELS; i++) diag_smd_destructor(&driver->smd_data[i]); #ifdef CONFIG_DIAG_OVER_USB if (driver->usb_connected) usb_diag_free_req(driver->legacy_ch); usb_diag_close(driver->legacy_ch); #endif platform_driver_unregister(&msm_smd_ch1_driver); platform_driver_unregister(&msm_diag_dci_driver); platform_driver_unregister(&diag_smd_lite_driver); kfree(driver->buf_msg_mask_update); kfree(driver->buf_log_mask_update); kfree(driver->buf_event_mask_update); kfree(driver->usb_buf_out); kfree(driver->hdlc_buf); kfree(driver->client_map); kfree(driver->buf_tbl); kfree(driver->data_ready); kfree(driver->table); kfree(driver->pkt_buf); kfree(driver->usb_read_ptr); kfree(driver->apps_rsp_buf); kfree(driver->user_space_data); destroy_workqueue(driver->diag_wq); }
void diagfwd_exit(void) { smd_close(driver->ch); smd_close(driver->chqdsp); driver->ch = 0; /*SMD can make this NULL */ driver->chqdsp = 0; #ifdef CONFIG_DIAG_OVER_USB if (driver->usb_connected) usb_diag_free_req(driver->legacy_ch); #endif platform_driver_unregister(&msm_smd_ch1_driver); #ifdef CONFIG_DIAG_OVER_USB usb_diag_close(driver->legacy_ch); #endif kfree(driver->buf_in_1); kfree(driver->buf_in_2); kfree(driver->buf_in_qdsp_1); kfree(driver->buf_in_qdsp_2); #if defined(CONFIG_MACH_MECHA) //|| defined(CONFIG_ARCH_MSM8X60_LTE) kfree(driver->buf_in_mdm_1); kfree(driver->buf_in_mdm_2); #endif kfree(driver->usb_buf_out); kfree(driver->hdlc_buf); kfree(driver->msg_masks); kfree(driver->log_masks); kfree(driver->event_masks); kfree(driver->client_map); kfree(driver->buf_tbl); kfree(driver->data_ready); #if defined(CONFIG_MACH_MECHA) //|| defined(CONFIG_ARCH_MSM8X60_LTE) kfree(driver->mdmclient_map); //kfree(driver->mdmbuf_tbl); kfree(driver->mdmdata_ready); #endif kfree(driver->table); kfree(driver->pkt_buf); kfree(driver->write_ptr_1); kfree(driver->write_ptr_2); kfree(driver->write_ptr_qdsp_1); kfree(driver->write_ptr_qdsp_2); #if defined(CONFIG_MACH_MECHA) //|| defined(CONFIG_ARCH_MSM8X60_LTE) kfree(driver->write_ptr_mdm_1); kfree(driver->write_ptr_mdm_2); #endif kfree(driver->usb_read_ptr); #ifdef CONFIG_DIAG_NO_MODEM kfree(driver->apps_rsp_buf); #endif destroy_workqueue(driver->diag_wq); }
void diagfwd_exit(void) { smd_close(driver->ch); smd_close(driver->chqdsp); driver->ch = 0; /*SMD can make this NULL */ driver->chqdsp = 0; #ifdef CONFIG_DIAG_OVER_USB #ifdef CONFIG_SH_USB_CUST if (driver->usb_connected) diag_close(); #else /* CONFIG_SH_USB_CUST */ if (driver->usb_connected) usb_diag_free_req(driver->legacy_ch); #endif /* CONFIG_SH_USB_CUST */ #endif platform_driver_unregister(&msm_smd_ch1_driver); #ifdef CONFIG_DIAG_OVER_USB #ifdef CONFIG_SH_USB_CUST diag_usb_unregister(); #else /* CONFIG_SH_USB_CUST */ usb_diag_close(driver->legacy_ch); #endif /* CONFIG_SH_USB_CUST */ #endif kfree(driver->buf_in_1); kfree(driver->buf_in_2); kfree(driver->buf_in_qdsp_1); kfree(driver->buf_in_qdsp_2); kfree(driver->usb_buf_out); kfree(driver->hdlc_buf); kfree(driver->msg_masks); kfree(driver->log_masks); kfree(driver->event_masks); kfree(driver->client_map); kfree(driver->buf_tbl); kfree(driver->data_ready); kfree(driver->table); kfree(driver->pkt_buf); kfree(driver->write_ptr_1); kfree(driver->write_ptr_2); kfree(driver->write_ptr_qdsp_1); kfree(driver->write_ptr_qdsp_2); kfree(driver->usb_read_ptr); kfree(driver->apps_rsp_buf); #ifndef CONFIG_SH_USB_CUST destroy_workqueue(driver->diag_wq); #endif /* CONFIG_SH_USB_CUST */ }
void diagfwd_sdio_exit(void) { #ifdef CONFIG_DIAG_OVER_USB if (driver->usb_connected) usb_diag_free_req(driver->mdm_ch); #endif platform_driver_unregister(&msm_sdio_ch_driver); #ifdef CONFIG_DIAG_OVER_USB usb_diag_close(driver->mdm_ch); #endif kfree(driver->buf_in_sdio_1); kfree(driver->buf_in_sdio_2); kfree(driver->usb_buf_mdm_out); kfree(driver->write_ptr_mdm_1); kfree(driver->write_ptr_mdm_2); kfree(driver->usb_read_mdm_ptr); destroy_workqueue(driver->diag_sdio_wq); }
void diagfwd_exit(void) { smd_close(driver->ch); smd_close(driver->chqdsp); smd_close(driver->ch_wcnss); driver->ch = 0; /* SMD can make this NULL */ driver->chqdsp = 0; driver->ch_wcnss = 0; smd_diag_initialized = 0; #ifdef CONFIG_DIAG_OVER_USB if (driver->usb_connected) usb_diag_free_req(driver->legacy_ch); usb_diag_close(driver->legacy_ch); #endif platform_driver_unregister(&msm_smd_ch1_driver); platform_driver_unregister(&diag_smd_lite_driver); kfree(driver->buf_in_1); kfree(driver->buf_in_2); kfree(driver->buf_in_qdsp_1); kfree(driver->buf_in_qdsp_2); kfree(driver->buf_in_wcnss); kfree(driver->usb_buf_out); kfree(driver->hdlc_buf); kfree(driver->msg_masks); kfree(driver->log_masks); kfree(driver->event_masks); kfree(driver->client_map); kfree(driver->buf_tbl); kfree(driver->data_ready); kfree(driver->table); kfree(driver->pkt_buf); kfree(driver->write_ptr_1); kfree(driver->write_ptr_2); kfree(driver->write_ptr_qdsp_1); kfree(driver->write_ptr_qdsp_2); kfree(driver->write_ptr_wcnss); kfree(driver->usb_read_ptr); kfree(driver->apps_rsp_buf); kfree(driver->user_space_data); destroy_workqueue(driver->diag_wq); }
void diagfwd_bridge_exit(void) { int i; pr_debug("diag: in %s\n", __func__); for (i = 0; i < MAX_HSIC_CH; i++) { if (diag_hsic[i].hsic_device_enabled) { diag_hsic_close(i); diag_hsic[i].hsic_device_enabled = 0; diag_bridge[i].enabled = 0; } diag_hsic[i].hsic_inited = 0; kfree(diag_hsic[i].hsic_buf_tbl); } diagmem_exit(driver, POOL_TYPE_ALL); if (driver->diag_smux_enabled) { driver->lcid = LCID_INVALID; kfree(driver->buf_in_smux); driver->diag_smux_enabled = 0; diag_bridge[SMUX].enabled = 0; } platform_driver_unregister(&msm_hsic_ch_driver); platform_driver_unregister(&msm_diagfwd_smux_driver); /* destroy USB MDM specific variables */ for (i = 0; i < MAX_BRIDGES; i++) { if (diag_bridge[i].enabled) { #ifdef CONFIG_DIAG_OVER_USB if (diag_bridge[i].usb_connected) usb_diag_free_req(diag_bridge[i].ch); usb_diag_close(diag_bridge[i].ch); #endif kfree(diag_bridge[i].usb_buf_out); kfree(diag_bridge[i].usb_read_ptr); destroy_workqueue(diag_bridge[i].wq); diag_bridge[i].enabled = 0; } } kfree(driver->write_ptr_mdm); }
void __exit diagfwd_hsic_exit(void) { pr_debug("DIAG in %s\n", __func__); if (driver->hsic_initialized) diag_hsic_close(); #ifdef CONFIG_DIAG_OVER_USB if (driver->usb_mdm_connected) usb_diag_free_req(driver->mdm_ch); #endif platform_driver_unregister(&msm_hsic_ch_driver); #ifdef CONFIG_DIAG_OVER_USB usb_diag_close(driver->mdm_ch); #endif kfree(driver->buf_in_hsic); kfree(driver->usb_buf_mdm_out); kfree(driver->write_ptr_mdm); kfree(driver->usb_read_mdm_ptr); destroy_workqueue(driver->diag_hsic_wq); driver->hsic_device_enabled = 0; }
void diagfwd_hsic_exit(void) { pr_debug("diag: in %s\n", __func__); if (driver->hsic_initialized) diag_hsic_close(); diagmem_exit(driver, POOL_TYPE_ALL); /* destroy USB MDM specific variables */ #ifdef CONFIG_DIAG_OVER_USB if (driver->usb_mdm_connected) usb_diag_free_req(driver->mdm_ch); #endif platform_driver_unregister(&msm_hsic_ch_driver); #ifdef CONFIG_DIAG_OVER_USB usb_diag_close(driver->mdm_ch); #endif kfree(driver->usb_buf_mdm_out); kfree(driver->hsic_buf_tbl); kfree(driver->usb_read_mdm_ptr); destroy_workqueue(driver->diag_hsic_wq); driver->hsic_device_enabled = 0; }