• Home
  • Raw
  • Download

Lines Matching +full:n +full:- +full:1

1 #!/usr/bin/perl -w
2 # SPDX-License-Identifier: GPL-2.0-only OR BSD-3-Clause
3 # Copyright (C) 2019--2020 Intel Corporation
8 my $ccsregs = "ccs-regs.asc";
24 $help = 1 if ! defined $header || ! defined $limitc || ! defined $limith;
28 $0 - Create CCS register definitions for C
30 usage: $0 -c ccs-regs.asc -e header -r regarray -l limit-c -L limit-header [-k]
32 -c ccs register file
33 -e header file name
34 -r register description array file name
35 -l limit and capability array file name
36 -L limit and capability header file name
37 -k generate files for kernel space consumption
44 ? '#include "ccs-os.h"' . "\n"
45 : "#include <linux/bits.h>\n#include <linux/types.h>\n";
67 return 1;
71 $uc_header =~ s/[^A-Z0-9]/_/g;
73 my $copyright = "/* Copyright (C) 2019--2020 Intel Corporation */\n";
74 my $license = "SPDX-License-Identifier: GPL-2.0-only OR BSD-3-Clause";
75 my $note = "/*\n * Generated by $0;\n * do not modify.\n */\n";
78 print $fh "// $license\n$copyright$note\n" if defined $fh;
82 print $fh "/* $license */\n$copyright$note\n";
95 #include <media/v4l2-cci.h>
101 (defined $kernel ? "CCI_REG_PRIVATE_SHIFT" : 16) . "\n";
103 my $flag = -1;
113 return "(1U << $bit)";
133 print $H "#define CCS_FL_16BIT " . flag_str(\$flag, \$all_flags) . "\n";
134 print $H "#define CCS_FL_32BIT " . flag_str(\$flag, \$all_flags) . "\n";
137 print $H "#define CCS_FL_FLOAT_IREAL " . flag_str(\$flag, \$all_flags) . "\n";
138 print $H "#define CCS_FL_IREAL " . flag_str(\$flag, \$all_flags) . "\n";
140 BUILD_BUG_ON(~CCI_REG_PRIVATE_MASK & ($all_flags))\n"
153 #include "ccs-extra.h"
154 #include "ccs-regs.h"
160 $uc_limith =~ s/[^A-Z0-9]/_/g;
176 print $LH "#define CCS_L_FL_SAME_REG " . bit_def(0) . "\n\n";
185 #include "ccs-limits.h"
186 #include "ccs-regs.h"
194 my $reglist = "const struct ccs_reg_desc ccs_reg_desc[] = {\n";
201 ($name, $args) = ($1, $2);
214 my @l = split "\n", $_;
221 return (join "\n", @l) . "\n";
234 my $size = $this->{elsize};
235 my $h = $this->{argparams};
237 foreach my $arg (@{$this->{args}}) {
238 my $apref = $h->{$arg};
240 $size *= $apref->{max} - $apref->{min} + 1;
249 ($this->{args}, $this->{argparams}, $this->{name});
252 my @sorted_args = @{$this->{sorted_args}};
256 $argdescs .= "static const struct ccs_reg_arg " . $varname . "[] = {\n";
259 push @mins, $argparams->{$sorted_arg}->{min};
263 my $h = $argparams->{$sorted_arg};
265 $argdescs .= "\t{ \"$sorted_arg\", $h->{min}, $h->{max}, $h->{elsize} },\n";
267 $lim_arg .= defined $lim_arg ? ", $h->{min}" : "$h->{min}";
270 $argdescs .= "};\n\n";
274 " \"" . (lc $name) . "\", $varname },\n";
278 ", \"$name" . (defined $this->{discontig} ? " $lim_arg" : "") . "\" },\n"
279 if is_limit_reg $this->{base_addr};
288 if (s/^-\s*//) {
292 …$hdr_data .= sprintf "#define %-62s %s", "CCS_" . (uc ${this{name}}) ."_$bit", bit_def($addr) . "\
294 s/[,\.-]/_/g;
298 …{ "name" => "MASK", "addr" => (1 << ($msb + 1)) - 1 - ((1 << $lsb) - 1), "fmt" => "0x%" . join("."…
301 #print $ar->{fmt}."\n";
302-62s " . $ar->{"fmt"} . "\n", "CCS_" . (uc $this{"name"}) . (defined $this_field ? "_" . uc $this_…
305 s/[,\.-]/_/g;
308 … %-62s %s", "CCS_" . (uc ${this{name}}) . (defined $this{"field"} ? "_" . uc $this{"field"} : "") …
317 …r_data .= sprintf "#define %-62s %s", "CCS_LIM_" . (uc ${this{name}} . "_MIN_$arg"), $min . ($min …
318 …r_data .= sprintf "#define %-62s %s", "CCS_LIM_" . (uc ${this{name}} . "_MAX_$arg"), $max . ($max …
322 $h->{$arg} = { "min" => $min,
329 next if $#{$this{args}} + 1 != scalar keys %{$this{argparams}};
339 my $d = $h->{$arg}->{discontig};
340 my $times = $h->{$arg}->{elsize} != 1 ?
341 " * " . $h->{$arg}->{elsize} : "";
344 my ($lim, $offset) = split /,/, $d->[0];
346 $reg_formula .= " + (($arg) < $lim ? ($arg)$times : $offset + (($arg) - $lim)$times)";
355 $lim_formula =~ s/^\(([a-z0-9]+)\)$/$1/i;
357 print $H tabconv sprintf("#define %-62s %s", "CCS_R_" . (uc $this{name}) .
360 " | " . $this{flagstring} . ")") . "\n");
367 $h->{$a}->{elsize} <= $h->{$b}->{elsize}
371 my $da = $this{argparams}->{$this{discontig}};
372 my ($first_discontig) = split /,/, $da->{discontig}->[0];
373 my $max = $da->{max};
375 $da->{max} = $first_discontig - 1;
378 $da->{min} = $da->{max} + 1;
379 $da->{max} = $max;
380 print_args(\%this, $first_discontig, 1);
387 print $LH tabconv sprintf "#define %-63s%s\n",
407 $name =~ s/[,\.-]/_/g;
429 $hdr_data .= sprintf "#define %-62s %s\n", "CCS_R_" . (uc $name), $addr
445 $reglist .= "\t{ CCS_R_" . (uc $name) . ", 1, 0, \"" . (lc $name) . "\", NULL },\n";
450 $this{elsize} . ", 0, \"$name\" },\n"
454 print $LH tabconv sprintf "#define %-63s%s\n",
462 print $A "\t{ 0 }\n";
464 print $A "};\n";
467 print $H "\n#endif /* __${uc_header}__ */\n";
469 print $LH tabconv sprintf "#define %-63s%s\n", "CCS_L_LAST", $limitcount;
471 print $LH "\n#endif /* __${uc_limith}__ */\n";
473 print $LC "\t{ 0 } /* Guardian */\n";
474 print $LC "};\n";