[PATCH 15/15] staging: comedi: usbduxsigma: use comedi_load_firmware()

H Hartley Sweeten hsweeten at visionengravers.com
Mon May 20 21:32:29 UTC 2013


Use comedi_load_firmware() instead of duplicating the code in a
private function.

Also, rename firmwareUpload() to have namespace associated with
the driver.

Signed-off-by: H Hartley Sweeten <hsweeten at visionengravers.com>
Cc Ian Abbott <abbotti at mev.co.uk>
Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
---
 drivers/staging/comedi/drivers/usbduxsigma.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/comedi/drivers/usbduxsigma.c b/drivers/staging/comedi/drivers/usbduxsigma.c
index 26357b9..5663197 100644
--- a/drivers/staging/comedi/drivers/usbduxsigma.c
+++ b/drivers/staging/comedi/drivers/usbduxsigma.c
@@ -50,7 +50,7 @@ Status: testing
 #include <linux/usb.h>
 #include <linux/fcntl.h>
 #include <linux/compiler.h>
-#include <linux/firmware.h>
+
 #include "comedi_fc.h"
 #include "../comedidev.h"
 
@@ -670,9 +670,11 @@ static void usbduxsub_ao_IsocIrq(struct urb *urb)
 /* the FX2LP has twice as much as the standard FX2 */
 #define FIRMWARE_MAX_LEN 0x4000
 
-static int firmwareUpload(struct usbduxsub *usbduxsub,
-			  const u8 *data, int size)
+static int usbduxsigma_firmware_upload(struct comedi_device *dev,
+				       const u8 *data, size_t size,
+				       unsigned long context)
 {
+	struct usbduxsub *usbduxsub = dev->private;
 	struct usb_device *usb = usbduxsub->usbdev;
 	uint8_t *buf;
 	uint8_t *tmp;
@@ -2236,16 +2238,15 @@ static int usbduxsigma_auto_attach(struct comedi_device *dev,
 	struct usb_interface *uinterf = comedi_to_usb_interface(dev);
 	struct usbduxsub *uds = usb_get_intfdata(uinterf);
 	struct usb_device *usb = uds->usbdev;
-	const struct firmware *fw;
 	int ret;
 
-	ret = request_firmware(&fw, FIRMWARE, &usb->dev);
-	if (ret == 0) {
-		ret = firmwareUpload(uds, fw->data, fw->size);
-		release_firmware(fw);
-	}
-	if (ret < 0)
+	dev->private = uds;	/* This is temporary... */
+	ret = comedi_load_firmware(dev, &usb->dev, FIRMWARE,
+				   usbduxsigma_firmware_upload, 0);
+	if (ret < 0) {
+		dev->private = NULL;
 		return ret;
+	}
 
 	dev->private = NULL;
 
-- 
1.8.1.4




More information about the devel mailing list