![Greg Kroah-Hartman](/assets/img/avatar_default.png)
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>
288 lines
7.1 KiB
C
288 lines
7.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Public Include File for DRV6000 users
|
|
* (ie. NxtWave Communications - NXT6000 demodulator driver)
|
|
*
|
|
* Copyright (C) 2001 NxtWave Communications, Inc.
|
|
*
|
|
*/
|
|
|
|
/* Nxt6000 Register Addresses and Bit Masks */
|
|
|
|
/* Maximum Register Number */
|
|
#define MAXNXT6000REG (0x9A)
|
|
|
|
/* 0x1B A_VIT_BER_0 aka 0x3A */
|
|
#define A_VIT_BER_0 (0x1B)
|
|
|
|
/* 0x1D A_VIT_BER_TIMER_0 aka 0x38 */
|
|
#define A_VIT_BER_TIMER_0 (0x1D)
|
|
|
|
/* 0x21 RS_COR_STAT */
|
|
#define RS_COR_STAT (0x21)
|
|
#define RSCORESTATUS (0x03)
|
|
|
|
/* 0x22 RS_COR_INTEN */
|
|
#define RS_COR_INTEN (0x22)
|
|
|
|
/* 0x23 RS_COR_INSTAT */
|
|
#define RS_COR_INSTAT (0x23)
|
|
#define INSTAT_ERROR (0x04)
|
|
#define LOCK_LOSS_BITS (0x03)
|
|
|
|
/* 0x24 RS_COR_SYNC_PARAM */
|
|
#define RS_COR_SYNC_PARAM (0x24)
|
|
#define SYNC_PARAM (0x03)
|
|
|
|
/* 0x25 BER_CTRL */
|
|
#define BER_CTRL (0x25)
|
|
#define BER_ENABLE (0x02)
|
|
#define BER_RESET (0x01)
|
|
|
|
/* 0x26 BER_PAY */
|
|
#define BER_PAY (0x26)
|
|
|
|
/* 0x27 BER_PKT_L */
|
|
#define BER_PKT_L (0x27)
|
|
#define BER_PKTOVERFLOW (0x80)
|
|
|
|
/* 0x30 VIT_COR_CTL */
|
|
#define VIT_COR_CTL (0x30)
|
|
#define BER_CONTROL (0x02)
|
|
#define VIT_COR_MASK (0x82)
|
|
#define VIT_COR_RESYNC (0x80)
|
|
|
|
|
|
/* 0x32 VIT_SYNC_STATUS */
|
|
#define VIT_SYNC_STATUS (0x32)
|
|
#define VITINSYNC (0x80)
|
|
|
|
/* 0x33 VIT_COR_INTEN */
|
|
#define VIT_COR_INTEN (0x33)
|
|
#define GLOBAL_ENABLE (0x80)
|
|
|
|
/* 0x34 VIT_COR_INTSTAT */
|
|
#define VIT_COR_INTSTAT (0x34)
|
|
#define BER_DONE (0x08)
|
|
#define BER_OVERFLOW (0x10)
|
|
|
|
/* 0x38 VIT_BERTIME_2 */
|
|
#define VIT_BERTIME_2 (0x38)
|
|
|
|
/* 0x39 VIT_BERTIME_1 */
|
|
#define VIT_BERTIME_1 (0x39)
|
|
|
|
/* 0x3A VIT_BERTIME_0 */
|
|
#define VIT_BERTIME_0 (0x3a)
|
|
|
|
/* 0x38 OFDM_BERTimer *//* Use the alias registers */
|
|
#define A_VIT_BER_TIMER_0 (0x1D)
|
|
|
|
/* 0x3A VIT_BER_TIMER_0 *//* Use the alias registers */
|
|
#define A_VIT_BER_0 (0x1B)
|
|
|
|
/* 0x3B VIT_BER_1 */
|
|
#define VIT_BER_1 (0x3b)
|
|
|
|
/* 0x3C VIT_BER_0 */
|
|
#define VIT_BER_0 (0x3c)
|
|
|
|
/* 0x40 OFDM_COR_CTL */
|
|
#define OFDM_COR_CTL (0x40)
|
|
#define COREACT (0x20)
|
|
#define HOLDSM (0x10)
|
|
#define WAIT_AGC (0x02)
|
|
#define WAIT_SYR (0x03)
|
|
|
|
/* 0x41 OFDM_COR_STAT */
|
|
#define OFDM_COR_STAT (0x41)
|
|
#define COR_STATUS (0x0F)
|
|
#define MONITOR_TPS (0x06)
|
|
#define TPSLOCKED (0x40)
|
|
#define AGCLOCKED (0x10)
|
|
|
|
/* 0x42 OFDM_COR_INTEN */
|
|
#define OFDM_COR_INTEN (0x42)
|
|
#define TPSRCVBAD (0x04)
|
|
#define TPSRCVCHANGED (0x02)
|
|
#define TPSRCVUPDATE (0x01)
|
|
|
|
/* 0x43 OFDM_COR_INSTAT */
|
|
#define OFDM_COR_INSTAT (0x43)
|
|
|
|
/* 0x44 OFDM_COR_MODEGUARD */
|
|
#define OFDM_COR_MODEGUARD (0x44)
|
|
#define FORCEMODE (0x08)
|
|
#define FORCEMODE8K (0x04)
|
|
|
|
/* 0x45 OFDM_AGC_CTL */
|
|
#define OFDM_AGC_CTL (0x45)
|
|
#define INITIAL_AGC_BW (0x08)
|
|
#define AGCNEG (0x02)
|
|
#define AGCLAST (0x10)
|
|
|
|
/* 0x48 OFDM_AGC_TARGET */
|
|
#define OFDM_AGC_TARGET (0x48)
|
|
#define OFDM_AGC_TARGET_DEFAULT (0x28)
|
|
#define OFDM_AGC_TARGET_IMPULSE (0x38)
|
|
|
|
/* 0x49 OFDM_AGC_GAIN_1 */
|
|
#define OFDM_AGC_GAIN_1 (0x49)
|
|
|
|
/* 0x4B OFDM_ITB_CTL */
|
|
#define OFDM_ITB_CTL (0x4B)
|
|
#define ITBINV (0x01)
|
|
|
|
/* 0x49 AGC_GAIN_1 */
|
|
#define AGC_GAIN_1 (0x49)
|
|
|
|
/* 0x4A AGC_GAIN_2 */
|
|
#define AGC_GAIN_2 (0x4A)
|
|
|
|
/* 0x4C OFDM_ITB_FREQ_1 */
|
|
#define OFDM_ITB_FREQ_1 (0x4C)
|
|
|
|
/* 0x4D OFDM_ITB_FREQ_2 */
|
|
#define OFDM_ITB_FREQ_2 (0x4D)
|
|
|
|
/* 0x4E OFDM_CAS_CTL */
|
|
#define OFDM_CAS_CTL (0x4E)
|
|
#define ACSDIS (0x40)
|
|
#define CCSEN (0x80)
|
|
|
|
/* 0x4F CAS_FREQ */
|
|
#define CAS_FREQ (0x4F)
|
|
|
|
/* 0x51 OFDM_SYR_CTL */
|
|
#define OFDM_SYR_CTL (0x51)
|
|
#define SIXTH_ENABLE (0x80)
|
|
#define SYR_TRACKING_DISABLE (0x01)
|
|
|
|
/* 0x52 OFDM_SYR_STAT */
|
|
#define OFDM_SYR_STAT (0x52)
|
|
#define GI14_2K_SYR_LOCK (0x13)
|
|
#define GI14_8K_SYR_LOCK (0x17)
|
|
#define GI14_SYR_LOCK (0x10)
|
|
|
|
/* 0x55 OFDM_SYR_OFFSET_1 */
|
|
#define OFDM_SYR_OFFSET_1 (0x55)
|
|
|
|
/* 0x56 OFDM_SYR_OFFSET_2 */
|
|
#define OFDM_SYR_OFFSET_2 (0x56)
|
|
|
|
/* 0x58 OFDM_SCR_CTL */
|
|
#define OFDM_SCR_CTL (0x58)
|
|
#define SYR_ADJ_DECAY_MASK (0x70)
|
|
#define SYR_ADJ_DECAY (0x30)
|
|
|
|
/* 0x59 OFDM_PPM_CTL_1 */
|
|
#define OFDM_PPM_CTL_1 (0x59)
|
|
#define PPMMAX_MASK (0x30)
|
|
#define PPM256 (0x30)
|
|
|
|
/* 0x5B OFDM_TRL_NOMINALRATE_1 */
|
|
#define OFDM_TRL_NOMINALRATE_1 (0x5B)
|
|
|
|
/* 0x5C OFDM_TRL_NOMINALRATE_2 */
|
|
#define OFDM_TRL_NOMINALRATE_2 (0x5C)
|
|
|
|
/* 0x5D OFDM_TRL_TIME_1 */
|
|
#define OFDM_TRL_TIME_1 (0x5D)
|
|
|
|
/* 0x60 OFDM_CRL_FREQ_1 */
|
|
#define OFDM_CRL_FREQ_1 (0x60)
|
|
|
|
/* 0x63 OFDM_CHC_CTL_1 */
|
|
#define OFDM_CHC_CTL_1 (0x63)
|
|
#define MANMEAN1 (0xF0);
|
|
#define CHCFIR (0x01)
|
|
|
|
/* 0x64 OFDM_CHC_SNR */
|
|
#define OFDM_CHC_SNR (0x64)
|
|
|
|
/* 0x65 OFDM_BDI_CTL */
|
|
#define OFDM_BDI_CTL (0x65)
|
|
#define LP_SELECT (0x02)
|
|
|
|
/* 0x67 OFDM_TPS_RCVD_1 */
|
|
#define OFDM_TPS_RCVD_1 (0x67)
|
|
#define TPSFRAME (0x03)
|
|
|
|
/* 0x68 OFDM_TPS_RCVD_2 */
|
|
#define OFDM_TPS_RCVD_2 (0x68)
|
|
|
|
/* 0x69 OFDM_TPS_RCVD_3 */
|
|
#define OFDM_TPS_RCVD_3 (0x69)
|
|
|
|
/* 0x6A OFDM_TPS_RCVD_4 */
|
|
#define OFDM_TPS_RCVD_4 (0x6A)
|
|
|
|
/* 0x6B OFDM_TPS_RESERVED_1 */
|
|
#define OFDM_TPS_RESERVED_1 (0x6B)
|
|
|
|
/* 0x6C OFDM_TPS_RESERVED_2 */
|
|
#define OFDM_TPS_RESERVED_2 (0x6C)
|
|
|
|
/* 0x73 OFDM_MSC_REV */
|
|
#define OFDM_MSC_REV (0x73)
|
|
|
|
/* 0x76 OFDM_SNR_CARRIER_2 */
|
|
#define OFDM_SNR_CARRIER_2 (0x76)
|
|
#define MEAN_MASK (0x80)
|
|
#define MEANBIT (0x80)
|
|
|
|
/* 0x80 ANALOG_CONTROL_0 */
|
|
#define ANALOG_CONTROL_0 (0x80)
|
|
#define POWER_DOWN_ADC (0x40)
|
|
|
|
/* 0x81 ENABLE_TUNER_IIC */
|
|
#define ENABLE_TUNER_IIC (0x81)
|
|
#define ENABLE_TUNER_BIT (0x01)
|
|
|
|
/* 0x82 EN_DMD_RACQ */
|
|
#define EN_DMD_RACQ (0x82)
|
|
#define EN_DMD_RACQ_REG_VAL (0x81)
|
|
#define EN_DMD_RACQ_REG_VAL_14 (0x01)
|
|
|
|
/* 0x84 SNR_COMMAND */
|
|
#define SNR_COMMAND (0x84)
|
|
#define SNRStat (0x80)
|
|
|
|
/* 0x85 SNRCARRIERNUMBER_LSB */
|
|
#define SNRCARRIERNUMBER_LSB (0x85)
|
|
|
|
/* 0x87 SNRMINTHRESHOLD_LSB */
|
|
#define SNRMINTHRESHOLD_LSB (0x87)
|
|
|
|
/* 0x89 SNR_PER_CARRIER_LSB */
|
|
#define SNR_PER_CARRIER_LSB (0x89)
|
|
|
|
/* 0x8B SNRBELOWTHRESHOLD_LSB */
|
|
#define SNRBELOWTHRESHOLD_LSB (0x8B)
|
|
|
|
/* 0x91 RF_AGC_VAL_1 */
|
|
#define RF_AGC_VAL_1 (0x91)
|
|
|
|
/* 0x92 RF_AGC_STATUS */
|
|
#define RF_AGC_STATUS (0x92)
|
|
|
|
/* 0x98 DIAG_CONFIG */
|
|
#define DIAG_CONFIG (0x98)
|
|
#define DIAG_MASK (0x70)
|
|
#define TB_SET (0x10)
|
|
#define TRAN_SELECT (0x07)
|
|
#define SERIAL_SELECT (0x01)
|
|
|
|
/* 0x99 SUB_DIAG_MODE_SEL */
|
|
#define SUB_DIAG_MODE_SEL (0x99)
|
|
#define CLKINVERSION (0x01)
|
|
|
|
/* 0x9A TS_FORMAT */
|
|
#define TS_FORMAT (0x9A)
|
|
#define ERROR_SENSE (0x08)
|
|
#define VALID_SENSE (0x04)
|
|
#define SYNC_SENSE (0x02)
|
|
#define GATED_CLOCK (0x01)
|
|
|
|
#define NXT6000ASICDEVICE (0x0b)
|