include/linux/firmware.h: Check for FW_ACTION_HOTPLUG.
authorIan Abbott <abbotti@mev.co.uk>
Thu, 31 May 2012 10:08:55 +0000 (11:08 +0100)
committerIan Abbott <abbotti@mev.co.uk>
Thu, 31 May 2012 10:08:55 +0000 (11:08 +0100)
The FW_ACTION_HOTPLUG and FW_ACTION_NOHOTPLUG macros, and the 'hotplug'
(later renamed 'uevent') parameter of request_firmware_nowait() were
added in vanilla kernel 2.6.14.  Update the include/linux/firmware.h
compatibility code to work with kernels prior to 2.6.14.  If
FW_ACTION_HOTPLUG is not defined, omit the uevent parameter and define
FW_ACTION_HOTPLUG and FW_ACTION_NOHOTPLUG.  The uevent parameter will be
ignored for these older kernels so FW_ACTION_NOHOTPLUG will behave just
like FW_ACTION_HOTPLUG for these older kernels.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
include/linux/firmware.h

index 514b86304f5d141dd30bf509a45317dcb8d333d7..2f87c5be1e3bfc99b5ada7b9ab6c3ffbaaf947ce 100644 (file)
@@ -24,8 +24,13 @@ static inline int comedi_internal_request_firmware_nowait(
        const char *name, struct device *device, unsigned gfp, void *context,
        void (*cont)(const struct firmware *fw, void *context))
 {
+#ifdef FW_ACTION_HOTPLUG
        return request_firmware_nowait(
                        module, uevent, name, device, context, cont);
+#else
+       return request_firmware_nowait(
+                       module, name, device, context, cont);
+#endif
 }
 
 #undef request_firmware_nowait
@@ -38,4 +43,15 @@ static inline int comedi_internal_request_firmware_nowait(
 #define COMEDI_RELEASE_FIRMWARE_NOWAIT(fw)     do; while (0)
 #endif
 
+/*
+ * FW_ACTION_HOTPLUG and FW_ACTION_NOHOTPLUG and the uevent/hotplug parameter
+ * of request_firmware_nowait() were added in vanilla kernel 2.6.14.  We've
+ * already dealt with the missing parameter above, but define the missing
+ * values below.  Comedi drivers would normally use FW_ACTION_HOTPLUG.
+ */
+#ifndef FW_ACTION_HOTPLUG
+#define FW_ACTION_NOHOTPLUG 0
+#define FW_ACTION_HOTPLUG 1
+#endif
+
 #endif