#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;
}
