firmware: ti_sci: Parse all resource ranges even if some is not available
Do not fail if any of the requested subtypes are not available, but set the number of resources to 0 and continue parsing the resource ranges. Based on Linux kernel patch by Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com> Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
This commit is contained in:
parent
51cd1e2373
commit
c659a979ea
@ -3170,6 +3170,7 @@ devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle,
|
||||
u32 resource_subtype;
|
||||
u16 resource_type;
|
||||
struct ti_sci_resource *res;
|
||||
bool valid_set = false;
|
||||
int sets, i, ret;
|
||||
u32 *temp;
|
||||
|
||||
@ -3209,12 +3210,15 @@ devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle,
|
||||
&res->desc[i].start,
|
||||
&res->desc[i].num);
|
||||
if (ret) {
|
||||
dev_err(dev, "type %d subtype %d not allocated for host %d\n",
|
||||
dev_dbg(dev, "type %d subtype %d not allocated for host %d\n",
|
||||
resource_type, resource_subtype,
|
||||
handle_to_ti_sci_info(handle)->host_id);
|
||||
return ERR_PTR(ret);
|
||||
res->desc[i].start = 0;
|
||||
res->desc[i].num = 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
valid_set = true;
|
||||
dev_dbg(dev, "res type = %d, subtype = %d, start = %d, num = %d\n",
|
||||
resource_type, resource_subtype, res->desc[i].start,
|
||||
res->desc[i].num);
|
||||
@ -3226,7 +3230,10 @@ devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle,
|
||||
return ERR_PTR(-ENOMEM);
|
||||
}
|
||||
|
||||
if (valid_set)
|
||||
return res;
|
||||
|
||||
return ERR_PTR(-EINVAL);
|
||||
}
|
||||
|
||||
/* Description for K2G */
|
||||
|
Loading…
Reference in New Issue
Block a user