deblob.patch (290298B)
- SPDX-FileCopyrightText: 2024 Gábor Stefanik <netrolller.3d@gmail.com>
- SPDX-License-Identifier: GPL-2.0-only
- Remove drivers containing embedded blobs
- diff -ruN ../linux-4.14.336/Documentation/networking/cops.txt ./Documentation/networking/cops.txt
- --- linux-4.14.336/../linux-4.14.336/Documentation/networking/cops.txt 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./Documentation/networking/cops.txt 1970-01-01 01:00:00.000000000 +0100
- @@ -1,63 +0,0 @@
- -Text File for the COPS LocalTalk Linux driver (cops.c).
- - By Jay Schulist <jschlst@samba.org>
- -
- -This driver has two modes and they are: Dayna mode and Tangent mode.
- -Each mode corresponds with the type of card. It has been found
- -that there are 2 main types of cards and all other cards are
- -the same and just have different names or only have minor differences
- -such as more IO ports. As this driver is tested it will
- -become more clear exactly what cards are supported.
- -
- -Right now these cards are known to work with the COPS driver. The
- -LT-200 cards work in a somewhat more limited capacity than the
- -DL200 cards, which work very well and are in use by many people.
- -
- -TANGENT driver mode:
- - Tangent ATB-II, Novell NL-1000, Daystar Digital LT-200
- -DAYNA driver mode:
- - Dayna DL2000/DaynaTalk PC (Half Length), COPS LT-95,
- - Farallon PhoneNET PC III, Farallon PhoneNET PC II
- -Other cards possibly supported mode unknown though:
- - Dayna DL2000 (Full length)
- -
- -The COPS driver defaults to using Dayna mode. To change the driver's
- -mode if you built a driver with dual support use board_type=1 or
- -board_type=2 for Dayna or Tangent with insmod.
- -
- -** Operation/loading of the driver.
- -Use modprobe like this: /sbin/modprobe cops.o (IO #) (IRQ #)
- -If you do not specify any options the driver will try and use the IO = 0x240,
- -IRQ = 5. As of right now I would only use IRQ 5 for the card, if autoprobing.
- -
- -To load multiple COPS driver Localtalk cards you can do one of the following.
- -
- -insmod cops io=0x240 irq=5
- -insmod -o cops2 cops io=0x260 irq=3
- -
- -Or in lilo.conf put something like this:
- - append="ether=5,0x240,lt0 ether=3,0x260,lt1"
- -
- -Then bring up the interface with ifconfig. It will look something like this:
- -lt0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-F7-00-00-00-00-00-00-00-00
- - inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
- - UP BROADCAST RUNNING NOARP MULTICAST MTU:600 Metric:1
- - RX packets:0 errors:0 dropped:0 overruns:0 frame:0
- - TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 coll:0
- -
- -** Netatalk Configuration
- -You will need to configure atalkd with something like the following to make
- -it work with the cops.c driver.
- -
- -* For single LTalk card use.
- -dummy -seed -phase 2 -net 2000 -addr 2000.10 -zone "1033"
- -lt0 -seed -phase 1 -net 1000 -addr 1000.50 -zone "1033"
- -
- -* For multiple cards, Ethernet and LocalTalk.
- -eth0 -seed -phase 2 -net 3000 -addr 3000.20 -zone "1033"
- -lt0 -seed -phase 1 -net 1000 -addr 1000.50 -zone "1033"
- -
- -* For multiple LocalTalk cards, and an Ethernet card.
- -* Order seems to matter here, Ethernet last.
- -lt0 -seed -phase 1 -net 1000 -addr 1000.10 -zone "LocalTalk1"
- -lt1 -seed -phase 1 -net 2000 -addr 2000.20 -zone "LocalTalk2"
- -eth0 -seed -phase 2 -net 3000 -addr 3000.30 -zone "EtherTalk"
- diff -ruN ../linux-4.14.336/arch/powerpc/include/asm/cpm1.h ./arch/powerpc/include/asm/cpm1.h
- --- linux-4.14.336/../linux-4.14.336/arch/powerpc/include/asm/cpm1.h 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./arch/powerpc/include/asm/cpm1.h 2024-02-14 20:39:09.131692114 +0100
- @@ -56,8 +56,6 @@
- extern void cpm_setbrg(uint brg, uint rate);
- -extern void __init cpm_load_patch(cpm8xx_t *cp);
- -
- extern void cpm_reset(void);
- /* Parameter RAM offsets.
- diff -ruN ../linux-4.14.336/arch/powerpc/platforms/8xx/Kconfig ./arch/powerpc/platforms/8xx/Kconfig
- --- linux-4.14.336/../linux-4.14.336/arch/powerpc/platforms/8xx/Kconfig 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./arch/powerpc/platforms/8xx/Kconfig 2024-02-14 21:00:16.561611905 +0100
- @@ -145,35 +145,4 @@
- If in doubt, say Y here.
- -choice
- - prompt "Microcode patch selection"
- - default NO_UCODE_PATCH
- - help
- - Help not implemented yet, coming soon.
- -
- -config NO_UCODE_PATCH
- - bool "None"
- -
- -config USB_SOF_UCODE_PATCH
- - bool "USB SOF patch"
- - help
- - Help not implemented yet, coming soon.
- -
- -config I2C_SPI_UCODE_PATCH
- - bool "I2C/SPI relocation patch"
- - help
- - Help not implemented yet, coming soon.
- -
- -config I2C_SPI_SMC1_UCODE_PATCH
- - bool "I2C/SPI/SMC1 relocation patch"
- - help
- - Help not implemented yet, coming soon.
- -
- -endchoice
- -
- -config UCODE_PATCH
- - bool
- - default y
- - depends on !NO_UCODE_PATCH
- -
- endmenu
- diff -ruN ../linux-4.14.336/arch/powerpc/sysdev/Makefile ./arch/powerpc/sysdev/Makefile
- --- linux-4.14.336/../linux-4.14.336/arch/powerpc/sysdev/Makefile 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./arch/powerpc/sysdev/Makefile 2024-02-14 20:37:04.311700569 +0100
- @@ -46,7 +46,6 @@
- obj-$(CONFIG_CPM2) += cpm2.o cpm2_pic.o
- obj-$(CONFIG_QUICC_ENGINE) += cpm_common.o
- obj-$(CONFIG_PPC_DCR) += dcr.o
- -obj-$(CONFIG_UCODE_PATCH) += micropatch.o
- obj-$(CONFIG_PPC_MPC512x) += mpc5xxx_clocks.o
- obj-$(CONFIG_PPC_MPC52xx) += mpc5xxx_clocks.o
- diff -ruN ../linux-4.14.336/arch/powerpc/sysdev/cpm1.c ./arch/powerpc/sysdev/cpm1.c
- --- linux-4.14.336/../linux-4.14.336/arch/powerpc/sysdev/cpm1.c 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./arch/powerpc/sysdev/cpm1.c 2024-02-14 20:38:38.041694200 +0100
- @@ -218,10 +218,6 @@
- while (in_be16(&cpmp->cp_cpcr) & CPM_CR_FLG);
- #endif
- -#ifdef CONFIG_UCODE_PATCH
- - cpm_load_patch(cpmp);
- -#endif
- -
- /* Set SDMA Bus Request priority 5.
- * On 860T, this also enables FEC priority 6. I am not sure
- * this is what we really want for some applications, but the
- diff -ruN ../linux-4.14.336/arch/powerpc/sysdev/micropatch.c ./arch/powerpc/sysdev/micropatch.c
- --- linux-4.14.336/../linux-4.14.336/arch/powerpc/sysdev/micropatch.c 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./arch/powerpc/sysdev/micropatch.c 1970-01-01 01:00:00.000000000 +0100
- @@ -1,749 +0,0 @@
- -// SPDX-License-Identifier: GPL-2.0
- -
- -/* Microcode patches for the CPM as supplied by Motorola.
- - * This is the one for IIC/SPI. There is a newer one that
- - * also relocates SMC2, but this would require additional changes
- - * to uart.c, so I am holding off on that for a moment.
- - */
- -#include <linux/init.h>
- -#include <linux/errno.h>
- -#include <linux/sched.h>
- -#include <linux/kernel.h>
- -#include <linux/param.h>
- -#include <linux/string.h>
- -#include <linux/mm.h>
- -#include <linux/interrupt.h>
- -#include <asm/irq.h>
- -#include <asm/page.h>
- -#include <asm/pgtable.h>
- -#include <asm/8xx_immap.h>
- -#include <asm/cpm.h>
- -#include <asm/cpm1.h>
- -
- -/*
- - * I2C/SPI relocation patch arrays.
- - */
- -
- -#ifdef CONFIG_I2C_SPI_UCODE_PATCH
- -
- -static uint patch_2000[] __initdata = {
- - 0x7FFFEFD9,
- - 0x3FFD0000,
- - 0x7FFB49F7,
- - 0x7FF90000,
- - 0x5FEFADF7,
- - 0x5F89ADF7,
- - 0x5FEFAFF7,
- - 0x5F89AFF7,
- - 0x3A9CFBC8,
- - 0xE7C0EDF0,
- - 0x77C1E1BB,
- - 0xF4DC7F1D,
- - 0xABAD932F,
- - 0x4E08FDCF,
- - 0x6E0FAFF8,
- - 0x7CCF76CF,
- - 0xFD1FF9CF,
- - 0xABF88DC6,
- - 0xAB5679F7,
- - 0xB0937383,
- - 0xDFCE79F7,
- - 0xB091E6BB,
- - 0xE5BBE74F,
- - 0xB3FA6F0F,
- - 0x6FFB76CE,
- - 0xEE0DF9CF,
- - 0x2BFBEFEF,
- - 0xCFEEF9CF,
- - 0x76CEAD24,
- - 0x90B2DF9A,
- - 0x7FDDD0BF,
- - 0x4BF847FD,
- - 0x7CCF76CE,
- - 0xCFEF7E1F,
- - 0x7F1D7DFD,
- - 0xF0B6EF71,
- - 0x7FC177C1,
- - 0xFBC86079,
- - 0xE722FBC8,
- - 0x5FFFDFFF,
- - 0x5FB2FFFB,
- - 0xFBC8F3C8,
- - 0x94A67F01,
- - 0x7F1D5F39,
- - 0xAFE85F5E,
- - 0xFFDFDF96,
- - 0xCB9FAF7D,
- - 0x5FC1AFED,
- - 0x8C1C5FC1,
- - 0xAFDD5FC3,
- - 0xDF9A7EFD,
- - 0xB0B25FB2,
- - 0xFFFEABAD,
- - 0x5FB2FFFE,
- - 0x5FCE600B,
- - 0xE6BB600B,
- - 0x5FCEDFC6,
- - 0x27FBEFDF,
- - 0x5FC8CFDE,
- - 0x3A9CE7C0,
- - 0xEDF0F3C8,
- - 0x7F0154CD,
- - 0x7F1D2D3D,
- - 0x363A7570,
- - 0x7E0AF1CE,
- - 0x37EF2E68,
- - 0x7FEE10EC,
- - 0xADF8EFDE,
- - 0xCFEAE52F,
- - 0x7D0FE12B,
- - 0xF1CE5F65,
- - 0x7E0A4DF8,
- - 0xCFEA5F72,
- - 0x7D0BEFEE,
- - 0xCFEA5F74,
- - 0xE522EFDE,
- - 0x5F74CFDA,
- - 0x0B627385,
- - 0xDF627E0A,
- - 0x30D8145B,
- - 0xBFFFF3C8,
- - 0x5FFFDFFF,
- - 0xA7F85F5E,
- - 0xBFFE7F7D,
- - 0x10D31450,
- - 0x5F36BFFF,
- - 0xAF785F5E,
- - 0xBFFDA7F8,
- - 0x5F36BFFE,
- - 0x77FD30C0,
- - 0x4E08FDCF,
- - 0xE5FF6E0F,
- - 0xAFF87E1F,
- - 0x7E0FFD1F,
- - 0xF1CF5F1B,
- - 0xABF80D5E,
- - 0x5F5EFFEF,
- - 0x79F730A2,
- - 0xAFDD5F34,
- - 0x47F85F34,
- - 0xAFED7FDD,
- - 0x50B24978,
- - 0x47FD7F1D,
- - 0x7DFD70AD,
- - 0xEF717EC1,
- - 0x6BA47F01,
- - 0x2D267EFD,
- - 0x30DE5F5E,
- - 0xFFFD5F5E,
- - 0xFFEF5F5E,
- - 0xFFDF0CA0,
- - 0xAFED0A9E,
- - 0xAFDD0C3A,
- - 0x5F3AAFBD,
- - 0x7FBDB082,
- - 0x5F8247F8
- -};
- -
- -static uint patch_2f00[] __initdata = {
- - 0x3E303430,
- - 0x34343737,
- - 0xABF7BF9B,
- - 0x994B4FBD,
- - 0xBD599493,
- - 0x349FFF37,
- - 0xFB9B177D,
- - 0xD9936956,
- - 0xBBFDD697,
- - 0xBDD2FD11,
- - 0x31DB9BB3,
- - 0x63139637,
- - 0x93733693,
- - 0x193137F7,
- - 0x331737AF,
- - 0x7BB9B999,
- - 0xBB197957,
- - 0x7FDFD3D5,
- - 0x73B773F7,
- - 0x37933B99,
- - 0x1D115316,
- - 0x99315315,
- - 0x31694BF4,
- - 0xFBDBD359,
- - 0x31497353,
- - 0x76956D69,
- - 0x7B9D9693,
- - 0x13131979,
- - 0x79376935
- -};
- -#endif
- -
- -/*
- - * I2C/SPI/SMC1 relocation patch arrays.
- - */
- -
- -#ifdef CONFIG_I2C_SPI_SMC1_UCODE_PATCH
- -
- -static uint patch_2000[] __initdata = {
- - 0x3fff0000,
- - 0x3ffd0000,
- - 0x3ffb0000,
- - 0x3ff90000,
- - 0x5f13eff8,
- - 0x5eb5eff8,
- - 0x5f88adf7,
- - 0x5fefadf7,
- - 0x3a9cfbc8,
- - 0x77cae1bb,
- - 0xf4de7fad,
- - 0xabae9330,
- - 0x4e08fdcf,
- - 0x6e0faff8,
- - 0x7ccf76cf,
- - 0xfdaff9cf,
- - 0xabf88dc8,
- - 0xab5879f7,
- - 0xb0925d8d,
- - 0xdfd079f7,
- - 0xb090e6bb,
- - 0xe5bbe74f,
- - 0x9e046f0f,
- - 0x6ffb76ce,
- - 0xee0cf9cf,
- - 0x2bfbefef,
- - 0xcfeef9cf,
- - 0x76cead23,
- - 0x90b3df99,
- - 0x7fddd0c1,
- - 0x4bf847fd,
- - 0x7ccf76ce,
- - 0xcfef77ca,
- - 0x7eaf7fad,
- - 0x7dfdf0b7,
- - 0xef7a7fca,
- - 0x77cafbc8,
- - 0x6079e722,
- - 0xfbc85fff,
- - 0xdfff5fb3,
- - 0xfffbfbc8,
- - 0xf3c894a5,
- - 0xe7c9edf9,
- - 0x7f9a7fad,
- - 0x5f36afe8,
- - 0x5f5bffdf,
- - 0xdf95cb9e,
- - 0xaf7d5fc3,
- - 0xafed8c1b,
- - 0x5fc3afdd,
- - 0x5fc5df99,
- - 0x7efdb0b3,
- - 0x5fb3fffe,
- - 0xabae5fb3,
- - 0xfffe5fd0,
- - 0x600be6bb,
- - 0x600b5fd0,
- - 0xdfc827fb,
- - 0xefdf5fca,
- - 0xcfde3a9c,
- - 0xe7c9edf9,
- - 0xf3c87f9e,
- - 0x54ca7fed,
- - 0x2d3a3637,
- - 0x756f7e9a,
- - 0xf1ce37ef,
- - 0x2e677fee,
- - 0x10ebadf8,
- - 0xefdecfea,
- - 0xe52f7d9f,
- - 0xe12bf1ce,
- - 0x5f647e9a,
- - 0x4df8cfea,
- - 0x5f717d9b,
- - 0xefeecfea,
- - 0x5f73e522,
- - 0xefde5f73,
- - 0xcfda0b61,
- - 0x5d8fdf61,
- - 0xe7c9edf9,
- - 0x7e9a30d5,
- - 0x1458bfff,
- - 0xf3c85fff,
- - 0xdfffa7f8,
- - 0x5f5bbffe,
- - 0x7f7d10d0,
- - 0x144d5f33,
- - 0xbfffaf78,
- - 0x5f5bbffd,
- - 0xa7f85f33,
- - 0xbffe77fd,
- - 0x30bd4e08,
- - 0xfdcfe5ff,
- - 0x6e0faff8,
- - 0x7eef7e9f,
- - 0xfdeff1cf,
- - 0x5f17abf8,
- - 0x0d5b5f5b,
- - 0xffef79f7,
- - 0x309eafdd,
- - 0x5f3147f8,
- - 0x5f31afed,
- - 0x7fdd50af,
- - 0x497847fd,
- - 0x7f9e7fed,
- - 0x7dfd70a9,
- - 0xef7e7ece,
- - 0x6ba07f9e,
- - 0x2d227efd,
- - 0x30db5f5b,
- - 0xfffd5f5b,
- - 0xffef5f5b,
- - 0xffdf0c9c,
- - 0xafed0a9a,
- - 0xafdd0c37,
- - 0x5f37afbd,
- - 0x7fbdb081,
- - 0x5f8147f8,
- - 0x3a11e710,
- - 0xedf0ccdd,
- - 0xf3186d0a,
- - 0x7f0e5f06,
- - 0x7fedbb38,
- - 0x3afe7468,
- - 0x7fedf4fc,
- - 0x8ffbb951,
- - 0xb85f77fd,
- - 0xb0df5ddd,
- - 0xdefe7fed,
- - 0x90e1e74d,
- - 0x6f0dcbf7,
- - 0xe7decfed,
- - 0xcb74cfed,
- - 0xcfeddf6d,
- - 0x91714f74,
- - 0x5dd2deef,
- - 0x9e04e7df,
- - 0xefbb6ffb,
- - 0xe7ef7f0e,
- - 0x9e097fed,
- - 0xebdbeffa,
- - 0xeb54affb,
- - 0x7fea90d7,
- - 0x7e0cf0c3,
- - 0xbffff318,
- - 0x5fffdfff,
- - 0xac59efea,
- - 0x7fce1ee5,
- - 0xe2ff5ee1,
- - 0xaffbe2ff,
- - 0x5ee3affb,
- - 0xf9cc7d0f,
- - 0xaef8770f,
- - 0x7d0fb0c6,
- - 0xeffbbfff,
- - 0xcfef5ede,
- - 0x7d0fbfff,
- - 0x5ede4cf8,
- - 0x7fddd0bf,
- - 0x49f847fd,
- - 0x7efdf0bb,
- - 0x7fedfffd,
- - 0x7dfdf0b7,
- - 0xef7e7e1e,
- - 0x5ede7f0e,
- - 0x3a11e710,
- - 0xedf0ccab,
- - 0xfb18ad2e,
- - 0x1ea9bbb8,
- - 0x74283b7e,
- - 0x73c2e4bb,
- - 0x2ada4fb8,
- - 0xdc21e4bb,
- - 0xb2a1ffbf,
- - 0x5e2c43f8,
- - 0xfc87e1bb,
- - 0xe74ffd91,
- - 0x6f0f4fe8,
- - 0xc7ba32e2,
- - 0xf396efeb,
- - 0x600b4f78,
- - 0xe5bb760b,
- - 0x53acaef8,
- - 0x4ef88b0e,
- - 0xcfef9e09,
- - 0xabf8751f,
- - 0xefef5bac,
- - 0x741f4fe8,
- - 0x751e760d,
- - 0x7fdbf081,
- - 0x741cafce,
- - 0xefcc7fce,
- - 0x751e70ac,
- - 0x741ce7bb,
- - 0x3372cfed,
- - 0xafdbefeb,
- - 0xe5bb760b,
- - 0x53f2aef8,
- - 0xafe8e7eb,
- - 0x4bf8771e,
- - 0x7e247fed,
- - 0x4fcbe2cc,
- - 0x7fbc30a9,
- - 0x7b0f7a0f,
- - 0x34d577fd,
- - 0x308b5db7,
- - 0xde553e5f,
- - 0xaf78741f,
- - 0x741f30f0,
- - 0xcfef5e2c,
- - 0x741f3eac,
- - 0xafb8771e,
- - 0x5e677fed,
- - 0x0bd3e2cc,
- - 0x741ccfec,
- - 0xe5ca53cd,
- - 0x6fcb4f74,
- - 0x5dadde4b,
- - 0x2ab63d38,
- - 0x4bb3de30,
- - 0x751f741c,
- - 0x6c42effa,
- - 0xefea7fce,
- - 0x6ffc30be,
- - 0xefec3fca,
- - 0x30b3de2e,
- - 0xadf85d9e,
- - 0xaf7daefd,
- - 0x5d9ede2e,
- - 0x5d9eafdd,
- - 0x761f10ac,
- - 0x1da07efd,
- - 0x30adfffe,
- - 0x4908fb18,
- - 0x5fffdfff,
- - 0xafbb709b,
- - 0x4ef85e67,
- - 0xadf814ad,
- - 0x7a0f70ad,
- - 0xcfef50ad,
- - 0x7a0fde30,
- - 0x5da0afed,
- - 0x3c12780f,
- - 0xefef780f,
- - 0xefef790f,
- - 0xa7f85e0f,
- - 0xffef790f,
- - 0xefef790f,
- - 0x14adde2e,
- - 0x5d9eadfd,
- - 0x5e2dfffb,
- - 0xe79addfd,
- - 0xeff96079,
- - 0x607ae79a,
- - 0xddfceff9,
- - 0x60795dff,
- - 0x607acfef,
- - 0xefefefdf,
- - 0xefbfef7f,
- - 0xeeffedff,
- - 0xebffe7ff,
- - 0xafefafdf,
- - 0xafbfaf7f,
- - 0xaeffadff,
- - 0xabffa7ff,
- - 0x6fef6fdf,
- - 0x6fbf6f7f,
- - 0x6eff6dff,
- - 0x6bff67ff,
- - 0x2fef2fdf,
- - 0x2fbf2f7f,
- - 0x2eff2dff,
- - 0x2bff27ff,
- - 0x4e08fd1f,
- - 0xe5ff6e0f,
- - 0xaff87eef,
- - 0x7e0ffdef,
- - 0xf11f6079,
- - 0xabf8f542,
- - 0x7e0af11c,
- - 0x37cfae3a,
- - 0x7fec90be,
- - 0xadf8efdc,
- - 0xcfeae52f,
- - 0x7d0fe12b,
- - 0xf11c6079,
- - 0x7e0a4df8,
- - 0xcfea5dc4,
- - 0x7d0befec,
- - 0xcfea5dc6,
- - 0xe522efdc,
- - 0x5dc6cfda,
- - 0x4e08fd1f,
- - 0x6e0faff8,
- - 0x7c1f761f,
- - 0xfdeff91f,
- - 0x6079abf8,
- - 0x761cee24,
- - 0xf91f2bfb,
- - 0xefefcfec,
- - 0xf91f6079,
- - 0x761c27fb,
- - 0xefdf5da7,
- - 0xcfdc7fdd,
- - 0xd09c4bf8,
- - 0x47fd7c1f,
- - 0x761ccfcf,
- - 0x7eef7fed,
- - 0x7dfdf093,
- - 0xef7e7f1e,
- - 0x771efb18,
- - 0x6079e722,
- - 0xe6bbe5bb,
- - 0xae0ae5bb,
- - 0x600bae85,
- - 0xe2bbe2bb,
- - 0xe2bbe2bb,
- - 0xaf02e2bb,
- - 0xe2bb2ff9,
- - 0x6079e2bb
- -};
- -
- -static uint patch_2f00[] __initdata = {
- - 0x30303030,
- - 0x3e3e3434,
- - 0xabbf9b99,
- - 0x4b4fbdbd,
- - 0x59949334,
- - 0x9fff37fb,
- - 0x9b177dd9,
- - 0x936956bb,
- - 0xfbdd697b,
- - 0xdd2fd113,
- - 0x1db9f7bb,
- - 0x36313963,
- - 0x79373369,
- - 0x3193137f,
- - 0x7331737a,
- - 0xf7bb9b99,
- - 0x9bb19795,
- - 0x77fdfd3d,
- - 0x573b773f,
- - 0x737933f7,
- - 0xb991d115,
- - 0x31699315,
- - 0x31531694,
- - 0xbf4fbdbd,
- - 0x35931497,
- - 0x35376956,
- - 0xbd697b9d,
- - 0x96931313,
- - 0x19797937,
- - 0x6935af78,
- - 0xb9b3baa3,
- - 0xb8788683,
- - 0x368f78f7,
- - 0x87778733,
- - 0x3ffffb3b,
- - 0x8e8f78b8,
- - 0x1d118e13,
- - 0xf3ff3f8b,
- - 0x6bd8e173,
- - 0xd1366856,
- - 0x68d1687b,
- - 0x3daf78b8,
- - 0x3a3a3f87,
- - 0x8f81378f,
- - 0xf876f887,
- - 0x77fd8778,
- - 0x737de8d6,
- - 0xbbf8bfff,
- - 0xd8df87f7,
- - 0xfd876f7b,
- - 0x8bfff8bd,
- - 0x8683387d,
- - 0xb873d87b,
- - 0x3b8fd7f8,
- - 0xf7338883,
- - 0xbb8ee1f8,
- - 0xef837377,
- - 0x3337b836,
- - 0x817d11f8,
- - 0x7378b878,
- - 0xd3368b7d,
- - 0xed731b7d,
- - 0x833731f3,
- - 0xf22f3f23
- -};
- -
- -static uint patch_2e00[] __initdata = {
- - 0x27eeeeee,
- - 0xeeeeeeee,
- - 0xeeeeeeee,
- - 0xeeeeeeee,
- - 0xee4bf4fb,
- - 0xdbd259bb,
- - 0x1979577f,
- - 0xdfd2d573,
- - 0xb773f737,
- - 0x4b4fbdbd,
- - 0x25b9b177,
- - 0xd2d17376,
- - 0x956bbfdd,
- - 0x697bdd2f,
- - 0xff9f79ff,
- - 0xff9ff22f
- -};
- -#endif
- -
- -/*
- - * USB SOF patch arrays.
- - */
- -
- -#ifdef CONFIG_USB_SOF_UCODE_PATCH
- -
- -static uint patch_2000[] __initdata = {
- - 0x7fff0000,
- - 0x7ffd0000,
- - 0x7ffb0000,
- - 0x49f7ba5b,
- - 0xba383ffb,
- - 0xf9b8b46d,
- - 0xe5ab4e07,
- - 0xaf77bffe,
- - 0x3f7bbf79,
- - 0xba5bba38,
- - 0xe7676076,
- - 0x60750000
- -};
- -
- -static uint patch_2f00[] __initdata = {
- - 0x3030304c,
- - 0xcab9e441,
- - 0xa1aaf220
- -};
- -#endif
- -
- -void __init cpm_load_patch(cpm8xx_t *cp)
- -{
- - volatile uint *dp; /* Dual-ported RAM. */
- - volatile cpm8xx_t *commproc;
- -#if defined(CONFIG_I2C_SPI_UCODE_PATCH) || \
- - defined(CONFIG_I2C_SPI_SMC1_UCODE_PATCH)
- - volatile iic_t *iip;
- - volatile struct spi_pram *spp;
- -#ifdef CONFIG_I2C_SPI_SMC1_UCODE_PATCH
- - volatile smc_uart_t *smp;
- -#endif
- -#endif
- - int i;
- -
- - commproc = cp;
- -
- -#ifdef CONFIG_USB_SOF_UCODE_PATCH
- - commproc->cp_rccr = 0;
- -
- - dp = (uint *)(commproc->cp_dpmem);
- - for (i=0; i<(sizeof(patch_2000)/4); i++)
- - *dp++ = patch_2000[i];
- -
- - dp = (uint *)&(commproc->cp_dpmem[0x0f00]);
- - for (i=0; i<(sizeof(patch_2f00)/4); i++)
- - *dp++ = patch_2f00[i];
- -
- - commproc->cp_rccr = 0x0009;
- -
- - printk("USB SOF microcode patch installed\n");
- -#endif /* CONFIG_USB_SOF_UCODE_PATCH */
- -
- -#if defined(CONFIG_I2C_SPI_UCODE_PATCH) || \
- - defined(CONFIG_I2C_SPI_SMC1_UCODE_PATCH)
- -
- - commproc->cp_rccr = 0;
- -
- - dp = (uint *)(commproc->cp_dpmem);
- - for (i=0; i<(sizeof(patch_2000)/4); i++)
- - *dp++ = patch_2000[i];
- -
- - dp = (uint *)&(commproc->cp_dpmem[0x0f00]);
- - for (i=0; i<(sizeof(patch_2f00)/4); i++)
- - *dp++ = patch_2f00[i];
- -
- - iip = (iic_t *)&commproc->cp_dparam[PROFF_IIC];
- -# define RPBASE 0x0500
- - iip->iic_rpbase = RPBASE;
- -
- - /* Put SPI above the IIC, also 32-byte aligned.
- - */
- - i = (RPBASE + sizeof(iic_t) + 31) & ~31;
- - spp = (struct spi_pram *)&commproc->cp_dparam[PROFF_SPI];
- - spp->rpbase = i;
- -
- -# if defined(CONFIG_I2C_SPI_UCODE_PATCH)
- - commproc->cp_cpmcr1 = 0x802a;
- - commproc->cp_cpmcr2 = 0x8028;
- - commproc->cp_cpmcr3 = 0x802e;
- - commproc->cp_cpmcr4 = 0x802c;
- - commproc->cp_rccr = 1;
- -
- - printk("I2C/SPI microcode patch installed.\n");
- -# endif /* CONFIG_I2C_SPI_UCODE_PATCH */
- -
- -# if defined(CONFIG_I2C_SPI_SMC1_UCODE_PATCH)
- -
- - dp = (uint *)&(commproc->cp_dpmem[0x0e00]);
- - for (i=0; i<(sizeof(patch_2e00)/4); i++)
- - *dp++ = patch_2e00[i];
- -
- - commproc->cp_cpmcr1 = 0x8080;
- - commproc->cp_cpmcr2 = 0x808a;
- - commproc->cp_cpmcr3 = 0x8028;
- - commproc->cp_cpmcr4 = 0x802a;
- - commproc->cp_rccr = 3;
- -
- - smp = (smc_uart_t *)&commproc->cp_dparam[PROFF_SMC1];
- - smp->smc_rpbase = 0x1FC0;
- -
- - printk("I2C/SPI/SMC1 microcode patch installed.\n");
- -# endif /* CONFIG_I2C_SPI_SMC1_UCODE_PATCH) */
- -
- -#endif /* some variation of the I2C/SPI patch was selected */
- -}
- -
- -/*
- - * Take this entire routine out, since no one calls it and its
- - * logic is suspect.
- - */
- -
- -#if 0
- -void
- -verify_patch(volatile immap_t *immr)
- -{
- - volatile uint *dp;
- - volatile cpm8xx_t *commproc;
- - int i;
- -
- - commproc = (cpm8xx_t *)&immr->im_cpm;
- -
- - printk("cp_rccr %x\n", commproc->cp_rccr);
- - commproc->cp_rccr = 0;
- -
- - dp = (uint *)(commproc->cp_dpmem);
- - for (i=0; i<(sizeof(patch_2000)/4); i++)
- - if (*dp++ != patch_2000[i]) {
- - printk("patch_2000 bad at %d\n", i);
- - dp--;
- - printk("found 0x%X, wanted 0x%X\n", *dp, patch_2000[i]);
- - break;
- - }
- -
- - dp = (uint *)&(commproc->cp_dpmem[0x0f00]);
- - for (i=0; i<(sizeof(patch_2f00)/4); i++)
- - if (*dp++ != patch_2f00[i]) {
- - printk("patch_2f00 bad at %d\n", i);
- - dp--;
- - printk("found 0x%X, wanted 0x%X\n", *dp, patch_2f00[i]);
- - break;
- - }
- -
- - commproc->cp_rccr = 0x0009;
- -}
- -#endif
- diff -ruN ../linux-4.14.336/drivers/i2c/busses/i2c-cpm.c ./drivers/i2c/busses/i2c-cpm.c
- --- linux-4.14.336/../linux-4.14.336/drivers/i2c/busses/i2c-cpm.c 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./drivers/i2c/busses/i2c-cpm.c 2024-02-14 20:42:10.901680998 +0100
- @@ -461,20 +461,9 @@
- }
- if (of_device_is_compatible(ofdev->dev.of_node, "fsl,cpm1-i2c")) {
- -
- - /* Check for and use a microcode relocation patch. */
- cpm->i2c_ram = i2c_base;
- cpm->i2c_addr = in_be16(&cpm->i2c_ram->rpbase);
- - /*
- - * Maybe should use cpm_muram_alloc instead of hardcoding
- - * this in micropatch.c
- - */
- - if (cpm->i2c_addr) {
- - cpm->i2c_ram = cpm_muram_addr(cpm->i2c_addr);
- - iounmap(i2c_base);
- - }
- -
- cpm->version = 1;
- } else if (of_device_is_compatible(ofdev->dev.of_node, "fsl,cpm2-i2c")) {
- diff -ruN ../linux-4.14.336/drivers/media/usb/dvb-usb/Kconfig ./drivers/media/usb/dvb-usb/Kconfig
- --- linux-4.14.336/../linux-4.14.336/drivers/media/usb/dvb-usb/Kconfig 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./drivers/media/usb/dvb-usb/Kconfig 2024-02-14 21:41:13.341455995 +0100
- @@ -242,22 +242,6 @@
- help
- Say Y here to support the Opera DVB-S USB2.0 receiver.
- -config DVB_USB_AF9005
- - tristate "Afatech AF9005 DVB-T USB1.1 support"
- - depends on DVB_USB
- - select MEDIA_TUNER_MT2060 if MEDIA_SUBDRV_AUTOSELECT
- - select MEDIA_TUNER_QT1010 if MEDIA_SUBDRV_AUTOSELECT
- - help
- - Say Y here to support the Afatech AF9005 based DVB-T USB1.1 receiver
- - and the TerraTec Cinergy T USB XE (Rev.1)
- -
- -config DVB_USB_AF9005_REMOTE
- - tristate "Afatech AF9005 default remote control support"
- - depends on DVB_USB_AF9005
- - help
- - Say Y here to support the default remote control decoding for the
- - Afatech AF9005 based receiver.
- -
- config DVB_USB_PCTV452E
- tristate "Pinnacle PCTV HDTV Pro USB device/TT Connect S2-3600"
- depends on DVB_USB
- diff -ruN ../linux-4.14.336/drivers/media/usb/dvb-usb/Makefile ./drivers/media/usb/dvb-usb/Makefile
- --- linux-4.14.336/../linux-4.14.336/drivers/media/usb/dvb-usb/Makefile 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./drivers/media/usb/dvb-usb/Makefile 2024-02-14 21:40:58.271457116 +0100
- @@ -53,12 +53,6 @@
- dvb-usb-opera-objs := opera1.o
- obj-$(CONFIG_DVB_USB_OPERA1) += dvb-usb-opera.o
- -dvb-usb-af9005-objs := af9005.o af9005-fe.o
- -obj-$(CONFIG_DVB_USB_AF9005) += dvb-usb-af9005.o
- -
- -dvb-usb-af9005-remote-objs := af9005-remote.o
- -obj-$(CONFIG_DVB_USB_AF9005_REMOTE) += dvb-usb-af9005-remote.o
- -
- dvb-usb-pctv452e-objs := pctv452e.o
- obj-$(CONFIG_DVB_USB_PCTV452E) += dvb-usb-pctv452e.o
- diff -ruN ../linux-4.14.336/drivers/media/usb/dvb-usb/af9005-fe.c ./drivers/media/usb/dvb-usb/af9005-fe.c
- --- linux-4.14.336/../linux-4.14.336/drivers/media/usb/dvb-usb/af9005-fe.c 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./drivers/media/usb/dvb-usb/af9005-fe.c 1970-01-01 01:00:00.000000000 +0100
- @@ -1,1484 +0,0 @@
- -/* Frontend part of the Linux driver for the Afatech 9005
- - * USB1.1 DVB-T receiver.
- - *
- - * Copyright (C) 2007 Luca Olivetti (luca@ventoso.org)
- - *
- - * Thanks to Afatech who kindly provided information.
- - *
- - * This program is free software; you can redistribute it and/or modify
- - * it under the terms of the GNU General Public License as published by
- - * the Free Software Foundation; either version 2 of the License, or
- - * (at your option) any later version.
- - *
- - * This program is distributed in the hope that it will be useful,
- - * but WITHOUT ANY WARRANTY; without even the implied warranty of
- - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- - * GNU General Public License for more details.
- - *
- - * see Documentation/dvb/README.dvb-usb for more information
- - */
- -#include "af9005.h"
- -#include "af9005-script.h"
- -#include "mt2060.h"
- -#include "qt1010.h"
- -#include <asm/div64.h>
- -
- -struct af9005_fe_state {
- - struct dvb_usb_device *d;
- - enum fe_status stat;
- -
- - /* retraining parameters */
- - u32 original_fcw;
- - u16 original_rf_top;
- - u16 original_if_top;
- - u16 original_if_min;
- - u16 original_aci0_if_top;
- - u16 original_aci1_if_top;
- - u16 original_aci0_if_min;
- - u8 original_if_unplug_th;
- - u8 original_rf_unplug_th;
- - u8 original_dtop_if_unplug_th;
- - u8 original_dtop_rf_unplug_th;
- -
- - /* statistics */
- - u32 pre_vit_error_count;
- - u32 pre_vit_bit_count;
- - u32 ber;
- - u32 post_vit_error_count;
- - u32 post_vit_bit_count;
- - u32 unc;
- - u16 abort_count;
- -
- - int opened;
- - int strong;
- - unsigned long next_status_check;
- - struct dvb_frontend frontend;
- -};
- -
- -static int af9005_write_word_agc(struct dvb_usb_device *d, u16 reghi,
- - u16 reglo, u8 pos, u8 len, u16 value)
- -{
- - int ret;
- -
- - if ((ret = af9005_write_ofdm_register(d, reglo, (u8) (value & 0xff))))
- - return ret;
- - return af9005_write_register_bits(d, reghi, pos, len,
- - (u8) ((value & 0x300) >> 8));
- -}
- -
- -static int af9005_read_word_agc(struct dvb_usb_device *d, u16 reghi,
- - u16 reglo, u8 pos, u8 len, u16 * value)
- -{
- - int ret;
- - u8 temp0, temp1;
- -
- - if ((ret = af9005_read_ofdm_register(d, reglo, &temp0)))
- - return ret;
- - if ((ret = af9005_read_ofdm_register(d, reghi, &temp1)))
- - return ret;
- - switch (pos) {
- - case 0:
- - *value = ((u16) (temp1 & 0x03) << 8) + (u16) temp0;
- - break;
- - case 2:
- - *value = ((u16) (temp1 & 0x0C) << 6) + (u16) temp0;
- - break;
- - case 4:
- - *value = ((u16) (temp1 & 0x30) << 4) + (u16) temp0;
- - break;
- - case 6:
- - *value = ((u16) (temp1 & 0xC0) << 2) + (u16) temp0;
- - break;
- - default:
- - err("invalid pos in read word agc");
- - return -EINVAL;
- - }
- - return 0;
- -
- -}
- -
- -static int af9005_is_fecmon_available(struct dvb_frontend *fe, int *available)
- -{
- - struct af9005_fe_state *state = fe->demodulator_priv;
- - int ret;
- - u8 temp;
- -
- - *available = false;
- -
- - ret = af9005_read_register_bits(state->d, xd_p_fec_vtb_rsd_mon_en,
- - fec_vtb_rsd_mon_en_pos,
- - fec_vtb_rsd_mon_en_len, &temp);
- - if (ret)
- - return ret;
- - if (temp & 1) {
- - ret =
- - af9005_read_register_bits(state->d,
- - xd_p_reg_ofsm_read_rbc_en,
- - reg_ofsm_read_rbc_en_pos,
- - reg_ofsm_read_rbc_en_len, &temp);
- - if (ret)
- - return ret;
- - if ((temp & 1) == 0)
- - *available = true;
- -
- - }
- - return 0;
- -}
- -
- -static int af9005_get_post_vit_err_cw_count(struct dvb_frontend *fe,
- - u32 * post_err_count,
- - u32 * post_cw_count,
- - u16 * abort_count)
- -{
- - struct af9005_fe_state *state = fe->demodulator_priv;
- - int ret;
- - u32 err_count;
- - u32 cw_count;
- - u8 temp, temp0, temp1, temp2;
- - u16 loc_abort_count;
- -
- - *post_err_count = 0;
- - *post_cw_count = 0;
- -
- - /* check if error bit count is ready */
- - ret =
- - af9005_read_register_bits(state->d, xd_r_fec_rsd_ber_rdy,
- - fec_rsd_ber_rdy_pos, fec_rsd_ber_rdy_len,
- - &temp);
- - if (ret)
- - return ret;
- - if (!temp) {
- - deb_info("rsd counter not ready\n");
- - return 100;
- - }
- - /* get abort count */
- - ret =
- - af9005_read_ofdm_register(state->d,
- - xd_r_fec_rsd_abort_packet_cnt_7_0,
- - &temp0);
- - if (ret)
- - return ret;
- - ret =
- - af9005_read_ofdm_register(state->d,
- - xd_r_fec_rsd_abort_packet_cnt_15_8,
- - &temp1);
- - if (ret)
- - return ret;
- - loc_abort_count = ((u16) temp1 << 8) + temp0;
- -
- - /* get error count */
- - ret =
- - af9005_read_ofdm_register(state->d, xd_r_fec_rsd_bit_err_cnt_7_0,
- - &temp0);
- - if (ret)
- - return ret;
- - ret =
- - af9005_read_ofdm_register(state->d, xd_r_fec_rsd_bit_err_cnt_15_8,
- - &temp1);
- - if (ret)
- - return ret;
- - ret =
- - af9005_read_ofdm_register(state->d, xd_r_fec_rsd_bit_err_cnt_23_16,
- - &temp2);
- - if (ret)
- - return ret;
- - err_count = ((u32) temp2 << 16) + ((u32) temp1 << 8) + temp0;
- - *post_err_count = err_count - (u32) loc_abort_count *8 * 8;
- -
- - /* get RSD packet number */
- - ret =
- - af9005_read_ofdm_register(state->d, xd_p_fec_rsd_packet_unit_7_0,
- - &temp0);
- - if (ret)
- - return ret;
- - ret =
- - af9005_read_ofdm_register(state->d, xd_p_fec_rsd_packet_unit_15_8,
- - &temp1);
- - if (ret)
- - return ret;
- - cw_count = ((u32) temp1 << 8) + temp0;
- - if (cw_count == 0) {
- - err("wrong RSD packet count");
- - return -EIO;
- - }
- - deb_info("POST abort count %d err count %d rsd packets %d\n",
- - loc_abort_count, err_count, cw_count);
- - *post_cw_count = cw_count - (u32) loc_abort_count;
- - *abort_count = loc_abort_count;
- - return 0;
- -
- -}
- -
- -static int af9005_get_post_vit_ber(struct dvb_frontend *fe,
- - u32 * post_err_count, u32 * post_cw_count,
- - u16 * abort_count)
- -{
- - u32 loc_cw_count = 0, loc_err_count;
- - u16 loc_abort_count = 0;
- - int ret;
- -
- - ret =
- - af9005_get_post_vit_err_cw_count(fe, &loc_err_count, &loc_cw_count,
- - &loc_abort_count);
- - if (ret)
- - return ret;
- - *post_err_count = loc_err_count;
- - *post_cw_count = loc_cw_count * 204 * 8;
- - *abort_count = loc_abort_count;
- -
- - return 0;
- -}
- -
- -static int af9005_get_pre_vit_err_bit_count(struct dvb_frontend *fe,
- - u32 * pre_err_count,
- - u32 * pre_bit_count)
- -{
- - struct af9005_fe_state *state = fe->demodulator_priv;
- - u8 temp, temp0, temp1, temp2;
- - u32 super_frame_count, x, bits;
- - int ret;
- -
- - ret =
- - af9005_read_register_bits(state->d, xd_r_fec_vtb_ber_rdy,
- - fec_vtb_ber_rdy_pos, fec_vtb_ber_rdy_len,
- - &temp);
- - if (ret)
- - return ret;
- - if (!temp) {
- - deb_info("viterbi counter not ready\n");
- - return 101; /* ERR_APO_VTB_COUNTER_NOT_READY; */
- - }
- - ret =
- - af9005_read_ofdm_register(state->d, xd_r_fec_vtb_err_bit_cnt_7_0,
- - &temp0);
- - if (ret)
- - return ret;
- - ret =
- - af9005_read_ofdm_register(state->d, xd_r_fec_vtb_err_bit_cnt_15_8,
- - &temp1);
- - if (ret)
- - return ret;
- - ret =
- - af9005_read_ofdm_register(state->d, xd_r_fec_vtb_err_bit_cnt_23_16,
- - &temp2);
- - if (ret)
- - return ret;
- - *pre_err_count = ((u32) temp2 << 16) + ((u32) temp1 << 8) + temp0;
- -
- - ret =
- - af9005_read_ofdm_register(state->d, xd_p_fec_super_frm_unit_7_0,
- - &temp0);
- - if (ret)
- - return ret;
- - ret =
- - af9005_read_ofdm_register(state->d, xd_p_fec_super_frm_unit_15_8,
- - &temp1);
- - if (ret)
- - return ret;
- - super_frame_count = ((u32) temp1 << 8) + temp0;
- - if (super_frame_count == 0) {
- - deb_info("super frame count 0\n");
- - return 102;
- - }
- -
- - /* read fft mode */
- - ret =
- - af9005_read_register_bits(state->d, xd_g_reg_tpsd_txmod,
- - reg_tpsd_txmod_pos, reg_tpsd_txmod_len,
- - &temp);
- - if (ret)
- - return ret;
- - if (temp == 0) {
- - /* 2K */
- - x = 1512;
- - } else if (temp == 1) {
- - /* 8k */
- - x = 6048;
- - } else {
- - err("Invalid fft mode");
- - return -EINVAL;
- - }
- -
- - /* read modulation mode */
- - ret =
- - af9005_read_register_bits(state->d, xd_g_reg_tpsd_const,
- - reg_tpsd_const_pos, reg_tpsd_const_len,
- - &temp);
- - if (ret)
- - return ret;
- - switch (temp) {
- - case 0: /* QPSK */
- - bits = 2;
- - break;
- - case 1: /* QAM_16 */
- - bits = 4;
- - break;
- - case 2: /* QAM_64 */
- - bits = 6;
- - break;
- - default:
- - err("invalid modulation mode");
- - return -EINVAL;
- - }
- - *pre_bit_count = super_frame_count * 68 * 4 * x * bits;
- - deb_info("PRE err count %d frame count %d bit count %d\n",
- - *pre_err_count, super_frame_count, *pre_bit_count);
- - return 0;
- -}
- -
- -static int af9005_reset_pre_viterbi(struct dvb_frontend *fe)
- -{
- - struct af9005_fe_state *state = fe->demodulator_priv;
- - int ret;
- -
- - /* set super frame count to 1 */
- - ret =
- - af9005_write_ofdm_register(state->d, xd_p_fec_super_frm_unit_7_0,
- - 1 & 0xff);
- - if (ret)
- - return ret;
- - ret = af9005_write_ofdm_register(state->d, xd_p_fec_super_frm_unit_15_8,
- - 1 >> 8);
- - if (ret)
- - return ret;
- - /* reset pre viterbi error count */
- - ret =
- - af9005_write_register_bits(state->d, xd_p_fec_vtb_ber_rst,
- - fec_vtb_ber_rst_pos, fec_vtb_ber_rst_len,
- - 1);
- -
- - return ret;
- -}
- -
- -static int af9005_reset_post_viterbi(struct dvb_frontend *fe)
- -{
- - struct af9005_fe_state *state = fe->demodulator_priv;
- - int ret;
- -
- - /* set packet unit */
- - ret =
- - af9005_write_ofdm_register(state->d, xd_p_fec_rsd_packet_unit_7_0,
- - 10000 & 0xff);
- - if (ret)
- - return ret;
- - ret =
- - af9005_write_ofdm_register(state->d, xd_p_fec_rsd_packet_unit_15_8,
- - 10000 >> 8);
- - if (ret)
- - return ret;
- - /* reset post viterbi error count */
- - ret =
- - af9005_write_register_bits(state->d, xd_p_fec_rsd_ber_rst,
- - fec_rsd_ber_rst_pos, fec_rsd_ber_rst_len,
- - 1);
- -
- - return ret;
- -}
- -
- -static int af9005_get_statistic(struct dvb_frontend *fe)
- -{
- - struct af9005_fe_state *state = fe->demodulator_priv;
- - int ret, fecavailable;
- - u64 numerator, denominator;
- -
- - deb_info("GET STATISTIC\n");
- - ret = af9005_is_fecmon_available(fe, &fecavailable);
- - if (ret)
- - return ret;
- - if (!fecavailable) {
- - deb_info("fecmon not available\n");
- - return 0;
- - }
- -
- - ret = af9005_get_pre_vit_err_bit_count(fe, &state->pre_vit_error_count,
- - &state->pre_vit_bit_count);
- - if (ret == 0) {
- - af9005_reset_pre_viterbi(fe);
- - if (state->pre_vit_bit_count > 0) {
- - /* according to v 0.0.4 of the dvb api ber should be a multiple
- - of 10E-9 so we have to multiply the error count by
- - 10E9=1000000000 */
- - numerator =
- - (u64) state->pre_vit_error_count * (u64) 1000000000;
- - denominator = (u64) state->pre_vit_bit_count;
- - state->ber = do_div(numerator, denominator);
- - } else {
- - state->ber = 0xffffffff;
- - }
- - }
- -
- - ret = af9005_get_post_vit_ber(fe, &state->post_vit_error_count,
- - &state->post_vit_bit_count,
- - &state->abort_count);
- - if (ret == 0) {
- - ret = af9005_reset_post_viterbi(fe);
- - state->unc += state->abort_count;
- - if (ret)
- - return ret;
- - }
- - return 0;
- -}
- -
- -static int af9005_fe_refresh_state(struct dvb_frontend *fe)
- -{
- - struct af9005_fe_state *state = fe->demodulator_priv;
- - if (time_after(jiffies, state->next_status_check)) {
- - deb_info("REFRESH STATE\n");
- -
- - /* statistics */
- - if (af9005_get_statistic(fe))
- - err("get_statistic_failed");
- - state->next_status_check = jiffies + 250 * HZ / 1000;
- - }
- - return 0;
- -}
- -
- -static int af9005_fe_read_status(struct dvb_frontend *fe,
- - enum fe_status *stat)
- -{
- - struct af9005_fe_state *state = fe->demodulator_priv;
- - u8 temp;
- - int ret;
- -
- - if (fe->ops.tuner_ops.release == NULL)
- - return -ENODEV;
- -
- - *stat = 0;
- - ret = af9005_read_register_bits(state->d, xd_p_agc_lock,
- - agc_lock_pos, agc_lock_len, &temp);
- - if (ret)
- - return ret;
- - if (temp)
- - *stat |= FE_HAS_SIGNAL;
- -
- - ret = af9005_read_register_bits(state->d, xd_p_fd_tpsd_lock,
- - fd_tpsd_lock_pos, fd_tpsd_lock_len,
- - &temp);
- - if (ret)
- - return ret;
- - if (temp)
- - *stat |= FE_HAS_CARRIER;
- -
- - ret = af9005_read_register_bits(state->d,
- - xd_r_mp2if_sync_byte_locked,
- - mp2if_sync_byte_locked_pos,
- - mp2if_sync_byte_locked_pos, &temp);
- - if (ret)
- - return ret;
- - if (temp)
- - *stat |= FE_HAS_SYNC | FE_HAS_VITERBI | FE_HAS_LOCK;
- - if (state->opened)
- - af9005_led_control(state->d, *stat & FE_HAS_LOCK);
- -
- - ret =
- - af9005_read_register_bits(state->d, xd_p_reg_strong_sginal_detected,
- - reg_strong_sginal_detected_pos,
- - reg_strong_sginal_detected_len, &temp);
- - if (ret)
- - return ret;
- - if (temp != state->strong) {
- - deb_info("adjust for strong signal %d\n", temp);
- - state->strong = temp;
- - }
- - return 0;
- -}
- -
- -static int af9005_fe_read_ber(struct dvb_frontend *fe, u32 * ber)
- -{
- - struct af9005_fe_state *state = fe->demodulator_priv;
- - if (fe->ops.tuner_ops.release == NULL)
- - return -ENODEV;
- - af9005_fe_refresh_state(fe);
- - *ber = state->ber;
- - return 0;
- -}
- -
- -static int af9005_fe_read_unc_blocks(struct dvb_frontend *fe, u32 * unc)
- -{
- - struct af9005_fe_state *state = fe->demodulator_priv;
- - if (fe->ops.tuner_ops.release == NULL)
- - return -ENODEV;
- - af9005_fe_refresh_state(fe);
- - *unc = state->unc;
- - return 0;
- -}
- -
- -static int af9005_fe_read_signal_strength(struct dvb_frontend *fe,
- - u16 * strength)
- -{
- - struct af9005_fe_state *state = fe->demodulator_priv;
- - int ret;
- - u8 if_gain, rf_gain;
- -
- - if (fe->ops.tuner_ops.release == NULL)
- - return -ENODEV;
- - ret =
- - af9005_read_ofdm_register(state->d, xd_r_reg_aagc_rf_gain,
- - &rf_gain);
- - if (ret)
- - return ret;
- - ret =
- - af9005_read_ofdm_register(state->d, xd_r_reg_aagc_if_gain,
- - &if_gain);
- - if (ret)
- - return ret;
- - /* this value has no real meaning, but i don't have the tables that relate
- - the rf and if gain with the dbm, so I just scale the value */
- - *strength = (512 - rf_gain - if_gain) << 7;
- - return 0;
- -}
- -
- -static int af9005_fe_read_snr(struct dvb_frontend *fe, u16 * snr)
- -{
- - /* the snr can be derived from the ber and the modulation
- - but I don't think this kind of complex calculations belong
- - in the driver. I may be wrong.... */
- - return -ENOSYS;
- -}
- -
- -static int af9005_fe_program_cfoe(struct dvb_usb_device *d, u32 bw)
- -{
- - u8 temp0, temp1, temp2, temp3, buf[4];
- - int ret;
- - u32 NS_coeff1_2048Nu;
- - u32 NS_coeff1_8191Nu;
- - u32 NS_coeff1_8192Nu;
- - u32 NS_coeff1_8193Nu;
- - u32 NS_coeff2_2k;
- - u32 NS_coeff2_8k;
- -
- - switch (bw) {
- - case 6000000:
- - NS_coeff1_2048Nu = 0x2ADB6DC;
- - NS_coeff1_8191Nu = 0xAB7313;
- - NS_coeff1_8192Nu = 0xAB6DB7;
- - NS_coeff1_8193Nu = 0xAB685C;
- - NS_coeff2_2k = 0x156DB6E;
- - NS_coeff2_8k = 0x55B6DC;
- - break;
- -
- - case 7000000:
- - NS_coeff1_2048Nu = 0x3200001;
- - NS_coeff1_8191Nu = 0xC80640;
- - NS_coeff1_8192Nu = 0xC80000;
- - NS_coeff1_8193Nu = 0xC7F9C0;
- - NS_coeff2_2k = 0x1900000;
- - NS_coeff2_8k = 0x640000;
- - break;
- -
- - case 8000000:
- - NS_coeff1_2048Nu = 0x3924926;
- - NS_coeff1_8191Nu = 0xE4996E;
- - NS_coeff1_8192Nu = 0xE49249;
- - NS_coeff1_8193Nu = 0xE48B25;
- - NS_coeff2_2k = 0x1C92493;
- - NS_coeff2_8k = 0x724925;
- - break;
- - default:
- - err("Invalid bandwidth %d.", bw);
- - return -EINVAL;
- - }
- -
- - /*
- - * write NS_coeff1_2048Nu
- - */
- -
- - temp0 = (u8) (NS_coeff1_2048Nu & 0x000000FF);
- - temp1 = (u8) ((NS_coeff1_2048Nu & 0x0000FF00) >> 8);
- - temp2 = (u8) ((NS_coeff1_2048Nu & 0x00FF0000) >> 16);
- - temp3 = (u8) ((NS_coeff1_2048Nu & 0x03000000) >> 24);
- -
- - /* big endian to make 8051 happy */
- - buf[0] = temp3;
- - buf[1] = temp2;
- - buf[2] = temp1;
- - buf[3] = temp0;
- -
- - /* cfoe_NS_2k_coeff1_25_24 */
- - ret = af9005_write_ofdm_register(d, 0xAE00, buf[0]);
- - if (ret)
- - return ret;
- -
- - /* cfoe_NS_2k_coeff1_23_16 */
- - ret = af9005_write_ofdm_register(d, 0xAE01, buf[1]);
- - if (ret)
- - return ret;
- -
- - /* cfoe_NS_2k_coeff1_15_8 */
- - ret = af9005_write_ofdm_register(d, 0xAE02, buf[2]);
- - if (ret)
- - return ret;
- -
- - /* cfoe_NS_2k_coeff1_7_0 */
- - ret = af9005_write_ofdm_register(d, 0xAE03, buf[3]);
- - if (ret)
- - return ret;
- -
- - /*
- - * write NS_coeff2_2k
- - */
- -
- - temp0 = (u8) ((NS_coeff2_2k & 0x0000003F));
- - temp1 = (u8) ((NS_coeff2_2k & 0x00003FC0) >> 6);
- - temp2 = (u8) ((NS_coeff2_2k & 0x003FC000) >> 14);
- - temp3 = (u8) ((NS_coeff2_2k & 0x01C00000) >> 22);
- -
- - /* big endian to make 8051 happy */
- - buf[0] = temp3;
- - buf[1] = temp2;
- - buf[2] = temp1;
- - buf[3] = temp0;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE04, buf[0]);
- - if (ret)
- - return ret;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE05, buf[1]);
- - if (ret)
- - return ret;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE06, buf[2]);
- - if (ret)
- - return ret;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE07, buf[3]);
- - if (ret)
- - return ret;
- -
- - /*
- - * write NS_coeff1_8191Nu
- - */
- -
- - temp0 = (u8) ((NS_coeff1_8191Nu & 0x000000FF));
- - temp1 = (u8) ((NS_coeff1_8191Nu & 0x0000FF00) >> 8);
- - temp2 = (u8) ((NS_coeff1_8191Nu & 0x00FFC000) >> 16);
- - temp3 = (u8) ((NS_coeff1_8191Nu & 0x03000000) >> 24);
- -
- - /* big endian to make 8051 happy */
- - buf[0] = temp3;
- - buf[1] = temp2;
- - buf[2] = temp1;
- - buf[3] = temp0;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE08, buf[0]);
- - if (ret)
- - return ret;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE09, buf[1]);
- - if (ret)
- - return ret;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE0A, buf[2]);
- - if (ret)
- - return ret;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE0B, buf[3]);
- - if (ret)
- - return ret;
- -
- - /*
- - * write NS_coeff1_8192Nu
- - */
- -
- - temp0 = (u8) (NS_coeff1_8192Nu & 0x000000FF);
- - temp1 = (u8) ((NS_coeff1_8192Nu & 0x0000FF00) >> 8);
- - temp2 = (u8) ((NS_coeff1_8192Nu & 0x00FFC000) >> 16);
- - temp3 = (u8) ((NS_coeff1_8192Nu & 0x03000000) >> 24);
- -
- - /* big endian to make 8051 happy */
- - buf[0] = temp3;
- - buf[1] = temp2;
- - buf[2] = temp1;
- - buf[3] = temp0;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE0C, buf[0]);
- - if (ret)
- - return ret;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE0D, buf[1]);
- - if (ret)
- - return ret;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE0E, buf[2]);
- - if (ret)
- - return ret;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE0F, buf[3]);
- - if (ret)
- - return ret;
- -
- - /*
- - * write NS_coeff1_8193Nu
- - */
- -
- - temp0 = (u8) ((NS_coeff1_8193Nu & 0x000000FF));
- - temp1 = (u8) ((NS_coeff1_8193Nu & 0x0000FF00) >> 8);
- - temp2 = (u8) ((NS_coeff1_8193Nu & 0x00FFC000) >> 16);
- - temp3 = (u8) ((NS_coeff1_8193Nu & 0x03000000) >> 24);
- -
- - /* big endian to make 8051 happy */
- - buf[0] = temp3;
- - buf[1] = temp2;
- - buf[2] = temp1;
- - buf[3] = temp0;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE10, buf[0]);
- - if (ret)
- - return ret;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE11, buf[1]);
- - if (ret)
- - return ret;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE12, buf[2]);
- - if (ret)
- - return ret;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE13, buf[3]);
- - if (ret)
- - return ret;
- -
- - /*
- - * write NS_coeff2_8k
- - */
- -
- - temp0 = (u8) ((NS_coeff2_8k & 0x0000003F));
- - temp1 = (u8) ((NS_coeff2_8k & 0x00003FC0) >> 6);
- - temp2 = (u8) ((NS_coeff2_8k & 0x003FC000) >> 14);
- - temp3 = (u8) ((NS_coeff2_8k & 0x01C00000) >> 22);
- -
- - /* big endian to make 8051 happy */
- - buf[0] = temp3;
- - buf[1] = temp2;
- - buf[2] = temp1;
- - buf[3] = temp0;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE14, buf[0]);
- - if (ret)
- - return ret;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE15, buf[1]);
- - if (ret)
- - return ret;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE16, buf[2]);
- - if (ret)
- - return ret;
- -
- - ret = af9005_write_ofdm_register(d, 0xAE17, buf[3]);
- - return ret;
- -
- -}
- -
- -static int af9005_fe_select_bw(struct dvb_usb_device *d, u32 bw)
- -{
- - u8 temp;
- - switch (bw) {
- - case 6000000:
- - temp = 0;
- - break;
- - case 7000000:
- - temp = 1;
- - break;
- - case 8000000:
- - temp = 2;
- - break;
- - default:
- - err("Invalid bandwidth %d.", bw);
- - return -EINVAL;
- - }
- - return af9005_write_register_bits(d, xd_g_reg_bw, reg_bw_pos,
- - reg_bw_len, temp);
- -}
- -
- -static int af9005_fe_power(struct dvb_frontend *fe, int on)
- -{
- - struct af9005_fe_state *state = fe->demodulator_priv;
- - u8 temp = on;
- - int ret;
- - deb_info("power %s tuner\n", on ? "on" : "off");
- - ret = af9005_send_command(state->d, 0x03, &temp, 1, NULL, 0);
- - return ret;
- -}
- -
- -static struct mt2060_config af9005_mt2060_config = {
- - 0xC0
- -};
- -
- -static struct qt1010_config af9005_qt1010_config = {
- - 0xC4
- -};
- -
- -static int af9005_fe_init(struct dvb_frontend *fe)
- -{
- - struct af9005_fe_state *state = fe->demodulator_priv;
- - struct dvb_usb_adapter *adap = fe->dvb->priv;
- - int ret, i, scriptlen;
- - u8 temp, temp0 = 0, temp1 = 0, temp2 = 0;
- - u8 buf[2];
- - u16 if1;
- -
- - deb_info("in af9005_fe_init\n");
- -
- - /* reset */
- - deb_info("reset\n");
- - if ((ret =
- - af9005_write_register_bits(state->d, xd_I2C_reg_ofdm_rst_en,
- - 4, 1, 0x01)))
- - return ret;
- - if ((ret = af9005_write_ofdm_register(state->d, APO_REG_RESET, 0)))
- - return ret;
- - /* clear ofdm reset */
- - deb_info("clear ofdm reset\n");
- - for (i = 0; i < 150; i++) {
- - if ((ret =
- - af9005_read_ofdm_register(state->d,
- - xd_I2C_reg_ofdm_rst, &temp)))
- - return ret;
- - if (temp & (regmask[reg_ofdm_rst_len - 1] << reg_ofdm_rst_pos))
- - break;
- - msleep(10);
- - }
- - if (i == 150)
- - return -ETIMEDOUT;
- -
- - /*FIXME in the dump
- - write B200 A9
- - write xd_g_reg_ofsm_clk 7
- - read eepr c6 (2)
- - read eepr c7 (2)
- - misc ctrl 3 -> 1
- - read eepr ca (6)
- - write xd_g_reg_ofsm_clk 0
- - write B200 a1
- - */
- - ret = af9005_write_ofdm_register(state->d, 0xb200, 0xa9);
- - if (ret)
- - return ret;
- - ret = af9005_write_ofdm_register(state->d, xd_g_reg_ofsm_clk, 0x07);
- - if (ret)
- - return ret;
- - temp = 0x01;
- - ret = af9005_send_command(state->d, 0x03, &temp, 1, NULL, 0);
- - if (ret)
- - return ret;
- - ret = af9005_write_ofdm_register(state->d, xd_g_reg_ofsm_clk, 0x00);
- - if (ret)
- - return ret;
- - ret = af9005_write_ofdm_register(state->d, 0xb200, 0xa1);
- - if (ret)
- - return ret;
- -
- - temp = regmask[reg_ofdm_rst_len - 1] << reg_ofdm_rst_pos;
- - if ((ret =
- - af9005_write_register_bits(state->d, xd_I2C_reg_ofdm_rst,
- - reg_ofdm_rst_pos, reg_ofdm_rst_len, 1)))
- - return ret;
- - ret = af9005_write_register_bits(state->d, xd_I2C_reg_ofdm_rst,
- - reg_ofdm_rst_pos, reg_ofdm_rst_len, 0);
- -
- - if (ret)
- - return ret;
- - /* don't know what register aefc is, but this is what the windows driver does */
- - ret = af9005_write_ofdm_register(state->d, 0xaefc, 0);
- - if (ret)
- - return ret;
- -
- - /* set stand alone chip */
- - deb_info("set stand alone chip\n");
- - if ((ret =
- - af9005_write_register_bits(state->d, xd_p_reg_dca_stand_alone,
- - reg_dca_stand_alone_pos,
- - reg_dca_stand_alone_len, 1)))
- - return ret;
- -
- - /* set dca upper & lower chip */
- - deb_info("set dca upper & lower chip\n");
- - if ((ret =
- - af9005_write_register_bits(state->d, xd_p_reg_dca_upper_chip,
- - reg_dca_upper_chip_pos,
- - reg_dca_upper_chip_len, 0)))
- - return ret;
- - if ((ret =
- - af9005_write_register_bits(state->d, xd_p_reg_dca_lower_chip,
- - reg_dca_lower_chip_pos,
- - reg_dca_lower_chip_len, 0)))
- - return ret;
- -
- - /* set 2wire master clock to 0x14 (for 60KHz) */
- - deb_info("set 2wire master clock to 0x14 (for 60KHz)\n");
- - if ((ret =
- - af9005_write_ofdm_register(state->d, xd_I2C_i2c_m_period, 0x14)))
- - return ret;
- -
- - /* clear dca enable chip */
- - deb_info("clear dca enable chip\n");
- - if ((ret =
- - af9005_write_register_bits(state->d, xd_p_reg_dca_en,
- - reg_dca_en_pos, reg_dca_en_len, 0)))
- - return ret;
- - /* FIXME these are register bits, but I don't know which ones */
- - ret = af9005_write_ofdm_register(state->d, 0xa16c, 1);
- - if (ret)
- - return ret;
- - ret = af9005_write_ofdm_register(state->d, 0xa3c1, 0);
- - if (ret)
- - return ret;
- -
- - /* init other parameters: program cfoe and select bandwidth */
- - deb_info("program cfoe\n");
- - ret = af9005_fe_program_cfoe(state->d, 6000000);
- - if (ret)
- - return ret;
- - /* set read-update bit for modulation */
- - deb_info("set read-update bit for modulation\n");
- - if ((ret =
- - af9005_write_register_bits(state->d, xd_p_reg_feq_read_update,
- - reg_feq_read_update_pos,
- - reg_feq_read_update_len, 1)))
- - return ret;
- -
- - /* sample code has a set MPEG TS code here
- - but sniffing reveals that it doesn't do it */
- -
- - /* set read-update bit to 1 for DCA modulation */
- - deb_info("set read-update bit 1 for DCA modulation\n");
- - if ((ret =
- - af9005_write_register_bits(state->d, xd_p_reg_dca_read_update,
- - reg_dca_read_update_pos,
- - reg_dca_read_update_len, 1)))
- - return ret;
- -
- - /* enable fec monitor */
- - deb_info("enable fec monitor\n");
- - if ((ret =
- - af9005_write_register_bits(state->d, xd_p_fec_vtb_rsd_mon_en,
- - fec_vtb_rsd_mon_en_pos,
- - fec_vtb_rsd_mon_en_len, 1)))
- - return ret;
- -
- - /* FIXME should be register bits, I don't know which ones */
- - ret = af9005_write_ofdm_register(state->d, 0xa601, 0);
- -
- - /* set api_retrain_never_freeze */
- - deb_info("set api_retrain_never_freeze\n");
- - if ((ret = af9005_write_ofdm_register(state->d, 0xaefb, 0x01)))
- - return ret;
- -
- - /* load init script */
- - deb_info("load init script\n");
- - scriptlen = sizeof(script) / sizeof(RegDesc);
- - for (i = 0; i < scriptlen; i++) {
- - if ((ret =
- - af9005_write_register_bits(state->d, script[i].reg,
- - script[i].pos,
- - script[i].len, script[i].val)))
- - return ret;
- - /* save 3 bytes of original fcw */
- - if (script[i].reg == 0xae18)
- - temp2 = script[i].val;
- - if (script[i].reg == 0xae19)
- - temp1 = script[i].val;
- - if (script[i].reg == 0xae1a)
- - temp0 = script[i].val;
- -
- - /* save original unplug threshold */
- - if (script[i].reg == xd_p_reg_unplug_th)
- - state->original_if_unplug_th = script[i].val;
- - if (script[i].reg == xd_p_reg_unplug_rf_gain_th)
- - state->original_rf_unplug_th = script[i].val;
- - if (script[i].reg == xd_p_reg_unplug_dtop_if_gain_th)
- - state->original_dtop_if_unplug_th = script[i].val;
- - if (script[i].reg == xd_p_reg_unplug_dtop_rf_gain_th)
- - state->original_dtop_rf_unplug_th = script[i].val;
- -
- - }
- - state->original_fcw =
- - ((u32) temp2 << 16) + ((u32) temp1 << 8) + (u32) temp0;
- -
- -
- - /* save original TOPs */
- - deb_info("save original TOPs\n");
- -
- - /* RF TOP */
- - ret =
- - af9005_read_word_agc(state->d,
- - xd_p_reg_aagc_rf_top_numerator_9_8,
- - xd_p_reg_aagc_rf_top_numerator_7_0, 0, 2,
- - &state->original_rf_top);
- - if (ret)
- - return ret;
- -
- - /* IF TOP */
- - ret =
- - af9005_read_word_agc(state->d,
- - xd_p_reg_aagc_if_top_numerator_9_8,
- - xd_p_reg_aagc_if_top_numerator_7_0, 0, 2,
- - &state->original_if_top);
- - if (ret)
- - return ret;
- -
- - /* ACI 0 IF TOP */
- - ret =
- - af9005_read_word_agc(state->d, 0xA60E, 0xA60A, 4, 2,
- - &state->original_aci0_if_top);
- - if (ret)
- - return ret;
- -
- - /* ACI 1 IF TOP */
- - ret =
- - af9005_read_word_agc(state->d, 0xA60E, 0xA60B, 6, 2,
- - &state->original_aci1_if_top);
- - if (ret)
- - return ret;
- -
- - /* attach tuner and init */
- - if (fe->ops.tuner_ops.release == NULL) {
- - /* read tuner and board id from eeprom */
- - ret = af9005_read_eeprom(adap->dev, 0xc6, buf, 2);
- - if (ret) {
- - err("Impossible to read EEPROM\n");
- - return ret;
- - }
- - deb_info("Tuner id %d, board id %d\n", buf[0], buf[1]);
- - switch (buf[0]) {
- - case 2: /* MT2060 */
- - /* read if1 from eeprom */
- - ret = af9005_read_eeprom(adap->dev, 0xc8, buf, 2);
- - if (ret) {
- - err("Impossible to read EEPROM\n");
- - return ret;
- - }
- - if1 = (u16) (buf[0] << 8) + buf[1];
- - if (dvb_attach(mt2060_attach, fe, &adap->dev->i2c_adap,
- - &af9005_mt2060_config, if1) == NULL) {
- - deb_info("MT2060 attach failed\n");
- - return -ENODEV;
- - }
- - break;
- - case 3: /* QT1010 */
- - case 9: /* QT1010B */
- - if (dvb_attach(qt1010_attach, fe, &adap->dev->i2c_adap,
- - &af9005_qt1010_config) ==NULL) {
- - deb_info("QT1010 attach failed\n");
- - return -ENODEV;
- - }
- - break;
- - default:
- - err("Unsupported tuner type %d", buf[0]);
- - return -ENODEV;
- - }
- - ret = fe->ops.tuner_ops.init(fe);
- - if (ret)
- - return ret;
- - }
- -
- - deb_info("profit!\n");
- - return 0;
- -}
- -
- -static int af9005_fe_sleep(struct dvb_frontend *fe)
- -{
- - return af9005_fe_power(fe, 0);
- -}
- -
- -static int af9005_ts_bus_ctrl(struct dvb_frontend *fe, int acquire)
- -{
- - struct af9005_fe_state *state = fe->demodulator_priv;
- -
- - if (acquire) {
- - state->opened++;
- - } else {
- -
- - state->opened--;
- - if (!state->opened)
- - af9005_led_control(state->d, 0);
- - }
- - return 0;
- -}
- -
- -static int af9005_fe_set_frontend(struct dvb_frontend *fe)
- -{
- - struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
- - struct af9005_fe_state *state = fe->demodulator_priv;
- - int ret;
- - u8 temp, temp0, temp1, temp2;
- -
- - deb_info("af9005_fe_set_frontend freq %d bw %d\n", fep->frequency,
- - fep->bandwidth_hz);
- - if (fe->ops.tuner_ops.release == NULL) {
- - err("Tuner not attached");
- - return -ENODEV;
- - }
- -
- - deb_info("turn off led\n");
- - /* not in the log */
- - ret = af9005_led_control(state->d, 0);
- - if (ret)
- - return ret;
- - /* not sure about the bits */
- - ret = af9005_write_register_bits(state->d, XD_MP2IF_MISC, 2, 1, 0);
- - if (ret)
- - return ret;
- -
- - /* set FCW to default value */
- - deb_info("set FCW to default value\n");
- - temp0 = (u8) (state->original_fcw & 0x000000ff);
- - temp1 = (u8) ((state->original_fcw & 0x0000ff00) >> 8);
- - temp2 = (u8) ((state->original_fcw & 0x00ff0000) >> 16);
- - ret = af9005_write_ofdm_register(state->d, 0xae1a, temp0);
- - if (ret)
- - return ret;
- - ret = af9005_write_ofdm_register(state->d, 0xae19, temp1);
- - if (ret)
- - return ret;
- - ret = af9005_write_ofdm_register(state->d, 0xae18, temp2);
- - if (ret)
- - return ret;
- -
- - /* restore original TOPs */
- - deb_info("restore original TOPs\n");
- - ret =
- - af9005_write_word_agc(state->d,
- - xd_p_reg_aagc_rf_top_numerator_9_8,
- - xd_p_reg_aagc_rf_top_numerator_7_0, 0, 2,
- - state->original_rf_top);
- - if (ret)
- - return ret;
- - ret =
- - af9005_write_word_agc(state->d,
- - xd_p_reg_aagc_if_top_numerator_9_8,
- - xd_p_reg_aagc_if_top_numerator_7_0, 0, 2,
- - state->original_if_top);
- - if (ret)
- - return ret;
- - ret =
- - af9005_write_word_agc(state->d, 0xA60E, 0xA60A, 4, 2,
- - state->original_aci0_if_top);
- - if (ret)
- - return ret;
- - ret =
- - af9005_write_word_agc(state->d, 0xA60E, 0xA60B, 6, 2,
- - state->original_aci1_if_top);
- - if (ret)
- - return ret;
- -
- - /* select bandwidth */
- - deb_info("select bandwidth");
- - ret = af9005_fe_select_bw(state->d, fep->bandwidth_hz);
- - if (ret)
- - return ret;
- - ret = af9005_fe_program_cfoe(state->d, fep->bandwidth_hz);
- - if (ret)
- - return ret;
- -
- - /* clear easy mode flag */
- - deb_info("clear easy mode flag\n");
- - ret = af9005_write_ofdm_register(state->d, 0xaefd, 0);
- - if (ret)
- - return ret;
- -
- - /* set unplug threshold to original value */
- - deb_info("set unplug threshold to original value\n");
- - ret =
- - af9005_write_ofdm_register(state->d, xd_p_reg_unplug_th,
- - state->original_if_unplug_th);
- - if (ret)
- - return ret;
- - /* set tuner */
- - deb_info("set tuner\n");
- - ret = fe->ops.tuner_ops.set_params(fe);
- - if (ret)
- - return ret;
- -
- - /* trigger ofsm */
- - deb_info("trigger ofsm\n");
- - temp = 0;
- - ret = af9005_write_tuner_registers(state->d, 0xffff, &temp, 1);
- - if (ret)
- - return ret;
- -
- - /* clear retrain and freeze flag */
- - deb_info("clear retrain and freeze flag\n");
- - ret =
- - af9005_write_register_bits(state->d,
- - xd_p_reg_api_retrain_request,
- - reg_api_retrain_request_pos, 2, 0);
- - if (ret)
- - return ret;
- -
- - /* reset pre viterbi and post viterbi registers and statistics */
- - af9005_reset_pre_viterbi(fe);
- - af9005_reset_post_viterbi(fe);
- - state->pre_vit_error_count = 0;
- - state->pre_vit_bit_count = 0;
- - state->ber = 0;
- - state->post_vit_error_count = 0;
- - /* state->unc = 0; commented out since it should be ever increasing */
- - state->abort_count = 0;
- -
- - state->next_status_check = jiffies;
- - state->strong = -1;
- -
- - return 0;
- -}
- -
- -static int af9005_fe_get_frontend(struct dvb_frontend *fe,
- - struct dtv_frontend_properties *fep)
- -{
- - struct af9005_fe_state *state = fe->demodulator_priv;
- - int ret;
- - u8 temp;
- -
- - /* mode */
- - ret =
- - af9005_read_register_bits(state->d, xd_g_reg_tpsd_const,
- - reg_tpsd_const_pos, reg_tpsd_const_len,
- - &temp);
- - if (ret)
- - return ret;
- - deb_info("===== fe_get_frontend_legacy = =============\n");
- - deb_info("CONSTELLATION ");
- - switch (temp) {
- - case 0:
- - fep->modulation = QPSK;
- - deb_info("QPSK\n");
- - break;
- - case 1:
- - fep->modulation = QAM_16;
- - deb_info("QAM_16\n");
- - break;
- - case 2:
- - fep->modulation = QAM_64;
- - deb_info("QAM_64\n");
- - break;
- - }
- -
- - /* tps hierarchy and alpha value */
- - ret =
- - af9005_read_register_bits(state->d, xd_g_reg_tpsd_hier,
- - reg_tpsd_hier_pos, reg_tpsd_hier_len,
- - &temp);
- - if (ret)
- - return ret;
- - deb_info("HIERARCHY ");
- - switch (temp) {
- - case 0:
- - fep->hierarchy = HIERARCHY_NONE;
- - deb_info("NONE\n");
- - break;
- - case 1:
- - fep->hierarchy = HIERARCHY_1;
- - deb_info("1\n");
- - break;
- - case 2:
- - fep->hierarchy = HIERARCHY_2;
- - deb_info("2\n");
- - break;
- - case 3:
- - fep->hierarchy = HIERARCHY_4;
- - deb_info("4\n");
- - break;
- - }
- -
- - /* high/low priority */
- - ret =
- - af9005_read_register_bits(state->d, xd_g_reg_dec_pri,
- - reg_dec_pri_pos, reg_dec_pri_len, &temp);
- - if (ret)
- - return ret;
- - /* if temp is set = high priority */
- - deb_info("PRIORITY %s\n", temp ? "high" : "low");
- -
- - /* high coderate */
- - ret =
- - af9005_read_register_bits(state->d, xd_g_reg_tpsd_hpcr,
- - reg_tpsd_hpcr_pos, reg_tpsd_hpcr_len,
- - &temp);
- - if (ret)
- - return ret;
- - deb_info("CODERATE HP ");
- - switch (temp) {
- - case 0:
- - fep->code_rate_HP = FEC_1_2;
- - deb_info("FEC_1_2\n");
- - break;
- - case 1:
- - fep->code_rate_HP = FEC_2_3;
- - deb_info("FEC_2_3\n");
- - break;
- - case 2:
- - fep->code_rate_HP = FEC_3_4;
- - deb_info("FEC_3_4\n");
- - break;
- - case 3:
- - fep->code_rate_HP = FEC_5_6;
- - deb_info("FEC_5_6\n");
- - break;
- - case 4:
- - fep->code_rate_HP = FEC_7_8;
- - deb_info("FEC_7_8\n");
- - break;
- - }
- -
- - /* low coderate */
- - ret =
- - af9005_read_register_bits(state->d, xd_g_reg_tpsd_lpcr,
- - reg_tpsd_lpcr_pos, reg_tpsd_lpcr_len,
- - &temp);
- - if (ret)
- - return ret;
- - deb_info("CODERATE LP ");
- - switch (temp) {
- - case 0:
- - fep->code_rate_LP = FEC_1_2;
- - deb_info("FEC_1_2\n");
- - break;
- - case 1:
- - fep->code_rate_LP = FEC_2_3;
- - deb_info("FEC_2_3\n");
- - break;
- - case 2:
- - fep->code_rate_LP = FEC_3_4;
- - deb_info("FEC_3_4\n");
- - break;
- - case 3:
- - fep->code_rate_LP = FEC_5_6;
- - deb_info("FEC_5_6\n");
- - break;
- - case 4:
- - fep->code_rate_LP = FEC_7_8;
- - deb_info("FEC_7_8\n");
- - break;
- - }
- -
- - /* guard interval */
- - ret =
- - af9005_read_register_bits(state->d, xd_g_reg_tpsd_gi,
- - reg_tpsd_gi_pos, reg_tpsd_gi_len, &temp);
- - if (ret)
- - return ret;
- - deb_info("GUARD INTERVAL ");
- - switch (temp) {
- - case 0:
- - fep->guard_interval = GUARD_INTERVAL_1_32;
- - deb_info("1_32\n");
- - break;
- - case 1:
- - fep->guard_interval = GUARD_INTERVAL_1_16;
- - deb_info("1_16\n");
- - break;
- - case 2:
- - fep->guard_interval = GUARD_INTERVAL_1_8;
- - deb_info("1_8\n");
- - break;
- - case 3:
- - fep->guard_interval = GUARD_INTERVAL_1_4;
- - deb_info("1_4\n");
- - break;
- - }
- -
- - /* fft */
- - ret =
- - af9005_read_register_bits(state->d, xd_g_reg_tpsd_txmod,
- - reg_tpsd_txmod_pos, reg_tpsd_txmod_len,
- - &temp);
- - if (ret)
- - return ret;
- - deb_info("TRANSMISSION MODE ");
- - switch (temp) {
- - case 0:
- - fep->transmission_mode = TRANSMISSION_MODE_2K;
- - deb_info("2K\n");
- - break;
- - case 1:
- - fep->transmission_mode = TRANSMISSION_MODE_8K;
- - deb_info("8K\n");
- - break;
- - }
- -
- - /* bandwidth */
- - ret =
- - af9005_read_register_bits(state->d, xd_g_reg_bw, reg_bw_pos,
- - reg_bw_len, &temp);
- - deb_info("BANDWIDTH ");
- - switch (temp) {
- - case 0:
- - fep->bandwidth_hz = 6000000;
- - deb_info("6\n");
- - break;
- - case 1:
- - fep->bandwidth_hz = 7000000;
- - deb_info("7\n");
- - break;
- - case 2:
- - fep->bandwidth_hz = 8000000;
- - deb_info("8\n");
- - break;
- - }
- - return 0;
- -}
- -
- -static void af9005_fe_release(struct dvb_frontend *fe)
- -{
- - struct af9005_fe_state *state =
- - (struct af9005_fe_state *)fe->demodulator_priv;
- - kfree(state);
- -}
- -
- -static const struct dvb_frontend_ops af9005_fe_ops;
- -
- -struct dvb_frontend *af9005_fe_attach(struct dvb_usb_device *d)
- -{
- - struct af9005_fe_state *state = NULL;
- -
- - /* allocate memory for the internal state */
- - state = kzalloc(sizeof(struct af9005_fe_state), GFP_KERNEL);
- - if (state == NULL)
- - goto error;
- -
- - deb_info("attaching frontend af9005\n");
- -
- - state->d = d;
- - state->opened = 0;
- -
- - memcpy(&state->frontend.ops, &af9005_fe_ops,
- - sizeof(struct dvb_frontend_ops));
- - state->frontend.demodulator_priv = state;
- -
- - return &state->frontend;
- - error:
- - return NULL;
- -}
- -
- -static const struct dvb_frontend_ops af9005_fe_ops = {
- - .delsys = { SYS_DVBT },
- - .info = {
- - .name = "AF9005 USB DVB-T",
- - .frequency_min = 44250000,
- - .frequency_max = 867250000,
- - .frequency_stepsize = 250000,
- - .caps = FE_CAN_INVERSION_AUTO |
- - FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
- - FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
- - FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 |
- - FE_CAN_QAM_AUTO | FE_CAN_TRANSMISSION_MODE_AUTO |
- - FE_CAN_GUARD_INTERVAL_AUTO | FE_CAN_RECOVER |
- - FE_CAN_HIERARCHY_AUTO,
- - },
- -
- - .release = af9005_fe_release,
- -
- - .init = af9005_fe_init,
- - .sleep = af9005_fe_sleep,
- - .ts_bus_ctrl = af9005_ts_bus_ctrl,
- -
- - .set_frontend = af9005_fe_set_frontend,
- - .get_frontend = af9005_fe_get_frontend,
- -
- - .read_status = af9005_fe_read_status,
- - .read_ber = af9005_fe_read_ber,
- - .read_signal_strength = af9005_fe_read_signal_strength,
- - .read_snr = af9005_fe_read_snr,
- - .read_ucblocks = af9005_fe_read_unc_blocks,
- -};
- diff -ruN ../linux-4.14.336/drivers/media/usb/dvb-usb/af9005-remote.c ./drivers/media/usb/dvb-usb/af9005-remote.c
- --- linux-4.14.336/../linux-4.14.336/drivers/media/usb/dvb-usb/af9005-remote.c 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./drivers/media/usb/dvb-usb/af9005-remote.c 1970-01-01 01:00:00.000000000 +0100
- @@ -1,153 +0,0 @@
- -/* DVB USB compliant Linux driver for the Afatech 9005
- - * USB1.1 DVB-T receiver.
- - *
- - * Standard remote decode function
- - *
- - * Copyright (C) 2007 Luca Olivetti (luca@ventoso.org)
- - *
- - * Thanks to Afatech who kindly provided information.
- - *
- - * This program is free software; you can redistribute it and/or modify
- - * it under the terms of the GNU General Public License as published by
- - * the Free Software Foundation; either version 2 of the License, or
- - * (at your option) any later version.
- - *
- - * This program is distributed in the hope that it will be useful,
- - * but WITHOUT ANY WARRANTY; without even the implied warranty of
- - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- - * GNU General Public License for more details.
- - *
- - * see Documentation/dvb/README.dvb-usb for more information
- - */
- -#include "af9005.h"
- -/* debug */
- -static int dvb_usb_af9005_remote_debug;
- -module_param_named(debug, dvb_usb_af9005_remote_debug, int, 0644);
- -MODULE_PARM_DESC(debug,
- - "enable (1) or disable (0) debug messages."
- - DVB_USB_DEBUG_STATUS);
- -
- -#define deb_decode(args...) dprintk(dvb_usb_af9005_remote_debug,0x01,args)
- -
- -struct rc_map_table rc_map_af9005_table[] = {
- -
- - {0x01b7, KEY_POWER},
- - {0x01a7, KEY_VOLUMEUP},
- - {0x0187, KEY_CHANNELUP},
- - {0x017f, KEY_MUTE},
- - {0x01bf, KEY_VOLUMEDOWN},
- - {0x013f, KEY_CHANNELDOWN},
- - {0x01df, KEY_1},
- - {0x015f, KEY_2},
- - {0x019f, KEY_3},
- - {0x011f, KEY_4},
- - {0x01ef, KEY_5},
- - {0x016f, KEY_6},
- - {0x01af, KEY_7},
- - {0x0127, KEY_8},
- - {0x0107, KEY_9},
- - {0x01cf, KEY_ZOOM},
- - {0x014f, KEY_0},
- - {0x018f, KEY_GOTO}, /* marked jump on the remote */
- -
- - {0x00bd, KEY_POWER},
- - {0x007d, KEY_VOLUMEUP},
- - {0x00fd, KEY_CHANNELUP},
- - {0x009d, KEY_MUTE},
- - {0x005d, KEY_VOLUMEDOWN},
- - {0x00dd, KEY_CHANNELDOWN},
- - {0x00ad, KEY_1},
- - {0x006d, KEY_2},
- - {0x00ed, KEY_3},
- - {0x008d, KEY_4},
- - {0x004d, KEY_5},
- - {0x00cd, KEY_6},
- - {0x00b5, KEY_7},
- - {0x0075, KEY_8},
- - {0x00f5, KEY_9},
- - {0x0095, KEY_ZOOM},
- - {0x0055, KEY_0},
- - {0x00d5, KEY_GOTO}, /* marked jump on the remote */
- -};
- -
- -int rc_map_af9005_table_size = ARRAY_SIZE(rc_map_af9005_table);
- -
- -static int repeatable_keys[] = {
- - KEY_VOLUMEUP,
- - KEY_VOLUMEDOWN,
- - KEY_CHANNELUP,
- - KEY_CHANNELDOWN
- -};
- -
- -int af9005_rc_decode(struct dvb_usb_device *d, u8 * data, int len, u32 * event,
- - int *state)
- -{
- - u16 mark, space;
- - u32 result;
- - u8 cust, dat, invdat;
- - int i;
- -
- - if (len >= 6) {
- - mark = (u16) (data[0] << 8) + data[1];
- - space = (u16) (data[2] << 8) + data[3];
- - if (space * 3 < mark) {
- - for (i = 0; i < ARRAY_SIZE(repeatable_keys); i++) {
- - if (d->last_event == repeatable_keys[i]) {
- - *state = REMOTE_KEY_REPEAT;
- - *event = d->last_event;
- - deb_decode("repeat key, event %x\n",
- - *event);
- - return 0;
- - }
- - }
- - deb_decode("repeated key ignored (non repeatable)\n");
- - return 0;
- - } else if (len >= 33 * 4) { /*32 bits + start code */
- - result = 0;
- - for (i = 4; i < 4 + 32 * 4; i += 4) {
- - result <<= 1;
- - mark = (u16) (data[i] << 8) + data[i + 1];
- - mark >>= 1;
- - space = (u16) (data[i + 2] << 8) + data[i + 3];
- - space >>= 1;
- - if (mark * 2 > space)
- - result += 1;
- - }
- - deb_decode("key pressed, raw value %x\n", result);
- - if ((result & 0xff000000) != 0xfe000000) {
- - deb_decode
- - ("doesn't start with 0xfe, ignored\n");
- - return 0;
- - }
- - cust = (result >> 16) & 0xff;
- - dat = (result >> 8) & 0xff;
- - invdat = (~result) & 0xff;
- - if (dat != invdat) {
- - deb_decode("code != inverted code\n");
- - return 0;
- - }
- - for (i = 0; i < rc_map_af9005_table_size; i++) {
- - if (rc5_custom(&rc_map_af9005_table[i]) == cust
- - && rc5_data(&rc_map_af9005_table[i]) == dat) {
- - *event = rc_map_af9005_table[i].keycode;
- - *state = REMOTE_KEY_PRESSED;
- - deb_decode
- - ("key pressed, event %x\n", *event);
- - return 0;
- - }
- - }
- - deb_decode("not found in table\n");
- - }
- - }
- - return 0;
- -}
- -
- -EXPORT_SYMBOL(rc_map_af9005_table);
- -EXPORT_SYMBOL(rc_map_af9005_table_size);
- -EXPORT_SYMBOL(af9005_rc_decode);
- -
- -MODULE_AUTHOR("Luca Olivetti <luca@ventoso.org>");
- -MODULE_DESCRIPTION
- - ("Standard remote control decoder for Afatech 9005 DVB-T USB1.1 stick");
- -MODULE_VERSION("1.0");
- -MODULE_LICENSE("GPL");
- diff -ruN ../linux-4.14.336/drivers/media/usb/dvb-usb/af9005-script.h ./drivers/media/usb/dvb-usb/af9005-script.h
- --- linux-4.14.336/../linux-4.14.336/drivers/media/usb/dvb-usb/af9005-script.h 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./drivers/media/usb/dvb-usb/af9005-script.h 1970-01-01 01:00:00.000000000 +0100
- @@ -1,204 +0,0 @@
- -/* SPDX-License-Identifier: GPL-2.0 */
- -/*
- -File automatically generated by createinit.py using data
- -extracted from AF05BDA.sys (windows driver):
- -
- -dd if=AF05BDA.sys of=initsequence bs=1 skip=88316 count=1110
- -python createinit.py > af9005-script.h
- -
- -*/
- -
- -typedef struct {
- - u16 reg;
- - u8 pos;
- - u8 len;
- - u8 val;
- -} RegDesc;
- -
- -static RegDesc script[] = {
- - {0xa180, 0x0, 0x8, 0xa},
- - {0xa181, 0x0, 0x8, 0xd7},
- - {0xa182, 0x0, 0x8, 0xa3},
- - {0xa0a0, 0x0, 0x8, 0x0},
- - {0xa0a1, 0x0, 0x5, 0x0},
- - {0xa0a1, 0x5, 0x1, 0x1},
- - {0xa0c0, 0x0, 0x4, 0x1},
- - {0xa20e, 0x4, 0x4, 0xa},
- - {0xa20f, 0x0, 0x8, 0x40},
- - {0xa210, 0x0, 0x8, 0x8},
- - {0xa32a, 0x0, 0x4, 0xa},
- - {0xa32c, 0x0, 0x8, 0x20},
- - {0xa32b, 0x0, 0x8, 0x15},
- - {0xa1a0, 0x1, 0x1, 0x1},
- - {0xa000, 0x0, 0x1, 0x1},
- - {0xa000, 0x1, 0x1, 0x0},
- - {0xa001, 0x1, 0x1, 0x1},
- - {0xa001, 0x0, 0x1, 0x0},
- - {0xa001, 0x5, 0x1, 0x0},
- - {0xa00e, 0x0, 0x5, 0x10},
- - {0xa00f, 0x0, 0x3, 0x4},
- - {0xa00f, 0x3, 0x3, 0x5},
- - {0xa010, 0x0, 0x3, 0x4},
- - {0xa010, 0x3, 0x3, 0x5},
- - {0xa016, 0x4, 0x4, 0x3},
- - {0xa01f, 0x0, 0x6, 0xa},
- - {0xa020, 0x0, 0x6, 0xa},
- - {0xa2bc, 0x0, 0x1, 0x1},
- - {0xa2bc, 0x5, 0x1, 0x1},
- - {0xa015, 0x0, 0x8, 0x50},
- - {0xa016, 0x0, 0x1, 0x0},
- - {0xa02a, 0x0, 0x8, 0x50},
- - {0xa029, 0x0, 0x8, 0x4b},
- - {0xa614, 0x0, 0x8, 0x46},
- - {0xa002, 0x0, 0x5, 0x19},
- - {0xa003, 0x0, 0x5, 0x1a},
- - {0xa004, 0x0, 0x5, 0x19},
- - {0xa005, 0x0, 0x5, 0x1a},
- - {0xa008, 0x0, 0x8, 0x69},
- - {0xa009, 0x0, 0x2, 0x2},
- - {0xae1b, 0x0, 0x8, 0x69},
- - {0xae1c, 0x0, 0x8, 0x2},
- - {0xae1d, 0x0, 0x8, 0x2a},
- - {0xa022, 0x0, 0x8, 0xaa},
- - {0xa006, 0x0, 0x8, 0xc8},
- - {0xa007, 0x0, 0x2, 0x0},
- - {0xa00c, 0x0, 0x8, 0xba},
- - {0xa00d, 0x0, 0x2, 0x2},
- - {0xa608, 0x0, 0x8, 0xba},
- - {0xa60e, 0x0, 0x2, 0x2},
- - {0xa609, 0x0, 0x8, 0x80},
- - {0xa60e, 0x2, 0x2, 0x3},
- - {0xa00a, 0x0, 0x8, 0xb6},
- - {0xa00b, 0x0, 0x2, 0x0},
- - {0xa011, 0x0, 0x8, 0xb9},
- - {0xa012, 0x0, 0x2, 0x0},
- - {0xa013, 0x0, 0x8, 0xbd},
- - {0xa014, 0x0, 0x2, 0x2},
- - {0xa366, 0x0, 0x1, 0x1},
- - {0xa2bc, 0x3, 0x1, 0x0},
- - {0xa2bd, 0x0, 0x8, 0xa},
- - {0xa2be, 0x0, 0x8, 0x14},
- - {0xa2bf, 0x0, 0x8, 0x8},
- - {0xa60a, 0x0, 0x8, 0xbd},
- - {0xa60e, 0x4, 0x2, 0x2},
- - {0xa60b, 0x0, 0x8, 0x86},
- - {0xa60e, 0x6, 0x2, 0x3},
- - {0xa001, 0x2, 0x2, 0x1},
- - {0xa1c7, 0x0, 0x8, 0xf5},
- - {0xa03d, 0x0, 0x8, 0xb1},
- - {0xa616, 0x0, 0x8, 0xff},
- - {0xa617, 0x0, 0x8, 0xad},
- - {0xa618, 0x0, 0x8, 0xad},
- - {0xa61e, 0x3, 0x1, 0x1},
- - {0xae1a, 0x0, 0x8, 0x0},
- - {0xae19, 0x0, 0x8, 0xc8},
- - {0xae18, 0x0, 0x8, 0x61},
- - {0xa140, 0x0, 0x8, 0x0},
- - {0xa141, 0x0, 0x8, 0xc8},
- - {0xa142, 0x0, 0x7, 0x61},
- - {0xa023, 0x0, 0x8, 0xff},
- - {0xa021, 0x0, 0x8, 0xad},
- - {0xa026, 0x0, 0x1, 0x0},
- - {0xa024, 0x0, 0x8, 0xff},
- - {0xa025, 0x0, 0x8, 0xff},
- - {0xa1c8, 0x0, 0x8, 0xf},
- - {0xa2bc, 0x1, 0x1, 0x0},
- - {0xa60c, 0x0, 0x4, 0x5},
- - {0xa60c, 0x4, 0x4, 0x6},
- - {0xa60d, 0x0, 0x8, 0xa},
- - {0xa371, 0x0, 0x1, 0x1},
- - {0xa366, 0x1, 0x3, 0x7},
- - {0xa338, 0x0, 0x8, 0x10},
- - {0xa339, 0x0, 0x6, 0x7},
- - {0xa33a, 0x0, 0x6, 0x1f},
- - {0xa33b, 0x0, 0x8, 0xf6},
- - {0xa33c, 0x3, 0x5, 0x4},
- - {0xa33d, 0x4, 0x4, 0x0},
- - {0xa33d, 0x1, 0x1, 0x1},
- - {0xa33d, 0x2, 0x1, 0x1},
- - {0xa33d, 0x3, 0x1, 0x1},
- - {0xa16d, 0x0, 0x4, 0xf},
- - {0xa161, 0x0, 0x5, 0x5},
- - {0xa162, 0x0, 0x4, 0x5},
- - {0xa165, 0x0, 0x8, 0xff},
- - {0xa166, 0x0, 0x8, 0x9c},
- - {0xa2c3, 0x0, 0x4, 0x5},
- - {0xa61a, 0x0, 0x6, 0xf},
- - {0xb200, 0x0, 0x8, 0xa1},
- - {0xb201, 0x0, 0x8, 0x7},
- - {0xa093, 0x0, 0x1, 0x0},
- - {0xa093, 0x1, 0x5, 0xf},
- - {0xa094, 0x0, 0x8, 0xff},
- - {0xa095, 0x0, 0x8, 0xf},
- - {0xa080, 0x2, 0x5, 0x3},
- - {0xa081, 0x0, 0x4, 0x0},
- - {0xa081, 0x4, 0x4, 0x9},
- - {0xa082, 0x0, 0x5, 0x1f},
- - {0xa08d, 0x0, 0x8, 0x1},
- - {0xa083, 0x0, 0x8, 0x32},
- - {0xa084, 0x0, 0x1, 0x0},
- - {0xa08e, 0x0, 0x8, 0x3},
- - {0xa085, 0x0, 0x8, 0x32},
- - {0xa086, 0x0, 0x3, 0x0},
- - {0xa087, 0x0, 0x8, 0x6e},
- - {0xa088, 0x0, 0x5, 0x15},
- - {0xa089, 0x0, 0x8, 0x0},
- - {0xa08a, 0x0, 0x5, 0x19},
- - {0xa08b, 0x0, 0x8, 0x92},
- - {0xa08c, 0x0, 0x5, 0x1c},
- - {0xa120, 0x0, 0x8, 0x0},
- - {0xa121, 0x0, 0x5, 0x10},
- - {0xa122, 0x0, 0x8, 0x0},
- - {0xa123, 0x0, 0x7, 0x40},
- - {0xa123, 0x7, 0x1, 0x0},
- - {0xa124, 0x0, 0x8, 0x13},
- - {0xa125, 0x0, 0x7, 0x10},
- - {0xa1c0, 0x0, 0x8, 0x0},
- - {0xa1c1, 0x0, 0x5, 0x4},
- - {0xa1c2, 0x0, 0x8, 0x0},
- - {0xa1c3, 0x0, 0x5, 0x10},
- - {0xa1c3, 0x5, 0x3, 0x0},
- - {0xa1c4, 0x0, 0x6, 0x0},
- - {0xa1c5, 0x0, 0x7, 0x10},
- - {0xa100, 0x0, 0x8, 0x0},
- - {0xa101, 0x0, 0x5, 0x10},
- - {0xa102, 0x0, 0x8, 0x0},
- - {0xa103, 0x0, 0x7, 0x40},
- - {0xa103, 0x7, 0x1, 0x0},
- - {0xa104, 0x0, 0x8, 0x18},
- - {0xa105, 0x0, 0x7, 0xa},
- - {0xa106, 0x0, 0x8, 0x20},
- - {0xa107, 0x0, 0x8, 0x40},
- - {0xa108, 0x0, 0x4, 0x0},
- - {0xa38c, 0x0, 0x8, 0xfc},
- - {0xa38d, 0x0, 0x8, 0x0},
- - {0xa38e, 0x0, 0x8, 0x7e},
- - {0xa38f, 0x0, 0x8, 0x0},
- - {0xa390, 0x0, 0x8, 0x2f},
- - {0xa60f, 0x5, 0x1, 0x1},
- - {0xa170, 0x0, 0x8, 0xdc},
- - {0xa171, 0x0, 0x2, 0x0},
- - {0xa2ae, 0x0, 0x1, 0x1},
- - {0xa2ae, 0x1, 0x1, 0x1},
- - {0xa392, 0x0, 0x1, 0x1},
- - {0xa391, 0x2, 0x1, 0x0},
- - {0xabc1, 0x0, 0x8, 0xff},
- - {0xabc2, 0x0, 0x8, 0x0},
- - {0xabc8, 0x0, 0x8, 0x8},
- - {0xabca, 0x0, 0x8, 0x10},
- - {0xabcb, 0x0, 0x1, 0x0},
- - {0xabc3, 0x5, 0x3, 0x7},
- - {0xabc0, 0x6, 0x1, 0x0},
- - {0xabc0, 0x4, 0x2, 0x0},
- - {0xa344, 0x4, 0x4, 0x1},
- - {0xabc0, 0x7, 0x1, 0x1},
- - {0xabc0, 0x2, 0x1, 0x1},
- - {0xa345, 0x0, 0x8, 0x66},
- - {0xa346, 0x0, 0x8, 0x66},
- - {0xa347, 0x0, 0x4, 0x0},
- - {0xa343, 0x0, 0x4, 0xa},
- - {0xa347, 0x4, 0x4, 0x2},
- - {0xa348, 0x0, 0x4, 0xc},
- - {0xa348, 0x4, 0x4, 0x7},
- - {0xa349, 0x0, 0x6, 0x2},
- -};
- diff -ruN ../linux-4.14.336/drivers/media/usb/dvb-usb/af9005.c ./drivers/media/usb/dvb-usb/af9005.c
- --- linux-4.14.336/../linux-4.14.336/drivers/media/usb/dvb-usb/af9005.c 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./drivers/media/usb/dvb-usb/af9005.c 1970-01-01 01:00:00.000000000 +0100
- @@ -1,1151 +0,0 @@
- -/* DVB USB compliant Linux driver for the Afatech 9005
- - * USB1.1 DVB-T receiver.
- - *
- - * Copyright (C) 2007 Luca Olivetti (luca@ventoso.org)
- - *
- - * Thanks to Afatech who kindly provided information.
- - *
- - * This program is free software; you can redistribute it and/or modify
- - * it under the terms of the GNU General Public License as published by
- - * the Free Software Foundation; either version 2 of the License, or
- - * (at your option) any later version.
- - *
- - * This program is distributed in the hope that it will be useful,
- - * but WITHOUT ANY WARRANTY; without even the implied warranty of
- - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- - * GNU General Public License for more details.
- - *
- - * see Documentation/dvb/README.dvb-usb for more information
- - */
- -#include "af9005.h"
- -
- -/* debug */
- -int dvb_usb_af9005_debug;
- -module_param_named(debug, dvb_usb_af9005_debug, int, 0644);
- -MODULE_PARM_DESC(debug,
- - "set debugging level (1=info,xfer=2,rc=4,reg=8,i2c=16,fw=32 (or-able))."
- - DVB_USB_DEBUG_STATUS);
- -/* enable obnoxious led */
- -bool dvb_usb_af9005_led = true;
- -module_param_named(led, dvb_usb_af9005_led, bool, 0644);
- -MODULE_PARM_DESC(led, "enable led (default: 1).");
- -
- -/* eeprom dump */
- -static int dvb_usb_af9005_dump_eeprom;
- -module_param_named(dump_eeprom, dvb_usb_af9005_dump_eeprom, int, 0);
- -MODULE_PARM_DESC(dump_eeprom, "dump contents of the eeprom.");
- -
- -DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
- -
- -/* remote control decoder */
- -static int (*rc_decode) (struct dvb_usb_device *d, u8 *data, int len,
- - u32 *event, int *state);
- -static void *rc_keys;
- -static int *rc_keys_size;
- -
- -u8 regmask[8] = { 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff };
- -
- -struct af9005_device_state {
- - u8 sequence;
- - int led_state;
- - unsigned char data[256];
- -};
- -
- -static int af9005_generic_read_write(struct dvb_usb_device *d, u16 reg,
- - int readwrite, int type, u8 * values, int len)
- -{
- - struct af9005_device_state *st = d->priv;
- - u8 command, seq;
- - int i, ret;
- -
- - if (len < 1) {
- - err("generic read/write, less than 1 byte. Makes no sense.");
- - return -EINVAL;
- - }
- - if (len > 8) {
- - err("generic read/write, more than 8 bytes. Not supported.");
- - return -EINVAL;
- - }
- -
- - mutex_lock(&d->data_mutex);
- - st->data[0] = 14; /* rest of buffer length low */
- - st->data[1] = 0; /* rest of buffer length high */
- -
- - st->data[2] = AF9005_REGISTER_RW; /* register operation */
- - st->data[3] = 12; /* rest of buffer length */
- -
- - st->data[4] = seq = st->sequence++; /* sequence number */
- -
- - st->data[5] = (u8) (reg >> 8); /* register address */
- - st->data[6] = (u8) (reg & 0xff);
- -
- - if (type == AF9005_OFDM_REG) {
- - command = AF9005_CMD_OFDM_REG;
- - } else {
- - command = AF9005_CMD_TUNER;
- - }
- -
- - if (len > 1)
- - command |=
- - AF9005_CMD_BURST | AF9005_CMD_AUTOINC | (len - 1) << 3;
- - command |= readwrite;
- - if (readwrite == AF9005_CMD_WRITE)
- - for (i = 0; i < len; i++)
- - st->data[8 + i] = values[i];
- - else if (type == AF9005_TUNER_REG)
- - /* read command for tuner, the first byte contains the i2c address */
- - st->data[8] = values[0];
- - st->data[7] = command;
- -
- - ret = dvb_usb_generic_rw(d, st->data, 16, st->data, 17, 0);
- - if (ret)
- - goto ret;
- -
- - /* sanity check */
- - if (st->data[2] != AF9005_REGISTER_RW_ACK) {
- - err("generic read/write, wrong reply code.");
- - ret = -EIO;
- - goto ret;
- - }
- - if (st->data[3] != 0x0d) {
- - err("generic read/write, wrong length in reply.");
- - ret = -EIO;
- - goto ret;
- - }
- - if (st->data[4] != seq) {
- - err("generic read/write, wrong sequence in reply.");
- - ret = -EIO;
- - goto ret;
- - }
- - /*
- - * In thesis, both input and output buffers should have
- - * identical values for st->data[5] to st->data[8].
- - * However, windows driver doesn't check these fields, in fact
- - * sometimes the register in the reply is different that what
- - * has been sent
- - */
- - if (st->data[16] != 0x01) {
- - err("generic read/write wrong status code in reply.");
- - ret = -EIO;
- - goto ret;
- - }
- -
- - if (readwrite == AF9005_CMD_READ)
- - for (i = 0; i < len; i++)
- - values[i] = st->data[8 + i];
- -
- -ret:
- - mutex_unlock(&d->data_mutex);
- - return ret;
- -
- -}
- -
- -int af9005_read_ofdm_register(struct dvb_usb_device *d, u16 reg, u8 * value)
- -{
- - int ret;
- - deb_reg("read register %x ", reg);
- - ret = af9005_generic_read_write(d, reg,
- - AF9005_CMD_READ, AF9005_OFDM_REG,
- - value, 1);
- - if (ret)
- - deb_reg("failed\n");
- - else
- - deb_reg("value %x\n", *value);
- - return ret;
- -}
- -
- -int af9005_read_ofdm_registers(struct dvb_usb_device *d, u16 reg,
- - u8 * values, int len)
- -{
- - int ret;
- - deb_reg("read %d registers %x ", len, reg);
- - ret = af9005_generic_read_write(d, reg,
- - AF9005_CMD_READ, AF9005_OFDM_REG,
- - values, len);
- - if (ret)
- - deb_reg("failed\n");
- - else
- - debug_dump(values, len, deb_reg);
- - return ret;
- -}
- -
- -int af9005_write_ofdm_register(struct dvb_usb_device *d, u16 reg, u8 value)
- -{
- - int ret;
- - u8 temp = value;
- - deb_reg("write register %x value %x ", reg, value);
- - ret = af9005_generic_read_write(d, reg,
- - AF9005_CMD_WRITE, AF9005_OFDM_REG,
- - &temp, 1);
- - if (ret)
- - deb_reg("failed\n");
- - else
- - deb_reg("ok\n");
- - return ret;
- -}
- -
- -int af9005_write_ofdm_registers(struct dvb_usb_device *d, u16 reg,
- - u8 * values, int len)
- -{
- - int ret;
- - deb_reg("write %d registers %x values ", len, reg);
- - debug_dump(values, len, deb_reg);
- -
- - ret = af9005_generic_read_write(d, reg,
- - AF9005_CMD_WRITE, AF9005_OFDM_REG,
- - values, len);
- - if (ret)
- - deb_reg("failed\n");
- - else
- - deb_reg("ok\n");
- - return ret;
- -}
- -
- -int af9005_read_register_bits(struct dvb_usb_device *d, u16 reg, u8 pos,
- - u8 len, u8 * value)
- -{
- - u8 temp;
- - int ret;
- - deb_reg("read bits %x %x %x", reg, pos, len);
- - ret = af9005_read_ofdm_register(d, reg, &temp);
- - if (ret) {
- - deb_reg(" failed\n");
- - return ret;
- - }
- - *value = (temp >> pos) & regmask[len - 1];
- - deb_reg(" value %x\n", *value);
- - return 0;
- -
- -}
- -
- -int af9005_write_register_bits(struct dvb_usb_device *d, u16 reg, u8 pos,
- - u8 len, u8 value)
- -{
- - u8 temp, mask;
- - int ret;
- - deb_reg("write bits %x %x %x value %x\n", reg, pos, len, value);
- - if (pos == 0 && len == 8)
- - return af9005_write_ofdm_register(d, reg, value);
- - ret = af9005_read_ofdm_register(d, reg, &temp);
- - if (ret)
- - return ret;
- - mask = regmask[len - 1] << pos;
- - temp = (temp & ~mask) | ((value << pos) & mask);
- - return af9005_write_ofdm_register(d, reg, temp);
- -
- -}
- -
- -static int af9005_usb_read_tuner_registers(struct dvb_usb_device *d,
- - u16 reg, u8 * values, int len)
- -{
- - return af9005_generic_read_write(d, reg,
- - AF9005_CMD_READ, AF9005_TUNER_REG,
- - values, len);
- -}
- -
- -static int af9005_usb_write_tuner_registers(struct dvb_usb_device *d,
- - u16 reg, u8 * values, int len)
- -{
- - return af9005_generic_read_write(d, reg,
- - AF9005_CMD_WRITE,
- - AF9005_TUNER_REG, values, len);
- -}
- -
- -int af9005_write_tuner_registers(struct dvb_usb_device *d, u16 reg,
- - u8 * values, int len)
- -{
- - /* don't let the name of this function mislead you: it's just used
- - as an interface from the firmware to the i2c bus. The actual
- - i2c addresses are contained in the data */
- - int ret, i, done = 0, fail = 0;
- - u8 temp;
- - ret = af9005_usb_write_tuner_registers(d, reg, values, len);
- - if (ret)
- - return ret;
- - if (reg != 0xffff) {
- - /* check if write done (0xa40d bit 1) or fail (0xa40d bit 2) */
- - for (i = 0; i < 200; i++) {
- - ret =
- - af9005_read_ofdm_register(d,
- - xd_I2C_i2c_m_status_wdat_done,
- - &temp);
- - if (ret)
- - return ret;
- - done = temp & (regmask[i2c_m_status_wdat_done_len - 1]
- - << i2c_m_status_wdat_done_pos);
- - if (done)
- - break;
- - fail = temp & (regmask[i2c_m_status_wdat_fail_len - 1]
- - << i2c_m_status_wdat_fail_pos);
- - if (fail)
- - break;
- - msleep(50);
- - }
- - if (i == 200)
- - return -ETIMEDOUT;
- - if (fail) {
- - /* clear write fail bit */
- - af9005_write_register_bits(d,
- - xd_I2C_i2c_m_status_wdat_fail,
- - i2c_m_status_wdat_fail_pos,
- - i2c_m_status_wdat_fail_len,
- - 1);
- - return -EIO;
- - }
- - /* clear write done bit */
- - ret =
- - af9005_write_register_bits(d,
- - xd_I2C_i2c_m_status_wdat_fail,
- - i2c_m_status_wdat_done_pos,
- - i2c_m_status_wdat_done_len, 1);
- - if (ret)
- - return ret;
- - }
- - return 0;
- -}
- -
- -int af9005_read_tuner_registers(struct dvb_usb_device *d, u16 reg, u8 addr,
- - u8 * values, int len)
- -{
- - /* don't let the name of this function mislead you: it's just used
- - as an interface from the firmware to the i2c bus. The actual
- - i2c addresses are contained in the data */
- - int ret, i;
- - u8 temp, buf[2];
- -
- - buf[0] = addr; /* tuner i2c address */
- - buf[1] = values[0]; /* tuner register */
- -
- - values[0] = addr + 0x01; /* i2c read address */
- -
- - if (reg == APO_REG_I2C_RW_SILICON_TUNER) {
- - /* write tuner i2c address to tuner, 0c00c0 undocumented, found by sniffing */
- - ret = af9005_write_tuner_registers(d, 0x00c0, buf, 2);
- - if (ret)
- - return ret;
- - }
- -
- - /* send read command to ofsm */
- - ret = af9005_usb_read_tuner_registers(d, reg, values, 1);
- - if (ret)
- - return ret;
- -
- - /* check if read done */
- - for (i = 0; i < 200; i++) {
- - ret = af9005_read_ofdm_register(d, 0xa408, &temp);
- - if (ret)
- - return ret;
- - if (temp & 0x01)
- - break;
- - msleep(50);
- - }
- - if (i == 200)
- - return -ETIMEDOUT;
- -
- - /* clear read done bit (by writing 1) */
- - ret = af9005_write_ofdm_register(d, xd_I2C_i2c_m_data8, 1);
- - if (ret)
- - return ret;
- -
- - /* get read data (available from 0xa400) */
- - for (i = 0; i < len; i++) {
- - ret = af9005_read_ofdm_register(d, 0xa400 + i, &temp);
- - if (ret)
- - return ret;
- - values[i] = temp;
- - }
- - return 0;
- -}
- -
- -static int af9005_i2c_write(struct dvb_usb_device *d, u8 i2caddr, u8 reg,
- - u8 * data, int len)
- -{
- - int ret, i;
- - u8 buf[3];
- - deb_i2c("i2c_write i2caddr %x, reg %x, len %d data ", i2caddr,
- - reg, len);
- - debug_dump(data, len, deb_i2c);
- -
- - for (i = 0; i < len; i++) {
- - buf[0] = i2caddr;
- - buf[1] = reg + (u8) i;
- - buf[2] = data[i];
- - ret =
- - af9005_write_tuner_registers(d,
- - APO_REG_I2C_RW_SILICON_TUNER,
- - buf, 3);
- - if (ret) {
- - deb_i2c("i2c_write failed\n");
- - return ret;
- - }
- - }
- - deb_i2c("i2c_write ok\n");
- - return 0;
- -}
- -
- -static int af9005_i2c_read(struct dvb_usb_device *d, u8 i2caddr, u8 reg,
- - u8 * data, int len)
- -{
- - int ret, i;
- - u8 temp;
- - deb_i2c("i2c_read i2caddr %x, reg %x, len %d\n ", i2caddr, reg, len);
- - for (i = 0; i < len; i++) {
- - temp = reg + i;
- - ret =
- - af9005_read_tuner_registers(d,
- - APO_REG_I2C_RW_SILICON_TUNER,
- - i2caddr, &temp, 1);
- - if (ret) {
- - deb_i2c("i2c_read failed\n");
- - return ret;
- - }
- - data[i] = temp;
- - }
- - deb_i2c("i2c data read: ");
- - debug_dump(data, len, deb_i2c);
- - return 0;
- -}
- -
- -static int af9005_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[],
- - int num)
- -{
- - /* only implements what the mt2060 module does, don't know how
- - to make it really generic */
- - struct dvb_usb_device *d = i2c_get_adapdata(adap);
- - int ret;
- - u8 reg, addr;
- - u8 *value;
- -
- - if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
- - return -EAGAIN;
- -
- - if (num > 2)
- - warn("more than 2 i2c messages at a time is not handled yet. TODO.");
- -
- - if (num == 2) {
- - /* reads a single register */
- - reg = *msg[0].buf;
- - addr = msg[0].addr;
- - value = msg[1].buf;
- - ret = af9005_i2c_read(d, addr, reg, value, 1);
- - if (ret == 0)
- - ret = 2;
- - } else {
- - if (msg[0].len < 2) {
- - ret = -EOPNOTSUPP;
- - goto unlock;
- - }
- - /* write one or more registers */
- - reg = msg[0].buf[0];
- - addr = msg[0].addr;
- - value = &msg[0].buf[1];
- - ret = af9005_i2c_write(d, addr, reg, value, msg[0].len - 1);
- - if (ret == 0)
- - ret = 1;
- - }
- -
- -unlock:
- - mutex_unlock(&d->i2c_mutex);
- - return ret;
- -}
- -
- -static u32 af9005_i2c_func(struct i2c_adapter *adapter)
- -{
- - return I2C_FUNC_I2C;
- -}
- -
- -static struct i2c_algorithm af9005_i2c_algo = {
- - .master_xfer = af9005_i2c_xfer,
- - .functionality = af9005_i2c_func,
- -};
- -
- -int af9005_send_command(struct dvb_usb_device *d, u8 command, u8 * wbuf,
- - int wlen, u8 * rbuf, int rlen)
- -{
- - struct af9005_device_state *st = d->priv;
- -
- - int ret, i, packet_len;
- - u8 seq;
- -
- - if (wlen < 0) {
- - err("send command, wlen less than 0 bytes. Makes no sense.");
- - return -EINVAL;
- - }
- - if (wlen > 54) {
- - err("send command, wlen more than 54 bytes. Not supported.");
- - return -EINVAL;
- - }
- - if (rlen > 54) {
- - err("send command, rlen more than 54 bytes. Not supported.");
- - return -EINVAL;
- - }
- - packet_len = wlen + 5;
- -
- - mutex_lock(&d->data_mutex);
- -
- - st->data[0] = (u8) (packet_len & 0xff);
- - st->data[1] = (u8) ((packet_len & 0xff00) >> 8);
- -
- - st->data[2] = 0x26; /* packet type */
- - st->data[3] = wlen + 3;
- - st->data[4] = seq = st->sequence++;
- - st->data[5] = command;
- - st->data[6] = wlen;
- - for (i = 0; i < wlen; i++)
- - st->data[7 + i] = wbuf[i];
- - ret = dvb_usb_generic_rw(d, st->data, wlen + 7, st->data, rlen + 7, 0);
- - if (st->data[2] != 0x27) {
- - err("send command, wrong reply code.");
- - ret = -EIO;
- - } else if (st->data[4] != seq) {
- - err("send command, wrong sequence in reply.");
- - ret = -EIO;
- - } else if (st->data[5] != 0x01) {
- - err("send command, wrong status code in reply.");
- - ret = -EIO;
- - } else if (st->data[6] != rlen) {
- - err("send command, invalid data length in reply.");
- - ret = -EIO;
- - }
- - if (!ret) {
- - for (i = 0; i < rlen; i++)
- - rbuf[i] = st->data[i + 7];
- - }
- -
- - mutex_unlock(&d->data_mutex);
- - return ret;
- -}
- -
- -int af9005_read_eeprom(struct dvb_usb_device *d, u8 address, u8 * values,
- - int len)
- -{
- - struct af9005_device_state *st = d->priv;
- - u8 seq;
- - int ret, i;
- -
- - mutex_lock(&d->data_mutex);
- -
- - memset(st->data, 0, sizeof(st->data));
- -
- - st->data[0] = 14; /* length of rest of packet low */
- - st->data[1] = 0; /* length of rest of packer high */
- -
- - st->data[2] = 0x2a; /* read/write eeprom */
- -
- - st->data[3] = 12; /* size */
- -
- - st->data[4] = seq = st->sequence++;
- -
- - st->data[5] = 0; /* read */
- -
- - st->data[6] = len;
- - st->data[7] = address;
- - ret = dvb_usb_generic_rw(d, st->data, 16, st->data, 14, 0);
- - if (st->data[2] != 0x2b) {
- - err("Read eeprom, invalid reply code");
- - ret = -EIO;
- - } else if (st->data[3] != 10) {
- - err("Read eeprom, invalid reply length");
- - ret = -EIO;
- - } else if (st->data[4] != seq) {
- - err("Read eeprom, wrong sequence in reply ");
- - ret = -EIO;
- - } else if (st->data[5] != 1) {
- - err("Read eeprom, wrong status in reply ");
- - ret = -EIO;
- - }
- -
- - if (!ret) {
- - for (i = 0; i < len; i++)
- - values[i] = st->data[6 + i];
- - }
- - mutex_unlock(&d->data_mutex);
- -
- - return ret;
- -}
- -
- -static int af9005_boot_packet(struct usb_device *udev, int type, u8 *reply,
- - u8 *buf, int size)
- -{
- - u16 checksum;
- - int act_len = 0, i, ret;
- -
- - memset(buf, 0, size);
- - buf[0] = (u8) (FW_BULKOUT_SIZE & 0xff);
- - buf[1] = (u8) ((FW_BULKOUT_SIZE >> 8) & 0xff);
- - switch (type) {
- - case FW_CONFIG:
- - buf[2] = 0x11;
- - buf[3] = 0x04;
- - buf[4] = 0x00; /* sequence number, original driver doesn't increment it here */
- - buf[5] = 0x03;
- - checksum = buf[4] + buf[5];
- - buf[6] = (u8) ((checksum >> 8) & 0xff);
- - buf[7] = (u8) (checksum & 0xff);
- - break;
- - case FW_CONFIRM:
- - buf[2] = 0x11;
- - buf[3] = 0x04;
- - buf[4] = 0x00; /* sequence number, original driver doesn't increment it here */
- - buf[5] = 0x01;
- - checksum = buf[4] + buf[5];
- - buf[6] = (u8) ((checksum >> 8) & 0xff);
- - buf[7] = (u8) (checksum & 0xff);
- - break;
- - case FW_BOOT:
- - buf[2] = 0x10;
- - buf[3] = 0x08;
- - buf[4] = 0x00; /* sequence number, original driver doesn't increment it here */
- - buf[5] = 0x97;
- - buf[6] = 0xaa;
- - buf[7] = 0x55;
- - buf[8] = 0xa5;
- - buf[9] = 0x5a;
- - checksum = 0;
- - for (i = 4; i <= 9; i++)
- - checksum += buf[i];
- - buf[10] = (u8) ((checksum >> 8) & 0xff);
- - buf[11] = (u8) (checksum & 0xff);
- - break;
- - default:
- - err("boot packet invalid boot packet type");
- - return -EINVAL;
- - }
- - deb_fw(">>> ");
- - debug_dump(buf, FW_BULKOUT_SIZE + 2, deb_fw);
- -
- - ret = usb_bulk_msg(udev,
- - usb_sndbulkpipe(udev, 0x02),
- - buf, FW_BULKOUT_SIZE + 2, &act_len, 2000);
- - if (ret)
- - err("boot packet bulk message failed: %d (%d/%d)", ret,
- - FW_BULKOUT_SIZE + 2, act_len);
- - else
- - ret = act_len != FW_BULKOUT_SIZE + 2 ? -1 : 0;
- - if (ret)
- - return ret;
- - memset(buf, 0, 9);
- - ret = usb_bulk_msg(udev,
- - usb_rcvbulkpipe(udev, 0x01), buf, 9, &act_len, 2000);
- - if (ret) {
- - err("boot packet recv bulk message failed: %d", ret);
- - return ret;
- - }
- - deb_fw("<<< ");
- - debug_dump(buf, act_len, deb_fw);
- - checksum = 0;
- - switch (type) {
- - case FW_CONFIG:
- - if (buf[2] != 0x11) {
- - err("boot bad config header.");
- - return -EIO;
- - }
- - if (buf[3] != 0x05) {
- - err("boot bad config size.");
- - return -EIO;
- - }
- - if (buf[4] != 0x00) {
- - err("boot bad config sequence.");
- - return -EIO;
- - }
- - if (buf[5] != 0x04) {
- - err("boot bad config subtype.");
- - return -EIO;
- - }
- - for (i = 4; i <= 6; i++)
- - checksum += buf[i];
- - if (buf[7] * 256 + buf[8] != checksum) {
- - err("boot bad config checksum.");
- - return -EIO;
- - }
- - *reply = buf[6];
- - break;
- - case FW_CONFIRM:
- - if (buf[2] != 0x11) {
- - err("boot bad confirm header.");
- - return -EIO;
- - }
- - if (buf[3] != 0x05) {
- - err("boot bad confirm size.");
- - return -EIO;
- - }
- - if (buf[4] != 0x00) {
- - err("boot bad confirm sequence.");
- - return -EIO;
- - }
- - if (buf[5] != 0x02) {
- - err("boot bad confirm subtype.");
- - return -EIO;
- - }
- - for (i = 4; i <= 6; i++)
- - checksum += buf[i];
- - if (buf[7] * 256 + buf[8] != checksum) {
- - err("boot bad confirm checksum.");
- - return -EIO;
- - }
- - *reply = buf[6];
- - break;
- - case FW_BOOT:
- - if (buf[2] != 0x10) {
- - err("boot bad boot header.");
- - return -EIO;
- - }
- - if (buf[3] != 0x05) {
- - err("boot bad boot size.");
- - return -EIO;
- - }
- - if (buf[4] != 0x00) {
- - err("boot bad boot sequence.");
- - return -EIO;
- - }
- - if (buf[5] != 0x01) {
- - err("boot bad boot pattern 01.");
- - return -EIO;
- - }
- - if (buf[6] != 0x10) {
- - err("boot bad boot pattern 10.");
- - return -EIO;
- - }
- - for (i = 4; i <= 6; i++)
- - checksum += buf[i];
- - if (buf[7] * 256 + buf[8] != checksum) {
- - err("boot bad boot checksum.");
- - return -EIO;
- - }
- - break;
- -
- - }
- -
- - return 0;
- -}
- -
- -static int af9005_download_firmware(struct usb_device *udev, const struct firmware *fw)
- -{
- - int i, packets, ret, act_len;
- -
- - u8 *buf;
- - u8 reply;
- -
- - buf = kmalloc(FW_BULKOUT_SIZE + 2, GFP_KERNEL);
- - if (!buf)
- - return -ENOMEM;
- -
- - ret = af9005_boot_packet(udev, FW_CONFIG, &reply, buf,
- - FW_BULKOUT_SIZE + 2);
- - if (ret)
- - goto err;
- - if (reply != 0x01) {
- - err("before downloading firmware, FW_CONFIG expected 0x01, received 0x%x", reply);
- - ret = -EIO;
- - goto err;
- - }
- - packets = fw->size / FW_BULKOUT_SIZE;
- - buf[0] = (u8) (FW_BULKOUT_SIZE & 0xff);
- - buf[1] = (u8) ((FW_BULKOUT_SIZE >> 8) & 0xff);
- - for (i = 0; i < packets; i++) {
- - memcpy(&buf[2], fw->data + i * FW_BULKOUT_SIZE,
- - FW_BULKOUT_SIZE);
- - deb_fw(">>> ");
- - debug_dump(buf, FW_BULKOUT_SIZE + 2, deb_fw);
- - ret = usb_bulk_msg(udev,
- - usb_sndbulkpipe(udev, 0x02),
- - buf, FW_BULKOUT_SIZE + 2, &act_len, 1000);
- - if (ret) {
- - err("firmware download failed at packet %d with code %d", i, ret);
- - goto err;
- - }
- - }
- - ret = af9005_boot_packet(udev, FW_CONFIRM, &reply,
- - buf, FW_BULKOUT_SIZE + 2);
- - if (ret)
- - goto err;
- - if (reply != (u8) (packets & 0xff)) {
- - err("after downloading firmware, FW_CONFIRM expected 0x%x, received 0x%x", packets & 0xff, reply);
- - ret = -EIO;
- - goto err;
- - }
- - ret = af9005_boot_packet(udev, FW_BOOT, &reply, buf,
- - FW_BULKOUT_SIZE + 2);
- - if (ret)
- - goto err;
- - ret = af9005_boot_packet(udev, FW_CONFIG, &reply, buf,
- - FW_BULKOUT_SIZE + 2);
- - if (ret)
- - goto err;
- - if (reply != 0x02) {
- - err("after downloading firmware, FW_CONFIG expected 0x02, received 0x%x", reply);
- - ret = -EIO;
- - goto err;
- - }
- -
- -err:
- - kfree(buf);
- - return ret;
- -
- -}
- -
- -int af9005_led_control(struct dvb_usb_device *d, int onoff)
- -{
- - struct af9005_device_state *st = d->priv;
- - int temp, ret;
- -
- - if (onoff && dvb_usb_af9005_led)
- - temp = 1;
- - else
- - temp = 0;
- - if (st->led_state != temp) {
- - ret =
- - af9005_write_register_bits(d, xd_p_reg_top_locken1,
- - reg_top_locken1_pos,
- - reg_top_locken1_len, temp);
- - if (ret)
- - return ret;
- - ret =
- - af9005_write_register_bits(d, xd_p_reg_top_lock1,
- - reg_top_lock1_pos,
- - reg_top_lock1_len, temp);
- - if (ret)
- - return ret;
- - st->led_state = temp;
- - }
- - return 0;
- -}
- -
- -static int af9005_frontend_attach(struct dvb_usb_adapter *adap)
- -{
- - u8 buf[8];
- - int i;
- -
- - /* without these calls the first commands after downloading
- - the firmware fail. I put these calls here to simulate
- - what it is done in dvb-usb-init.c.
- - */
- - struct usb_device *udev = adap->dev->udev;
- - usb_clear_halt(udev, usb_sndbulkpipe(udev, 2));
- - usb_clear_halt(udev, usb_rcvbulkpipe(udev, 1));
- - if (dvb_usb_af9005_dump_eeprom) {
- - printk("EEPROM DUMP\n");
- - for (i = 0; i < 255; i += 8) {
- - af9005_read_eeprom(adap->dev, i, buf, 8);
- - debug_dump(buf, 8, printk);
- - }
- - }
- - adap->fe_adap[0].fe = af9005_fe_attach(adap->dev);
- - return 0;
- -}
- -
- -static int af9005_rc_query(struct dvb_usb_device *d, u32 * event, int *state)
- -{
- - struct af9005_device_state *st = d->priv;
- - int ret, len;
- - u8 seq;
- -
- - *state = REMOTE_NO_KEY_PRESSED;
- - if (rc_decode == NULL) {
- - /* it shouldn't never come here */
- - return 0;
- - }
- -
- - mutex_lock(&d->data_mutex);
- -
- - /* deb_info("rc_query\n"); */
- - st->data[0] = 3; /* rest of packet length low */
- - st->data[1] = 0; /* rest of packet lentgh high */
- - st->data[2] = 0x40; /* read remote */
- - st->data[3] = 1; /* rest of packet length */
- - st->data[4] = seq = st->sequence++; /* sequence number */
- - ret = dvb_usb_generic_rw(d, st->data, 5, st->data, 256, 0);
- - if (ret) {
- - err("rc query failed");
- - goto ret;
- - }
- - if (st->data[2] != 0x41) {
- - err("rc query bad header.");
- - ret = -EIO;
- - goto ret;
- - } else if (st->data[4] != seq) {
- - err("rc query bad sequence.");
- - ret = -EIO;
- - goto ret;
- - }
- - len = st->data[5];
- - if (len > 246) {
- - err("rc query invalid length");
- - ret = -EIO;
- - goto ret;
- - }
- - if (len > 0) {
- - deb_rc("rc data (%d) ", len);
- - debug_dump((st->data + 6), len, deb_rc);
- - ret = rc_decode(d, &st->data[6], len, event, state);
- - if (ret) {
- - err("rc_decode failed");
- - goto ret;
- - } else {
- - deb_rc("rc_decode state %x event %x\n", *state, *event);
- - if (*state == REMOTE_KEY_REPEAT)
- - *event = d->last_event;
- - }
- - }
- -
- -ret:
- - mutex_unlock(&d->data_mutex);
- - return ret;
- -}
- -
- -static int af9005_power_ctrl(struct dvb_usb_device *d, int onoff)
- -{
- -
- - return 0;
- -}
- -
- -static int af9005_pid_filter_control(struct dvb_usb_adapter *adap, int onoff)
- -{
- - int ret;
- - deb_info("pid filter control onoff %d\n", onoff);
- - if (onoff) {
- - ret =
- - af9005_write_ofdm_register(adap->dev, XD_MP2IF_DMX_CTRL, 1);
- - if (ret)
- - return ret;
- - ret =
- - af9005_write_register_bits(adap->dev,
- - XD_MP2IF_DMX_CTRL, 1, 1, 1);
- - if (ret)
- - return ret;
- - ret =
- - af9005_write_ofdm_register(adap->dev, XD_MP2IF_DMX_CTRL, 1);
- - } else
- - ret =
- - af9005_write_ofdm_register(adap->dev, XD_MP2IF_DMX_CTRL, 0);
- - if (ret)
- - return ret;
- - deb_info("pid filter control ok\n");
- - return 0;
- -}
- -
- -static int af9005_pid_filter(struct dvb_usb_adapter *adap, int index,
- - u16 pid, int onoff)
- -{
- - u8 cmd = index & 0x1f;
- - int ret;
- - deb_info("set pid filter, index %d, pid %x, onoff %d\n", index,
- - pid, onoff);
- - if (onoff) {
- - /* cannot use it as pid_filter_ctrl since it has to be done
- - before setting the first pid */
- - if (adap->feedcount == 1) {
- - deb_info("first pid set, enable pid table\n");
- - ret = af9005_pid_filter_control(adap, onoff);
- - if (ret)
- - return ret;
- - }
- - ret =
- - af9005_write_ofdm_register(adap->dev,
- - XD_MP2IF_PID_DATA_L,
- - (u8) (pid & 0xff));
- - if (ret)
- - return ret;
- - ret =
- - af9005_write_ofdm_register(adap->dev,
- - XD_MP2IF_PID_DATA_H,
- - (u8) (pid >> 8));
- - if (ret)
- - return ret;
- - cmd |= 0x20 | 0x40;
- - } else {
- - if (adap->feedcount == 0) {
- - deb_info("last pid unset, disable pid table\n");
- - ret = af9005_pid_filter_control(adap, onoff);
- - if (ret)
- - return ret;
- - }
- - }
- - ret = af9005_write_ofdm_register(adap->dev, XD_MP2IF_PID_IDX, cmd);
- - if (ret)
- - return ret;
- - deb_info("set pid ok\n");
- - return 0;
- -}
- -
- -static int af9005_identify_state(struct usb_device *udev,
- - struct dvb_usb_device_properties *props,
- - struct dvb_usb_device_description **desc,
- - int *cold)
- -{
- - int ret;
- - u8 reply, *buf;
- -
- - buf = kmalloc(FW_BULKOUT_SIZE + 2, GFP_KERNEL);
- - if (!buf)
- - return -ENOMEM;
- -
- - ret = af9005_boot_packet(udev, FW_CONFIG, &reply,
- - buf, FW_BULKOUT_SIZE + 2);
- - if (ret)
- - goto err;
- - deb_info("result of FW_CONFIG in identify state %d\n", reply);
- - if (reply == 0x01)
- - *cold = 1;
- - else if (reply == 0x02)
- - *cold = 0;
- - else
- - ret = -EIO;
- - if (!ret)
- - deb_info("Identify state cold = %d\n", *cold);
- -
- -err:
- - kfree(buf);
- - return ret;
- -}
- -
- -static struct dvb_usb_device_properties af9005_properties;
- -
- -static int af9005_usb_probe(struct usb_interface *intf,
- - const struct usb_device_id *id)
- -{
- - return dvb_usb_device_init(intf, &af9005_properties,
- - THIS_MODULE, NULL, adapter_nr);
- -}
- -
- -enum af9005_usb_table_entry {
- - AFATECH_AF9005,
- - TERRATEC_AF9005,
- - ANSONIC_AF9005,
- -};
- -
- -static struct usb_device_id af9005_usb_table[] = {
- - [AFATECH_AF9005] = {USB_DEVICE(USB_VID_AFATECH,
- - USB_PID_AFATECH_AF9005)},
- - [TERRATEC_AF9005] = {USB_DEVICE(USB_VID_TERRATEC,
- - USB_PID_TERRATEC_CINERGY_T_USB_XE)},
- - [ANSONIC_AF9005] = {USB_DEVICE(USB_VID_ANSONIC,
- - USB_PID_ANSONIC_DVBT_USB)},
- - { }
- -};
- -
- -MODULE_DEVICE_TABLE(usb, af9005_usb_table);
- -
- -static struct dvb_usb_device_properties af9005_properties = {
- - .caps = DVB_USB_IS_AN_I2C_ADAPTER,
- -
- - .usb_ctrl = DEVICE_SPECIFIC,
- - .firmware = "af9005.fw",
- - .download_firmware = af9005_download_firmware,
- - .no_reconnect = 1,
- -
- - .size_of_priv = sizeof(struct af9005_device_state),
- -
- - .num_adapters = 1,
- - .adapter = {
- - {
- - .num_frontends = 1,
- - .fe = {{
- - .caps =
- - DVB_USB_ADAP_HAS_PID_FILTER |
- - DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF,
- - .pid_filter_count = 32,
- - .pid_filter = af9005_pid_filter,
- - /* .pid_filter_ctrl = af9005_pid_filter_control, */
- - .frontend_attach = af9005_frontend_attach,
- - /* .tuner_attach = af9005_tuner_attach, */
- - /* parameter for the MPEG2-data transfer */
- - .stream = {
- - .type = USB_BULK,
- - .count = 10,
- - .endpoint = 0x04,
- - .u = {
- - .bulk = {
- - .buffersize = 4096, /* actual size seen is 3948 */
- - }
- - }
- - },
- - }},
- - }
- - },
- - .power_ctrl = af9005_power_ctrl,
- - .identify_state = af9005_identify_state,
- -
- - .i2c_algo = &af9005_i2c_algo,
- -
- - .rc.legacy = {
- - .rc_interval = 200,
- - .rc_map_table = NULL,
- - .rc_map_size = 0,
- - .rc_query = af9005_rc_query,
- - },
- -
- - .generic_bulk_ctrl_endpoint = 2,
- - .generic_bulk_ctrl_endpoint_response = 1,
- -
- - .num_device_descs = 3,
- - .devices = {
- - {.name = "Afatech DVB-T USB1.1 stick",
- - .cold_ids = {&af9005_usb_table[AFATECH_AF9005], NULL},
- - .warm_ids = {NULL},
- - },
- - {.name = "TerraTec Cinergy T USB XE",
- - .cold_ids = {&af9005_usb_table[TERRATEC_AF9005], NULL},
- - .warm_ids = {NULL},
- - },
- - {.name = "Ansonic DVB-T USB1.1 stick",
- - .cold_ids = {&af9005_usb_table[ANSONIC_AF9005], NULL},
- - .warm_ids = {NULL},
- - },
- - {NULL},
- - }
- -};
- -
- -/* usb specific object needed to register this driver with the usb subsystem */
- -static struct usb_driver af9005_usb_driver = {
- - .name = "dvb_usb_af9005",
- - .probe = af9005_usb_probe,
- - .disconnect = dvb_usb_device_exit,
- - .id_table = af9005_usb_table,
- -};
- -
- -/* module stuff */
- -static int __init af9005_usb_module_init(void)
- -{
- - int result;
- - if ((result = usb_register(&af9005_usb_driver))) {
- - err("usb_register failed. (%d)", result);
- - return result;
- - }
- -#if IS_MODULE(CONFIG_DVB_USB_AF9005) || defined(CONFIG_DVB_USB_AF9005_REMOTE)
- - /* FIXME: convert to todays kernel IR infrastructure */
- - rc_decode = symbol_request(af9005_rc_decode);
- - rc_keys = symbol_request(rc_map_af9005_table);
- - rc_keys_size = symbol_request(rc_map_af9005_table_size);
- -#endif
- - if (rc_decode == NULL || rc_keys == NULL || rc_keys_size == NULL) {
- - err("af9005_rc_decode function not found, disabling remote");
- - af9005_properties.rc.legacy.rc_query = NULL;
- - } else {
- - af9005_properties.rc.legacy.rc_map_table = rc_keys;
- - af9005_properties.rc.legacy.rc_map_size = *rc_keys_size;
- - }
- -
- - return 0;
- -}
- -
- -static void __exit af9005_usb_module_exit(void)
- -{
- - /* release rc decode symbols */
- - if (rc_decode != NULL)
- - symbol_put(af9005_rc_decode);
- - if (rc_keys != NULL)
- - symbol_put(rc_map_af9005_table);
- - if (rc_keys_size != NULL)
- - symbol_put(rc_map_af9005_table_size);
- - /* deregister this driver from the USB subsystem */
- - usb_deregister(&af9005_usb_driver);
- -}
- -
- -module_init(af9005_usb_module_init);
- -module_exit(af9005_usb_module_exit);
- -
- -MODULE_AUTHOR("Luca Olivetti <luca@ventoso.org>");
- -MODULE_DESCRIPTION("Driver for Afatech 9005 DVB-T USB1.1 stick");
- -MODULE_VERSION("1.0");
- -MODULE_LICENSE("GPL");
- diff -ruN ../linux-4.14.336/drivers/media/usb/dvb-usb/af9005.h ./drivers/media/usb/dvb-usb/af9005.h
- --- linux-4.14.336/../linux-4.14.336/drivers/media/usb/dvb-usb/af9005.h 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./drivers/media/usb/dvb-usb/af9005.h 1970-01-01 01:00:00.000000000 +0100
- @@ -1,3492 +0,0 @@
- -/* Common header-file of the Linux driver for the Afatech 9005
- - * USB1.1 DVB-T receiver.
- - *
- - * Copyright (C) 2007 Luca Olivetti (luca@ventoso.org)
- - *
- - * Thanks to Afatech who kindly provided information.
- - *
- - * This program is free software; you can redistribute it and/or modify
- - * it under the terms of the GNU General Public License as published by
- - * the Free Software Foundation; either version 2 of the License, or
- - * (at your option) any later version.
- - *
- - * This program is distributed in the hope that it will be useful,
- - * but WITHOUT ANY WARRANTY; without even the implied warranty of
- - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- - * GNU General Public License for more details.
- - *
- - * see Documentation/dvb/README.dvb-usb for more information
- - */
- -#ifndef _DVB_USB_AF9005_H_
- -#define _DVB_USB_AF9005_H_
- -
- -#define DVB_USB_LOG_PREFIX "af9005"
- -#include "dvb-usb.h"
- -
- -extern int dvb_usb_af9005_debug;
- -#define deb_info(args...) dprintk(dvb_usb_af9005_debug,0x01,args)
- -#define deb_xfer(args...) dprintk(dvb_usb_af9005_debug,0x02,args)
- -#define deb_rc(args...) dprintk(dvb_usb_af9005_debug,0x04,args)
- -#define deb_reg(args...) dprintk(dvb_usb_af9005_debug,0x08,args)
- -#define deb_i2c(args...) dprintk(dvb_usb_af9005_debug,0x10,args)
- -#define deb_fw(args...) dprintk(dvb_usb_af9005_debug,0x20,args)
- -
- -extern bool dvb_usb_af9005_led;
- -
- -/* firmware */
- -#define FW_BULKOUT_SIZE 250
- -enum {
- - FW_CONFIG,
- - FW_CONFIRM,
- - FW_BOOT
- -};
- -
- -/* af9005 commands */
- -#define AF9005_OFDM_REG 0
- -#define AF9005_TUNER_REG 1
- -
- -#define AF9005_REGISTER_RW 0x20
- -#define AF9005_REGISTER_RW_ACK 0x21
- -
- -#define AF9005_CMD_OFDM_REG 0x00
- -#define AF9005_CMD_TUNER 0x80
- -#define AF9005_CMD_BURST 0x02
- -#define AF9005_CMD_AUTOINC 0x04
- -#define AF9005_CMD_READ 0x00
- -#define AF9005_CMD_WRITE 0x01
- -
- -/* af9005 registers */
- -#define APO_REG_RESET 0xAEFF
- -
- -#define APO_REG_I2C_RW_CAN_TUNER 0xF000
- -#define APO_REG_I2C_RW_SILICON_TUNER 0xF001
- -#define APO_REG_GPIO_RW_SILICON_TUNER 0xFFFE /* also for OFSM */
- -#define APO_REG_TRIGGER_OFSM 0xFFFF /* also for OFSM */
- -
- -/***********************************************************************
- - * Apollo Registers from VLSI *
- - ***********************************************************************/
- -#define xd_p_reg_aagc_inverted_agc 0xA000
- -#define reg_aagc_inverted_agc_pos 0
- -#define reg_aagc_inverted_agc_len 1
- -#define reg_aagc_inverted_agc_lsb 0
- -#define xd_p_reg_aagc_sign_only 0xA000
- -#define reg_aagc_sign_only_pos 1
- -#define reg_aagc_sign_only_len 1
- -#define reg_aagc_sign_only_lsb 0
- -#define xd_p_reg_aagc_slow_adc_en 0xA000
- -#define reg_aagc_slow_adc_en_pos 2
- -#define reg_aagc_slow_adc_en_len 1
- -#define reg_aagc_slow_adc_en_lsb 0
- -#define xd_p_reg_aagc_slow_adc_scale 0xA000
- -#define reg_aagc_slow_adc_scale_pos 3
- -#define reg_aagc_slow_adc_scale_len 5
- -#define reg_aagc_slow_adc_scale_lsb 0
- -#define xd_p_reg_aagc_check_slow_adc_lock 0xA001
- -#define reg_aagc_check_slow_adc_lock_pos 0
- -#define reg_aagc_check_slow_adc_lock_len 1
- -#define reg_aagc_check_slow_adc_lock_lsb 0
- -#define xd_p_reg_aagc_init_control 0xA001
- -#define reg_aagc_init_control_pos 1
- -#define reg_aagc_init_control_len 1
- -#define reg_aagc_init_control_lsb 0
- -#define xd_p_reg_aagc_total_gain_sel 0xA001
- -#define reg_aagc_total_gain_sel_pos 2
- -#define reg_aagc_total_gain_sel_len 2
- -#define reg_aagc_total_gain_sel_lsb 0
- -#define xd_p_reg_aagc_out_inv 0xA001
- -#define reg_aagc_out_inv_pos 5
- -#define reg_aagc_out_inv_len 1
- -#define reg_aagc_out_inv_lsb 0
- -#define xd_p_reg_aagc_int_en 0xA001
- -#define reg_aagc_int_en_pos 6
- -#define reg_aagc_int_en_len 1
- -#define reg_aagc_int_en_lsb 0
- -#define xd_p_reg_aagc_lock_change_flag 0xA001
- -#define reg_aagc_lock_change_flag_pos 7
- -#define reg_aagc_lock_change_flag_len 1
- -#define reg_aagc_lock_change_flag_lsb 0
- -#define xd_p_reg_aagc_rf_loop_bw_scale_acquire 0xA002
- -#define reg_aagc_rf_loop_bw_scale_acquire_pos 0
- -#define reg_aagc_rf_loop_bw_scale_acquire_len 5
- -#define reg_aagc_rf_loop_bw_scale_acquire_lsb 0
- -#define xd_p_reg_aagc_rf_loop_bw_scale_track 0xA003
- -#define reg_aagc_rf_loop_bw_scale_track_pos 0
- -#define reg_aagc_rf_loop_bw_scale_track_len 5
- -#define reg_aagc_rf_loop_bw_scale_track_lsb 0
- -#define xd_p_reg_aagc_if_loop_bw_scale_acquire 0xA004
- -#define reg_aagc_if_loop_bw_scale_acquire_pos 0
- -#define reg_aagc_if_loop_bw_scale_acquire_len 5
- -#define reg_aagc_if_loop_bw_scale_acquire_lsb 0
- -#define xd_p_reg_aagc_if_loop_bw_scale_track 0xA005
- -#define reg_aagc_if_loop_bw_scale_track_pos 0
- -#define reg_aagc_if_loop_bw_scale_track_len 5
- -#define reg_aagc_if_loop_bw_scale_track_lsb 0
- -#define xd_p_reg_aagc_max_rf_agc_7_0 0xA006
- -#define reg_aagc_max_rf_agc_7_0_pos 0
- -#define reg_aagc_max_rf_agc_7_0_len 8
- -#define reg_aagc_max_rf_agc_7_0_lsb 0
- -#define xd_p_reg_aagc_max_rf_agc_9_8 0xA007
- -#define reg_aagc_max_rf_agc_9_8_pos 0
- -#define reg_aagc_max_rf_agc_9_8_len 2
- -#define reg_aagc_max_rf_agc_9_8_lsb 8
- -#define xd_p_reg_aagc_min_rf_agc_7_0 0xA008
- -#define reg_aagc_min_rf_agc_7_0_pos 0
- -#define reg_aagc_min_rf_agc_7_0_len 8
- -#define reg_aagc_min_rf_agc_7_0_lsb 0
- -#define xd_p_reg_aagc_min_rf_agc_9_8 0xA009
- -#define reg_aagc_min_rf_agc_9_8_pos 0
- -#define reg_aagc_min_rf_agc_9_8_len 2
- -#define reg_aagc_min_rf_agc_9_8_lsb 8
- -#define xd_p_reg_aagc_max_if_agc_7_0 0xA00A
- -#define reg_aagc_max_if_agc_7_0_pos 0
- -#define reg_aagc_max_if_agc_7_0_len 8
- -#define reg_aagc_max_if_agc_7_0_lsb 0
- -#define xd_p_reg_aagc_max_if_agc_9_8 0xA00B
- -#define reg_aagc_max_if_agc_9_8_pos 0
- -#define reg_aagc_max_if_agc_9_8_len 2
- -#define reg_aagc_max_if_agc_9_8_lsb 8
- -#define xd_p_reg_aagc_min_if_agc_7_0 0xA00C
- -#define reg_aagc_min_if_agc_7_0_pos 0
- -#define reg_aagc_min_if_agc_7_0_len 8
- -#define reg_aagc_min_if_agc_7_0_lsb 0
- -#define xd_p_reg_aagc_min_if_agc_9_8 0xA00D
- -#define reg_aagc_min_if_agc_9_8_pos 0
- -#define reg_aagc_min_if_agc_9_8_len 2
- -#define reg_aagc_min_if_agc_9_8_lsb 8
- -#define xd_p_reg_aagc_lock_sample_scale 0xA00E
- -#define reg_aagc_lock_sample_scale_pos 0
- -#define reg_aagc_lock_sample_scale_len 5
- -#define reg_aagc_lock_sample_scale_lsb 0
- -#define xd_p_reg_aagc_rf_agc_lock_scale_acquire 0xA00F
- -#define reg_aagc_rf_agc_lock_scale_acquire_pos 0
- -#define reg_aagc_rf_agc_lock_scale_acquire_len 3
- -#define reg_aagc_rf_agc_lock_scale_acquire_lsb 0
- -#define xd_p_reg_aagc_rf_agc_lock_scale_track 0xA00F
- -#define reg_aagc_rf_agc_lock_scale_track_pos 3
- -#define reg_aagc_rf_agc_lock_scale_track_len 3
- -#define reg_aagc_rf_agc_lock_scale_track_lsb 0
- -#define xd_p_reg_aagc_if_agc_lock_scale_acquire 0xA010
- -#define reg_aagc_if_agc_lock_scale_acquire_pos 0
- -#define reg_aagc_if_agc_lock_scale_acquire_len 3
- -#define reg_aagc_if_agc_lock_scale_acquire_lsb 0
- -#define xd_p_reg_aagc_if_agc_lock_scale_track 0xA010
- -#define reg_aagc_if_agc_lock_scale_track_pos 3
- -#define reg_aagc_if_agc_lock_scale_track_len 3
- -#define reg_aagc_if_agc_lock_scale_track_lsb 0
- -#define xd_p_reg_aagc_rf_top_numerator_7_0 0xA011
- -#define reg_aagc_rf_top_numerator_7_0_pos 0
- -#define reg_aagc_rf_top_numerator_7_0_len 8
- -#define reg_aagc_rf_top_numerator_7_0_lsb 0
- -#define xd_p_reg_aagc_rf_top_numerator_9_8 0xA012
- -#define reg_aagc_rf_top_numerator_9_8_pos 0
- -#define reg_aagc_rf_top_numerator_9_8_len 2
- -#define reg_aagc_rf_top_numerator_9_8_lsb 8
- -#define xd_p_reg_aagc_if_top_numerator_7_0 0xA013
- -#define reg_aagc_if_top_numerator_7_0_pos 0
- -#define reg_aagc_if_top_numerator_7_0_len 8
- -#define reg_aagc_if_top_numerator_7_0_lsb 0
- -#define xd_p_reg_aagc_if_top_numerator_9_8 0xA014
- -#define reg_aagc_if_top_numerator_9_8_pos 0
- -#define reg_aagc_if_top_numerator_9_8_len 2
- -#define reg_aagc_if_top_numerator_9_8_lsb 8
- -#define xd_p_reg_aagc_adc_out_desired_7_0 0xA015
- -#define reg_aagc_adc_out_desired_7_0_pos 0
- -#define reg_aagc_adc_out_desired_7_0_len 8
- -#define reg_aagc_adc_out_desired_7_0_lsb 0
- -#define xd_p_reg_aagc_adc_out_desired_8 0xA016
- -#define reg_aagc_adc_out_desired_8_pos 0
- -#define reg_aagc_adc_out_desired_8_len 1
- -#define reg_aagc_adc_out_desired_8_lsb 0
- -#define xd_p_reg_aagc_fixed_gain 0xA016
- -#define reg_aagc_fixed_gain_pos 3
- -#define reg_aagc_fixed_gain_len 1
- -#define reg_aagc_fixed_gain_lsb 0
- -#define xd_p_reg_aagc_lock_count_th 0xA016
- -#define reg_aagc_lock_count_th_pos 4
- -#define reg_aagc_lock_count_th_len 4
- -#define reg_aagc_lock_count_th_lsb 0
- -#define xd_p_reg_aagc_fixed_rf_agc_control_7_0 0xA017
- -#define reg_aagc_fixed_rf_agc_control_7_0_pos 0
- -#define reg_aagc_fixed_rf_agc_control_7_0_len 8
- -#define reg_aagc_fixed_rf_agc_control_7_0_lsb 0
- -#define xd_p_reg_aagc_fixed_rf_agc_control_15_8 0xA018
- -#define reg_aagc_fixed_rf_agc_control_15_8_pos 0
- -#define reg_aagc_fixed_rf_agc_control_15_8_len 8
- -#define reg_aagc_fixed_rf_agc_control_15_8_lsb 8
- -#define xd_p_reg_aagc_fixed_rf_agc_control_23_16 0xA019
- -#define reg_aagc_fixed_rf_agc_control_23_16_pos 0
- -#define reg_aagc_fixed_rf_agc_control_23_16_len 8
- -#define reg_aagc_fixed_rf_agc_control_23_16_lsb 16
- -#define xd_p_reg_aagc_fixed_rf_agc_control_30_24 0xA01A
- -#define reg_aagc_fixed_rf_agc_control_30_24_pos 0
- -#define reg_aagc_fixed_rf_agc_control_30_24_len 7
- -#define reg_aagc_fixed_rf_agc_control_30_24_lsb 24
- -#define xd_p_reg_aagc_fixed_if_agc_control_7_0 0xA01B
- -#define reg_aagc_fixed_if_agc_control_7_0_pos 0
- -#define reg_aagc_fixed_if_agc_control_7_0_len 8
- -#define reg_aagc_fixed_if_agc_control_7_0_lsb 0
- -#define xd_p_reg_aagc_fixed_if_agc_control_15_8 0xA01C
- -#define reg_aagc_fixed_if_agc_control_15_8_pos 0
- -#define reg_aagc_fixed_if_agc_control_15_8_len 8
- -#define reg_aagc_fixed_if_agc_control_15_8_lsb 8
- -#define xd_p_reg_aagc_fixed_if_agc_control_23_16 0xA01D
- -#define reg_aagc_fixed_if_agc_control_23_16_pos 0
- -#define reg_aagc_fixed_if_agc_control_23_16_len 8
- -#define reg_aagc_fixed_if_agc_control_23_16_lsb 16
- -#define xd_p_reg_aagc_fixed_if_agc_control_30_24 0xA01E
- -#define reg_aagc_fixed_if_agc_control_30_24_pos 0
- -#define reg_aagc_fixed_if_agc_control_30_24_len 7
- -#define reg_aagc_fixed_if_agc_control_30_24_lsb 24
- -#define xd_p_reg_aagc_rf_agc_unlock_numerator 0xA01F
- -#define reg_aagc_rf_agc_unlock_numerator_pos 0
- -#define reg_aagc_rf_agc_unlock_numerator_len 6
- -#define reg_aagc_rf_agc_unlock_numerator_lsb 0
- -#define xd_p_reg_aagc_if_agc_unlock_numerator 0xA020
- -#define reg_aagc_if_agc_unlock_numerator_pos 0
- -#define reg_aagc_if_agc_unlock_numerator_len 6
- -#define reg_aagc_if_agc_unlock_numerator_lsb 0
- -#define xd_p_reg_unplug_th 0xA021
- -#define reg_unplug_th_pos 0
- -#define reg_unplug_th_len 8
- -#define reg_aagc_rf_x0_lsb 0
- -#define xd_p_reg_weak_signal_rfagc_thr 0xA022
- -#define reg_weak_signal_rfagc_thr_pos 0
- -#define reg_weak_signal_rfagc_thr_len 8
- -#define reg_weak_signal_rfagc_thr_lsb 0
- -#define xd_p_reg_unplug_rf_gain_th 0xA023
- -#define reg_unplug_rf_gain_th_pos 0
- -#define reg_unplug_rf_gain_th_len 8
- -#define reg_unplug_rf_gain_th_lsb 0
- -#define xd_p_reg_unplug_dtop_rf_gain_th 0xA024
- -#define reg_unplug_dtop_rf_gain_th_pos 0
- -#define reg_unplug_dtop_rf_gain_th_len 8
- -#define reg_unplug_dtop_rf_gain_th_lsb 0
- -#define xd_p_reg_unplug_dtop_if_gain_th 0xA025
- -#define reg_unplug_dtop_if_gain_th_pos 0
- -#define reg_unplug_dtop_if_gain_th_len 8
- -#define reg_unplug_dtop_if_gain_th_lsb 0
- -#define xd_p_reg_top_recover_at_unplug_en 0xA026
- -#define reg_top_recover_at_unplug_en_pos 0
- -#define reg_top_recover_at_unplug_en_len 1
- -#define reg_top_recover_at_unplug_en_lsb 0
- -#define xd_p_reg_aagc_rf_x6 0xA027
- -#define reg_aagc_rf_x6_pos 0
- -#define reg_aagc_rf_x6_len 8
- -#define reg_aagc_rf_x6_lsb 0
- -#define xd_p_reg_aagc_rf_x7 0xA028
- -#define reg_aagc_rf_x7_pos 0
- -#define reg_aagc_rf_x7_len 8
- -#define reg_aagc_rf_x7_lsb 0
- -#define xd_p_reg_aagc_rf_x8 0xA029
- -#define reg_aagc_rf_x8_pos 0
- -#define reg_aagc_rf_x8_len 8
- -#define reg_aagc_rf_x8_lsb 0
- -#define xd_p_reg_aagc_rf_x9 0xA02A
- -#define reg_aagc_rf_x9_pos 0
- -#define reg_aagc_rf_x9_len 8
- -#define reg_aagc_rf_x9_lsb 0
- -#define xd_p_reg_aagc_rf_x10 0xA02B
- -#define reg_aagc_rf_x10_pos 0
- -#define reg_aagc_rf_x10_len 8
- -#define reg_aagc_rf_x10_lsb 0
- -#define xd_p_reg_aagc_rf_x11 0xA02C
- -#define reg_aagc_rf_x11_pos 0
- -#define reg_aagc_rf_x11_len 8
- -#define reg_aagc_rf_x11_lsb 0
- -#define xd_p_reg_aagc_rf_x12 0xA02D
- -#define reg_aagc_rf_x12_pos 0
- -#define reg_aagc_rf_x12_len 8
- -#define reg_aagc_rf_x12_lsb 0
- -#define xd_p_reg_aagc_rf_x13 0xA02E
- -#define reg_aagc_rf_x13_pos 0
- -#define reg_aagc_rf_x13_len 8
- -#define reg_aagc_rf_x13_lsb 0
- -#define xd_p_reg_aagc_if_x0 0xA02F
- -#define reg_aagc_if_x0_pos 0
- -#define reg_aagc_if_x0_len 8
- -#define reg_aagc_if_x0_lsb 0
- -#define xd_p_reg_aagc_if_x1 0xA030
- -#define reg_aagc_if_x1_pos 0
- -#define reg_aagc_if_x1_len 8
- -#define reg_aagc_if_x1_lsb 0
- -#define xd_p_reg_aagc_if_x2 0xA031
- -#define reg_aagc_if_x2_pos 0
- -#define reg_aagc_if_x2_len 8
- -#define reg_aagc_if_x2_lsb 0
- -#define xd_p_reg_aagc_if_x3 0xA032
- -#define reg_aagc_if_x3_pos 0
- -#define reg_aagc_if_x3_len 8
- -#define reg_aagc_if_x3_lsb 0
- -#define xd_p_reg_aagc_if_x4 0xA033
- -#define reg_aagc_if_x4_pos 0
- -#define reg_aagc_if_x4_len 8
- -#define reg_aagc_if_x4_lsb 0
- -#define xd_p_reg_aagc_if_x5 0xA034
- -#define reg_aagc_if_x5_pos 0
- -#define reg_aagc_if_x5_len 8
- -#define reg_aagc_if_x5_lsb 0
- -#define xd_p_reg_aagc_if_x6 0xA035
- -#define reg_aagc_if_x6_pos 0
- -#define reg_aagc_if_x6_len 8
- -#define reg_aagc_if_x6_lsb 0
- -#define xd_p_reg_aagc_if_x7 0xA036
- -#define reg_aagc_if_x7_pos 0
- -#define reg_aagc_if_x7_len 8
- -#define reg_aagc_if_x7_lsb 0
- -#define xd_p_reg_aagc_if_x8 0xA037
- -#define reg_aagc_if_x8_pos 0
- -#define reg_aagc_if_x8_len 8
- -#define reg_aagc_if_x8_lsb 0
- -#define xd_p_reg_aagc_if_x9 0xA038
- -#define reg_aagc_if_x9_pos 0
- -#define reg_aagc_if_x9_len 8
- -#define reg_aagc_if_x9_lsb 0
- -#define xd_p_reg_aagc_if_x10 0xA039
- -#define reg_aagc_if_x10_pos 0
- -#define reg_aagc_if_x10_len 8
- -#define reg_aagc_if_x10_lsb 0
- -#define xd_p_reg_aagc_if_x11 0xA03A
- -#define reg_aagc_if_x11_pos 0
- -#define reg_aagc_if_x11_len 8
- -#define reg_aagc_if_x11_lsb 0
- -#define xd_p_reg_aagc_if_x12 0xA03B
- -#define reg_aagc_if_x12_pos 0
- -#define reg_aagc_if_x12_len 8
- -#define reg_aagc_if_x12_lsb 0
- -#define xd_p_reg_aagc_if_x13 0xA03C
- -#define reg_aagc_if_x13_pos 0
- -#define reg_aagc_if_x13_len 8
- -#define reg_aagc_if_x13_lsb 0
- -#define xd_p_reg_aagc_min_rf_ctl_8bit_for_dca 0xA03D
- -#define reg_aagc_min_rf_ctl_8bit_for_dca_pos 0
- -#define reg_aagc_min_rf_ctl_8bit_for_dca_len 8
- -#define reg_aagc_min_rf_ctl_8bit_for_dca_lsb 0
- -#define xd_p_reg_aagc_min_if_ctl_8bit_for_dca 0xA03E
- -#define reg_aagc_min_if_ctl_8bit_for_dca_pos 0
- -#define reg_aagc_min_if_ctl_8bit_for_dca_len 8
- -#define reg_aagc_min_if_ctl_8bit_for_dca_lsb 0
- -#define xd_r_reg_aagc_total_gain_7_0 0xA070
- -#define reg_aagc_total_gain_7_0_pos 0
- -#define reg_aagc_total_gain_7_0_len 8
- -#define reg_aagc_total_gain_7_0_lsb 0
- -#define xd_r_reg_aagc_total_gain_15_8 0xA071
- -#define reg_aagc_total_gain_15_8_pos 0
- -#define reg_aagc_total_gain_15_8_len 8
- -#define reg_aagc_total_gain_15_8_lsb 8
- -#define xd_p_reg_aagc_in_sat_cnt_7_0 0xA074
- -#define reg_aagc_in_sat_cnt_7_0_pos 0
- -#define reg_aagc_in_sat_cnt_7_0_len 8
- -#define reg_aagc_in_sat_cnt_7_0_lsb 0
- -#define xd_p_reg_aagc_in_sat_cnt_15_8 0xA075
- -#define reg_aagc_in_sat_cnt_15_8_pos 0
- -#define reg_aagc_in_sat_cnt_15_8_len 8
- -#define reg_aagc_in_sat_cnt_15_8_lsb 8
- -#define xd_p_reg_aagc_in_sat_cnt_23_16 0xA076
- -#define reg_aagc_in_sat_cnt_23_16_pos 0
- -#define reg_aagc_in_sat_cnt_23_16_len 8
- -#define reg_aagc_in_sat_cnt_23_16_lsb 16
- -#define xd_p_reg_aagc_in_sat_cnt_31_24 0xA077
- -#define reg_aagc_in_sat_cnt_31_24_pos 0
- -#define reg_aagc_in_sat_cnt_31_24_len 8
- -#define reg_aagc_in_sat_cnt_31_24_lsb 24
- -#define xd_r_reg_aagc_digital_rf_volt_7_0 0xA078
- -#define reg_aagc_digital_rf_volt_7_0_pos 0
- -#define reg_aagc_digital_rf_volt_7_0_len 8
- -#define reg_aagc_digital_rf_volt_7_0_lsb 0
- -#define xd_r_reg_aagc_digital_rf_volt_9_8 0xA079
- -#define reg_aagc_digital_rf_volt_9_8_pos 0
- -#define reg_aagc_digital_rf_volt_9_8_len 2
- -#define reg_aagc_digital_rf_volt_9_8_lsb 8
- -#define xd_r_reg_aagc_digital_if_volt_7_0 0xA07A
- -#define reg_aagc_digital_if_volt_7_0_pos 0
- -#define reg_aagc_digital_if_volt_7_0_len 8
- -#define reg_aagc_digital_if_volt_7_0_lsb 0
- -#define xd_r_reg_aagc_digital_if_volt_9_8 0xA07B
- -#define reg_aagc_digital_if_volt_9_8_pos 0
- -#define reg_aagc_digital_if_volt_9_8_len 2
- -#define reg_aagc_digital_if_volt_9_8_lsb 8
- -#define xd_r_reg_aagc_rf_gain 0xA07C
- -#define reg_aagc_rf_gain_pos 0
- -#define reg_aagc_rf_gain_len 8
- -#define reg_aagc_rf_gain_lsb 0
- -#define xd_r_reg_aagc_if_gain 0xA07D
- -#define reg_aagc_if_gain_pos 0
- -#define reg_aagc_if_gain_len 8
- -#define reg_aagc_if_gain_lsb 0
- -#define xd_p_tinr_imp_indicator 0xA080
- -#define tinr_imp_indicator_pos 0
- -#define tinr_imp_indicator_len 2
- -#define tinr_imp_indicator_lsb 0
- -#define xd_p_reg_tinr_fifo_size 0xA080
- -#define reg_tinr_fifo_size_pos 2
- -#define reg_tinr_fifo_size_len 5
- -#define reg_tinr_fifo_size_lsb 0
- -#define xd_p_reg_tinr_saturation_cnt_th 0xA081
- -#define reg_tinr_saturation_cnt_th_pos 0
- -#define reg_tinr_saturation_cnt_th_len 4
- -#define reg_tinr_saturation_cnt_th_lsb 0
- -#define xd_p_reg_tinr_saturation_th_3_0 0xA081
- -#define reg_tinr_saturation_th_3_0_pos 4
- -#define reg_tinr_saturation_th_3_0_len 4
- -#define reg_tinr_saturation_th_3_0_lsb 0
- -#define xd_p_reg_tinr_saturation_th_8_4 0xA082
- -#define reg_tinr_saturation_th_8_4_pos 0
- -#define reg_tinr_saturation_th_8_4_len 5
- -#define reg_tinr_saturation_th_8_4_lsb 4
- -#define xd_p_reg_tinr_imp_duration_th_2k_7_0 0xA083
- -#define reg_tinr_imp_duration_th_2k_7_0_pos 0
- -#define reg_tinr_imp_duration_th_2k_7_0_len 8
- -#define reg_tinr_imp_duration_th_2k_7_0_lsb 0
- -#define xd_p_reg_tinr_imp_duration_th_2k_8 0xA084
- -#define reg_tinr_imp_duration_th_2k_8_pos 0
- -#define reg_tinr_imp_duration_th_2k_8_len 1
- -#define reg_tinr_imp_duration_th_2k_8_lsb 0
- -#define xd_p_reg_tinr_imp_duration_th_8k_7_0 0xA085
- -#define reg_tinr_imp_duration_th_8k_7_0_pos 0
- -#define reg_tinr_imp_duration_th_8k_7_0_len 8
- -#define reg_tinr_imp_duration_th_8k_7_0_lsb 0
- -#define xd_p_reg_tinr_imp_duration_th_8k_10_8 0xA086
- -#define reg_tinr_imp_duration_th_8k_10_8_pos 0
- -#define reg_tinr_imp_duration_th_8k_10_8_len 3
- -#define reg_tinr_imp_duration_th_8k_10_8_lsb 8
- -#define xd_p_reg_tinr_freq_ratio_6m_7_0 0xA087
- -#define reg_tinr_freq_ratio_6m_7_0_pos 0
- -#define reg_tinr_freq_ratio_6m_7_0_len 8
- -#define reg_tinr_freq_ratio_6m_7_0_lsb 0
- -#define xd_p_reg_tinr_freq_ratio_6m_12_8 0xA088
- -#define reg_tinr_freq_ratio_6m_12_8_pos 0
- -#define reg_tinr_freq_ratio_6m_12_8_len 5
- -#define reg_tinr_freq_ratio_6m_12_8_lsb 8
- -#define xd_p_reg_tinr_freq_ratio_7m_7_0 0xA089
- -#define reg_tinr_freq_ratio_7m_7_0_pos 0
- -#define reg_tinr_freq_ratio_7m_7_0_len 8
- -#define reg_tinr_freq_ratio_7m_7_0_lsb 0
- -#define xd_p_reg_tinr_freq_ratio_7m_12_8 0xA08A
- -#define reg_tinr_freq_ratio_7m_12_8_pos 0
- -#define reg_tinr_freq_ratio_7m_12_8_len 5
- -#define reg_tinr_freq_ratio_7m_12_8_lsb 8
- -#define xd_p_reg_tinr_freq_ratio_8m_7_0 0xA08B
- -#define reg_tinr_freq_ratio_8m_7_0_pos 0
- -#define reg_tinr_freq_ratio_8m_7_0_len 8
- -#define reg_tinr_freq_ratio_8m_7_0_lsb 0
- -#define xd_p_reg_tinr_freq_ratio_8m_12_8 0xA08C
- -#define reg_tinr_freq_ratio_8m_12_8_pos 0
- -#define reg_tinr_freq_ratio_8m_12_8_len 5
- -#define reg_tinr_freq_ratio_8m_12_8_lsb 8
- -#define xd_p_reg_tinr_imp_duration_th_low_2k 0xA08D
- -#define reg_tinr_imp_duration_th_low_2k_pos 0
- -#define reg_tinr_imp_duration_th_low_2k_len 8
- -#define reg_tinr_imp_duration_th_low_2k_lsb 0
- -#define xd_p_reg_tinr_imp_duration_th_low_8k 0xA08E
- -#define reg_tinr_imp_duration_th_low_8k_pos 0
- -#define reg_tinr_imp_duration_th_low_8k_len 8
- -#define reg_tinr_imp_duration_th_low_8k_lsb 0
- -#define xd_r_reg_tinr_counter_7_0 0xA090
- -#define reg_tinr_counter_7_0_pos 0
- -#define reg_tinr_counter_7_0_len 8
- -#define reg_tinr_counter_7_0_lsb 0
- -#define xd_r_reg_tinr_counter_15_8 0xA091
- -#define reg_tinr_counter_15_8_pos 0
- -#define reg_tinr_counter_15_8_len 8
- -#define reg_tinr_counter_15_8_lsb 8
- -#define xd_p_reg_tinr_adative_tinr_en 0xA093
- -#define reg_tinr_adative_tinr_en_pos 0
- -#define reg_tinr_adative_tinr_en_len 1
- -#define reg_tinr_adative_tinr_en_lsb 0
- -#define xd_p_reg_tinr_peak_fifo_size 0xA093
- -#define reg_tinr_peak_fifo_size_pos 1
- -#define reg_tinr_peak_fifo_size_len 5
- -#define reg_tinr_peak_fifo_size_lsb 0
- -#define xd_p_reg_tinr_counter_rst 0xA093
- -#define reg_tinr_counter_rst_pos 6
- -#define reg_tinr_counter_rst_len 1
- -#define reg_tinr_counter_rst_lsb 0
- -#define xd_p_reg_tinr_search_period_7_0 0xA094
- -#define reg_tinr_search_period_7_0_pos 0
- -#define reg_tinr_search_period_7_0_len 8
- -#define reg_tinr_search_period_7_0_lsb 0
- -#define xd_p_reg_tinr_search_period_15_8 0xA095
- -#define reg_tinr_search_period_15_8_pos 0
- -#define reg_tinr_search_period_15_8_len 8
- -#define reg_tinr_search_period_15_8_lsb 8
- -#define xd_p_reg_ccifs_fcw_7_0 0xA0A0
- -#define reg_ccifs_fcw_7_0_pos 0
- -#define reg_ccifs_fcw_7_0_len 8
- -#define reg_ccifs_fcw_7_0_lsb 0
- -#define xd_p_reg_ccifs_fcw_12_8 0xA0A1
- -#define reg_ccifs_fcw_12_8_pos 0
- -#define reg_ccifs_fcw_12_8_len 5
- -#define reg_ccifs_fcw_12_8_lsb 8
- -#define xd_p_reg_ccifs_spec_inv 0xA0A1
- -#define reg_ccifs_spec_inv_pos 5
- -#define reg_ccifs_spec_inv_len 1
- -#define reg_ccifs_spec_inv_lsb 0
- -#define xd_p_reg_gp_trigger 0xA0A2
- -#define reg_gp_trigger_pos 0
- -#define reg_gp_trigger_len 1
- -#define reg_gp_trigger_lsb 0
- -#define xd_p_reg_trigger_sel 0xA0A2
- -#define reg_trigger_sel_pos 1
- -#define reg_trigger_sel_len 2
- -#define reg_trigger_sel_lsb 0
- -#define xd_p_reg_debug_ofdm 0xA0A2
- -#define reg_debug_ofdm_pos 3
- -#define reg_debug_ofdm_len 2
- -#define reg_debug_ofdm_lsb 0
- -#define xd_p_reg_trigger_module_sel 0xA0A3
- -#define reg_trigger_module_sel_pos 0
- -#define reg_trigger_module_sel_len 6
- -#define reg_trigger_module_sel_lsb 0
- -#define xd_p_reg_trigger_set_sel 0xA0A4
- -#define reg_trigger_set_sel_pos 0
- -#define reg_trigger_set_sel_len 6
- -#define reg_trigger_set_sel_lsb 0
- -#define xd_p_reg_fw_int_mask_n 0xA0A4
- -#define reg_fw_int_mask_n_pos 6
- -#define reg_fw_int_mask_n_len 1
- -#define reg_fw_int_mask_n_lsb 0
- -#define xd_p_reg_debug_group 0xA0A5
- -#define reg_debug_group_pos 0
- -#define reg_debug_group_len 4
- -#define reg_debug_group_lsb 0
- -#define xd_p_reg_odbg_clk_sel 0xA0A5
- -#define reg_odbg_clk_sel_pos 4
- -#define reg_odbg_clk_sel_len 2
- -#define reg_odbg_clk_sel_lsb 0
- -#define xd_p_reg_ccif_sc 0xA0C0
- -#define reg_ccif_sc_pos 0
- -#define reg_ccif_sc_len 4
- -#define reg_ccif_sc_lsb 0
- -#define xd_r_reg_ccif_saturate 0xA0C1
- -#define reg_ccif_saturate_pos 0
- -#define reg_ccif_saturate_len 2
- -#define reg_ccif_saturate_lsb 0
- -#define xd_r_reg_antif_saturate 0xA0C1
- -#define reg_antif_saturate_pos 2
- -#define reg_antif_saturate_len 4
- -#define reg_antif_saturate_lsb 0
- -#define xd_r_reg_acif_saturate 0xA0C2
- -#define reg_acif_saturate_pos 0
- -#define reg_acif_saturate_len 8
- -#define reg_acif_saturate_lsb 0
- -#define xd_p_reg_tmr_timer0_threshold_7_0 0xA0C8
- -#define reg_tmr_timer0_threshold_7_0_pos 0
- -#define reg_tmr_timer0_threshold_7_0_len 8
- -#define reg_tmr_timer0_threshold_7_0_lsb 0
- -#define xd_p_reg_tmr_timer0_threshold_15_8 0xA0C9
- -#define reg_tmr_timer0_threshold_15_8_pos 0
- -#define reg_tmr_timer0_threshold_15_8_len 8
- -#define reg_tmr_timer0_threshold_15_8_lsb 8
- -#define xd_p_reg_tmr_timer0_enable 0xA0CA
- -#define reg_tmr_timer0_enable_pos 0
- -#define reg_tmr_timer0_enable_len 1
- -#define reg_tmr_timer0_enable_lsb 0
- -#define xd_p_reg_tmr_timer0_clk_sel 0xA0CA
- -#define reg_tmr_timer0_clk_sel_pos 1
- -#define reg_tmr_timer0_clk_sel_len 1
- -#define reg_tmr_timer0_clk_sel_lsb 0
- -#define xd_p_reg_tmr_timer0_int 0xA0CA
- -#define reg_tmr_timer0_int_pos 2
- -#define reg_tmr_timer0_int_len 1
- -#define reg_tmr_timer0_int_lsb 0
- -#define xd_p_reg_tmr_timer0_rst 0xA0CA
- -#define reg_tmr_timer0_rst_pos 3
- -#define reg_tmr_timer0_rst_len 1
- -#define reg_tmr_timer0_rst_lsb 0
- -#define xd_r_reg_tmr_timer0_count_7_0 0xA0CB
- -#define reg_tmr_timer0_count_7_0_pos 0
- -#define reg_tmr_timer0_count_7_0_len 8
- -#define reg_tmr_timer0_count_7_0_lsb 0
- -#define xd_r_reg_tmr_timer0_count_15_8 0xA0CC
- -#define reg_tmr_timer0_count_15_8_pos 0
- -#define reg_tmr_timer0_count_15_8_len 8
- -#define reg_tmr_timer0_count_15_8_lsb 8
- -#define xd_p_reg_suspend 0xA0CD
- -#define reg_suspend_pos 0
- -#define reg_suspend_len 1
- -#define reg_suspend_lsb 0
- -#define xd_p_reg_suspend_rdy 0xA0CD
- -#define reg_suspend_rdy_pos 1
- -#define reg_suspend_rdy_len 1
- -#define reg_suspend_rdy_lsb 0
- -#define xd_p_reg_resume 0xA0CD
- -#define reg_resume_pos 2
- -#define reg_resume_len 1
- -#define reg_resume_lsb 0
- -#define xd_p_reg_resume_rdy 0xA0CD
- -#define reg_resume_rdy_pos 3
- -#define reg_resume_rdy_len 1
- -#define reg_resume_rdy_lsb 0
- -#define xd_p_reg_fmf 0xA0CE
- -#define reg_fmf_pos 0
- -#define reg_fmf_len 8
- -#define reg_fmf_lsb 0
- -#define xd_p_ccid_accumulate_num_2k_7_0 0xA100
- -#define ccid_accumulate_num_2k_7_0_pos 0
- -#define ccid_accumulate_num_2k_7_0_len 8
- -#define ccid_accumulate_num_2k_7_0_lsb 0
- -#define xd_p_ccid_accumulate_num_2k_12_8 0xA101
- -#define ccid_accumulate_num_2k_12_8_pos 0
- -#define ccid_accumulate_num_2k_12_8_len 5
- -#define ccid_accumulate_num_2k_12_8_lsb 8
- -#define xd_p_ccid_accumulate_num_8k_7_0 0xA102
- -#define ccid_accumulate_num_8k_7_0_pos 0
- -#define ccid_accumulate_num_8k_7_0_len 8
- -#define ccid_accumulate_num_8k_7_0_lsb 0
- -#define xd_p_ccid_accumulate_num_8k_14_8 0xA103
- -#define ccid_accumulate_num_8k_14_8_pos 0
- -#define ccid_accumulate_num_8k_14_8_len 7
- -#define ccid_accumulate_num_8k_14_8_lsb 8
- -#define xd_p_ccid_desired_level_0 0xA103
- -#define ccid_desired_level_0_pos 7
- -#define ccid_desired_level_0_len 1
- -#define ccid_desired_level_0_lsb 0
- -#define xd_p_ccid_desired_level_8_1 0xA104
- -#define ccid_desired_level_8_1_pos 0
- -#define ccid_desired_level_8_1_len 8
- -#define ccid_desired_level_8_1_lsb 1
- -#define xd_p_ccid_apply_delay 0xA105
- -#define ccid_apply_delay_pos 0
- -#define ccid_apply_delay_len 7
- -#define ccid_apply_delay_lsb 0
- -#define xd_p_ccid_CCID_Threshold1 0xA106
- -#define ccid_CCID_Threshold1_pos 0
- -#define ccid_CCID_Threshold1_len 8
- -#define ccid_CCID_Threshold1_lsb 0
- -#define xd_p_ccid_CCID_Threshold2 0xA107
- -#define ccid_CCID_Threshold2_pos 0
- -#define ccid_CCID_Threshold2_len 8
- -#define ccid_CCID_Threshold2_lsb 0
- -#define xd_p_reg_ccid_gain_scale 0xA108
- -#define reg_ccid_gain_scale_pos 0
- -#define reg_ccid_gain_scale_len 4
- -#define reg_ccid_gain_scale_lsb 0
- -#define xd_p_reg_ccid2_passband_gain_set 0xA108
- -#define reg_ccid2_passband_gain_set_pos 4
- -#define reg_ccid2_passband_gain_set_len 4
- -#define reg_ccid2_passband_gain_set_lsb 0
- -#define xd_r_ccid_multiplier_7_0 0xA109
- -#define ccid_multiplier_7_0_pos 0
- -#define ccid_multiplier_7_0_len 8
- -#define ccid_multiplier_7_0_lsb 0
- -#define xd_r_ccid_multiplier_15_8 0xA10A
- -#define ccid_multiplier_15_8_pos 0
- -#define ccid_multiplier_15_8_len 8
- -#define ccid_multiplier_15_8_lsb 8
- -#define xd_r_ccid_right_shift_bits 0xA10B
- -#define ccid_right_shift_bits_pos 0
- -#define ccid_right_shift_bits_len 4
- -#define ccid_right_shift_bits_lsb 0
- -#define xd_r_reg_ccid_sx_7_0 0xA10C
- -#define reg_ccid_sx_7_0_pos 0
- -#define reg_ccid_sx_7_0_len 8
- -#define reg_ccid_sx_7_0_lsb 0
- -#define xd_r_reg_ccid_sx_15_8 0xA10D
- -#define reg_ccid_sx_15_8_pos 0
- -#define reg_ccid_sx_15_8_len 8
- -#define reg_ccid_sx_15_8_lsb 8
- -#define xd_r_reg_ccid_sx_21_16 0xA10E
- -#define reg_ccid_sx_21_16_pos 0
- -#define reg_ccid_sx_21_16_len 6
- -#define reg_ccid_sx_21_16_lsb 16
- -#define xd_r_reg_ccid_sy_7_0 0xA110
- -#define reg_ccid_sy_7_0_pos 0
- -#define reg_ccid_sy_7_0_len 8
- -#define reg_ccid_sy_7_0_lsb 0
- -#define xd_r_reg_ccid_sy_15_8 0xA111
- -#define reg_ccid_sy_15_8_pos 0
- -#define reg_ccid_sy_15_8_len 8
- -#define reg_ccid_sy_15_8_lsb 8
- -#define xd_r_reg_ccid_sy_23_16 0xA112
- -#define reg_ccid_sy_23_16_pos 0
- -#define reg_ccid_sy_23_16_len 8
- -#define reg_ccid_sy_23_16_lsb 16
- -#define xd_r_reg_ccid2_sz_7_0 0xA114
- -#define reg_ccid2_sz_7_0_pos 0
- -#define reg_ccid2_sz_7_0_len 8
- -#define reg_ccid2_sz_7_0_lsb 0
- -#define xd_r_reg_ccid2_sz_15_8 0xA115
- -#define reg_ccid2_sz_15_8_pos 0
- -#define reg_ccid2_sz_15_8_len 8
- -#define reg_ccid2_sz_15_8_lsb 8
- -#define xd_r_reg_ccid2_sz_23_16 0xA116
- -#define reg_ccid2_sz_23_16_pos 0
- -#define reg_ccid2_sz_23_16_len 8
- -#define reg_ccid2_sz_23_16_lsb 16
- -#define xd_r_reg_ccid2_sz_25_24 0xA117
- -#define reg_ccid2_sz_25_24_pos 0
- -#define reg_ccid2_sz_25_24_len 2
- -#define reg_ccid2_sz_25_24_lsb 24
- -#define xd_r_reg_ccid2_sy_7_0 0xA118
- -#define reg_ccid2_sy_7_0_pos 0
- -#define reg_ccid2_sy_7_0_len 8
- -#define reg_ccid2_sy_7_0_lsb 0
- -#define xd_r_reg_ccid2_sy_15_8 0xA119
- -#define reg_ccid2_sy_15_8_pos 0
- -#define reg_ccid2_sy_15_8_len 8
- -#define reg_ccid2_sy_15_8_lsb 8
- -#define xd_r_reg_ccid2_sy_23_16 0xA11A
- -#define reg_ccid2_sy_23_16_pos 0
- -#define reg_ccid2_sy_23_16_len 8
- -#define reg_ccid2_sy_23_16_lsb 16
- -#define xd_r_reg_ccid2_sy_25_24 0xA11B
- -#define reg_ccid2_sy_25_24_pos 0
- -#define reg_ccid2_sy_25_24_len 2
- -#define reg_ccid2_sy_25_24_lsb 24
- -#define xd_p_dagc1_accumulate_num_2k_7_0 0xA120
- -#define dagc1_accumulate_num_2k_7_0_pos 0
- -#define dagc1_accumulate_num_2k_7_0_len 8
- -#define dagc1_accumulate_num_2k_7_0_lsb 0
- -#define xd_p_dagc1_accumulate_num_2k_12_8 0xA121
- -#define dagc1_accumulate_num_2k_12_8_pos 0
- -#define dagc1_accumulate_num_2k_12_8_len 5
- -#define dagc1_accumulate_num_2k_12_8_lsb 8
- -#define xd_p_dagc1_accumulate_num_8k_7_0 0xA122
- -#define dagc1_accumulate_num_8k_7_0_pos 0
- -#define dagc1_accumulate_num_8k_7_0_len 8
- -#define dagc1_accumulate_num_8k_7_0_lsb 0
- -#define xd_p_dagc1_accumulate_num_8k_14_8 0xA123
- -#define dagc1_accumulate_num_8k_14_8_pos 0
- -#define dagc1_accumulate_num_8k_14_8_len 7
- -#define dagc1_accumulate_num_8k_14_8_lsb 8
- -#define xd_p_dagc1_desired_level_0 0xA123
- -#define dagc1_desired_level_0_pos 7
- -#define dagc1_desired_level_0_len 1
- -#define dagc1_desired_level_0_lsb 0
- -#define xd_p_dagc1_desired_level_8_1 0xA124
- -#define dagc1_desired_level_8_1_pos 0
- -#define dagc1_desired_level_8_1_len 8
- -#define dagc1_desired_level_8_1_lsb 1
- -#define xd_p_dagc1_apply_delay 0xA125
- -#define dagc1_apply_delay_pos 0
- -#define dagc1_apply_delay_len 7
- -#define dagc1_apply_delay_lsb 0
- -#define xd_p_dagc1_bypass_scale_ctl 0xA126
- -#define dagc1_bypass_scale_ctl_pos 0
- -#define dagc1_bypass_scale_ctl_len 2
- -#define dagc1_bypass_scale_ctl_lsb 0
- -#define xd_p_reg_dagc1_in_sat_cnt_7_0 0xA127
- -#define reg_dagc1_in_sat_cnt_7_0_pos 0
- -#define reg_dagc1_in_sat_cnt_7_0_len 8
- -#define reg_dagc1_in_sat_cnt_7_0_lsb 0
- -#define xd_p_reg_dagc1_in_sat_cnt_15_8 0xA128
- -#define reg_dagc1_in_sat_cnt_15_8_pos 0
- -#define reg_dagc1_in_sat_cnt_15_8_len 8
- -#define reg_dagc1_in_sat_cnt_15_8_lsb 8
- -#define xd_p_reg_dagc1_in_sat_cnt_23_16 0xA129
- -#define reg_dagc1_in_sat_cnt_23_16_pos 0
- -#define reg_dagc1_in_sat_cnt_23_16_len 8
- -#define reg_dagc1_in_sat_cnt_23_16_lsb 16
- -#define xd_p_reg_dagc1_in_sat_cnt_31_24 0xA12A
- -#define reg_dagc1_in_sat_cnt_31_24_pos 0
- -#define reg_dagc1_in_sat_cnt_31_24_len 8
- -#define reg_dagc1_in_sat_cnt_31_24_lsb 24
- -#define xd_p_reg_dagc1_out_sat_cnt_7_0 0xA12B
- -#define reg_dagc1_out_sat_cnt_7_0_pos 0
- -#define reg_dagc1_out_sat_cnt_7_0_len 8
- -#define reg_dagc1_out_sat_cnt_7_0_lsb 0
- -#define xd_p_reg_dagc1_out_sat_cnt_15_8 0xA12C
- -#define reg_dagc1_out_sat_cnt_15_8_pos 0
- -#define reg_dagc1_out_sat_cnt_15_8_len 8
- -#define reg_dagc1_out_sat_cnt_15_8_lsb 8
- -#define xd_p_reg_dagc1_out_sat_cnt_23_16 0xA12D
- -#define reg_dagc1_out_sat_cnt_23_16_pos 0
- -#define reg_dagc1_out_sat_cnt_23_16_len 8
- -#define reg_dagc1_out_sat_cnt_23_16_lsb 16
- -#define xd_p_reg_dagc1_out_sat_cnt_31_24 0xA12E
- -#define reg_dagc1_out_sat_cnt_31_24_pos 0
- -#define reg_dagc1_out_sat_cnt_31_24_len 8
- -#define reg_dagc1_out_sat_cnt_31_24_lsb 24
- -#define xd_r_dagc1_multiplier_7_0 0xA136
- -#define dagc1_multiplier_7_0_pos 0
- -#define dagc1_multiplier_7_0_len 8
- -#define dagc1_multiplier_7_0_lsb 0
- -#define xd_r_dagc1_multiplier_15_8 0xA137
- -#define dagc1_multiplier_15_8_pos 0
- -#define dagc1_multiplier_15_8_len 8
- -#define dagc1_multiplier_15_8_lsb 8
- -#define xd_r_dagc1_right_shift_bits 0xA138
- -#define dagc1_right_shift_bits_pos 0
- -#define dagc1_right_shift_bits_len 4
- -#define dagc1_right_shift_bits_lsb 0
- -#define xd_p_reg_bfs_fcw_7_0 0xA140
- -#define reg_bfs_fcw_7_0_pos 0
- -#define reg_bfs_fcw_7_0_len 8
- -#define reg_bfs_fcw_7_0_lsb 0
- -#define xd_p_reg_bfs_fcw_15_8 0xA141
- -#define reg_bfs_fcw_15_8_pos 0
- -#define reg_bfs_fcw_15_8_len 8
- -#define reg_bfs_fcw_15_8_lsb 8
- -#define xd_p_reg_bfs_fcw_22_16 0xA142
- -#define reg_bfs_fcw_22_16_pos 0
- -#define reg_bfs_fcw_22_16_len 7
- -#define reg_bfs_fcw_22_16_lsb 16
- -#define xd_p_reg_antif_sf_7_0 0xA144
- -#define reg_antif_sf_7_0_pos 0
- -#define reg_antif_sf_7_0_len 8
- -#define reg_antif_sf_7_0_lsb 0
- -#define xd_p_reg_antif_sf_11_8 0xA145
- -#define reg_antif_sf_11_8_pos 0
- -#define reg_antif_sf_11_8_len 4
- -#define reg_antif_sf_11_8_lsb 8
- -#define xd_r_bfs_fcw_q_7_0 0xA150
- -#define bfs_fcw_q_7_0_pos 0
- -#define bfs_fcw_q_7_0_len 8
- -#define bfs_fcw_q_7_0_lsb 0
- -#define xd_r_bfs_fcw_q_15_8 0xA151
- -#define bfs_fcw_q_15_8_pos 0
- -#define bfs_fcw_q_15_8_len 8
- -#define bfs_fcw_q_15_8_lsb 8
- -#define xd_r_bfs_fcw_q_22_16 0xA152
- -#define bfs_fcw_q_22_16_pos 0
- -#define bfs_fcw_q_22_16_len 7
- -#define bfs_fcw_q_22_16_lsb 16
- -#define xd_p_reg_dca_enu 0xA160
- -#define reg_dca_enu_pos 0
- -#define reg_dca_enu_len 1
- -#define reg_dca_enu_lsb 0
- -#define xd_p_reg_dca_enl 0xA160
- -#define reg_dca_enl_pos 1
- -#define reg_dca_enl_len 1
- -#define reg_dca_enl_lsb 0
- -#define xd_p_reg_dca_lower_chip 0xA160
- -#define reg_dca_lower_chip_pos 2
- -#define reg_dca_lower_chip_len 1
- -#define reg_dca_lower_chip_lsb 0
- -#define xd_p_reg_dca_upper_chip 0xA160
- -#define reg_dca_upper_chip_pos 3
- -#define reg_dca_upper_chip_len 1
- -#define reg_dca_upper_chip_lsb 0
- -#define xd_p_reg_dca_platch 0xA160
- -#define reg_dca_platch_pos 4
- -#define reg_dca_platch_len 1
- -#define reg_dca_platch_lsb 0
- -#define xd_p_reg_dca_th 0xA161
- -#define reg_dca_th_pos 0
- -#define reg_dca_th_len 5
- -#define reg_dca_th_lsb 0
- -#define xd_p_reg_dca_scale 0xA162
- -#define reg_dca_scale_pos 0
- -#define reg_dca_scale_len 4
- -#define reg_dca_scale_lsb 0
- -#define xd_p_reg_dca_tone_7_0 0xA163
- -#define reg_dca_tone_7_0_pos 0
- -#define reg_dca_tone_7_0_len 8
- -#define reg_dca_tone_7_0_lsb 0
- -#define xd_p_reg_dca_tone_12_8 0xA164
- -#define reg_dca_tone_12_8_pos 0
- -#define reg_dca_tone_12_8_len 5
- -#define reg_dca_tone_12_8_lsb 8
- -#define xd_p_reg_dca_time_7_0 0xA165
- -#define reg_dca_time_7_0_pos 0
- -#define reg_dca_time_7_0_len 8
- -#define reg_dca_time_7_0_lsb 0
- -#define xd_p_reg_dca_time_15_8 0xA166
- -#define reg_dca_time_15_8_pos 0
- -#define reg_dca_time_15_8_len 8
- -#define reg_dca_time_15_8_lsb 8
- -#define xd_r_dcasm 0xA167
- -#define dcasm_pos 0
- -#define dcasm_len 3
- -#define dcasm_lsb 0
- -#define xd_p_reg_qnt_valuew_7_0 0xA168
- -#define reg_qnt_valuew_7_0_pos 0
- -#define reg_qnt_valuew_7_0_len 8
- -#define reg_qnt_valuew_7_0_lsb 0
- -#define xd_p_reg_qnt_valuew_10_8 0xA169
- -#define reg_qnt_valuew_10_8_pos 0
- -#define reg_qnt_valuew_10_8_len 3
- -#define reg_qnt_valuew_10_8_lsb 8
- -#define xd_p_dca_sbx_gain_diff_7_0 0xA16A
- -#define dca_sbx_gain_diff_7_0_pos 0
- -#define dca_sbx_gain_diff_7_0_len 8
- -#define dca_sbx_gain_diff_7_0_lsb 0
- -#define xd_p_dca_sbx_gain_diff_9_8 0xA16B
- -#define dca_sbx_gain_diff_9_8_pos 0
- -#define dca_sbx_gain_diff_9_8_len 2
- -#define dca_sbx_gain_diff_9_8_lsb 8
- -#define xd_p_reg_dca_stand_alone 0xA16C
- -#define reg_dca_stand_alone_pos 0
- -#define reg_dca_stand_alone_len 1
- -#define reg_dca_stand_alone_lsb 0
- -#define xd_p_reg_dca_upper_out_en 0xA16C
- -#define reg_dca_upper_out_en_pos 1
- -#define reg_dca_upper_out_en_len 1
- -#define reg_dca_upper_out_en_lsb 0
- -#define xd_p_reg_dca_rc_en 0xA16C
- -#define reg_dca_rc_en_pos 2
- -#define reg_dca_rc_en_len 1
- -#define reg_dca_rc_en_lsb 0
- -#define xd_p_reg_dca_retrain_send 0xA16C
- -#define reg_dca_retrain_send_pos 3
- -#define reg_dca_retrain_send_len 1
- -#define reg_dca_retrain_send_lsb 0
- -#define xd_p_reg_dca_retrain_rec 0xA16C
- -#define reg_dca_retrain_rec_pos 4
- -#define reg_dca_retrain_rec_len 1
- -#define reg_dca_retrain_rec_lsb 0
- -#define xd_p_reg_dca_api_tpsrdy 0xA16C
- -#define reg_dca_api_tpsrdy_pos 5
- -#define reg_dca_api_tpsrdy_len 1
- -#define reg_dca_api_tpsrdy_lsb 0
- -#define xd_p_reg_dca_symbol_gap 0xA16D
- -#define reg_dca_symbol_gap_pos 0
- -#define reg_dca_symbol_gap_len 4
- -#define reg_dca_symbol_gap_lsb 0
- -#define xd_p_reg_qnt_nfvaluew_7_0 0xA16E
- -#define reg_qnt_nfvaluew_7_0_pos 0
- -#define reg_qnt_nfvaluew_7_0_len 8
- -#define reg_qnt_nfvaluew_7_0_lsb 0
- -#define xd_p_reg_qnt_nfvaluew_10_8 0xA16F
- -#define reg_qnt_nfvaluew_10_8_pos 0
- -#define reg_qnt_nfvaluew_10_8_len 3
- -#define reg_qnt_nfvaluew_10_8_lsb 8
- -#define xd_p_reg_qnt_flatness_thr_7_0 0xA170
- -#define reg_qnt_flatness_thr_7_0_pos 0
- -#define reg_qnt_flatness_thr_7_0_len 8
- -#define reg_qnt_flatness_thr_7_0_lsb 0
- -#define xd_p_reg_qnt_flatness_thr_9_8 0xA171
- -#define reg_qnt_flatness_thr_9_8_pos 0
- -#define reg_qnt_flatness_thr_9_8_len 2
- -#define reg_qnt_flatness_thr_9_8_lsb 8
- -#define xd_p_reg_dca_tone_idx_5_0 0xA171
- -#define reg_dca_tone_idx_5_0_pos 2
- -#define reg_dca_tone_idx_5_0_len 6
- -#define reg_dca_tone_idx_5_0_lsb 0
- -#define xd_p_reg_dca_tone_idx_12_6 0xA172
- -#define reg_dca_tone_idx_12_6_pos 0
- -#define reg_dca_tone_idx_12_6_len 7
- -#define reg_dca_tone_idx_12_6_lsb 6
- -#define xd_p_reg_dca_data_vld 0xA173
- -#define reg_dca_data_vld_pos 0
- -#define reg_dca_data_vld_len 1
- -#define reg_dca_data_vld_lsb 0
- -#define xd_p_reg_dca_read_update 0xA173
- -#define reg_dca_read_update_pos 1
- -#define reg_dca_read_update_len 1
- -#define reg_dca_read_update_lsb 0
- -#define xd_r_reg_dca_data_re_5_0 0xA173
- -#define reg_dca_data_re_5_0_pos 2
- -#define reg_dca_data_re_5_0_len 6
- -#define reg_dca_data_re_5_0_lsb 0
- -#define xd_r_reg_dca_data_re_10_6 0xA174
- -#define reg_dca_data_re_10_6_pos 0
- -#define reg_dca_data_re_10_6_len 5
- -#define reg_dca_data_re_10_6_lsb 6
- -#define xd_r_reg_dca_data_im_7_0 0xA175
- -#define reg_dca_data_im_7_0_pos 0
- -#define reg_dca_data_im_7_0_len 8
- -#define reg_dca_data_im_7_0_lsb 0
- -#define xd_r_reg_dca_data_im_10_8 0xA176
- -#define reg_dca_data_im_10_8_pos 0
- -#define reg_dca_data_im_10_8_len 3
- -#define reg_dca_data_im_10_8_lsb 8
- -#define xd_r_reg_dca_data_h2_7_0 0xA178
- -#define reg_dca_data_h2_7_0_pos 0
- -#define reg_dca_data_h2_7_0_len 8
- -#define reg_dca_data_h2_7_0_lsb 0
- -#define xd_r_reg_dca_data_h2_9_8 0xA179
- -#define reg_dca_data_h2_9_8_pos 0
- -#define reg_dca_data_h2_9_8_len 2
- -#define reg_dca_data_h2_9_8_lsb 8
- -#define xd_p_reg_f_adc_7_0 0xA180
- -#define reg_f_adc_7_0_pos 0
- -#define reg_f_adc_7_0_len 8
- -#define reg_f_adc_7_0_lsb 0
- -#define xd_p_reg_f_adc_15_8 0xA181
- -#define reg_f_adc_15_8_pos 0
- -#define reg_f_adc_15_8_len 8
- -#define reg_f_adc_15_8_lsb 8
- -#define xd_p_reg_f_adc_23_16 0xA182
- -#define reg_f_adc_23_16_pos 0
- -#define reg_f_adc_23_16_len 8
- -#define reg_f_adc_23_16_lsb 16
- -#define xd_r_intp_mu_7_0 0xA190
- -#define intp_mu_7_0_pos 0
- -#define intp_mu_7_0_len 8
- -#define intp_mu_7_0_lsb 0
- -#define xd_r_intp_mu_15_8 0xA191
- -#define intp_mu_15_8_pos 0
- -#define intp_mu_15_8_len 8
- -#define intp_mu_15_8_lsb 8
- -#define xd_r_intp_mu_19_16 0xA192
- -#define intp_mu_19_16_pos 0
- -#define intp_mu_19_16_len 4
- -#define intp_mu_19_16_lsb 16
- -#define xd_p_reg_agc_rst 0xA1A0
- -#define reg_agc_rst_pos 0
- -#define reg_agc_rst_len 1
- -#define reg_agc_rst_lsb 0
- -#define xd_p_rf_agc_en 0xA1A0
- -#define rf_agc_en_pos 1
- -#define rf_agc_en_len 1
- -#define rf_agc_en_lsb 0
- -#define xd_p_rf_agc_dis 0xA1A0
- -#define rf_agc_dis_pos 2
- -#define rf_agc_dis_len 1
- -#define rf_agc_dis_lsb 0
- -#define xd_p_if_agc_rst 0xA1A0
- -#define if_agc_rst_pos 3
- -#define if_agc_rst_len 1
- -#define if_agc_rst_lsb 0
- -#define xd_p_if_agc_en 0xA1A0
- -#define if_agc_en_pos 4
- -#define if_agc_en_len 1
- -#define if_agc_en_lsb 0
- -#define xd_p_if_agc_dis 0xA1A0
- -#define if_agc_dis_pos 5
- -#define if_agc_dis_len 1
- -#define if_agc_dis_lsb 0
- -#define xd_p_agc_lock 0xA1A0
- -#define agc_lock_pos 6
- -#define agc_lock_len 1
- -#define agc_lock_lsb 0
- -#define xd_p_reg_tinr_rst 0xA1A1
- -#define reg_tinr_rst_pos 0
- -#define reg_tinr_rst_len 1
- -#define reg_tinr_rst_lsb 0
- -#define xd_p_reg_tinr_en 0xA1A1
- -#define reg_tinr_en_pos 1
- -#define reg_tinr_en_len 1
- -#define reg_tinr_en_lsb 0
- -#define xd_p_reg_ccifs_en 0xA1A2
- -#define reg_ccifs_en_pos 0
- -#define reg_ccifs_en_len 1
- -#define reg_ccifs_en_lsb 0
- -#define xd_p_reg_ccifs_dis 0xA1A2
- -#define reg_ccifs_dis_pos 1
- -#define reg_ccifs_dis_len 1
- -#define reg_ccifs_dis_lsb 0
- -#define xd_p_reg_ccifs_rst 0xA1A2
- -#define reg_ccifs_rst_pos 2
- -#define reg_ccifs_rst_len 1
- -#define reg_ccifs_rst_lsb 0
- -#define xd_p_reg_ccifs_byp 0xA1A2
- -#define reg_ccifs_byp_pos 3
- -#define reg_ccifs_byp_len 1
- -#define reg_ccifs_byp_lsb 0
- -#define xd_p_reg_ccif_en 0xA1A3
- -#define reg_ccif_en_pos 0
- -#define reg_ccif_en_len 1
- -#define reg_ccif_en_lsb 0
- -#define xd_p_reg_ccif_dis 0xA1A3
- -#define reg_ccif_dis_pos 1
- -#define reg_ccif_dis_len 1
- -#define reg_ccif_dis_lsb 0
- -#define xd_p_reg_ccif_rst 0xA1A3
- -#define reg_ccif_rst_pos 2
- -#define reg_ccif_rst_len 1
- -#define reg_ccif_rst_lsb 0
- -#define xd_p_reg_ccif_byp 0xA1A3
- -#define reg_ccif_byp_pos 3
- -#define reg_ccif_byp_len 1
- -#define reg_ccif_byp_lsb 0
- -#define xd_p_dagc1_rst 0xA1A4
- -#define dagc1_rst_pos 0
- -#define dagc1_rst_len 1
- -#define dagc1_rst_lsb 0
- -#define xd_p_dagc1_en 0xA1A4
- -#define dagc1_en_pos 1
- -#define dagc1_en_len 1
- -#define dagc1_en_lsb 0
- -#define xd_p_dagc1_mode 0xA1A4
- -#define dagc1_mode_pos 2
- -#define dagc1_mode_len 2
- -#define dagc1_mode_lsb 0
- -#define xd_p_dagc1_done 0xA1A4
- -#define dagc1_done_pos 4
- -#define dagc1_done_len 1
- -#define dagc1_done_lsb 0
- -#define xd_p_ccid_rst 0xA1A5
- -#define ccid_rst_pos 0
- -#define ccid_rst_len 1
- -#define ccid_rst_lsb 0
- -#define xd_p_ccid_en 0xA1A5
- -#define ccid_en_pos 1
- -#define ccid_en_len 1
- -#define ccid_en_lsb 0
- -#define xd_p_ccid_mode 0xA1A5
- -#define ccid_mode_pos 2
- -#define ccid_mode_len 2
- -#define ccid_mode_lsb 0
- -#define xd_p_ccid_done 0xA1A5
- -#define ccid_done_pos 4
- -#define ccid_done_len 1
- -#define ccid_done_lsb 0
- -#define xd_r_ccid_deted 0xA1A5
- -#define ccid_deted_pos 5
- -#define ccid_deted_len 1
- -#define ccid_deted_lsb 0
- -#define xd_p_ccid2_en 0xA1A5
- -#define ccid2_en_pos 6
- -#define ccid2_en_len 1
- -#define ccid2_en_lsb 0
- -#define xd_p_ccid2_done 0xA1A5
- -#define ccid2_done_pos 7
- -#define ccid2_done_len 1
- -#define ccid2_done_lsb 0
- -#define xd_p_reg_bfs_en 0xA1A6
- -#define reg_bfs_en_pos 0
- -#define reg_bfs_en_len 1
- -#define reg_bfs_en_lsb 0
- -#define xd_p_reg_bfs_dis 0xA1A6
- -#define reg_bfs_dis_pos 1
- -#define reg_bfs_dis_len 1
- -#define reg_bfs_dis_lsb 0
- -#define xd_p_reg_bfs_rst 0xA1A6
- -#define reg_bfs_rst_pos 2
- -#define reg_bfs_rst_len 1
- -#define reg_bfs_rst_lsb 0
- -#define xd_p_reg_bfs_byp 0xA1A6
- -#define reg_bfs_byp_pos 3
- -#define reg_bfs_byp_len 1
- -#define reg_bfs_byp_lsb 0
- -#define xd_p_reg_antif_en 0xA1A7
- -#define reg_antif_en_pos 0
- -#define reg_antif_en_len 1
- -#define reg_antif_en_lsb 0
- -#define xd_p_reg_antif_dis 0xA1A7
- -#define reg_antif_dis_pos 1
- -#define reg_antif_dis_len 1
- -#define reg_antif_dis_lsb 0
- -#define xd_p_reg_antif_rst 0xA1A7
- -#define reg_antif_rst_pos 2
- -#define reg_antif_rst_len 1
- -#define reg_antif_rst_lsb 0
- -#define xd_p_reg_antif_byp 0xA1A7
- -#define reg_antif_byp_pos 3
- -#define reg_antif_byp_len 1
- -#define reg_antif_byp_lsb 0
- -#define xd_p_intp_en 0xA1A8
- -#define intp_en_pos 0
- -#define intp_en_len 1
- -#define intp_en_lsb 0
- -#define xd_p_intp_dis 0xA1A8
- -#define intp_dis_pos 1
- -#define intp_dis_len 1
- -#define intp_dis_lsb 0
- -#define xd_p_intp_rst 0xA1A8
- -#define intp_rst_pos 2
- -#define intp_rst_len 1
- -#define intp_rst_lsb 0
- -#define xd_p_intp_byp 0xA1A8
- -#define intp_byp_pos 3
- -#define intp_byp_len 1
- -#define intp_byp_lsb 0
- -#define xd_p_reg_acif_en 0xA1A9
- -#define reg_acif_en_pos 0
- -#define reg_acif_en_len 1
- -#define reg_acif_en_lsb 0
- -#define xd_p_reg_acif_dis 0xA1A9
- -#define reg_acif_dis_pos 1
- -#define reg_acif_dis_len 1
- -#define reg_acif_dis_lsb 0
- -#define xd_p_reg_acif_rst 0xA1A9
- -#define reg_acif_rst_pos 2
- -#define reg_acif_rst_len 1
- -#define reg_acif_rst_lsb 0
- -#define xd_p_reg_acif_byp 0xA1A9
- -#define reg_acif_byp_pos 3
- -#define reg_acif_byp_len 1
- -#define reg_acif_byp_lsb 0
- -#define xd_p_reg_acif_sync_mode 0xA1A9
- -#define reg_acif_sync_mode_pos 4
- -#define reg_acif_sync_mode_len 1
- -#define reg_acif_sync_mode_lsb 0
- -#define xd_p_dagc2_rst 0xA1AA
- -#define dagc2_rst_pos 0
- -#define dagc2_rst_len 1
- -#define dagc2_rst_lsb 0
- -#define xd_p_dagc2_en 0xA1AA
- -#define dagc2_en_pos 1
- -#define dagc2_en_len 1
- -#define dagc2_en_lsb 0
- -#define xd_p_dagc2_mode 0xA1AA
- -#define dagc2_mode_pos 2
- -#define dagc2_mode_len 2
- -#define dagc2_mode_lsb 0
- -#define xd_p_dagc2_done 0xA1AA
- -#define dagc2_done_pos 4
- -#define dagc2_done_len 1
- -#define dagc2_done_lsb 0
- -#define xd_p_reg_dca_en 0xA1AB
- -#define reg_dca_en_pos 0
- -#define reg_dca_en_len 1
- -#define reg_dca_en_lsb 0
- -#define xd_p_dagc2_accumulate_num_2k_7_0 0xA1C0
- -#define dagc2_accumulate_num_2k_7_0_pos 0
- -#define dagc2_accumulate_num_2k_7_0_len 8
- -#define dagc2_accumulate_num_2k_7_0_lsb 0
- -#define xd_p_dagc2_accumulate_num_2k_12_8 0xA1C1
- -#define dagc2_accumulate_num_2k_12_8_pos 0
- -#define dagc2_accumulate_num_2k_12_8_len 5
- -#define dagc2_accumulate_num_2k_12_8_lsb 8
- -#define xd_p_dagc2_accumulate_num_8k_7_0 0xA1C2
- -#define dagc2_accumulate_num_8k_7_0_pos 0
- -#define dagc2_accumulate_num_8k_7_0_len 8
- -#define dagc2_accumulate_num_8k_7_0_lsb 0
- -#define xd_p_dagc2_accumulate_num_8k_12_8 0xA1C3
- -#define dagc2_accumulate_num_8k_12_8_pos 0
- -#define dagc2_accumulate_num_8k_12_8_len 5
- -#define dagc2_accumulate_num_8k_12_8_lsb 8
- -#define xd_p_dagc2_desired_level_2_0 0xA1C3
- -#define dagc2_desired_level_2_0_pos 5
- -#define dagc2_desired_level_2_0_len 3
- -#define dagc2_desired_level_2_0_lsb 0
- -#define xd_p_dagc2_desired_level_8_3 0xA1C4
- -#define dagc2_desired_level_8_3_pos 0
- -#define dagc2_desired_level_8_3_len 6
- -#define dagc2_desired_level_8_3_lsb 3
- -#define xd_p_dagc2_apply_delay 0xA1C5
- -#define dagc2_apply_delay_pos 0
- -#define dagc2_apply_delay_len 7
- -#define dagc2_apply_delay_lsb 0
- -#define xd_p_dagc2_bypass_scale_ctl 0xA1C6
- -#define dagc2_bypass_scale_ctl_pos 0
- -#define dagc2_bypass_scale_ctl_len 3
- -#define dagc2_bypass_scale_ctl_lsb 0
- -#define xd_p_dagc2_programmable_shift1 0xA1C7
- -#define dagc2_programmable_shift1_pos 0
- -#define dagc2_programmable_shift1_len 8
- -#define dagc2_programmable_shift1_lsb 0
- -#define xd_p_dagc2_programmable_shift2 0xA1C8
- -#define dagc2_programmable_shift2_pos 0
- -#define dagc2_programmable_shift2_len 8
- -#define dagc2_programmable_shift2_lsb 0
- -#define xd_p_reg_dagc2_in_sat_cnt_7_0 0xA1C9
- -#define reg_dagc2_in_sat_cnt_7_0_pos 0
- -#define reg_dagc2_in_sat_cnt_7_0_len 8
- -#define reg_dagc2_in_sat_cnt_7_0_lsb 0
- -#define xd_p_reg_dagc2_in_sat_cnt_15_8 0xA1CA
- -#define reg_dagc2_in_sat_cnt_15_8_pos 0
- -#define reg_dagc2_in_sat_cnt_15_8_len 8
- -#define reg_dagc2_in_sat_cnt_15_8_lsb 8
- -#define xd_p_reg_dagc2_in_sat_cnt_23_16 0xA1CB
- -#define reg_dagc2_in_sat_cnt_23_16_pos 0
- -#define reg_dagc2_in_sat_cnt_23_16_len 8
- -#define reg_dagc2_in_sat_cnt_23_16_lsb 16
- -#define xd_p_reg_dagc2_in_sat_cnt_31_24 0xA1CC
- -#define reg_dagc2_in_sat_cnt_31_24_pos 0
- -#define reg_dagc2_in_sat_cnt_31_24_len 8
- -#define reg_dagc2_in_sat_cnt_31_24_lsb 24
- -#define xd_p_reg_dagc2_out_sat_cnt_7_0 0xA1CD
- -#define reg_dagc2_out_sat_cnt_7_0_pos 0
- -#define reg_dagc2_out_sat_cnt_7_0_len 8
- -#define reg_dagc2_out_sat_cnt_7_0_lsb 0
- -#define xd_p_reg_dagc2_out_sat_cnt_15_8 0xA1CE
- -#define reg_dagc2_out_sat_cnt_15_8_pos 0
- -#define reg_dagc2_out_sat_cnt_15_8_len 8
- -#define reg_dagc2_out_sat_cnt_15_8_lsb 8
- -#define xd_p_reg_dagc2_out_sat_cnt_23_16 0xA1CF
- -#define reg_dagc2_out_sat_cnt_23_16_pos 0
- -#define reg_dagc2_out_sat_cnt_23_16_len 8
- -#define reg_dagc2_out_sat_cnt_23_16_lsb 16
- -#define xd_p_reg_dagc2_out_sat_cnt_31_24 0xA1D0
- -#define reg_dagc2_out_sat_cnt_31_24_pos 0
- -#define reg_dagc2_out_sat_cnt_31_24_len 8
- -#define reg_dagc2_out_sat_cnt_31_24_lsb 24
- -#define xd_r_dagc2_multiplier_7_0 0xA1D6
- -#define dagc2_multiplier_7_0_pos 0
- -#define dagc2_multiplier_7_0_len 8
- -#define dagc2_multiplier_7_0_lsb 0
- -#define xd_r_dagc2_multiplier_15_8 0xA1D7
- -#define dagc2_multiplier_15_8_pos 0
- -#define dagc2_multiplier_15_8_len 8
- -#define dagc2_multiplier_15_8_lsb 8
- -#define xd_r_dagc2_right_shift_bits 0xA1D8
- -#define dagc2_right_shift_bits_pos 0
- -#define dagc2_right_shift_bits_len 4
- -#define dagc2_right_shift_bits_lsb 0
- -#define xd_p_cfoe_NS_coeff1_7_0 0xA200
- -#define cfoe_NS_coeff1_7_0_pos 0
- -#define cfoe_NS_coeff1_7_0_len 8
- -#define cfoe_NS_coeff1_7_0_lsb 0
- -#define xd_p_cfoe_NS_coeff1_15_8 0xA201
- -#define cfoe_NS_coeff1_15_8_pos 0
- -#define cfoe_NS_coeff1_15_8_len 8
- -#define cfoe_NS_coeff1_15_8_lsb 8
- -#define xd_p_cfoe_NS_coeff1_23_16 0xA202
- -#define cfoe_NS_coeff1_23_16_pos 0
- -#define cfoe_NS_coeff1_23_16_len 8
- -#define cfoe_NS_coeff1_23_16_lsb 16
- -#define xd_p_cfoe_NS_coeff1_25_24 0xA203
- -#define cfoe_NS_coeff1_25_24_pos 0
- -#define cfoe_NS_coeff1_25_24_len 2
- -#define cfoe_NS_coeff1_25_24_lsb 24
- -#define xd_p_cfoe_NS_coeff2_5_0 0xA203
- -#define cfoe_NS_coeff2_5_0_pos 2
- -#define cfoe_NS_coeff2_5_0_len 6
- -#define cfoe_NS_coeff2_5_0_lsb 0
- -#define xd_p_cfoe_NS_coeff2_13_6 0xA204
- -#define cfoe_NS_coeff2_13_6_pos 0
- -#define cfoe_NS_coeff2_13_6_len 8
- -#define cfoe_NS_coeff2_13_6_lsb 6
- -#define xd_p_cfoe_NS_coeff2_21_14 0xA205
- -#define cfoe_NS_coeff2_21_14_pos 0
- -#define cfoe_NS_coeff2_21_14_len 8
- -#define cfoe_NS_coeff2_21_14_lsb 14
- -#define xd_p_cfoe_NS_coeff2_24_22 0xA206
- -#define cfoe_NS_coeff2_24_22_pos 0
- -#define cfoe_NS_coeff2_24_22_len 3
- -#define cfoe_NS_coeff2_24_22_lsb 22
- -#define xd_p_cfoe_lf_c1_4_0 0xA206
- -#define cfoe_lf_c1_4_0_pos 3
- -#define cfoe_lf_c1_4_0_len 5
- -#define cfoe_lf_c1_4_0_lsb 0
- -#define xd_p_cfoe_lf_c1_12_5 0xA207
- -#define cfoe_lf_c1_12_5_pos 0
- -#define cfoe_lf_c1_12_5_len 8
- -#define cfoe_lf_c1_12_5_lsb 5
- -#define xd_p_cfoe_lf_c1_20_13 0xA208
- -#define cfoe_lf_c1_20_13_pos 0
- -#define cfoe_lf_c1_20_13_len 8
- -#define cfoe_lf_c1_20_13_lsb 13
- -#define xd_p_cfoe_lf_c1_25_21 0xA209
- -#define cfoe_lf_c1_25_21_pos 0
- -#define cfoe_lf_c1_25_21_len 5
- -#define cfoe_lf_c1_25_21_lsb 21
- -#define xd_p_cfoe_lf_c2_2_0 0xA209
- -#define cfoe_lf_c2_2_0_pos 5
- -#define cfoe_lf_c2_2_0_len 3
- -#define cfoe_lf_c2_2_0_lsb 0
- -#define xd_p_cfoe_lf_c2_10_3 0xA20A
- -#define cfoe_lf_c2_10_3_pos 0
- -#define cfoe_lf_c2_10_3_len 8
- -#define cfoe_lf_c2_10_3_lsb 3
- -#define xd_p_cfoe_lf_c2_18_11 0xA20B
- -#define cfoe_lf_c2_18_11_pos 0
- -#define cfoe_lf_c2_18_11_len 8
- -#define cfoe_lf_c2_18_11_lsb 11
- -#define xd_p_cfoe_lf_c2_25_19 0xA20C
- -#define cfoe_lf_c2_25_19_pos 0
- -#define cfoe_lf_c2_25_19_len 7
- -#define cfoe_lf_c2_25_19_lsb 19
- -#define xd_p_cfoe_ifod_7_0 0xA20D
- -#define cfoe_ifod_7_0_pos 0
- -#define cfoe_ifod_7_0_len 8
- -#define cfoe_ifod_7_0_lsb 0
- -#define xd_p_cfoe_ifod_10_8 0xA20E
- -#define cfoe_ifod_10_8_pos 0
- -#define cfoe_ifod_10_8_len 3
- -#define cfoe_ifod_10_8_lsb 8
- -#define xd_p_cfoe_Divg_ctr_th 0xA20E
- -#define cfoe_Divg_ctr_th_pos 4
- -#define cfoe_Divg_ctr_th_len 4
- -#define cfoe_Divg_ctr_th_lsb 0
- -#define xd_p_cfoe_FOT_divg_th 0xA20F
- -#define cfoe_FOT_divg_th_pos 0
- -#define cfoe_FOT_divg_th_len 8
- -#define cfoe_FOT_divg_th_lsb 0
- -#define xd_p_cfoe_FOT_cnvg_th 0xA210
- -#define cfoe_FOT_cnvg_th_pos 0
- -#define cfoe_FOT_cnvg_th_len 8
- -#define cfoe_FOT_cnvg_th_lsb 0
- -#define xd_p_reg_cfoe_offset_7_0 0xA211
- -#define reg_cfoe_offset_7_0_pos 0
- -#define reg_cfoe_offset_7_0_len 8
- -#define reg_cfoe_offset_7_0_lsb 0
- -#define xd_p_reg_cfoe_offset_9_8 0xA212
- -#define reg_cfoe_offset_9_8_pos 0
- -#define reg_cfoe_offset_9_8_len 2
- -#define reg_cfoe_offset_9_8_lsb 8
- -#define xd_p_reg_cfoe_ifoe_sign_corr 0xA212
- -#define reg_cfoe_ifoe_sign_corr_pos 2
- -#define reg_cfoe_ifoe_sign_corr_len 1
- -#define reg_cfoe_ifoe_sign_corr_lsb 0
- -#define xd_r_cfoe_fot_LF_output_7_0 0xA218
- -#define cfoe_fot_LF_output_7_0_pos 0
- -#define cfoe_fot_LF_output_7_0_len 8
- -#define cfoe_fot_LF_output_7_0_lsb 0
- -#define xd_r_cfoe_fot_LF_output_15_8 0xA219
- -#define cfoe_fot_LF_output_15_8_pos 0
- -#define cfoe_fot_LF_output_15_8_len 8
- -#define cfoe_fot_LF_output_15_8_lsb 8
- -#define xd_r_cfoe_ifo_metric_7_0 0xA21A
- -#define cfoe_ifo_metric_7_0_pos 0
- -#define cfoe_ifo_metric_7_0_len 8
- -#define cfoe_ifo_metric_7_0_lsb 0
- -#define xd_r_cfoe_ifo_metric_15_8 0xA21B
- -#define cfoe_ifo_metric_15_8_pos 0
- -#define cfoe_ifo_metric_15_8_len 8
- -#define cfoe_ifo_metric_15_8_lsb 8
- -#define xd_r_cfoe_ifo_metric_23_16 0xA21C
- -#define cfoe_ifo_metric_23_16_pos 0
- -#define cfoe_ifo_metric_23_16_len 8
- -#define cfoe_ifo_metric_23_16_lsb 16
- -#define xd_p_ste_Nu 0xA220
- -#define ste_Nu_pos 0
- -#define ste_Nu_len 2
- -#define ste_Nu_lsb 0
- -#define xd_p_ste_GI 0xA220
- -#define ste_GI_pos 2
- -#define ste_GI_len 3
- -#define ste_GI_lsb 0
- -#define xd_p_ste_symbol_num 0xA221
- -#define ste_symbol_num_pos 0
- -#define ste_symbol_num_len 2
- -#define ste_symbol_num_lsb 0
- -#define xd_p_ste_sample_num 0xA221
- -#define ste_sample_num_pos 2
- -#define ste_sample_num_len 2
- -#define ste_sample_num_lsb 0
- -#define xd_p_reg_ste_buf_en 0xA221
- -#define reg_ste_buf_en_pos 7
- -#define reg_ste_buf_en_len 1
- -#define reg_ste_buf_en_lsb 0
- -#define xd_p_ste_FFT_offset_7_0 0xA222
- -#define ste_FFT_offset_7_0_pos 0
- -#define ste_FFT_offset_7_0_len 8
- -#define ste_FFT_offset_7_0_lsb 0
- -#define xd_p_ste_FFT_offset_11_8 0xA223
- -#define ste_FFT_offset_11_8_pos 0
- -#define ste_FFT_offset_11_8_len 4
- -#define ste_FFT_offset_11_8_lsb 8
- -#define xd_p_reg_ste_tstmod 0xA223
- -#define reg_ste_tstmod_pos 5
- -#define reg_ste_tstmod_len 1
- -#define reg_ste_tstmod_lsb 0
- -#define xd_p_ste_adv_start_7_0 0xA224
- -#define ste_adv_start_7_0_pos 0
- -#define ste_adv_start_7_0_len 8
- -#define ste_adv_start_7_0_lsb 0
- -#define xd_p_ste_adv_start_10_8 0xA225
- -#define ste_adv_start_10_8_pos 0
- -#define ste_adv_start_10_8_len 3
- -#define ste_adv_start_10_8_lsb 8
- -#define xd_p_ste_adv_stop 0xA226
- -#define ste_adv_stop_pos 0
- -#define ste_adv_stop_len 8
- -#define ste_adv_stop_lsb 0
- -#define xd_r_ste_P_value_7_0 0xA228
- -#define ste_P_value_7_0_pos 0
- -#define ste_P_value_7_0_len 8
- -#define ste_P_value_7_0_lsb 0
- -#define xd_r_ste_P_value_10_8 0xA229
- -#define ste_P_value_10_8_pos 0
- -#define ste_P_value_10_8_len 3
- -#define ste_P_value_10_8_lsb 8
- -#define xd_r_ste_M_value_7_0 0xA22A
- -#define ste_M_value_7_0_pos 0
- -#define ste_M_value_7_0_len 8
- -#define ste_M_value_7_0_lsb 0
- -#define xd_r_ste_M_value_10_8 0xA22B
- -#define ste_M_value_10_8_pos 0
- -#define ste_M_value_10_8_len 3
- -#define ste_M_value_10_8_lsb 8
- -#define xd_r_ste_H1 0xA22C
- -#define ste_H1_pos 0
- -#define ste_H1_len 7
- -#define ste_H1_lsb 0
- -#define xd_r_ste_H2 0xA22D
- -#define ste_H2_pos 0
- -#define ste_H2_len 7
- -#define ste_H2_lsb 0
- -#define xd_r_ste_H3 0xA22E
- -#define ste_H3_pos 0
- -#define ste_H3_len 7
- -#define ste_H3_lsb 0
- -#define xd_r_ste_H4 0xA22F
- -#define ste_H4_pos 0
- -#define ste_H4_len 7
- -#define ste_H4_lsb 0
- -#define xd_r_ste_Corr_value_I_7_0 0xA230
- -#define ste_Corr_value_I_7_0_pos 0
- -#define ste_Corr_value_I_7_0_len 8
- -#define ste_Corr_value_I_7_0_lsb 0
- -#define xd_r_ste_Corr_value_I_15_8 0xA231
- -#define ste_Corr_value_I_15_8_pos 0
- -#define ste_Corr_value_I_15_8_len 8
- -#define ste_Corr_value_I_15_8_lsb 8
- -#define xd_r_ste_Corr_value_I_23_16 0xA232
- -#define ste_Corr_value_I_23_16_pos 0
- -#define ste_Corr_value_I_23_16_len 8
- -#define ste_Corr_value_I_23_16_lsb 16
- -#define xd_r_ste_Corr_value_I_27_24 0xA233
- -#define ste_Corr_value_I_27_24_pos 0
- -#define ste_Corr_value_I_27_24_len 4
- -#define ste_Corr_value_I_27_24_lsb 24
- -#define xd_r_ste_Corr_value_Q_7_0 0xA234
- -#define ste_Corr_value_Q_7_0_pos 0
- -#define ste_Corr_value_Q_7_0_len 8
- -#define ste_Corr_value_Q_7_0_lsb 0
- -#define xd_r_ste_Corr_value_Q_15_8 0xA235
- -#define ste_Corr_value_Q_15_8_pos 0
- -#define ste_Corr_value_Q_15_8_len 8
- -#define ste_Corr_value_Q_15_8_lsb 8
- -#define xd_r_ste_Corr_value_Q_23_16 0xA236
- -#define ste_Corr_value_Q_23_16_pos 0
- -#define ste_Corr_value_Q_23_16_len 8
- -#define ste_Corr_value_Q_23_16_lsb 16
- -#define xd_r_ste_Corr_value_Q_27_24 0xA237
- -#define ste_Corr_value_Q_27_24_pos 0
- -#define ste_Corr_value_Q_27_24_len 4
- -#define ste_Corr_value_Q_27_24_lsb 24
- -#define xd_r_ste_J_num_7_0 0xA238
- -#define ste_J_num_7_0_pos 0
- -#define ste_J_num_7_0_len 8
- -#define ste_J_num_7_0_lsb 0
- -#define xd_r_ste_J_num_15_8 0xA239
- -#define ste_J_num_15_8_pos 0
- -#define ste_J_num_15_8_len 8
- -#define ste_J_num_15_8_lsb 8
- -#define xd_r_ste_J_num_23_16 0xA23A
- -#define ste_J_num_23_16_pos 0
- -#define ste_J_num_23_16_len 8
- -#define ste_J_num_23_16_lsb 16
- -#define xd_r_ste_J_num_31_24 0xA23B
- -#define ste_J_num_31_24_pos 0
- -#define ste_J_num_31_24_len 8
- -#define ste_J_num_31_24_lsb 24
- -#define xd_r_ste_J_den_7_0 0xA23C
- -#define ste_J_den_7_0_pos 0
- -#define ste_J_den_7_0_len 8
- -#define ste_J_den_7_0_lsb 0
- -#define xd_r_ste_J_den_15_8 0xA23D
- -#define ste_J_den_15_8_pos 0
- -#define ste_J_den_15_8_len 8
- -#define ste_J_den_15_8_lsb 8
- -#define xd_r_ste_J_den_18_16 0xA23E
- -#define ste_J_den_18_16_pos 0
- -#define ste_J_den_18_16_len 3
- -#define ste_J_den_18_16_lsb 16
- -#define xd_r_ste_Beacon_Indicator 0xA23E
- -#define ste_Beacon_Indicator_pos 4
- -#define ste_Beacon_Indicator_len 1
- -#define ste_Beacon_Indicator_lsb 0
- -#define xd_r_tpsd_Frame_Num 0xA250
- -#define tpsd_Frame_Num_pos 0
- -#define tpsd_Frame_Num_len 2
- -#define tpsd_Frame_Num_lsb 0
- -#define xd_r_tpsd_Constel 0xA250
- -#define tpsd_Constel_pos 2
- -#define tpsd_Constel_len 2
- -#define tpsd_Constel_lsb 0
- -#define xd_r_tpsd_GI 0xA250
- -#define tpsd_GI_pos 4
- -#define tpsd_GI_len 2
- -#define tpsd_GI_lsb 0
- -#define xd_r_tpsd_Mode 0xA250
- -#define tpsd_Mode_pos 6
- -#define tpsd_Mode_len 2
- -#define tpsd_Mode_lsb 0
- -#define xd_r_tpsd_CR_HP 0xA251
- -#define tpsd_CR_HP_pos 0
- -#define tpsd_CR_HP_len 3
- -#define tpsd_CR_HP_lsb 0
- -#define xd_r_tpsd_CR_LP 0xA251
- -#define tpsd_CR_LP_pos 3
- -#define tpsd_CR_LP_len 3
- -#define tpsd_CR_LP_lsb 0
- -#define xd_r_tpsd_Hie 0xA252
- -#define tpsd_Hie_pos 0
- -#define tpsd_Hie_len 3
- -#define tpsd_Hie_lsb 0
- -#define xd_r_tpsd_Res_Bits 0xA252
- -#define tpsd_Res_Bits_pos 3
- -#define tpsd_Res_Bits_len 5
- -#define tpsd_Res_Bits_lsb 0
- -#define xd_r_tpsd_Res_Bits_0 0xA253
- -#define tpsd_Res_Bits_0_pos 0
- -#define tpsd_Res_Bits_0_len 1
- -#define tpsd_Res_Bits_0_lsb 0
- -#define xd_r_tpsd_LengthInd 0xA253
- -#define tpsd_LengthInd_pos 1
- -#define tpsd_LengthInd_len 6
- -#define tpsd_LengthInd_lsb 0
- -#define xd_r_tpsd_Cell_Id_7_0 0xA254
- -#define tpsd_Cell_Id_7_0_pos 0
- -#define tpsd_Cell_Id_7_0_len 8
- -#define tpsd_Cell_Id_7_0_lsb 0
- -#define xd_r_tpsd_Cell_Id_15_8 0xA255
- -#define tpsd_Cell_Id_15_8_pos 0
- -#define tpsd_Cell_Id_15_8_len 8
- -#define tpsd_Cell_Id_15_8_lsb 0
- -#define xd_p_reg_fft_mask_tone0_7_0 0xA260
- -#define reg_fft_mask_tone0_7_0_pos 0
- -#define reg_fft_mask_tone0_7_0_len 8
- -#define reg_fft_mask_tone0_7_0_lsb 0
- -#define xd_p_reg_fft_mask_tone0_12_8 0xA261
- -#define reg_fft_mask_tone0_12_8_pos 0
- -#define reg_fft_mask_tone0_12_8_len 5
- -#define reg_fft_mask_tone0_12_8_lsb 8
- -#define xd_p_reg_fft_mask_tone1_7_0 0xA262
- -#define reg_fft_mask_tone1_7_0_pos 0
- -#define reg_fft_mask_tone1_7_0_len 8
- -#define reg_fft_mask_tone1_7_0_lsb 0
- -#define xd_p_reg_fft_mask_tone1_12_8 0xA263
- -#define reg_fft_mask_tone1_12_8_pos 0
- -#define reg_fft_mask_tone1_12_8_len 5
- -#define reg_fft_mask_tone1_12_8_lsb 8
- -#define xd_p_reg_fft_mask_tone2_7_0 0xA264
- -#define reg_fft_mask_tone2_7_0_pos 0
- -#define reg_fft_mask_tone2_7_0_len 8
- -#define reg_fft_mask_tone2_7_0_lsb 0
- -#define xd_p_reg_fft_mask_tone2_12_8 0xA265
- -#define reg_fft_mask_tone2_12_8_pos 0
- -#define reg_fft_mask_tone2_12_8_len 5
- -#define reg_fft_mask_tone2_12_8_lsb 8
- -#define xd_p_reg_fft_mask_tone3_7_0 0xA266
- -#define reg_fft_mask_tone3_7_0_pos 0
- -#define reg_fft_mask_tone3_7_0_len 8
- -#define reg_fft_mask_tone3_7_0_lsb 0
- -#define xd_p_reg_fft_mask_tone3_12_8 0xA267
- -#define reg_fft_mask_tone3_12_8_pos 0
- -#define reg_fft_mask_tone3_12_8_len 5
- -#define reg_fft_mask_tone3_12_8_lsb 8
- -#define xd_p_reg_fft_mask_from0_7_0 0xA268
- -#define reg_fft_mask_from0_7_0_pos 0
- -#define reg_fft_mask_from0_7_0_len 8
- -#define reg_fft_mask_from0_7_0_lsb 0
- -#define xd_p_reg_fft_mask_from0_12_8 0xA269
- -#define reg_fft_mask_from0_12_8_pos 0
- -#define reg_fft_mask_from0_12_8_len 5
- -#define reg_fft_mask_from0_12_8_lsb 8
- -#define xd_p_reg_fft_mask_to0_7_0 0xA26A
- -#define reg_fft_mask_to0_7_0_pos 0
- -#define reg_fft_mask_to0_7_0_len 8
- -#define reg_fft_mask_to0_7_0_lsb 0
- -#define xd_p_reg_fft_mask_to0_12_8 0xA26B
- -#define reg_fft_mask_to0_12_8_pos 0
- -#define reg_fft_mask_to0_12_8_len 5
- -#define reg_fft_mask_to0_12_8_lsb 8
- -#define xd_p_reg_fft_mask_from1_7_0 0xA26C
- -#define reg_fft_mask_from1_7_0_pos 0
- -#define reg_fft_mask_from1_7_0_len 8
- -#define reg_fft_mask_from1_7_0_lsb 0
- -#define xd_p_reg_fft_mask_from1_12_8 0xA26D
- -#define reg_fft_mask_from1_12_8_pos 0
- -#define reg_fft_mask_from1_12_8_len 5
- -#define reg_fft_mask_from1_12_8_lsb 8
- -#define xd_p_reg_fft_mask_to1_7_0 0xA26E
- -#define reg_fft_mask_to1_7_0_pos 0
- -#define reg_fft_mask_to1_7_0_len 8
- -#define reg_fft_mask_to1_7_0_lsb 0
- -#define xd_p_reg_fft_mask_to1_12_8 0xA26F
- -#define reg_fft_mask_to1_12_8_pos 0
- -#define reg_fft_mask_to1_12_8_len 5
- -#define reg_fft_mask_to1_12_8_lsb 8
- -#define xd_p_reg_cge_idx0_7_0 0xA280
- -#define reg_cge_idx0_7_0_pos 0
- -#define reg_cge_idx0_7_0_len 8
- -#define reg_cge_idx0_7_0_lsb 0
- -#define xd_p_reg_cge_idx0_12_8 0xA281
- -#define reg_cge_idx0_12_8_pos 0
- -#define reg_cge_idx0_12_8_len 5
- -#define reg_cge_idx0_12_8_lsb 8
- -#define xd_p_reg_cge_idx1_7_0 0xA282
- -#define reg_cge_idx1_7_0_pos 0
- -#define reg_cge_idx1_7_0_len 8
- -#define reg_cge_idx1_7_0_lsb 0
- -#define xd_p_reg_cge_idx1_12_8 0xA283
- -#define reg_cge_idx1_12_8_pos 0
- -#define reg_cge_idx1_12_8_len 5
- -#define reg_cge_idx1_12_8_lsb 8
- -#define xd_p_reg_cge_idx2_7_0 0xA284
- -#define reg_cge_idx2_7_0_pos 0
- -#define reg_cge_idx2_7_0_len 8
- -#define reg_cge_idx2_7_0_lsb 0
- -#define xd_p_reg_cge_idx2_12_8 0xA285
- -#define reg_cge_idx2_12_8_pos 0
- -#define reg_cge_idx2_12_8_len 5
- -#define reg_cge_idx2_12_8_lsb 8
- -#define xd_p_reg_cge_idx3_7_0 0xA286
- -#define reg_cge_idx3_7_0_pos 0
- -#define reg_cge_idx3_7_0_len 8
- -#define reg_cge_idx3_7_0_lsb 0
- -#define xd_p_reg_cge_idx3_12_8 0xA287
- -#define reg_cge_idx3_12_8_pos 0
- -#define reg_cge_idx3_12_8_len 5
- -#define reg_cge_idx3_12_8_lsb 8
- -#define xd_p_reg_cge_idx4_7_0 0xA288
- -#define reg_cge_idx4_7_0_pos 0
- -#define reg_cge_idx4_7_0_len 8
- -#define reg_cge_idx4_7_0_lsb 0
- -#define xd_p_reg_cge_idx4_12_8 0xA289
- -#define reg_cge_idx4_12_8_pos 0
- -#define reg_cge_idx4_12_8_len 5
- -#define reg_cge_idx4_12_8_lsb 8
- -#define xd_p_reg_cge_idx5_7_0 0xA28A
- -#define reg_cge_idx5_7_0_pos 0
- -#define reg_cge_idx5_7_0_len 8
- -#define reg_cge_idx5_7_0_lsb 0
- -#define xd_p_reg_cge_idx5_12_8 0xA28B
- -#define reg_cge_idx5_12_8_pos 0
- -#define reg_cge_idx5_12_8_len 5
- -#define reg_cge_idx5_12_8_lsb 8
- -#define xd_p_reg_cge_idx6_7_0 0xA28C
- -#define reg_cge_idx6_7_0_pos 0
- -#define reg_cge_idx6_7_0_len 8
- -#define reg_cge_idx6_7_0_lsb 0
- -#define xd_p_reg_cge_idx6_12_8 0xA28D
- -#define reg_cge_idx6_12_8_pos 0
- -#define reg_cge_idx6_12_8_len 5
- -#define reg_cge_idx6_12_8_lsb 8
- -#define xd_p_reg_cge_idx7_7_0 0xA28E
- -#define reg_cge_idx7_7_0_pos 0
- -#define reg_cge_idx7_7_0_len 8
- -#define reg_cge_idx7_7_0_lsb 0
- -#define xd_p_reg_cge_idx7_12_8 0xA28F
- -#define reg_cge_idx7_12_8_pos 0
- -#define reg_cge_idx7_12_8_len 5
- -#define reg_cge_idx7_12_8_lsb 8
- -#define xd_p_reg_cge_idx8_7_0 0xA290
- -#define reg_cge_idx8_7_0_pos 0
- -#define reg_cge_idx8_7_0_len 8
- -#define reg_cge_idx8_7_0_lsb 0
- -#define xd_p_reg_cge_idx8_12_8 0xA291
- -#define reg_cge_idx8_12_8_pos 0
- -#define reg_cge_idx8_12_8_len 5
- -#define reg_cge_idx8_12_8_lsb 8
- -#define xd_p_reg_cge_idx9_7_0 0xA292
- -#define reg_cge_idx9_7_0_pos 0
- -#define reg_cge_idx9_7_0_len 8
- -#define reg_cge_idx9_7_0_lsb 0
- -#define xd_p_reg_cge_idx9_12_8 0xA293
- -#define reg_cge_idx9_12_8_pos 0
- -#define reg_cge_idx9_12_8_len 5
- -#define reg_cge_idx9_12_8_lsb 8
- -#define xd_p_reg_cge_idx10_7_0 0xA294
- -#define reg_cge_idx10_7_0_pos 0
- -#define reg_cge_idx10_7_0_len 8
- -#define reg_cge_idx10_7_0_lsb 0
- -#define xd_p_reg_cge_idx10_12_8 0xA295
- -#define reg_cge_idx10_12_8_pos 0
- -#define reg_cge_idx10_12_8_len 5
- -#define reg_cge_idx10_12_8_lsb 8
- -#define xd_p_reg_cge_idx11_7_0 0xA296
- -#define reg_cge_idx11_7_0_pos 0
- -#define reg_cge_idx11_7_0_len 8
- -#define reg_cge_idx11_7_0_lsb 0
- -#define xd_p_reg_cge_idx11_12_8 0xA297
- -#define reg_cge_idx11_12_8_pos 0
- -#define reg_cge_idx11_12_8_len 5
- -#define reg_cge_idx11_12_8_lsb 8
- -#define xd_p_reg_cge_idx12_7_0 0xA298
- -#define reg_cge_idx12_7_0_pos 0
- -#define reg_cge_idx12_7_0_len 8
- -#define reg_cge_idx12_7_0_lsb 0
- -#define xd_p_reg_cge_idx12_12_8 0xA299
- -#define reg_cge_idx12_12_8_pos 0
- -#define reg_cge_idx12_12_8_len 5
- -#define reg_cge_idx12_12_8_lsb 8
- -#define xd_p_reg_cge_idx13_7_0 0xA29A
- -#define reg_cge_idx13_7_0_pos 0
- -#define reg_cge_idx13_7_0_len 8
- -#define reg_cge_idx13_7_0_lsb 0
- -#define xd_p_reg_cge_idx13_12_8 0xA29B
- -#define reg_cge_idx13_12_8_pos 0
- -#define reg_cge_idx13_12_8_len 5
- -#define reg_cge_idx13_12_8_lsb 8
- -#define xd_p_reg_cge_idx14_7_0 0xA29C
- -#define reg_cge_idx14_7_0_pos 0
- -#define reg_cge_idx14_7_0_len 8
- -#define reg_cge_idx14_7_0_lsb 0
- -#define xd_p_reg_cge_idx14_12_8 0xA29D
- -#define reg_cge_idx14_12_8_pos 0
- -#define reg_cge_idx14_12_8_len 5
- -#define reg_cge_idx14_12_8_lsb 8
- -#define xd_p_reg_cge_idx15_7_0 0xA29E
- -#define reg_cge_idx15_7_0_pos 0
- -#define reg_cge_idx15_7_0_len 8
- -#define reg_cge_idx15_7_0_lsb 0
- -#define xd_p_reg_cge_idx15_12_8 0xA29F
- -#define reg_cge_idx15_12_8_pos 0
- -#define reg_cge_idx15_12_8_len 5
- -#define reg_cge_idx15_12_8_lsb 8
- -#define xd_r_reg_fft_crc 0xA2A8
- -#define reg_fft_crc_pos 0
- -#define reg_fft_crc_len 8
- -#define reg_fft_crc_lsb 0
- -#define xd_p_fd_fft_shift_max 0xA2A9
- -#define fd_fft_shift_max_pos 0
- -#define fd_fft_shift_max_len 4
- -#define fd_fft_shift_max_lsb 0
- -#define xd_r_fd_fft_shift 0xA2A9
- -#define fd_fft_shift_pos 4
- -#define fd_fft_shift_len 4
- -#define fd_fft_shift_lsb 0
- -#define xd_r_fd_fft_frame_num 0xA2AA
- -#define fd_fft_frame_num_pos 0
- -#define fd_fft_frame_num_len 2
- -#define fd_fft_frame_num_lsb 0
- -#define xd_r_fd_fft_symbol_count 0xA2AB
- -#define fd_fft_symbol_count_pos 0
- -#define fd_fft_symbol_count_len 7
- -#define fd_fft_symbol_count_lsb 0
- -#define xd_r_reg_fft_idx_max_7_0 0xA2AC
- -#define reg_fft_idx_max_7_0_pos 0
- -#define reg_fft_idx_max_7_0_len 8
- -#define reg_fft_idx_max_7_0_lsb 0
- -#define xd_r_reg_fft_idx_max_12_8 0xA2AD
- -#define reg_fft_idx_max_12_8_pos 0
- -#define reg_fft_idx_max_12_8_len 5
- -#define reg_fft_idx_max_12_8_lsb 8
- -#define xd_p_reg_cge_program 0xA2AE
- -#define reg_cge_program_pos 0
- -#define reg_cge_program_len 1
- -#define reg_cge_program_lsb 0
- -#define xd_p_reg_cge_fixed 0xA2AE
- -#define reg_cge_fixed_pos 1
- -#define reg_cge_fixed_len 1
- -#define reg_cge_fixed_lsb 0
- -#define xd_p_reg_fft_rotate_en 0xA2AE
- -#define reg_fft_rotate_en_pos 2
- -#define reg_fft_rotate_en_len 1
- -#define reg_fft_rotate_en_lsb 0
- -#define xd_p_reg_fft_rotate_base_4_0 0xA2AE
- -#define reg_fft_rotate_base_4_0_pos 3
- -#define reg_fft_rotate_base_4_0_len 5
- -#define reg_fft_rotate_base_4_0_lsb 0
- -#define xd_p_reg_fft_rotate_base_12_5 0xA2AF
- -#define reg_fft_rotate_base_12_5_pos 0
- -#define reg_fft_rotate_base_12_5_len 8
- -#define reg_fft_rotate_base_12_5_lsb 5
- -#define xd_p_reg_gp_trigger_fd 0xA2B8
- -#define reg_gp_trigger_fd_pos 0
- -#define reg_gp_trigger_fd_len 1
- -#define reg_gp_trigger_fd_lsb 0
- -#define xd_p_reg_trigger_sel_fd 0xA2B8
- -#define reg_trigger_sel_fd_pos 1
- -#define reg_trigger_sel_fd_len 2
- -#define reg_trigger_sel_fd_lsb 0
- -#define xd_p_reg_trigger_module_sel_fd 0xA2B9
- -#define reg_trigger_module_sel_fd_pos 0
- -#define reg_trigger_module_sel_fd_len 6
- -#define reg_trigger_module_sel_fd_lsb 0
- -#define xd_p_reg_trigger_set_sel_fd 0xA2BA
- -#define reg_trigger_set_sel_fd_pos 0
- -#define reg_trigger_set_sel_fd_len 6
- -#define reg_trigger_set_sel_fd_lsb 0
- -#define xd_p_reg_fd_noname_7_0 0xA2BC
- -#define reg_fd_noname_7_0_pos 0
- -#define reg_fd_noname_7_0_len 8
- -#define reg_fd_noname_7_0_lsb 0
- -#define xd_p_reg_fd_noname_15_8 0xA2BD
- -#define reg_fd_noname_15_8_pos 0
- -#define reg_fd_noname_15_8_len 8
- -#define reg_fd_noname_15_8_lsb 8
- -#define xd_p_reg_fd_noname_23_16 0xA2BE
- -#define reg_fd_noname_23_16_pos 0
- -#define reg_fd_noname_23_16_len 8
- -#define reg_fd_noname_23_16_lsb 16
- -#define xd_p_reg_fd_noname_31_24 0xA2BF
- -#define reg_fd_noname_31_24_pos 0
- -#define reg_fd_noname_31_24_len 8
- -#define reg_fd_noname_31_24_lsb 24
- -#define xd_r_fd_fpcc_cp_corr_signn 0xA2C0
- -#define fd_fpcc_cp_corr_signn_pos 0
- -#define fd_fpcc_cp_corr_signn_len 8
- -#define fd_fpcc_cp_corr_signn_lsb 0
- -#define xd_p_reg_feq_s1 0xA2C1
- -#define reg_feq_s1_pos 0
- -#define reg_feq_s1_len 5
- -#define reg_feq_s1_lsb 0
- -#define xd_p_fd_fpcc_cp_corr_tone_th 0xA2C2
- -#define fd_fpcc_cp_corr_tone_th_pos 0
- -#define fd_fpcc_cp_corr_tone_th_len 6
- -#define fd_fpcc_cp_corr_tone_th_lsb 0
- -#define xd_p_fd_fpcc_cp_corr_symbol_log_th 0xA2C3
- -#define fd_fpcc_cp_corr_symbol_log_th_pos 0
- -#define fd_fpcc_cp_corr_symbol_log_th_len 4
- -#define fd_fpcc_cp_corr_symbol_log_th_lsb 0
- -#define xd_p_fd_fpcc_cp_corr_int 0xA2C4
- -#define fd_fpcc_cp_corr_int_pos 0
- -#define fd_fpcc_cp_corr_int_len 1
- -#define fd_fpcc_cp_corr_int_lsb 0
- -#define xd_p_reg_sfoe_ns_7_0 0xA320
- -#define reg_sfoe_ns_7_0_pos 0
- -#define reg_sfoe_ns_7_0_len 8
- -#define reg_sfoe_ns_7_0_lsb 0
- -#define xd_p_reg_sfoe_ns_14_8 0xA321
- -#define reg_sfoe_ns_14_8_pos 0
- -#define reg_sfoe_ns_14_8_len 7
- -#define reg_sfoe_ns_14_8_lsb 8
- -#define xd_p_reg_sfoe_c1_7_0 0xA322
- -#define reg_sfoe_c1_7_0_pos 0
- -#define reg_sfoe_c1_7_0_len 8
- -#define reg_sfoe_c1_7_0_lsb 0
- -#define xd_p_reg_sfoe_c1_15_8 0xA323
- -#define reg_sfoe_c1_15_8_pos 0
- -#define reg_sfoe_c1_15_8_len 8
- -#define reg_sfoe_c1_15_8_lsb 8
- -#define xd_p_reg_sfoe_c1_17_16 0xA324
- -#define reg_sfoe_c1_17_16_pos 0
- -#define reg_sfoe_c1_17_16_len 2
- -#define reg_sfoe_c1_17_16_lsb 16
- -#define xd_p_reg_sfoe_c2_7_0 0xA325
- -#define reg_sfoe_c2_7_0_pos 0
- -#define reg_sfoe_c2_7_0_len 8
- -#define reg_sfoe_c2_7_0_lsb 0
- -#define xd_p_reg_sfoe_c2_15_8 0xA326
- -#define reg_sfoe_c2_15_8_pos 0
- -#define reg_sfoe_c2_15_8_len 8
- -#define reg_sfoe_c2_15_8_lsb 8
- -#define xd_p_reg_sfoe_c2_17_16 0xA327
- -#define reg_sfoe_c2_17_16_pos 0
- -#define reg_sfoe_c2_17_16_len 2
- -#define reg_sfoe_c2_17_16_lsb 16
- -#define xd_r_reg_sfoe_out_9_2 0xA328
- -#define reg_sfoe_out_9_2_pos 0
- -#define reg_sfoe_out_9_2_len 8
- -#define reg_sfoe_out_9_2_lsb 0
- -#define xd_r_reg_sfoe_out_1_0 0xA329
- -#define reg_sfoe_out_1_0_pos 0
- -#define reg_sfoe_out_1_0_len 2
- -#define reg_sfoe_out_1_0_lsb 0
- -#define xd_p_reg_sfoe_lm_counter_th 0xA32A
- -#define reg_sfoe_lm_counter_th_pos 0
- -#define reg_sfoe_lm_counter_th_len 4
- -#define reg_sfoe_lm_counter_th_lsb 0
- -#define xd_p_reg_sfoe_convg_th 0xA32B
- -#define reg_sfoe_convg_th_pos 0
- -#define reg_sfoe_convg_th_len 8
- -#define reg_sfoe_convg_th_lsb 0
- -#define xd_p_reg_sfoe_divg_th 0xA32C
- -#define reg_sfoe_divg_th_pos 0
- -#define reg_sfoe_divg_th_len 8
- -#define reg_sfoe_divg_th_lsb 0
- -#define xd_p_fd_tpsd_en 0xA330
- -#define fd_tpsd_en_pos 0
- -#define fd_tpsd_en_len 1
- -#define fd_tpsd_en_lsb 0
- -#define xd_p_fd_tpsd_dis 0xA330
- -#define fd_tpsd_dis_pos 1
- -#define fd_tpsd_dis_len 1
- -#define fd_tpsd_dis_lsb 0
- -#define xd_p_fd_tpsd_rst 0xA330
- -#define fd_tpsd_rst_pos 2
- -#define fd_tpsd_rst_len 1
- -#define fd_tpsd_rst_lsb 0
- -#define xd_p_fd_tpsd_lock 0xA330
- -#define fd_tpsd_lock_pos 3
- -#define fd_tpsd_lock_len 1
- -#define fd_tpsd_lock_lsb 0
- -#define xd_r_fd_tpsd_s19 0xA330
- -#define fd_tpsd_s19_pos 4
- -#define fd_tpsd_s19_len 1
- -#define fd_tpsd_s19_lsb 0
- -#define xd_r_fd_tpsd_s17 0xA330
- -#define fd_tpsd_s17_pos 5
- -#define fd_tpsd_s17_len 1
- -#define fd_tpsd_s17_lsb 0
- -#define xd_p_fd_sfr_ste_en 0xA331
- -#define fd_sfr_ste_en_pos 0
- -#define fd_sfr_ste_en_len 1
- -#define fd_sfr_ste_en_lsb 0
- -#define xd_p_fd_sfr_ste_dis 0xA331
- -#define fd_sfr_ste_dis_pos 1
- -#define fd_sfr_ste_dis_len 1
- -#define fd_sfr_ste_dis_lsb 0
- -#define xd_p_fd_sfr_ste_rst 0xA331
- -#define fd_sfr_ste_rst_pos 2
- -#define fd_sfr_ste_rst_len 1
- -#define fd_sfr_ste_rst_lsb 0
- -#define xd_p_fd_sfr_ste_mode 0xA331
- -#define fd_sfr_ste_mode_pos 3
- -#define fd_sfr_ste_mode_len 1
- -#define fd_sfr_ste_mode_lsb 0
- -#define xd_p_fd_sfr_ste_done 0xA331
- -#define fd_sfr_ste_done_pos 4
- -#define fd_sfr_ste_done_len 1
- -#define fd_sfr_ste_done_lsb 0
- -#define xd_p_reg_cfoe_ffoe_en 0xA332
- -#define reg_cfoe_ffoe_en_pos 0
- -#define reg_cfoe_ffoe_en_len 1
- -#define reg_cfoe_ffoe_en_lsb 0
- -#define xd_p_reg_cfoe_ffoe_dis 0xA332
- -#define reg_cfoe_ffoe_dis_pos 1
- -#define reg_cfoe_ffoe_dis_len 1
- -#define reg_cfoe_ffoe_dis_lsb 0
- -#define xd_p_reg_cfoe_ffoe_rst 0xA332
- -#define reg_cfoe_ffoe_rst_pos 2
- -#define reg_cfoe_ffoe_rst_len 1
- -#define reg_cfoe_ffoe_rst_lsb 0
- -#define xd_p_reg_cfoe_ifoe_en 0xA332
- -#define reg_cfoe_ifoe_en_pos 3
- -#define reg_cfoe_ifoe_en_len 1
- -#define reg_cfoe_ifoe_en_lsb 0
- -#define xd_p_reg_cfoe_ifoe_dis 0xA332
- -#define reg_cfoe_ifoe_dis_pos 4
- -#define reg_cfoe_ifoe_dis_len 1
- -#define reg_cfoe_ifoe_dis_lsb 0
- -#define xd_p_reg_cfoe_ifoe_rst 0xA332
- -#define reg_cfoe_ifoe_rst_pos 5
- -#define reg_cfoe_ifoe_rst_len 1
- -#define reg_cfoe_ifoe_rst_lsb 0
- -#define xd_p_reg_cfoe_fot_en 0xA332
- -#define reg_cfoe_fot_en_pos 6
- -#define reg_cfoe_fot_en_len 1
- -#define reg_cfoe_fot_en_lsb 0
- -#define xd_p_reg_cfoe_fot_lm_en 0xA332
- -#define reg_cfoe_fot_lm_en_pos 7
- -#define reg_cfoe_fot_lm_en_len 1
- -#define reg_cfoe_fot_lm_en_lsb 0
- -#define xd_p_reg_cfoe_fot_rst 0xA333
- -#define reg_cfoe_fot_rst_pos 0
- -#define reg_cfoe_fot_rst_len 1
- -#define reg_cfoe_fot_rst_lsb 0
- -#define xd_r_fd_cfoe_ffoe_done 0xA333
- -#define fd_cfoe_ffoe_done_pos 1
- -#define fd_cfoe_ffoe_done_len 1
- -#define fd_cfoe_ffoe_done_lsb 0
- -#define xd_p_fd_cfoe_metric_vld 0xA333
- -#define fd_cfoe_metric_vld_pos 2
- -#define fd_cfoe_metric_vld_len 1
- -#define fd_cfoe_metric_vld_lsb 0
- -#define xd_p_reg_cfoe_ifod_vld 0xA333
- -#define reg_cfoe_ifod_vld_pos 3
- -#define reg_cfoe_ifod_vld_len 1
- -#define reg_cfoe_ifod_vld_lsb 0
- -#define xd_r_fd_cfoe_ifoe_done 0xA333
- -#define fd_cfoe_ifoe_done_pos 4
- -#define fd_cfoe_ifoe_done_len 1
- -#define fd_cfoe_ifoe_done_lsb 0
- -#define xd_r_fd_cfoe_fot_valid 0xA333
- -#define fd_cfoe_fot_valid_pos 5
- -#define fd_cfoe_fot_valid_len 1
- -#define fd_cfoe_fot_valid_lsb 0
- -#define xd_p_reg_cfoe_divg_int 0xA333
- -#define reg_cfoe_divg_int_pos 6
- -#define reg_cfoe_divg_int_len 1
- -#define reg_cfoe_divg_int_lsb 0
- -#define xd_r_reg_cfoe_divg_flag 0xA333
- -#define reg_cfoe_divg_flag_pos 7
- -#define reg_cfoe_divg_flag_len 1
- -#define reg_cfoe_divg_flag_lsb 0
- -#define xd_p_reg_sfoe_en 0xA334
- -#define reg_sfoe_en_pos 0
- -#define reg_sfoe_en_len 1
- -#define reg_sfoe_en_lsb 0
- -#define xd_p_reg_sfoe_dis 0xA334
- -#define reg_sfoe_dis_pos 1
- -#define reg_sfoe_dis_len 1
- -#define reg_sfoe_dis_lsb 0
- -#define xd_p_reg_sfoe_rst 0xA334
- -#define reg_sfoe_rst_pos 2
- -#define reg_sfoe_rst_len 1
- -#define reg_sfoe_rst_lsb 0
- -#define xd_p_reg_sfoe_vld_int 0xA334
- -#define reg_sfoe_vld_int_pos 3
- -#define reg_sfoe_vld_int_len 1
- -#define reg_sfoe_vld_int_lsb 0
- -#define xd_p_reg_sfoe_lm_en 0xA334
- -#define reg_sfoe_lm_en_pos 4
- -#define reg_sfoe_lm_en_len 1
- -#define reg_sfoe_lm_en_lsb 0
- -#define xd_p_reg_sfoe_divg_int 0xA334
- -#define reg_sfoe_divg_int_pos 5
- -#define reg_sfoe_divg_int_len 1
- -#define reg_sfoe_divg_int_lsb 0
- -#define xd_r_reg_sfoe_divg_flag 0xA334
- -#define reg_sfoe_divg_flag_pos 6
- -#define reg_sfoe_divg_flag_len 1
- -#define reg_sfoe_divg_flag_lsb 0
- -#define xd_p_reg_fft_rst 0xA335
- -#define reg_fft_rst_pos 0
- -#define reg_fft_rst_len 1
- -#define reg_fft_rst_lsb 0
- -#define xd_p_reg_fft_fast_beacon 0xA335
- -#define reg_fft_fast_beacon_pos 1
- -#define reg_fft_fast_beacon_len 1
- -#define reg_fft_fast_beacon_lsb 0
- -#define xd_p_reg_fft_fast_valid 0xA335
- -#define reg_fft_fast_valid_pos 2
- -#define reg_fft_fast_valid_len 1
- -#define reg_fft_fast_valid_lsb 0
- -#define xd_p_reg_fft_mask_en 0xA335
- -#define reg_fft_mask_en_pos 3
- -#define reg_fft_mask_en_len 1
- -#define reg_fft_mask_en_lsb 0
- -#define xd_p_reg_fft_crc_en 0xA335
- -#define reg_fft_crc_en_pos 4
- -#define reg_fft_crc_en_len 1
- -#define reg_fft_crc_en_lsb 0
- -#define xd_p_reg_finr_en 0xA336
- -#define reg_finr_en_pos 0
- -#define reg_finr_en_len 1
- -#define reg_finr_en_lsb 0
- -#define xd_p_fd_fste_en 0xA337
- -#define fd_fste_en_pos 1
- -#define fd_fste_en_len 1
- -#define fd_fste_en_lsb 0
- -#define xd_p_fd_sqi_tps_level_shift 0xA338
- -#define fd_sqi_tps_level_shift_pos 0
- -#define fd_sqi_tps_level_shift_len 8
- -#define fd_sqi_tps_level_shift_lsb 0
- -#define xd_p_fd_pilot_ma_len 0xA339
- -#define fd_pilot_ma_len_pos 0
- -#define fd_pilot_ma_len_len 6
- -#define fd_pilot_ma_len_lsb 0
- -#define xd_p_fd_tps_ma_len 0xA33A
- -#define fd_tps_ma_len_pos 0
- -#define fd_tps_ma_len_len 6
- -#define fd_tps_ma_len_lsb 0
- -#define xd_p_fd_sqi_s3 0xA33B
- -#define fd_sqi_s3_pos 0
- -#define fd_sqi_s3_len 8
- -#define fd_sqi_s3_lsb 0
- -#define xd_p_fd_sqi_dummy_reg_0 0xA33C
- -#define fd_sqi_dummy_reg_0_pos 0
- -#define fd_sqi_dummy_reg_0_len 1
- -#define fd_sqi_dummy_reg_0_lsb 0
- -#define xd_p_fd_sqi_debug_sel 0xA33C
- -#define fd_sqi_debug_sel_pos 1
- -#define fd_sqi_debug_sel_len 2
- -#define fd_sqi_debug_sel_lsb 0
- -#define xd_p_fd_sqi_s2 0xA33C
- -#define fd_sqi_s2_pos 3
- -#define fd_sqi_s2_len 5
- -#define fd_sqi_s2_lsb 0
- -#define xd_p_fd_sqi_dummy_reg_1 0xA33D
- -#define fd_sqi_dummy_reg_1_pos 0
- -#define fd_sqi_dummy_reg_1_len 1
- -#define fd_sqi_dummy_reg_1_lsb 0
- -#define xd_p_fd_inr_ignore 0xA33D
- -#define fd_inr_ignore_pos 1
- -#define fd_inr_ignore_len 1
- -#define fd_inr_ignore_lsb 0
- -#define xd_p_fd_pilot_ignore 0xA33D
- -#define fd_pilot_ignore_pos 2
- -#define fd_pilot_ignore_len 1
- -#define fd_pilot_ignore_lsb 0
- -#define xd_p_fd_etps_ignore 0xA33D
- -#define fd_etps_ignore_pos 3
- -#define fd_etps_ignore_len 1
- -#define fd_etps_ignore_lsb 0
- -#define xd_p_fd_sqi_s1 0xA33D
- -#define fd_sqi_s1_pos 4
- -#define fd_sqi_s1_len 4
- -#define fd_sqi_s1_lsb 0
- -#define xd_p_reg_fste_ehw_7_0 0xA33E
- -#define reg_fste_ehw_7_0_pos 0
- -#define reg_fste_ehw_7_0_len 8
- -#define reg_fste_ehw_7_0_lsb 0
- -#define xd_p_reg_fste_ehw_9_8 0xA33F
- -#define reg_fste_ehw_9_8_pos 0
- -#define reg_fste_ehw_9_8_len 2
- -#define reg_fste_ehw_9_8_lsb 8
- -#define xd_p_reg_fste_i_adj_vld 0xA33F
- -#define reg_fste_i_adj_vld_pos 2
- -#define reg_fste_i_adj_vld_len 1
- -#define reg_fste_i_adj_vld_lsb 0
- -#define xd_p_reg_fste_phase_ini_7_0 0xA340
- -#define reg_fste_phase_ini_7_0_pos 0
- -#define reg_fste_phase_ini_7_0_len 8
- -#define reg_fste_phase_ini_7_0_lsb 0
- -#define xd_p_reg_fste_phase_ini_11_8 0xA341
- -#define reg_fste_phase_ini_11_8_pos 0
- -#define reg_fste_phase_ini_11_8_len 4
- -#define reg_fste_phase_ini_11_8_lsb 8
- -#define xd_p_reg_fste_phase_inc_3_0 0xA341
- -#define reg_fste_phase_inc_3_0_pos 4
- -#define reg_fste_phase_inc_3_0_len 4
- -#define reg_fste_phase_inc_3_0_lsb 0
- -#define xd_p_reg_fste_phase_inc_11_4 0xA342
- -#define reg_fste_phase_inc_11_4_pos 0
- -#define reg_fste_phase_inc_11_4_len 8
- -#define reg_fste_phase_inc_11_4_lsb 4
- -#define xd_p_reg_fste_acum_cost_cnt_max 0xA343
- -#define reg_fste_acum_cost_cnt_max_pos 0
- -#define reg_fste_acum_cost_cnt_max_len 4
- -#define reg_fste_acum_cost_cnt_max_lsb 0
- -#define xd_p_reg_fste_step_size_std 0xA343
- -#define reg_fste_step_size_std_pos 4
- -#define reg_fste_step_size_std_len 4
- -#define reg_fste_step_size_std_lsb 0
- -#define xd_p_reg_fste_step_size_max 0xA344
- -#define reg_fste_step_size_max_pos 0
- -#define reg_fste_step_size_max_len 4
- -#define reg_fste_step_size_max_lsb 0
- -#define xd_p_reg_fste_step_size_min 0xA344
- -#define reg_fste_step_size_min_pos 4
- -#define reg_fste_step_size_min_len 4
- -#define reg_fste_step_size_min_lsb 0
- -#define xd_p_reg_fste_frac_step_size_7_0 0xA345
- -#define reg_fste_frac_step_size_7_0_pos 0
- -#define reg_fste_frac_step_size_7_0_len 8
- -#define reg_fste_frac_step_size_7_0_lsb 0
- -#define xd_p_reg_fste_frac_step_size_15_8 0xA346
- -#define reg_fste_frac_step_size_15_8_pos 0
- -#define reg_fste_frac_step_size_15_8_len 8
- -#define reg_fste_frac_step_size_15_8_lsb 8
- -#define xd_p_reg_fste_frac_step_size_19_16 0xA347
- -#define reg_fste_frac_step_size_19_16_pos 0
- -#define reg_fste_frac_step_size_19_16_len 4
- -#define reg_fste_frac_step_size_19_16_lsb 16
- -#define xd_p_reg_fste_rpd_dir_cnt_max 0xA347
- -#define reg_fste_rpd_dir_cnt_max_pos 4
- -#define reg_fste_rpd_dir_cnt_max_len 4
- -#define reg_fste_rpd_dir_cnt_max_lsb 0
- -#define xd_p_reg_fste_ehs 0xA348
- -#define reg_fste_ehs_pos 0
- -#define reg_fste_ehs_len 4
- -#define reg_fste_ehs_lsb 0
- -#define xd_p_reg_fste_frac_cost_cnt_max_3_0 0xA348
- -#define reg_fste_frac_cost_cnt_max_3_0_pos 4
- -#define reg_fste_frac_cost_cnt_max_3_0_len 4
- -#define reg_fste_frac_cost_cnt_max_3_0_lsb 0
- -#define xd_p_reg_fste_frac_cost_cnt_max_9_4 0xA349
- -#define reg_fste_frac_cost_cnt_max_9_4_pos 0
- -#define reg_fste_frac_cost_cnt_max_9_4_len 6
- -#define reg_fste_frac_cost_cnt_max_9_4_lsb 4
- -#define xd_p_reg_fste_w0_7_0 0xA34A
- -#define reg_fste_w0_7_0_pos 0
- -#define reg_fste_w0_7_0_len 8
- -#define reg_fste_w0_7_0_lsb 0
- -#define xd_p_reg_fste_w0_11_8 0xA34B
- -#define reg_fste_w0_11_8_pos 0
- -#define reg_fste_w0_11_8_len 4
- -#define reg_fste_w0_11_8_lsb 8
- -#define xd_p_reg_fste_w1_3_0 0xA34B
- -#define reg_fste_w1_3_0_pos 4
- -#define reg_fste_w1_3_0_len 4
- -#define reg_fste_w1_3_0_lsb 0
- -#define xd_p_reg_fste_w1_11_4 0xA34C
- -#define reg_fste_w1_11_4_pos 0
- -#define reg_fste_w1_11_4_len 8
- -#define reg_fste_w1_11_4_lsb 4
- -#define xd_p_reg_fste_w2_7_0 0xA34D
- -#define reg_fste_w2_7_0_pos 0
- -#define reg_fste_w2_7_0_len 8
- -#define reg_fste_w2_7_0_lsb 0
- -#define xd_p_reg_fste_w2_11_8 0xA34E
- -#define reg_fste_w2_11_8_pos 0
- -#define reg_fste_w2_11_8_len 4
- -#define reg_fste_w2_11_8_lsb 8
- -#define xd_p_reg_fste_w3_3_0 0xA34E
- -#define reg_fste_w3_3_0_pos 4
- -#define reg_fste_w3_3_0_len 4
- -#define reg_fste_w3_3_0_lsb 0
- -#define xd_p_reg_fste_w3_11_4 0xA34F
- -#define reg_fste_w3_11_4_pos 0
- -#define reg_fste_w3_11_4_len 8
- -#define reg_fste_w3_11_4_lsb 4
- -#define xd_p_reg_fste_w4_7_0 0xA350
- -#define reg_fste_w4_7_0_pos 0
- -#define reg_fste_w4_7_0_len 8
- -#define reg_fste_w4_7_0_lsb 0
- -#define xd_p_reg_fste_w4_11_8 0xA351
- -#define reg_fste_w4_11_8_pos 0
- -#define reg_fste_w4_11_8_len 4
- -#define reg_fste_w4_11_8_lsb 8
- -#define xd_p_reg_fste_w5_3_0 0xA351
- -#define reg_fste_w5_3_0_pos 4
- -#define reg_fste_w5_3_0_len 4
- -#define reg_fste_w5_3_0_lsb 0
- -#define xd_p_reg_fste_w5_11_4 0xA352
- -#define reg_fste_w5_11_4_pos 0
- -#define reg_fste_w5_11_4_len 8
- -#define reg_fste_w5_11_4_lsb 4
- -#define xd_p_reg_fste_w6_7_0 0xA353
- -#define reg_fste_w6_7_0_pos 0
- -#define reg_fste_w6_7_0_len 8
- -#define reg_fste_w6_7_0_lsb 0
- -#define xd_p_reg_fste_w6_11_8 0xA354
- -#define reg_fste_w6_11_8_pos 0
- -#define reg_fste_w6_11_8_len 4
- -#define reg_fste_w6_11_8_lsb 8
- -#define xd_p_reg_fste_w7_3_0 0xA354
- -#define reg_fste_w7_3_0_pos 4
- -#define reg_fste_w7_3_0_len 4
- -#define reg_fste_w7_3_0_lsb 0
- -#define xd_p_reg_fste_w7_11_4 0xA355
- -#define reg_fste_w7_11_4_pos 0
- -#define reg_fste_w7_11_4_len 8
- -#define reg_fste_w7_11_4_lsb 4
- -#define xd_p_reg_fste_w8_7_0 0xA356
- -#define reg_fste_w8_7_0_pos 0
- -#define reg_fste_w8_7_0_len 8
- -#define reg_fste_w8_7_0_lsb 0
- -#define xd_p_reg_fste_w8_11_8 0xA357
- -#define reg_fste_w8_11_8_pos 0
- -#define reg_fste_w8_11_8_len 4
- -#define reg_fste_w8_11_8_lsb 8
- -#define xd_p_reg_fste_w9_3_0 0xA357
- -#define reg_fste_w9_3_0_pos 4
- -#define reg_fste_w9_3_0_len 4
- -#define reg_fste_w9_3_0_lsb 0
- -#define xd_p_reg_fste_w9_11_4 0xA358
- -#define reg_fste_w9_11_4_pos 0
- -#define reg_fste_w9_11_4_len 8
- -#define reg_fste_w9_11_4_lsb 4
- -#define xd_p_reg_fste_wa_7_0 0xA359
- -#define reg_fste_wa_7_0_pos 0
- -#define reg_fste_wa_7_0_len 8
- -#define reg_fste_wa_7_0_lsb 0
- -#define xd_p_reg_fste_wa_11_8 0xA35A
- -#define reg_fste_wa_11_8_pos 0
- -#define reg_fste_wa_11_8_len 4
- -#define reg_fste_wa_11_8_lsb 8
- -#define xd_p_reg_fste_wb_3_0 0xA35A
- -#define reg_fste_wb_3_0_pos 4
- -#define reg_fste_wb_3_0_len 4
- -#define reg_fste_wb_3_0_lsb 0
- -#define xd_p_reg_fste_wb_11_4 0xA35B
- -#define reg_fste_wb_11_4_pos 0
- -#define reg_fste_wb_11_4_len 8
- -#define reg_fste_wb_11_4_lsb 4
- -#define xd_r_fd_fste_i_adj 0xA35C
- -#define fd_fste_i_adj_pos 0
- -#define fd_fste_i_adj_len 5
- -#define fd_fste_i_adj_lsb 0
- -#define xd_r_fd_fste_f_adj_7_0 0xA35D
- -#define fd_fste_f_adj_7_0_pos 0
- -#define fd_fste_f_adj_7_0_len 8
- -#define fd_fste_f_adj_7_0_lsb 0
- -#define xd_r_fd_fste_f_adj_15_8 0xA35E
- -#define fd_fste_f_adj_15_8_pos 0
- -#define fd_fste_f_adj_15_8_len 8
- -#define fd_fste_f_adj_15_8_lsb 8
- -#define xd_r_fd_fste_f_adj_19_16 0xA35F
- -#define fd_fste_f_adj_19_16_pos 0
- -#define fd_fste_f_adj_19_16_len 4
- -#define fd_fste_f_adj_19_16_lsb 16
- -#define xd_p_reg_feq_Leak_Bypass 0xA366
- -#define reg_feq_Leak_Bypass_pos 0
- -#define reg_feq_Leak_Bypass_len 1
- -#define reg_feq_Leak_Bypass_lsb 0
- -#define xd_p_reg_feq_Leak_Mneg1 0xA366
- -#define reg_feq_Leak_Mneg1_pos 1
- -#define reg_feq_Leak_Mneg1_len 3
- -#define reg_feq_Leak_Mneg1_lsb 0
- -#define xd_p_reg_feq_Leak_B_ShiftQ 0xA366
- -#define reg_feq_Leak_B_ShiftQ_pos 4
- -#define reg_feq_Leak_B_ShiftQ_len 4
- -#define reg_feq_Leak_B_ShiftQ_lsb 0
- -#define xd_p_reg_feq_Leak_B_Float0 0xA367
- -#define reg_feq_Leak_B_Float0_pos 0
- -#define reg_feq_Leak_B_Float0_len 8
- -#define reg_feq_Leak_B_Float0_lsb 0
- -#define xd_p_reg_feq_Leak_B_Float1 0xA368
- -#define reg_feq_Leak_B_Float1_pos 0
- -#define reg_feq_Leak_B_Float1_len 8
- -#define reg_feq_Leak_B_Float1_lsb 0
- -#define xd_p_reg_feq_Leak_B_Float2 0xA369
- -#define reg_feq_Leak_B_Float2_pos 0
- -#define reg_feq_Leak_B_Float2_len 8
- -#define reg_feq_Leak_B_Float2_lsb 0
- -#define xd_p_reg_feq_Leak_B_Float3 0xA36A
- -#define reg_feq_Leak_B_Float3_pos 0
- -#define reg_feq_Leak_B_Float3_len 8
- -#define reg_feq_Leak_B_Float3_lsb 0
- -#define xd_p_reg_feq_Leak_B_Float4 0xA36B
- -#define reg_feq_Leak_B_Float4_pos 0
- -#define reg_feq_Leak_B_Float4_len 8
- -#define reg_feq_Leak_B_Float4_lsb 0
- -#define xd_p_reg_feq_Leak_B_Float5 0xA36C
- -#define reg_feq_Leak_B_Float5_pos 0
- -#define reg_feq_Leak_B_Float5_len 8
- -#define reg_feq_Leak_B_Float5_lsb 0
- -#define xd_p_reg_feq_Leak_B_Float6 0xA36D
- -#define reg_feq_Leak_B_Float6_pos 0
- -#define reg_feq_Leak_B_Float6_len 8
- -#define reg_feq_Leak_B_Float6_lsb 0
- -#define xd_p_reg_feq_Leak_B_Float7 0xA36E
- -#define reg_feq_Leak_B_Float7_pos 0
- -#define reg_feq_Leak_B_Float7_len 8
- -#define reg_feq_Leak_B_Float7_lsb 0
- -#define xd_r_reg_feq_data_h2_7_0 0xA36F
- -#define reg_feq_data_h2_7_0_pos 0
- -#define reg_feq_data_h2_7_0_len 8
- -#define reg_feq_data_h2_7_0_lsb 0
- -#define xd_r_reg_feq_data_h2_9_8 0xA370
- -#define reg_feq_data_h2_9_8_pos 0
- -#define reg_feq_data_h2_9_8_len 2
- -#define reg_feq_data_h2_9_8_lsb 8
- -#define xd_p_reg_feq_leak_use_slice_tps 0xA371
- -#define reg_feq_leak_use_slice_tps_pos 0
- -#define reg_feq_leak_use_slice_tps_len 1
- -#define reg_feq_leak_use_slice_tps_lsb 0
- -#define xd_p_reg_feq_read_update 0xA371
- -#define reg_feq_read_update_pos 1
- -#define reg_feq_read_update_len 1
- -#define reg_feq_read_update_lsb 0
- -#define xd_p_reg_feq_data_vld 0xA371
- -#define reg_feq_data_vld_pos 2
- -#define reg_feq_data_vld_len 1
- -#define reg_feq_data_vld_lsb 0
- -#define xd_p_reg_feq_tone_idx_4_0 0xA371
- -#define reg_feq_tone_idx_4_0_pos 3
- -#define reg_feq_tone_idx_4_0_len 5
- -#define reg_feq_tone_idx_4_0_lsb 0
- -#define xd_p_reg_feq_tone_idx_12_5 0xA372
- -#define reg_feq_tone_idx_12_5_pos 0
- -#define reg_feq_tone_idx_12_5_len 8
- -#define reg_feq_tone_idx_12_5_lsb 5
- -#define xd_r_reg_feq_data_re_7_0 0xA373
- -#define reg_feq_data_re_7_0_pos 0
- -#define reg_feq_data_re_7_0_len 8
- -#define reg_feq_data_re_7_0_lsb 0
- -#define xd_r_reg_feq_data_re_10_8 0xA374
- -#define reg_feq_data_re_10_8_pos 0
- -#define reg_feq_data_re_10_8_len 3
- -#define reg_feq_data_re_10_8_lsb 8
- -#define xd_r_reg_feq_data_im_7_0 0xA375
- -#define reg_feq_data_im_7_0_pos 0
- -#define reg_feq_data_im_7_0_len 8
- -#define reg_feq_data_im_7_0_lsb 0
- -#define xd_r_reg_feq_data_im_10_8 0xA376
- -#define reg_feq_data_im_10_8_pos 0
- -#define reg_feq_data_im_10_8_len 3
- -#define reg_feq_data_im_10_8_lsb 8
- -#define xd_r_reg_feq_y_re 0xA377
- -#define reg_feq_y_re_pos 0
- -#define reg_feq_y_re_len 8
- -#define reg_feq_y_re_lsb 0
- -#define xd_r_reg_feq_y_im 0xA378
- -#define reg_feq_y_im_pos 0
- -#define reg_feq_y_im_len 8
- -#define reg_feq_y_im_lsb 0
- -#define xd_r_reg_feq_h_re_7_0 0xA379
- -#define reg_feq_h_re_7_0_pos 0
- -#define reg_feq_h_re_7_0_len 8
- -#define reg_feq_h_re_7_0_lsb 0
- -#define xd_r_reg_feq_h_re_8 0xA37A
- -#define reg_feq_h_re_8_pos 0
- -#define reg_feq_h_re_8_len 1
- -#define reg_feq_h_re_8_lsb 0
- -#define xd_r_reg_feq_h_im_7_0 0xA37B
- -#define reg_feq_h_im_7_0_pos 0
- -#define reg_feq_h_im_7_0_len 8
- -#define reg_feq_h_im_7_0_lsb 0
- -#define xd_r_reg_feq_h_im_8 0xA37C
- -#define reg_feq_h_im_8_pos 0
- -#define reg_feq_h_im_8_len 1
- -#define reg_feq_h_im_8_lsb 0
- -#define xd_p_fec_super_frm_unit_7_0 0xA380
- -#define fec_super_frm_unit_7_0_pos 0
- -#define fec_super_frm_unit_7_0_len 8
- -#define fec_super_frm_unit_7_0_lsb 0
- -#define xd_p_fec_super_frm_unit_15_8 0xA381
- -#define fec_super_frm_unit_15_8_pos 0
- -#define fec_super_frm_unit_15_8_len 8
- -#define fec_super_frm_unit_15_8_lsb 8
- -#define xd_r_fec_vtb_err_bit_cnt_7_0 0xA382
- -#define fec_vtb_err_bit_cnt_7_0_pos 0
- -#define fec_vtb_err_bit_cnt_7_0_len 8
- -#define fec_vtb_err_bit_cnt_7_0_lsb 0
- -#define xd_r_fec_vtb_err_bit_cnt_15_8 0xA383
- -#define fec_vtb_err_bit_cnt_15_8_pos 0
- -#define fec_vtb_err_bit_cnt_15_8_len 8
- -#define fec_vtb_err_bit_cnt_15_8_lsb 8
- -#define xd_r_fec_vtb_err_bit_cnt_23_16 0xA384
- -#define fec_vtb_err_bit_cnt_23_16_pos 0
- -#define fec_vtb_err_bit_cnt_23_16_len 8
- -#define fec_vtb_err_bit_cnt_23_16_lsb 16
- -#define xd_p_fec_rsd_packet_unit_7_0 0xA385
- -#define fec_rsd_packet_unit_7_0_pos 0
- -#define fec_rsd_packet_unit_7_0_len 8
- -#define fec_rsd_packet_unit_7_0_lsb 0
- -#define xd_p_fec_rsd_packet_unit_15_8 0xA386
- -#define fec_rsd_packet_unit_15_8_pos 0
- -#define fec_rsd_packet_unit_15_8_len 8
- -#define fec_rsd_packet_unit_15_8_lsb 8
- -#define xd_r_fec_rsd_bit_err_cnt_7_0 0xA387
- -#define fec_rsd_bit_err_cnt_7_0_pos 0
- -#define fec_rsd_bit_err_cnt_7_0_len 8
- -#define fec_rsd_bit_err_cnt_7_0_lsb 0
- -#define xd_r_fec_rsd_bit_err_cnt_15_8 0xA388
- -#define fec_rsd_bit_err_cnt_15_8_pos 0
- -#define fec_rsd_bit_err_cnt_15_8_len 8
- -#define fec_rsd_bit_err_cnt_15_8_lsb 8
- -#define xd_r_fec_rsd_bit_err_cnt_23_16 0xA389
- -#define fec_rsd_bit_err_cnt_23_16_pos 0
- -#define fec_rsd_bit_err_cnt_23_16_len 8
- -#define fec_rsd_bit_err_cnt_23_16_lsb 16
- -#define xd_r_fec_rsd_abort_packet_cnt_7_0 0xA38A
- -#define fec_rsd_abort_packet_cnt_7_0_pos 0
- -#define fec_rsd_abort_packet_cnt_7_0_len 8
- -#define fec_rsd_abort_packet_cnt_7_0_lsb 0
- -#define xd_r_fec_rsd_abort_packet_cnt_15_8 0xA38B
- -#define fec_rsd_abort_packet_cnt_15_8_pos 0
- -#define fec_rsd_abort_packet_cnt_15_8_len 8
- -#define fec_rsd_abort_packet_cnt_15_8_lsb 8
- -#define xd_p_fec_RSD_PKT_NUM_PER_UNIT_7_0 0xA38C
- -#define fec_RSD_PKT_NUM_PER_UNIT_7_0_pos 0
- -#define fec_RSD_PKT_NUM_PER_UNIT_7_0_len 8
- -#define fec_RSD_PKT_NUM_PER_UNIT_7_0_lsb 0
- -#define xd_p_fec_RSD_PKT_NUM_PER_UNIT_15_8 0xA38D
- -#define fec_RSD_PKT_NUM_PER_UNIT_15_8_pos 0
- -#define fec_RSD_PKT_NUM_PER_UNIT_15_8_len 8
- -#define fec_RSD_PKT_NUM_PER_UNIT_15_8_lsb 8
- -#define xd_p_fec_RS_TH_1_7_0 0xA38E
- -#define fec_RS_TH_1_7_0_pos 0
- -#define fec_RS_TH_1_7_0_len 8
- -#define fec_RS_TH_1_7_0_lsb 0
- -#define xd_p_fec_RS_TH_1_15_8 0xA38F
- -#define fec_RS_TH_1_15_8_pos 0
- -#define fec_RS_TH_1_15_8_len 8
- -#define fec_RS_TH_1_15_8_lsb 8
- -#define xd_p_fec_RS_TH_2 0xA390
- -#define fec_RS_TH_2_pos 0
- -#define fec_RS_TH_2_len 8
- -#define fec_RS_TH_2_lsb 0
- -#define xd_p_fec_mon_en 0xA391
- -#define fec_mon_en_pos 0
- -#define fec_mon_en_len 1
- -#define fec_mon_en_lsb 0
- -#define xd_p_reg_b8to47 0xA391
- -#define reg_b8to47_pos 1
- -#define reg_b8to47_len 1
- -#define reg_b8to47_lsb 0
- -#define xd_p_reg_rsd_sync_rep 0xA391
- -#define reg_rsd_sync_rep_pos 2
- -#define reg_rsd_sync_rep_len 1
- -#define reg_rsd_sync_rep_lsb 0
- -#define xd_p_fec_rsd_retrain_rst 0xA391
- -#define fec_rsd_retrain_rst_pos 3
- -#define fec_rsd_retrain_rst_len 1
- -#define fec_rsd_retrain_rst_lsb 0
- -#define xd_r_fec_rsd_ber_rdy 0xA391
- -#define fec_rsd_ber_rdy_pos 4
- -#define fec_rsd_ber_rdy_len 1
- -#define fec_rsd_ber_rdy_lsb 0
- -#define xd_p_fec_rsd_ber_rst 0xA391
- -#define fec_rsd_ber_rst_pos 5
- -#define fec_rsd_ber_rst_len 1
- -#define fec_rsd_ber_rst_lsb 0
- -#define xd_r_fec_vtb_ber_rdy 0xA391
- -#define fec_vtb_ber_rdy_pos 6
- -#define fec_vtb_ber_rdy_len 1
- -#define fec_vtb_ber_rdy_lsb 0
- -#define xd_p_fec_vtb_ber_rst 0xA391
- -#define fec_vtb_ber_rst_pos 7
- -#define fec_vtb_ber_rst_len 1
- -#define fec_vtb_ber_rst_lsb 0
- -#define xd_p_reg_vtb_clk40en 0xA392
- -#define reg_vtb_clk40en_pos 0
- -#define reg_vtb_clk40en_len 1
- -#define reg_vtb_clk40en_lsb 0
- -#define xd_p_fec_vtb_rsd_mon_en 0xA392
- -#define fec_vtb_rsd_mon_en_pos 1
- -#define fec_vtb_rsd_mon_en_len 1
- -#define fec_vtb_rsd_mon_en_lsb 0
- -#define xd_p_reg_fec_data_en 0xA392
- -#define reg_fec_data_en_pos 2
- -#define reg_fec_data_en_len 1
- -#define reg_fec_data_en_lsb 0
- -#define xd_p_fec_dummy_reg_2 0xA392
- -#define fec_dummy_reg_2_pos 3
- -#define fec_dummy_reg_2_len 3
- -#define fec_dummy_reg_2_lsb 0
- -#define xd_p_reg_sync_chk 0xA392
- -#define reg_sync_chk_pos 6
- -#define reg_sync_chk_len 1
- -#define reg_sync_chk_lsb 0
- -#define xd_p_fec_rsd_bypass 0xA392
- -#define fec_rsd_bypass_pos 7
- -#define fec_rsd_bypass_len 1
- -#define fec_rsd_bypass_lsb 0
- -#define xd_p_fec_sw_rst 0xA393
- -#define fec_sw_rst_pos 0
- -#define fec_sw_rst_len 1
- -#define fec_sw_rst_lsb 0
- -#define xd_r_fec_vtb_pm_crc 0xA394
- -#define fec_vtb_pm_crc_pos 0
- -#define fec_vtb_pm_crc_len 8
- -#define fec_vtb_pm_crc_lsb 0
- -#define xd_r_fec_vtb_tb_7_crc 0xA395
- -#define fec_vtb_tb_7_crc_pos 0
- -#define fec_vtb_tb_7_crc_len 8
- -#define fec_vtb_tb_7_crc_lsb 0
- -#define xd_r_fec_vtb_tb_6_crc 0xA396
- -#define fec_vtb_tb_6_crc_pos 0
- -#define fec_vtb_tb_6_crc_len 8
- -#define fec_vtb_tb_6_crc_lsb 0
- -#define xd_r_fec_vtb_tb_5_crc 0xA397
- -#define fec_vtb_tb_5_crc_pos 0
- -#define fec_vtb_tb_5_crc_len 8
- -#define fec_vtb_tb_5_crc_lsb 0
- -#define xd_r_fec_vtb_tb_4_crc 0xA398
- -#define fec_vtb_tb_4_crc_pos 0
- -#define fec_vtb_tb_4_crc_len 8
- -#define fec_vtb_tb_4_crc_lsb 0
- -#define xd_r_fec_vtb_tb_3_crc 0xA399
- -#define fec_vtb_tb_3_crc_pos 0
- -#define fec_vtb_tb_3_crc_len 8
- -#define fec_vtb_tb_3_crc_lsb 0
- -#define xd_r_fec_vtb_tb_2_crc 0xA39A
- -#define fec_vtb_tb_2_crc_pos 0
- -#define fec_vtb_tb_2_crc_len 8
- -#define fec_vtb_tb_2_crc_lsb 0
- -#define xd_r_fec_vtb_tb_1_crc 0xA39B
- -#define fec_vtb_tb_1_crc_pos 0
- -#define fec_vtb_tb_1_crc_len 8
- -#define fec_vtb_tb_1_crc_lsb 0
- -#define xd_r_fec_vtb_tb_0_crc 0xA39C
- -#define fec_vtb_tb_0_crc_pos 0
- -#define fec_vtb_tb_0_crc_len 8
- -#define fec_vtb_tb_0_crc_lsb 0
- -#define xd_r_fec_rsd_bank0_crc 0xA39D
- -#define fec_rsd_bank0_crc_pos 0
- -#define fec_rsd_bank0_crc_len 8
- -#define fec_rsd_bank0_crc_lsb 0
- -#define xd_r_fec_rsd_bank1_crc 0xA39E
- -#define fec_rsd_bank1_crc_pos 0
- -#define fec_rsd_bank1_crc_len 8
- -#define fec_rsd_bank1_crc_lsb 0
- -#define xd_r_fec_idi_vtb_crc 0xA39F
- -#define fec_idi_vtb_crc_pos 0
- -#define fec_idi_vtb_crc_len 8
- -#define fec_idi_vtb_crc_lsb 0
- -#define xd_g_reg_tpsd_txmod 0xA3C0
- -#define reg_tpsd_txmod_pos 0
- -#define reg_tpsd_txmod_len 2
- -#define reg_tpsd_txmod_lsb 0
- -#define xd_g_reg_tpsd_gi 0xA3C0
- -#define reg_tpsd_gi_pos 2
- -#define reg_tpsd_gi_len 2
- -#define reg_tpsd_gi_lsb 0
- -#define xd_g_reg_tpsd_hier 0xA3C0
- -#define reg_tpsd_hier_pos 4
- -#define reg_tpsd_hier_len 3
- -#define reg_tpsd_hier_lsb 0
- -#define xd_g_reg_bw 0xA3C1
- -#define reg_bw_pos 2
- -#define reg_bw_len 2
- -#define reg_bw_lsb 0
- -#define xd_g_reg_dec_pri 0xA3C1
- -#define reg_dec_pri_pos 4
- -#define reg_dec_pri_len 1
- -#define reg_dec_pri_lsb 0
- -#define xd_g_reg_tpsd_const 0xA3C1
- -#define reg_tpsd_const_pos 6
- -#define reg_tpsd_const_len 2
- -#define reg_tpsd_const_lsb 0
- -#define xd_g_reg_tpsd_hpcr 0xA3C2
- -#define reg_tpsd_hpcr_pos 0
- -#define reg_tpsd_hpcr_len 3
- -#define reg_tpsd_hpcr_lsb 0
- -#define xd_g_reg_tpsd_lpcr 0xA3C2
- -#define reg_tpsd_lpcr_pos 3
- -#define reg_tpsd_lpcr_len 3
- -#define reg_tpsd_lpcr_lsb 0
- -#define xd_g_reg_ofsm_clk 0xA3D0
- -#define reg_ofsm_clk_pos 0
- -#define reg_ofsm_clk_len 3
- -#define reg_ofsm_clk_lsb 0
- -#define xd_g_reg_fclk_cfg 0xA3D1
- -#define reg_fclk_cfg_pos 0
- -#define reg_fclk_cfg_len 1
- -#define reg_fclk_cfg_lsb 0
- -#define xd_g_reg_fclk_idi 0xA3D1
- -#define reg_fclk_idi_pos 1
- -#define reg_fclk_idi_len 1
- -#define reg_fclk_idi_lsb 0
- -#define xd_g_reg_fclk_odi 0xA3D1
- -#define reg_fclk_odi_pos 2
- -#define reg_fclk_odi_len 1
- -#define reg_fclk_odi_lsb 0
- -#define xd_g_reg_fclk_rsd 0xA3D1
- -#define reg_fclk_rsd_pos 3
- -#define reg_fclk_rsd_len 1
- -#define reg_fclk_rsd_lsb 0
- -#define xd_g_reg_fclk_vtb 0xA3D1
- -#define reg_fclk_vtb_pos 4
- -#define reg_fclk_vtb_len 1
- -#define reg_fclk_vtb_lsb 0
- -#define xd_g_reg_fclk_cste 0xA3D1
- -#define reg_fclk_cste_pos 5
- -#define reg_fclk_cste_len 1
- -#define reg_fclk_cste_lsb 0
- -#define xd_g_reg_fclk_mp2if 0xA3D1
- -#define reg_fclk_mp2if_pos 6
- -#define reg_fclk_mp2if_len 1
- -#define reg_fclk_mp2if_lsb 0
- -#define xd_I2C_i2c_m_slave_addr 0xA400
- -#define i2c_m_slave_addr_pos 0
- -#define i2c_m_slave_addr_len 8
- -#define i2c_m_slave_addr_lsb 0
- -#define xd_I2C_i2c_m_data1 0xA401
- -#define i2c_m_data1_pos 0
- -#define i2c_m_data1_len 8
- -#define i2c_m_data1_lsb 0
- -#define xd_I2C_i2c_m_data2 0xA402
- -#define i2c_m_data2_pos 0
- -#define i2c_m_data2_len 8
- -#define i2c_m_data2_lsb 0
- -#define xd_I2C_i2c_m_data3 0xA403
- -#define i2c_m_data3_pos 0
- -#define i2c_m_data3_len 8
- -#define i2c_m_data3_lsb 0
- -#define xd_I2C_i2c_m_data4 0xA404
- -#define i2c_m_data4_pos 0
- -#define i2c_m_data4_len 8
- -#define i2c_m_data4_lsb 0
- -#define xd_I2C_i2c_m_data5 0xA405
- -#define i2c_m_data5_pos 0
- -#define i2c_m_data5_len 8
- -#define i2c_m_data5_lsb 0
- -#define xd_I2C_i2c_m_data6 0xA406
- -#define i2c_m_data6_pos 0
- -#define i2c_m_data6_len 8
- -#define i2c_m_data6_lsb 0
- -#define xd_I2C_i2c_m_data7 0xA407
- -#define i2c_m_data7_pos 0
- -#define i2c_m_data7_len 8
- -#define i2c_m_data7_lsb 0
- -#define xd_I2C_i2c_m_data8 0xA408
- -#define i2c_m_data8_pos 0
- -#define i2c_m_data8_len 8
- -#define i2c_m_data8_lsb 0
- -#define xd_I2C_i2c_m_data9 0xA409
- -#define i2c_m_data9_pos 0
- -#define i2c_m_data9_len 8
- -#define i2c_m_data9_lsb 0
- -#define xd_I2C_i2c_m_data10 0xA40A
- -#define i2c_m_data10_pos 0
- -#define i2c_m_data10_len 8
- -#define i2c_m_data10_lsb 0
- -#define xd_I2C_i2c_m_data11 0xA40B
- -#define i2c_m_data11_pos 0
- -#define i2c_m_data11_len 8
- -#define i2c_m_data11_lsb 0
- -#define xd_I2C_i2c_m_cmd_rw 0xA40C
- -#define i2c_m_cmd_rw_pos 0
- -#define i2c_m_cmd_rw_len 1
- -#define i2c_m_cmd_rw_lsb 0
- -#define xd_I2C_i2c_m_cmd_rwlen 0xA40C
- -#define i2c_m_cmd_rwlen_pos 3
- -#define i2c_m_cmd_rwlen_len 4
- -#define i2c_m_cmd_rwlen_lsb 0
- -#define xd_I2C_i2c_m_status_cmd_exe 0xA40D
- -#define i2c_m_status_cmd_exe_pos 0
- -#define i2c_m_status_cmd_exe_len 1
- -#define i2c_m_status_cmd_exe_lsb 0
- -#define xd_I2C_i2c_m_status_wdat_done 0xA40D
- -#define i2c_m_status_wdat_done_pos 1
- -#define i2c_m_status_wdat_done_len 1
- -#define i2c_m_status_wdat_done_lsb 0
- -#define xd_I2C_i2c_m_status_wdat_fail 0xA40D
- -#define i2c_m_status_wdat_fail_pos 2
- -#define i2c_m_status_wdat_fail_len 1
- -#define i2c_m_status_wdat_fail_lsb 0
- -#define xd_I2C_i2c_m_period 0xA40E
- -#define i2c_m_period_pos 0
- -#define i2c_m_period_len 8
- -#define i2c_m_period_lsb 0
- -#define xd_I2C_i2c_m_reg_msb_lsb 0xA40F
- -#define i2c_m_reg_msb_lsb_pos 0
- -#define i2c_m_reg_msb_lsb_len 1
- -#define i2c_m_reg_msb_lsb_lsb 0
- -#define xd_I2C_reg_ofdm_rst 0xA40F
- -#define reg_ofdm_rst_pos 1
- -#define reg_ofdm_rst_len 1
- -#define reg_ofdm_rst_lsb 0
- -#define xd_I2C_reg_sample_period_on_tuner 0xA40F
- -#define reg_sample_period_on_tuner_pos 2
- -#define reg_sample_period_on_tuner_len 1
- -#define reg_sample_period_on_tuner_lsb 0
- -#define xd_I2C_reg_rst_i2c 0xA40F
- -#define reg_rst_i2c_pos 3
- -#define reg_rst_i2c_len 1
- -#define reg_rst_i2c_lsb 0
- -#define xd_I2C_reg_ofdm_rst_en 0xA40F
- -#define reg_ofdm_rst_en_pos 4
- -#define reg_ofdm_rst_en_len 1
- -#define reg_ofdm_rst_en_lsb 0
- -#define xd_I2C_reg_tuner_sda_sync_on 0xA40F
- -#define reg_tuner_sda_sync_on_pos 5
- -#define reg_tuner_sda_sync_on_len 1
- -#define reg_tuner_sda_sync_on_lsb 0
- -#define xd_p_mp2if_data_access_disable_ofsm 0xA500
- -#define mp2if_data_access_disable_ofsm_pos 0
- -#define mp2if_data_access_disable_ofsm_len 1
- -#define mp2if_data_access_disable_ofsm_lsb 0
- -#define xd_p_reg_mp2_sw_rst_ofsm 0xA500
- -#define reg_mp2_sw_rst_ofsm_pos 1
- -#define reg_mp2_sw_rst_ofsm_len 1
- -#define reg_mp2_sw_rst_ofsm_lsb 0
- -#define xd_p_reg_mp2if_clk_en_ofsm 0xA500
- -#define reg_mp2if_clk_en_ofsm_pos 2
- -#define reg_mp2if_clk_en_ofsm_len 1
- -#define reg_mp2if_clk_en_ofsm_lsb 0
- -#define xd_r_mp2if_sync_byte_locked 0xA500
- -#define mp2if_sync_byte_locked_pos 3
- -#define mp2if_sync_byte_locked_len 1
- -#define mp2if_sync_byte_locked_lsb 0
- -#define xd_r_mp2if_ts_not_188 0xA500
- -#define mp2if_ts_not_188_pos 4
- -#define mp2if_ts_not_188_len 1
- -#define mp2if_ts_not_188_lsb 0
- -#define xd_r_mp2if_psb_empty 0xA500
- -#define mp2if_psb_empty_pos 5
- -#define mp2if_psb_empty_len 1
- -#define mp2if_psb_empty_lsb 0
- -#define xd_r_mp2if_psb_overflow 0xA500
- -#define mp2if_psb_overflow_pos 6
- -#define mp2if_psb_overflow_len 1
- -#define mp2if_psb_overflow_lsb 0
- -#define xd_p_mp2if_keep_sf_sync_byte_ofsm 0xA500
- -#define mp2if_keep_sf_sync_byte_ofsm_pos 7
- -#define mp2if_keep_sf_sync_byte_ofsm_len 1
- -#define mp2if_keep_sf_sync_byte_ofsm_lsb 0
- -#define xd_r_mp2if_psb_mp2if_num_pkt 0xA501
- -#define mp2if_psb_mp2if_num_pkt_pos 0
- -#define mp2if_psb_mp2if_num_pkt_len 6
- -#define mp2if_psb_mp2if_num_pkt_lsb 0
- -#define xd_p_reg_mpeg_full_speed_ofsm 0xA501
- -#define reg_mpeg_full_speed_ofsm_pos 6
- -#define reg_mpeg_full_speed_ofsm_len 1
- -#define reg_mpeg_full_speed_ofsm_lsb 0
- -#define xd_p_mp2if_mpeg_ser_mode_ofsm 0xA501
- -#define mp2if_mpeg_ser_mode_ofsm_pos 7
- -#define mp2if_mpeg_ser_mode_ofsm_len 1
- -#define mp2if_mpeg_ser_mode_ofsm_lsb 0
- -#define xd_p_reg_sw_mon51 0xA600
- -#define reg_sw_mon51_pos 0
- -#define reg_sw_mon51_len 8
- -#define reg_sw_mon51_lsb 0
- -#define xd_p_reg_top_pcsel 0xA601
- -#define reg_top_pcsel_pos 0
- -#define reg_top_pcsel_len 1
- -#define reg_top_pcsel_lsb 0
- -#define xd_p_reg_top_rs232 0xA601
- -#define reg_top_rs232_pos 1
- -#define reg_top_rs232_len 1
- -#define reg_top_rs232_lsb 0
- -#define xd_p_reg_top_pcout 0xA601
- -#define reg_top_pcout_pos 2
- -#define reg_top_pcout_len 1
- -#define reg_top_pcout_lsb 0
- -#define xd_p_reg_top_debug 0xA601
- -#define reg_top_debug_pos 3
- -#define reg_top_debug_len 1
- -#define reg_top_debug_lsb 0
- -#define xd_p_reg_top_adcdly 0xA601
- -#define reg_top_adcdly_pos 4
- -#define reg_top_adcdly_len 2
- -#define reg_top_adcdly_lsb 0
- -#define xd_p_reg_top_pwrdw 0xA601
- -#define reg_top_pwrdw_pos 6
- -#define reg_top_pwrdw_len 1
- -#define reg_top_pwrdw_lsb 0
- -#define xd_p_reg_top_pwrdw_inv 0xA601
- -#define reg_top_pwrdw_inv_pos 7
- -#define reg_top_pwrdw_inv_len 1
- -#define reg_top_pwrdw_inv_lsb 0
- -#define xd_p_reg_top_int_inv 0xA602
- -#define reg_top_int_inv_pos 0
- -#define reg_top_int_inv_len 1
- -#define reg_top_int_inv_lsb 0
- -#define xd_p_reg_top_dio_sel 0xA602
- -#define reg_top_dio_sel_pos 1
- -#define reg_top_dio_sel_len 1
- -#define reg_top_dio_sel_lsb 0
- -#define xd_p_reg_top_gpioon0 0xA603
- -#define reg_top_gpioon0_pos 0
- -#define reg_top_gpioon0_len 1
- -#define reg_top_gpioon0_lsb 0
- -#define xd_p_reg_top_gpioon1 0xA603
- -#define reg_top_gpioon1_pos 1
- -#define reg_top_gpioon1_len 1
- -#define reg_top_gpioon1_lsb 0
- -#define xd_p_reg_top_gpioon2 0xA603
- -#define reg_top_gpioon2_pos 2
- -#define reg_top_gpioon2_len 1
- -#define reg_top_gpioon2_lsb 0
- -#define xd_p_reg_top_gpioon3 0xA603
- -#define reg_top_gpioon3_pos 3
- -#define reg_top_gpioon3_len 1
- -#define reg_top_gpioon3_lsb 0
- -#define xd_p_reg_top_lockon1 0xA603
- -#define reg_top_lockon1_pos 4
- -#define reg_top_lockon1_len 1
- -#define reg_top_lockon1_lsb 0
- -#define xd_p_reg_top_lockon2 0xA603
- -#define reg_top_lockon2_pos 5
- -#define reg_top_lockon2_len 1
- -#define reg_top_lockon2_lsb 0
- -#define xd_p_reg_top_gpioo0 0xA604
- -#define reg_top_gpioo0_pos 0
- -#define reg_top_gpioo0_len 1
- -#define reg_top_gpioo0_lsb 0
- -#define xd_p_reg_top_gpioo1 0xA604
- -#define reg_top_gpioo1_pos 1
- -#define reg_top_gpioo1_len 1
- -#define reg_top_gpioo1_lsb 0
- -#define xd_p_reg_top_gpioo2 0xA604
- -#define reg_top_gpioo2_pos 2
- -#define reg_top_gpioo2_len 1
- -#define reg_top_gpioo2_lsb 0
- -#define xd_p_reg_top_gpioo3 0xA604
- -#define reg_top_gpioo3_pos 3
- -#define reg_top_gpioo3_len 1
- -#define reg_top_gpioo3_lsb 0
- -#define xd_p_reg_top_lock1 0xA604
- -#define reg_top_lock1_pos 4
- -#define reg_top_lock1_len 1
- -#define reg_top_lock1_lsb 0
- -#define xd_p_reg_top_lock2 0xA604
- -#define reg_top_lock2_pos 5
- -#define reg_top_lock2_len 1
- -#define reg_top_lock2_lsb 0
- -#define xd_p_reg_top_gpioen0 0xA605
- -#define reg_top_gpioen0_pos 0
- -#define reg_top_gpioen0_len 1
- -#define reg_top_gpioen0_lsb 0
- -#define xd_p_reg_top_gpioen1 0xA605
- -#define reg_top_gpioen1_pos 1
- -#define reg_top_gpioen1_len 1
- -#define reg_top_gpioen1_lsb 0
- -#define xd_p_reg_top_gpioen2 0xA605
- -#define reg_top_gpioen2_pos 2
- -#define reg_top_gpioen2_len 1
- -#define reg_top_gpioen2_lsb 0
- -#define xd_p_reg_top_gpioen3 0xA605
- -#define reg_top_gpioen3_pos 3
- -#define reg_top_gpioen3_len 1
- -#define reg_top_gpioen3_lsb 0
- -#define xd_p_reg_top_locken1 0xA605
- -#define reg_top_locken1_pos 4
- -#define reg_top_locken1_len 1
- -#define reg_top_locken1_lsb 0
- -#define xd_p_reg_top_locken2 0xA605
- -#define reg_top_locken2_pos 5
- -#define reg_top_locken2_len 1
- -#define reg_top_locken2_lsb 0
- -#define xd_r_reg_top_gpioi0 0xA606
- -#define reg_top_gpioi0_pos 0
- -#define reg_top_gpioi0_len 1
- -#define reg_top_gpioi0_lsb 0
- -#define xd_r_reg_top_gpioi1 0xA606
- -#define reg_top_gpioi1_pos 1
- -#define reg_top_gpioi1_len 1
- -#define reg_top_gpioi1_lsb 0
- -#define xd_r_reg_top_gpioi2 0xA606
- -#define reg_top_gpioi2_pos 2
- -#define reg_top_gpioi2_len 1
- -#define reg_top_gpioi2_lsb 0
- -#define xd_r_reg_top_gpioi3 0xA606
- -#define reg_top_gpioi3_pos 3
- -#define reg_top_gpioi3_len 1
- -#define reg_top_gpioi3_lsb 0
- -#define xd_r_reg_top_locki1 0xA606
- -#define reg_top_locki1_pos 4
- -#define reg_top_locki1_len 1
- -#define reg_top_locki1_lsb 0
- -#define xd_r_reg_top_locki2 0xA606
- -#define reg_top_locki2_pos 5
- -#define reg_top_locki2_len 1
- -#define reg_top_locki2_lsb 0
- -#define xd_p_reg_dummy_7_0 0xA608
- -#define reg_dummy_7_0_pos 0
- -#define reg_dummy_7_0_len 8
- -#define reg_dummy_7_0_lsb 0
- -#define xd_p_reg_dummy_15_8 0xA609
- -#define reg_dummy_15_8_pos 0
- -#define reg_dummy_15_8_len 8
- -#define reg_dummy_15_8_lsb 8
- -#define xd_p_reg_dummy_23_16 0xA60A
- -#define reg_dummy_23_16_pos 0
- -#define reg_dummy_23_16_len 8
- -#define reg_dummy_23_16_lsb 16
- -#define xd_p_reg_dummy_31_24 0xA60B
- -#define reg_dummy_31_24_pos 0
- -#define reg_dummy_31_24_len 8
- -#define reg_dummy_31_24_lsb 24
- -#define xd_p_reg_dummy_39_32 0xA60C
- -#define reg_dummy_39_32_pos 0
- -#define reg_dummy_39_32_len 8
- -#define reg_dummy_39_32_lsb 32
- -#define xd_p_reg_dummy_47_40 0xA60D
- -#define reg_dummy_47_40_pos 0
- -#define reg_dummy_47_40_len 8
- -#define reg_dummy_47_40_lsb 40
- -#define xd_p_reg_dummy_55_48 0xA60E
- -#define reg_dummy_55_48_pos 0
- -#define reg_dummy_55_48_len 8
- -#define reg_dummy_55_48_lsb 48
- -#define xd_p_reg_dummy_63_56 0xA60F
- -#define reg_dummy_63_56_pos 0
- -#define reg_dummy_63_56_len 8
- -#define reg_dummy_63_56_lsb 56
- -#define xd_p_reg_dummy_71_64 0xA610
- -#define reg_dummy_71_64_pos 0
- -#define reg_dummy_71_64_len 8
- -#define reg_dummy_71_64_lsb 64
- -#define xd_p_reg_dummy_79_72 0xA611
- -#define reg_dummy_79_72_pos 0
- -#define reg_dummy_79_72_len 8
- -#define reg_dummy_79_72_lsb 72
- -#define xd_p_reg_dummy_87_80 0xA612
- -#define reg_dummy_87_80_pos 0
- -#define reg_dummy_87_80_len 8
- -#define reg_dummy_87_80_lsb 80
- -#define xd_p_reg_dummy_95_88 0xA613
- -#define reg_dummy_95_88_pos 0
- -#define reg_dummy_95_88_len 8
- -#define reg_dummy_95_88_lsb 88
- -#define xd_p_reg_dummy_103_96 0xA614
- -#define reg_dummy_103_96_pos 0
- -#define reg_dummy_103_96_len 8
- -#define reg_dummy_103_96_lsb 96
- -
- -#define xd_p_reg_unplug_flag 0xA615
- -#define reg_unplug_flag_pos 0
- -#define reg_unplug_flag_len 1
- -#define reg_unplug_flag_lsb 104
- -
- -#define xd_p_reg_api_dca_stes_request 0xA615
- -#define reg_api_dca_stes_request_pos 1
- -#define reg_api_dca_stes_request_len 1
- -#define reg_api_dca_stes_request_lsb 0
- -
- -#define xd_p_reg_back_to_dca_flag 0xA615
- -#define reg_back_to_dca_flag_pos 2
- -#define reg_back_to_dca_flag_len 1
- -#define reg_back_to_dca_flag_lsb 106
- -
- -#define xd_p_reg_api_retrain_request 0xA615
- -#define reg_api_retrain_request_pos 3
- -#define reg_api_retrain_request_len 1
- -#define reg_api_retrain_request_lsb 0
- -
- -#define xd_p_reg_Dyn_Top_Try_flag 0xA615
- -#define reg_Dyn_Top_Try_flag_pos 3
- -#define reg_Dyn_Top_Try_flag_len 1
- -#define reg_Dyn_Top_Try_flag_lsb 107
- -
- -#define xd_p_reg_API_retrain_freeze_flag 0xA615
- -#define reg_API_retrain_freeze_flag_pos 4
- -#define reg_API_retrain_freeze_flag_len 1
- -#define reg_API_retrain_freeze_flag_lsb 108
- -
- -#define xd_p_reg_dummy_111_104 0xA615
- -#define reg_dummy_111_104_pos 0
- -#define reg_dummy_111_104_len 8
- -#define reg_dummy_111_104_lsb 104
- -#define xd_p_reg_dummy_119_112 0xA616
- -#define reg_dummy_119_112_pos 0
- -#define reg_dummy_119_112_len 8
- -#define reg_dummy_119_112_lsb 112
- -#define xd_p_reg_dummy_127_120 0xA617
- -#define reg_dummy_127_120_pos 0
- -#define reg_dummy_127_120_len 8
- -#define reg_dummy_127_120_lsb 120
- -#define xd_p_reg_dummy_135_128 0xA618
- -#define reg_dummy_135_128_pos 0
- -#define reg_dummy_135_128_len 8
- -#define reg_dummy_135_128_lsb 128
- -
- -#define xd_p_reg_dummy_143_136 0xA619
- -#define reg_dummy_143_136_pos 0
- -#define reg_dummy_143_136_len 8
- -#define reg_dummy_143_136_lsb 136
- -
- -#define xd_p_reg_CCIR_dis 0xA619
- -#define reg_CCIR_dis_pos 0
- -#define reg_CCIR_dis_len 1
- -#define reg_CCIR_dis_lsb 0
- -
- -#define xd_p_reg_dummy_151_144 0xA61A
- -#define reg_dummy_151_144_pos 0
- -#define reg_dummy_151_144_len 8
- -#define reg_dummy_151_144_lsb 144
- -
- -#define xd_p_reg_dummy_159_152 0xA61B
- -#define reg_dummy_159_152_pos 0
- -#define reg_dummy_159_152_len 8
- -#define reg_dummy_159_152_lsb 152
- -
- -#define xd_p_reg_dummy_167_160 0xA61C
- -#define reg_dummy_167_160_pos 0
- -#define reg_dummy_167_160_len 8
- -#define reg_dummy_167_160_lsb 160
- -
- -#define xd_p_reg_dummy_175_168 0xA61D
- -#define reg_dummy_175_168_pos 0
- -#define reg_dummy_175_168_len 8
- -#define reg_dummy_175_168_lsb 168
- -
- -#define xd_p_reg_dummy_183_176 0xA61E
- -#define reg_dummy_183_176_pos 0
- -#define reg_dummy_183_176_len 8
- -#define reg_dummy_183_176_lsb 176
- -
- -#define xd_p_reg_ofsm_read_rbc_en 0xA61E
- -#define reg_ofsm_read_rbc_en_pos 2
- -#define reg_ofsm_read_rbc_en_len 1
- -#define reg_ofsm_read_rbc_en_lsb 0
- -
- -#define xd_p_reg_ce_filter_selection_dis 0xA61E
- -#define reg_ce_filter_selection_dis_pos 1
- -#define reg_ce_filter_selection_dis_len 1
- -#define reg_ce_filter_selection_dis_lsb 0
- -
- -#define xd_p_reg_OFSM_version_control_7_0 0xA611
- -#define reg_OFSM_version_control_7_0_pos 0
- -#define reg_OFSM_version_control_7_0_len 8
- -#define reg_OFSM_version_control_7_0_lsb 0
- -
- -#define xd_p_reg_OFSM_version_control_15_8 0xA61F
- -#define reg_OFSM_version_control_15_8_pos 0
- -#define reg_OFSM_version_control_15_8_len 8
- -#define reg_OFSM_version_control_15_8_lsb 0
- -
- -#define xd_p_reg_OFSM_version_control_23_16 0xA620
- -#define reg_OFSM_version_control_23_16_pos 0
- -#define reg_OFSM_version_control_23_16_len 8
- -#define reg_OFSM_version_control_23_16_lsb 0
- -
- -#define xd_p_reg_dummy_191_184 0xA61F
- -#define reg_dummy_191_184_pos 0
- -#define reg_dummy_191_184_len 8
- -#define reg_dummy_191_184_lsb 184
- -
- -#define xd_p_reg_dummy_199_192 0xA620
- -#define reg_dummy_199_192_pos 0
- -#define reg_dummy_199_192_len 8
- -#define reg_dummy_199_192_lsb 192
- -
- -#define xd_p_reg_ce_en 0xABC0
- -#define reg_ce_en_pos 0
- -#define reg_ce_en_len 1
- -#define reg_ce_en_lsb 0
- -#define xd_p_reg_ce_fctrl_en 0xABC0
- -#define reg_ce_fctrl_en_pos 1
- -#define reg_ce_fctrl_en_len 1
- -#define reg_ce_fctrl_en_lsb 0
- -#define xd_p_reg_ce_fste_tdi 0xABC0
- -#define reg_ce_fste_tdi_pos 2
- -#define reg_ce_fste_tdi_len 1
- -#define reg_ce_fste_tdi_lsb 0
- -#define xd_p_reg_ce_dynamic 0xABC0
- -#define reg_ce_dynamic_pos 3
- -#define reg_ce_dynamic_len 1
- -#define reg_ce_dynamic_lsb 0
- -#define xd_p_reg_ce_conf 0xABC0
- -#define reg_ce_conf_pos 4
- -#define reg_ce_conf_len 2
- -#define reg_ce_conf_lsb 0
- -#define xd_p_reg_ce_dyn12 0xABC0
- -#define reg_ce_dyn12_pos 6
- -#define reg_ce_dyn12_len 1
- -#define reg_ce_dyn12_lsb 0
- -#define xd_p_reg_ce_derot_en 0xABC0
- -#define reg_ce_derot_en_pos 7
- -#define reg_ce_derot_en_len 1
- -#define reg_ce_derot_en_lsb 0
- -#define xd_p_reg_ce_dynamic_th_7_0 0xABC1
- -#define reg_ce_dynamic_th_7_0_pos 0
- -#define reg_ce_dynamic_th_7_0_len 8
- -#define reg_ce_dynamic_th_7_0_lsb 0
- -#define xd_p_reg_ce_dynamic_th_15_8 0xABC2
- -#define reg_ce_dynamic_th_15_8_pos 0
- -#define reg_ce_dynamic_th_15_8_len 8
- -#define reg_ce_dynamic_th_15_8_lsb 8
- -#define xd_p_reg_ce_s1 0xABC3
- -#define reg_ce_s1_pos 0
- -#define reg_ce_s1_len 5
- -#define reg_ce_s1_lsb 0
- -#define xd_p_reg_ce_var_forced_value 0xABC3
- -#define reg_ce_var_forced_value_pos 5
- -#define reg_ce_var_forced_value_len 3
- -#define reg_ce_var_forced_value_lsb 0
- -#define xd_p_reg_ce_data_im_7_0 0xABC4
- -#define reg_ce_data_im_7_0_pos 0
- -#define reg_ce_data_im_7_0_len 8
- -#define reg_ce_data_im_7_0_lsb 0
- -#define xd_p_reg_ce_data_im_8 0xABC5
- -#define reg_ce_data_im_8_pos 0
- -#define reg_ce_data_im_8_len 1
- -#define reg_ce_data_im_8_lsb 0
- -#define xd_p_reg_ce_data_re_6_0 0xABC5
- -#define reg_ce_data_re_6_0_pos 1
- -#define reg_ce_data_re_6_0_len 7
- -#define reg_ce_data_re_6_0_lsb 0
- -#define xd_p_reg_ce_data_re_8_7 0xABC6
- -#define reg_ce_data_re_8_7_pos 0
- -#define reg_ce_data_re_8_7_len 2
- -#define reg_ce_data_re_8_7_lsb 7
- -#define xd_p_reg_ce_tone_5_0 0xABC6
- -#define reg_ce_tone_5_0_pos 2
- -#define reg_ce_tone_5_0_len 6
- -#define reg_ce_tone_5_0_lsb 0
- -#define xd_p_reg_ce_tone_12_6 0xABC7
- -#define reg_ce_tone_12_6_pos 0
- -#define reg_ce_tone_12_6_len 7
- -#define reg_ce_tone_12_6_lsb 6
- -#define xd_p_reg_ce_centroid_drift_th 0xABC8
- -#define reg_ce_centroid_drift_th_pos 0
- -#define reg_ce_centroid_drift_th_len 8
- -#define reg_ce_centroid_drift_th_lsb 0
- -#define xd_p_reg_ce_centroid_count_max 0xABC9
- -#define reg_ce_centroid_count_max_pos 0
- -#define reg_ce_centroid_count_max_len 4
- -#define reg_ce_centroid_count_max_lsb 0
- -#define xd_p_reg_ce_centroid_bias_inc_7_0 0xABCA
- -#define reg_ce_centroid_bias_inc_7_0_pos 0
- -#define reg_ce_centroid_bias_inc_7_0_len 8
- -#define reg_ce_centroid_bias_inc_7_0_lsb 0
- -#define xd_p_reg_ce_centroid_bias_inc_8 0xABCB
- -#define reg_ce_centroid_bias_inc_8_pos 0
- -#define reg_ce_centroid_bias_inc_8_len 1
- -#define reg_ce_centroid_bias_inc_8_lsb 0
- -#define xd_p_reg_ce_var_th0_7_0 0xABCC
- -#define reg_ce_var_th0_7_0_pos 0
- -#define reg_ce_var_th0_7_0_len 8
- -#define reg_ce_var_th0_7_0_lsb 0
- -#define xd_p_reg_ce_var_th0_15_8 0xABCD
- -#define reg_ce_var_th0_15_8_pos 0
- -#define reg_ce_var_th0_15_8_len 8
- -#define reg_ce_var_th0_15_8_lsb 8
- -#define xd_p_reg_ce_var_th1_7_0 0xABCE
- -#define reg_ce_var_th1_7_0_pos 0
- -#define reg_ce_var_th1_7_0_len 8
- -#define reg_ce_var_th1_7_0_lsb 0
- -#define xd_p_reg_ce_var_th1_15_8 0xABCF
- -#define reg_ce_var_th1_15_8_pos 0
- -#define reg_ce_var_th1_15_8_len 8
- -#define reg_ce_var_th1_15_8_lsb 8
- -#define xd_p_reg_ce_var_th2_7_0 0xABD0
- -#define reg_ce_var_th2_7_0_pos 0
- -#define reg_ce_var_th2_7_0_len 8
- -#define reg_ce_var_th2_7_0_lsb 0
- -#define xd_p_reg_ce_var_th2_15_8 0xABD1
- -#define reg_ce_var_th2_15_8_pos 0
- -#define reg_ce_var_th2_15_8_len 8
- -#define reg_ce_var_th2_15_8_lsb 8
- -#define xd_p_reg_ce_var_th3_7_0 0xABD2
- -#define reg_ce_var_th3_7_0_pos 0
- -#define reg_ce_var_th3_7_0_len 8
- -#define reg_ce_var_th3_7_0_lsb 0
- -#define xd_p_reg_ce_var_th3_15_8 0xABD3
- -#define reg_ce_var_th3_15_8_pos 0
- -#define reg_ce_var_th3_15_8_len 8
- -#define reg_ce_var_th3_15_8_lsb 8
- -#define xd_p_reg_ce_var_th4_7_0 0xABD4
- -#define reg_ce_var_th4_7_0_pos 0
- -#define reg_ce_var_th4_7_0_len 8
- -#define reg_ce_var_th4_7_0_lsb 0
- -#define xd_p_reg_ce_var_th4_15_8 0xABD5
- -#define reg_ce_var_th4_15_8_pos 0
- -#define reg_ce_var_th4_15_8_len 8
- -#define reg_ce_var_th4_15_8_lsb 8
- -#define xd_p_reg_ce_var_th5_7_0 0xABD6
- -#define reg_ce_var_th5_7_0_pos 0
- -#define reg_ce_var_th5_7_0_len 8
- -#define reg_ce_var_th5_7_0_lsb 0
- -#define xd_p_reg_ce_var_th5_15_8 0xABD7
- -#define reg_ce_var_th5_15_8_pos 0
- -#define reg_ce_var_th5_15_8_len 8
- -#define reg_ce_var_th5_15_8_lsb 8
- -#define xd_p_reg_ce_var_th6_7_0 0xABD8
- -#define reg_ce_var_th6_7_0_pos 0
- -#define reg_ce_var_th6_7_0_len 8
- -#define reg_ce_var_th6_7_0_lsb 0
- -#define xd_p_reg_ce_var_th6_15_8 0xABD9
- -#define reg_ce_var_th6_15_8_pos 0
- -#define reg_ce_var_th6_15_8_len 8
- -#define reg_ce_var_th6_15_8_lsb 8
- -#define xd_p_reg_ce_fctrl_reset 0xABDA
- -#define reg_ce_fctrl_reset_pos 0
- -#define reg_ce_fctrl_reset_len 1
- -#define reg_ce_fctrl_reset_lsb 0
- -#define xd_p_reg_ce_cent_auto_clr_en 0xABDA
- -#define reg_ce_cent_auto_clr_en_pos 1
- -#define reg_ce_cent_auto_clr_en_len 1
- -#define reg_ce_cent_auto_clr_en_lsb 0
- -#define xd_p_reg_ce_fctrl_auto_reset_en 0xABDA
- -#define reg_ce_fctrl_auto_reset_en_pos 2
- -#define reg_ce_fctrl_auto_reset_en_len 1
- -#define reg_ce_fctrl_auto_reset_en_lsb 0
- -#define xd_p_reg_ce_var_forced_en 0xABDA
- -#define reg_ce_var_forced_en_pos 3
- -#define reg_ce_var_forced_en_len 1
- -#define reg_ce_var_forced_en_lsb 0
- -#define xd_p_reg_ce_cent_forced_en 0xABDA
- -#define reg_ce_cent_forced_en_pos 4
- -#define reg_ce_cent_forced_en_len 1
- -#define reg_ce_cent_forced_en_lsb 0
- -#define xd_p_reg_ce_var_max 0xABDA
- -#define reg_ce_var_max_pos 5
- -#define reg_ce_var_max_len 3
- -#define reg_ce_var_max_lsb 0
- -#define xd_p_reg_ce_cent_forced_value_7_0 0xABDB
- -#define reg_ce_cent_forced_value_7_0_pos 0
- -#define reg_ce_cent_forced_value_7_0_len 8
- -#define reg_ce_cent_forced_value_7_0_lsb 0
- -#define xd_p_reg_ce_cent_forced_value_11_8 0xABDC
- -#define reg_ce_cent_forced_value_11_8_pos 0
- -#define reg_ce_cent_forced_value_11_8_len 4
- -#define reg_ce_cent_forced_value_11_8_lsb 8
- -#define xd_p_reg_ce_fctrl_rd 0xABDD
- -#define reg_ce_fctrl_rd_pos 0
- -#define reg_ce_fctrl_rd_len 1
- -#define reg_ce_fctrl_rd_lsb 0
- -#define xd_p_reg_ce_centroid_max_6_0 0xABDD
- -#define reg_ce_centroid_max_6_0_pos 1
- -#define reg_ce_centroid_max_6_0_len 7
- -#define reg_ce_centroid_max_6_0_lsb 0
- -#define xd_p_reg_ce_centroid_max_11_7 0xABDE
- -#define reg_ce_centroid_max_11_7_pos 0
- -#define reg_ce_centroid_max_11_7_len 5
- -#define reg_ce_centroid_max_11_7_lsb 7
- -#define xd_p_reg_ce_var 0xABDF
- -#define reg_ce_var_pos 0
- -#define reg_ce_var_len 3
- -#define reg_ce_var_lsb 0
- -#define xd_p_reg_ce_fctrl_rdy 0xABDF
- -#define reg_ce_fctrl_rdy_pos 3
- -#define reg_ce_fctrl_rdy_len 1
- -#define reg_ce_fctrl_rdy_lsb 0
- -#define xd_p_reg_ce_centroid_out_3_0 0xABDF
- -#define reg_ce_centroid_out_3_0_pos 4
- -#define reg_ce_centroid_out_3_0_len 4
- -#define reg_ce_centroid_out_3_0_lsb 0
- -#define xd_p_reg_ce_centroid_out_11_4 0xABE0
- -#define reg_ce_centroid_out_11_4_pos 0
- -#define reg_ce_centroid_out_11_4_len 8
- -#define reg_ce_centroid_out_11_4_lsb 4
- -#define xd_p_reg_ce_bias_7_0 0xABE1
- -#define reg_ce_bias_7_0_pos 0
- -#define reg_ce_bias_7_0_len 8
- -#define reg_ce_bias_7_0_lsb 0
- -#define xd_p_reg_ce_bias_11_8 0xABE2
- -#define reg_ce_bias_11_8_pos 0
- -#define reg_ce_bias_11_8_len 4
- -#define reg_ce_bias_11_8_lsb 8
- -#define xd_p_reg_ce_m1_3_0 0xABE2
- -#define reg_ce_m1_3_0_pos 4
- -#define reg_ce_m1_3_0_len 4
- -#define reg_ce_m1_3_0_lsb 0
- -#define xd_p_reg_ce_m1_11_4 0xABE3
- -#define reg_ce_m1_11_4_pos 0
- -#define reg_ce_m1_11_4_len 8
- -#define reg_ce_m1_11_4_lsb 4
- -#define xd_p_reg_ce_rh0_7_0 0xABE4
- -#define reg_ce_rh0_7_0_pos 0
- -#define reg_ce_rh0_7_0_len 8
- -#define reg_ce_rh0_7_0_lsb 0
- -#define xd_p_reg_ce_rh0_15_8 0xABE5
- -#define reg_ce_rh0_15_8_pos 0
- -#define reg_ce_rh0_15_8_len 8
- -#define reg_ce_rh0_15_8_lsb 8
- -#define xd_p_reg_ce_rh0_23_16 0xABE6
- -#define reg_ce_rh0_23_16_pos 0
- -#define reg_ce_rh0_23_16_len 8
- -#define reg_ce_rh0_23_16_lsb 16
- -#define xd_p_reg_ce_rh0_31_24 0xABE7
- -#define reg_ce_rh0_31_24_pos 0
- -#define reg_ce_rh0_31_24_len 8
- -#define reg_ce_rh0_31_24_lsb 24
- -#define xd_p_reg_ce_rh3_real_7_0 0xABE8
- -#define reg_ce_rh3_real_7_0_pos 0
- -#define reg_ce_rh3_real_7_0_len 8
- -#define reg_ce_rh3_real_7_0_lsb 0
- -#define xd_p_reg_ce_rh3_real_15_8 0xABE9
- -#define reg_ce_rh3_real_15_8_pos 0
- -#define reg_ce_rh3_real_15_8_len 8
- -#define reg_ce_rh3_real_15_8_lsb 8
- -#define xd_p_reg_ce_rh3_real_23_16 0xABEA
- -#define reg_ce_rh3_real_23_16_pos 0
- -#define reg_ce_rh3_real_23_16_len 8
- -#define reg_ce_rh3_real_23_16_lsb 16
- -#define xd_p_reg_ce_rh3_real_31_24 0xABEB
- -#define reg_ce_rh3_real_31_24_pos 0
- -#define reg_ce_rh3_real_31_24_len 8
- -#define reg_ce_rh3_real_31_24_lsb 24
- -#define xd_p_reg_ce_rh3_imag_7_0 0xABEC
- -#define reg_ce_rh3_imag_7_0_pos 0
- -#define reg_ce_rh3_imag_7_0_len 8
- -#define reg_ce_rh3_imag_7_0_lsb 0
- -#define xd_p_reg_ce_rh3_imag_15_8 0xABED
- -#define reg_ce_rh3_imag_15_8_pos 0
- -#define reg_ce_rh3_imag_15_8_len 8
- -#define reg_ce_rh3_imag_15_8_lsb 8
- -#define xd_p_reg_ce_rh3_imag_23_16 0xABEE
- -#define reg_ce_rh3_imag_23_16_pos 0
- -#define reg_ce_rh3_imag_23_16_len 8
- -#define reg_ce_rh3_imag_23_16_lsb 16
- -#define xd_p_reg_ce_rh3_imag_31_24 0xABEF
- -#define reg_ce_rh3_imag_31_24_pos 0
- -#define reg_ce_rh3_imag_31_24_len 8
- -#define reg_ce_rh3_imag_31_24_lsb 24
- -#define xd_p_reg_feq_fix_eh2_7_0 0xABF0
- -#define reg_feq_fix_eh2_7_0_pos 0
- -#define reg_feq_fix_eh2_7_0_len 8
- -#define reg_feq_fix_eh2_7_0_lsb 0
- -#define xd_p_reg_feq_fix_eh2_15_8 0xABF1
- -#define reg_feq_fix_eh2_15_8_pos 0
- -#define reg_feq_fix_eh2_15_8_len 8
- -#define reg_feq_fix_eh2_15_8_lsb 8
- -#define xd_p_reg_feq_fix_eh2_23_16 0xABF2
- -#define reg_feq_fix_eh2_23_16_pos 0
- -#define reg_feq_fix_eh2_23_16_len 8
- -#define reg_feq_fix_eh2_23_16_lsb 16
- -#define xd_p_reg_feq_fix_eh2_31_24 0xABF3
- -#define reg_feq_fix_eh2_31_24_pos 0
- -#define reg_feq_fix_eh2_31_24_len 8
- -#define reg_feq_fix_eh2_31_24_lsb 24
- -#define xd_p_reg_ce_m2_central_7_0 0xABF4
- -#define reg_ce_m2_central_7_0_pos 0
- -#define reg_ce_m2_central_7_0_len 8
- -#define reg_ce_m2_central_7_0_lsb 0
- -#define xd_p_reg_ce_m2_central_15_8 0xABF5
- -#define reg_ce_m2_central_15_8_pos 0
- -#define reg_ce_m2_central_15_8_len 8
- -#define reg_ce_m2_central_15_8_lsb 8
- -#define xd_p_reg_ce_fftshift 0xABF6
- -#define reg_ce_fftshift_pos 0
- -#define reg_ce_fftshift_len 4
- -#define reg_ce_fftshift_lsb 0
- -#define xd_p_reg_ce_fftshift1 0xABF6
- -#define reg_ce_fftshift1_pos 4
- -#define reg_ce_fftshift1_len 4
- -#define reg_ce_fftshift1_lsb 0
- -#define xd_p_reg_ce_fftshift2 0xABF7
- -#define reg_ce_fftshift2_pos 0
- -#define reg_ce_fftshift2_len 4
- -#define reg_ce_fftshift2_lsb 0
- -#define xd_p_reg_ce_top_mobile 0xABF7
- -#define reg_ce_top_mobile_pos 4
- -#define reg_ce_top_mobile_len 1
- -#define reg_ce_top_mobile_lsb 0
- -#define xd_p_reg_strong_sginal_detected 0xA2BC
- -#define reg_strong_sginal_detected_pos 2
- -#define reg_strong_sginal_detected_len 1
- -#define reg_strong_sginal_detected_lsb 0
- -
- -#define XD_MP2IF_BASE 0xB000
- -#define XD_MP2IF_CSR (0x00 + XD_MP2IF_BASE)
- -#define XD_MP2IF_DMX_CTRL (0x03 + XD_MP2IF_BASE)
- -#define XD_MP2IF_PID_IDX (0x04 + XD_MP2IF_BASE)
- -#define XD_MP2IF_PID_DATA_L (0x05 + XD_MP2IF_BASE)
- -#define XD_MP2IF_PID_DATA_H (0x06 + XD_MP2IF_BASE)
- -#define XD_MP2IF_MISC (0x07 + XD_MP2IF_BASE)
- -
- -extern struct dvb_frontend *af9005_fe_attach(struct dvb_usb_device *d);
- -extern int af9005_read_ofdm_register(struct dvb_usb_device *d, u16 reg,
- - u8 * value);
- -extern int af9005_read_ofdm_registers(struct dvb_usb_device *d, u16 reg,
- - u8 * values, int len);
- -extern int af9005_write_ofdm_register(struct dvb_usb_device *d, u16 reg,
- - u8 value);
- -extern int af9005_write_ofdm_registers(struct dvb_usb_device *d, u16 reg,
- - u8 * values, int len);
- -extern int af9005_read_tuner_registers(struct dvb_usb_device *d, u16 reg,
- - u8 addr, u8 * values, int len);
- -extern int af9005_write_tuner_registers(struct dvb_usb_device *d, u16 reg,
- - u8 * values, int len);
- -extern int af9005_read_register_bits(struct dvb_usb_device *d, u16 reg,
- - u8 pos, u8 len, u8 * value);
- -extern int af9005_write_register_bits(struct dvb_usb_device *d, u16 reg,
- - u8 pos, u8 len, u8 value);
- -extern int af9005_send_command(struct dvb_usb_device *d, u8 command,
- - u8 * wbuf, int wlen, u8 * rbuf, int rlen);
- -extern int af9005_read_eeprom(struct dvb_usb_device *d, u8 address,
- - u8 * values, int len);
- -extern int af9005_tuner_attach(struct dvb_usb_adapter *adap);
- -extern int af9005_led_control(struct dvb_usb_device *d, int onoff);
- -
- -extern u8 regmask[8];
- -
- -/* remote control decoder */
- -extern int af9005_rc_decode(struct dvb_usb_device *d, u8 * data, int len,
- - u32 * event, int *state);
- -extern struct rc_map_table rc_map_af9005_table[];
- -extern int rc_map_af9005_table_size;
- -
- -#endif
- diff -ruN ../linux-4.14.336/drivers/net/Space.c ./drivers/net/Space.c
- --- linux-4.14.336/../linux-4.14.336/drivers/net/Space.c 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./drivers/net/Space.c 2024-02-14 21:04:46.981594989 +0100
- @@ -150,11 +150,6 @@
- for (num = 0; num < 8; ++num)
- ethif_probe2(num);
- -#ifdef CONFIG_COPS
- - cops_probe(0);
- - cops_probe(1);
- - cops_probe(2);
- -#endif
- #ifdef CONFIG_LTPC
- ltpc_probe();
- #endif
- diff -ruN ../linux-4.14.336/drivers/net/appletalk/Kconfig ./drivers/net/appletalk/Kconfig
- --- linux-4.14.336/../linux-4.14.336/drivers/net/appletalk/Kconfig 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./drivers/net/appletalk/Kconfig 2024-02-14 21:04:25.861596249 +0100
- @@ -49,32 +49,6 @@
- This driver is experimental, which means that it may not work.
- See the file <file:Documentation/networking/ltpc.txt>.
- -config COPS
- - tristate "COPS LocalTalk PC support"
- - depends on DEV_APPLETALK && (ISA || EISA)
- - help
- - This allows you to use COPS AppleTalk cards to connect to LocalTalk
- - networks. You also need version 1.3.3 or later of the netatalk
- - package. This driver is experimental, which means that it may not
- - work. This driver will only work if you choose "AppleTalk DDP"
- - networking support, above.
- - Please read the file <file:Documentation/networking/cops.txt>.
- -
- -config COPS_DAYNA
- - bool "Dayna firmware support"
- - depends on COPS
- - help
- - Support COPS compatible cards with Dayna style firmware (Dayna
- - DL2000/ Daynatalk/PC (half length), COPS LT-95, Farallon PhoneNET PC
- - III, Farallon PhoneNET PC II).
- -
- -config COPS_TANGENT
- - bool "Tangent firmware support"
- - depends on COPS
- - help
- - Support COPS compatible cards with Tangent style firmware (Tangent
- - ATB_II, Novell NL-1000, Daystar Digital LT-200.
- -
- config IPDDP
- tristate "Appletalk-IP driver support"
- depends on DEV_APPLETALK && ATALK
- diff -ruN ../linux-4.14.336/drivers/net/appletalk/Makefile ./drivers/net/appletalk/Makefile
- --- linux-4.14.336/../linux-4.14.336/drivers/net/appletalk/Makefile 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./drivers/net/appletalk/Makefile 2024-02-14 21:04:05.191597490 +0100
- @@ -3,5 +3,4 @@
- #
- obj-$(CONFIG_IPDDP) += ipddp.o
- -obj-$(CONFIG_COPS) += cops.o
- obj-$(CONFIG_LTPC) += ltpc.o
- diff -ruN ../linux-4.14.336/drivers/net/appletalk/cops.c ./drivers/net/appletalk/cops.c
- --- linux-4.14.336/../linux-4.14.336/drivers/net/appletalk/cops.c 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./drivers/net/appletalk/cops.c 1970-01-01 01:00:00.000000000 +0100
- @@ -1,1010 +0,0 @@
- -/* cops.c: LocalTalk driver for Linux.
- - *
- - * Authors:
- - * - Jay Schulist <jschlst@samba.org>
- - *
- - * With more than a little help from;
- - * - Alan Cox <alan@lxorguk.ukuu.org.uk>
- - *
- - * Derived from:
- - * - skeleton.c: A network driver outline for linux.
- - * Written 1993-94 by Donald Becker.
- - * - ltpc.c: A driver for the LocalTalk PC card.
- - * Written by Bradford W. Johnson.
- - *
- - * Copyright 1993 United States Government as represented by the
- - * Director, National Security Agency.
- - *
- - * This software may be used and distributed according to the terms
- - * of the GNU General Public License, incorporated herein by reference.
- - *
- - * Changes:
- - * 19970608 Alan Cox Allowed dual card type support
- - * Can set board type in insmod
- - * Hooks for cops_setup routine
- - * (not yet implemented).
- - * 19971101 Jay Schulist Fixes for multiple lt* devices.
- - * 19980607 Steven Hirsch Fixed the badly broken support
- - * for Tangent type cards. Only
- - * tested on Daystar LT200. Some
- - * cleanup of formatting and program
- - * logic. Added emacs 'local-vars'
- - * setup for Jay's brace style.
- - * 20000211 Alan Cox Cleaned up for softnet
- - */
- -
- -static const char *version =
- -"cops.c:v0.04 6/7/98 Jay Schulist <jschlst@samba.org>\n";
- -/*
- - * Sources:
- - * COPS Localtalk SDK. This provides almost all of the information
- - * needed.
- - */
- -
- -/*
- - * insmod/modprobe configurable stuff.
- - * - IO Port, choose one your card supports or 0 if you dare.
- - * - IRQ, also choose one your card supports or nothing and let
- - * the driver figure it out.
- - */
- -
- -#include <linux/module.h>
- -#include <linux/kernel.h>
- -#include <linux/types.h>
- -#include <linux/fcntl.h>
- -#include <linux/interrupt.h>
- -#include <linux/ptrace.h>
- -#include <linux/ioport.h>
- -#include <linux/in.h>
- -#include <linux/string.h>
- -#include <linux/errno.h>
- -#include <linux/init.h>
- -#include <linux/netdevice.h>
- -#include <linux/etherdevice.h>
- -#include <linux/skbuff.h>
- -#include <linux/if_arp.h>
- -#include <linux/if_ltalk.h>
- -#include <linux/delay.h> /* For udelay() */
- -#include <linux/atalk.h>
- -#include <linux/spinlock.h>
- -#include <linux/bitops.h>
- -#include <linux/jiffies.h>
- -
- -#include <asm/io.h>
- -#include <asm/dma.h>
- -
- -#include "cops.h" /* Our Stuff */
- -#include "cops_ltdrv.h" /* Firmware code for Tangent type cards. */
- -#include "cops_ffdrv.h" /* Firmware code for Dayna type cards. */
- -
- -/*
- - * The name of the card. Is used for messages and in the requests for
- - * io regions, irqs and dma channels
- - */
- -
- -static const char *cardname = "cops";
- -
- -#ifdef CONFIG_COPS_DAYNA
- -static int board_type = DAYNA; /* Module exported */
- -#else
- -static int board_type = TANGENT;
- -#endif
- -
- -static int io = 0x240; /* Default IO for Dayna */
- -static int irq = 5; /* Default IRQ */
- -
- -/*
- - * COPS Autoprobe information.
- - * Right now if port address is right but IRQ is not 5 this will
- - * return a 5 no matter what since we will still get a status response.
- - * Need one more additional check to narrow down after we have gotten
- - * the ioaddr. But since only other possible IRQs is 3 and 4 so no real
- - * hurry on this. I *STRONGLY* recommend using IRQ 5 for your card with
- - * this driver.
- - *
- - * This driver has 2 modes and they are: Dayna mode and Tangent mode.
- - * Each mode corresponds with the type of card. It has been found
- - * that there are 2 main types of cards and all other cards are
- - * the same and just have different names or only have minor differences
- - * such as more IO ports. As this driver is tested it will
- - * become more clear on exactly what cards are supported. The driver
- - * defaults to using Dayna mode. To change the drivers mode, simply
- - * select Dayna or Tangent mode when configuring the kernel.
- - *
- - * This driver should support:
- - * TANGENT driver mode:
- - * Tangent ATB-II, Novell NL-1000, Daystar Digital LT-200,
- - * COPS LT-1
- - * DAYNA driver mode:
- - * Dayna DL2000/DaynaTalk PC (Half Length), COPS LT-95,
- - * Farallon PhoneNET PC III, Farallon PhoneNET PC II
- - * Other cards possibly supported mode unknown though:
- - * Dayna DL2000 (Full length), COPS LT/M (Micro-Channel)
- - *
- - * Cards NOT supported by this driver but supported by the ltpc.c
- - * driver written by Bradford W. Johnson <johns393@maroon.tc.umn.edu>
- - * Farallon PhoneNET PC
- - * Original Apple LocalTalk PC card
- - *
- - * N.B.
- - *
- - * The Daystar Digital LT200 boards do not support interrupt-driven
- - * IO. You must specify 'irq=0xff' as a module parameter to invoke
- - * polled mode. I also believe that the port probing logic is quite
- - * dangerous at best and certainly hopeless for a polled card. Best to
- - * specify both. - Steve H.
- - *
- - */
- -
- -/*
- - * Zero terminated list of IO ports to probe.
- - */
- -
- -static unsigned int ports[] = {
- - 0x240, 0x340, 0x200, 0x210, 0x220, 0x230, 0x260,
- - 0x2A0, 0x300, 0x310, 0x320, 0x330, 0x350, 0x360,
- - 0
- -};
- -
- -/*
- - * Zero terminated list of IRQ ports to probe.
- - */
- -
- -static int cops_irqlist[] = {
- - 5, 4, 3, 0
- -};
- -
- -static struct timer_list cops_timer;
- -
- -/* use 0 for production, 1 for verification, 2 for debug, 3 for verbose debug */
- -#ifndef COPS_DEBUG
- -#define COPS_DEBUG 1
- -#endif
- -static unsigned int cops_debug = COPS_DEBUG;
- -
- -/* The number of low I/O ports used by the card. */
- -#define COPS_IO_EXTENT 8
- -
- -/* Information that needs to be kept for each board. */
- -
- -struct cops_local
- -{
- - int board; /* Holds what board type is. */
- - int nodeid; /* Set to 1 once have nodeid. */
- - unsigned char node_acquire; /* Node ID when acquired. */
- - struct atalk_addr node_addr; /* Full node address */
- - spinlock_t lock; /* RX/TX lock */
- -};
- -
- -/* Index to functions, as function prototypes. */
- -static int cops_probe1 (struct net_device *dev, int ioaddr);
- -static int cops_irq (int ioaddr, int board);
- -
- -static int cops_open (struct net_device *dev);
- -static int cops_jumpstart (struct net_device *dev);
- -static void cops_reset (struct net_device *dev, int sleep);
- -static void cops_load (struct net_device *dev);
- -static int cops_nodeid (struct net_device *dev, int nodeid);
- -
- -static irqreturn_t cops_interrupt (int irq, void *dev_id);
- -static void cops_poll (unsigned long ltdev);
- -static void cops_timeout(struct net_device *dev);
- -static void cops_rx (struct net_device *dev);
- -static netdev_tx_t cops_send_packet (struct sk_buff *skb,
- - struct net_device *dev);
- -static void set_multicast_list (struct net_device *dev);
- -static int cops_ioctl (struct net_device *dev, struct ifreq *rq, int cmd);
- -static int cops_close (struct net_device *dev);
- -
- -static void cleanup_card(struct net_device *dev)
- -{
- - if (dev->irq)
- - free_irq(dev->irq, dev);
- - release_region(dev->base_addr, COPS_IO_EXTENT);
- -}
- -
- -/*
- - * Check for a network adaptor of this type, and return '0' iff one exists.
- - * If dev->base_addr == 0, probe all likely locations.
- - * If dev->base_addr in [1..0x1ff], always return failure.
- - * otherwise go with what we pass in.
- - */
- -struct net_device * __init cops_probe(int unit)
- -{
- - struct net_device *dev;
- - unsigned *port;
- - int base_addr;
- - int err = 0;
- -
- - dev = alloc_ltalkdev(sizeof(struct cops_local));
- - if (!dev)
- - return ERR_PTR(-ENOMEM);
- -
- - if (unit >= 0) {
- - sprintf(dev->name, "lt%d", unit);
- - netdev_boot_setup_check(dev);
- - irq = dev->irq;
- - base_addr = dev->base_addr;
- - } else {
- - base_addr = dev->base_addr = io;
- - }
- -
- - if (base_addr > 0x1ff) { /* Check a single specified location. */
- - err = cops_probe1(dev, base_addr);
- - } else if (base_addr != 0) { /* Don't probe at all. */
- - err = -ENXIO;
- - } else {
- - /* FIXME Does this really work for cards which generate irq?
- - * It's definitely N.G. for polled Tangent. sh
- - * Dayna cards don't autoprobe well at all, but if your card is
- - * at IRQ 5 & IO 0x240 we find it every time. ;) JS
- - */
- - for (port = ports; *port && cops_probe1(dev, *port) < 0; port++)
- - ;
- - if (!*port)
- - err = -ENODEV;
- - }
- - if (err)
- - goto out;
- - err = register_netdev(dev);
- - if (err)
- - goto out1;
- - return dev;
- -out1:
- - cleanup_card(dev);
- -out:
- - free_netdev(dev);
- - return ERR_PTR(err);
- -}
- -
- -static const struct net_device_ops cops_netdev_ops = {
- - .ndo_open = cops_open,
- - .ndo_stop = cops_close,
- - .ndo_start_xmit = cops_send_packet,
- - .ndo_tx_timeout = cops_timeout,
- - .ndo_do_ioctl = cops_ioctl,
- - .ndo_set_rx_mode = set_multicast_list,
- -};
- -
- -/*
- - * This is the real probe routine. Linux has a history of friendly device
- - * probes on the ISA bus. A good device probes avoids doing writes, and
- - * verifies that the correct device exists and functions.
- - */
- -static int __init cops_probe1(struct net_device *dev, int ioaddr)
- -{
- - struct cops_local *lp;
- - static unsigned version_printed;
- - int board = board_type;
- - int retval;
- -
- - if(cops_debug && version_printed++ == 0)
- - printk("%s", version);
- -
- - /* Grab the region so no one else tries to probe our ioports. */
- - if (!request_region(ioaddr, COPS_IO_EXTENT, dev->name))
- - return -EBUSY;
- -
- - /*
- - * Since this board has jumpered interrupts, allocate the interrupt
- - * vector now. There is no point in waiting since no other device
- - * can use the interrupt, and this marks the irq as busy. Jumpered
- - * interrupts are typically not reported by the boards, and we must
- - * used AutoIRQ to find them.
- - */
- - dev->irq = irq;
- - switch (dev->irq)
- - {
- - case 0:
- - /* COPS AutoIRQ routine */
- - dev->irq = cops_irq(ioaddr, board);
- - if (dev->irq)
- - break;
- - /* No IRQ found on this port, fallthrough */
- - case 1:
- - retval = -EINVAL;
- - goto err_out;
- -
- - /* Fixup for users that don't know that IRQ 2 is really
- - * IRQ 9, or don't know which one to set.
- - */
- - case 2:
- - dev->irq = 9;
- - break;
- -
- - /* Polled operation requested. Although irq of zero passed as
- - * a parameter tells the init routines to probe, we'll
- - * overload it to denote polled operation at runtime.
- - */
- - case 0xff:
- - dev->irq = 0;
- - break;
- -
- - default:
- - break;
- - }
- -
- - dev->base_addr = ioaddr;
- -
- - /* Reserve any actual interrupt. */
- - if (dev->irq) {
- - retval = request_irq(dev->irq, cops_interrupt, 0, dev->name, dev);
- - if (retval)
- - goto err_out;
- - }
- -
- - lp = netdev_priv(dev);
- - spin_lock_init(&lp->lock);
- -
- - /* Copy local board variable to lp struct. */
- - lp->board = board;
- -
- - dev->netdev_ops = &cops_netdev_ops;
- - dev->watchdog_timeo = HZ * 2;
- -
- -
- - /* Tell the user where the card is and what mode we're in. */
- - if(board==DAYNA)
- - printk("%s: %s at %#3x, using IRQ %d, in Dayna mode.\n",
- - dev->name, cardname, ioaddr, dev->irq);
- - if(board==TANGENT) {
- - if(dev->irq)
- - printk("%s: %s at %#3x, IRQ %d, in Tangent mode\n",
- - dev->name, cardname, ioaddr, dev->irq);
- - else
- - printk("%s: %s at %#3x, using polled IO, in Tangent mode.\n",
- - dev->name, cardname, ioaddr);
- -
- - }
- - return 0;
- -
- -err_out:
- - release_region(ioaddr, COPS_IO_EXTENT);
- - return retval;
- -}
- -
- -static int __init cops_irq (int ioaddr, int board)
- -{ /*
- - * This does not use the IRQ to determine where the IRQ is. We just
- - * assume that when we get a correct status response that it's the IRQ.
- - * This really just verifies the IO port but since we only have access
- - * to such a small number of IRQs (5, 4, 3) this is not bad.
- - * This will probably not work for more than one card.
- - */
- - int irqaddr=0;
- - int i, x, status;
- -
- - if(board==DAYNA)
- - {
- - outb(0, ioaddr+DAYNA_RESET);
- - inb(ioaddr+DAYNA_RESET);
- - mdelay(333);
- - }
- - if(board==TANGENT)
- - {
- - inb(ioaddr);
- - outb(0, ioaddr);
- - outb(0, ioaddr+TANG_RESET);
- - }
- -
- - for(i=0; cops_irqlist[i] !=0; i++)
- - {
- - irqaddr = cops_irqlist[i];
- - for(x = 0xFFFF; x>0; x --) /* wait for response */
- - {
- - if(board==DAYNA)
- - {
- - status = (inb(ioaddr+DAYNA_CARD_STATUS)&3);
- - if(status == 1)
- - return irqaddr;
- - }
- - if(board==TANGENT)
- - {
- - if((inb(ioaddr+TANG_CARD_STATUS)& TANG_TX_READY) !=0)
- - return irqaddr;
- - }
- - }
- - }
- - return 0; /* no IRQ found */
- -}
- -
- -/*
- - * Open/initialize the board. This is called (in the current kernel)
- - * sometime after booting when the 'ifconfig' program is run.
- - */
- -static int cops_open(struct net_device *dev)
- -{
- - struct cops_local *lp = netdev_priv(dev);
- -
- - if(dev->irq==0)
- - {
- - /*
- - * I don't know if the Dayna-style boards support polled
- - * operation. For now, only allow it for Tangent.
- - */
- - if(lp->board==TANGENT) /* Poll 20 times per second */
- - {
- - init_timer(&cops_timer);
- - cops_timer.function = cops_poll;
- - cops_timer.data = (unsigned long)dev;
- - cops_timer.expires = jiffies + HZ/20;
- - add_timer(&cops_timer);
- - }
- - else
- - {
- - printk(KERN_WARNING "%s: No irq line set\n", dev->name);
- - return -EAGAIN;
- - }
- - }
- -
- - cops_jumpstart(dev); /* Start the card up. */
- -
- - netif_start_queue(dev);
- - return 0;
- -}
- -
- -/*
- - * This allows for a dynamic start/restart of the entire card.
- - */
- -static int cops_jumpstart(struct net_device *dev)
- -{
- - struct cops_local *lp = netdev_priv(dev);
- -
- - /*
- - * Once the card has the firmware loaded and has acquired
- - * the nodeid, if it is reset it will lose it all.
- - */
- - cops_reset(dev,1); /* Need to reset card before load firmware. */
- - cops_load(dev); /* Load the firmware. */
- -
- - /*
- - * If atalkd already gave us a nodeid we will use that
- - * one again, else we wait for atalkd to give us a nodeid
- - * in cops_ioctl. This may cause a problem if someone steals
- - * our nodeid while we are resetting.
- - */
- - if(lp->nodeid == 1)
- - cops_nodeid(dev,lp->node_acquire);
- -
- - return 0;
- -}
- -
- -static void tangent_wait_reset(int ioaddr)
- -{
- - int timeout=0;
- -
- - while(timeout++ < 5 && (inb(ioaddr+TANG_CARD_STATUS)&TANG_TX_READY)==0)
- - mdelay(1); /* Wait 1 second */
- -}
- -
- -/*
- - * Reset the LocalTalk board.
- - */
- -static void cops_reset(struct net_device *dev, int sleep)
- -{
- - struct cops_local *lp = netdev_priv(dev);
- - int ioaddr=dev->base_addr;
- -
- - if(lp->board==TANGENT)
- - {
- - inb(ioaddr); /* Clear request latch. */
- - outb(0,ioaddr); /* Clear the TANG_TX_READY flop. */
- - outb(0, ioaddr+TANG_RESET); /* Reset the adapter. */
- -
- - tangent_wait_reset(ioaddr);
- - outb(0, ioaddr+TANG_CLEAR_INT);
- - }
- - if(lp->board==DAYNA)
- - {
- - outb(0, ioaddr+DAYNA_RESET); /* Assert the reset port */
- - inb(ioaddr+DAYNA_RESET); /* Clear the reset */
- - if (sleep)
- - msleep(333);
- - else
- - mdelay(333);
- - }
- -
- - netif_wake_queue(dev);
- -}
- -
- -static void cops_load (struct net_device *dev)
- -{
- - struct ifreq ifr;
- - struct ltfirmware *ltf= (struct ltfirmware *)&ifr.ifr_ifru;
- - struct cops_local *lp = netdev_priv(dev);
- - int ioaddr=dev->base_addr;
- - int length, i = 0;
- -
- - strcpy(ifr.ifr_name,"lt0");
- -
- - /* Get card's firmware code and do some checks on it. */
- -#ifdef CONFIG_COPS_DAYNA
- - if(lp->board==DAYNA)
- - {
- - ltf->length=sizeof(ffdrv_code);
- - ltf->data=ffdrv_code;
- - }
- - else
- -#endif
- -#ifdef CONFIG_COPS_TANGENT
- - if(lp->board==TANGENT)
- - {
- - ltf->length=sizeof(ltdrv_code);
- - ltf->data=ltdrv_code;
- - }
- - else
- -#endif
- - {
- - printk(KERN_INFO "%s; unsupported board type.\n", dev->name);
- - return;
- - }
- -
- - /* Check to make sure firmware is correct length. */
- - if(lp->board==DAYNA && ltf->length!=5983)
- - {
- - printk(KERN_WARNING "%s: Firmware is not length of FFDRV.BIN.\n", dev->name);
- - return;
- - }
- - if(lp->board==TANGENT && ltf->length!=2501)
- - {
- - printk(KERN_WARNING "%s: Firmware is not length of DRVCODE.BIN.\n", dev->name);
- - return;
- - }
- -
- - if(lp->board==DAYNA)
- - {
- - /*
- - * We must wait for a status response
- - * with the DAYNA board.
- - */
- - while(++i<65536)
- - {
- - if((inb(ioaddr+DAYNA_CARD_STATUS)&3)==1)
- - break;
- - }
- -
- - if(i==65536)
- - return;
- - }
- -
- - /*
- - * Upload the firmware and kick. Byte-by-byte works nicely here.
- - */
- - i=0;
- - length = ltf->length;
- - while(length--)
- - {
- - outb(ltf->data[i], ioaddr);
- - i++;
- - }
- -
- - if(cops_debug > 1)
- - printk("%s: Uploaded firmware - %d bytes of %d bytes.\n",
- - dev->name, i, ltf->length);
- -
- - if(lp->board==DAYNA) /* Tell Dayna to run the firmware code. */
- - outb(1, ioaddr+DAYNA_INT_CARD);
- - else /* Tell Tang to run the firmware code. */
- - inb(ioaddr);
- -
- - if(lp->board==TANGENT)
- - {
- - tangent_wait_reset(ioaddr);
- - inb(ioaddr); /* Clear initial ready signal. */
- - }
- -}
- -
- -/*
- - * Get the LocalTalk Nodeid from the card. We can suggest
- - * any nodeid 1-254. The card will try and get that exact
- - * address else we can specify 0 as the nodeid and the card
- - * will autoprobe for a nodeid.
- - */
- -static int cops_nodeid (struct net_device *dev, int nodeid)
- -{
- - struct cops_local *lp = netdev_priv(dev);
- - int ioaddr = dev->base_addr;
- -
- - if(lp->board == DAYNA)
- - {
- - /* Empty any pending adapter responses. */
- - while((inb(ioaddr+DAYNA_CARD_STATUS)&DAYNA_TX_READY)==0)
- - {
- - outb(0, ioaddr+COPS_CLEAR_INT); /* Clear interrupts. */
- - if((inb(ioaddr+DAYNA_CARD_STATUS)&0x03)==DAYNA_RX_REQUEST)
- - cops_rx(dev); /* Kick any packets waiting. */
- - schedule();
- - }
- -
- - outb(2, ioaddr); /* Output command packet length as 2. */
- - outb(0, ioaddr);
- - outb(LAP_INIT, ioaddr); /* Send LAP_INIT command byte. */
- - outb(nodeid, ioaddr); /* Suggest node address. */
- - }
- -
- - if(lp->board == TANGENT)
- - {
- - /* Empty any pending adapter responses. */
- - while(inb(ioaddr+TANG_CARD_STATUS)&TANG_RX_READY)
- - {
- - outb(0, ioaddr+COPS_CLEAR_INT); /* Clear interrupt. */
- - cops_rx(dev); /* Kick out packets waiting. */
- - schedule();
- - }
- -
- - /* Not sure what Tangent does if nodeid picked is used. */
- - if(nodeid == 0) /* Seed. */
- - nodeid = jiffies&0xFF; /* Get a random try */
- - outb(2, ioaddr); /* Command length LSB */
- - outb(0, ioaddr); /* Command length MSB */
- - outb(LAP_INIT, ioaddr); /* Send LAP_INIT byte */
- - outb(nodeid, ioaddr); /* LAP address hint. */
- - outb(0xFF, ioaddr); /* Int. level to use */
- - }
- -
- - lp->node_acquire=0; /* Set nodeid holder to 0. */
- - while(lp->node_acquire==0) /* Get *True* nodeid finally. */
- - {
- - outb(0, ioaddr+COPS_CLEAR_INT); /* Clear any interrupt. */
- -
- - if(lp->board == DAYNA)
- - {
- - if((inb(ioaddr+DAYNA_CARD_STATUS)&0x03)==DAYNA_RX_REQUEST)
- - cops_rx(dev); /* Grab the nodeid put in lp->node_acquire. */
- - }
- - if(lp->board == TANGENT)
- - {
- - if(inb(ioaddr+TANG_CARD_STATUS)&TANG_RX_READY)
- - cops_rx(dev); /* Grab the nodeid put in lp->node_acquire. */
- - }
- - schedule();
- - }
- -
- - if(cops_debug > 1)
- - printk(KERN_DEBUG "%s: Node ID %d has been acquired.\n",
- - dev->name, lp->node_acquire);
- -
- - lp->nodeid=1; /* Set got nodeid to 1. */
- -
- - return 0;
- -}
- -
- -/*
- - * Poll the Tangent type cards to see if we have work.
- - */
- -
- -static void cops_poll(unsigned long ltdev)
- -{
- - int ioaddr, status;
- - int boguscount = 0;
- -
- - struct net_device *dev = (struct net_device *)ltdev;
- -
- - del_timer(&cops_timer);
- -
- - if(dev == NULL)
- - return; /* We've been downed */
- -
- - ioaddr = dev->base_addr;
- - do {
- - status=inb(ioaddr+TANG_CARD_STATUS);
- - if(status & TANG_RX_READY)
- - cops_rx(dev);
- - if(status & TANG_TX_READY)
- - netif_wake_queue(dev);
- - status = inb(ioaddr+TANG_CARD_STATUS);
- - } while((++boguscount < 20) && (status&(TANG_RX_READY|TANG_TX_READY)));
- -
- - /* poll 20 times per second */
- - cops_timer.expires = jiffies + HZ/20;
- - add_timer(&cops_timer);
- -}
- -
- -/*
- - * The typical workload of the driver:
- - * Handle the network interface interrupts.
- - */
- -static irqreturn_t cops_interrupt(int irq, void *dev_id)
- -{
- - struct net_device *dev = dev_id;
- - struct cops_local *lp;
- - int ioaddr, status;
- - int boguscount = 0;
- -
- - ioaddr = dev->base_addr;
- - lp = netdev_priv(dev);
- -
- - if(lp->board==DAYNA)
- - {
- - do {
- - outb(0, ioaddr + COPS_CLEAR_INT);
- - status=inb(ioaddr+DAYNA_CARD_STATUS);
- - if((status&0x03)==DAYNA_RX_REQUEST)
- - cops_rx(dev);
- - netif_wake_queue(dev);
- - } while(++boguscount < 20);
- - }
- - else
- - {
- - do {
- - status=inb(ioaddr+TANG_CARD_STATUS);
- - if(status & TANG_RX_READY)
- - cops_rx(dev);
- - if(status & TANG_TX_READY)
- - netif_wake_queue(dev);
- - status=inb(ioaddr+TANG_CARD_STATUS);
- - } while((++boguscount < 20) && (status&(TANG_RX_READY|TANG_TX_READY)));
- - }
- -
- - return IRQ_HANDLED;
- -}
- -
- -/*
- - * We have a good packet(s), get it/them out of the buffers.
- - */
- -static void cops_rx(struct net_device *dev)
- -{
- - int pkt_len = 0;
- - int rsp_type = 0;
- - struct sk_buff *skb = NULL;
- - struct cops_local *lp = netdev_priv(dev);
- - int ioaddr = dev->base_addr;
- - int boguscount = 0;
- - unsigned long flags;
- -
- -
- - spin_lock_irqsave(&lp->lock, flags);
- -
- - if(lp->board==DAYNA)
- - {
- - outb(0, ioaddr); /* Send out Zero length. */
- - outb(0, ioaddr);
- - outb(DATA_READ, ioaddr); /* Send read command out. */
- -
- - /* Wait for DMA to turn around. */
- - while(++boguscount<1000000)
- - {
- - barrier();
- - if((inb(ioaddr+DAYNA_CARD_STATUS)&0x03)==DAYNA_RX_READY)
- - break;
- - }
- -
- - if(boguscount==1000000)
- - {
- - printk(KERN_WARNING "%s: DMA timed out.\n",dev->name);
- - spin_unlock_irqrestore(&lp->lock, flags);
- - return;
- - }
- - }
- -
- - /* Get response length. */
- - if(lp->board==DAYNA)
- - pkt_len = inb(ioaddr) & 0xFF;
- - else
- - pkt_len = inb(ioaddr) & 0x00FF;
- - pkt_len |= (inb(ioaddr) << 8);
- - /* Input IO code. */
- - rsp_type=inb(ioaddr);
- -
- - /* Malloc up new buffer. */
- - skb = dev_alloc_skb(pkt_len);
- - if(skb == NULL)
- - {
- - printk(KERN_WARNING "%s: Memory squeeze, dropping packet.\n",
- - dev->name);
- - dev->stats.rx_dropped++;
- - while(pkt_len--) /* Discard packet */
- - inb(ioaddr);
- - spin_unlock_irqrestore(&lp->lock, flags);
- - return;
- - }
- - skb->dev = dev;
- - skb_put(skb, pkt_len);
- - skb->protocol = htons(ETH_P_LOCALTALK);
- -
- - insb(ioaddr, skb->data, pkt_len); /* Eat the Data */
- -
- - if(lp->board==DAYNA)
- - outb(1, ioaddr+DAYNA_INT_CARD); /* Interrupt the card */
- -
- - spin_unlock_irqrestore(&lp->lock, flags); /* Restore interrupts. */
- -
- - /* Check for bad response length */
- - if(pkt_len < 0 || pkt_len > MAX_LLAP_SIZE)
- - {
- - printk(KERN_WARNING "%s: Bad packet length of %d bytes.\n",
- - dev->name, pkt_len);
- - dev->stats.tx_errors++;
- - dev_kfree_skb_any(skb);
- - return;
- - }
- -
- - /* Set nodeid and then get out. */
- - if(rsp_type == LAP_INIT_RSP)
- - { /* Nodeid taken from received packet. */
- - lp->node_acquire = skb->data[0];
- - dev_kfree_skb_any(skb);
- - return;
- - }
- -
- - /* One last check to make sure we have a good packet. */
- - if(rsp_type != LAP_RESPONSE)
- - {
- - printk(KERN_WARNING "%s: Bad packet type %d.\n", dev->name, rsp_type);
- - dev->stats.tx_errors++;
- - dev_kfree_skb_any(skb);
- - return;
- - }
- -
- - skb_reset_mac_header(skb); /* Point to entire packet. */
- - skb_pull(skb,3);
- - skb_reset_transport_header(skb); /* Point to data (Skip header). */
- -
- - /* Update the counters. */
- - dev->stats.rx_packets++;
- - dev->stats.rx_bytes += skb->len;
- -
- - /* Send packet to a higher place. */
- - netif_rx(skb);
- -}
- -
- -static void cops_timeout(struct net_device *dev)
- -{
- - struct cops_local *lp = netdev_priv(dev);
- - int ioaddr = dev->base_addr;
- -
- - dev->stats.tx_errors++;
- - if(lp->board==TANGENT)
- - {
- - if((inb(ioaddr+TANG_CARD_STATUS)&TANG_TX_READY)==0)
- - printk(KERN_WARNING "%s: No TX complete interrupt.\n", dev->name);
- - }
- - printk(KERN_WARNING "%s: Transmit timed out.\n", dev->name);
- - cops_jumpstart(dev); /* Restart the card. */
- - netif_trans_update(dev); /* prevent tx timeout */
- - netif_wake_queue(dev);
- -}
- -
- -
- -/*
- - * Make the card transmit a LocalTalk packet.
- - */
- -
- -static netdev_tx_t cops_send_packet(struct sk_buff *skb,
- - struct net_device *dev)
- -{
- - struct cops_local *lp = netdev_priv(dev);
- - int ioaddr = dev->base_addr;
- - unsigned long flags;
- -
- - /*
- - * Block a timer-based transmit from overlapping.
- - */
- -
- - netif_stop_queue(dev);
- -
- - spin_lock_irqsave(&lp->lock, flags);
- - if(lp->board == DAYNA) /* Wait for adapter transmit buffer. */
- - while((inb(ioaddr+DAYNA_CARD_STATUS)&DAYNA_TX_READY)==0)
- - cpu_relax();
- - if(lp->board == TANGENT) /* Wait for adapter transmit buffer. */
- - while((inb(ioaddr+TANG_CARD_STATUS)&TANG_TX_READY)==0)
- - cpu_relax();
- -
- - /* Output IO length. */
- - outb(skb->len, ioaddr);
- - if(lp->board == DAYNA)
- - outb(skb->len >> 8, ioaddr);
- - else
- - outb((skb->len >> 8)&0x0FF, ioaddr);
- -
- - /* Output IO code. */
- - outb(LAP_WRITE, ioaddr);
- -
- - if(lp->board == DAYNA) /* Check the transmit buffer again. */
- - while((inb(ioaddr+DAYNA_CARD_STATUS)&DAYNA_TX_READY)==0);
- -
- - outsb(ioaddr, skb->data, skb->len); /* Send out the data. */
- -
- - if(lp->board==DAYNA) /* Dayna requires you kick the card */
- - outb(1, ioaddr+DAYNA_INT_CARD);
- -
- - spin_unlock_irqrestore(&lp->lock, flags); /* Restore interrupts. */
- -
- - /* Done sending packet, update counters and cleanup. */
- - dev->stats.tx_packets++;
- - dev->stats.tx_bytes += skb->len;
- - dev_kfree_skb (skb);
- - return NETDEV_TX_OK;
- -}
- -
- -/*
- - * Dummy function to keep the Appletalk layer happy.
- - */
- -
- -static void set_multicast_list(struct net_device *dev)
- -{
- - if(cops_debug >= 3)
- - printk("%s: set_multicast_list executed\n", dev->name);
- -}
- -
- -/*
- - * System ioctls for the COPS LocalTalk card.
- - */
- -
- -static int cops_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
- -{
- - struct cops_local *lp = netdev_priv(dev);
- - struct sockaddr_at *sa = (struct sockaddr_at *)&ifr->ifr_addr;
- - struct atalk_addr *aa = &lp->node_addr;
- -
- - switch(cmd)
- - {
- - case SIOCSIFADDR:
- - /* Get and set the nodeid and network # atalkd wants. */
- - cops_nodeid(dev, sa->sat_addr.s_node);
- - aa->s_net = sa->sat_addr.s_net;
- - aa->s_node = lp->node_acquire;
- -
- - /* Set broardcast address. */
- - dev->broadcast[0] = 0xFF;
- -
- - /* Set hardware address. */
- - dev->dev_addr[0] = aa->s_node;
- - dev->addr_len = 1;
- - return 0;
- -
- - case SIOCGIFADDR:
- - sa->sat_addr.s_net = aa->s_net;
- - sa->sat_addr.s_node = aa->s_node;
- - return 0;
- -
- - default:
- - return -EOPNOTSUPP;
- - }
- -}
- -
- -/*
- - * The inverse routine to cops_open().
- - */
- -
- -static int cops_close(struct net_device *dev)
- -{
- - struct cops_local *lp = netdev_priv(dev);
- -
- - /* If we were running polled, yank the timer.
- - */
- - if(lp->board==TANGENT && dev->irq==0)
- - del_timer(&cops_timer);
- -
- - netif_stop_queue(dev);
- - return 0;
- -}
- -
- -
- -#ifdef MODULE
- -static struct net_device *cops_dev;
- -
- -MODULE_LICENSE("GPL");
- -module_param_hw(io, int, ioport, 0);
- -module_param_hw(irq, int, irq, 0);
- -module_param_hw(board_type, int, other, 0);
- -
- -static int __init cops_module_init(void)
- -{
- - if (io == 0)
- - printk(KERN_WARNING "%s: You shouldn't autoprobe with insmod\n",
- - cardname);
- - cops_dev = cops_probe(-1);
- - return PTR_ERR_OR_ZERO(cops_dev);
- -}
- -
- -static void __exit cops_module_exit(void)
- -{
- - unregister_netdev(cops_dev);
- - cleanup_card(cops_dev);
- - free_netdev(cops_dev);
- -}
- -module_init(cops_module_init);
- -module_exit(cops_module_exit);
- -#endif /* MODULE */
- diff -ruN ../linux-4.14.336/drivers/net/appletalk/cops.h ./drivers/net/appletalk/cops.h
- --- linux-4.14.336/../linux-4.14.336/drivers/net/appletalk/cops.h 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./drivers/net/appletalk/cops.h 1970-01-01 01:00:00.000000000 +0100
- @@ -1,61 +0,0 @@
- -/* SPDX-License-Identifier: GPL-2.0 */
- -/* cops.h: LocalTalk driver for Linux.
- - *
- - * Authors:
- - * - Jay Schulist <jschlst@samba.org>
- - */
- -
- -#ifndef __LINUX_COPSLTALK_H
- -#define __LINUX_COPSLTALK_H
- -
- -#ifdef __KERNEL__
- -
- -/* Max LLAP size we will accept. */
- -#define MAX_LLAP_SIZE 603
- -
- -/* Tangent */
- -#define TANG_CARD_STATUS 1
- -#define TANG_CLEAR_INT 1
- -#define TANG_RESET 3
- -
- -#define TANG_TX_READY 1
- -#define TANG_RX_READY 2
- -
- -/* Dayna */
- -#define DAYNA_CMD_DATA 0
- -#define DAYNA_CLEAR_INT 1
- -#define DAYNA_CARD_STATUS 2
- -#define DAYNA_INT_CARD 3
- -#define DAYNA_RESET 4
- -
- -#define DAYNA_RX_READY 0
- -#define DAYNA_TX_READY 1
- -#define DAYNA_RX_REQUEST 3
- -
- -/* Same on both card types */
- -#define COPS_CLEAR_INT 1
- -
- -/* LAP response codes received from the cards. */
- -#define LAP_INIT 1 /* Init cmd */
- -#define LAP_INIT_RSP 2 /* Init response */
- -#define LAP_WRITE 3 /* Write cmd */
- -#define DATA_READ 4 /* Data read */
- -#define LAP_RESPONSE 4 /* Received ALAP frame response */
- -#define LAP_GETSTAT 5 /* Get LAP and HW status */
- -#define LAP_RSPSTAT 6 /* Status response */
- -
- -#endif
- -
- -/*
- - * Structure to hold the firmware information.
- - */
- -struct ltfirmware
- -{
- - unsigned int length;
- - const unsigned char *data;
- -};
- -
- -#define DAYNA 1
- -#define TANGENT 2
- -
- -#endif
- diff -ruN ../linux-4.14.336/drivers/net/appletalk/cops_ffdrv.h ./drivers/net/appletalk/cops_ffdrv.h
- --- linux-4.14.336/../linux-4.14.336/drivers/net/appletalk/cops_ffdrv.h 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./drivers/net/appletalk/cops_ffdrv.h 1970-01-01 01:00:00.000000000 +0100
- @@ -1,532 +0,0 @@
- -
- -/*
- - * The firmware this driver downloads into the Localtalk card is a
- - * separate program and is not GPL'd source code, even though the Linux
- - * side driver and the routine that loads this data into the card are.
- - *
- - * It is taken from the COPS SDK and is under the following license
- - *
- - * This material is licensed to you strictly for use in conjunction with
- - * the use of COPS LocalTalk adapters.
- - * There is no charge for this SDK. And no waranty express or implied
- - * about its fitness for any purpose. However, we will cheerefully
- - * refund every penny you paid for this SDK...
- - * Regards,
- - *
- - * Thomas F. Divine
- - * Chief Scientist
- - */
- -
- -
- -/* cops_ffdrv.h: LocalTalk driver firmware dump for Linux.
- - *
- - * Authors:
- - * - Jay Schulist <jschlst@samba.org>
- - */
- -
- -
- -#ifdef CONFIG_COPS_DAYNA
- -
- -static const unsigned char ffdrv_code[] = {
- - 58,3,0,50,228,149,33,255,255,34,226,149,
- - 249,17,40,152,33,202,154,183,237,82,77,68,
- - 11,107,98,19,54,0,237,176,175,50,80,0,
- - 62,128,237,71,62,32,237,57,51,62,12,237,
- - 57,50,237,57,54,62,6,237,57,52,62,12,
- - 237,57,49,33,107,137,34,32,128,33,83,130,
- - 34,40,128,33,86,130,34,42,128,33,112,130,
- - 34,36,128,33,211,130,34,38,128,62,0,237,
- - 57,16,33,63,148,34,34,128,237,94,205,15,
- - 130,251,205,168,145,24,141,67,111,112,121,114,
- - 105,103,104,116,32,40,67,41,32,49,57,56,
- - 56,32,45,32,68,97,121,110,97,32,67,111,
- - 109,109,117,110,105,99,97,116,105,111,110,115,
- - 32,32,32,65,108,108,32,114,105,103,104,116,
- - 115,32,114,101,115,101,114,118,101,100,46,32,
- - 32,40,68,40,68,7,16,8,34,7,22,6,
- - 16,5,12,4,8,3,6,140,0,16,39,128,
- - 0,4,96,10,224,6,0,7,126,2,64,11,
- - 118,12,6,13,0,14,193,15,0,5,96,3,
- - 192,1,64,9,8,62,9,211,66,62,192,211,
- - 66,62,100,61,32,253,6,28,33,205,129,14,
- - 66,237,163,194,253,129,6,28,33,205,129,14,
- - 64,237,163,194,9,130,201,62,47,50,71,152,
- - 62,47,211,68,58,203,129,237,57,20,58,204,
- - 129,237,57,21,33,77,152,54,132,205,233,129,
- - 58,228,149,254,209,40,6,56,4,62,0,24,
- - 2,219,96,33,233,149,119,230,62,33,232,149,
- - 119,213,33,8,152,17,7,0,25,119,19,25,
- - 119,209,201,251,237,77,245,197,213,229,221,229,
- - 205,233,129,62,1,50,106,137,205,158,139,221,
- - 225,225,209,193,241,251,237,77,245,197,213,219,
- - 72,237,56,16,230,46,237,57,16,237,56,12,
- - 58,72,152,183,32,26,6,20,17,128,2,237,
- - 56,46,187,32,35,237,56,47,186,32,29,219,
- - 72,230,1,32,3,5,32,232,175,50,72,152,
- - 229,221,229,62,1,50,106,137,205,158,139,221,
- - 225,225,24,25,62,1,50,72,152,58,201,129,
- - 237,57,12,58,202,129,237,57,13,237,56,16,
- - 246,17,237,57,16,209,193,241,251,237,77,245,
- - 197,229,213,221,229,237,56,16,230,17,237,57,
- - 16,237,56,20,58,34,152,246,16,246,8,211,
- - 68,62,6,61,32,253,58,34,152,246,8,211,
- - 68,58,203,129,237,57,20,58,204,129,237,57,
- - 21,237,56,16,246,34,237,57,16,221,225,209,
- - 225,193,241,251,237,77,33,2,0,57,126,230,
- - 3,237,100,1,40,2,246,128,230,130,245,62,
- - 5,211,64,241,211,64,201,229,213,243,237,56,
- - 16,230,46,237,57,16,237,56,12,251,70,35,
- - 35,126,254,175,202,77,133,254,129,202,15,133,
- - 230,128,194,191,132,43,58,44,152,119,33,76,
- - 152,119,35,62,132,119,120,254,255,40,4,58,
- - 49,152,119,219,72,43,43,112,17,3,0,237,
- - 56,52,230,248,237,57,52,219,72,230,1,194,
- - 141,131,209,225,237,56,52,246,6,237,57,52,
- - 62,1,55,251,201,62,3,211,66,62,192,211,
- - 66,62,48,211,66,0,0,219,66,230,1,40,
- - 4,219,67,24,240,205,203,135,58,75,152,254,
- - 255,202,128,132,58,49,152,254,161,250,207,131,
- - 58,34,152,211,68,62,10,211,66,62,128,211,
- - 66,62,11,211,66,62,6,211,66,24,0,62,
- - 14,211,66,62,33,211,66,62,1,211,66,62,
- - 64,211,66,62,3,211,66,62,209,211,66,62,
- - 100,71,219,66,230,1,32,6,5,32,247,195,
- - 248,132,219,67,71,58,44,152,184,194,248,132,
- - 62,100,71,219,66,230,1,32,6,5,32,247,
- - 195,248,132,219,67,62,100,71,219,66,230,1,
- - 32,6,5,32,247,195,248,132,219,67,254,133,
- - 32,7,62,0,50,74,152,24,17,254,173,32,
- - 7,62,1,50,74,152,24,6,254,141,194,248,
- - 132,71,209,225,58,49,152,254,132,32,10,62,
- - 50,205,2,134,205,144,135,24,27,254,140,32,
- - 15,62,110,205,2,134,62,141,184,32,5,205,
- - 144,135,24,8,62,10,205,2,134,205,8,134,
- - 62,1,50,106,137,205,158,139,237,56,52,246,
- - 6,237,57,52,175,183,251,201,62,20,135,237,
- - 57,20,175,237,57,21,237,56,16,246,2,237,
- - 57,16,237,56,20,95,237,56,21,123,254,10,
- - 48,244,237,56,16,230,17,237,57,16,209,225,
- - 205,144,135,62,1,50,106,137,205,158,139,237,
- - 56,52,246,6,237,57,52,175,183,251,201,209,
- - 225,243,219,72,230,1,40,13,62,10,211,66,
- - 0,0,219,66,230,192,202,226,132,237,56,52,
- - 246,6,237,57,52,62,1,55,251,201,205,203,
- - 135,62,1,50,106,137,205,158,139,237,56,52,
- - 246,6,237,57,52,183,251,201,209,225,62,1,
- - 50,106,137,205,158,139,237,56,52,246,6,237,
- - 57,52,62,2,55,251,201,209,225,243,219,72,
- - 230,1,202,213,132,62,10,211,66,0,0,219,
- - 66,230,192,194,213,132,229,62,1,50,106,137,
- - 42,40,152,205,65,143,225,17,3,0,205,111,
- - 136,62,6,211,66,58,44,152,211,66,237,56,
- - 52,246,6,237,57,52,183,251,201,209,197,237,
- - 56,52,230,248,237,57,52,219,72,230,1,32,
- - 15,193,225,237,56,52,246,6,237,57,52,62,
- - 1,55,251,201,14,23,58,37,152,254,0,40,
- - 14,14,2,254,1,32,5,62,140,119,24,3,
- - 62,132,119,43,43,197,205,203,135,193,62,1,
- - 211,66,62,64,211,66,62,3,211,66,62,193,
- - 211,66,62,100,203,39,71,219,66,230,1,32,
- - 6,5,32,247,195,229,133,33,238,151,219,67,
- - 71,58,44,152,184,194,229,133,119,62,100,71,
- - 219,66,230,1,32,6,5,32,247,195,229,133,
- - 219,67,35,119,13,32,234,193,225,62,1,50,
- - 106,137,205,158,139,237,56,52,246,6,237,57,
- - 52,175,183,251,201,33,234,151,35,35,62,255,
- - 119,193,225,62,1,50,106,137,205,158,139,237,
- - 56,52,246,6,237,57,52,175,251,201,243,61,
- - 32,253,251,201,62,3,211,66,62,192,211,66,
- - 58,49,152,254,140,32,19,197,229,213,17,181,
- - 129,33,185,129,1,2,0,237,176,209,225,193,
- - 24,27,229,213,33,187,129,58,49,152,230,15,
- - 87,30,2,237,92,25,17,181,129,126,18,19,
- - 35,126,18,209,225,58,34,152,246,8,211,68,
- - 58,49,152,254,165,40,14,254,164,40,10,62,
- - 10,211,66,62,224,211,66,24,25,58,74,152,
- - 254,0,40,10,62,10,211,66,62,160,211,66,
- - 24,8,62,10,211,66,62,128,211,66,62,11,
- - 211,66,62,6,211,66,205,147,143,62,5,211,
- - 66,62,224,211,66,62,5,211,66,62,96,211,
- - 66,62,5,61,32,253,62,5,211,66,62,224,
- - 211,66,62,14,61,32,253,62,5,211,66,62,
- - 233,211,66,62,128,211,66,58,181,129,61,32,
- - 253,62,1,211,66,62,192,211,66,1,254,19,
- - 237,56,46,187,32,6,13,32,247,195,226,134,
- - 62,192,211,66,0,0,219,66,203,119,40,250,
- - 219,66,203,87,40,250,243,237,56,16,230,17,
- - 237,57,16,237,56,20,251,62,5,211,66,62,
- - 224,211,66,58,182,129,61,32,253,229,33,181,
- - 129,58,183,129,203,63,119,35,58,184,129,119,
- - 225,62,10,211,66,62,224,211,66,62,11,211,
- - 66,62,118,211,66,62,47,211,68,62,5,211,
- - 66,62,233,211,66,58,181,129,61,32,253,62,
- - 5,211,66,62,224,211,66,58,182,129,61,32,
- - 253,62,5,211,66,62,96,211,66,201,229,213,
- - 58,50,152,230,15,87,30,2,237,92,33,187,
- - 129,25,17,181,129,126,18,35,19,126,18,209,
- - 225,58,71,152,246,8,211,68,58,50,152,254,
- - 165,40,14,254,164,40,10,62,10,211,66,62,
- - 224,211,66,24,8,62,10,211,66,62,128,211,
- - 66,62,11,211,66,62,6,211,66,195,248,135,
- - 62,3,211,66,62,192,211,66,197,229,213,17,
- - 181,129,33,183,129,1,2,0,237,176,209,225,
- - 193,62,47,211,68,62,10,211,66,62,224,211,
- - 66,62,11,211,66,62,118,211,66,62,1,211,
- - 66,62,0,211,66,205,147,143,195,16,136,62,
- - 3,211,66,62,192,211,66,197,229,213,17,181,
- - 129,33,183,129,1,2,0,237,176,209,225,193,
- - 62,47,211,68,62,10,211,66,62,224,211,66,
- - 62,11,211,66,62,118,211,66,205,147,143,62,
- - 5,211,66,62,224,211,66,62,5,211,66,62,
- - 96,211,66,62,5,61,32,253,62,5,211,66,
- - 62,224,211,66,62,14,61,32,253,62,5,211,
- - 66,62,233,211,66,62,128,211,66,58,181,129,
- - 61,32,253,62,1,211,66,62,192,211,66,1,
- - 254,19,237,56,46,187,32,6,13,32,247,195,
- - 88,136,62,192,211,66,0,0,219,66,203,119,
- - 40,250,219,66,203,87,40,250,62,5,211,66,
- - 62,224,211,66,58,182,129,61,32,253,62,5,
- - 211,66,62,96,211,66,201,197,14,67,6,0,
- - 62,3,211,66,62,192,211,66,62,48,211,66,
- - 0,0,219,66,230,1,40,4,219,67,24,240,
- - 62,5,211,66,62,233,211,66,62,128,211,66,
- - 58,181,129,61,32,253,237,163,29,62,192,211,
- - 66,219,66,230,4,40,250,237,163,29,32,245,
- - 219,66,230,4,40,250,62,255,71,219,66,230,
- - 4,40,3,5,32,247,219,66,230,4,40,250,
- - 62,5,211,66,62,224,211,66,58,182,129,61,
- - 32,253,62,5,211,66,62,96,211,66,58,71,
- - 152,254,1,202,18,137,62,16,211,66,62,56,
- - 211,66,62,14,211,66,62,33,211,66,62,1,
- - 211,66,62,248,211,66,237,56,48,246,153,230,
- - 207,237,57,48,62,3,211,66,62,221,211,66,
- - 193,201,58,71,152,211,68,62,10,211,66,62,
- - 128,211,66,62,11,211,66,62,6,211,66,62,
- - 6,211,66,58,44,152,211,66,62,16,211,66,
- - 62,56,211,66,62,48,211,66,0,0,62,14,
- - 211,66,62,33,211,66,62,1,211,66,62,248,
- - 211,66,237,56,48,246,145,246,8,230,207,237,
- - 57,48,62,3,211,66,62,221,211,66,193,201,
- - 44,3,1,0,70,69,1,245,197,213,229,175,
- - 50,72,152,237,56,16,230,46,237,57,16,237,
- - 56,12,62,1,211,66,0,0,219,66,95,230,
- - 160,32,3,195,20,139,123,230,96,194,72,139,
- - 62,48,211,66,62,1,211,66,62,64,211,66,
- - 237,91,40,152,205,207,143,25,43,55,237,82,
- - 218,70,139,34,42,152,98,107,58,44,152,190,
- - 194,210,138,35,35,62,130,190,194,200,137,62,
- - 1,50,48,152,62,175,190,202,82,139,62,132,
- - 190,32,44,50,50,152,62,47,50,71,152,229,
- - 175,50,106,137,42,40,152,205,65,143,225,54,
- - 133,43,70,58,44,152,119,43,112,17,3,0,
- - 62,10,205,2,134,205,111,136,195,158,138,62,
- - 140,190,32,19,50,50,152,58,233,149,230,4,
- - 202,222,138,62,1,50,71,152,195,219,137,126,
- - 254,160,250,185,138,254,166,242,185,138,50,50,
- - 152,43,126,35,229,213,33,234,149,95,22,0,
- - 25,126,254,132,40,18,254,140,40,14,58,50,
- - 152,230,15,87,126,31,21,242,65,138,56,2,
- - 175,119,58,50,152,230,15,87,58,233,149,230,
- - 62,31,21,242,85,138,218,98,138,209,225,195,
- - 20,139,58,50,152,33,100,137,230,15,95,22,
- - 0,25,126,50,71,152,209,225,58,50,152,254,
- - 164,250,135,138,58,73,152,254,0,40,4,54,
- - 173,24,2,54,133,43,70,58,44,152,119,43,
- - 112,17,3,0,205,70,135,175,50,106,137,205,
- - 208,139,58,199,129,237,57,12,58,200,129,237,
- - 57,13,237,56,16,246,17,237,57,16,225,209,
- - 193,241,251,237,77,62,129,190,194,227,138,54,
- - 130,43,70,58,44,152,119,43,112,17,3,0,
- - 205,144,135,195,20,139,35,35,126,254,132,194,
- - 227,138,175,50,106,137,205,158,139,24,42,58,
- - 201,154,254,1,40,7,62,1,50,106,137,24,
- - 237,58,106,137,254,1,202,222,138,62,128,166,
- - 194,222,138,221,229,221,33,67,152,205,127,142,
- - 205,109,144,221,225,225,209,193,241,251,237,77,
- - 58,106,137,254,1,202,44,139,58,50,152,254,
- - 164,250,44,139,58,73,152,238,1,50,73,152,
- - 221,229,221,33,51,152,205,127,142,221,225,62,
- - 1,50,106,137,205,158,139,195,13,139,24,208,
- - 24,206,24,204,230,64,40,3,195,20,139,195,
- - 20,139,43,126,33,8,152,119,35,58,44,152,
- - 119,43,237,91,35,152,205,203,135,205,158,139,
- - 195,13,139,175,50,78,152,62,3,211,66,62,
- - 192,211,66,201,197,33,4,0,57,126,35,102,
- - 111,62,1,50,106,137,219,72,205,141,139,193,
- - 201,62,1,50,78,152,34,40,152,54,0,35,
- - 35,54,0,195,163,139,58,78,152,183,200,229,
- - 33,181,129,58,183,129,119,35,58,184,129,119,
- - 225,62,47,211,68,62,14,211,66,62,193,211,
- - 66,62,10,211,66,62,224,211,66,62,11,211,
- - 66,62,118,211,66,195,3,140,58,78,152,183,
- - 200,58,71,152,211,68,254,69,40,4,254,70,
- - 32,17,58,73,152,254,0,40,10,62,10,211,
- - 66,62,160,211,66,24,8,62,10,211,66,62,
- - 128,211,66,62,11,211,66,62,6,211,66,62,
- - 6,211,66,58,44,152,211,66,62,16,211,66,
- - 62,56,211,66,62,48,211,66,0,0,219,66,
- - 230,1,40,4,219,67,24,240,62,14,211,66,
- - 62,33,211,66,42,40,152,205,65,143,62,1,
- - 211,66,62,248,211,66,237,56,48,246,145,246,
- - 8,230,207,237,57,48,62,3,211,66,62,221,
- - 211,66,201,62,16,211,66,62,56,211,66,62,
- - 48,211,66,0,0,219,66,230,1,40,4,219,
- - 67,24,240,62,14,211,66,62,33,211,66,62,
- - 1,211,66,62,248,211,66,237,56,48,246,153,
- - 230,207,237,57,48,62,3,211,66,62,221,211,
- - 66,201,229,213,33,234,149,95,22,0,25,126,
- - 254,132,40,4,254,140,32,2,175,119,123,209,
- - 225,201,6,8,14,0,31,48,1,12,16,250,
- - 121,201,33,4,0,57,94,35,86,33,2,0,
- - 57,126,35,102,111,221,229,34,89,152,237,83,
- - 91,152,221,33,63,152,205,127,142,58,81,152,
- - 50,82,152,58,80,152,135,50,80,152,205,162,
- - 140,254,3,56,16,58,81,152,135,60,230,15,
- - 50,81,152,175,50,80,152,24,23,58,79,152,
- - 205,162,140,254,3,48,13,58,81,152,203,63,
- - 50,81,152,62,255,50,79,152,58,81,152,50,
- - 82,152,58,79,152,135,50,79,152,62,32,50,
- - 83,152,50,84,152,237,56,16,230,17,237,57,
- - 16,219,72,62,192,50,93,152,62,93,50,94,
- - 152,58,93,152,61,50,93,152,32,9,58,94,
- - 152,61,50,94,152,40,44,62,170,237,57,20,
- - 175,237,57,21,237,56,16,246,2,237,57,16,
- - 219,72,230,1,202,29,141,237,56,20,71,237,
- - 56,21,120,254,10,48,237,237,56,16,230,17,
- - 237,57,16,243,62,14,211,66,62,65,211,66,
- - 251,58,39,152,23,23,60,50,39,152,71,58,
- - 82,152,160,230,15,40,22,71,14,10,219,66,
- - 230,16,202,186,141,219,72,230,1,202,186,141,
- - 13,32,239,16,235,42,89,152,237,91,91,152,
- - 205,47,131,48,7,61,202,186,141,195,227,141,
- - 221,225,33,0,0,201,221,33,55,152,205,127,
- - 142,58,84,152,61,50,84,152,40,19,58,82,
- - 152,246,1,50,82,152,58,79,152,246,1,50,
- - 79,152,195,29,141,221,225,33,1,0,201,221,
- - 33,59,152,205,127,142,58,80,152,246,1,50,
- - 80,152,58,82,152,135,246,1,50,82,152,58,
- - 83,152,61,50,83,152,194,29,141,221,225,33,
- - 2,0,201,221,229,33,0,0,57,17,4,0,
- - 25,126,50,44,152,230,128,50,85,152,58,85,
- - 152,183,40,6,221,33,88,2,24,4,221,33,
- - 150,0,58,44,152,183,40,53,60,40,50,60,
- - 40,47,61,61,33,86,152,119,35,119,35,54,
- - 129,175,50,48,152,221,43,221,229,225,124,181,
- - 40,42,33,86,152,17,3,0,205,189,140,17,
- - 232,3,27,123,178,32,251,58,48,152,183,40,
- - 224,58,44,152,71,62,7,128,230,127,71,58,
- - 85,152,176,50,44,152,24,162,221,225,201,183,
- - 221,52,0,192,221,52,1,192,221,52,2,192,
- - 221,52,3,192,55,201,245,62,1,211,100,241,
- - 201,245,62,1,211,96,241,201,33,2,0,57,
- - 126,35,102,111,237,56,48,230,175,237,57,48,
- - 62,48,237,57,49,125,237,57,32,124,237,57,
- - 33,62,0,237,57,34,62,88,237,57,35,62,
- - 0,237,57,36,237,57,37,33,128,2,125,237,
- - 57,38,124,237,57,39,237,56,48,246,97,230,
- - 207,237,57,48,62,0,237,57,0,62,0,211,
- - 96,211,100,201,33,2,0,57,126,35,102,111,
- - 237,56,48,230,175,237,57,48,62,12,237,57,
- - 49,62,76,237,57,32,62,0,237,57,33,237,
- - 57,34,125,237,57,35,124,237,57,36,62,0,
- - 237,57,37,33,128,2,125,237,57,38,124,237,
- - 57,39,237,56,48,246,97,230,207,237,57,48,
- - 62,1,211,96,201,33,2,0,57,126,35,102,
- - 111,229,237,56,48,230,87,237,57,48,125,237,
- - 57,40,124,237,57,41,62,0,237,57,42,62,
- - 67,237,57,43,62,0,237,57,44,58,106,137,
- - 254,1,32,5,33,6,0,24,3,33,128,2,
- - 125,237,57,46,124,237,57,47,237,56,50,230,
- - 252,246,2,237,57,50,225,201,33,4,0,57,
- - 94,35,86,33,2,0,57,126,35,102,111,237,
- - 56,48,230,87,237,57,48,125,237,57,40,124,
- - 237,57,41,62,0,237,57,42,62,67,237,57,
- - 43,62,0,237,57,44,123,237,57,46,122,237,
- - 57,47,237,56,50,230,244,246,0,237,57,50,
- - 237,56,48,246,145,230,207,237,57,48,201,213,
- - 237,56,46,95,237,56,47,87,237,56,46,111,
- - 237,56,47,103,183,237,82,32,235,33,128,2,
- - 183,237,82,209,201,213,237,56,38,95,237,56,
- - 39,87,237,56,38,111,237,56,39,103,183,237,
- - 82,32,235,33,128,2,183,237,82,209,201,245,
- - 197,1,52,0,237,120,230,253,237,121,193,241,
- - 201,245,197,1,52,0,237,120,246,2,237,121,
- - 193,241,201,33,2,0,57,126,35,102,111,126,
- - 35,110,103,201,33,0,0,34,102,152,34,96,
- - 152,34,98,152,33,202,154,34,104,152,237,91,
- - 104,152,42,226,149,183,237,82,17,0,255,25,
- - 34,100,152,203,124,40,6,33,0,125,34,100,
- - 152,42,104,152,35,35,35,229,205,120,139,193,
- - 201,205,186,149,229,42,40,152,35,35,35,229,
- - 205,39,144,193,124,230,3,103,221,117,254,221,
- - 116,255,237,91,42,152,35,35,35,183,237,82,
- - 32,12,17,5,0,42,42,152,205,171,149,242,
- - 169,144,42,40,152,229,205,120,139,193,195,198,
- - 149,237,91,42,152,42,98,152,25,34,98,152,
- - 19,19,19,42,102,152,25,34,102,152,237,91,
- - 100,152,33,158,253,25,237,91,102,152,205,171,
- - 149,242,214,144,33,0,0,34,102,152,62,1,
- - 50,95,152,205,225,144,195,198,149,58,95,152,
- - 183,200,237,91,96,152,42,102,152,205,171,149,
- - 242,5,145,237,91,102,152,33,98,2,25,237,
- - 91,96,152,205,171,149,250,37,145,237,91,96,
- - 152,42,102,152,183,237,82,32,7,42,98,152,
- - 125,180,40,13,237,91,102,152,42,96,152,205,
- - 171,149,242,58,145,237,91,104,152,42,102,152,
- - 25,35,35,35,229,205,120,139,193,175,50,95,
- - 152,201,195,107,139,205,206,149,250,255,243,205,
- - 225,144,251,58,230,149,183,194,198,149,17,1,
- - 0,42,98,152,205,171,149,250,198,149,62,1,
- - 50,230,149,237,91,96,152,42,104,152,25,221,
- - 117,252,221,116,253,237,91,104,152,42,96,152,
- - 25,35,35,35,221,117,254,221,116,255,35,35,
- - 35,229,205,39,144,124,230,3,103,35,35,35,
- - 221,117,250,221,116,251,235,221,110,252,221,102,
- - 253,115,35,114,35,54,4,62,1,211,100,211,
- - 84,195,198,149,33,0,0,34,102,152,34,96,
- - 152,34,98,152,33,202,154,34,104,152,237,91,
- - 104,152,42,226,149,183,237,82,17,0,255,25,
- - 34,100,152,33,109,152,54,0,33,107,152,229,
- - 205,240,142,193,62,47,50,34,152,62,132,50,
- - 49,152,205,241,145,205,61,145,58,39,152,60,
- - 50,39,152,24,241,205,206,149,251,255,33,109,
- - 152,126,183,202,198,149,110,221,117,251,33,109,
- - 152,54,0,221,126,251,254,1,40,28,254,3,
- - 40,101,254,4,202,190,147,254,5,202,147,147,
- - 254,8,40,87,33,107,152,229,205,240,142,195,
- - 198,149,58,201,154,183,32,21,33,111,152,126,
- - 50,229,149,205,52,144,33,110,152,110,38,0,
- - 229,205,11,142,193,237,91,96,152,42,104,152,
- - 25,221,117,254,221,116,255,35,35,54,2,17,
- - 2,0,43,43,115,35,114,58,44,152,35,35,
- - 119,58,228,149,35,119,62,1,211,100,211,84,
- - 62,1,50,201,154,24,169,205,153,142,58,231,
- - 149,183,40,250,175,50,231,149,33,110,152,126,
- - 254,255,40,91,58,233,149,230,63,183,40,83,
- - 94,22,0,33,234,149,25,126,183,40,13,33,
- - 110,152,94,33,234,150,25,126,254,3,32,36,
- - 205,81,148,125,180,33,110,152,94,22,0,40,
- - 17,33,234,149,25,54,0,33,107,152,229,205,
- - 240,142,193,195,198,149,33,234,150,25,54,0,
- - 33,110,152,94,22,0,33,234,149,25,126,50,
- - 49,152,254,132,32,37,62,47,50,34,152,42,
- - 107,152,229,33,110,152,229,205,174,140,193,193,
- - 125,180,33,110,152,94,22,0,33,234,150,202,
- - 117,147,25,52,195,120,147,58,49,152,254,140,
- - 32,7,62,1,50,34,152,24,210,62,32,50,
- - 106,152,24,19,58,49,152,95,58,106,152,163,
- - 183,58,106,152,32,11,203,63,50,106,152,58,
- - 106,152,183,32,231,254,2,40,51,254,4,40,
- - 38,254,8,40,26,254,16,40,13,254,32,32,
- - 158,62,165,50,49,152,62,69,24,190,62,164,
- - 50,49,152,62,70,24,181,62,163,50,49,152,
- - 175,24,173,62,162,50,49,152,62,1,24,164,
- - 62,161,50,49,152,62,3,24,155,25,54,0,
- - 221,126,251,254,8,40,7,58,230,149,183,202,
- - 32,146,33,107,152,229,205,240,142,193,211,84,
- - 195,198,149,237,91,96,152,42,104,152,25,221,
- - 117,254,221,116,255,35,35,54,6,17,2,0,
- - 43,43,115,35,114,58,228,149,35,35,119,58,
- - 233,149,35,119,205,146,142,195,32,146,237,91,
- - 96,152,42,104,152,25,229,205,160,142,193,58,
- - 231,149,183,40,250,175,50,231,149,243,237,91,
- - 96,152,42,104,152,25,221,117,254,221,116,255,
- - 78,35,70,221,113,252,221,112,253,89,80,42,
- - 98,152,183,237,82,34,98,152,203,124,40,19,
- - 33,0,0,34,98,152,34,102,152,34,96,152,
- - 62,1,50,95,152,24,40,221,94,252,221,86,
- - 253,19,19,19,42,96,152,25,34,96,152,237,
- - 91,100,152,33,158,253,25,237,91,96,152,205,
- - 171,149,242,55,148,33,0,0,34,96,152,175,
- - 50,230,149,251,195,32,146,245,62,1,50,231,
- - 149,62,16,237,57,0,211,80,241,251,237,77,
- - 201,205,186,149,229,229,33,0,0,34,37,152,
- - 33,110,152,126,50,234,151,58,44,152,33,235,
- - 151,119,221,54,253,0,221,54,254,0,195,230,
- - 148,33,236,151,54,175,33,3,0,229,33,234,
- - 151,229,205,174,140,193,193,33,236,151,126,254,
- - 255,40,74,33,245,151,110,221,117,255,33,249,
- - 151,126,221,166,255,221,119,255,33,253,151,126,
- - 221,166,255,221,119,255,58,232,149,95,221,126,
- - 255,163,221,119,255,183,40,15,230,191,33,110,
- - 152,94,22,0,33,234,149,25,119,24,12,33,
- - 110,152,94,22,0,33,234,149,25,54,132,33,
- - 0,0,195,198,149,221,110,253,221,102,254,35,
- - 221,117,253,221,116,254,17,32,0,221,110,253,
- - 221,102,254,205,171,149,250,117,148,58,233,149,
- - 203,87,40,84,33,1,0,34,37,152,221,54,
- - 253,0,221,54,254,0,24,53,33,236,151,54,
- - 175,33,3,0,229,33,234,151,229,205,174,140,
- - 193,193,33,236,151,126,254,255,40,14,33,110,
- - 152,94,22,0,33,234,149,25,54,140,24,159,
- - 221,110,253,221,102,254,35,221,117,253,221,116,
- - 254,17,32,0,221,110,253,221,102,254,205,171,
- - 149,250,12,149,33,2,0,34,37,152,221,54,
- - 253,0,221,54,254,0,24,54,33,236,151,54,
- - 175,33,3,0,229,33,234,151,229,205,174,140,
- - 193,193,33,236,151,126,254,255,40,15,33,110,
- - 152,94,22,0,33,234,149,25,54,132,195,211,
- - 148,221,110,253,221,102,254,35,221,117,253,221,
- - 116,254,17,32,0,221,110,253,221,102,254,205,
- - 171,149,250,96,149,33,1,0,195,198,149,124,
- - 170,250,179,149,237,82,201,124,230,128,237,82,
- - 60,201,225,253,229,221,229,221,33,0,0,221,
- - 57,233,221,249,221,225,253,225,201,233,225,253,
- - 229,221,229,221,33,0,0,221,57,94,35,86,
- - 35,235,57,249,235,233,0,0,0,0,0,0,
- - 62,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 175,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,133,1,0,0,0,63,
- - 255,255,255,255,0,0,0,63,0,0,0,0,
- - 0,0,0,0,0,0,0,24,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0
- - } ;
- -
- -#endif
- diff -ruN ../linux-4.14.336/drivers/net/appletalk/cops_ltdrv.h ./drivers/net/appletalk/cops_ltdrv.h
- --- linux-4.14.336/../linux-4.14.336/drivers/net/appletalk/cops_ltdrv.h 2024-01-10 14:45:41.000000000 +0100
- +++ linux-4.14.336/./drivers/net/appletalk/cops_ltdrv.h 1970-01-01 01:00:00.000000000 +0100
- @@ -1,241 +0,0 @@
- -/*
- - * The firmware this driver downloads into the Localtalk card is a
- - * separate program and is not GPL'd source code, even though the Linux
- - * side driver and the routine that loads this data into the card are.
- - *
- - * It is taken from the COPS SDK and is under the following license
- - *
- - * This material is licensed to you strictly for use in conjunction with
- - * the use of COPS LocalTalk adapters.
- - * There is no charge for this SDK. And no waranty express or implied
- - * about its fitness for any purpose. However, we will cheerefully
- - * refund every penny you paid for this SDK...
- - * Regards,
- - *
- - * Thomas F. Divine
- - * Chief Scientist
- - */
- -
- -
- -/* cops_ltdrv.h: LocalTalk driver firmware dump for Linux.
- - *
- - * Authors:
- - * - Jay Schulist <jschlst@samba.org>
- - */
- -
- -
- -#ifdef CONFIG_COPS_TANGENT
- -
- -static const unsigned char ltdrv_code[] = {
- - 58,3,0,50,148,10,33,143,15,62,85,119,
- - 190,32,9,62,170,119,190,32,3,35,24,241,
- - 34,146,10,249,17,150,10,33,143,15,183,237,
- - 82,77,68,11,107,98,19,54,0,237,176,62,
- - 16,237,57,51,62,0,237,57,50,237,57,54,
- - 62,12,237,57,49,62,195,33,39,2,50,56,
- - 0,34,57,0,237,86,205,30,2,251,205,60,
- - 10,24,169,67,111,112,121,114,105,103,104,116,
- - 32,40,99,41,32,49,57,56,56,45,49,57,
- - 57,50,44,32,80,114,105,110,116,105,110,103,
- - 32,67,111,109,109,117,110,105,99,97,116,105,
- - 111,110,115,32,65,115,115,111,99,105,97,116,
- - 101,115,44,32,73,110,99,46,65,108,108,32,
- - 114,105,103,104,116,115,32,114,101,115,101,114,
- - 118,101,100,46,32,32,4,4,22,40,255,60,
- - 4,96,10,224,6,0,7,126,2,64,11,246,
- - 12,6,13,0,14,193,15,0,5,96,3,192,
- - 1,0,9,8,62,3,211,82,62,192,211,82,
- - 201,62,3,211,82,62,213,211,82,201,62,5,
- - 211,82,62,224,211,82,201,62,5,211,82,62,
- - 224,211,82,201,62,5,211,82,62,96,211,82,
- - 201,6,28,33,180,1,14,82,237,163,194,4,
- - 2,33,39,2,34,64,0,58,3,0,230,1,
- - 192,62,11,237,121,62,118,237,121,201,33,182,
- - 10,54,132,205,253,1,201,245,197,213,229,42,
- - 150,10,14,83,17,98,2,67,20,237,162,58,
- - 179,1,95,219,82,230,1,32,6,29,32,247,
- - 195,17,3,62,1,211,82,219,82,95,230,160,
- - 32,10,237,162,32,225,21,32,222,195,15,3,
- - 237,162,123,230,96,194,21,3,62,48,211,82,
- - 62,1,211,82,175,211,82,237,91,150,10,43,
- - 55,237,82,218,19,3,34,152,10,98,107,58,
- - 154,10,190,32,81,62,1,50,158,10,35,35,
- - 62,132,190,32,44,54,133,43,70,58,154,10,
- - 119,43,112,17,3,0,205,137,3,62,16,211,
- - 82,62,56,211,82,205,217,1,42,150,10,14,
- - 83,17,98,2,67,20,58,178,1,95,195,59,
- - 2,62,129,190,194,227,2,54,130,43,70,58,
- - 154,10,119,43,112,17,3,0,205,137,3,195,
- - 254,2,35,35,126,254,132,194,227,2,205,61,
- - 3,24,20,62,128,166,194,222,2,221,229,221,
- - 33,175,10,205,93,6,205,144,7,221,225,225,
- - 209,193,241,251,237,77,221,229,221,33,159,10,
- - 205,93,6,221,225,205,61,3,195,247,2,24,
- - 237,24,235,24,233,230,64,40,2,24,227,24,
- - 225,175,50,179,10,205,208,1,201,197,33,4,
- - 0,57,126,35,102,111,205,51,3,193,201,62,
- - 1,50,179,10,34,150,10,54,0,58,179,10,
- - 183,200,62,14,211,82,62,193,211,82,62,10,
- - 211,82,62,224,211,82,62,6,211,82,58,154,
- - 10,211,82,62,16,211,82,62,56,211,82,62,
- - 48,211,82,219,82,230,1,40,4,219,83,24,
- - 242,62,14,211,82,62,33,211,82,62,1,211,
- - 82,62,9,211,82,62,32,211,82,205,217,1,
- - 201,14,83,205,208,1,24,23,14,83,205,208,
- - 1,205,226,1,58,174,1,61,32,253,205,244,
- - 1,58,174,1,61,32,253,205,226,1,58,175,
- - 1,61,32,253,62,5,211,82,62,233,211,82,
- - 62,128,211,82,58,176,1,61,32,253,237,163,
- - 27,62,192,211,82,219,82,230,4,40,250,237,
- - 163,27,122,179,32,243,219,82,230,4,40,250,
- - 58,178,1,71,219,82,230,4,40,3,5,32,
- - 247,219,82,230,4,40,250,205,235,1,58,177,
- - 1,61,32,253,205,244,1,201,229,213,35,35,
- - 126,230,128,194,145,4,43,58,154,10,119,43,
- - 70,33,181,10,119,43,112,17,3,0,243,62,
- - 10,211,82,219,82,230,128,202,41,4,209,225,
- - 62,1,55,251,201,205,144,3,58,180,10,254,
- - 255,202,127,4,205,217,1,58,178,1,71,219,
- - 82,230,1,32,6,5,32,247,195,173,4,219,
- - 83,71,58,154,10,184,194,173,4,58,178,1,
- - 71,219,82,230,1,32,6,5,32,247,195,173,
- - 4,219,83,58,178,1,71,219,82,230,1,32,
- - 6,5,32,247,195,173,4,219,83,254,133,194,
- - 173,4,58,179,1,24,4,58,179,1,135,61,
- - 32,253,209,225,205,137,3,205,61,3,183,251,
- - 201,209,225,243,62,10,211,82,219,82,230,128,
- - 202,164,4,62,1,55,251,201,205,144,3,205,
- - 61,3,183,251,201,209,225,62,2,55,251,201,
- - 243,62,14,211,82,62,33,211,82,251,201,33,
- - 4,0,57,94,35,86,33,2,0,57,126,35,
- - 102,111,221,229,34,193,10,237,83,195,10,221,
- - 33,171,10,205,93,6,58,185,10,50,186,10,
- - 58,184,10,135,50,184,10,205,112,6,254,3,
- - 56,16,58,185,10,135,60,230,15,50,185,10,
- - 175,50,184,10,24,23,58,183,10,205,112,6,
- - 254,3,48,13,58,185,10,203,63,50,185,10,
- - 62,255,50,183,10,58,185,10,50,186,10,58,
- - 183,10,135,50,183,10,62,32,50,187,10,50,
- - 188,10,6,255,219,82,230,16,32,3,5,32,
- - 247,205,180,4,6,40,219,82,230,16,40,3,
- - 5,32,247,62,10,211,82,219,82,230,128,194,
- - 46,5,219,82,230,16,40,214,237,95,71,58,
- - 186,10,160,230,15,40,32,71,14,10,62,10,
- - 211,82,219,82,230,128,202,119,5,205,180,4,
- - 195,156,5,219,82,230,16,202,156,5,13,32,
- - 229,16,225,42,193,10,237,91,195,10,205,252,
- - 3,48,7,61,202,156,5,195,197,5,221,225,
- - 33,0,0,201,221,33,163,10,205,93,6,58,
- - 188,10,61,50,188,10,40,19,58,186,10,246,
- - 1,50,186,10,58,183,10,246,1,50,183,10,
- - 195,46,5,221,225,33,1,0,201,221,33,167,
- - 10,205,93,6,58,184,10,246,1,50,184,10,
- - 58,186,10,135,246,1,50,186,10,58,187,10,
- - 61,50,187,10,194,46,5,221,225,33,2,0,
- - 201,221,229,33,0,0,57,17,4,0,25,126,
- - 50,154,10,230,128,50,189,10,58,189,10,183,
- - 40,6,221,33,88,2,24,4,221,33,150,0,
- - 58,154,10,183,40,49,60,40,46,61,33,190,
- - 10,119,35,119,35,54,129,175,50,158,10,221,
- - 43,221,229,225,124,181,40,42,33,190,10,17,
- - 3,0,205,206,4,17,232,3,27,123,178,32,
- - 251,58,158,10,183,40,224,58,154,10,71,62,
- - 7,128,230,127,71,58,189,10,176,50,154,10,
- - 24,166,221,225,201,183,221,52,0,192,221,52,
- - 1,192,221,52,2,192,221,52,3,192,55,201,
- - 6,8,14,0,31,48,1,12,16,250,121,201,
- - 33,2,0,57,94,35,86,35,78,35,70,35,
- - 126,35,102,105,79,120,68,103,237,176,201,33,
- - 2,0,57,126,35,102,111,62,17,237,57,48,
- - 125,237,57,40,124,237,57,41,62,0,237,57,
- - 42,62,64,237,57,43,62,0,237,57,44,33,
- - 128,2,125,237,57,46,124,237,57,47,62,145,
- - 237,57,48,211,68,58,149,10,211,66,201,33,
- - 2,0,57,126,35,102,111,62,33,237,57,48,
- - 62,64,237,57,32,62,0,237,57,33,237,57,
- - 34,125,237,57,35,124,237,57,36,62,0,237,
- - 57,37,33,128,2,125,237,57,38,124,237,57,
- - 39,62,97,237,57,48,211,67,58,149,10,211,
- - 66,201,237,56,46,95,237,56,47,87,237,56,
- - 46,111,237,56,47,103,183,237,82,32,235,33,
- - 128,2,183,237,82,201,237,56,38,95,237,56,
- - 39,87,237,56,38,111,237,56,39,103,183,237,
- - 82,32,235,33,128,2,183,237,82,201,205,106,
- - 10,221,110,6,221,102,7,126,35,110,103,195,
- - 118,10,205,106,10,33,0,0,34,205,10,34,
- - 198,10,34,200,10,33,143,15,34,207,10,237,
- - 91,207,10,42,146,10,183,237,82,17,0,255,
- - 25,34,203,10,203,124,40,6,33,0,125,34,
- - 203,10,42,207,10,229,205,37,3,195,118,10,
- - 205,106,10,229,42,150,10,35,35,35,229,205,
- - 70,7,193,124,230,3,103,221,117,254,221,116,
- - 255,237,91,152,10,35,35,35,183,237,82,32,
- - 12,17,5,0,42,152,10,205,91,10,242,203,
- - 7,42,150,10,229,205,37,3,195,118,10,237,
- - 91,152,10,42,200,10,25,34,200,10,42,205,
- - 10,25,34,205,10,237,91,203,10,33,158,253,
- - 25,237,91,205,10,205,91,10,242,245,7,33,
- - 0,0,34,205,10,62,1,50,197,10,205,5,
- - 8,33,0,0,57,249,195,118,10,205,106,10,
- - 58,197,10,183,202,118,10,237,91,198,10,42,
- - 205,10,205,91,10,242,46,8,237,91,205,10,
- - 33,98,2,25,237,91,198,10,205,91,10,250,
- - 78,8,237,91,198,10,42,205,10,183,237,82,
- - 32,7,42,200,10,125,180,40,13,237,91,205,
- - 10,42,198,10,205,91,10,242,97,8,237,91,
- - 207,10,42,205,10,25,229,205,37,3,175,50,
- - 197,10,195,118,10,205,29,3,33,0,0,57,
- - 249,195,118,10,205,106,10,58,202,10,183,40,
- - 22,205,14,7,237,91,209,10,19,19,19,205,
- - 91,10,242,139,8,33,1,0,195,118,10,33,
- - 0,0,195,118,10,205,126,10,252,255,205,108,
- - 8,125,180,194,118,10,237,91,200,10,33,0,
- - 0,205,91,10,242,118,10,237,91,207,10,42,
- - 198,10,25,221,117,254,221,116,255,35,35,35,
- - 229,205,70,7,193,124,230,3,103,35,35,35,
- - 221,117,252,221,116,253,229,221,110,254,221,102,
- - 255,229,33,212,10,229,205,124,6,193,193,221,
- - 110,252,221,102,253,34,209,10,33,211,10,54,
- - 4,33,209,10,227,205,147,6,193,62,1,50,
- - 202,10,243,221,94,252,221,86,253,42,200,10,
- - 183,237,82,34,200,10,203,124,40,17,33,0,
- - 0,34,200,10,34,205,10,34,198,10,50,197,
- - 10,24,37,221,94,252,221,86,253,42,198,10,
- - 25,34,198,10,237,91,203,10,33,158,253,25,
- - 237,91,198,10,205,91,10,242,68,9,33,0,
- - 0,34,198,10,205,5,8,33,0,0,57,249,
- - 251,195,118,10,205,106,10,33,49,13,126,183,
- - 40,16,205,42,7,237,91,47,13,19,19,19,
- - 205,91,10,242,117,9,58,142,15,198,1,50,
- - 142,15,195,118,10,33,49,13,126,254,1,40,
- - 25,254,3,202,7,10,254,5,202,21,10,33,
- - 49,13,54,0,33,47,13,229,205,207,6,195,
- - 118,10,58,141,15,183,32,72,33,51,13,126,
- - 50,149,10,205,86,7,33,50,13,126,230,127,
- - 183,32,40,58,142,15,230,127,50,142,15,183,
- - 32,5,198,1,50,142,15,33,50,13,126,111,
- - 23,159,103,203,125,58,142,15,40,5,198,128,
- - 50,142,15,33,50,13,119,33,50,13,126,111,
- - 23,159,103,229,205,237,5,193,33,211,10,54,
- - 2,33,2,0,34,209,10,58,154,10,33,212,
- - 10,119,58,148,10,33,213,10,119,33,209,10,
- - 229,205,147,6,193,24,128,42,47,13,229,33,
- - 50,13,229,205,191,4,193,24,239,33,211,10,
- - 54,6,33,3,0,34,209,10,58,154,10,33,
- - 212,10,119,58,148,10,33,213,10,119,33,214,
- - 10,54,5,33,209,10,229,205,147,6,24,200,
- - 205,106,10,33,49,13,54,0,33,47,13,229,
- - 205,207,6,33,209,10,227,205,147,6,193,205,
- - 80,9,205,145,8,24,248,124,170,250,99,10,
- - 237,82,201,124,230,128,237,82,60,201,225,253,
- - 229,221,229,221,33,0,0,221,57,233,221,249,
- - 221,225,253,225,201,233,225,253,229,221,229,221,
- - 33,0,0,221,57,94,35,86,35,235,57,249,
- - 235,233,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0,0,0,0,0,0,0,0,
- - 0,0,0,0,0
- - } ;
- -
- -#endif