Skip to content

Commit d43fef7

Browse files
committed
overlaycheck: Add -t (try all/thorough)
In try all/thorough mode, attempt to apply all overlays to all base files. This will greatly increase the run time.
1 parent 4e3333c commit d43fef7

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

overlaycheck/overlaycheck

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ my $readme_param_pattern = '([-_a-zA-Z0-9]|<[a-z]>|<[a-z]-[a-z]>)*';
4343

4444
my $verbose;
4545
my $strict_dtc;
46+
my $try_all;
4647
my $fail = 0;
4748

4849
while (@ARGV && $ARGV[0] =~ /^-/)
@@ -56,6 +57,10 @@ while (@ARGV && $ARGV[0] =~ /^-/)
5657
{
5758
$strict_dtc = 1;
5859
}
60+
elsif ($arg eq '-t')
61+
{
62+
$try_all = 1;
63+
}
5964
else
6065
{
6166
fatal_error("Unknown option '$arg'");
@@ -218,21 +223,23 @@ foreach my $overlay (sort(keys(%$source)))
218223
dtc_cpp("${overlay}-overlay.dts", "$TMPDIR/$overlay.dtbo");
219224
}
220225

221-
foreach my $overlay (sort(keys(%$source)))
226+
if ($try_all)
222227
{
223-
next if ($overlay =~ /^</);
224-
my $overlay_props = $source->{$overlay}[0];
225-
foreach my $base (@base_files)
228+
foreach my $overlay (sort(keys(%$source)))
226229
{
227-
next if (!-f "$base.dts");
228-
next if (($overlay =~ /(wifi|bt)/) && ($base !~ /^(bcm2708-rpi-zero-w|bcm2709-rpi-zero-2|bcm2710-rpi-3-|bcm2711-rpi-4-)/));
229-
230-
next if ($overlay_props->{'bcm2711'} && $base !~ /^bcm2711/);
231-
next if (system("$DTMERGE $TMPDIR/$base.dtb $MERGED_DTB $TMPDIR/$overlay.dtbo >/dev/null 2>&1") == ((-2 & 0xff) << 8));
232-
error("Failed to merge $overlay with $base") if (system($DTMERGE, $verbose ? ('-d') : (), "$TMPDIR/$base.dtb", $MERGED_DTB, "$TMPDIR/$overlay.dtbo") != 0);
230+
next if ($overlay =~ /^</);
231+
my $overlay_props = $source->{$overlay}[0];
232+
foreach my $base (@base_files)
233+
{
234+
next if (!-f "../$base.dts");
235+
next if (($overlay =~ /(wifi|bt)/) && ($base !~ /^(bcm2708-rpi-zero-w|bcm2709-rpi-zero-2|bcm2710-rpi-3-|bcm2711-rpi-4-)/));
236+
next if ($overlay_props->{'bcm2711'} && $base !~ /^bcm2711/);
237+
next if (system("$DTMERGE $TMPDIR/$base.dtb $MERGED_DTB $TMPDIR/$overlay.dtbo >/dev/null 2>&1") == ((-2 & 0xff) << 8));
238+
error("Failed to merge $overlay with $base") if (system($DTMERGE, $verbose ? ('-d') : (), "$TMPDIR/$base.dtb", $MERGED_DTB, "$TMPDIR/$overlay.dtbo") != 0);
239+
}
240+
my $checker = $overlay_checkers{$overlay};
241+
($checker->[0])->($overlay, $checker->[1], $source->{$overlay}) if ($checker);
233242
}
234-
my $checker = $overlay_checkers{$overlay};
235-
($checker->[0])->($overlay, $checker->[1], $source->{$overlay}) if ($checker);
236243
}
237244

238245
rmdir($TMPDIR);
@@ -373,7 +380,7 @@ sub parse_readme
373380
if ($blank_count == 2)
374381
{
375382
error("Missing params for overlay $overlay ($linenum)") if (!$params);
376-
$overlays->{ $overlay } = [ sort(@$params) ];
383+
$overlays->{ $overlay } = [ sort(@{$params || []}) ];
377384
$overlay = undef;
378385
$params = undef;
379386
$in_params = 0;

0 commit comments

Comments
 (0)