From: H Hartley Sweeten Date: Tue, 14 May 2013 20:39:34 +0000 (-0700) Subject: staging: comedi: usbduxfast: tidy up firmwareUpload() X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=1b4997e60ed6d1f114b722051cd29718d1b8fc91;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git 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 Cc: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 7c23b8e4eb90..6e13f203ae66 100644 --- a/drivers/staging/comedi/drivers/usbduxfast.c +++ b/drivers/staging/comedi/drivers/usbduxfast.c @@ -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;