void diag_read_smd_qdsp_work_fn(struct work_struct *work) { unsigned long flags = 0; spin_lock_irqsave(&diagchar_smd_qdsp_lock, flags); __diag_smd_qdsp_send_req(NON_SMD_CONTEXT); spin_unlock_irqrestore(&diagchar_smd_qdsp_lock, flags); }
int diagfwd_write_complete(struct diag_request *diag_write_ptr) { unsigned char *buf = diag_write_ptr->buf; /*Determine if the write complete is for data from arm9/apps/q6 */ /* Need a context variable here instead */ if (buf == (void *)driver->usb_buf_in) { driver->in_busy = 0; APPEND_DEBUG('o'); spin_lock(&diagchar_smd_lock); __diag_smd_send_req(NON_SMD_CONTEXT); spin_unlock(&diagchar_smd_lock); } else if (buf == (void *)driver->usb_buf_in_qdsp) { driver->in_busy_qdsp = 0; APPEND_DEBUG('p'); spin_lock(&diagchar_smd_qdsp_lock); __diag_smd_qdsp_send_req(NON_SMD_CONTEXT); spin_unlock(&diagchar_smd_qdsp_lock); } else { diagmem_free(driver, (unsigned char *)buf, POOL_TYPE_HDLC); diagmem_free(driver, (unsigned char *)diag_write_ptr, POOL_TYPE_USB_STRUCT); APPEND_DEBUG('q'); } return 0; }
static void diag_smd_qdsp_notify(void *ctxt, unsigned event) { unsigned long flags = 0; spin_lock_irqsave(&diagchar_smd_qdsp_lock, flags); __diag_smd_qdsp_send_req(SMD_CONTEXT); spin_unlock_irqrestore(&diagchar_smd_qdsp_lock, flags); }
int diagfwd_write_complete(struct diag_request *diag_write_ptr) { unsigned char *buf = diag_write_ptr->buf; unsigned long flags = 0; if (buf == (void *)driver->usb_buf_in) { driver->in_busy = 0; APPEND_DEBUG('o'); spin_lock_irqsave(&diagchar_smd_lock, flags); __diag_smd_send_req(NON_SMD_CONTEXT); spin_unlock_irqrestore(&diagchar_smd_lock, flags); } else if (buf == (void *)driver->usb_buf_in_qdsp) { driver->in_busy_qdsp = 0; APPEND_DEBUG('p'); spin_lock_irqsave(&diagchar_smd_qdsp_lock, flags); __diag_smd_qdsp_send_req(NON_SMD_CONTEXT); spin_unlock_irqrestore(&diagchar_smd_qdsp_lock, flags); } else { diagmem_free(driver, (unsigned char *)buf, POOL_TYPE_HDLC); diagmem_free(driver, (unsigned char *)diag_write_ptr, POOL_TYPE_USB_STRUCT); APPEND_DEBUG('q'); } return 0; }
void diag_read_smd_qdsp_work_fn(struct work_struct *work) { __diag_smd_qdsp_send_req(); }
static void diag_smd_qdsp_notify(void *ctxt, unsigned event) { spin_lock(&diagchar_smd_qdsp_lock); __diag_smd_qdsp_send_req(SMD_CONTEXT); spin_unlock(&diagchar_smd_qdsp_lock); }