|
@@ -346,6 +346,7 @@ static __initdata struct {
|
|
|
|
|
|
struct param_info {
|
|
struct param_info {
|
|
int verbose;
|
|
int verbose;
|
|
|
|
+ int found;
|
|
void *params;
|
|
void *params;
|
|
};
|
|
};
|
|
|
|
|
|
@@ -362,16 +363,12 @@ static int __init fdt_find_uefi_params(unsigned long node, const char *uname,
|
|
(strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0))
|
|
(strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0))
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
- pr_info("Getting parameters from FDT:\n");
|
|
|
|
-
|
|
|
|
for (i = 0; i < ARRAY_SIZE(dt_params); i++) {
|
|
for (i = 0; i < ARRAY_SIZE(dt_params); i++) {
|
|
prop = of_get_flat_dt_prop(node, dt_params[i].propname, &len);
|
|
prop = of_get_flat_dt_prop(node, dt_params[i].propname, &len);
|
|
- if (!prop) {
|
|
|
|
- pr_err("Can't find %s in device tree!\n",
|
|
|
|
- dt_params[i].name);
|
|
|
|
|
|
+ if (!prop)
|
|
return 0;
|
|
return 0;
|
|
- }
|
|
|
|
dest = info->params + dt_params[i].offset;
|
|
dest = info->params + dt_params[i].offset;
|
|
|
|
+ info->found++;
|
|
|
|
|
|
val = of_read_number(prop, len / sizeof(u32));
|
|
val = of_read_number(prop, len / sizeof(u32));
|
|
|
|
|
|
@@ -390,10 +387,21 @@ static int __init fdt_find_uefi_params(unsigned long node, const char *uname,
|
|
int __init efi_get_fdt_params(struct efi_fdt_params *params, int verbose)
|
|
int __init efi_get_fdt_params(struct efi_fdt_params *params, int verbose)
|
|
{
|
|
{
|
|
struct param_info info;
|
|
struct param_info info;
|
|
|
|
+ int ret;
|
|
|
|
+
|
|
|
|
+ pr_info("Getting EFI parameters from FDT:\n");
|
|
|
|
|
|
info.verbose = verbose;
|
|
info.verbose = verbose;
|
|
|
|
+ info.found = 0;
|
|
info.params = params;
|
|
info.params = params;
|
|
|
|
|
|
- return of_scan_flat_dt(fdt_find_uefi_params, &info);
|
|
|
|
|
|
+ ret = of_scan_flat_dt(fdt_find_uefi_params, &info);
|
|
|
|
+ if (!info.found)
|
|
|
|
+ pr_info("UEFI not found.\n");
|
|
|
|
+ else if (!ret)
|
|
|
|
+ pr_err("Can't find '%s' in device tree!\n",
|
|
|
|
+ dt_params[info.found].name);
|
|
|
|
+
|
|
|
|
+ return ret;
|
|
}
|
|
}
|
|
#endif /* CONFIG_EFI_PARAMS_FROM_FDT */
|
|
#endif /* CONFIG_EFI_PARAMS_FROM_FDT */
|