Takashi Iwai | 0984d15 | 2016-07-25 15:39:53 +0200 | [diff] [blame] | 1 | #include <linux/fs.h> |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 2 | |
Takashi Iwai | 0984d15 | 2016-07-25 15:39:53 +0200 | [diff] [blame] | 3 | /** |
| 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 | */ |
| 19 | static 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 | } |