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;
}
Beispiel #3
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);
}
Beispiel #4
0
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);
}