staging: comedi: usbduxfast: tidy up firmwareUpload()
Rename the CamelCase function and just pass the const struct firmware * directly instead of parsing out the data and size. Rename the CamelCasae local val 'fwBuf'. Use goto to provide a common exit path that frees the local buffer for the firmware when an error is encountered. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
060f2154d3
commit
1b4997e60e
@ -1123,48 +1123,43 @@ static int usbduxfast_ai_insn_read(struct comedi_device *dev,
|
||||
|
||||
#define FIRMWARE_MAX_LEN 0x2000
|
||||
|
||||
static int firmwareUpload(struct comedi_device *dev,
|
||||
const u8 *firmwareBinary, int sizeFirmware)
|
||||
static int usbduxfast_upload_firmware(struct comedi_device *dev,
|
||||
const struct firmware *fw)
|
||||
{
|
||||
uint8_t *fwBuf;
|
||||
uint8_t *buf;
|
||||
int ret;
|
||||
|
||||
if (!firmwareBinary)
|
||||
if (!fw->data)
|
||||
return 0;
|
||||
|
||||
if (sizeFirmware > FIRMWARE_MAX_LEN) {
|
||||
if (fw->size > FIRMWARE_MAX_LEN) {
|
||||
dev_err(dev->class_dev, "firmware binary too large for FX2\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
/* we generate a local buffer for the firmware */
|
||||
fwBuf = kmemdup(firmwareBinary, sizeFirmware, GFP_KERNEL);
|
||||
if (!fwBuf) {
|
||||
dev_err(dev->class_dev, "mem alloc for firmware failed\n");
|
||||
buf = kmemdup(fw->data, fw->size, GFP_KERNEL);
|
||||
if (!buf)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
ret = usbduxfastsub_stop(dev);
|
||||
if (ret < 0) {
|
||||
dev_err(dev->class_dev, "can not stop firmware\n");
|
||||
kfree(fwBuf);
|
||||
return ret;
|
||||
goto done;
|
||||
}
|
||||
|
||||
ret = usbduxfastsub_upload(dev, fwBuf, 0, sizeFirmware);
|
||||
ret = usbduxfastsub_upload(dev, buf, 0, fw->size);
|
||||
if (ret < 0) {
|
||||
dev_err(dev->class_dev, "firmware upload failed\n");
|
||||
kfree(fwBuf);
|
||||
return ret;
|
||||
goto done;
|
||||
}
|
||||
ret = usbduxfastsub_start(dev);
|
||||
if (ret < 0) {
|
||||
if (ret < 0)
|
||||
dev_err(dev->class_dev, "can not start firmware\n");
|
||||
kfree(fwBuf);
|
||||
return ret;
|
||||
}
|
||||
kfree(fwBuf);
|
||||
return 0;
|
||||
|
||||
done:
|
||||
kfree(buf);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int usbduxfast_attach_common(struct comedi_device *dev)
|
||||
@ -1211,7 +1206,7 @@ static int usbduxfast_request_firmware(struct comedi_device *dev)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = firmwareUpload(dev, fw->data, fw->size);
|
||||
ret = usbduxfast_upload_firmware(dev, fw);
|
||||
release_firmware(fw);
|
||||
|
||||
return ret;
|
||||
|
Loading…
Reference in New Issue
Block a user