checks: Update #{size,address}-cells check for 'dma-ranges'
The "dma-ranges" property value is a sequence of child-address parent-address child-size The size of each field is determined by taking the child's "#address-cells" value, the parent's "#address-cells" value, and the child's "#size-cells" value. However, in the following example, it gives a false alarm: +-----------------------------------+---------------------------------------+ | ranges.dts | dma-ranges.dts | +-----------------------------------+---------------------------------------+ | /dts-v1/; | /dts-v1/; | | | | | /{ | /{ | | #address-cells = <1>; | #address-cells = <1>; | | | | | parent { | parent { | | #address-cells = <1>; | #address-cells = <1>; | | #size-cells = <1>; | #size-cells = <1>; | | ranges = <0x0 0xe000 0x1000>; | dma-ranges = <0x0 0xe000 0x1000>; | | child { | child { | | ... | ... | | }; | }; | | }; | }; | | }; | }; | +-----------------------------------+---------------------------------------+ | no warning | Warning (avoid_unnecessary_addr_size) | +-----------------------------------+---------------------------------------+ Same as "ranges", it should not be reported in this check. Signed-off-by: Qun-Wei Lin <qun-wei.lin@mediatek.com> Message-Id: <20230112125654.13390-1-qun-wei.lin@mediatek.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
abbd523bae
commit
2022bb1087
1 changed files with 2 additions and 2 deletions
4
checks.c
4
checks.c
|
@ -1222,7 +1222,7 @@ static void check_avoid_unnecessary_addr_size(struct check *c, struct dt_info *d
|
||||||
if (!node->parent || node->addr_cells < 0 || node->size_cells < 0)
|
if (!node->parent || node->addr_cells < 0 || node->size_cells < 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (get_property(node, "ranges") || !node->children)
|
if (get_property(node, "ranges") || get_property(node, "dma-ranges") || !node->children)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for_each_child(node, child) {
|
for_each_child(node, child) {
|
||||||
|
@ -1232,7 +1232,7 @@ static void check_avoid_unnecessary_addr_size(struct check *c, struct dt_info *d
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!has_reg)
|
if (!has_reg)
|
||||||
FAIL(c, dti, node, "unnecessary #address-cells/#size-cells without \"ranges\" or child \"reg\" property");
|
FAIL(c, dti, node, "unnecessary #address-cells/#size-cells without \"ranges\", \"dma-ranges\" or child \"reg\" property");
|
||||||
}
|
}
|
||||||
WARNING(avoid_unnecessary_addr_size, check_avoid_unnecessary_addr_size, NULL, &avoid_default_addr_size);
|
WARNING(avoid_unnecessary_addr_size, check_avoid_unnecessary_addr_size, NULL, &avoid_default_addr_size);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue