driver.c (8be98d2f2a0a262f8bf8a0bc1fdf522b3c7aab17) | driver.c (f4000b58b64344871d7b27c05e73932f137cfef6) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Line 6 Linux USB driver 4 * 5 * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at) 6 */ 7 8#include <linux/kernel.h> --- 99 unchanged lines hidden (view full) --- 108 const char *frag_buf = buffer + i; 109 int frag_size = min(line6->max_packet_size, size - i); 110 int retval; 111 112 if (properties->capabilities & LINE6_CAP_CONTROL_MIDI) { 113 retval = usb_interrupt_msg(line6->usbdev, 114 usb_sndintpipe(line6->usbdev, properties->ep_ctrl_w), 115 (char *)frag_buf, frag_size, | 1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Line 6 Linux USB driver 4 * 5 * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at) 6 */ 7 8#include <linux/kernel.h> --- 99 unchanged lines hidden (view full) --- 108 const char *frag_buf = buffer + i; 109 int frag_size = min(line6->max_packet_size, size - i); 110 int retval; 111 112 if (properties->capabilities & LINE6_CAP_CONTROL_MIDI) { 113 retval = usb_interrupt_msg(line6->usbdev, 114 usb_sndintpipe(line6->usbdev, properties->ep_ctrl_w), 115 (char *)frag_buf, frag_size, |
116 &partial, LINE6_TIMEOUT * HZ); | 116 &partial, LINE6_TIMEOUT); |
117 } else { 118 retval = usb_bulk_msg(line6->usbdev, 119 usb_sndbulkpipe(line6->usbdev, properties->ep_ctrl_w), 120 (char *)frag_buf, frag_size, | 117 } else { 118 retval = usb_bulk_msg(line6->usbdev, 119 usb_sndbulkpipe(line6->usbdev, properties->ep_ctrl_w), 120 (char *)frag_buf, frag_size, |
121 &partial, LINE6_TIMEOUT * HZ); | 121 &partial, LINE6_TIMEOUT); |
122 } 123 124 if (retval) { 125 dev_err(line6->ifcdev, 126 "usb_bulk_msg failed (%d)\n", retval); 127 break; 128 } 129 --- 212 unchanged lines hidden (view full) --- 342 343 if (address > 0xffff || datalen > 0xff) 344 return -EINVAL; 345 346 /* query the serial number: */ 347 ret = usb_control_msg_send(usbdev, 0, 0x67, 348 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT, 349 (datalen << 8) | 0x21, address, NULL, 0, | 122 } 123 124 if (retval) { 125 dev_err(line6->ifcdev, 126 "usb_bulk_msg failed (%d)\n", retval); 127 break; 128 } 129 --- 212 unchanged lines hidden (view full) --- 342 343 if (address > 0xffff || datalen > 0xff) 344 return -EINVAL; 345 346 /* query the serial number: */ 347 ret = usb_control_msg_send(usbdev, 0, 0x67, 348 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT, 349 (datalen << 8) | 0x21, address, NULL, 0, |
350 LINE6_TIMEOUT * HZ, GFP_KERNEL); | 350 LINE6_TIMEOUT, GFP_KERNEL); |
351 if (ret) { 352 dev_err(line6->ifcdev, "read request failed (error %d)\n", ret); 353 goto exit; 354 } 355 356 /* Wait for data length. We'll get 0xff until length arrives. */ 357 for (count = 0; count < LINE6_READ_WRITE_MAX_RETRIES; count++) { 358 mdelay(LINE6_READ_WRITE_STATUS_DELAY); 359 360 ret = usb_control_msg_recv(usbdev, 0, 0x67, 361 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN, 362 0x0012, 0x0000, &len, 1, | 351 if (ret) { 352 dev_err(line6->ifcdev, "read request failed (error %d)\n", ret); 353 goto exit; 354 } 355 356 /* Wait for data length. We'll get 0xff until length arrives. */ 357 for (count = 0; count < LINE6_READ_WRITE_MAX_RETRIES; count++) { 358 mdelay(LINE6_READ_WRITE_STATUS_DELAY); 359 360 ret = usb_control_msg_recv(usbdev, 0, 0x67, 361 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN, 362 0x0012, 0x0000, &len, 1, |
363 LINE6_TIMEOUT * HZ, GFP_KERNEL); | 363 LINE6_TIMEOUT, GFP_KERNEL); |
364 if (ret) { 365 dev_err(line6->ifcdev, 366 "receive length failed (error %d)\n", ret); 367 goto exit; 368 } 369 370 if (len != 0xff) 371 break; --- 10 unchanged lines hidden (view full) --- 382 "length mismatch (expected %d, got %d)\n", 383 (int)datalen, len); 384 goto exit; 385 } 386 387 /* receive the result: */ 388 ret = usb_control_msg_recv(usbdev, 0, 0x67, 389 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN, | 364 if (ret) { 365 dev_err(line6->ifcdev, 366 "receive length failed (error %d)\n", ret); 367 goto exit; 368 } 369 370 if (len != 0xff) 371 break; --- 10 unchanged lines hidden (view full) --- 382 "length mismatch (expected %d, got %d)\n", 383 (int)datalen, len); 384 goto exit; 385 } 386 387 /* receive the result: */ 388 ret = usb_control_msg_recv(usbdev, 0, 0x67, 389 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN, |
390 0x0013, 0x0000, data, datalen, LINE6_TIMEOUT * HZ, | 390 0x0013, 0x0000, data, datalen, LINE6_TIMEOUT, |
391 GFP_KERNEL); 392 if (ret) 393 dev_err(line6->ifcdev, "read failed (error %d)\n", ret); 394 395exit: 396 return ret; 397} 398EXPORT_SYMBOL_GPL(line6_read_data); --- 13 unchanged lines hidden (view full) --- 412 return -EINVAL; 413 414 status = kmalloc(1, GFP_KERNEL); 415 if (!status) 416 return -ENOMEM; 417 418 ret = usb_control_msg_send(usbdev, 0, 0x67, 419 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT, | 391 GFP_KERNEL); 392 if (ret) 393 dev_err(line6->ifcdev, "read failed (error %d)\n", ret); 394 395exit: 396 return ret; 397} 398EXPORT_SYMBOL_GPL(line6_read_data); --- 13 unchanged lines hidden (view full) --- 412 return -EINVAL; 413 414 status = kmalloc(1, GFP_KERNEL); 415 if (!status) 416 return -ENOMEM; 417 418 ret = usb_control_msg_send(usbdev, 0, 0x67, 419 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_OUT, |
420 0x0022, address, data, datalen, LINE6_TIMEOUT * HZ, | 420 0x0022, address, data, datalen, LINE6_TIMEOUT, |
421 GFP_KERNEL); 422 if (ret) { 423 dev_err(line6->ifcdev, 424 "write request failed (error %d)\n", ret); 425 goto exit; 426 } 427 428 for (count = 0; count < LINE6_READ_WRITE_MAX_RETRIES; count++) { 429 mdelay(LINE6_READ_WRITE_STATUS_DELAY); 430 431 ret = usb_control_msg_recv(usbdev, 0, 0x67, 432 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN, | 421 GFP_KERNEL); 422 if (ret) { 423 dev_err(line6->ifcdev, 424 "write request failed (error %d)\n", ret); 425 goto exit; 426 } 427 428 for (count = 0; count < LINE6_READ_WRITE_MAX_RETRIES; count++) { 429 mdelay(LINE6_READ_WRITE_STATUS_DELAY); 430 431 ret = usb_control_msg_recv(usbdev, 0, 0x67, 432 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN, |
433 0x0012, 0x0000, status, 1, LINE6_TIMEOUT * HZ, | 433 0x0012, 0x0000, status, 1, LINE6_TIMEOUT, |
434 GFP_KERNEL); 435 if (ret) { 436 dev_err(line6->ifcdev, 437 "receiving status failed (error %d)\n", ret); 438 goto exit; 439 } 440 441 if (*status != 0xff) --- 458 unchanged lines hidden --- | 434 GFP_KERNEL); 435 if (ret) { 436 dev_err(line6->ifcdev, 437 "receiving status failed (error %d)\n", ret); 438 goto exit; 439 } 440 441 if (*status != 0xff) --- 458 unchanged lines hidden --- |