mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-26 20:44:32 +08:00
b24413180f
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>
216 lines
8.0 KiB
C
216 lines
8.0 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* ATI PCI IDs from XFree86, kept here to make sync'ing with
|
|
* XFree much simpler. Currently, this list is only used by
|
|
* radeonfb
|
|
*/
|
|
|
|
#define PCI_CHIP_RV380_3150 0x3150
|
|
#define PCI_CHIP_RV380_3151 0x3151
|
|
#define PCI_CHIP_RV380_3152 0x3152
|
|
#define PCI_CHIP_RV380_3153 0x3153
|
|
#define PCI_CHIP_RV380_3154 0x3154
|
|
#define PCI_CHIP_RV380_3156 0x3156
|
|
#define PCI_CHIP_RV380_3E50 0x3E50
|
|
#define PCI_CHIP_RV380_3E51 0x3E51
|
|
#define PCI_CHIP_RV380_3E52 0x3E52
|
|
#define PCI_CHIP_RV380_3E53 0x3E53
|
|
#define PCI_CHIP_RV380_3E54 0x3E54
|
|
#define PCI_CHIP_RV380_3E56 0x3E56
|
|
#define PCI_CHIP_RS100_4136 0x4136
|
|
#define PCI_CHIP_RS200_4137 0x4137
|
|
#define PCI_CHIP_R300_AD 0x4144
|
|
#define PCI_CHIP_R300_AE 0x4145
|
|
#define PCI_CHIP_R300_AF 0x4146
|
|
#define PCI_CHIP_R300_AG 0x4147
|
|
#define PCI_CHIP_R350_AH 0x4148
|
|
#define PCI_CHIP_R350_AI 0x4149
|
|
#define PCI_CHIP_R350_AJ 0x414A
|
|
#define PCI_CHIP_R350_AK 0x414B
|
|
#define PCI_CHIP_RV350_AP 0x4150
|
|
#define PCI_CHIP_RV350_AQ 0x4151
|
|
#define PCI_CHIP_RV360_AR 0x4152
|
|
#define PCI_CHIP_RV350_AS 0x4153
|
|
#define PCI_CHIP_RV350_AT 0x4154
|
|
#define PCI_CHIP_RV350_AV 0x4156
|
|
#define PCI_CHIP_MACH32 0x4158
|
|
#define PCI_CHIP_RS250_4237 0x4237
|
|
#define PCI_CHIP_R200_BB 0x4242
|
|
#define PCI_CHIP_R200_BC 0x4243
|
|
#define PCI_CHIP_RS100_4336 0x4336
|
|
#define PCI_CHIP_RS200_4337 0x4337
|
|
#define PCI_CHIP_MACH64CT 0x4354
|
|
#define PCI_CHIP_MACH64CX 0x4358
|
|
#define PCI_CHIP_RS250_4437 0x4437
|
|
#define PCI_CHIP_MACH64ET 0x4554
|
|
#define PCI_CHIP_MACH64GB 0x4742
|
|
#define PCI_CHIP_MACH64GD 0x4744
|
|
#define PCI_CHIP_MACH64GI 0x4749
|
|
#define PCI_CHIP_MACH64GL 0x474C
|
|
#define PCI_CHIP_MACH64GM 0x474D
|
|
#define PCI_CHIP_MACH64GN 0x474E
|
|
#define PCI_CHIP_MACH64GO 0x474F
|
|
#define PCI_CHIP_MACH64GP 0x4750
|
|
#define PCI_CHIP_MACH64GQ 0x4751
|
|
#define PCI_CHIP_MACH64GR 0x4752
|
|
#define PCI_CHIP_MACH64GS 0x4753
|
|
#define PCI_CHIP_MACH64GT 0x4754
|
|
#define PCI_CHIP_MACH64GU 0x4755
|
|
#define PCI_CHIP_MACH64GV 0x4756
|
|
#define PCI_CHIP_MACH64GW 0x4757
|
|
#define PCI_CHIP_MACH64GX 0x4758
|
|
#define PCI_CHIP_MACH64GY 0x4759
|
|
#define PCI_CHIP_MACH64GZ 0x475A
|
|
#define PCI_CHIP_RV250_Id 0x4964
|
|
#define PCI_CHIP_RV250_Ie 0x4965
|
|
#define PCI_CHIP_RV250_If 0x4966
|
|
#define PCI_CHIP_RV250_Ig 0x4967
|
|
#define PCI_CHIP_R420_JH 0x4A48
|
|
#define PCI_CHIP_R420_JI 0x4A49
|
|
#define PCI_CHIP_R420_JJ 0x4A4A
|
|
#define PCI_CHIP_R420_JK 0x4A4B
|
|
#define PCI_CHIP_R420_JL 0x4A4C
|
|
#define PCI_CHIP_R420_JM 0x4A4D
|
|
#define PCI_CHIP_R420_JN 0x4A4E
|
|
#define PCI_CHIP_R420_JP 0x4A50
|
|
#define PCI_CHIP_MACH64LB 0x4C42
|
|
#define PCI_CHIP_MACH64LD 0x4C44
|
|
#define PCI_CHIP_RAGE128LE 0x4C45
|
|
#define PCI_CHIP_RAGE128LF 0x4C46
|
|
#define PCI_CHIP_MACH64LG 0x4C47
|
|
#define PCI_CHIP_MACH64LI 0x4C49
|
|
#define PCI_CHIP_MACH64LM 0x4C4D
|
|
#define PCI_CHIP_MACH64LN 0x4C4E
|
|
#define PCI_CHIP_MACH64LP 0x4C50
|
|
#define PCI_CHIP_MACH64LQ 0x4C51
|
|
#define PCI_CHIP_MACH64LR 0x4C52
|
|
#define PCI_CHIP_MACH64LS 0x4C53
|
|
#define PCI_CHIP_MACH64LT 0x4C54
|
|
#define PCI_CHIP_RADEON_LW 0x4C57
|
|
#define PCI_CHIP_RADEON_LX 0x4C58
|
|
#define PCI_CHIP_RADEON_LY 0x4C59
|
|
#define PCI_CHIP_RADEON_LZ 0x4C5A
|
|
#define PCI_CHIP_RV250_Ld 0x4C64
|
|
#define PCI_CHIP_RV250_Le 0x4C65
|
|
#define PCI_CHIP_RV250_Lf 0x4C66
|
|
#define PCI_CHIP_RV250_Lg 0x4C67
|
|
#define PCI_CHIP_RV250_Ln 0x4C6E
|
|
#define PCI_CHIP_RAGE128MF 0x4D46
|
|
#define PCI_CHIP_RAGE128ML 0x4D4C
|
|
#define PCI_CHIP_R300_ND 0x4E44
|
|
#define PCI_CHIP_R300_NE 0x4E45
|
|
#define PCI_CHIP_R300_NF 0x4E46
|
|
#define PCI_CHIP_R300_NG 0x4E47
|
|
#define PCI_CHIP_R350_NH 0x4E48
|
|
#define PCI_CHIP_R350_NI 0x4E49
|
|
#define PCI_CHIP_R360_NJ 0x4E4A
|
|
#define PCI_CHIP_R350_NK 0x4E4B
|
|
#define PCI_CHIP_RV350_NP 0x4E50
|
|
#define PCI_CHIP_RV350_NQ 0x4E51
|
|
#define PCI_CHIP_RV350_NR 0x4E52
|
|
#define PCI_CHIP_RV350_NS 0x4E53
|
|
#define PCI_CHIP_RV350_NT 0x4E54
|
|
#define PCI_CHIP_RV350_NV 0x4E56
|
|
#define PCI_CHIP_RAGE128PA 0x5041
|
|
#define PCI_CHIP_RAGE128PB 0x5042
|
|
#define PCI_CHIP_RAGE128PC 0x5043
|
|
#define PCI_CHIP_RAGE128PD 0x5044
|
|
#define PCI_CHIP_RAGE128PE 0x5045
|
|
#define PCI_CHIP_RAGE128PF 0x5046
|
|
#define PCI_CHIP_RAGE128PG 0x5047
|
|
#define PCI_CHIP_RAGE128PH 0x5048
|
|
#define PCI_CHIP_RAGE128PI 0x5049
|
|
#define PCI_CHIP_RAGE128PJ 0x504A
|
|
#define PCI_CHIP_RAGE128PK 0x504B
|
|
#define PCI_CHIP_RAGE128PL 0x504C
|
|
#define PCI_CHIP_RAGE128PM 0x504D
|
|
#define PCI_CHIP_RAGE128PN 0x504E
|
|
#define PCI_CHIP_RAGE128PO 0x504F
|
|
#define PCI_CHIP_RAGE128PP 0x5050
|
|
#define PCI_CHIP_RAGE128PQ 0x5051
|
|
#define PCI_CHIP_RAGE128PR 0x5052
|
|
#define PCI_CHIP_RAGE128PS 0x5053
|
|
#define PCI_CHIP_RAGE128PT 0x5054
|
|
#define PCI_CHIP_RAGE128PU 0x5055
|
|
#define PCI_CHIP_RAGE128PV 0x5056
|
|
#define PCI_CHIP_RAGE128PW 0x5057
|
|
#define PCI_CHIP_RAGE128PX 0x5058
|
|
#define PCI_CHIP_RADEON_QD 0x5144
|
|
#define PCI_CHIP_RADEON_QE 0x5145
|
|
#define PCI_CHIP_RADEON_QF 0x5146
|
|
#define PCI_CHIP_RADEON_QG 0x5147
|
|
#define PCI_CHIP_R200_QH 0x5148
|
|
#define PCI_CHIP_R200_QI 0x5149
|
|
#define PCI_CHIP_R200_QJ 0x514A
|
|
#define PCI_CHIP_R200_QK 0x514B
|
|
#define PCI_CHIP_R200_QL 0x514C
|
|
#define PCI_CHIP_R200_QM 0x514D
|
|
#define PCI_CHIP_R200_QN 0x514E
|
|
#define PCI_CHIP_R200_QO 0x514F
|
|
#define PCI_CHIP_RV200_QW 0x5157
|
|
#define PCI_CHIP_RV200_QX 0x5158
|
|
#define PCI_CHIP_RV100_QY 0x5159
|
|
#define PCI_CHIP_RV100_QZ 0x515A
|
|
#define PCI_CHIP_RN50 0x515E
|
|
#define PCI_CHIP_RAGE128RE 0x5245
|
|
#define PCI_CHIP_RAGE128RF 0x5246
|
|
#define PCI_CHIP_RAGE128RG 0x5247
|
|
#define PCI_CHIP_RAGE128RK 0x524B
|
|
#define PCI_CHIP_RAGE128RL 0x524C
|
|
#define PCI_CHIP_RAGE128SE 0x5345
|
|
#define PCI_CHIP_RAGE128SF 0x5346
|
|
#define PCI_CHIP_RAGE128SG 0x5347
|
|
#define PCI_CHIP_RAGE128SH 0x5348
|
|
#define PCI_CHIP_RAGE128SK 0x534B
|
|
#define PCI_CHIP_RAGE128SL 0x534C
|
|
#define PCI_CHIP_RAGE128SM 0x534D
|
|
#define PCI_CHIP_RAGE128SN 0x534E
|
|
#define PCI_CHIP_RAGE128TF 0x5446
|
|
#define PCI_CHIP_RAGE128TL 0x544C
|
|
#define PCI_CHIP_RAGE128TR 0x5452
|
|
#define PCI_CHIP_RAGE128TS 0x5453
|
|
#define PCI_CHIP_RAGE128TT 0x5454
|
|
#define PCI_CHIP_RAGE128TU 0x5455
|
|
#define PCI_CHIP_RV370_5460 0x5460
|
|
#define PCI_CHIP_RV370_5461 0x5461
|
|
#define PCI_CHIP_RV370_5462 0x5462
|
|
#define PCI_CHIP_RV370_5463 0x5463
|
|
#define PCI_CHIP_RV370_5464 0x5464
|
|
#define PCI_CHIP_RV370_5465 0x5465
|
|
#define PCI_CHIP_RV370_5466 0x5466
|
|
#define PCI_CHIP_RV370_5467 0x5467
|
|
#define PCI_CHIP_R423_UH 0x5548
|
|
#define PCI_CHIP_R423_UI 0x5549
|
|
#define PCI_CHIP_R423_UJ 0x554A
|
|
#define PCI_CHIP_R423_UK 0x554B
|
|
#define PCI_CHIP_R423_UQ 0x5551
|
|
#define PCI_CHIP_R423_UR 0x5552
|
|
#define PCI_CHIP_R423_UT 0x5554
|
|
#define PCI_CHIP_MACH64VT 0x5654
|
|
#define PCI_CHIP_MACH64VU 0x5655
|
|
#define PCI_CHIP_MACH64VV 0x5656
|
|
#define PCI_CHIP_RC410_5A62 0x5A62
|
|
#define PCI_CHIP_RS300_5834 0x5834
|
|
#define PCI_CHIP_RS300_5835 0x5835
|
|
#define PCI_CHIP_RS300_5836 0x5836
|
|
#define PCI_CHIP_RS300_5837 0x5837
|
|
#define PCI_CHIP_RS480_5955 0x5955
|
|
#define PCI_CHIP_RV280_5960 0x5960
|
|
#define PCI_CHIP_RV280_5961 0x5961
|
|
#define PCI_CHIP_RV280_5962 0x5962
|
|
#define PCI_CHIP_RV280_5964 0x5964
|
|
#define PCI_CHIP_RS482_5975 0x5975
|
|
#define PCI_CHIP_RV370_5B60 0x5B60
|
|
#define PCI_CHIP_RV370_5B61 0x5B61
|
|
#define PCI_CHIP_RV370_5B62 0x5B62
|
|
#define PCI_CHIP_RV370_5B63 0x5B63
|
|
#define PCI_CHIP_RV370_5B64 0x5B64
|
|
#define PCI_CHIP_RV370_5B65 0x5B65
|
|
#define PCI_CHIP_RV370_5B66 0x5B66
|
|
#define PCI_CHIP_RV370_5B67 0x5B67
|
|
#define PCI_CHIP_RV280_5C61 0x5C61
|
|
#define PCI_CHIP_RV280_5C63 0x5C63
|
|
#define PCI_CHIP_R423_5D57 0x5D57
|
|
#define PCI_CHIP_RS350_7834 0x7834
|
|
#define PCI_CHIP_RS350_7835 0x7835
|