mdc800            216 drivers/usb/image/mdc800.c static struct mdc800_data* mdc800;
mdc800            273 drivers/usb/image/mdc800.c 	struct mdc800_data* mdc800=urb->context;
mdc800            274 drivers/usb/image/mdc800.c 	struct device *dev = &mdc800->dev->dev;
mdc800            280 drivers/usb/image/mdc800.c 			if (!mdc800->camera_busy)
mdc800            282 drivers/usb/image/mdc800.c 				mdc800->camera_busy=1;
mdc800            288 drivers/usb/image/mdc800.c 			if (mdc800->camera_busy && mdc800_isReady (b))
mdc800            290 drivers/usb/image/mdc800.c 				mdc800->camera_busy=0;
mdc800            299 drivers/usb/image/mdc800.c 			memcpy (mdc800->camera_response,b,8);
mdc800            303 drivers/usb/image/mdc800.c 	wake_up= ( mdc800->camera_request_ready > 0 )
mdc800            306 drivers/usb/image/mdc800.c 			((mdc800->camera_request_ready == 1) && (!mdc800->camera_busy))
mdc800            308 drivers/usb/image/mdc800.c 			((mdc800->camera_request_ready == 2) && data_received)
mdc800            310 drivers/usb/image/mdc800.c 			((mdc800->camera_request_ready == 3) && (mdc800->camera_busy))
mdc800            317 drivers/usb/image/mdc800.c 		mdc800->camera_request_ready=0;
mdc800            318 drivers/usb/image/mdc800.c 		mdc800->irq_woken=1;
mdc800            319 drivers/usb/image/mdc800.c 		wake_up (&mdc800->irq_wait);
mdc800            335 drivers/usb/image/mdc800.c 	mdc800->camera_request_ready=1+mode;
mdc800            337 drivers/usb/image/mdc800.c 	wait_event_timeout(mdc800->irq_wait, mdc800->irq_woken,
mdc800            339 drivers/usb/image/mdc800.c 	mdc800->irq_woken = 0;
mdc800            341 drivers/usb/image/mdc800.c 	if (mdc800->camera_request_ready>0)
mdc800            343 drivers/usb/image/mdc800.c 		mdc800->camera_request_ready=0;
mdc800            344 drivers/usb/image/mdc800.c 		dev_err(&mdc800->dev->dev, "timeout waiting for camera.\n");
mdc800            348 drivers/usb/image/mdc800.c 	if (mdc800->state == NOT_CONNECTED)
mdc800            352 drivers/usb/image/mdc800.c 		mdc800->camera_request_ready=0;
mdc800            365 drivers/usb/image/mdc800.c 	struct mdc800_data* mdc800=urb->context;
mdc800            369 drivers/usb/image/mdc800.c 		dev_err(&mdc800->dev->dev,
mdc800            372 drivers/usb/image/mdc800.c 		mdc800->state=READY;
mdc800            373 drivers/usb/image/mdc800.c 	mdc800->written = 1;
mdc800            374 drivers/usb/image/mdc800.c 	wake_up (&mdc800->write_wait);
mdc800            383 drivers/usb/image/mdc800.c 	struct mdc800_data* mdc800=urb->context;
mdc800            388 drivers/usb/image/mdc800.c 		memcpy (mdc800->out,  urb->transfer_buffer, 64);
mdc800            389 drivers/usb/image/mdc800.c 		mdc800->out_count=64;
mdc800            390 drivers/usb/image/mdc800.c 		mdc800->out_ptr=0;
mdc800            391 drivers/usb/image/mdc800.c 		mdc800->download_left-=64;
mdc800            392 drivers/usb/image/mdc800.c 		if (mdc800->download_left == 0)
mdc800            394 drivers/usb/image/mdc800.c 			mdc800->state=READY;
mdc800            397 drivers/usb/image/mdc800.c 		dev_err(&mdc800->dev->dev,
mdc800            400 drivers/usb/image/mdc800.c 	mdc800->downloaded = 1;
mdc800            401 drivers/usb/image/mdc800.c 	wake_up (&mdc800->download_wait);
mdc800            433 drivers/usb/image/mdc800.c 	if (mdc800->dev != NULL)
mdc800            461 drivers/usb/image/mdc800.c 		mdc800->endpoint[i]=-1;
mdc800            466 drivers/usb/image/mdc800.c 				mdc800->endpoint[i]=intf_desc->endpoint [j].desc.bEndpointAddress ;
mdc800            473 drivers/usb/image/mdc800.c 		if (mdc800->endpoint[i] == -1)
mdc800            483 drivers/usb/image/mdc800.c 	mutex_lock(&mdc800->io_lock);
mdc800            488 drivers/usb/image/mdc800.c 		mutex_unlock(&mdc800->io_lock);
mdc800            492 drivers/usb/image/mdc800.c 	mdc800->dev=dev;
mdc800            493 drivers/usb/image/mdc800.c 	mdc800->open=0;
mdc800            497 drivers/usb/image/mdc800.c 		mdc800->irq_urb,
mdc800            498 drivers/usb/image/mdc800.c 		mdc800->dev,
mdc800            499 drivers/usb/image/mdc800.c 		usb_rcvintpipe (mdc800->dev,mdc800->endpoint [1]),
mdc800            500 drivers/usb/image/mdc800.c 		mdc800->irq_urb_buffer,
mdc800            503 drivers/usb/image/mdc800.c 		mdc800,
mdc800            508 drivers/usb/image/mdc800.c 		mdc800->write_urb,
mdc800            509 drivers/usb/image/mdc800.c 		mdc800->dev,
mdc800            510 drivers/usb/image/mdc800.c 		usb_sndbulkpipe (mdc800->dev, mdc800->endpoint[0]),
mdc800            511 drivers/usb/image/mdc800.c 		mdc800->write_urb_buffer,
mdc800            514 drivers/usb/image/mdc800.c 		mdc800
mdc800            518 drivers/usb/image/mdc800.c 		mdc800->download_urb,
mdc800            519 drivers/usb/image/mdc800.c 		mdc800->dev,
mdc800            520 drivers/usb/image/mdc800.c 		usb_rcvbulkpipe (mdc800->dev, mdc800->endpoint [3]),
mdc800            521 drivers/usb/image/mdc800.c 		mdc800->download_urb_buffer,
mdc800            524 drivers/usb/image/mdc800.c 		mdc800
mdc800            527 drivers/usb/image/mdc800.c 	mdc800->state=READY;
mdc800            529 drivers/usb/image/mdc800.c 	mutex_unlock(&mdc800->io_lock);
mdc800            531 drivers/usb/image/mdc800.c 	usb_set_intfdata(intf, mdc800);
mdc800            541 drivers/usb/image/mdc800.c 	struct mdc800_data* mdc800 = usb_get_intfdata(intf);
mdc800            545 drivers/usb/image/mdc800.c 	if (mdc800) {
mdc800            546 drivers/usb/image/mdc800.c 		if (mdc800->state == NOT_CONNECTED)
mdc800            553 drivers/usb/image/mdc800.c 		mutex_lock(&mdc800->io_lock);
mdc800            554 drivers/usb/image/mdc800.c 		mdc800->state=NOT_CONNECTED;
mdc800            556 drivers/usb/image/mdc800.c 		usb_kill_urb(mdc800->irq_urb);
mdc800            557 drivers/usb/image/mdc800.c 		usb_kill_urb(mdc800->write_urb);
mdc800            558 drivers/usb/image/mdc800.c 		usb_kill_urb(mdc800->download_urb);
mdc800            559 drivers/usb/image/mdc800.c 		mutex_unlock(&mdc800->io_lock);
mdc800            561 drivers/usb/image/mdc800.c 		mdc800->dev = NULL;
mdc800            592 drivers/usb/image/mdc800.c 			return mdc800->pic_len;
mdc800            611 drivers/usb/image/mdc800.c 	mutex_lock(&mdc800->io_lock);
mdc800            613 drivers/usb/image/mdc800.c 	if (mdc800->state == NOT_CONNECTED)
mdc800            618 drivers/usb/image/mdc800.c 	if (mdc800->open)
mdc800            624 drivers/usb/image/mdc800.c 	mdc800->in_count=0;
mdc800            625 drivers/usb/image/mdc800.c 	mdc800->out_count=0;
mdc800            626 drivers/usb/image/mdc800.c 	mdc800->out_ptr=0;
mdc800            627 drivers/usb/image/mdc800.c 	mdc800->pic_index=0;
mdc800            628 drivers/usb/image/mdc800.c 	mdc800->pic_len=-1;
mdc800            629 drivers/usb/image/mdc800.c 	mdc800->download_left=0;
mdc800            631 drivers/usb/image/mdc800.c 	mdc800->camera_busy=0;
mdc800            632 drivers/usb/image/mdc800.c 	mdc800->camera_request_ready=0;
mdc800            635 drivers/usb/image/mdc800.c 	mdc800->irq_urb->dev = mdc800->dev;
mdc800            636 drivers/usb/image/mdc800.c 	retval = usb_submit_urb (mdc800->irq_urb, GFP_KERNEL);
mdc800            638 drivers/usb/image/mdc800.c 		dev_err(&mdc800->dev->dev,
mdc800            644 drivers/usb/image/mdc800.c 	mdc800->open=1;
mdc800            645 drivers/usb/image/mdc800.c 	dev_dbg(&mdc800->dev->dev, "Mustek MDC800 device opened.\n");
mdc800            648 drivers/usb/image/mdc800.c 	mutex_unlock(&mdc800->io_lock);
mdc800            660 drivers/usb/image/mdc800.c 	mutex_lock(&mdc800->io_lock);
mdc800            661 drivers/usb/image/mdc800.c 	if (mdc800->open && (mdc800->state != NOT_CONNECTED))
mdc800            663 drivers/usb/image/mdc800.c 		usb_kill_urb(mdc800->irq_urb);
mdc800            664 drivers/usb/image/mdc800.c 		usb_kill_urb(mdc800->write_urb);
mdc800            665 drivers/usb/image/mdc800.c 		usb_kill_urb(mdc800->download_urb);
mdc800            666 drivers/usb/image/mdc800.c 		mdc800->open=0;
mdc800            673 drivers/usb/image/mdc800.c 	mutex_unlock(&mdc800->io_lock);
mdc800            687 drivers/usb/image/mdc800.c 	mutex_lock(&mdc800->io_lock);
mdc800            688 drivers/usb/image/mdc800.c 	if (mdc800->state == NOT_CONNECTED)
mdc800            690 drivers/usb/image/mdc800.c 		mutex_unlock(&mdc800->io_lock);
mdc800            693 drivers/usb/image/mdc800.c 	if (mdc800->state == WORKING)
mdc800            697 drivers/usb/image/mdc800.c 		mutex_unlock(&mdc800->io_lock);
mdc800            700 drivers/usb/image/mdc800.c 	if (!mdc800->open)
mdc800            702 drivers/usb/image/mdc800.c 		mutex_unlock(&mdc800->io_lock);
mdc800            710 drivers/usb/image/mdc800.c 			mutex_unlock(&mdc800->io_lock);
mdc800            714 drivers/usb/image/mdc800.c 		sts=left > (mdc800->out_count-mdc800->out_ptr)?mdc800->out_count-mdc800->out_ptr:left;
mdc800            719 drivers/usb/image/mdc800.c 			if (mdc800->state == DOWNLOAD)
mdc800            721 drivers/usb/image/mdc800.c 				mdc800->out_count=0;
mdc800            722 drivers/usb/image/mdc800.c 				mdc800->out_ptr=0;
mdc800            725 drivers/usb/image/mdc800.c 				mdc800->download_urb->dev = mdc800->dev;
mdc800            726 drivers/usb/image/mdc800.c 				retval = usb_submit_urb (mdc800->download_urb, GFP_KERNEL);
mdc800            728 drivers/usb/image/mdc800.c 					dev_err(&mdc800->dev->dev,
mdc800            731 drivers/usb/image/mdc800.c 					mutex_unlock(&mdc800->io_lock);
mdc800            734 drivers/usb/image/mdc800.c 				wait_event_timeout(mdc800->download_wait,
mdc800            735 drivers/usb/image/mdc800.c 				     mdc800->downloaded,
mdc800            737 drivers/usb/image/mdc800.c 				mdc800->downloaded = 0;
mdc800            738 drivers/usb/image/mdc800.c 				if (mdc800->download_urb->status != 0)
mdc800            740 drivers/usb/image/mdc800.c 					dev_err(&mdc800->dev->dev,
mdc800            743 drivers/usb/image/mdc800.c 						mdc800->download_urb->status);
mdc800            744 drivers/usb/image/mdc800.c 					mutex_unlock(&mdc800->io_lock);
mdc800            751 drivers/usb/image/mdc800.c 				mutex_unlock(&mdc800->io_lock);
mdc800            758 drivers/usb/image/mdc800.c 			if (copy_to_user(ptr, &mdc800->out [mdc800->out_ptr],
mdc800            760 drivers/usb/image/mdc800.c 				mutex_unlock(&mdc800->io_lock);
mdc800            765 drivers/usb/image/mdc800.c 			mdc800->out_ptr+=sts;
mdc800            769 drivers/usb/image/mdc800.c 	mutex_unlock(&mdc800->io_lock);
mdc800            785 drivers/usb/image/mdc800.c 	mutex_lock(&mdc800->io_lock);
mdc800            786 drivers/usb/image/mdc800.c 	if (mdc800->state != READY)
mdc800            788 drivers/usb/image/mdc800.c 		mutex_unlock(&mdc800->io_lock);
mdc800            791 drivers/usb/image/mdc800.c 	if (!mdc800->open )
mdc800            793 drivers/usb/image/mdc800.c 		mutex_unlock(&mdc800->io_lock);
mdc800            802 drivers/usb/image/mdc800.c 			mutex_unlock(&mdc800->io_lock);
mdc800            808 drivers/usb/image/mdc800.c 			mutex_unlock(&mdc800->io_lock);
mdc800            815 drivers/usb/image/mdc800.c 			mdc800->in_count=0;
mdc800            816 drivers/usb/image/mdc800.c 			mdc800->out_count=0;
mdc800            817 drivers/usb/image/mdc800.c 			mdc800->out_ptr=0;
mdc800            818 drivers/usb/image/mdc800.c 			mdc800->download_left=0;
mdc800            822 drivers/usb/image/mdc800.c 		if (mdc800->in_count < 8)
mdc800            824 drivers/usb/image/mdc800.c 			mdc800->in[mdc800->in_count] = c;
mdc800            825 drivers/usb/image/mdc800.c 			mdc800->in_count++;
mdc800            829 drivers/usb/image/mdc800.c 			mutex_unlock(&mdc800->io_lock);
mdc800            834 drivers/usb/image/mdc800.c 		if (mdc800->in_count == 8)
mdc800            840 drivers/usb/image/mdc800.c 				dev_err(&mdc800->dev->dev,
mdc800            842 drivers/usb/image/mdc800.c 				mutex_unlock(&mdc800->io_lock);
mdc800            846 drivers/usb/image/mdc800.c 			answersize=mdc800_getAnswerSize (mdc800->in[1]);
mdc800            848 drivers/usb/image/mdc800.c 			mdc800->state=WORKING;
mdc800            849 drivers/usb/image/mdc800.c 			memcpy (mdc800->write_urb->transfer_buffer, mdc800->in,8);
mdc800            850 drivers/usb/image/mdc800.c 			mdc800->write_urb->dev = mdc800->dev;
mdc800            851 drivers/usb/image/mdc800.c 			retval = usb_submit_urb (mdc800->write_urb, GFP_KERNEL);
mdc800            853 drivers/usb/image/mdc800.c 				dev_err(&mdc800->dev->dev,
mdc800            856 drivers/usb/image/mdc800.c 				mutex_unlock(&mdc800->io_lock);
mdc800            859 drivers/usb/image/mdc800.c 			wait_event_timeout(mdc800->write_wait, mdc800->written,
mdc800            861 drivers/usb/image/mdc800.c 			mdc800->written = 0;
mdc800            862 drivers/usb/image/mdc800.c 			if (mdc800->state == WORKING)
mdc800            864 drivers/usb/image/mdc800.c 				usb_kill_urb(mdc800->write_urb);
mdc800            865 drivers/usb/image/mdc800.c 				mutex_unlock(&mdc800->io_lock);
mdc800            869 drivers/usb/image/mdc800.c 			switch ((unsigned char) mdc800->in[1])
mdc800            873 drivers/usb/image/mdc800.c 					if (mdc800->pic_len < 0)
mdc800            875 drivers/usb/image/mdc800.c 						dev_err(&mdc800->dev->dev,
mdc800            878 drivers/usb/image/mdc800.c 						mdc800->state=READY;
mdc800            879 drivers/usb/image/mdc800.c 						mutex_unlock(&mdc800->io_lock);
mdc800            882 drivers/usb/image/mdc800.c 					mdc800->pic_len=-1;
mdc800            886 drivers/usb/image/mdc800.c 					mdc800->download_left=answersize+64;
mdc800            887 drivers/usb/image/mdc800.c 					mdc800->state=DOWNLOAD;
mdc800            898 drivers/usb/image/mdc800.c 							dev_err(&mdc800->dev->dev, "requesting answer from irq fails\n");
mdc800            899 drivers/usb/image/mdc800.c 							mutex_unlock(&mdc800->io_lock);
mdc800            905 drivers/usb/image/mdc800.c 						memcpy (mdc800->out, mdc800->camera_response,8);
mdc800            908 drivers/usb/image/mdc800.c 						memcpy (&mdc800->out[8], mdc800->camera_response,8);
mdc800            910 drivers/usb/image/mdc800.c 						mdc800->out_ptr=0;
mdc800            911 drivers/usb/image/mdc800.c 						mdc800->out_count=16;
mdc800            914 drivers/usb/image/mdc800.c 						if (mdc800->in [1] == (char) 0x07)
mdc800            916 drivers/usb/image/mdc800.c 							mdc800->pic_len=(int) 65536*(unsigned char) mdc800->camera_response[0]+256*(unsigned char) mdc800->camera_response[1]+(unsigned char) mdc800->camera_response[2];
mdc800            918 drivers/usb/image/mdc800.c 							dev_dbg(&mdc800->dev->dev, "cached imagesize = %i\n", mdc800->pic_len);
mdc800            926 drivers/usb/image/mdc800.c 							dev_err(&mdc800->dev->dev, "Command Timeout.\n");
mdc800            927 drivers/usb/image/mdc800.c 							mutex_unlock(&mdc800->io_lock);
mdc800            931 drivers/usb/image/mdc800.c 					mdc800->state=READY;
mdc800            937 drivers/usb/image/mdc800.c 	mutex_unlock(&mdc800->io_lock);
mdc800            986 drivers/usb/image/mdc800.c 	mdc800=kzalloc (sizeof (struct mdc800_data), GFP_KERNEL);
mdc800            987 drivers/usb/image/mdc800.c 	if (!mdc800)
mdc800            990 drivers/usb/image/mdc800.c 	mdc800->dev = NULL;
mdc800            991 drivers/usb/image/mdc800.c 	mdc800->state=NOT_CONNECTED;
mdc800            992 drivers/usb/image/mdc800.c 	mutex_init (&mdc800->io_lock);
mdc800            994 drivers/usb/image/mdc800.c 	init_waitqueue_head (&mdc800->irq_wait);
mdc800            995 drivers/usb/image/mdc800.c 	init_waitqueue_head (&mdc800->write_wait);
mdc800            996 drivers/usb/image/mdc800.c 	init_waitqueue_head (&mdc800->download_wait);
mdc800            998 drivers/usb/image/mdc800.c 	mdc800->irq_woken = 0;
mdc800            999 drivers/usb/image/mdc800.c 	mdc800->downloaded = 0;
mdc800           1000 drivers/usb/image/mdc800.c 	mdc800->written = 0;
mdc800           1002 drivers/usb/image/mdc800.c 	mdc800->irq_urb_buffer=kmalloc (8, GFP_KERNEL);
mdc800           1003 drivers/usb/image/mdc800.c 	if (!mdc800->irq_urb_buffer)
mdc800           1005 drivers/usb/image/mdc800.c 	mdc800->write_urb_buffer=kmalloc (8, GFP_KERNEL);
mdc800           1006 drivers/usb/image/mdc800.c 	if (!mdc800->write_urb_buffer)
mdc800           1008 drivers/usb/image/mdc800.c 	mdc800->download_urb_buffer=kmalloc (64, GFP_KERNEL);
mdc800           1009 drivers/usb/image/mdc800.c 	if (!mdc800->download_urb_buffer)
mdc800           1012 drivers/usb/image/mdc800.c 	mdc800->irq_urb=usb_alloc_urb (0, GFP_KERNEL);
mdc800           1013 drivers/usb/image/mdc800.c 	if (!mdc800->irq_urb)
mdc800           1015 drivers/usb/image/mdc800.c 	mdc800->download_urb=usb_alloc_urb (0, GFP_KERNEL);
mdc800           1016 drivers/usb/image/mdc800.c 	if (!mdc800->download_urb)
mdc800           1018 drivers/usb/image/mdc800.c 	mdc800->write_urb=usb_alloc_urb (0, GFP_KERNEL);
mdc800           1019 drivers/usb/image/mdc800.c 	if (!mdc800->write_urb)
mdc800           1036 drivers/usb/image/mdc800.c 	if (mdc800 != NULL)
mdc800           1040 drivers/usb/image/mdc800.c 		kfree(mdc800->download_urb_buffer);
mdc800           1041 drivers/usb/image/mdc800.c 		kfree(mdc800->write_urb_buffer);
mdc800           1042 drivers/usb/image/mdc800.c 		kfree(mdc800->irq_urb_buffer);
mdc800           1044 drivers/usb/image/mdc800.c 		usb_free_urb(mdc800->write_urb);
mdc800           1045 drivers/usb/image/mdc800.c 		usb_free_urb(mdc800->download_urb);
mdc800           1046 drivers/usb/image/mdc800.c 		usb_free_urb(mdc800->irq_urb);
mdc800           1048 drivers/usb/image/mdc800.c 		kfree (mdc800);
mdc800           1050 drivers/usb/image/mdc800.c 	mdc800 = NULL;
mdc800           1059 drivers/usb/image/mdc800.c 	usb_free_urb (mdc800->irq_urb);
mdc800           1060 drivers/usb/image/mdc800.c 	usb_free_urb (mdc800->download_urb);
mdc800           1061 drivers/usb/image/mdc800.c 	usb_free_urb (mdc800->write_urb);
mdc800           1063 drivers/usb/image/mdc800.c 	kfree (mdc800->irq_urb_buffer);
mdc800           1064 drivers/usb/image/mdc800.c 	kfree (mdc800->write_urb_buffer);
mdc800           1065 drivers/usb/image/mdc800.c 	kfree (mdc800->download_urb_buffer);
mdc800           1067 drivers/usb/image/mdc800.c 	kfree (mdc800);
mdc800           1068 drivers/usb/image/mdc800.c 	mdc800 = NULL;