From: Rob Herring <robh@xxxxxxxxxx> Subject: checkpatch: DT bindings should be a separate patch 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. [robh@xxxxxxxxxx: add doc pointer to warning, simplify logic] Link: http://lkml.kernel.org/r/20180810170513.26284-1-robh@xxxxxxxxxx [robh@xxxxxxxxxx: v3] Link: http://lkml.kernel.org/r/20180810225049.20452-1-robh@xxxxxxxxxx Link: http://lkml.kernel.org/r/20180809205032.22205-1-robh@xxxxxxxxxx Signed-off-by: Rob Herring <robh@xxxxxxxxxx> Acked-by: Joe Perches <joe@xxxxxxxxxxx> Cc: Andy Whitcroft <apw@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- diff -puN scripts/checkpatch.pl~checkpatch-dt-bindings-should-be-a-separate-patch scripts/checkpatch.pl --- a/scripts/checkpatch.pl~checkpatch-dt-bindings-should-be-a-separate-patch +++ a/scripts/checkpatch.pl @@ -2251,6 +2251,7 @@ sub process { my $author = ''; my $authorsignoff = 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 @@ -2501,6 +2502,19 @@ sub process { $check = $check_orig; } $checklicenseline = 1; + + if ($realfile !~ /^MAINTAINERS/) { + my $last_binding_patch = $is_binding_patch; + + $is_binding_patch = () = $realfile =~ m@^(?:Documentation/devicetree/|include/dt-bindings/)@; + + if (($last_binding_patch != -1) && + ($last_binding_patch ^ $is_binding_patch)) { + WARN("DT_SPLIT_BINDING_PATCH", + "DT binding docs and includes should be a separate patch. See: Documentation/devicetree/bindings/submitting-patches.txt\n"); + } + } + next; } _