void diagfwd_exit(void) { smd_close(driver->ch); smd_close(driver->chqdsp); driver->ch = 0; /*SMD can make this NULL */ driver->chqdsp = 0; if (driver->usb_connected) diag_close(); platform_driver_unregister(&msm_smd_ch1_driver); diag_usb_unregister(); kfree(driver->usb_buf_in); kfree(driver->usb_buf_in_qdsp); 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->usb_write_ptr); kfree(driver->usb_write_ptr_qdsp); kfree(driver->usb_read_ptr); }
int diagfwd_disconnect(void) { printk(KERN_DEBUG "diag: USB disconnected\n"); driver->usb_connected = 0; driver->in_busy = 1; driver->in_busy_qdsp = 1; driver->debug_flag = 1; diag_close(); /* TBD - notify and flow control SMD */ return 0; }
int diagfwd_disconnect(void) { printk(KERN_DEBUG "diag: USB disconnected\n"); driver->usb_connected = 0; driver->in_busy = 1; driver->in_busy_qdsp = 1; driver->debug_flag = 1; diag_close(); return 0; }
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 */ }
int diagfwd_disconnect(void) { printk(KERN_DEBUG "diag: USB disconnected\n"); driver->usb_connected = 0; driver->in_busy_1 = 1; driver->in_busy_2 = 1; driver->in_busy_qdsp_1 = 1; driver->in_busy_qdsp_2 = 1; driver->debug_flag = 1; #ifdef CONFIG_SH_USB_CUST diag_close(); #else /* CONFIG_SH_USB_CUST */ usb_diag_free_req(driver->legacy_ch); #endif /* CONFIG_SH_USB_CUST */ #ifdef CONFIG_DIAG_SDIO_PIPE if (machine_is_msm8x60_charm_surf() || machine_is_msm8x60_charm_ffa()) if (driver->mdm_ch && !IS_ERR(driver->mdm_ch)) diagfwd_disconnect_sdio(); #endif /* TBD - notify and flow control SMD */ return 0; }
int diagfwd_disconnect(void) { unsigned char buf[324]; unsigned char msg_mask[]= {0x7d, 0x04, 0x00, 0x00, 0x4e}; printk(KERN_DEBUG "diag: USB disconnected\n"); driver->usb_connected = 0; driver->in_busy_1 = 1; driver->in_busy_2 = 1; driver->in_busy_qdsp_1 = 1; driver->in_busy_qdsp_2 = 1; driver->in_busy_mdm_1 = 1; driver->in_busy_mdm_2 = 1; driver->debug_flag = 1; diag_close(); printk(KERN_ALERT "disable QCRIL message log\n"); memset(buf, 0, sizeof(buf)); memcpy(buf, msg_mask, 5); diag_update_msg_mask(0, 0x4e, buf, 1); /* TBD - notify and flow control SMD */ return 0; }