forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/sound/usb/6fire/firmware.c
....@@ -1,3 +1,4 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 * Linux driver for TerraTec DMX 6Fire USB
34 *
....@@ -6,11 +7,6 @@
67 * Author: Torsten Schenk <torsten.schenk@zoho.com>
78 * Created: Jan 01, 2011
89 * Copyright: (C) Torsten Schenk
9
- *
10
- * This program is free software; you can redistribute it and/or modify
11
- * it under the terms of the GNU General Public License as published by
12
- * the Free Software Foundation; either version 2 of the License, or
13
- * (at your option) any later version.
1410 */
1511
1612 #include <linux/firmware.h>
....@@ -162,29 +158,17 @@
162158 static int usb6fire_fw_ezusb_write(struct usb_device *device,
163159 int type, int value, char *data, int len)
164160 {
165
- int ret;
166
-
167
- ret = usb_control_msg(device, usb_sndctrlpipe(device, 0), type,
168
- USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
169
- value, 0, data, len, 1000);
170
- if (ret < 0)
171
- return ret;
172
- else if (ret != len)
173
- return -EIO;
174
- return 0;
161
+ return usb_control_msg_send(device, 0, type,
162
+ USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
163
+ value, 0, data, len, 1000, GFP_KERNEL);
175164 }
176165
177166 static int usb6fire_fw_ezusb_read(struct usb_device *device,
178167 int type, int value, char *data, int len)
179168 {
180
- int ret = usb_control_msg(device, usb_rcvctrlpipe(device, 0), type,
181
- USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, value,
182
- 0, data, len, 1000);
183
- if (ret < 0)
184
- return ret;
185
- else if (ret != len)
186
- return -EIO;
187
- return 0;
169
+ return usb_control_msg_recv(device, 0, type,
170
+ USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
171
+ value, 0, data, len, 1000, GFP_KERNEL);
188172 }
189173
190174 static int usb6fire_fw_fpga_write(struct usb_device *device,
....@@ -234,7 +218,7 @@
234218 /* upload firmware image */
235219 data = 0x01; /* stop ezusb cpu */
236220 ret = usb6fire_fw_ezusb_write(device, 0xa0, 0xe600, &data, 1);
237
- if (ret < 0) {
221
+ if (ret) {
238222 kfree(rec);
239223 release_firmware(fw);
240224 dev_err(&intf->dev,
....@@ -246,7 +230,7 @@
246230 while (usb6fire_fw_ihex_next_record(rec)) { /* write firmware */
247231 ret = usb6fire_fw_ezusb_write(device, 0xa0, rec->address,
248232 rec->data, rec->len);
249
- if (ret < 0) {
233
+ if (ret) {
250234 kfree(rec);
251235 release_firmware(fw);
252236 dev_err(&intf->dev,
....@@ -261,7 +245,7 @@
261245 if (postdata) { /* write data after firmware has been uploaded */
262246 ret = usb6fire_fw_ezusb_write(device, 0xa0, postaddr,
263247 postdata, postlen);
264
- if (ret < 0) {
248
+ if (ret) {
265249 dev_err(&intf->dev,
266250 "unable to upload ezusb firmware %s: post urb.\n",
267251 fwname);
....@@ -271,7 +255,7 @@
271255
272256 data = 0x00; /* resume ezusb cpu */
273257 ret = usb6fire_fw_ezusb_write(device, 0xa0, 0xe600, &data, 1);
274
- if (ret < 0) {
258
+ if (ret) {
275259 dev_err(&intf->dev,
276260 "unable to upload ezusb firmware %s: end message.\n",
277261 fwname);
....@@ -306,7 +290,7 @@
306290 end = fw->data + fw->size;
307291
308292 ret = usb6fire_fw_ezusb_write(device, 8, 0, NULL, 0);
309
- if (ret < 0) {
293
+ if (ret) {
310294 kfree(buffer);
311295 release_firmware(fw);
312296 dev_err(&intf->dev,
....@@ -331,7 +315,7 @@
331315 kfree(buffer);
332316
333317 ret = usb6fire_fw_ezusb_write(device, 9, 0, NULL, 0);
334
- if (ret < 0) {
318
+ if (ret) {
335319 dev_err(&intf->dev,
336320 "unable to upload fpga firmware: end urb.\n");
337321 return ret;
....@@ -367,7 +351,7 @@
367351 u8 buffer[12];
368352
369353 ret = usb6fire_fw_ezusb_read(device, 1, 0, buffer, 8);
370
- if (ret < 0) {
354
+ if (ret) {
371355 dev_err(&intf->dev,
372356 "unable to receive device firmware state.\n");
373357 return ret;