From: Andy Whitcroft <apw-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
To: Joe Perches <joe-6d6DIl74uiNBDgjK7y7TUQ@public.gmane.org>
Cc: Rob Herring <robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Andrew Morton
<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Rob Herring <rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org>,
Grant Likely
<grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Subject: Re: [PATCH v3] checkpatch: add DT compatible string documentation checks
Date: Fri, 6 Dec 2013 09:56:26 +0000 [thread overview]
Message-ID: <20131206095626.GD3248@bark> (raw)
In-Reply-To: <1386173563.30493.72.camel@joe-AO722>
On Wed, Dec 04, 2013 at 08:12:43AM -0800, Joe Perches wrote:
> On Wed, 2013-12-04 at 10:03 -0600, Rob Herring wrote:
> > From: Rob Herring <rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org>
> >
> > This adds a simple check that any compatible strings in DeviceTree dts
> > files are present in Documentation/devicetree/bindings. Vendor prefixes
> > are also checked for existing in vendor-prefixes.txt These should be
> > temporary checks until we have more sophisticated binding schema checking.
> >
> > Signed-off-by: Rob Herring <rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org>
> > Cc: Grant Likely <grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
> > Cc: Andy Whitcroft <apw-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
> > Cc: Joe Perches <joe-6d6DIl74uiNBDgjK7y7TUQ@public.gmane.org>
>
> Signed-off-by: Joe Perches <joe-6d6DIl74uiNBDgjK7y7TUQ@public.gmane.org>
>
> > ---
> > v3:
> > - Use a single message type UNDOCUMENTED_DT_STRING
> > - Ensure '+' is at beginning of the line
> > - Move vendor-prefixes.txt to variable
> >
> > v2:
> > - Add vendor string checking against vendor-prefixes.txt
> > - Add '_', '.' and '+' as valid compatible string characters
> > - Use 'grep -E' instead of egrep
> >
> > scripts/checkpatch.pl | 25 +++++++++++++++++++++++++
> > 1 file changed, 25 insertions(+)
> >
> > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> > index 9c98100..3696366 100755
> > --- a/scripts/checkpatch.pl
> > +++ b/scripts/checkpatch.pl
> > @@ -2034,6 +2034,31 @@ sub process {
> > "Use of $flag is deprecated, please use \`$replacement->{$flag} instead.\n" . $herecurr) if ($replacement->{$flag});
> > }
> >
> > +# check for DT compatible documentation
> > + if ($realfile =~ /\.dts/ && $rawline =~ /^\+\s*compatible\s*=/) {
> > + my @compats = $rawline =~ /\"([a-zA-Z0-9\-\,\.\+_]+)\"/g;
> > +
> > + foreach my $compat (@compats) {
> > + my $compat2 = $compat;
> > + my $dt_path = "Documentation/devicetree/bindings/";
> > + $compat2 =~ s/\,[a-z]*\-/\,<\.\*>\-/;
> > + `grep -Erq "$compat|$compat2" $dt_path`;
> > + if ( $? >> 8 ) {
> > + WARN("UNDOCUMENTED_DT_STRING",
> > + "DT compatible string \"$compat\" appears un-documented -- check $dt_path\n" . $herecurr);
> > + }
> > +
> > + my $vendor = $compat;
> > + my $vendor_path = $dt_path . "vendor-prefixes.txt";
> > + $vendor =~ s/^([a-zA-Z0-9]+)\,.*/$1/;
> > + `grep -Eq "$vendor" $vendor_path`;
> > + if ( $? >> 8 ) {
> > + WARN("UNDOCUMENTED_DT_STRING",
> > + "DT compatible string vendor \"$vendor\" appears un-documented -- check $vendor_path\n" . $herecurr);
> > + }
> > + }
> > + }
So this only works if you are in the top of the tree at the time when
you run it (unless I've missed something). So it might be appropraite
to suppress this when the vendor-prefixes.txt file is not found.
-apw
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2013-12-06 9:56 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-04 16:03 [PATCH v3] checkpatch: add DT compatible string documentation checks Rob Herring
[not found] ` <1386173031-17867-1-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-12-04 16:12 ` Joe Perches
2013-12-06 9:56 ` Andy Whitcroft [this message]
2013-12-06 16:48 ` Joe Perches
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131206095626.GD3248@bark \
--to=apw-z7wlfzj8ewms+fvcfc7uqw@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=joe-6d6DIl74uiNBDgjK7y7TUQ@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org \
--cc=robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).