sound: oss: Use kernel_read_file_from_path() for mod_firmware_load()
[sfrench/cifs-2.6.git] / sound / oss / sound_firmware.h
index 0a0cbfdfb855679565369ac1a5fde3fdcf32bd96..da4c67e005ed1302a49ad80e3c8e1bcad73995c4 100644 (file)
@@ -1,2 +1,29 @@
-extern int mod_firmware_load(const char *fn, char **fp);
+#include <linux/fs.h>
 
+/**
+ *     mod_firmware_load - load sound driver firmware
+ *     @fn: filename
+ *     @fp: return for the buffer.
+ *
+ *     Load the firmware for a sound module (up to 128K) into a buffer.
+ *     The buffer is returned in *fp. It is allocated with vmalloc so is
+ *     virtually linear and not DMAable. The caller should free it with
+ *     vfree when finished.
+ *
+ *     The length of the buffer is returned on a successful load, the
+ *     value zero on a failure.
+ *
+ *     Caution: This API is not recommended. Firmware should be loaded via
+ *     request_firmware.
+ */
+static inline int mod_firmware_load(const char *fn, char **fp)
+{
+       loff_t size;
+       int err;
+
+       err = kernel_read_file_from_path((char *)fn, (void **)fp, &size,
+                                        131072, READING_FIRMWARE);
+       if (err < 0)
+               return 0;
+       return size;
+}