blob: da4c67e005ed1302a49ad80e3c8e1bcad73995c4 [file] [log] [blame]
Takashi Iwai0984d152016-07-25 15:39:53 +02001#include <linux/fs.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07002
Takashi Iwai0984d152016-07-25 15:39:53 +02003/**
4 * mod_firmware_load - load sound driver firmware
5 * @fn: filename
6 * @fp: return for the buffer.
7 *
8 * Load the firmware for a sound module (up to 128K) into a buffer.
9 * The buffer is returned in *fp. It is allocated with vmalloc so is
10 * virtually linear and not DMAable. The caller should free it with
11 * vfree when finished.
12 *
13 * The length of the buffer is returned on a successful load, the
14 * value zero on a failure.
15 *
16 * Caution: This API is not recommended. Firmware should be loaded via
17 * request_firmware.
18 */
19static inline int mod_firmware_load(const char *fn, char **fp)
20{
21 loff_t size;
22 int err;
23
24 err = kernel_read_file_from_path((char *)fn, (void **)fp, &size,
25 131072, READING_FIRMWARE);
26 if (err < 0)
27 return 0;
28 return size;
29}