]>
Commit | Line | Data |
---|---|---|
62030004 TFC |
1 | /* |
2 | * Copyright (C) 2018 Intel Corporation <www.intel.com> | |
3 | * | |
4 | * SPDX-License-Identifier: GPL-2.0 | |
5 | */ | |
6 | #ifndef _FS_LOADER_H_ | |
7 | #define _FS_LOADER_H_ | |
8 | ||
9 | #include <dm.h> | |
10 | ||
11 | /** | |
12 | * struct firmware - A place for storing firmware and its attribute data. | |
13 | * | |
14 | * This holds information about a firmware and its content. | |
15 | * | |
16 | * @size: Size of a file | |
17 | * @data: Buffer for file | |
18 | * @priv: Firmware loader private fields | |
19 | */ | |
20 | struct firmware { | |
21 | size_t size; | |
22 | const u8 *data; | |
23 | void *priv; | |
24 | }; | |
25 | ||
26 | /** | |
27 | * struct phandle_part - A place for storing phandle of node and its partition | |
28 | * | |
29 | * This holds information about a phandle of the block device, and its | |
30 | * partition where the firmware would be loaded from. | |
31 | * | |
32 | * @phandle: Phandle of storage device node | |
33 | * @partition: Partition of block device | |
34 | */ | |
35 | struct phandle_part { | |
36 | u32 phandle; | |
37 | u32 partition; | |
38 | }; | |
39 | ||
40 | /** | |
41 | * struct phandle_part - A place for storing all supported storage devices | |
42 | * | |
43 | * This holds information about all supported storage devices for driver use. | |
44 | * | |
45 | * @phandlepart: Attribute data for block device. | |
46 | * @mtdpart: MTD partition for ubi partition. | |
47 | * @ubivol: UBI volume-name for ubifsmount. | |
48 | */ | |
49 | struct device_platdata { | |
50 | struct phandle_part phandlepart; | |
51 | char *mtdpart; | |
52 | char *ubivol; | |
53 | }; | |
54 | ||
55 | /** | |
56 | * release_firmware - Release the resource associated with a firmware image | |
57 | * @firmware: Firmware resource to release | |
58 | */ | |
59 | void release_firmware(struct firmware *firmware); | |
60 | ||
61 | /** | |
62 | * request_firmware_into_buf - Load firmware into a previously allocated buffer. | |
63 | * @plat: Platform data such as storage and partition firmware loading from. | |
64 | * @name: Name of firmware file. | |
65 | * @buf: Address of buffer to load firmware into. | |
66 | * @size: Size of buffer. | |
67 | * @offset: Offset of a file for start reading into buffer. | |
68 | * @firmwarep: Pointer to firmware image. | |
69 | * | |
70 | * The firmware is loaded directly into the buffer pointed to by @buf and | |
71 | * the @firmwarep data member is pointed at @buf. | |
72 | * | |
73 | * Return: Size of total read, negative value when error. | |
74 | */ | |
75 | int request_firmware_into_buf(struct device_platdata *plat, | |
76 | const char *name, | |
77 | void *buf, size_t size, u32 offset, | |
78 | struct firmware **firmwarep); | |
79 | #endif |