sur40             238 drivers/input/touchscreen/sur40.c static void sur40_process_video(struct sur40_state *sur40);
sur40             390 drivers/input/touchscreen/sur40.c 	struct sur40_state *sur40 = polldev->private;
sur40             392 drivers/input/touchscreen/sur40.c 	dev_dbg(sur40->dev, "open\n");
sur40             393 drivers/input/touchscreen/sur40.c 	sur40_init(sur40);
sur40             399 drivers/input/touchscreen/sur40.c 	struct sur40_state *sur40 = polldev->private;
sur40             401 drivers/input/touchscreen/sur40.c 	dev_dbg(sur40->dev, "close\n");
sur40             453 drivers/input/touchscreen/sur40.c 	struct sur40_state *sur40 = polldev->private;
sur40             458 drivers/input/touchscreen/sur40.c 	struct sur40_header *header = &sur40->bulk_in_buffer->header;
sur40             459 drivers/input/touchscreen/sur40.c 	struct sur40_blob *inblob = &sur40->bulk_in_buffer->blobs[0];
sur40             461 drivers/input/touchscreen/sur40.c 	dev_dbg(sur40->dev, "poll\n");
sur40             468 drivers/input/touchscreen/sur40.c 		result = usb_bulk_msg(sur40->usbdev,
sur40             469 drivers/input/touchscreen/sur40.c 			usb_rcvbulkpipe(sur40->usbdev, sur40->bulk_in_epaddr),
sur40             470 drivers/input/touchscreen/sur40.c 			sur40->bulk_in_buffer, sur40->bulk_in_size,
sur40             473 drivers/input/touchscreen/sur40.c 		dev_dbg(sur40->dev, "received %d bytes\n", bulk_read);
sur40             476 drivers/input/touchscreen/sur40.c 			dev_err(sur40->dev, "error in usb_bulk_read\n");
sur40             483 drivers/input/touchscreen/sur40.c 			dev_err(sur40->dev, "transfer size mismatch\n");
sur40             490 drivers/input/touchscreen/sur40.c 			dev_dbg(sur40->dev, "need %d blobs\n", need_blobs);
sur40             506 drivers/input/touchscreen/sur40.c 		dev_dbg(sur40->dev, "received %d blobs\n", packet_blobs);
sur40             514 drivers/input/touchscreen/sur40.c 			dev_dbg(sur40->dev, "processing blob\n");
sur40             523 drivers/input/touchscreen/sur40.c 	sur40_process_video(sur40);
sur40             527 drivers/input/touchscreen/sur40.c static void sur40_process_video(struct sur40_state *sur40)
sur40             530 drivers/input/touchscreen/sur40.c 	struct sur40_image_header *img = (void *)(sur40->bulk_in_buffer);
sur40             536 drivers/input/touchscreen/sur40.c 	if (!vb2_start_streaming_called(&sur40->queue))
sur40             540 drivers/input/touchscreen/sur40.c 	spin_lock(&sur40->qlock);
sur40             541 drivers/input/touchscreen/sur40.c 	if (list_empty(&sur40->buf_list)) {
sur40             542 drivers/input/touchscreen/sur40.c 		dev_dbg(sur40->dev, "buffer queue empty\n");
sur40             543 drivers/input/touchscreen/sur40.c 		spin_unlock(&sur40->qlock);
sur40             546 drivers/input/touchscreen/sur40.c 	new_buf = list_entry(sur40->buf_list.next, struct sur40_buffer, list);
sur40             548 drivers/input/touchscreen/sur40.c 	spin_unlock(&sur40->qlock);
sur40             550 drivers/input/touchscreen/sur40.c 	dev_dbg(sur40->dev, "buffer acquired\n");
sur40             553 drivers/input/touchscreen/sur40.c 	result = usb_bulk_msg(sur40->usbdev,
sur40             554 drivers/input/touchscreen/sur40.c 			usb_rcvbulkpipe(sur40->usbdev, VIDEO_ENDPOINT),
sur40             555 drivers/input/touchscreen/sur40.c 			sur40->bulk_in_buffer, sur40->bulk_in_size,
sur40             559 drivers/input/touchscreen/sur40.c 		dev_err(sur40->dev, "error in usb_bulk_read\n");
sur40             564 drivers/input/touchscreen/sur40.c 		dev_err(sur40->dev, "received %d bytes (%zd expected)\n",
sur40             570 drivers/input/touchscreen/sur40.c 		dev_err(sur40->dev, "image magic mismatch\n");
sur40             574 drivers/input/touchscreen/sur40.c 	if (le32_to_cpu(img->size) != sur40->pix_fmt.sizeimage) {
sur40             575 drivers/input/touchscreen/sur40.c 		dev_err(sur40->dev, "image size mismatch\n");
sur40             579 drivers/input/touchscreen/sur40.c 	dev_dbg(sur40->dev, "header acquired\n");
sur40             583 drivers/input/touchscreen/sur40.c 	result = usb_sg_init(&sgr, sur40->usbdev,
sur40             584 drivers/input/touchscreen/sur40.c 		usb_rcvbulkpipe(sur40->usbdev, VIDEO_ENDPOINT), 0,
sur40             585 drivers/input/touchscreen/sur40.c 		sgt->sgl, sgt->nents, sur40->pix_fmt.sizeimage, 0);
sur40             587 drivers/input/touchscreen/sur40.c 		dev_err(sur40->dev, "error %d in usb_sg_init\n", result);
sur40             593 drivers/input/touchscreen/sur40.c 		dev_err(sur40->dev, "error %d in usb_sg_wait\n", sgr.status);
sur40             597 drivers/input/touchscreen/sur40.c 	dev_dbg(sur40->dev, "image acquired\n");
sur40             600 drivers/input/touchscreen/sur40.c 	if (sur40->sequence == -1)
sur40             605 drivers/input/touchscreen/sur40.c 	new_buf->vb.sequence = sur40->sequence++;
sur40             608 drivers/input/touchscreen/sur40.c 	dev_dbg(sur40->dev, "buffer marked done\n");
sur40             649 drivers/input/touchscreen/sur40.c 	struct sur40_state *sur40;
sur40             669 drivers/input/touchscreen/sur40.c 	sur40 = kzalloc(sizeof(struct sur40_state), GFP_KERNEL);
sur40             670 drivers/input/touchscreen/sur40.c 	if (!sur40)
sur40             680 drivers/input/touchscreen/sur40.c 	INIT_LIST_HEAD(&sur40->buf_list);
sur40             681 drivers/input/touchscreen/sur40.c 	spin_lock_init(&sur40->qlock);
sur40             682 drivers/input/touchscreen/sur40.c 	mutex_init(&sur40->lock);
sur40             685 drivers/input/touchscreen/sur40.c 	poll_dev->private = sur40;
sur40             696 drivers/input/touchscreen/sur40.c 	usb_make_path(usbdev, sur40->phys, sizeof(sur40->phys));
sur40             697 drivers/input/touchscreen/sur40.c 	strlcat(sur40->phys, "/input0", sizeof(sur40->phys));
sur40             698 drivers/input/touchscreen/sur40.c 	poll_dev->input->phys = sur40->phys;
sur40             701 drivers/input/touchscreen/sur40.c 	sur40->usbdev = usbdev;
sur40             702 drivers/input/touchscreen/sur40.c 	sur40->dev = &interface->dev;
sur40             703 drivers/input/touchscreen/sur40.c 	sur40->input = poll_dev;
sur40             706 drivers/input/touchscreen/sur40.c 	sur40->bulk_in_size = usb_endpoint_maxp(endpoint);
sur40             707 drivers/input/touchscreen/sur40.c 	sur40->bulk_in_epaddr = endpoint->bEndpointAddress;
sur40             708 drivers/input/touchscreen/sur40.c 	sur40->bulk_in_buffer = kmalloc(sur40->bulk_in_size, GFP_KERNEL);
sur40             709 drivers/input/touchscreen/sur40.c 	if (!sur40->bulk_in_buffer) {
sur40             724 drivers/input/touchscreen/sur40.c 	snprintf(sur40->v4l2.name, sizeof(sur40->v4l2.name), "%s", DRIVER_LONG);
sur40             725 drivers/input/touchscreen/sur40.c 	error = v4l2_device_register(sur40->dev, &sur40->v4l2);
sur40             733 drivers/input/touchscreen/sur40.c 	sur40->queue = sur40_queue;
sur40             734 drivers/input/touchscreen/sur40.c 	sur40->queue.drv_priv = sur40;
sur40             735 drivers/input/touchscreen/sur40.c 	sur40->queue.lock = &sur40->lock;
sur40             736 drivers/input/touchscreen/sur40.c 	sur40->queue.dev = sur40->dev;
sur40             739 drivers/input/touchscreen/sur40.c 	error = vb2_queue_init(&sur40->queue);
sur40             743 drivers/input/touchscreen/sur40.c 	sur40->pix_fmt = sur40_pix_format[0];
sur40             744 drivers/input/touchscreen/sur40.c 	sur40->vdev = sur40_video_device;
sur40             745 drivers/input/touchscreen/sur40.c 	sur40->vdev.v4l2_dev = &sur40->v4l2;
sur40             746 drivers/input/touchscreen/sur40.c 	sur40->vdev.lock = &sur40->lock;
sur40             747 drivers/input/touchscreen/sur40.c 	sur40->vdev.queue = &sur40->queue;
sur40             748 drivers/input/touchscreen/sur40.c 	video_set_drvdata(&sur40->vdev, sur40);
sur40             751 drivers/input/touchscreen/sur40.c 	v4l2_ctrl_handler_init(&sur40->hdl, 4);
sur40             752 drivers/input/touchscreen/sur40.c 	sur40->v4l2.ctrl_handler = &sur40->hdl;
sur40             753 drivers/input/touchscreen/sur40.c 	sur40->vsvideo = (SUR40_CONTRAST_DEF << 4) | SUR40_GAIN_DEF;
sur40             755 drivers/input/touchscreen/sur40.c 	v4l2_ctrl_new_std(&sur40->hdl, &sur40_ctrl_ops, V4L2_CID_BRIGHTNESS,
sur40             759 drivers/input/touchscreen/sur40.c 	v4l2_ctrl_new_std(&sur40->hdl, &sur40_ctrl_ops, V4L2_CID_CONTRAST,
sur40             763 drivers/input/touchscreen/sur40.c 	v4l2_ctrl_new_std(&sur40->hdl, &sur40_ctrl_ops, V4L2_CID_GAIN,
sur40             767 drivers/input/touchscreen/sur40.c 	v4l2_ctrl_new_std(&sur40->hdl, &sur40_ctrl_ops,
sur40             771 drivers/input/touchscreen/sur40.c 	v4l2_ctrl_handler_setup(&sur40->hdl);
sur40             773 drivers/input/touchscreen/sur40.c 	if (sur40->hdl.error) {
sur40             776 drivers/input/touchscreen/sur40.c 		v4l2_ctrl_handler_free(&sur40->hdl);
sur40             780 drivers/input/touchscreen/sur40.c 	error = video_register_device(&sur40->vdev, VFL_TYPE_TOUCH, -1);
sur40             788 drivers/input/touchscreen/sur40.c 	usb_set_intfdata(interface, sur40);
sur40             794 drivers/input/touchscreen/sur40.c 	video_unregister_device(&sur40->vdev);
sur40             796 drivers/input/touchscreen/sur40.c 	v4l2_device_unregister(&sur40->v4l2);
sur40             798 drivers/input/touchscreen/sur40.c 	kfree(sur40->bulk_in_buffer);
sur40             800 drivers/input/touchscreen/sur40.c 	input_free_polled_device(sur40->input);
sur40             802 drivers/input/touchscreen/sur40.c 	kfree(sur40);
sur40             810 drivers/input/touchscreen/sur40.c 	struct sur40_state *sur40 = usb_get_intfdata(interface);
sur40             812 drivers/input/touchscreen/sur40.c 	v4l2_ctrl_handler_free(&sur40->hdl);
sur40             813 drivers/input/touchscreen/sur40.c 	video_unregister_device(&sur40->vdev);
sur40             814 drivers/input/touchscreen/sur40.c 	v4l2_device_unregister(&sur40->v4l2);
sur40             816 drivers/input/touchscreen/sur40.c 	input_unregister_polled_device(sur40->input);
sur40             817 drivers/input/touchscreen/sur40.c 	input_free_polled_device(sur40->input);
sur40             818 drivers/input/touchscreen/sur40.c 	kfree(sur40->bulk_in_buffer);
sur40             819 drivers/input/touchscreen/sur40.c 	kfree(sur40);
sur40             836 drivers/input/touchscreen/sur40.c 	struct sur40_state *sur40 = vb2_get_drv_priv(q);
sur40             842 drivers/input/touchscreen/sur40.c 		return sizes[0] < sur40->pix_fmt.sizeimage ? -EINVAL : 0;
sur40             845 drivers/input/touchscreen/sur40.c 	sizes[0] = sur40->pix_fmt.sizeimage;
sur40             856 drivers/input/touchscreen/sur40.c 	struct sur40_state *sur40 = vb2_get_drv_priv(vb->vb2_queue);
sur40             857 drivers/input/touchscreen/sur40.c 	unsigned long size = sur40->pix_fmt.sizeimage;
sur40             860 drivers/input/touchscreen/sur40.c 		dev_err(&sur40->usbdev->dev, "buffer too small (%lu < %lu)\n",
sur40             874 drivers/input/touchscreen/sur40.c 	struct sur40_state *sur40 = vb2_get_drv_priv(vb->vb2_queue);
sur40             877 drivers/input/touchscreen/sur40.c 	spin_lock(&sur40->qlock);
sur40             878 drivers/input/touchscreen/sur40.c 	list_add_tail(&buf->list, &sur40->buf_list);
sur40             879 drivers/input/touchscreen/sur40.c 	spin_unlock(&sur40->qlock);
sur40             882 drivers/input/touchscreen/sur40.c static void return_all_buffers(struct sur40_state *sur40,
sur40             887 drivers/input/touchscreen/sur40.c 	spin_lock(&sur40->qlock);
sur40             888 drivers/input/touchscreen/sur40.c 	list_for_each_entry_safe(buf, node, &sur40->buf_list, list) {
sur40             892 drivers/input/touchscreen/sur40.c 	spin_unlock(&sur40->qlock);
sur40             903 drivers/input/touchscreen/sur40.c 	struct sur40_state *sur40 = vb2_get_drv_priv(vq);
sur40             905 drivers/input/touchscreen/sur40.c 	sur40->sequence = 0;
sur40             915 drivers/input/touchscreen/sur40.c 	struct sur40_state *sur40 = vb2_get_drv_priv(vq);
sur40             917 drivers/input/touchscreen/sur40.c 	sur40->sequence = -1;
sur40             920 drivers/input/touchscreen/sur40.c 	return_all_buffers(sur40, VB2_BUF_STATE_ERROR);
sur40             927 drivers/input/touchscreen/sur40.c 	struct sur40_state *sur40 = video_drvdata(file);
sur40             931 drivers/input/touchscreen/sur40.c 	usb_make_path(sur40->usbdev, cap->bus_info, sizeof(cap->bus_info));
sur40             977 drivers/input/touchscreen/sur40.c 	struct sur40_state *sur40 = video_drvdata(file);
sur40             981 drivers/input/touchscreen/sur40.c 		sur40->pix_fmt = sur40_pix_format[1];
sur40             985 drivers/input/touchscreen/sur40.c 		sur40->pix_fmt = sur40_pix_format[0];
sur40             989 drivers/input/touchscreen/sur40.c 	f->fmt.pix = sur40->pix_fmt;
sur40             996 drivers/input/touchscreen/sur40.c 	struct sur40_state *sur40 = video_drvdata(file);
sur40             998 drivers/input/touchscreen/sur40.c 	f->fmt.pix = sur40->pix_fmt;
sur40            1004 drivers/input/touchscreen/sur40.c 	struct sur40_state *sur40  = container_of(ctrl->handler,
sur40            1006 drivers/input/touchscreen/sur40.c 	u8 value = sur40->vsvideo;
sur40            1010 drivers/input/touchscreen/sur40.c 		sur40_set_irlevel(sur40, ctrl->val);
sur40            1014 drivers/input/touchscreen/sur40.c 		sur40_set_vsvideo(sur40, value);
sur40            1018 drivers/input/touchscreen/sur40.c 		sur40_set_vsvideo(sur40, value);
sur40            1021 drivers/input/touchscreen/sur40.c 		sur40_set_preprocessor(sur40, ctrl->val);
sur40            1054 drivers/input/touchscreen/sur40.c 	struct sur40_state *sur40 = video_drvdata(file);
sur40            1061 drivers/input/touchscreen/sur40.c 	f->discrete.width  = sur40->pix_fmt.width;
sur40            1062 drivers/input/touchscreen/sur40.c 	f->discrete.height = sur40->pix_fmt.height;
sur40            1069 drivers/input/touchscreen/sur40.c 	struct sur40_state *sur40 = video_drvdata(file);
sur40            1073 drivers/input/touchscreen/sur40.c 		|| (f->width  != sur40->pix_fmt.width)
sur40            1074 drivers/input/touchscreen/sur40.c 		|| (f->height != sur40->pix_fmt.height))