Message ID | 20180809205032.22205-1-robh@kernel.org |
---|---|
State | Superseded |
Headers | show |
Series | checkpatch: DT bindings should be a separate patch | expand |
On Thu, 9 Aug 2018 14:50:32 -0600 Rob Herring <robh@kernel.org> wrote: > Devicetree bindings should be their own patch as documented in > Documentation/devicetree/bindings/submitting-patches.txt section I.1. > This is because bindings are logically independent from a driver > implementation, they have a different maintainer (even though they often > are applied via the same tree), and it makes for a cleaner history in > the DT only tree created with git-filter-branch. > > ... > > --- a/scripts/checkpatch.pl > +++ b/scripts/checkpatch.pl > @@ -2236,6 +2236,7 @@ sub process { > our $clean = 1; > my $signoff = 0; > my $is_patch = 0; > + my $is_binding_patch = -1; > my $in_header_lines = $file ? 0 : 1; > my $in_commit_log = 0; #Scanning lines before patch > my $has_commit_log = 0; #Encountered lines before patch > @@ -2485,6 +2486,27 @@ sub process { > $check = $check_orig; > } > $checklicenseline = 1; > + > + if ($realfile !~ /MAINTAINERS/) { > + my $mixed = 0; > + if ($realfile =~ /(Documentation\/devicetree|include\/dt-bindings).*/) { > + if ($is_binding_patch == 0) { > + $mixed = 1; > + } > + $is_binding_patch = 1; > + } else { > + if ($is_binding_patch == 1) { > + $mixed = 1; > + } > + $is_binding_patch = 0; > + } > + > + if ($mixed == 1) { > + WARN("DT_SPLIT_BINDING_PATCH", > + "DT binding docs and includes should be a separate patch\n"); A pointer to Documentation/devicetree/bindings/submitting-patches.txt might be helpful? > + } > + } > + > next; > }
On Thu, 2018-08-09 at 14:50 -0600, Rob Herring wrote: > Devicetree bindings should be their own patch as documented in > Documentation/devicetree/bindings/submitting-patches.txt section I.1. > This is because bindings are logically independent from a driver > implementation, they have a different maintainer (even though they often > are applied via the same tree), and it makes for a cleaner history in > the DT only tree created with git-filter-branch. [] > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl [] > @@ -2236,6 +2236,7 @@ sub process { > our $clean = 1; > my $signoff = 0; > my $is_patch = 0; > + my $is_binding_patch = -1; > my $in_header_lines = $file ? 0 : 1; > my $in_commit_log = 0; #Scanning lines before patch > my $has_commit_log = 0; #Encountered lines before patch > @@ -2485,6 +2486,27 @@ sub process { > $check = $check_orig; > } > $checklicenseline = 1; > + > + if ($realfile !~ /MAINTAINERS/) { Should probably be /^MAINTAINERS/ > + my $mixed = 0; > + if ($realfile =~ /(Documentation\/devicetree|include\/dt-bindings).*/) { This should have a ^ for the start of the filename and generally, this is easier to read using m@...@ like: if ($realfile =~ m@^(?:Documentation/devicetree/|include/dt-bindings/)@) { > + if ($is_binding_patch == 0) { > + $mixed = 1; > + } > + $is_binding_patch = 1; > + } else { > + if ($is_binding_patch == 1) { > + $mixed = 1; > + } > + $is_binding_patch = 0; > + } Perhaps there is simpler logic using an xor. > + if ($mixed == 1) { > + WARN("DT_SPLIT_BINDING_PATCH", > + "DT binding docs and includes should be a separate patch\n"); > + } Perhaps add 'see: Documentation/devicetree/bindings/submitting-patches.txt' > + }
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index a9c05506e325..20547c109ccd 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -2236,6 +2236,7 @@ sub process { our $clean = 1; my $signoff = 0; my $is_patch = 0; + my $is_binding_patch = -1; my $in_header_lines = $file ? 0 : 1; my $in_commit_log = 0; #Scanning lines before patch my $has_commit_log = 0; #Encountered lines before patch @@ -2485,6 +2486,27 @@ sub process { $check = $check_orig; } $checklicenseline = 1; + + if ($realfile !~ /MAINTAINERS/) { + my $mixed = 0; + if ($realfile =~ /(Documentation\/devicetree|include\/dt-bindings).*/) { + if ($is_binding_patch == 0) { + $mixed = 1; + } + $is_binding_patch = 1; + } else { + if ($is_binding_patch == 1) { + $mixed = 1; + } + $is_binding_patch = 0; + } + + if ($mixed == 1) { + WARN("DT_SPLIT_BINDING_PATCH", + "DT binding docs and includes should be a separate patch\n"); + } + } + next; }
Devicetree bindings should be their own patch as documented in Documentation/devicetree/bindings/submitting-patches.txt section I.1. This is because bindings are logically independent from a driver implementation, they have a different maintainer (even though they often are applied via the same tree), and it makes for a cleaner history in the DT only tree created with git-filter-branch. Cc: Andy Whitcroft <apw@canonical.com> Cc: Joe Perches <joe@perches.com> Signed-off-by: Rob Herring <robh@kernel.org> --- scripts/checkpatch.pl | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) -- 2.17.1