int diagfwd_read_complete(struct diag_request *diag_read_ptr) { int status = diag_read_ptr->status; unsigned char *buf = diag_read_ptr->buf; /* Determine if the read complete is for data on legacy/mdm ch */ if (buf == (void *)driver->usb_buf_out) { driver->read_len_legacy = diag_read_ptr->actual; APPEND_DEBUG('s'); #ifdef DIAG_DEBUG printk(KERN_INFO "read data from USB, pkt length %d \n", diag_read_ptr->actual); print_hex_dump(KERN_DEBUG, "Read Packet Data from USB: ", DUMP_PREFIX_ADDRESS, 16, 1, diag_read_ptr->buf, diag_read_ptr->actual, 1); #endif /* DIAG DEBUG */ if (driver->nohdlc) { driver->usb_read_ptr->buf = driver->usb_buf_out; driver->usb_read_ptr->length = USB_MAX_OUT_BUF; usb_diag_read(driver->legacy_ch, driver->usb_read_ptr); return 0; } if (driver->logging_mode == USB_MODE) { #ifdef CONFIG_ARCH_MSM8X60_LTE if (diag_ch_sdio) { driver->read_len_mdm = diag_read_ptr->actual; diagfwd_read_complete_sdio(); } else #endif { if (status != -ECONNRESET && status != -ESHUTDOWN) queue_work(driver->diag_wq, &(driver->diag_proc_hdlc_work)); else queue_work(driver->diag_wq, &(driver->diag_read_work)); } } } #if defined(CONFIG_ARCH_MSM8X60_LTE) else if (buf == (void *)driver->usb_buf_mdm_out) { driver->read_len_mdm = diag_read_ptr->actual; diagfwd_read_complete_sdio(); } #endif else DIAGFWD_ERR("diag: Unknown buffer ptr from USB"); return 0; }
int diagfwd_read_complete(struct diag_request *diag_read_ptr) { int status = diag_read_ptr->status; unsigned char *buf = diag_read_ptr->buf; /* Determine if the read complete is for data on legacy/mdm ch */ if (buf == (void *)driver->usb_buf_out) { driver->read_len_legacy = diag_read_ptr->actual; APPEND_DEBUG('s'); #ifdef DIAG_DEBUG printk(KERN_INFO "read data from USB, pkt length %d", diag_read_ptr->actual); print_hex_dump(KERN_DEBUG, "Read Packet Data from USB: ", 16, 1, DUMP_PREFIX_ADDRESS, diag_read_ptr->buf, diag_read_ptr->actual, 1); #endif /* DIAG DEBUG */ #if DIAG_XPST if (driver->nohdlc) { driver->usb_read_ptr->buf = driver->usb_buf_out; driver->usb_read_ptr->length = USB_MAX_OUT_BUF; usb_diag_read(driver->legacy_ch, driver->usb_read_ptr); return 0; } #endif if (driver->logging_mode == USB_MODE) { if (status != -ECONNRESET && status != -ESHUTDOWN) queue_work(driver->diag_wq, &(driver->diag_proc_hdlc_work)); else queue_work(driver->diag_wq, &(driver->diag_read_work)); } } #ifdef CONFIG_DIAG_SDIO_PIPE else if (buf == (void *)driver->usb_buf_mdm_out) { if (diag_support_mdm9k) { driver->read_len_mdm = diag_read_ptr->actual; diagfwd_read_complete_sdio(); } else pr_err("diag: Incorrect buffer pointer while READ"); } #endif else printk(KERN_ERR "diag: Unknown buffer ptr from USB"); return 0; }