License cleanup: add SPDX GPL-2.0 license identifier to files with no license
Many source files in the tree are missing licensing information, which
makes it harder for compliance tools to determine the correct license.
By default all files without license information are under the default
license of the kernel, which is GPL version 2.
Update the files which contain no license information with the 'GPL-2.0'
SPDX license identifier. The SPDX identifier is a legally binding
shorthand, which can be used instead of the full boiler plate text.
This patch is based on work done by Thomas Gleixner and Kate Stewart and
Philippe Ombredanne.
How this work was done:
Patches were generated and checked against linux-4.14-rc6 for a subset of
the use cases:
- file had no licensing information it it.
- file was a */uapi/* one with no licensing information in it,
- file was a */uapi/* one with existing licensing information,
Further patches will be generated in subsequent months to fix up cases
where non-standard license headers were used, and references to license
had to be inferred by heuristics based on keywords.
The analysis to determine which SPDX License Identifier to be applied to
a file was done in a spreadsheet of side by side results from of the
output of two independent scanners (ScanCode & Windriver) producing SPDX
tag:value files created by Philippe Ombredanne. Philippe prepared the
base worksheet, and did an initial spot review of a few 1000 files.
The 4.13 kernel was the starting point of the analysis with 60,537 files
assessed. Kate Stewart did a file by file comparison of the scanner
results in the spreadsheet to determine which SPDX license identifier(s)
to be applied to the file. She confirmed any determination that was not
immediately clear with lawyers working with the Linux Foundation.
Criteria used to select files for SPDX license identifier tagging was:
- Files considered eligible had to be source code files.
- Make and config files were included as candidates if they contained >5
lines of source
- File already had some variant of a license header in it (even if <5
lines).
All documentation files were explicitly excluded.
The following heuristics were used to determine which SPDX license
identifiers to apply.
- when both scanners couldn't find any license traces, file was
considered to have no license information in it, and the top level
COPYING file license applied.
For non */uapi/* files that summary was:
SPDX license identifier # files
---------------------------------------------------|-------
GPL-2.0 11139
and resulted in the first patch in this series.
If that file was a */uapi/* path one, it was "GPL-2.0 WITH
Linux-syscall-note" otherwise it was "GPL-2.0". Results of that was:
SPDX license identifier # files
---------------------------------------------------|-------
GPL-2.0 WITH Linux-syscall-note 930
and resulted in the second patch in this series.
- if a file had some form of licensing information in it, and was one
of the */uapi/* ones, it was denoted with the Linux-syscall-note if
any GPL family license was found in the file or had no licensing in
it (per prior point). Results summary:
SPDX license identifier # files
---------------------------------------------------|------
GPL-2.0 WITH Linux-syscall-note 270
GPL-2.0+ WITH Linux-syscall-note 169
((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) 21
((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) 17
LGPL-2.1+ WITH Linux-syscall-note 15
GPL-1.0+ WITH Linux-syscall-note 14
((GPL-2.0+ WITH Linux-syscall-note) OR BSD-3-Clause) 5
LGPL-2.0+ WITH Linux-syscall-note 4
LGPL-2.1 WITH Linux-syscall-note 3
((GPL-2.0 WITH Linux-syscall-note) OR MIT) 3
((GPL-2.0 WITH Linux-syscall-note) AND MIT) 1
and that resulted in the third patch in this series.
- when the two scanners agreed on the detected license(s), that became
the concluded license(s).
- when there was disagreement between the two scanners (one detected a
license but the other didn't, or they both detected different
licenses) a manual inspection of the file occurred.
- In most cases a manual inspection of the information in the file
resulted in a clear resolution of the license that should apply (and
which scanner probably needed to revisit its heuristics).
- When it was not immediately clear, the license identifier was
confirmed with lawyers working with the Linux Foundation.
- If there was any question as to the appropriate license identifier,
the file was flagged for further research and to be revisited later
in time.
In total, over 70 hours of logged manual review was done on the
spreadsheet to determine the SPDX license identifiers to apply to the
source files by Kate, Philippe, Thomas and, in some cases, confirmation
by lawyers working with the Linux Foundation.
Kate also obtained a third independent scan of the 4.13 code base from
FOSSology, and compared selected files where the other two scanners
disagreed against that SPDX file, to see if there was new insights. The
Windriver scanner is based on an older version of FOSSology in part, so
they are related.
Thomas did random spot checks in about 500 files from the spreadsheets
for the uapi headers and agreed with SPDX license identifier in the
files he inspected. For the non-uapi files Thomas did random spot checks
in about 15000 files.
In initial set of patches against 4.14-rc6, 3 files were found to have
copy/paste license identifier errors, and have been fixed to reflect the
correct identifier.
Additionally Philippe spent 10 hours this week doing a detailed manual
inspection and review of the 12,461 patched files from the initial patch
version early this week with:
- a full scancode scan run, collecting the matched texts, detected
license ids and scores
- reviewing anything where there was a license detected (about 500+
files) to ensure that the applied SPDX license was correct
- reviewing anything where there was no detection but the patch license
was not GPL-2.0 WITH Linux-syscall-note to ensure that the applied
SPDX license was correct
This produced a worksheet with 20 files needing minor correction. This
worksheet was then exported into 3 different .csv files for the
different types of files to be modified.
These .csv files were then reviewed by Greg. Thomas wrote a script to
parse the csv files and add the proper SPDX tag to the file, in the
format that the file expected. This script was further refined by Greg
based on the output to detect more types of files automatically and to
distinguish between header and source .c files (which need different
comment types.) Finally Greg ran the script using the .csv files to
generate the patches.
Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org>
Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-01 22:07:57 +08:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0 */
|
2015-08-20 12:54:19 +08:00
|
|
|
#ifndef __NV04_FIFO_REGS_H__
|
|
|
|
#define __NV04_FIFO_REGS_H__
|
|
|
|
|
|
|
|
#define NV04_PFIFO_DELAY_0 0x00002040
|
|
|
|
#define NV04_PFIFO_DMA_TIMESLICE 0x00002044
|
|
|
|
#define NV04_PFIFO_NEXT_CHANNEL 0x00002050
|
|
|
|
#define NV03_PFIFO_INTR_0 0x00002100
|
|
|
|
#define NV03_PFIFO_INTR_EN_0 0x00002140
|
|
|
|
# define NV_PFIFO_INTR_CACHE_ERROR (1<<0)
|
|
|
|
# define NV_PFIFO_INTR_RUNOUT (1<<4)
|
|
|
|
# define NV_PFIFO_INTR_RUNOUT_OVERFLOW (1<<8)
|
|
|
|
# define NV_PFIFO_INTR_DMA_PUSHER (1<<12)
|
|
|
|
# define NV_PFIFO_INTR_DMA_PT (1<<16)
|
|
|
|
# define NV_PFIFO_INTR_SEMAPHORE (1<<20)
|
|
|
|
# define NV_PFIFO_INTR_ACQUIRE_TIMEOUT (1<<24)
|
|
|
|
#define NV03_PFIFO_RAMHT 0x00002210
|
|
|
|
#define NV03_PFIFO_RAMFC 0x00002214
|
|
|
|
#define NV03_PFIFO_RAMRO 0x00002218
|
|
|
|
#define NV40_PFIFO_RAMFC 0x00002220
|
|
|
|
#define NV03_PFIFO_CACHES 0x00002500
|
|
|
|
#define NV04_PFIFO_MODE 0x00002504
|
|
|
|
#define NV04_PFIFO_DMA 0x00002508
|
|
|
|
#define NV04_PFIFO_SIZE 0x0000250c
|
|
|
|
#define NV50_PFIFO_CTX_TABLE(c) (0x2600+(c)*4)
|
|
|
|
#define NV50_PFIFO_CTX_TABLE__SIZE 128
|
|
|
|
#define NV50_PFIFO_CTX_TABLE_CHANNEL_ENABLED (1<<31)
|
|
|
|
#define NV50_PFIFO_CTX_TABLE_UNK30_BAD (1<<30)
|
|
|
|
#define NV50_PFIFO_CTX_TABLE_INSTANCE_MASK_G80 0x0FFFFFFF
|
|
|
|
#define NV50_PFIFO_CTX_TABLE_INSTANCE_MASK_G84 0x00FFFFFF
|
|
|
|
#define NV03_PFIFO_CACHE0_PUSH0 0x00003000
|
|
|
|
#define NV03_PFIFO_CACHE0_PULL0 0x00003040
|
|
|
|
#define NV04_PFIFO_CACHE0_PULL0 0x00003050
|
|
|
|
#define NV04_PFIFO_CACHE0_PULL1 0x00003054
|
|
|
|
#define NV03_PFIFO_CACHE1_PUSH0 0x00003200
|
|
|
|
#define NV03_PFIFO_CACHE1_PUSH1 0x00003204
|
|
|
|
#define NV03_PFIFO_CACHE1_PUSH1_DMA (1<<8)
|
|
|
|
#define NV40_PFIFO_CACHE1_PUSH1_DMA (1<<16)
|
|
|
|
#define NV03_PFIFO_CACHE1_PUSH1_CHID_MASK 0x0000000f
|
|
|
|
#define NV10_PFIFO_CACHE1_PUSH1_CHID_MASK 0x0000001f
|
|
|
|
#define NV50_PFIFO_CACHE1_PUSH1_CHID_MASK 0x0000007f
|
|
|
|
#define NV03_PFIFO_CACHE1_PUT 0x00003210
|
|
|
|
#define NV04_PFIFO_CACHE1_DMA_PUSH 0x00003220
|
|
|
|
#define NV04_PFIFO_CACHE1_DMA_FETCH 0x00003224
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_8_BYTES 0x00000000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_16_BYTES 0x00000008
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_24_BYTES 0x00000010
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_32_BYTES 0x00000018
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_40_BYTES 0x00000020
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_48_BYTES 0x00000028
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_56_BYTES 0x00000030
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_64_BYTES 0x00000038
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_72_BYTES 0x00000040
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_80_BYTES 0x00000048
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_88_BYTES 0x00000050
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_96_BYTES 0x00000058
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_104_BYTES 0x00000060
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_112_BYTES 0x00000068
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_120_BYTES 0x00000070
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_128_BYTES 0x00000078
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_136_BYTES 0x00000080
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_144_BYTES 0x00000088
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_152_BYTES 0x00000090
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_160_BYTES 0x00000098
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_168_BYTES 0x000000A0
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_176_BYTES 0x000000A8
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_184_BYTES 0x000000B0
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_192_BYTES 0x000000B8
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_200_BYTES 0x000000C0
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_208_BYTES 0x000000C8
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_216_BYTES 0x000000D0
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_224_BYTES 0x000000D8
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_232_BYTES 0x000000E0
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_240_BYTES 0x000000E8
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_248_BYTES 0x000000F0
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_TRIG_256_BYTES 0x000000F8
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_SIZE 0x0000E000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_SIZE_32_BYTES 0x00000000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_SIZE_64_BYTES 0x00002000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_SIZE_96_BYTES 0x00004000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_SIZE_128_BYTES 0x00006000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_SIZE_160_BYTES 0x00008000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_SIZE_192_BYTES 0x0000A000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_SIZE_224_BYTES 0x0000C000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_SIZE_256_BYTES 0x0000E000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_MAX_REQS 0x001F0000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_MAX_REQS_0 0x00000000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_MAX_REQS_1 0x00010000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_MAX_REQS_2 0x00020000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_MAX_REQS_3 0x00030000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_MAX_REQS_4 0x00040000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_MAX_REQS_5 0x00050000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_MAX_REQS_6 0x00060000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_MAX_REQS_7 0x00070000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_MAX_REQS_8 0x00080000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_MAX_REQS_9 0x00090000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_MAX_REQS_10 0x000A0000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_MAX_REQS_11 0x000B0000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_MAX_REQS_12 0x000C0000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_MAX_REQS_13 0x000D0000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_MAX_REQS_14 0x000E0000
|
|
|
|
# define NV_PFIFO_CACHE1_DMA_FETCH_MAX_REQS_15 0x000F0000
|
|
|
|
# define NV_PFIFO_CACHE1_ENDIAN 0x80000000
|
|
|
|
# define NV_PFIFO_CACHE1_LITTLE_ENDIAN 0x7FFFFFFF
|
|
|
|
# define NV_PFIFO_CACHE1_BIG_ENDIAN 0x80000000
|
|
|
|
#define NV04_PFIFO_CACHE1_DMA_STATE 0x00003228
|
|
|
|
#define NV04_PFIFO_CACHE1_DMA_INSTANCE 0x0000322c
|
|
|
|
#define NV04_PFIFO_CACHE1_DMA_CTL 0x00003230
|
|
|
|
#define NV04_PFIFO_CACHE1_DMA_PUT 0x00003240
|
|
|
|
#define NV04_PFIFO_CACHE1_DMA_GET 0x00003244
|
|
|
|
#define NV10_PFIFO_CACHE1_REF_CNT 0x00003248
|
|
|
|
#define NV10_PFIFO_CACHE1_DMA_SUBROUTINE 0x0000324C
|
|
|
|
#define NV03_PFIFO_CACHE1_PULL0 0x00003240
|
|
|
|
#define NV04_PFIFO_CACHE1_PULL0 0x00003250
|
|
|
|
# define NV04_PFIFO_CACHE1_PULL0_HASH_FAILED 0x00000010
|
|
|
|
# define NV04_PFIFO_CACHE1_PULL0_HASH_BUSY 0x00001000
|
|
|
|
#define NV03_PFIFO_CACHE1_PULL1 0x00003250
|
|
|
|
#define NV04_PFIFO_CACHE1_PULL1 0x00003254
|
|
|
|
#define NV04_PFIFO_CACHE1_HASH 0x00003258
|
|
|
|
#define NV10_PFIFO_CACHE1_ACQUIRE_TIMEOUT 0x00003260
|
|
|
|
#define NV10_PFIFO_CACHE1_ACQUIRE_TIMESTAMP 0x00003264
|
|
|
|
#define NV10_PFIFO_CACHE1_ACQUIRE_VALUE 0x00003268
|
|
|
|
#define NV10_PFIFO_CACHE1_SEMAPHORE 0x0000326C
|
|
|
|
#define NV03_PFIFO_CACHE1_GET 0x00003270
|
|
|
|
#define NV04_PFIFO_CACHE1_ENGINE 0x00003280
|
|
|
|
#define NV04_PFIFO_CACHE1_DMA_DCOUNT 0x000032A0
|
|
|
|
#define NV40_PFIFO_GRCTX_INSTANCE 0x000032E0
|
|
|
|
#define NV40_PFIFO_UNK32E4 0x000032E4
|
|
|
|
#define NV04_PFIFO_CACHE1_METHOD(i) (0x00003800+(i*8))
|
|
|
|
#define NV04_PFIFO_CACHE1_DATA(i) (0x00003804+(i*8))
|
|
|
|
#define NV40_PFIFO_CACHE1_METHOD(i) (0x00090000+(i*8))
|
|
|
|
#define NV40_PFIFO_CACHE1_DATA(i) (0x00090004+(i*8))
|
|
|
|
#endif
|