logo

live-bootstrap

Mirror of <https://github.com/fosslinux/live-bootstrap>

deblob.patch (290298B)


  1. SPDX-FileCopyrightText: 2024 Gábor Stefanik <netrolller.3d@gmail.com>
  2. SPDX-License-Identifier: GPL-2.0-only
  3. Remove drivers containing embedded blobs
  4. diff -ruN ../linux-4.14.336/Documentation/networking/cops.txt ./Documentation/networking/cops.txt
  5. --- linux-4.14.336/../linux-4.14.336/Documentation/networking/cops.txt 2024-01-10 14:45:41.000000000 +0100
  6. +++ linux-4.14.336/./Documentation/networking/cops.txt 1970-01-01 01:00:00.000000000 +0100
  7. @@ -1,63 +0,0 @@
  8. -Text File for the COPS LocalTalk Linux driver (cops.c).
  9. - By Jay Schulist <jschlst@samba.org>
  10. -
  11. -This driver has two modes and they are: Dayna mode and Tangent mode.
  12. -Each mode corresponds with the type of card. It has been found
  13. -that there are 2 main types of cards and all other cards are
  14. -the same and just have different names or only have minor differences
  15. -such as more IO ports. As this driver is tested it will
  16. -become more clear exactly what cards are supported.
  17. -
  18. -Right now these cards are known to work with the COPS driver. The
  19. -LT-200 cards work in a somewhat more limited capacity than the
  20. -DL200 cards, which work very well and are in use by many people.
  21. -
  22. -TANGENT driver mode:
  23. - Tangent ATB-II, Novell NL-1000, Daystar Digital LT-200
  24. -DAYNA driver mode:
  25. - Dayna DL2000/DaynaTalk PC (Half Length), COPS LT-95,
  26. - Farallon PhoneNET PC III, Farallon PhoneNET PC II
  27. -Other cards possibly supported mode unknown though:
  28. - Dayna DL2000 (Full length)
  29. -
  30. -The COPS driver defaults to using Dayna mode. To change the driver's
  31. -mode if you built a driver with dual support use board_type=1 or
  32. -board_type=2 for Dayna or Tangent with insmod.
  33. -
  34. -** Operation/loading of the driver.
  35. -Use modprobe like this: /sbin/modprobe cops.o (IO #) (IRQ #)
  36. -If you do not specify any options the driver will try and use the IO = 0x240,
  37. -IRQ = 5. As of right now I would only use IRQ 5 for the card, if autoprobing.
  38. -
  39. -To load multiple COPS driver Localtalk cards you can do one of the following.
  40. -
  41. -insmod cops io=0x240 irq=5
  42. -insmod -o cops2 cops io=0x260 irq=3
  43. -
  44. -Or in lilo.conf put something like this:
  45. - append="ether=5,0x240,lt0 ether=3,0x260,lt1"
  46. -
  47. -Then bring up the interface with ifconfig. It will look something like this:
  48. -lt0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-F7-00-00-00-00-00-00-00-00
  49. - inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
  50. - UP BROADCAST RUNNING NOARP MULTICAST MTU:600 Metric:1
  51. - RX packets:0 errors:0 dropped:0 overruns:0 frame:0
  52. - TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 coll:0
  53. -
  54. -** Netatalk Configuration
  55. -You will need to configure atalkd with something like the following to make
  56. -it work with the cops.c driver.
  57. -
  58. -* For single LTalk card use.
  59. -dummy -seed -phase 2 -net 2000 -addr 2000.10 -zone "1033"
  60. -lt0 -seed -phase 1 -net 1000 -addr 1000.50 -zone "1033"
  61. -
  62. -* For multiple cards, Ethernet and LocalTalk.
  63. -eth0 -seed -phase 2 -net 3000 -addr 3000.20 -zone "1033"
  64. -lt0 -seed -phase 1 -net 1000 -addr 1000.50 -zone "1033"
  65. -
  66. -* For multiple LocalTalk cards, and an Ethernet card.
  67. -* Order seems to matter here, Ethernet last.
  68. -lt0 -seed -phase 1 -net 1000 -addr 1000.10 -zone "LocalTalk1"
  69. -lt1 -seed -phase 1 -net 2000 -addr 2000.20 -zone "LocalTalk2"
  70. -eth0 -seed -phase 2 -net 3000 -addr 3000.30 -zone "EtherTalk"
  71. diff -ruN ../linux-4.14.336/arch/powerpc/include/asm/cpm1.h ./arch/powerpc/include/asm/cpm1.h
  72. --- linux-4.14.336/../linux-4.14.336/arch/powerpc/include/asm/cpm1.h 2024-01-10 14:45:41.000000000 +0100
  73. +++ linux-4.14.336/./arch/powerpc/include/asm/cpm1.h 2024-02-14 20:39:09.131692114 +0100
  74. @@ -56,8 +56,6 @@
  75. extern void cpm_setbrg(uint brg, uint rate);
  76. -extern void __init cpm_load_patch(cpm8xx_t *cp);
  77. -
  78. extern void cpm_reset(void);
  79. /* Parameter RAM offsets.
  80. diff -ruN ../linux-4.14.336/arch/powerpc/platforms/8xx/Kconfig ./arch/powerpc/platforms/8xx/Kconfig
  81. --- linux-4.14.336/../linux-4.14.336/arch/powerpc/platforms/8xx/Kconfig 2024-01-10 14:45:41.000000000 +0100
  82. +++ linux-4.14.336/./arch/powerpc/platforms/8xx/Kconfig 2024-02-14 21:00:16.561611905 +0100
  83. @@ -145,35 +145,4 @@
  84. If in doubt, say Y here.
  85. -choice
  86. - prompt "Microcode patch selection"
  87. - default NO_UCODE_PATCH
  88. - help
  89. - Help not implemented yet, coming soon.
  90. -
  91. -config NO_UCODE_PATCH
  92. - bool "None"
  93. -
  94. -config USB_SOF_UCODE_PATCH
  95. - bool "USB SOF patch"
  96. - help
  97. - Help not implemented yet, coming soon.
  98. -
  99. -config I2C_SPI_UCODE_PATCH
  100. - bool "I2C/SPI relocation patch"
  101. - help
  102. - Help not implemented yet, coming soon.
  103. -
  104. -config I2C_SPI_SMC1_UCODE_PATCH
  105. - bool "I2C/SPI/SMC1 relocation patch"
  106. - help
  107. - Help not implemented yet, coming soon.
  108. -
  109. -endchoice
  110. -
  111. -config UCODE_PATCH
  112. - bool
  113. - default y
  114. - depends on !NO_UCODE_PATCH
  115. -
  116. endmenu
  117. diff -ruN ../linux-4.14.336/arch/powerpc/sysdev/Makefile ./arch/powerpc/sysdev/Makefile
  118. --- linux-4.14.336/../linux-4.14.336/arch/powerpc/sysdev/Makefile 2024-01-10 14:45:41.000000000 +0100
  119. +++ linux-4.14.336/./arch/powerpc/sysdev/Makefile 2024-02-14 20:37:04.311700569 +0100
  120. @@ -46,7 +46,6 @@
  121. obj-$(CONFIG_CPM2) += cpm2.o cpm2_pic.o
  122. obj-$(CONFIG_QUICC_ENGINE) += cpm_common.o
  123. obj-$(CONFIG_PPC_DCR) += dcr.o
  124. -obj-$(CONFIG_UCODE_PATCH) += micropatch.o
  125. obj-$(CONFIG_PPC_MPC512x) += mpc5xxx_clocks.o
  126. obj-$(CONFIG_PPC_MPC52xx) += mpc5xxx_clocks.o
  127. diff -ruN ../linux-4.14.336/arch/powerpc/sysdev/cpm1.c ./arch/powerpc/sysdev/cpm1.c
  128. --- linux-4.14.336/../linux-4.14.336/arch/powerpc/sysdev/cpm1.c 2024-01-10 14:45:41.000000000 +0100
  129. +++ linux-4.14.336/./arch/powerpc/sysdev/cpm1.c 2024-02-14 20:38:38.041694200 +0100
  130. @@ -218,10 +218,6 @@
  131. while (in_be16(&cpmp->cp_cpcr) & CPM_CR_FLG);
  132. #endif
  133. -#ifdef CONFIG_UCODE_PATCH
  134. - cpm_load_patch(cpmp);
  135. -#endif
  136. -
  137. /* Set SDMA Bus Request priority 5.
  138. * On 860T, this also enables FEC priority 6. I am not sure
  139. * this is what we really want for some applications, but the
  140. diff -ruN ../linux-4.14.336/arch/powerpc/sysdev/micropatch.c ./arch/powerpc/sysdev/micropatch.c
  141. --- linux-4.14.336/../linux-4.14.336/arch/powerpc/sysdev/micropatch.c 2024-01-10 14:45:41.000000000 +0100
  142. +++ linux-4.14.336/./arch/powerpc/sysdev/micropatch.c 1970-01-01 01:00:00.000000000 +0100
  143. @@ -1,749 +0,0 @@
  144. -// SPDX-License-Identifier: GPL-2.0
  145. -
  146. -/* Microcode patches for the CPM as supplied by Motorola.
  147. - * This is the one for IIC/SPI. There is a newer one that
  148. - * also relocates SMC2, but this would require additional changes
  149. - * to uart.c, so I am holding off on that for a moment.
  150. - */
  151. -#include <linux/init.h>
  152. -#include <linux/errno.h>
  153. -#include <linux/sched.h>
  154. -#include <linux/kernel.h>
  155. -#include <linux/param.h>
  156. -#include <linux/string.h>
  157. -#include <linux/mm.h>
  158. -#include <linux/interrupt.h>
  159. -#include <asm/irq.h>
  160. -#include <asm/page.h>
  161. -#include <asm/pgtable.h>
  162. -#include <asm/8xx_immap.h>
  163. -#include <asm/cpm.h>
  164. -#include <asm/cpm1.h>
  165. -
  166. -/*
  167. - * I2C/SPI relocation patch arrays.
  168. - */
  169. -
  170. -#ifdef CONFIG_I2C_SPI_UCODE_PATCH
  171. -
  172. -static uint patch_2000[] __initdata = {
  173. - 0x7FFFEFD9,
  174. - 0x3FFD0000,
  175. - 0x7FFB49F7,
  176. - 0x7FF90000,
  177. - 0x5FEFADF7,
  178. - 0x5F89ADF7,
  179. - 0x5FEFAFF7,
  180. - 0x5F89AFF7,
  181. - 0x3A9CFBC8,
  182. - 0xE7C0EDF0,
  183. - 0x77C1E1BB,
  184. - 0xF4DC7F1D,
  185. - 0xABAD932F,
  186. - 0x4E08FDCF,
  187. - 0x6E0FAFF8,
  188. - 0x7CCF76CF,
  189. - 0xFD1FF9CF,
  190. - 0xABF88DC6,
  191. - 0xAB5679F7,
  192. - 0xB0937383,
  193. - 0xDFCE79F7,
  194. - 0xB091E6BB,
  195. - 0xE5BBE74F,
  196. - 0xB3FA6F0F,
  197. - 0x6FFB76CE,
  198. - 0xEE0DF9CF,
  199. - 0x2BFBEFEF,
  200. - 0xCFEEF9CF,
  201. - 0x76CEAD24,
  202. - 0x90B2DF9A,
  203. - 0x7FDDD0BF,
  204. - 0x4BF847FD,
  205. - 0x7CCF76CE,
  206. - 0xCFEF7E1F,
  207. - 0x7F1D7DFD,
  208. - 0xF0B6EF71,
  209. - 0x7FC177C1,
  210. - 0xFBC86079,
  211. - 0xE722FBC8,
  212. - 0x5FFFDFFF,
  213. - 0x5FB2FFFB,
  214. - 0xFBC8F3C8,
  215. - 0x94A67F01,
  216. - 0x7F1D5F39,
  217. - 0xAFE85F5E,
  218. - 0xFFDFDF96,
  219. - 0xCB9FAF7D,
  220. - 0x5FC1AFED,
  221. - 0x8C1C5FC1,
  222. - 0xAFDD5FC3,
  223. - 0xDF9A7EFD,
  224. - 0xB0B25FB2,
  225. - 0xFFFEABAD,
  226. - 0x5FB2FFFE,
  227. - 0x5FCE600B,
  228. - 0xE6BB600B,
  229. - 0x5FCEDFC6,
  230. - 0x27FBEFDF,
  231. - 0x5FC8CFDE,
  232. - 0x3A9CE7C0,
  233. - 0xEDF0F3C8,
  234. - 0x7F0154CD,
  235. - 0x7F1D2D3D,
  236. - 0x363A7570,
  237. - 0x7E0AF1CE,
  238. - 0x37EF2E68,
  239. - 0x7FEE10EC,
  240. - 0xADF8EFDE,
  241. - 0xCFEAE52F,
  242. - 0x7D0FE12B,
  243. - 0xF1CE5F65,
  244. - 0x7E0A4DF8,
  245. - 0xCFEA5F72,
  246. - 0x7D0BEFEE,
  247. - 0xCFEA5F74,
  248. - 0xE522EFDE,
  249. - 0x5F74CFDA,
  250. - 0x0B627385,
  251. - 0xDF627E0A,
  252. - 0x30D8145B,
  253. - 0xBFFFF3C8,
  254. - 0x5FFFDFFF,
  255. - 0xA7F85F5E,
  256. - 0xBFFE7F7D,
  257. - 0x10D31450,
  258. - 0x5F36BFFF,
  259. - 0xAF785F5E,
  260. - 0xBFFDA7F8,
  261. - 0x5F36BFFE,
  262. - 0x77FD30C0,
  263. - 0x4E08FDCF,
  264. - 0xE5FF6E0F,
  265. - 0xAFF87E1F,
  266. - 0x7E0FFD1F,
  267. - 0xF1CF5F1B,
  268. - 0xABF80D5E,
  269. - 0x5F5EFFEF,
  270. - 0x79F730A2,
  271. - 0xAFDD5F34,
  272. - 0x47F85F34,
  273. - 0xAFED7FDD,
  274. - 0x50B24978,
  275. - 0x47FD7F1D,
  276. - 0x7DFD70AD,
  277. - 0xEF717EC1,
  278. - 0x6BA47F01,
  279. - 0x2D267EFD,
  280. - 0x30DE5F5E,
  281. - 0xFFFD5F5E,
  282. - 0xFFEF5F5E,
  283. - 0xFFDF0CA0,
  284. - 0xAFED0A9E,
  285. - 0xAFDD0C3A,
  286. - 0x5F3AAFBD,
  287. - 0x7FBDB082,
  288. - 0x5F8247F8
  289. -};
  290. -
  291. -static uint patch_2f00[] __initdata = {
  292. - 0x3E303430,
  293. - 0x34343737,
  294. - 0xABF7BF9B,
  295. - 0x994B4FBD,
  296. - 0xBD599493,
  297. - 0x349FFF37,
  298. - 0xFB9B177D,
  299. - 0xD9936956,
  300. - 0xBBFDD697,
  301. - 0xBDD2FD11,
  302. - 0x31DB9BB3,
  303. - 0x63139637,
  304. - 0x93733693,
  305. - 0x193137F7,
  306. - 0x331737AF,
  307. - 0x7BB9B999,
  308. - 0xBB197957,
  309. - 0x7FDFD3D5,
  310. - 0x73B773F7,
  311. - 0x37933B99,
  312. - 0x1D115316,
  313. - 0x99315315,
  314. - 0x31694BF4,
  315. - 0xFBDBD359,
  316. - 0x31497353,
  317. - 0x76956D69,
  318. - 0x7B9D9693,
  319. - 0x13131979,
  320. - 0x79376935
  321. -};
  322. -#endif
  323. -
  324. -/*
  325. - * I2C/SPI/SMC1 relocation patch arrays.
  326. - */
  327. -
  328. -#ifdef CONFIG_I2C_SPI_SMC1_UCODE_PATCH
  329. -
  330. -static uint patch_2000[] __initdata = {
  331. - 0x3fff0000,
  332. - 0x3ffd0000,
  333. - 0x3ffb0000,
  334. - 0x3ff90000,
  335. - 0x5f13eff8,
  336. - 0x5eb5eff8,
  337. - 0x5f88adf7,
  338. - 0x5fefadf7,
  339. - 0x3a9cfbc8,
  340. - 0x77cae1bb,
  341. - 0xf4de7fad,
  342. - 0xabae9330,
  343. - 0x4e08fdcf,
  344. - 0x6e0faff8,
  345. - 0x7ccf76cf,
  346. - 0xfdaff9cf,
  347. - 0xabf88dc8,
  348. - 0xab5879f7,
  349. - 0xb0925d8d,
  350. - 0xdfd079f7,
  351. - 0xb090e6bb,
  352. - 0xe5bbe74f,
  353. - 0x9e046f0f,
  354. - 0x6ffb76ce,
  355. - 0xee0cf9cf,
  356. - 0x2bfbefef,
  357. - 0xcfeef9cf,
  358. - 0x76cead23,
  359. - 0x90b3df99,
  360. - 0x7fddd0c1,
  361. - 0x4bf847fd,
  362. - 0x7ccf76ce,
  363. - 0xcfef77ca,
  364. - 0x7eaf7fad,
  365. - 0x7dfdf0b7,
  366. - 0xef7a7fca,
  367. - 0x77cafbc8,
  368. - 0x6079e722,
  369. - 0xfbc85fff,
  370. - 0xdfff5fb3,
  371. - 0xfffbfbc8,
  372. - 0xf3c894a5,
  373. - 0xe7c9edf9,
  374. - 0x7f9a7fad,
  375. - 0x5f36afe8,
  376. - 0x5f5bffdf,
  377. - 0xdf95cb9e,
  378. - 0xaf7d5fc3,
  379. - 0xafed8c1b,
  380. - 0x5fc3afdd,
  381. - 0x5fc5df99,
  382. - 0x7efdb0b3,
  383. - 0x5fb3fffe,
  384. - 0xabae5fb3,
  385. - 0xfffe5fd0,
  386. - 0x600be6bb,
  387. - 0x600b5fd0,
  388. - 0xdfc827fb,
  389. - 0xefdf5fca,
  390. - 0xcfde3a9c,
  391. - 0xe7c9edf9,
  392. - 0xf3c87f9e,
  393. - 0x54ca7fed,
  394. - 0x2d3a3637,
  395. - 0x756f7e9a,
  396. - 0xf1ce37ef,
  397. - 0x2e677fee,
  398. - 0x10ebadf8,
  399. - 0xefdecfea,
  400. - 0xe52f7d9f,
  401. - 0xe12bf1ce,
  402. - 0x5f647e9a,
  403. - 0x4df8cfea,
  404. - 0x5f717d9b,
  405. - 0xefeecfea,
  406. - 0x5f73e522,
  407. - 0xefde5f73,
  408. - 0xcfda0b61,
  409. - 0x5d8fdf61,
  410. - 0xe7c9edf9,
  411. - 0x7e9a30d5,
  412. - 0x1458bfff,
  413. - 0xf3c85fff,
  414. - 0xdfffa7f8,
  415. - 0x5f5bbffe,
  416. - 0x7f7d10d0,
  417. - 0x144d5f33,
  418. - 0xbfffaf78,
  419. - 0x5f5bbffd,
  420. - 0xa7f85f33,
  421. - 0xbffe77fd,
  422. - 0x30bd4e08,
  423. - 0xfdcfe5ff,
  424. - 0x6e0faff8,
  425. - 0x7eef7e9f,
  426. - 0xfdeff1cf,
  427. - 0x5f17abf8,
  428. - 0x0d5b5f5b,
  429. - 0xffef79f7,
  430. - 0x309eafdd,
  431. - 0x5f3147f8,
  432. - 0x5f31afed,
  433. - 0x7fdd50af,
  434. - 0x497847fd,
  435. - 0x7f9e7fed,
  436. - 0x7dfd70a9,
  437. - 0xef7e7ece,
  438. - 0x6ba07f9e,
  439. - 0x2d227efd,
  440. - 0x30db5f5b,
  441. - 0xfffd5f5b,
  442. - 0xffef5f5b,
  443. - 0xffdf0c9c,
  444. - 0xafed0a9a,
  445. - 0xafdd0c37,
  446. - 0x5f37afbd,
  447. - 0x7fbdb081,
  448. - 0x5f8147f8,
  449. - 0x3a11e710,
  450. - 0xedf0ccdd,
  451. - 0xf3186d0a,
  452. - 0x7f0e5f06,
  453. - 0x7fedbb38,
  454. - 0x3afe7468,
  455. - 0x7fedf4fc,
  456. - 0x8ffbb951,
  457. - 0xb85f77fd,
  458. - 0xb0df5ddd,
  459. - 0xdefe7fed,
  460. - 0x90e1e74d,
  461. - 0x6f0dcbf7,
  462. - 0xe7decfed,
  463. - 0xcb74cfed,
  464. - 0xcfeddf6d,
  465. - 0x91714f74,
  466. - 0x5dd2deef,
  467. - 0x9e04e7df,
  468. - 0xefbb6ffb,
  469. - 0xe7ef7f0e,
  470. - 0x9e097fed,
  471. - 0xebdbeffa,
  472. - 0xeb54affb,
  473. - 0x7fea90d7,
  474. - 0x7e0cf0c3,
  475. - 0xbffff318,
  476. - 0x5fffdfff,
  477. - 0xac59efea,
  478. - 0x7fce1ee5,
  479. - 0xe2ff5ee1,
  480. - 0xaffbe2ff,
  481. - 0x5ee3affb,
  482. - 0xf9cc7d0f,
  483. - 0xaef8770f,
  484. - 0x7d0fb0c6,
  485. - 0xeffbbfff,
  486. - 0xcfef5ede,
  487. - 0x7d0fbfff,
  488. - 0x5ede4cf8,
  489. - 0x7fddd0bf,
  490. - 0x49f847fd,
  491. - 0x7efdf0bb,
  492. - 0x7fedfffd,
  493. - 0x7dfdf0b7,
  494. - 0xef7e7e1e,
  495. - 0x5ede7f0e,
  496. - 0x3a11e710,
  497. - 0xedf0ccab,
  498. - 0xfb18ad2e,
  499. - 0x1ea9bbb8,
  500. - 0x74283b7e,
  501. - 0x73c2e4bb,
  502. - 0x2ada4fb8,
  503. - 0xdc21e4bb,
  504. - 0xb2a1ffbf,
  505. - 0x5e2c43f8,
  506. - 0xfc87e1bb,
  507. - 0xe74ffd91,
  508. - 0x6f0f4fe8,
  509. - 0xc7ba32e2,
  510. - 0xf396efeb,
  511. - 0x600b4f78,
  512. - 0xe5bb760b,
  513. - 0x53acaef8,
  514. - 0x4ef88b0e,
  515. - 0xcfef9e09,
  516. - 0xabf8751f,
  517. - 0xefef5bac,
  518. - 0x741f4fe8,
  519. - 0x751e760d,
  520. - 0x7fdbf081,
  521. - 0x741cafce,
  522. - 0xefcc7fce,
  523. - 0x751e70ac,
  524. - 0x741ce7bb,
  525. - 0x3372cfed,
  526. - 0xafdbefeb,
  527. - 0xe5bb760b,
  528. - 0x53f2aef8,
  529. - 0xafe8e7eb,
  530. - 0x4bf8771e,
  531. - 0x7e247fed,
  532. - 0x4fcbe2cc,
  533. - 0x7fbc30a9,
  534. - 0x7b0f7a0f,
  535. - 0x34d577fd,
  536. - 0x308b5db7,
  537. - 0xde553e5f,
  538. - 0xaf78741f,
  539. - 0x741f30f0,
  540. - 0xcfef5e2c,
  541. - 0x741f3eac,
  542. - 0xafb8771e,
  543. - 0x5e677fed,
  544. - 0x0bd3e2cc,
  545. - 0x741ccfec,
  546. - 0xe5ca53cd,
  547. - 0x6fcb4f74,
  548. - 0x5dadde4b,
  549. - 0x2ab63d38,
  550. - 0x4bb3de30,
  551. - 0x751f741c,
  552. - 0x6c42effa,
  553. - 0xefea7fce,
  554. - 0x6ffc30be,
  555. - 0xefec3fca,
  556. - 0x30b3de2e,
  557. - 0xadf85d9e,
  558. - 0xaf7daefd,
  559. - 0x5d9ede2e,
  560. - 0x5d9eafdd,
  561. - 0x761f10ac,
  562. - 0x1da07efd,
  563. - 0x30adfffe,
  564. - 0x4908fb18,
  565. - 0x5fffdfff,
  566. - 0xafbb709b,
  567. - 0x4ef85e67,
  568. - 0xadf814ad,
  569. - 0x7a0f70ad,
  570. - 0xcfef50ad,
  571. - 0x7a0fde30,
  572. - 0x5da0afed,
  573. - 0x3c12780f,
  574. - 0xefef780f,
  575. - 0xefef790f,
  576. - 0xa7f85e0f,
  577. - 0xffef790f,
  578. - 0xefef790f,
  579. - 0x14adde2e,
  580. - 0x5d9eadfd,
  581. - 0x5e2dfffb,
  582. - 0xe79addfd,
  583. - 0xeff96079,
  584. - 0x607ae79a,
  585. - 0xddfceff9,
  586. - 0x60795dff,
  587. - 0x607acfef,
  588. - 0xefefefdf,
  589. - 0xefbfef7f,
  590. - 0xeeffedff,
  591. - 0xebffe7ff,
  592. - 0xafefafdf,
  593. - 0xafbfaf7f,
  594. - 0xaeffadff,
  595. - 0xabffa7ff,
  596. - 0x6fef6fdf,
  597. - 0x6fbf6f7f,
  598. - 0x6eff6dff,
  599. - 0x6bff67ff,
  600. - 0x2fef2fdf,
  601. - 0x2fbf2f7f,
  602. - 0x2eff2dff,
  603. - 0x2bff27ff,
  604. - 0x4e08fd1f,
  605. - 0xe5ff6e0f,
  606. - 0xaff87eef,
  607. - 0x7e0ffdef,
  608. - 0xf11f6079,
  609. - 0xabf8f542,
  610. - 0x7e0af11c,
  611. - 0x37cfae3a,
  612. - 0x7fec90be,
  613. - 0xadf8efdc,
  614. - 0xcfeae52f,
  615. - 0x7d0fe12b,
  616. - 0xf11c6079,
  617. - 0x7e0a4df8,
  618. - 0xcfea5dc4,
  619. - 0x7d0befec,
  620. - 0xcfea5dc6,
  621. - 0xe522efdc,
  622. - 0x5dc6cfda,
  623. - 0x4e08fd1f,
  624. - 0x6e0faff8,
  625. - 0x7c1f761f,
  626. - 0xfdeff91f,
  627. - 0x6079abf8,
  628. - 0x761cee24,
  629. - 0xf91f2bfb,
  630. - 0xefefcfec,
  631. - 0xf91f6079,
  632. - 0x761c27fb,
  633. - 0xefdf5da7,
  634. - 0xcfdc7fdd,
  635. - 0xd09c4bf8,
  636. - 0x47fd7c1f,
  637. - 0x761ccfcf,
  638. - 0x7eef7fed,
  639. - 0x7dfdf093,
  640. - 0xef7e7f1e,
  641. - 0x771efb18,
  642. - 0x6079e722,
  643. - 0xe6bbe5bb,
  644. - 0xae0ae5bb,
  645. - 0x600bae85,
  646. - 0xe2bbe2bb,
  647. - 0xe2bbe2bb,
  648. - 0xaf02e2bb,
  649. - 0xe2bb2ff9,
  650. - 0x6079e2bb
  651. -};
  652. -
  653. -static uint patch_2f00[] __initdata = {
  654. - 0x30303030,
  655. - 0x3e3e3434,
  656. - 0xabbf9b99,
  657. - 0x4b4fbdbd,
  658. - 0x59949334,
  659. - 0x9fff37fb,
  660. - 0x9b177dd9,
  661. - 0x936956bb,
  662. - 0xfbdd697b,
  663. - 0xdd2fd113,
  664. - 0x1db9f7bb,
  665. - 0x36313963,
  666. - 0x79373369,
  667. - 0x3193137f,
  668. - 0x7331737a,
  669. - 0xf7bb9b99,
  670. - 0x9bb19795,
  671. - 0x77fdfd3d,
  672. - 0x573b773f,
  673. - 0x737933f7,
  674. - 0xb991d115,
  675. - 0x31699315,
  676. - 0x31531694,
  677. - 0xbf4fbdbd,
  678. - 0x35931497,
  679. - 0x35376956,
  680. - 0xbd697b9d,
  681. - 0x96931313,
  682. - 0x19797937,
  683. - 0x6935af78,
  684. - 0xb9b3baa3,
  685. - 0xb8788683,
  686. - 0x368f78f7,
  687. - 0x87778733,
  688. - 0x3ffffb3b,
  689. - 0x8e8f78b8,
  690. - 0x1d118e13,
  691. - 0xf3ff3f8b,
  692. - 0x6bd8e173,
  693. - 0xd1366856,
  694. - 0x68d1687b,
  695. - 0x3daf78b8,
  696. - 0x3a3a3f87,
  697. - 0x8f81378f,
  698. - 0xf876f887,
  699. - 0x77fd8778,
  700. - 0x737de8d6,
  701. - 0xbbf8bfff,
  702. - 0xd8df87f7,
  703. - 0xfd876f7b,
  704. - 0x8bfff8bd,
  705. - 0x8683387d,
  706. - 0xb873d87b,
  707. - 0x3b8fd7f8,
  708. - 0xf7338883,
  709. - 0xbb8ee1f8,
  710. - 0xef837377,
  711. - 0x3337b836,
  712. - 0x817d11f8,
  713. - 0x7378b878,
  714. - 0xd3368b7d,
  715. - 0xed731b7d,
  716. - 0x833731f3,
  717. - 0xf22f3f23
  718. -};
  719. -
  720. -static uint patch_2e00[] __initdata = {
  721. - 0x27eeeeee,
  722. - 0xeeeeeeee,
  723. - 0xeeeeeeee,
  724. - 0xeeeeeeee,
  725. - 0xee4bf4fb,
  726. - 0xdbd259bb,
  727. - 0x1979577f,
  728. - 0xdfd2d573,
  729. - 0xb773f737,
  730. - 0x4b4fbdbd,
  731. - 0x25b9b177,
  732. - 0xd2d17376,
  733. - 0x956bbfdd,
  734. - 0x697bdd2f,
  735. - 0xff9f79ff,
  736. - 0xff9ff22f
  737. -};
  738. -#endif
  739. -
  740. -/*
  741. - * USB SOF patch arrays.
  742. - */
  743. -
  744. -#ifdef CONFIG_USB_SOF_UCODE_PATCH
  745. -
  746. -static uint patch_2000[] __initdata = {
  747. - 0x7fff0000,
  748. - 0x7ffd0000,
  749. - 0x7ffb0000,
  750. - 0x49f7ba5b,
  751. - 0xba383ffb,
  752. - 0xf9b8b46d,
  753. - 0xe5ab4e07,
  754. - 0xaf77bffe,
  755. - 0x3f7bbf79,
  756. - 0xba5bba38,
  757. - 0xe7676076,
  758. - 0x60750000
  759. -};
  760. -
  761. -static uint patch_2f00[] __initdata = {
  762. - 0x3030304c,
  763. - 0xcab9e441,
  764. - 0xa1aaf220
  765. -};
  766. -#endif
  767. -
  768. -void __init cpm_load_patch(cpm8xx_t *cp)
  769. -{
  770. - volatile uint *dp; /* Dual-ported RAM. */
  771. - volatile cpm8xx_t *commproc;
  772. -#if defined(CONFIG_I2C_SPI_UCODE_PATCH) || \
  773. - defined(CONFIG_I2C_SPI_SMC1_UCODE_PATCH)
  774. - volatile iic_t *iip;
  775. - volatile struct spi_pram *spp;
  776. -#ifdef CONFIG_I2C_SPI_SMC1_UCODE_PATCH
  777. - volatile smc_uart_t *smp;
  778. -#endif
  779. -#endif
  780. - int i;
  781. -
  782. - commproc = cp;
  783. -
  784. -#ifdef CONFIG_USB_SOF_UCODE_PATCH
  785. - commproc->cp_rccr = 0;
  786. -
  787. - dp = (uint *)(commproc->cp_dpmem);
  788. - for (i=0; i<(sizeof(patch_2000)/4); i++)
  789. - *dp++ = patch_2000[i];
  790. -
  791. - dp = (uint *)&(commproc->cp_dpmem[0x0f00]);
  792. - for (i=0; i<(sizeof(patch_2f00)/4); i++)
  793. - *dp++ = patch_2f00[i];
  794. -
  795. - commproc->cp_rccr = 0x0009;
  796. -
  797. - printk("USB SOF microcode patch installed\n");
  798. -#endif /* CONFIG_USB_SOF_UCODE_PATCH */
  799. -
  800. -#if defined(CONFIG_I2C_SPI_UCODE_PATCH) || \
  801. - defined(CONFIG_I2C_SPI_SMC1_UCODE_PATCH)
  802. -
  803. - commproc->cp_rccr = 0;
  804. -
  805. - dp = (uint *)(commproc->cp_dpmem);
  806. - for (i=0; i<(sizeof(patch_2000)/4); i++)
  807. - *dp++ = patch_2000[i];
  808. -
  809. - dp = (uint *)&(commproc->cp_dpmem[0x0f00]);
  810. - for (i=0; i<(sizeof(patch_2f00)/4); i++)
  811. - *dp++ = patch_2f00[i];
  812. -
  813. - iip = (iic_t *)&commproc->cp_dparam[PROFF_IIC];
  814. -# define RPBASE 0x0500
  815. - iip->iic_rpbase = RPBASE;
  816. -
  817. - /* Put SPI above the IIC, also 32-byte aligned.
  818. - */
  819. - i = (RPBASE + sizeof(iic_t) + 31) & ~31;
  820. - spp = (struct spi_pram *)&commproc->cp_dparam[PROFF_SPI];
  821. - spp->rpbase = i;
  822. -
  823. -# if defined(CONFIG_I2C_SPI_UCODE_PATCH)
  824. - commproc->cp_cpmcr1 = 0x802a;
  825. - commproc->cp_cpmcr2 = 0x8028;
  826. - commproc->cp_cpmcr3 = 0x802e;
  827. - commproc->cp_cpmcr4 = 0x802c;
  828. - commproc->cp_rccr = 1;
  829. -
  830. - printk("I2C/SPI microcode patch installed.\n");
  831. -# endif /* CONFIG_I2C_SPI_UCODE_PATCH */
  832. -
  833. -# if defined(CONFIG_I2C_SPI_SMC1_UCODE_PATCH)
  834. -
  835. - dp = (uint *)&(commproc->cp_dpmem[0x0e00]);
  836. - for (i=0; i<(sizeof(patch_2e00)/4); i++)
  837. - *dp++ = patch_2e00[i];
  838. -
  839. - commproc->cp_cpmcr1 = 0x8080;
  840. - commproc->cp_cpmcr2 = 0x808a;
  841. - commproc->cp_cpmcr3 = 0x8028;
  842. - commproc->cp_cpmcr4 = 0x802a;
  843. - commproc->cp_rccr = 3;
  844. -
  845. - smp = (smc_uart_t *)&commproc->cp_dparam[PROFF_SMC1];
  846. - smp->smc_rpbase = 0x1FC0;
  847. -
  848. - printk("I2C/SPI/SMC1 microcode patch installed.\n");
  849. -# endif /* CONFIG_I2C_SPI_SMC1_UCODE_PATCH) */
  850. -
  851. -#endif /* some variation of the I2C/SPI patch was selected */
  852. -}
  853. -
  854. -/*
  855. - * Take this entire routine out, since no one calls it and its
  856. - * logic is suspect.
  857. - */
  858. -
  859. -#if 0
  860. -void
  861. -verify_patch(volatile immap_t *immr)
  862. -{
  863. - volatile uint *dp;
  864. - volatile cpm8xx_t *commproc;
  865. - int i;
  866. -
  867. - commproc = (cpm8xx_t *)&immr->im_cpm;
  868. -
  869. - printk("cp_rccr %x\n", commproc->cp_rccr);
  870. - commproc->cp_rccr = 0;
  871. -
  872. - dp = (uint *)(commproc->cp_dpmem);
  873. - for (i=0; i<(sizeof(patch_2000)/4); i++)
  874. - if (*dp++ != patch_2000[i]) {
  875. - printk("patch_2000 bad at %d\n", i);
  876. - dp--;
  877. - printk("found 0x%X, wanted 0x%X\n", *dp, patch_2000[i]);
  878. - break;
  879. - }
  880. -
  881. - dp = (uint *)&(commproc->cp_dpmem[0x0f00]);
  882. - for (i=0; i<(sizeof(patch_2f00)/4); i++)
  883. - if (*dp++ != patch_2f00[i]) {
  884. - printk("patch_2f00 bad at %d\n", i);
  885. - dp--;
  886. - printk("found 0x%X, wanted 0x%X\n", *dp, patch_2f00[i]);
  887. - break;
  888. - }
  889. -
  890. - commproc->cp_rccr = 0x0009;
  891. -}
  892. -#endif
  893. diff -ruN ../linux-4.14.336/drivers/i2c/busses/i2c-cpm.c ./drivers/i2c/busses/i2c-cpm.c
  894. --- linux-4.14.336/../linux-4.14.336/drivers/i2c/busses/i2c-cpm.c 2024-01-10 14:45:41.000000000 +0100
  895. +++ linux-4.14.336/./drivers/i2c/busses/i2c-cpm.c 2024-02-14 20:42:10.901680998 +0100
  896. @@ -461,20 +461,9 @@
  897. }
  898. if (of_device_is_compatible(ofdev->dev.of_node, "fsl,cpm1-i2c")) {
  899. -
  900. - /* Check for and use a microcode relocation patch. */
  901. cpm->i2c_ram = i2c_base;
  902. cpm->i2c_addr = in_be16(&cpm->i2c_ram->rpbase);
  903. - /*
  904. - * Maybe should use cpm_muram_alloc instead of hardcoding
  905. - * this in micropatch.c
  906. - */
  907. - if (cpm->i2c_addr) {
  908. - cpm->i2c_ram = cpm_muram_addr(cpm->i2c_addr);
  909. - iounmap(i2c_base);
  910. - }
  911. -
  912. cpm->version = 1;
  913. } else if (of_device_is_compatible(ofdev->dev.of_node, "fsl,cpm2-i2c")) {
  914. diff -ruN ../linux-4.14.336/drivers/media/usb/dvb-usb/Kconfig ./drivers/media/usb/dvb-usb/Kconfig
  915. --- linux-4.14.336/../linux-4.14.336/drivers/media/usb/dvb-usb/Kconfig 2024-01-10 14:45:41.000000000 +0100
  916. +++ linux-4.14.336/./drivers/media/usb/dvb-usb/Kconfig 2024-02-14 21:41:13.341455995 +0100
  917. @@ -242,22 +242,6 @@
  918. help
  919. Say Y here to support the Opera DVB-S USB2.0 receiver.
  920. -config DVB_USB_AF9005
  921. - tristate "Afatech AF9005 DVB-T USB1.1 support"
  922. - depends on DVB_USB
  923. - select MEDIA_TUNER_MT2060 if MEDIA_SUBDRV_AUTOSELECT
  924. - select MEDIA_TUNER_QT1010 if MEDIA_SUBDRV_AUTOSELECT
  925. - help
  926. - Say Y here to support the Afatech AF9005 based DVB-T USB1.1 receiver
  927. - and the TerraTec Cinergy T USB XE (Rev.1)
  928. -
  929. -config DVB_USB_AF9005_REMOTE
  930. - tristate "Afatech AF9005 default remote control support"
  931. - depends on DVB_USB_AF9005
  932. - help
  933. - Say Y here to support the default remote control decoding for the
  934. - Afatech AF9005 based receiver.
  935. -
  936. config DVB_USB_PCTV452E
  937. tristate "Pinnacle PCTV HDTV Pro USB device/TT Connect S2-3600"
  938. depends on DVB_USB
  939. diff -ruN ../linux-4.14.336/drivers/media/usb/dvb-usb/Makefile ./drivers/media/usb/dvb-usb/Makefile
  940. --- linux-4.14.336/../linux-4.14.336/drivers/media/usb/dvb-usb/Makefile 2024-01-10 14:45:41.000000000 +0100
  941. +++ linux-4.14.336/./drivers/media/usb/dvb-usb/Makefile 2024-02-14 21:40:58.271457116 +0100
  942. @@ -53,12 +53,6 @@
  943. dvb-usb-opera-objs := opera1.o
  944. obj-$(CONFIG_DVB_USB_OPERA1) += dvb-usb-opera.o
  945. -dvb-usb-af9005-objs := af9005.o af9005-fe.o
  946. -obj-$(CONFIG_DVB_USB_AF9005) += dvb-usb-af9005.o
  947. -
  948. -dvb-usb-af9005-remote-objs := af9005-remote.o
  949. -obj-$(CONFIG_DVB_USB_AF9005_REMOTE) += dvb-usb-af9005-remote.o
  950. -
  951. dvb-usb-pctv452e-objs := pctv452e.o
  952. obj-$(CONFIG_DVB_USB_PCTV452E) += dvb-usb-pctv452e.o
  953. diff -ruN ../linux-4.14.336/drivers/media/usb/dvb-usb/af9005-fe.c ./drivers/media/usb/dvb-usb/af9005-fe.c
  954. --- linux-4.14.336/../linux-4.14.336/drivers/media/usb/dvb-usb/af9005-fe.c 2024-01-10 14:45:41.000000000 +0100
  955. +++ linux-4.14.336/./drivers/media/usb/dvb-usb/af9005-fe.c 1970-01-01 01:00:00.000000000 +0100
  956. @@ -1,1484 +0,0 @@
  957. -/* Frontend part of the Linux driver for the Afatech 9005
  958. - * USB1.1 DVB-T receiver.
  959. - *
  960. - * Copyright (C) 2007 Luca Olivetti (luca@ventoso.org)
  961. - *
  962. - * Thanks to Afatech who kindly provided information.
  963. - *
  964. - * This program is free software; you can redistribute it and/or modify
  965. - * it under the terms of the GNU General Public License as published by
  966. - * the Free Software Foundation; either version 2 of the License, or
  967. - * (at your option) any later version.
  968. - *
  969. - * This program is distributed in the hope that it will be useful,
  970. - * but WITHOUT ANY WARRANTY; without even the implied warranty of
  971. - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  972. - * GNU General Public License for more details.
  973. - *
  974. - * see Documentation/dvb/README.dvb-usb for more information
  975. - */
  976. -#include "af9005.h"
  977. -#include "af9005-script.h"
  978. -#include "mt2060.h"
  979. -#include "qt1010.h"
  980. -#include <asm/div64.h>
  981. -
  982. -struct af9005_fe_state {
  983. - struct dvb_usb_device *d;
  984. - enum fe_status stat;
  985. -
  986. - /* retraining parameters */
  987. - u32 original_fcw;
  988. - u16 original_rf_top;
  989. - u16 original_if_top;
  990. - u16 original_if_min;
  991. - u16 original_aci0_if_top;
  992. - u16 original_aci1_if_top;
  993. - u16 original_aci0_if_min;
  994. - u8 original_if_unplug_th;
  995. - u8 original_rf_unplug_th;
  996. - u8 original_dtop_if_unplug_th;
  997. - u8 original_dtop_rf_unplug_th;
  998. -
  999. - /* statistics */
  1000. - u32 pre_vit_error_count;
  1001. - u32 pre_vit_bit_count;
  1002. - u32 ber;
  1003. - u32 post_vit_error_count;
  1004. - u32 post_vit_bit_count;
  1005. - u32 unc;
  1006. - u16 abort_count;
  1007. -
  1008. - int opened;
  1009. - int strong;
  1010. - unsigned long next_status_check;
  1011. - struct dvb_frontend frontend;
  1012. -};
  1013. -
  1014. -static int af9005_write_word_agc(struct dvb_usb_device *d, u16 reghi,
  1015. - u16 reglo, u8 pos, u8 len, u16 value)
  1016. -{
  1017. - int ret;
  1018. -
  1019. - if ((ret = af9005_write_ofdm_register(d, reglo, (u8) (value & 0xff))))
  1020. - return ret;
  1021. - return af9005_write_register_bits(d, reghi, pos, len,
  1022. - (u8) ((value & 0x300) >> 8));
  1023. -}
  1024. -
  1025. -static int af9005_read_word_agc(struct dvb_usb_device *d, u16 reghi,
  1026. - u16 reglo, u8 pos, u8 len, u16 * value)
  1027. -{
  1028. - int ret;
  1029. - u8 temp0, temp1;
  1030. -
  1031. - if ((ret = af9005_read_ofdm_register(d, reglo, &temp0)))
  1032. - return ret;
  1033. - if ((ret = af9005_read_ofdm_register(d, reghi, &temp1)))
  1034. - return ret;
  1035. - switch (pos) {
  1036. - case 0:
  1037. - *value = ((u16) (temp1 & 0x03) << 8) + (u16) temp0;
  1038. - break;
  1039. - case 2:
  1040. - *value = ((u16) (temp1 & 0x0C) << 6) + (u16) temp0;
  1041. - break;
  1042. - case 4:
  1043. - *value = ((u16) (temp1 & 0x30) << 4) + (u16) temp0;
  1044. - break;
  1045. - case 6:
  1046. - *value = ((u16) (temp1 & 0xC0) << 2) + (u16) temp0;
  1047. - break;
  1048. - default:
  1049. - err("invalid pos in read word agc");
  1050. - return -EINVAL;
  1051. - }
  1052. - return 0;
  1053. -
  1054. -}
  1055. -
  1056. -static int af9005_is_fecmon_available(struct dvb_frontend *fe, int *available)
  1057. -{
  1058. - struct af9005_fe_state *state = fe->demodulator_priv;
  1059. - int ret;
  1060. - u8 temp;
  1061. -
  1062. - *available = false;
  1063. -
  1064. - ret = af9005_read_register_bits(state->d, xd_p_fec_vtb_rsd_mon_en,
  1065. - fec_vtb_rsd_mon_en_pos,
  1066. - fec_vtb_rsd_mon_en_len, &temp);
  1067. - if (ret)
  1068. - return ret;
  1069. - if (temp & 1) {
  1070. - ret =
  1071. - af9005_read_register_bits(state->d,
  1072. - xd_p_reg_ofsm_read_rbc_en,
  1073. - reg_ofsm_read_rbc_en_pos,
  1074. - reg_ofsm_read_rbc_en_len, &temp);
  1075. - if (ret)
  1076. - return ret;
  1077. - if ((temp & 1) == 0)
  1078. - *available = true;
  1079. -
  1080. - }
  1081. - return 0;
  1082. -}
  1083. -
  1084. -static int af9005_get_post_vit_err_cw_count(struct dvb_frontend *fe,
  1085. - u32 * post_err_count,
  1086. - u32 * post_cw_count,
  1087. - u16 * abort_count)
  1088. -{
  1089. - struct af9005_fe_state *state = fe->demodulator_priv;
  1090. - int ret;
  1091. - u32 err_count;
  1092. - u32 cw_count;
  1093. - u8 temp, temp0, temp1, temp2;
  1094. - u16 loc_abort_count;
  1095. -
  1096. - *post_err_count = 0;
  1097. - *post_cw_count = 0;
  1098. -
  1099. - /* check if error bit count is ready */
  1100. - ret =
  1101. - af9005_read_register_bits(state->d, xd_r_fec_rsd_ber_rdy,
  1102. - fec_rsd_ber_rdy_pos, fec_rsd_ber_rdy_len,
  1103. - &temp);
  1104. - if (ret)
  1105. - return ret;
  1106. - if (!temp) {
  1107. - deb_info("rsd counter not ready\n");
  1108. - return 100;
  1109. - }
  1110. - /* get abort count */
  1111. - ret =
  1112. - af9005_read_ofdm_register(state->d,
  1113. - xd_r_fec_rsd_abort_packet_cnt_7_0,
  1114. - &temp0);
  1115. - if (ret)
  1116. - return ret;
  1117. - ret =
  1118. - af9005_read_ofdm_register(state->d,
  1119. - xd_r_fec_rsd_abort_packet_cnt_15_8,
  1120. - &temp1);
  1121. - if (ret)
  1122. - return ret;
  1123. - loc_abort_count = ((u16) temp1 << 8) + temp0;
  1124. -
  1125. - /* get error count */
  1126. - ret =
  1127. - af9005_read_ofdm_register(state->d, xd_r_fec_rsd_bit_err_cnt_7_0,
  1128. - &temp0);
  1129. - if (ret)
  1130. - return ret;
  1131. - ret =
  1132. - af9005_read_ofdm_register(state->d, xd_r_fec_rsd_bit_err_cnt_15_8,
  1133. - &temp1);
  1134. - if (ret)
  1135. - return ret;
  1136. - ret =
  1137. - af9005_read_ofdm_register(state->d, xd_r_fec_rsd_bit_err_cnt_23_16,
  1138. - &temp2);
  1139. - if (ret)
  1140. - return ret;
  1141. - err_count = ((u32) temp2 << 16) + ((u32) temp1 << 8) + temp0;
  1142. - *post_err_count = err_count - (u32) loc_abort_count *8 * 8;
  1143. -
  1144. - /* get RSD packet number */
  1145. - ret =
  1146. - af9005_read_ofdm_register(state->d, xd_p_fec_rsd_packet_unit_7_0,
  1147. - &temp0);
  1148. - if (ret)
  1149. - return ret;
  1150. - ret =
  1151. - af9005_read_ofdm_register(state->d, xd_p_fec_rsd_packet_unit_15_8,
  1152. - &temp1);
  1153. - if (ret)
  1154. - return ret;
  1155. - cw_count = ((u32) temp1 << 8) + temp0;
  1156. - if (cw_count == 0) {
  1157. - err("wrong RSD packet count");
  1158. - return -EIO;
  1159. - }
  1160. - deb_info("POST abort count %d err count %d rsd packets %d\n",
  1161. - loc_abort_count, err_count, cw_count);
  1162. - *post_cw_count = cw_count - (u32) loc_abort_count;
  1163. - *abort_count = loc_abort_count;
  1164. - return 0;
  1165. -
  1166. -}
  1167. -
  1168. -static int af9005_get_post_vit_ber(struct dvb_frontend *fe,
  1169. - u32 * post_err_count, u32 * post_cw_count,
  1170. - u16 * abort_count)
  1171. -{
  1172. - u32 loc_cw_count = 0, loc_err_count;
  1173. - u16 loc_abort_count = 0;
  1174. - int ret;
  1175. -
  1176. - ret =
  1177. - af9005_get_post_vit_err_cw_count(fe, &loc_err_count, &loc_cw_count,
  1178. - &loc_abort_count);
  1179. - if (ret)
  1180. - return ret;
  1181. - *post_err_count = loc_err_count;
  1182. - *post_cw_count = loc_cw_count * 204 * 8;
  1183. - *abort_count = loc_abort_count;
  1184. -
  1185. - return 0;
  1186. -}
  1187. -
  1188. -static int af9005_get_pre_vit_err_bit_count(struct dvb_frontend *fe,
  1189. - u32 * pre_err_count,
  1190. - u32 * pre_bit_count)
  1191. -{
  1192. - struct af9005_fe_state *state = fe->demodulator_priv;
  1193. - u8 temp, temp0, temp1, temp2;
  1194. - u32 super_frame_count, x, bits;
  1195. - int ret;
  1196. -
  1197. - ret =
  1198. - af9005_read_register_bits(state->d, xd_r_fec_vtb_ber_rdy,
  1199. - fec_vtb_ber_rdy_pos, fec_vtb_ber_rdy_len,
  1200. - &temp);
  1201. - if (ret)
  1202. - return ret;
  1203. - if (!temp) {
  1204. - deb_info("viterbi counter not ready\n");
  1205. - return 101; /* ERR_APO_VTB_COUNTER_NOT_READY; */
  1206. - }
  1207. - ret =
  1208. - af9005_read_ofdm_register(state->d, xd_r_fec_vtb_err_bit_cnt_7_0,
  1209. - &temp0);
  1210. - if (ret)
  1211. - return ret;
  1212. - ret =
  1213. - af9005_read_ofdm_register(state->d, xd_r_fec_vtb_err_bit_cnt_15_8,
  1214. - &temp1);
  1215. - if (ret)
  1216. - return ret;
  1217. - ret =
  1218. - af9005_read_ofdm_register(state->d, xd_r_fec_vtb_err_bit_cnt_23_16,
  1219. - &temp2);
  1220. - if (ret)
  1221. - return ret;
  1222. - *pre_err_count = ((u32) temp2 << 16) + ((u32) temp1 << 8) + temp0;
  1223. -
  1224. - ret =
  1225. - af9005_read_ofdm_register(state->d, xd_p_fec_super_frm_unit_7_0,
  1226. - &temp0);
  1227. - if (ret)
  1228. - return ret;
  1229. - ret =
  1230. - af9005_read_ofdm_register(state->d, xd_p_fec_super_frm_unit_15_8,
  1231. - &temp1);
  1232. - if (ret)
  1233. - return ret;
  1234. - super_frame_count = ((u32) temp1 << 8) + temp0;
  1235. - if (super_frame_count == 0) {
  1236. - deb_info("super frame count 0\n");
  1237. - return 102;
  1238. - }
  1239. -
  1240. - /* read fft mode */
  1241. - ret =
  1242. - af9005_read_register_bits(state->d, xd_g_reg_tpsd_txmod,
  1243. - reg_tpsd_txmod_pos, reg_tpsd_txmod_len,
  1244. - &temp);
  1245. - if (ret)
  1246. - return ret;
  1247. - if (temp == 0) {
  1248. - /* 2K */
  1249. - x = 1512;
  1250. - } else if (temp == 1) {
  1251. - /* 8k */
  1252. - x = 6048;
  1253. - } else {
  1254. - err("Invalid fft mode");
  1255. - return -EINVAL;
  1256. - }
  1257. -
  1258. - /* read modulation mode */
  1259. - ret =
  1260. - af9005_read_register_bits(state->d, xd_g_reg_tpsd_const,
  1261. - reg_tpsd_const_pos, reg_tpsd_const_len,
  1262. - &temp);
  1263. - if (ret)
  1264. - return ret;
  1265. - switch (temp) {
  1266. - case 0: /* QPSK */
  1267. - bits = 2;
  1268. - break;
  1269. - case 1: /* QAM_16 */
  1270. - bits = 4;
  1271. - break;
  1272. - case 2: /* QAM_64 */
  1273. - bits = 6;
  1274. - break;
  1275. - default:
  1276. - err("invalid modulation mode");
  1277. - return -EINVAL;
  1278. - }
  1279. - *pre_bit_count = super_frame_count * 68 * 4 * x * bits;
  1280. - deb_info("PRE err count %d frame count %d bit count %d\n",
  1281. - *pre_err_count, super_frame_count, *pre_bit_count);
  1282. - return 0;
  1283. -}
  1284. -
  1285. -static int af9005_reset_pre_viterbi(struct dvb_frontend *fe)
  1286. -{
  1287. - struct af9005_fe_state *state = fe->demodulator_priv;
  1288. - int ret;
  1289. -
  1290. - /* set super frame count to 1 */
  1291. - ret =
  1292. - af9005_write_ofdm_register(state->d, xd_p_fec_super_frm_unit_7_0,
  1293. - 1 & 0xff);
  1294. - if (ret)
  1295. - return ret;
  1296. - ret = af9005_write_ofdm_register(state->d, xd_p_fec_super_frm_unit_15_8,
  1297. - 1 >> 8);
  1298. - if (ret)
  1299. - return ret;
  1300. - /* reset pre viterbi error count */
  1301. - ret =
  1302. - af9005_write_register_bits(state->d, xd_p_fec_vtb_ber_rst,
  1303. - fec_vtb_ber_rst_pos, fec_vtb_ber_rst_len,
  1304. - 1);
  1305. -
  1306. - return ret;
  1307. -}
  1308. -
  1309. -static int af9005_reset_post_viterbi(struct dvb_frontend *fe)
  1310. -{
  1311. - struct af9005_fe_state *state = fe->demodulator_priv;
  1312. - int ret;
  1313. -
  1314. - /* set packet unit */
  1315. - ret =
  1316. - af9005_write_ofdm_register(state->d, xd_p_fec_rsd_packet_unit_7_0,
  1317. - 10000 & 0xff);
  1318. - if (ret)
  1319. - return ret;
  1320. - ret =
  1321. - af9005_write_ofdm_register(state->d, xd_p_fec_rsd_packet_unit_15_8,
  1322. - 10000 >> 8);
  1323. - if (ret)
  1324. - return ret;
  1325. - /* reset post viterbi error count */
  1326. - ret =
  1327. - af9005_write_register_bits(state->d, xd_p_fec_rsd_ber_rst,
  1328. - fec_rsd_ber_rst_pos, fec_rsd_ber_rst_len,
  1329. - 1);
  1330. -
  1331. - return ret;
  1332. -}
  1333. -
  1334. -static int af9005_get_statistic(struct dvb_frontend *fe)
  1335. -{
  1336. - struct af9005_fe_state *state = fe->demodulator_priv;
  1337. - int ret, fecavailable;
  1338. - u64 numerator, denominator;
  1339. -
  1340. - deb_info("GET STATISTIC\n");
  1341. - ret = af9005_is_fecmon_available(fe, &fecavailable);
  1342. - if (ret)
  1343. - return ret;
  1344. - if (!fecavailable) {
  1345. - deb_info("fecmon not available\n");
  1346. - return 0;
  1347. - }
  1348. -
  1349. - ret = af9005_get_pre_vit_err_bit_count(fe, &state->pre_vit_error_count,
  1350. - &state->pre_vit_bit_count);
  1351. - if (ret == 0) {
  1352. - af9005_reset_pre_viterbi(fe);
  1353. - if (state->pre_vit_bit_count > 0) {
  1354. - /* according to v 0.0.4 of the dvb api ber should be a multiple
  1355. - of 10E-9 so we have to multiply the error count by
  1356. - 10E9=1000000000 */
  1357. - numerator =
  1358. - (u64) state->pre_vit_error_count * (u64) 1000000000;
  1359. - denominator = (u64) state->pre_vit_bit_count;
  1360. - state->ber = do_div(numerator, denominator);
  1361. - } else {
  1362. - state->ber = 0xffffffff;
  1363. - }
  1364. - }
  1365. -
  1366. - ret = af9005_get_post_vit_ber(fe, &state->post_vit_error_count,
  1367. - &state->post_vit_bit_count,
  1368. - &state->abort_count);
  1369. - if (ret == 0) {
  1370. - ret = af9005_reset_post_viterbi(fe);
  1371. - state->unc += state->abort_count;
  1372. - if (ret)
  1373. - return ret;
  1374. - }
  1375. - return 0;
  1376. -}
  1377. -
  1378. -static int af9005_fe_refresh_state(struct dvb_frontend *fe)
  1379. -{
  1380. - struct af9005_fe_state *state = fe->demodulator_priv;
  1381. - if (time_after(jiffies, state->next_status_check)) {
  1382. - deb_info("REFRESH STATE\n");
  1383. -
  1384. - /* statistics */
  1385. - if (af9005_get_statistic(fe))
  1386. - err("get_statistic_failed");
  1387. - state->next_status_check = jiffies + 250 * HZ / 1000;
  1388. - }
  1389. - return 0;
  1390. -}
  1391. -
  1392. -static int af9005_fe_read_status(struct dvb_frontend *fe,
  1393. - enum fe_status *stat)
  1394. -{
  1395. - struct af9005_fe_state *state = fe->demodulator_priv;
  1396. - u8 temp;
  1397. - int ret;
  1398. -
  1399. - if (fe->ops.tuner_ops.release == NULL)
  1400. - return -ENODEV;
  1401. -
  1402. - *stat = 0;
  1403. - ret = af9005_read_register_bits(state->d, xd_p_agc_lock,
  1404. - agc_lock_pos, agc_lock_len, &temp);
  1405. - if (ret)
  1406. - return ret;
  1407. - if (temp)
  1408. - *stat |= FE_HAS_SIGNAL;
  1409. -
  1410. - ret = af9005_read_register_bits(state->d, xd_p_fd_tpsd_lock,
  1411. - fd_tpsd_lock_pos, fd_tpsd_lock_len,
  1412. - &temp);
  1413. - if (ret)
  1414. - return ret;
  1415. - if (temp)
  1416. - *stat |= FE_HAS_CARRIER;
  1417. -
  1418. - ret = af9005_read_register_bits(state->d,
  1419. - xd_r_mp2if_sync_byte_locked,
  1420. - mp2if_sync_byte_locked_pos,
  1421. - mp2if_sync_byte_locked_pos, &temp);
  1422. - if (ret)
  1423. - return ret;
  1424. - if (temp)
  1425. - *stat |= FE_HAS_SYNC | FE_HAS_VITERBI | FE_HAS_LOCK;
  1426. - if (state->opened)
  1427. - af9005_led_control(state->d, *stat & FE_HAS_LOCK);
  1428. -
  1429. - ret =
  1430. - af9005_read_register_bits(state->d, xd_p_reg_strong_sginal_detected,
  1431. - reg_strong_sginal_detected_pos,
  1432. - reg_strong_sginal_detected_len, &temp);
  1433. - if (ret)
  1434. - return ret;
  1435. - if (temp != state->strong) {
  1436. - deb_info("adjust for strong signal %d\n", temp);
  1437. - state->strong = temp;
  1438. - }
  1439. - return 0;
  1440. -}
  1441. -
  1442. -static int af9005_fe_read_ber(struct dvb_frontend *fe, u32 * ber)
  1443. -{
  1444. - struct af9005_fe_state *state = fe->demodulator_priv;
  1445. - if (fe->ops.tuner_ops.release == NULL)
  1446. - return -ENODEV;
  1447. - af9005_fe_refresh_state(fe);
  1448. - *ber = state->ber;
  1449. - return 0;
  1450. -}
  1451. -
  1452. -static int af9005_fe_read_unc_blocks(struct dvb_frontend *fe, u32 * unc)
  1453. -{
  1454. - struct af9005_fe_state *state = fe->demodulator_priv;
  1455. - if (fe->ops.tuner_ops.release == NULL)
  1456. - return -ENODEV;
  1457. - af9005_fe_refresh_state(fe);
  1458. - *unc = state->unc;
  1459. - return 0;
  1460. -}
  1461. -
  1462. -static int af9005_fe_read_signal_strength(struct dvb_frontend *fe,
  1463. - u16 * strength)
  1464. -{
  1465. - struct af9005_fe_state *state = fe->demodulator_priv;
  1466. - int ret;
  1467. - u8 if_gain, rf_gain;
  1468. -
  1469. - if (fe->ops.tuner_ops.release == NULL)
  1470. - return -ENODEV;
  1471. - ret =
  1472. - af9005_read_ofdm_register(state->d, xd_r_reg_aagc_rf_gain,
  1473. - &rf_gain);
  1474. - if (ret)
  1475. - return ret;
  1476. - ret =
  1477. - af9005_read_ofdm_register(state->d, xd_r_reg_aagc_if_gain,
  1478. - &if_gain);
  1479. - if (ret)
  1480. - return ret;
  1481. - /* this value has no real meaning, but i don't have the tables that relate
  1482. - the rf and if gain with the dbm, so I just scale the value */
  1483. - *strength = (512 - rf_gain - if_gain) << 7;
  1484. - return 0;
  1485. -}
  1486. -
  1487. -static int af9005_fe_read_snr(struct dvb_frontend *fe, u16 * snr)
  1488. -{
  1489. - /* the snr can be derived from the ber and the modulation
  1490. - but I don't think this kind of complex calculations belong
  1491. - in the driver. I may be wrong.... */
  1492. - return -ENOSYS;
  1493. -}
  1494. -
  1495. -static int af9005_fe_program_cfoe(struct dvb_usb_device *d, u32 bw)
  1496. -{
  1497. - u8 temp0, temp1, temp2, temp3, buf[4];
  1498. - int ret;
  1499. - u32 NS_coeff1_2048Nu;
  1500. - u32 NS_coeff1_8191Nu;
  1501. - u32 NS_coeff1_8192Nu;
  1502. - u32 NS_coeff1_8193Nu;
  1503. - u32 NS_coeff2_2k;
  1504. - u32 NS_coeff2_8k;
  1505. -
  1506. - switch (bw) {
  1507. - case 6000000:
  1508. - NS_coeff1_2048Nu = 0x2ADB6DC;
  1509. - NS_coeff1_8191Nu = 0xAB7313;
  1510. - NS_coeff1_8192Nu = 0xAB6DB7;
  1511. - NS_coeff1_8193Nu = 0xAB685C;
  1512. - NS_coeff2_2k = 0x156DB6E;
  1513. - NS_coeff2_8k = 0x55B6DC;
  1514. - break;
  1515. -
  1516. - case 7000000:
  1517. - NS_coeff1_2048Nu = 0x3200001;
  1518. - NS_coeff1_8191Nu = 0xC80640;
  1519. - NS_coeff1_8192Nu = 0xC80000;
  1520. - NS_coeff1_8193Nu = 0xC7F9C0;
  1521. - NS_coeff2_2k = 0x1900000;
  1522. - NS_coeff2_8k = 0x640000;
  1523. - break;
  1524. -
  1525. - case 8000000:
  1526. - NS_coeff1_2048Nu = 0x3924926;
  1527. - NS_coeff1_8191Nu = 0xE4996E;
  1528. - NS_coeff1_8192Nu = 0xE49249;
  1529. - NS_coeff1_8193Nu = 0xE48B25;
  1530. - NS_coeff2_2k = 0x1C92493;
  1531. - NS_coeff2_8k = 0x724925;
  1532. - break;
  1533. - default:
  1534. - err("Invalid bandwidth %d.", bw);
  1535. - return -EINVAL;
  1536. - }
  1537. -
  1538. - /*
  1539. - * write NS_coeff1_2048Nu
  1540. - */
  1541. -
  1542. - temp0 = (u8) (NS_coeff1_2048Nu & 0x000000FF);
  1543. - temp1 = (u8) ((NS_coeff1_2048Nu & 0x0000FF00) >> 8);
  1544. - temp2 = (u8) ((NS_coeff1_2048Nu & 0x00FF0000) >> 16);
  1545. - temp3 = (u8) ((NS_coeff1_2048Nu & 0x03000000) >> 24);
  1546. -
  1547. - /* big endian to make 8051 happy */
  1548. - buf[0] = temp3;
  1549. - buf[1] = temp2;
  1550. - buf[2] = temp1;
  1551. - buf[3] = temp0;
  1552. -
  1553. - /* cfoe_NS_2k_coeff1_25_24 */
  1554. - ret = af9005_write_ofdm_register(d, 0xAE00, buf[0]);
  1555. - if (ret)
  1556. - return ret;
  1557. -
  1558. - /* cfoe_NS_2k_coeff1_23_16 */
  1559. - ret = af9005_write_ofdm_register(d, 0xAE01, buf[1]);
  1560. - if (ret)
  1561. - return ret;
  1562. -
  1563. - /* cfoe_NS_2k_coeff1_15_8 */
  1564. - ret = af9005_write_ofdm_register(d, 0xAE02, buf[2]);
  1565. - if (ret)
  1566. - return ret;
  1567. -
  1568. - /* cfoe_NS_2k_coeff1_7_0 */
  1569. - ret = af9005_write_ofdm_register(d, 0xAE03, buf[3]);
  1570. - if (ret)
  1571. - return ret;
  1572. -
  1573. - /*
  1574. - * write NS_coeff2_2k
  1575. - */
  1576. -
  1577. - temp0 = (u8) ((NS_coeff2_2k & 0x0000003F));
  1578. - temp1 = (u8) ((NS_coeff2_2k & 0x00003FC0) >> 6);
  1579. - temp2 = (u8) ((NS_coeff2_2k & 0x003FC000) >> 14);
  1580. - temp3 = (u8) ((NS_coeff2_2k & 0x01C00000) >> 22);
  1581. -
  1582. - /* big endian to make 8051 happy */
  1583. - buf[0] = temp3;
  1584. - buf[1] = temp2;
  1585. - buf[2] = temp1;
  1586. - buf[3] = temp0;
  1587. -
  1588. - ret = af9005_write_ofdm_register(d, 0xAE04, buf[0]);
  1589. - if (ret)
  1590. - return ret;
  1591. -
  1592. - ret = af9005_write_ofdm_register(d, 0xAE05, buf[1]);
  1593. - if (ret)
  1594. - return ret;
  1595. -
  1596. - ret = af9005_write_ofdm_register(d, 0xAE06, buf[2]);
  1597. - if (ret)
  1598. - return ret;
  1599. -
  1600. - ret = af9005_write_ofdm_register(d, 0xAE07, buf[3]);
  1601. - if (ret)
  1602. - return ret;
  1603. -
  1604. - /*
  1605. - * write NS_coeff1_8191Nu
  1606. - */
  1607. -
  1608. - temp0 = (u8) ((NS_coeff1_8191Nu & 0x000000FF));
  1609. - temp1 = (u8) ((NS_coeff1_8191Nu & 0x0000FF00) >> 8);
  1610. - temp2 = (u8) ((NS_coeff1_8191Nu & 0x00FFC000) >> 16);
  1611. - temp3 = (u8) ((NS_coeff1_8191Nu & 0x03000000) >> 24);
  1612. -
  1613. - /* big endian to make 8051 happy */
  1614. - buf[0] = temp3;
  1615. - buf[1] = temp2;
  1616. - buf[2] = temp1;
  1617. - buf[3] = temp0;
  1618. -
  1619. - ret = af9005_write_ofdm_register(d, 0xAE08, buf[0]);
  1620. - if (ret)
  1621. - return ret;
  1622. -
  1623. - ret = af9005_write_ofdm_register(d, 0xAE09, buf[1]);
  1624. - if (ret)
  1625. - return ret;
  1626. -
  1627. - ret = af9005_write_ofdm_register(d, 0xAE0A, buf[2]);
  1628. - if (ret)
  1629. - return ret;
  1630. -
  1631. - ret = af9005_write_ofdm_register(d, 0xAE0B, buf[3]);
  1632. - if (ret)
  1633. - return ret;
  1634. -
  1635. - /*
  1636. - * write NS_coeff1_8192Nu
  1637. - */
  1638. -
  1639. - temp0 = (u8) (NS_coeff1_8192Nu & 0x000000FF);
  1640. - temp1 = (u8) ((NS_coeff1_8192Nu & 0x0000FF00) >> 8);
  1641. - temp2 = (u8) ((NS_coeff1_8192Nu & 0x00FFC000) >> 16);
  1642. - temp3 = (u8) ((NS_coeff1_8192Nu & 0x03000000) >> 24);
  1643. -
  1644. - /* big endian to make 8051 happy */
  1645. - buf[0] = temp3;
  1646. - buf[1] = temp2;
  1647. - buf[2] = temp1;
  1648. - buf[3] = temp0;
  1649. -
  1650. - ret = af9005_write_ofdm_register(d, 0xAE0C, buf[0]);
  1651. - if (ret)
  1652. - return ret;
  1653. -
  1654. - ret = af9005_write_ofdm_register(d, 0xAE0D, buf[1]);
  1655. - if (ret)
  1656. - return ret;
  1657. -
  1658. - ret = af9005_write_ofdm_register(d, 0xAE0E, buf[2]);
  1659. - if (ret)
  1660. - return ret;
  1661. -
  1662. - ret = af9005_write_ofdm_register(d, 0xAE0F, buf[3]);
  1663. - if (ret)
  1664. - return ret;
  1665. -
  1666. - /*
  1667. - * write NS_coeff1_8193Nu
  1668. - */
  1669. -
  1670. - temp0 = (u8) ((NS_coeff1_8193Nu & 0x000000FF));
  1671. - temp1 = (u8) ((NS_coeff1_8193Nu & 0x0000FF00) >> 8);
  1672. - temp2 = (u8) ((NS_coeff1_8193Nu & 0x00FFC000) >> 16);
  1673. - temp3 = (u8) ((NS_coeff1_8193Nu & 0x03000000) >> 24);
  1674. -
  1675. - /* big endian to make 8051 happy */
  1676. - buf[0] = temp3;
  1677. - buf[1] = temp2;
  1678. - buf[2] = temp1;
  1679. - buf[3] = temp0;
  1680. -
  1681. - ret = af9005_write_ofdm_register(d, 0xAE10, buf[0]);
  1682. - if (ret)
  1683. - return ret;
  1684. -
  1685. - ret = af9005_write_ofdm_register(d, 0xAE11, buf[1]);
  1686. - if (ret)
  1687. - return ret;
  1688. -
  1689. - ret = af9005_write_ofdm_register(d, 0xAE12, buf[2]);
  1690. - if (ret)
  1691. - return ret;
  1692. -
  1693. - ret = af9005_write_ofdm_register(d, 0xAE13, buf[3]);
  1694. - if (ret)
  1695. - return ret;
  1696. -
  1697. - /*
  1698. - * write NS_coeff2_8k
  1699. - */
  1700. -
  1701. - temp0 = (u8) ((NS_coeff2_8k & 0x0000003F));
  1702. - temp1 = (u8) ((NS_coeff2_8k & 0x00003FC0) >> 6);
  1703. - temp2 = (u8) ((NS_coeff2_8k & 0x003FC000) >> 14);
  1704. - temp3 = (u8) ((NS_coeff2_8k & 0x01C00000) >> 22);
  1705. -
  1706. - /* big endian to make 8051 happy */
  1707. - buf[0] = temp3;
  1708. - buf[1] = temp2;
  1709. - buf[2] = temp1;
  1710. - buf[3] = temp0;
  1711. -
  1712. - ret = af9005_write_ofdm_register(d, 0xAE14, buf[0]);
  1713. - if (ret)
  1714. - return ret;
  1715. -
  1716. - ret = af9005_write_ofdm_register(d, 0xAE15, buf[1]);
  1717. - if (ret)
  1718. - return ret;
  1719. -
  1720. - ret = af9005_write_ofdm_register(d, 0xAE16, buf[2]);
  1721. - if (ret)
  1722. - return ret;
  1723. -
  1724. - ret = af9005_write_ofdm_register(d, 0xAE17, buf[3]);
  1725. - return ret;
  1726. -
  1727. -}
  1728. -
  1729. -static int af9005_fe_select_bw(struct dvb_usb_device *d, u32 bw)
  1730. -{
  1731. - u8 temp;
  1732. - switch (bw) {
  1733. - case 6000000:
  1734. - temp = 0;
  1735. - break;
  1736. - case 7000000:
  1737. - temp = 1;
  1738. - break;
  1739. - case 8000000:
  1740. - temp = 2;
  1741. - break;
  1742. - default:
  1743. - err("Invalid bandwidth %d.", bw);
  1744. - return -EINVAL;
  1745. - }
  1746. - return af9005_write_register_bits(d, xd_g_reg_bw, reg_bw_pos,
  1747. - reg_bw_len, temp);
  1748. -}
  1749. -
  1750. -static int af9005_fe_power(struct dvb_frontend *fe, int on)
  1751. -{
  1752. - struct af9005_fe_state *state = fe->demodulator_priv;
  1753. - u8 temp = on;
  1754. - int ret;
  1755. - deb_info("power %s tuner\n", on ? "on" : "off");
  1756. - ret = af9005_send_command(state->d, 0x03, &temp, 1, NULL, 0);
  1757. - return ret;
  1758. -}
  1759. -
  1760. -static struct mt2060_config af9005_mt2060_config = {
  1761. - 0xC0
  1762. -};
  1763. -
  1764. -static struct qt1010_config af9005_qt1010_config = {
  1765. - 0xC4
  1766. -};
  1767. -
  1768. -static int af9005_fe_init(struct dvb_frontend *fe)
  1769. -{
  1770. - struct af9005_fe_state *state = fe->demodulator_priv;
  1771. - struct dvb_usb_adapter *adap = fe->dvb->priv;
  1772. - int ret, i, scriptlen;
  1773. - u8 temp, temp0 = 0, temp1 = 0, temp2 = 0;
  1774. - u8 buf[2];
  1775. - u16 if1;
  1776. -
  1777. - deb_info("in af9005_fe_init\n");
  1778. -
  1779. - /* reset */
  1780. - deb_info("reset\n");
  1781. - if ((ret =
  1782. - af9005_write_register_bits(state->d, xd_I2C_reg_ofdm_rst_en,
  1783. - 4, 1, 0x01)))
  1784. - return ret;
  1785. - if ((ret = af9005_write_ofdm_register(state->d, APO_REG_RESET, 0)))
  1786. - return ret;
  1787. - /* clear ofdm reset */
  1788. - deb_info("clear ofdm reset\n");
  1789. - for (i = 0; i < 150; i++) {
  1790. - if ((ret =
  1791. - af9005_read_ofdm_register(state->d,
  1792. - xd_I2C_reg_ofdm_rst, &temp)))
  1793. - return ret;
  1794. - if (temp & (regmask[reg_ofdm_rst_len - 1] << reg_ofdm_rst_pos))
  1795. - break;
  1796. - msleep(10);
  1797. - }
  1798. - if (i == 150)
  1799. - return -ETIMEDOUT;
  1800. -
  1801. - /*FIXME in the dump
  1802. - write B200 A9
  1803. - write xd_g_reg_ofsm_clk 7
  1804. - read eepr c6 (2)
  1805. - read eepr c7 (2)
  1806. - misc ctrl 3 -> 1
  1807. - read eepr ca (6)
  1808. - write xd_g_reg_ofsm_clk 0
  1809. - write B200 a1
  1810. - */
  1811. - ret = af9005_write_ofdm_register(state->d, 0xb200, 0xa9);
  1812. - if (ret)
  1813. - return ret;
  1814. - ret = af9005_write_ofdm_register(state->d, xd_g_reg_ofsm_clk, 0x07);
  1815. - if (ret)
  1816. - return ret;
  1817. - temp = 0x01;
  1818. - ret = af9005_send_command(state->d, 0x03, &temp, 1, NULL, 0);
  1819. - if (ret)
  1820. - return ret;
  1821. - ret = af9005_write_ofdm_register(state->d, xd_g_reg_ofsm_clk, 0x00);
  1822. - if (ret)
  1823. - return ret;
  1824. - ret = af9005_write_ofdm_register(state->d, 0xb200, 0xa1);
  1825. - if (ret)
  1826. - return ret;
  1827. -
  1828. - temp = regmask[reg_ofdm_rst_len - 1] << reg_ofdm_rst_pos;
  1829. - if ((ret =
  1830. - af9005_write_register_bits(state->d, xd_I2C_reg_ofdm_rst,
  1831. - reg_ofdm_rst_pos, reg_ofdm_rst_len, 1)))
  1832. - return ret;
  1833. - ret = af9005_write_register_bits(state->d, xd_I2C_reg_ofdm_rst,
  1834. - reg_ofdm_rst_pos, reg_ofdm_rst_len, 0);
  1835. -
  1836. - if (ret)
  1837. - return ret;
  1838. - /* don't know what register aefc is, but this is what the windows driver does */
  1839. - ret = af9005_write_ofdm_register(state->d, 0xaefc, 0);
  1840. - if (ret)
  1841. - return ret;
  1842. -
  1843. - /* set stand alone chip */
  1844. - deb_info("set stand alone chip\n");
  1845. - if ((ret =
  1846. - af9005_write_register_bits(state->d, xd_p_reg_dca_stand_alone,
  1847. - reg_dca_stand_alone_pos,
  1848. - reg_dca_stand_alone_len, 1)))
  1849. - return ret;
  1850. -
  1851. - /* set dca upper & lower chip */
  1852. - deb_info("set dca upper & lower chip\n");
  1853. - if ((ret =
  1854. - af9005_write_register_bits(state->d, xd_p_reg_dca_upper_chip,
  1855. - reg_dca_upper_chip_pos,
  1856. - reg_dca_upper_chip_len, 0)))
  1857. - return ret;
  1858. - if ((ret =
  1859. - af9005_write_register_bits(state->d, xd_p_reg_dca_lower_chip,
  1860. - reg_dca_lower_chip_pos,
  1861. - reg_dca_lower_chip_len, 0)))
  1862. - return ret;
  1863. -
  1864. - /* set 2wire master clock to 0x14 (for 60KHz) */
  1865. - deb_info("set 2wire master clock to 0x14 (for 60KHz)\n");
  1866. - if ((ret =
  1867. - af9005_write_ofdm_register(state->d, xd_I2C_i2c_m_period, 0x14)))
  1868. - return ret;
  1869. -
  1870. - /* clear dca enable chip */
  1871. - deb_info("clear dca enable chip\n");
  1872. - if ((ret =
  1873. - af9005_write_register_bits(state->d, xd_p_reg_dca_en,
  1874. - reg_dca_en_pos, reg_dca_en_len, 0)))
  1875. - return ret;
  1876. - /* FIXME these are register bits, but I don't know which ones */
  1877. - ret = af9005_write_ofdm_register(state->d, 0xa16c, 1);
  1878. - if (ret)
  1879. - return ret;
  1880. - ret = af9005_write_ofdm_register(state->d, 0xa3c1, 0);
  1881. - if (ret)
  1882. - return ret;
  1883. -
  1884. - /* init other parameters: program cfoe and select bandwidth */
  1885. - deb_info("program cfoe\n");
  1886. - ret = af9005_fe_program_cfoe(state->d, 6000000);
  1887. - if (ret)
  1888. - return ret;
  1889. - /* set read-update bit for modulation */
  1890. - deb_info("set read-update bit for modulation\n");
  1891. - if ((ret =
  1892. - af9005_write_register_bits(state->d, xd_p_reg_feq_read_update,
  1893. - reg_feq_read_update_pos,
  1894. - reg_feq_read_update_len, 1)))
  1895. - return ret;
  1896. -
  1897. - /* sample code has a set MPEG TS code here
  1898. - but sniffing reveals that it doesn't do it */
  1899. -
  1900. - /* set read-update bit to 1 for DCA modulation */
  1901. - deb_info("set read-update bit 1 for DCA modulation\n");
  1902. - if ((ret =
  1903. - af9005_write_register_bits(state->d, xd_p_reg_dca_read_update,
  1904. - reg_dca_read_update_pos,
  1905. - reg_dca_read_update_len, 1)))
  1906. - return ret;
  1907. -
  1908. - /* enable fec monitor */
  1909. - deb_info("enable fec monitor\n");
  1910. - if ((ret =
  1911. - af9005_write_register_bits(state->d, xd_p_fec_vtb_rsd_mon_en,
  1912. - fec_vtb_rsd_mon_en_pos,
  1913. - fec_vtb_rsd_mon_en_len, 1)))
  1914. - return ret;
  1915. -
  1916. - /* FIXME should be register bits, I don't know which ones */
  1917. - ret = af9005_write_ofdm_register(state->d, 0xa601, 0);
  1918. -
  1919. - /* set api_retrain_never_freeze */
  1920. - deb_info("set api_retrain_never_freeze\n");
  1921. - if ((ret = af9005_write_ofdm_register(state->d, 0xaefb, 0x01)))
  1922. - return ret;
  1923. -
  1924. - /* load init script */
  1925. - deb_info("load init script\n");
  1926. - scriptlen = sizeof(script) / sizeof(RegDesc);
  1927. - for (i = 0; i < scriptlen; i++) {
  1928. - if ((ret =
  1929. - af9005_write_register_bits(state->d, script[i].reg,
  1930. - script[i].pos,
  1931. - script[i].len, script[i].val)))
  1932. - return ret;
  1933. - /* save 3 bytes of original fcw */
  1934. - if (script[i].reg == 0xae18)
  1935. - temp2 = script[i].val;
  1936. - if (script[i].reg == 0xae19)
  1937. - temp1 = script[i].val;
  1938. - if (script[i].reg == 0xae1a)
  1939. - temp0 = script[i].val;
  1940. -
  1941. - /* save original unplug threshold */
  1942. - if (script[i].reg == xd_p_reg_unplug_th)
  1943. - state->original_if_unplug_th = script[i].val;
  1944. - if (script[i].reg == xd_p_reg_unplug_rf_gain_th)
  1945. - state->original_rf_unplug_th = script[i].val;
  1946. - if (script[i].reg == xd_p_reg_unplug_dtop_if_gain_th)
  1947. - state->original_dtop_if_unplug_th = script[i].val;
  1948. - if (script[i].reg == xd_p_reg_unplug_dtop_rf_gain_th)
  1949. - state->original_dtop_rf_unplug_th = script[i].val;
  1950. -
  1951. - }
  1952. - state->original_fcw =
  1953. - ((u32) temp2 << 16) + ((u32) temp1 << 8) + (u32) temp0;
  1954. -
  1955. -
  1956. - /* save original TOPs */
  1957. - deb_info("save original TOPs\n");
  1958. -
  1959. - /* RF TOP */
  1960. - ret =
  1961. - af9005_read_word_agc(state->d,
  1962. - xd_p_reg_aagc_rf_top_numerator_9_8,
  1963. - xd_p_reg_aagc_rf_top_numerator_7_0, 0, 2,
  1964. - &state->original_rf_top);
  1965. - if (ret)
  1966. - return ret;
  1967. -
  1968. - /* IF TOP */
  1969. - ret =
  1970. - af9005_read_word_agc(state->d,
  1971. - xd_p_reg_aagc_if_top_numerator_9_8,
  1972. - xd_p_reg_aagc_if_top_numerator_7_0, 0, 2,
  1973. - &state->original_if_top);
  1974. - if (ret)
  1975. - return ret;
  1976. -
  1977. - /* ACI 0 IF TOP */
  1978. - ret =
  1979. - af9005_read_word_agc(state->d, 0xA60E, 0xA60A, 4, 2,
  1980. - &state->original_aci0_if_top);
  1981. - if (ret)
  1982. - return ret;
  1983. -
  1984. - /* ACI 1 IF TOP */
  1985. - ret =
  1986. - af9005_read_word_agc(state->d, 0xA60E, 0xA60B, 6, 2,
  1987. - &state->original_aci1_if_top);
  1988. - if (ret)
  1989. - return ret;
  1990. -
  1991. - /* attach tuner and init */
  1992. - if (fe->ops.tuner_ops.release == NULL) {
  1993. - /* read tuner and board id from eeprom */
  1994. - ret = af9005_read_eeprom(adap->dev, 0xc6, buf, 2);
  1995. - if (ret) {
  1996. - err("Impossible to read EEPROM\n");
  1997. - return ret;
  1998. - }
  1999. - deb_info("Tuner id %d, board id %d\n", buf[0], buf[1]);
  2000. - switch (buf[0]) {
  2001. - case 2: /* MT2060 */
  2002. - /* read if1 from eeprom */
  2003. - ret = af9005_read_eeprom(adap->dev, 0xc8, buf, 2);
  2004. - if (ret) {
  2005. - err("Impossible to read EEPROM\n");
  2006. - return ret;
  2007. - }
  2008. - if1 = (u16) (buf[0] << 8) + buf[1];
  2009. - if (dvb_attach(mt2060_attach, fe, &adap->dev->i2c_adap,
  2010. - &af9005_mt2060_config, if1) == NULL) {
  2011. - deb_info("MT2060 attach failed\n");
  2012. - return -ENODEV;
  2013. - }
  2014. - break;
  2015. - case 3: /* QT1010 */
  2016. - case 9: /* QT1010B */
  2017. - if (dvb_attach(qt1010_attach, fe, &adap->dev->i2c_adap,
  2018. - &af9005_qt1010_config) ==NULL) {
  2019. - deb_info("QT1010 attach failed\n");
  2020. - return -ENODEV;
  2021. - }
  2022. - break;
  2023. - default:
  2024. - err("Unsupported tuner type %d", buf[0]);
  2025. - return -ENODEV;
  2026. - }
  2027. - ret = fe->ops.tuner_ops.init(fe);
  2028. - if (ret)
  2029. - return ret;
  2030. - }
  2031. -
  2032. - deb_info("profit!\n");
  2033. - return 0;
  2034. -}
  2035. -
  2036. -static int af9005_fe_sleep(struct dvb_frontend *fe)
  2037. -{
  2038. - return af9005_fe_power(fe, 0);
  2039. -}
  2040. -
  2041. -static int af9005_ts_bus_ctrl(struct dvb_frontend *fe, int acquire)
  2042. -{
  2043. - struct af9005_fe_state *state = fe->demodulator_priv;
  2044. -
  2045. - if (acquire) {
  2046. - state->opened++;
  2047. - } else {
  2048. -
  2049. - state->opened--;
  2050. - if (!state->opened)
  2051. - af9005_led_control(state->d, 0);
  2052. - }
  2053. - return 0;
  2054. -}
  2055. -
  2056. -static int af9005_fe_set_frontend(struct dvb_frontend *fe)
  2057. -{
  2058. - struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
  2059. - struct af9005_fe_state *state = fe->demodulator_priv;
  2060. - int ret;
  2061. - u8 temp, temp0, temp1, temp2;
  2062. -
  2063. - deb_info("af9005_fe_set_frontend freq %d bw %d\n", fep->frequency,
  2064. - fep->bandwidth_hz);
  2065. - if (fe->ops.tuner_ops.release == NULL) {
  2066. - err("Tuner not attached");
  2067. - return -ENODEV;
  2068. - }
  2069. -
  2070. - deb_info("turn off led\n");
  2071. - /* not in the log */
  2072. - ret = af9005_led_control(state->d, 0);
  2073. - if (ret)
  2074. - return ret;
  2075. - /* not sure about the bits */
  2076. - ret = af9005_write_register_bits(state->d, XD_MP2IF_MISC, 2, 1, 0);
  2077. - if (ret)
  2078. - return ret;
  2079. -
  2080. - /* set FCW to default value */
  2081. - deb_info("set FCW to default value\n");
  2082. - temp0 = (u8) (state->original_fcw & 0x000000ff);
  2083. - temp1 = (u8) ((state->original_fcw & 0x0000ff00) >> 8);
  2084. - temp2 = (u8) ((state->original_fcw & 0x00ff0000) >> 16);
  2085. - ret = af9005_write_ofdm_register(state->d, 0xae1a, temp0);
  2086. - if (ret)
  2087. - return ret;
  2088. - ret = af9005_write_ofdm_register(state->d, 0xae19, temp1);
  2089. - if (ret)
  2090. - return ret;
  2091. - ret = af9005_write_ofdm_register(state->d, 0xae18, temp2);
  2092. - if (ret)
  2093. - return ret;
  2094. -
  2095. - /* restore original TOPs */
  2096. - deb_info("restore original TOPs\n");
  2097. - ret =
  2098. - af9005_write_word_agc(state->d,
  2099. - xd_p_reg_aagc_rf_top_numerator_9_8,
  2100. - xd_p_reg_aagc_rf_top_numerator_7_0, 0, 2,
  2101. - state->original_rf_top);
  2102. - if (ret)
  2103. - return ret;
  2104. - ret =
  2105. - af9005_write_word_agc(state->d,
  2106. - xd_p_reg_aagc_if_top_numerator_9_8,
  2107. - xd_p_reg_aagc_if_top_numerator_7_0, 0, 2,
  2108. - state->original_if_top);
  2109. - if (ret)
  2110. - return ret;
  2111. - ret =
  2112. - af9005_write_word_agc(state->d, 0xA60E, 0xA60A, 4, 2,
  2113. - state->original_aci0_if_top);
  2114. - if (ret)
  2115. - return ret;
  2116. - ret =
  2117. - af9005_write_word_agc(state->d, 0xA60E, 0xA60B, 6, 2,
  2118. - state->original_aci1_if_top);
  2119. - if (ret)
  2120. - return ret;
  2121. -
  2122. - /* select bandwidth */
  2123. - deb_info("select bandwidth");
  2124. - ret = af9005_fe_select_bw(state->d, fep->bandwidth_hz);
  2125. - if (ret)
  2126. - return ret;
  2127. - ret = af9005_fe_program_cfoe(state->d, fep->bandwidth_hz);
  2128. - if (ret)
  2129. - return ret;
  2130. -
  2131. - /* clear easy mode flag */
  2132. - deb_info("clear easy mode flag\n");
  2133. - ret = af9005_write_ofdm_register(state->d, 0xaefd, 0);
  2134. - if (ret)
  2135. - return ret;
  2136. -
  2137. - /* set unplug threshold to original value */
  2138. - deb_info("set unplug threshold to original value\n");
  2139. - ret =
  2140. - af9005_write_ofdm_register(state->d, xd_p_reg_unplug_th,
  2141. - state->original_if_unplug_th);
  2142. - if (ret)
  2143. - return ret;
  2144. - /* set tuner */
  2145. - deb_info("set tuner\n");
  2146. - ret = fe->ops.tuner_ops.set_params(fe);
  2147. - if (ret)
  2148. - return ret;
  2149. -
  2150. - /* trigger ofsm */
  2151. - deb_info("trigger ofsm\n");
  2152. - temp = 0;
  2153. - ret = af9005_write_tuner_registers(state->d, 0xffff, &temp, 1);
  2154. - if (ret)
  2155. - return ret;
  2156. -
  2157. - /* clear retrain and freeze flag */
  2158. - deb_info("clear retrain and freeze flag\n");
  2159. - ret =
  2160. - af9005_write_register_bits(state->d,
  2161. - xd_p_reg_api_retrain_request,
  2162. - reg_api_retrain_request_pos, 2, 0);
  2163. - if (ret)
  2164. - return ret;
  2165. -
  2166. - /* reset pre viterbi and post viterbi registers and statistics */
  2167. - af9005_reset_pre_viterbi(fe);
  2168. - af9005_reset_post_viterbi(fe);
  2169. - state->pre_vit_error_count = 0;
  2170. - state->pre_vit_bit_count = 0;
  2171. - state->ber = 0;
  2172. - state->post_vit_error_count = 0;
  2173. - /* state->unc = 0; commented out since it should be ever increasing */
  2174. - state->abort_count = 0;
  2175. -
  2176. - state->next_status_check = jiffies;
  2177. - state->strong = -1;
  2178. -
  2179. - return 0;
  2180. -}
  2181. -
  2182. -static int af9005_fe_get_frontend(struct dvb_frontend *fe,
  2183. - struct dtv_frontend_properties *fep)
  2184. -{
  2185. - struct af9005_fe_state *state = fe->demodulator_priv;
  2186. - int ret;
  2187. - u8 temp;
  2188. -
  2189. - /* mode */
  2190. - ret =
  2191. - af9005_read_register_bits(state->d, xd_g_reg_tpsd_const,
  2192. - reg_tpsd_const_pos, reg_tpsd_const_len,
  2193. - &temp);
  2194. - if (ret)
  2195. - return ret;
  2196. - deb_info("===== fe_get_frontend_legacy = =============\n");
  2197. - deb_info("CONSTELLATION ");
  2198. - switch (temp) {
  2199. - case 0:
  2200. - fep->modulation = QPSK;
  2201. - deb_info("QPSK\n");
  2202. - break;
  2203. - case 1:
  2204. - fep->modulation = QAM_16;
  2205. - deb_info("QAM_16\n");
  2206. - break;
  2207. - case 2:
  2208. - fep->modulation = QAM_64;
  2209. - deb_info("QAM_64\n");
  2210. - break;
  2211. - }
  2212. -
  2213. - /* tps hierarchy and alpha value */
  2214. - ret =
  2215. - af9005_read_register_bits(state->d, xd_g_reg_tpsd_hier,
  2216. - reg_tpsd_hier_pos, reg_tpsd_hier_len,
  2217. - &temp);
  2218. - if (ret)
  2219. - return ret;
  2220. - deb_info("HIERARCHY ");
  2221. - switch (temp) {
  2222. - case 0:
  2223. - fep->hierarchy = HIERARCHY_NONE;
  2224. - deb_info("NONE\n");
  2225. - break;
  2226. - case 1:
  2227. - fep->hierarchy = HIERARCHY_1;
  2228. - deb_info("1\n");
  2229. - break;
  2230. - case 2:
  2231. - fep->hierarchy = HIERARCHY_2;
  2232. - deb_info("2\n");
  2233. - break;
  2234. - case 3:
  2235. - fep->hierarchy = HIERARCHY_4;
  2236. - deb_info("4\n");
  2237. - break;
  2238. - }
  2239. -
  2240. - /* high/low priority */
  2241. - ret =
  2242. - af9005_read_register_bits(state->d, xd_g_reg_dec_pri,
  2243. - reg_dec_pri_pos, reg_dec_pri_len, &temp);
  2244. - if (ret)
  2245. - return ret;
  2246. - /* if temp is set = high priority */
  2247. - deb_info("PRIORITY %s\n", temp ? "high" : "low");
  2248. -
  2249. - /* high coderate */
  2250. - ret =
  2251. - af9005_read_register_bits(state->d, xd_g_reg_tpsd_hpcr,
  2252. - reg_tpsd_hpcr_pos, reg_tpsd_hpcr_len,
  2253. - &temp);
  2254. - if (ret)
  2255. - return ret;
  2256. - deb_info("CODERATE HP ");
  2257. - switch (temp) {
  2258. - case 0:
  2259. - fep->code_rate_HP = FEC_1_2;
  2260. - deb_info("FEC_1_2\n");
  2261. - break;
  2262. - case 1:
  2263. - fep->code_rate_HP = FEC_2_3;
  2264. - deb_info("FEC_2_3\n");
  2265. - break;
  2266. - case 2:
  2267. - fep->code_rate_HP = FEC_3_4;
  2268. - deb_info("FEC_3_4\n");
  2269. - break;
  2270. - case 3:
  2271. - fep->code_rate_HP = FEC_5_6;
  2272. - deb_info("FEC_5_6\n");
  2273. - break;
  2274. - case 4:
  2275. - fep->code_rate_HP = FEC_7_8;
  2276. - deb_info("FEC_7_8\n");
  2277. - break;
  2278. - }
  2279. -
  2280. - /* low coderate */
  2281. - ret =
  2282. - af9005_read_register_bits(state->d, xd_g_reg_tpsd_lpcr,
  2283. - reg_tpsd_lpcr_pos, reg_tpsd_lpcr_len,
  2284. - &temp);
  2285. - if (ret)
  2286. - return ret;
  2287. - deb_info("CODERATE LP ");
  2288. - switch (temp) {
  2289. - case 0:
  2290. - fep->code_rate_LP = FEC_1_2;
  2291. - deb_info("FEC_1_2\n");
  2292. - break;
  2293. - case 1:
  2294. - fep->code_rate_LP = FEC_2_3;
  2295. - deb_info("FEC_2_3\n");
  2296. - break;
  2297. - case 2:
  2298. - fep->code_rate_LP = FEC_3_4;
  2299. - deb_info("FEC_3_4\n");
  2300. - break;
  2301. - case 3:
  2302. - fep->code_rate_LP = FEC_5_6;
  2303. - deb_info("FEC_5_6\n");
  2304. - break;
  2305. - case 4:
  2306. - fep->code_rate_LP = FEC_7_8;
  2307. - deb_info("FEC_7_8\n");
  2308. - break;
  2309. - }
  2310. -
  2311. - /* guard interval */
  2312. - ret =
  2313. - af9005_read_register_bits(state->d, xd_g_reg_tpsd_gi,
  2314. - reg_tpsd_gi_pos, reg_tpsd_gi_len, &temp);
  2315. - if (ret)
  2316. - return ret;
  2317. - deb_info("GUARD INTERVAL ");
  2318. - switch (temp) {
  2319. - case 0:
  2320. - fep->guard_interval = GUARD_INTERVAL_1_32;
  2321. - deb_info("1_32\n");
  2322. - break;
  2323. - case 1:
  2324. - fep->guard_interval = GUARD_INTERVAL_1_16;
  2325. - deb_info("1_16\n");
  2326. - break;
  2327. - case 2:
  2328. - fep->guard_interval = GUARD_INTERVAL_1_8;
  2329. - deb_info("1_8\n");
  2330. - break;
  2331. - case 3:
  2332. - fep->guard_interval = GUARD_INTERVAL_1_4;
  2333. - deb_info("1_4\n");
  2334. - break;
  2335. - }
  2336. -
  2337. - /* fft */
  2338. - ret =
  2339. - af9005_read_register_bits(state->d, xd_g_reg_tpsd_txmod,
  2340. - reg_tpsd_txmod_pos, reg_tpsd_txmod_len,
  2341. - &temp);
  2342. - if (ret)
  2343. - return ret;
  2344. - deb_info("TRANSMISSION MODE ");
  2345. - switch (temp) {
  2346. - case 0:
  2347. - fep->transmission_mode = TRANSMISSION_MODE_2K;
  2348. - deb_info("2K\n");
  2349. - break;
  2350. - case 1:
  2351. - fep->transmission_mode = TRANSMISSION_MODE_8K;
  2352. - deb_info("8K\n");
  2353. - break;
  2354. - }
  2355. -
  2356. - /* bandwidth */
  2357. - ret =
  2358. - af9005_read_register_bits(state->d, xd_g_reg_bw, reg_bw_pos,
  2359. - reg_bw_len, &temp);
  2360. - deb_info("BANDWIDTH ");
  2361. - switch (temp) {
  2362. - case 0:
  2363. - fep->bandwidth_hz = 6000000;
  2364. - deb_info("6\n");
  2365. - break;
  2366. - case 1:
  2367. - fep->bandwidth_hz = 7000000;
  2368. - deb_info("7\n");
  2369. - break;
  2370. - case 2:
  2371. - fep->bandwidth_hz = 8000000;
  2372. - deb_info("8\n");
  2373. - break;
  2374. - }
  2375. - return 0;
  2376. -}
  2377. -
  2378. -static void af9005_fe_release(struct dvb_frontend *fe)
  2379. -{
  2380. - struct af9005_fe_state *state =
  2381. - (struct af9005_fe_state *)fe->demodulator_priv;
  2382. - kfree(state);
  2383. -}
  2384. -
  2385. -static const struct dvb_frontend_ops af9005_fe_ops;
  2386. -
  2387. -struct dvb_frontend *af9005_fe_attach(struct dvb_usb_device *d)
  2388. -{
  2389. - struct af9005_fe_state *state = NULL;
  2390. -
  2391. - /* allocate memory for the internal state */
  2392. - state = kzalloc(sizeof(struct af9005_fe_state), GFP_KERNEL);
  2393. - if (state == NULL)
  2394. - goto error;
  2395. -
  2396. - deb_info("attaching frontend af9005\n");
  2397. -
  2398. - state->d = d;
  2399. - state->opened = 0;
  2400. -
  2401. - memcpy(&state->frontend.ops, &af9005_fe_ops,
  2402. - sizeof(struct dvb_frontend_ops));
  2403. - state->frontend.demodulator_priv = state;
  2404. -
  2405. - return &state->frontend;
  2406. - error:
  2407. - return NULL;
  2408. -}
  2409. -
  2410. -static const struct dvb_frontend_ops af9005_fe_ops = {
  2411. - .delsys = { SYS_DVBT },
  2412. - .info = {
  2413. - .name = "AF9005 USB DVB-T",
  2414. - .frequency_min = 44250000,
  2415. - .frequency_max = 867250000,
  2416. - .frequency_stepsize = 250000,
  2417. - .caps = FE_CAN_INVERSION_AUTO |
  2418. - FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
  2419. - FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
  2420. - FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 |
  2421. - FE_CAN_QAM_AUTO | FE_CAN_TRANSMISSION_MODE_AUTO |
  2422. - FE_CAN_GUARD_INTERVAL_AUTO | FE_CAN_RECOVER |
  2423. - FE_CAN_HIERARCHY_AUTO,
  2424. - },
  2425. -
  2426. - .release = af9005_fe_release,
  2427. -
  2428. - .init = af9005_fe_init,
  2429. - .sleep = af9005_fe_sleep,
  2430. - .ts_bus_ctrl = af9005_ts_bus_ctrl,
  2431. -
  2432. - .set_frontend = af9005_fe_set_frontend,
  2433. - .get_frontend = af9005_fe_get_frontend,
  2434. -
  2435. - .read_status = af9005_fe_read_status,
  2436. - .read_ber = af9005_fe_read_ber,
  2437. - .read_signal_strength = af9005_fe_read_signal_strength,
  2438. - .read_snr = af9005_fe_read_snr,
  2439. - .read_ucblocks = af9005_fe_read_unc_blocks,
  2440. -};
  2441. diff -ruN ../linux-4.14.336/drivers/media/usb/dvb-usb/af9005-remote.c ./drivers/media/usb/dvb-usb/af9005-remote.c
  2442. --- linux-4.14.336/../linux-4.14.336/drivers/media/usb/dvb-usb/af9005-remote.c 2024-01-10 14:45:41.000000000 +0100
  2443. +++ linux-4.14.336/./drivers/media/usb/dvb-usb/af9005-remote.c 1970-01-01 01:00:00.000000000 +0100
  2444. @@ -1,153 +0,0 @@
  2445. -/* DVB USB compliant Linux driver for the Afatech 9005
  2446. - * USB1.1 DVB-T receiver.
  2447. - *
  2448. - * Standard remote decode function
  2449. - *
  2450. - * Copyright (C) 2007 Luca Olivetti (luca@ventoso.org)
  2451. - *
  2452. - * Thanks to Afatech who kindly provided information.
  2453. - *
  2454. - * This program is free software; you can redistribute it and/or modify
  2455. - * it under the terms of the GNU General Public License as published by
  2456. - * the Free Software Foundation; either version 2 of the License, or
  2457. - * (at your option) any later version.
  2458. - *
  2459. - * This program is distributed in the hope that it will be useful,
  2460. - * but WITHOUT ANY WARRANTY; without even the implied warranty of
  2461. - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  2462. - * GNU General Public License for more details.
  2463. - *
  2464. - * see Documentation/dvb/README.dvb-usb for more information
  2465. - */
  2466. -#include "af9005.h"
  2467. -/* debug */
  2468. -static int dvb_usb_af9005_remote_debug;
  2469. -module_param_named(debug, dvb_usb_af9005_remote_debug, int, 0644);
  2470. -MODULE_PARM_DESC(debug,
  2471. - "enable (1) or disable (0) debug messages."
  2472. - DVB_USB_DEBUG_STATUS);
  2473. -
  2474. -#define deb_decode(args...) dprintk(dvb_usb_af9005_remote_debug,0x01,args)
  2475. -
  2476. -struct rc_map_table rc_map_af9005_table[] = {
  2477. -
  2478. - {0x01b7, KEY_POWER},
  2479. - {0x01a7, KEY_VOLUMEUP},
  2480. - {0x0187, KEY_CHANNELUP},
  2481. - {0x017f, KEY_MUTE},
  2482. - {0x01bf, KEY_VOLUMEDOWN},
  2483. - {0x013f, KEY_CHANNELDOWN},
  2484. - {0x01df, KEY_1},
  2485. - {0x015f, KEY_2},
  2486. - {0x019f, KEY_3},
  2487. - {0x011f, KEY_4},
  2488. - {0x01ef, KEY_5},
  2489. - {0x016f, KEY_6},
  2490. - {0x01af, KEY_7},
  2491. - {0x0127, KEY_8},
  2492. - {0x0107, KEY_9},
  2493. - {0x01cf, KEY_ZOOM},
  2494. - {0x014f, KEY_0},
  2495. - {0x018f, KEY_GOTO}, /* marked jump on the remote */
  2496. -
  2497. - {0x00bd, KEY_POWER},
  2498. - {0x007d, KEY_VOLUMEUP},
  2499. - {0x00fd, KEY_CHANNELUP},
  2500. - {0x009d, KEY_MUTE},
  2501. - {0x005d, KEY_VOLUMEDOWN},
  2502. - {0x00dd, KEY_CHANNELDOWN},
  2503. - {0x00ad, KEY_1},
  2504. - {0x006d, KEY_2},
  2505. - {0x00ed, KEY_3},
  2506. - {0x008d, KEY_4},
  2507. - {0x004d, KEY_5},
  2508. - {0x00cd, KEY_6},
  2509. - {0x00b5, KEY_7},
  2510. - {0x0075, KEY_8},
  2511. - {0x00f5, KEY_9},
  2512. - {0x0095, KEY_ZOOM},
  2513. - {0x0055, KEY_0},
  2514. - {0x00d5, KEY_GOTO}, /* marked jump on the remote */
  2515. -};
  2516. -
  2517. -int rc_map_af9005_table_size = ARRAY_SIZE(rc_map_af9005_table);
  2518. -
  2519. -static int repeatable_keys[] = {
  2520. - KEY_VOLUMEUP,
  2521. - KEY_VOLUMEDOWN,
  2522. - KEY_CHANNELUP,
  2523. - KEY_CHANNELDOWN
  2524. -};
  2525. -
  2526. -int af9005_rc_decode(struct dvb_usb_device *d, u8 * data, int len, u32 * event,
  2527. - int *state)
  2528. -{
  2529. - u16 mark, space;
  2530. - u32 result;
  2531. - u8 cust, dat, invdat;
  2532. - int i;
  2533. -
  2534. - if (len >= 6) {
  2535. - mark = (u16) (data[0] << 8) + data[1];
  2536. - space = (u16) (data[2] << 8) + data[3];
  2537. - if (space * 3 < mark) {
  2538. - for (i = 0; i < ARRAY_SIZE(repeatable_keys); i++) {
  2539. - if (d->last_event == repeatable_keys[i]) {
  2540. - *state = REMOTE_KEY_REPEAT;
  2541. - *event = d->last_event;
  2542. - deb_decode("repeat key, event %x\n",
  2543. - *event);
  2544. - return 0;
  2545. - }
  2546. - }
  2547. - deb_decode("repeated key ignored (non repeatable)\n");
  2548. - return 0;
  2549. - } else if (len >= 33 * 4) { /*32 bits + start code */
  2550. - result = 0;
  2551. - for (i = 4; i < 4 + 32 * 4; i += 4) {
  2552. - result <<= 1;
  2553. - mark = (u16) (data[i] << 8) + data[i + 1];
  2554. - mark >>= 1;
  2555. - space = (u16) (data[i + 2] << 8) + data[i + 3];
  2556. - space >>= 1;
  2557. - if (mark * 2 > space)
  2558. - result += 1;
  2559. - }
  2560. - deb_decode("key pressed, raw value %x\n", result);
  2561. - if ((result & 0xff000000) != 0xfe000000) {
  2562. - deb_decode
  2563. - ("doesn't start with 0xfe, ignored\n");
  2564. - return 0;
  2565. - }
  2566. - cust = (result >> 16) & 0xff;
  2567. - dat = (result >> 8) & 0xff;
  2568. - invdat = (~result) & 0xff;
  2569. - if (dat != invdat) {
  2570. - deb_decode("code != inverted code\n");
  2571. - return 0;
  2572. - }
  2573. - for (i = 0; i < rc_map_af9005_table_size; i++) {
  2574. - if (rc5_custom(&rc_map_af9005_table[i]) == cust
  2575. - && rc5_data(&rc_map_af9005_table[i]) == dat) {
  2576. - *event = rc_map_af9005_table[i].keycode;
  2577. - *state = REMOTE_KEY_PRESSED;
  2578. - deb_decode
  2579. - ("key pressed, event %x\n", *event);
  2580. - return 0;
  2581. - }
  2582. - }
  2583. - deb_decode("not found in table\n");
  2584. - }
  2585. - }
  2586. - return 0;
  2587. -}
  2588. -
  2589. -EXPORT_SYMBOL(rc_map_af9005_table);
  2590. -EXPORT_SYMBOL(rc_map_af9005_table_size);
  2591. -EXPORT_SYMBOL(af9005_rc_decode);
  2592. -
  2593. -MODULE_AUTHOR("Luca Olivetti <luca@ventoso.org>");
  2594. -MODULE_DESCRIPTION
  2595. - ("Standard remote control decoder for Afatech 9005 DVB-T USB1.1 stick");
  2596. -MODULE_VERSION("1.0");
  2597. -MODULE_LICENSE("GPL");
  2598. diff -ruN ../linux-4.14.336/drivers/media/usb/dvb-usb/af9005-script.h ./drivers/media/usb/dvb-usb/af9005-script.h
  2599. --- linux-4.14.336/../linux-4.14.336/drivers/media/usb/dvb-usb/af9005-script.h 2024-01-10 14:45:41.000000000 +0100
  2600. +++ linux-4.14.336/./drivers/media/usb/dvb-usb/af9005-script.h 1970-01-01 01:00:00.000000000 +0100
  2601. @@ -1,204 +0,0 @@
  2602. -/* SPDX-License-Identifier: GPL-2.0 */
  2603. -/*
  2604. -File automatically generated by createinit.py using data
  2605. -extracted from AF05BDA.sys (windows driver):
  2606. -
  2607. -dd if=AF05BDA.sys of=initsequence bs=1 skip=88316 count=1110
  2608. -python createinit.py > af9005-script.h
  2609. -
  2610. -*/
  2611. -
  2612. -typedef struct {
  2613. - u16 reg;
  2614. - u8 pos;
  2615. - u8 len;
  2616. - u8 val;
  2617. -} RegDesc;
  2618. -
  2619. -static RegDesc script[] = {
  2620. - {0xa180, 0x0, 0x8, 0xa},
  2621. - {0xa181, 0x0, 0x8, 0xd7},
  2622. - {0xa182, 0x0, 0x8, 0xa3},
  2623. - {0xa0a0, 0x0, 0x8, 0x0},
  2624. - {0xa0a1, 0x0, 0x5, 0x0},
  2625. - {0xa0a1, 0x5, 0x1, 0x1},
  2626. - {0xa0c0, 0x0, 0x4, 0x1},
  2627. - {0xa20e, 0x4, 0x4, 0xa},
  2628. - {0xa20f, 0x0, 0x8, 0x40},
  2629. - {0xa210, 0x0, 0x8, 0x8},
  2630. - {0xa32a, 0x0, 0x4, 0xa},
  2631. - {0xa32c, 0x0, 0x8, 0x20},
  2632. - {0xa32b, 0x0, 0x8, 0x15},
  2633. - {0xa1a0, 0x1, 0x1, 0x1},
  2634. - {0xa000, 0x0, 0x1, 0x1},
  2635. - {0xa000, 0x1, 0x1, 0x0},
  2636. - {0xa001, 0x1, 0x1, 0x1},
  2637. - {0xa001, 0x0, 0x1, 0x0},
  2638. - {0xa001, 0x5, 0x1, 0x0},
  2639. - {0xa00e, 0x0, 0x5, 0x10},
  2640. - {0xa00f, 0x0, 0x3, 0x4},
  2641. - {0xa00f, 0x3, 0x3, 0x5},
  2642. - {0xa010, 0x0, 0x3, 0x4},
  2643. - {0xa010, 0x3, 0x3, 0x5},
  2644. - {0xa016, 0x4, 0x4, 0x3},
  2645. - {0xa01f, 0x0, 0x6, 0xa},
  2646. - {0xa020, 0x0, 0x6, 0xa},
  2647. - {0xa2bc, 0x0, 0x1, 0x1},
  2648. - {0xa2bc, 0x5, 0x1, 0x1},
  2649. - {0xa015, 0x0, 0x8, 0x50},
  2650. - {0xa016, 0x0, 0x1, 0x0},
  2651. - {0xa02a, 0x0, 0x8, 0x50},
  2652. - {0xa029, 0x0, 0x8, 0x4b},
  2653. - {0xa614, 0x0, 0x8, 0x46},
  2654. - {0xa002, 0x0, 0x5, 0x19},
  2655. - {0xa003, 0x0, 0x5, 0x1a},
  2656. - {0xa004, 0x0, 0x5, 0x19},
  2657. - {0xa005, 0x0, 0x5, 0x1a},
  2658. - {0xa008, 0x0, 0x8, 0x69},
  2659. - {0xa009, 0x0, 0x2, 0x2},
  2660. - {0xae1b, 0x0, 0x8, 0x69},
  2661. - {0xae1c, 0x0, 0x8, 0x2},
  2662. - {0xae1d, 0x0, 0x8, 0x2a},
  2663. - {0xa022, 0x0, 0x8, 0xaa},
  2664. - {0xa006, 0x0, 0x8, 0xc8},
  2665. - {0xa007, 0x0, 0x2, 0x0},
  2666. - {0xa00c, 0x0, 0x8, 0xba},
  2667. - {0xa00d, 0x0, 0x2, 0x2},
  2668. - {0xa608, 0x0, 0x8, 0xba},
  2669. - {0xa60e, 0x0, 0x2, 0x2},
  2670. - {0xa609, 0x0, 0x8, 0x80},
  2671. - {0xa60e, 0x2, 0x2, 0x3},
  2672. - {0xa00a, 0x0, 0x8, 0xb6},
  2673. - {0xa00b, 0x0, 0x2, 0x0},
  2674. - {0xa011, 0x0, 0x8, 0xb9},
  2675. - {0xa012, 0x0, 0x2, 0x0},
  2676. - {0xa013, 0x0, 0x8, 0xbd},
  2677. - {0xa014, 0x0, 0x2, 0x2},
  2678. - {0xa366, 0x0, 0x1, 0x1},
  2679. - {0xa2bc, 0x3, 0x1, 0x0},
  2680. - {0xa2bd, 0x0, 0x8, 0xa},
  2681. - {0xa2be, 0x0, 0x8, 0x14},
  2682. - {0xa2bf, 0x0, 0x8, 0x8},
  2683. - {0xa60a, 0x0, 0x8, 0xbd},
  2684. - {0xa60e, 0x4, 0x2, 0x2},
  2685. - {0xa60b, 0x0, 0x8, 0x86},
  2686. - {0xa60e, 0x6, 0x2, 0x3},
  2687. - {0xa001, 0x2, 0x2, 0x1},
  2688. - {0xa1c7, 0x0, 0x8, 0xf5},
  2689. - {0xa03d, 0x0, 0x8, 0xb1},
  2690. - {0xa616, 0x0, 0x8, 0xff},
  2691. - {0xa617, 0x0, 0x8, 0xad},
  2692. - {0xa618, 0x0, 0x8, 0xad},
  2693. - {0xa61e, 0x3, 0x1, 0x1},
  2694. - {0xae1a, 0x0, 0x8, 0x0},
  2695. - {0xae19, 0x0, 0x8, 0xc8},
  2696. - {0xae18, 0x0, 0x8, 0x61},
  2697. - {0xa140, 0x0, 0x8, 0x0},
  2698. - {0xa141, 0x0, 0x8, 0xc8},
  2699. - {0xa142, 0x0, 0x7, 0x61},
  2700. - {0xa023, 0x0, 0x8, 0xff},
  2701. - {0xa021, 0x0, 0x8, 0xad},
  2702. - {0xa026, 0x0, 0x1, 0x0},
  2703. - {0xa024, 0x0, 0x8, 0xff},
  2704. - {0xa025, 0x0, 0x8, 0xff},
  2705. - {0xa1c8, 0x0, 0x8, 0xf},
  2706. - {0xa2bc, 0x1, 0x1, 0x0},
  2707. - {0xa60c, 0x0, 0x4, 0x5},
  2708. - {0xa60c, 0x4, 0x4, 0x6},
  2709. - {0xa60d, 0x0, 0x8, 0xa},
  2710. - {0xa371, 0x0, 0x1, 0x1},
  2711. - {0xa366, 0x1, 0x3, 0x7},
  2712. - {0xa338, 0x0, 0x8, 0x10},
  2713. - {0xa339, 0x0, 0x6, 0x7},
  2714. - {0xa33a, 0x0, 0x6, 0x1f},
  2715. - {0xa33b, 0x0, 0x8, 0xf6},
  2716. - {0xa33c, 0x3, 0x5, 0x4},
  2717. - {0xa33d, 0x4, 0x4, 0x0},
  2718. - {0xa33d, 0x1, 0x1, 0x1},
  2719. - {0xa33d, 0x2, 0x1, 0x1},
  2720. - {0xa33d, 0x3, 0x1, 0x1},
  2721. - {0xa16d, 0x0, 0x4, 0xf},
  2722. - {0xa161, 0x0, 0x5, 0x5},
  2723. - {0xa162, 0x0, 0x4, 0x5},
  2724. - {0xa165, 0x0, 0x8, 0xff},
  2725. - {0xa166, 0x0, 0x8, 0x9c},
  2726. - {0xa2c3, 0x0, 0x4, 0x5},
  2727. - {0xa61a, 0x0, 0x6, 0xf},
  2728. - {0xb200, 0x0, 0x8, 0xa1},
  2729. - {0xb201, 0x0, 0x8, 0x7},
  2730. - {0xa093, 0x0, 0x1, 0x0},
  2731. - {0xa093, 0x1, 0x5, 0xf},
  2732. - {0xa094, 0x0, 0x8, 0xff},
  2733. - {0xa095, 0x0, 0x8, 0xf},
  2734. - {0xa080, 0x2, 0x5, 0x3},
  2735. - {0xa081, 0x0, 0x4, 0x0},
  2736. - {0xa081, 0x4, 0x4, 0x9},
  2737. - {0xa082, 0x0, 0x5, 0x1f},
  2738. - {0xa08d, 0x0, 0x8, 0x1},
  2739. - {0xa083, 0x0, 0x8, 0x32},
  2740. - {0xa084, 0x0, 0x1, 0x0},
  2741. - {0xa08e, 0x0, 0x8, 0x3},
  2742. - {0xa085, 0x0, 0x8, 0x32},
  2743. - {0xa086, 0x0, 0x3, 0x0},
  2744. - {0xa087, 0x0, 0x8, 0x6e},
  2745. - {0xa088, 0x0, 0x5, 0x15},
  2746. - {0xa089, 0x0, 0x8, 0x0},
  2747. - {0xa08a, 0x0, 0x5, 0x19},
  2748. - {0xa08b, 0x0, 0x8, 0x92},
  2749. - {0xa08c, 0x0, 0x5, 0x1c},
  2750. - {0xa120, 0x0, 0x8, 0x0},
  2751. - {0xa121, 0x0, 0x5, 0x10},
  2752. - {0xa122, 0x0, 0x8, 0x0},
  2753. - {0xa123, 0x0, 0x7, 0x40},
  2754. - {0xa123, 0x7, 0x1, 0x0},
  2755. - {0xa124, 0x0, 0x8, 0x13},
  2756. - {0xa125, 0x0, 0x7, 0x10},
  2757. - {0xa1c0, 0x0, 0x8, 0x0},
  2758. - {0xa1c1, 0x0, 0x5, 0x4},
  2759. - {0xa1c2, 0x0, 0x8, 0x0},
  2760. - {0xa1c3, 0x0, 0x5, 0x10},
  2761. - {0xa1c3, 0x5, 0x3, 0x0},
  2762. - {0xa1c4, 0x0, 0x6, 0x0},
  2763. - {0xa1c5, 0x0, 0x7, 0x10},
  2764. - {0xa100, 0x0, 0x8, 0x0},
  2765. - {0xa101, 0x0, 0x5, 0x10},
  2766. - {0xa102, 0x0, 0x8, 0x0},
  2767. - {0xa103, 0x0, 0x7, 0x40},
  2768. - {0xa103, 0x7, 0x1, 0x0},
  2769. - {0xa104, 0x0, 0x8, 0x18},
  2770. - {0xa105, 0x0, 0x7, 0xa},
  2771. - {0xa106, 0x0, 0x8, 0x20},
  2772. - {0xa107, 0x0, 0x8, 0x40},
  2773. - {0xa108, 0x0, 0x4, 0x0},
  2774. - {0xa38c, 0x0, 0x8, 0xfc},
  2775. - {0xa38d, 0x0, 0x8, 0x0},
  2776. - {0xa38e, 0x0, 0x8, 0x7e},
  2777. - {0xa38f, 0x0, 0x8, 0x0},
  2778. - {0xa390, 0x0, 0x8, 0x2f},
  2779. - {0xa60f, 0x5, 0x1, 0x1},
  2780. - {0xa170, 0x0, 0x8, 0xdc},
  2781. - {0xa171, 0x0, 0x2, 0x0},
  2782. - {0xa2ae, 0x0, 0x1, 0x1},
  2783. - {0xa2ae, 0x1, 0x1, 0x1},
  2784. - {0xa392, 0x0, 0x1, 0x1},
  2785. - {0xa391, 0x2, 0x1, 0x0},
  2786. - {0xabc1, 0x0, 0x8, 0xff},
  2787. - {0xabc2, 0x0, 0x8, 0x0},
  2788. - {0xabc8, 0x0, 0x8, 0x8},
  2789. - {0xabca, 0x0, 0x8, 0x10},
  2790. - {0xabcb, 0x0, 0x1, 0x0},
  2791. - {0xabc3, 0x5, 0x3, 0x7},
  2792. - {0xabc0, 0x6, 0x1, 0x0},
  2793. - {0xabc0, 0x4, 0x2, 0x0},
  2794. - {0xa344, 0x4, 0x4, 0x1},
  2795. - {0xabc0, 0x7, 0x1, 0x1},
  2796. - {0xabc0, 0x2, 0x1, 0x1},
  2797. - {0xa345, 0x0, 0x8, 0x66},
  2798. - {0xa346, 0x0, 0x8, 0x66},
  2799. - {0xa347, 0x0, 0x4, 0x0},
  2800. - {0xa343, 0x0, 0x4, 0xa},
  2801. - {0xa347, 0x4, 0x4, 0x2},
  2802. - {0xa348, 0x0, 0x4, 0xc},
  2803. - {0xa348, 0x4, 0x4, 0x7},
  2804. - {0xa349, 0x0, 0x6, 0x2},
  2805. -};
  2806. diff -ruN ../linux-4.14.336/drivers/media/usb/dvb-usb/af9005.c ./drivers/media/usb/dvb-usb/af9005.c
  2807. --- linux-4.14.336/../linux-4.14.336/drivers/media/usb/dvb-usb/af9005.c 2024-01-10 14:45:41.000000000 +0100
  2808. +++ linux-4.14.336/./drivers/media/usb/dvb-usb/af9005.c 1970-01-01 01:00:00.000000000 +0100
  2809. @@ -1,1151 +0,0 @@
  2810. -/* DVB USB compliant Linux driver for the Afatech 9005
  2811. - * USB1.1 DVB-T receiver.
  2812. - *
  2813. - * Copyright (C) 2007 Luca Olivetti (luca@ventoso.org)
  2814. - *
  2815. - * Thanks to Afatech who kindly provided information.
  2816. - *
  2817. - * This program is free software; you can redistribute it and/or modify
  2818. - * it under the terms of the GNU General Public License as published by
  2819. - * the Free Software Foundation; either version 2 of the License, or
  2820. - * (at your option) any later version.
  2821. - *
  2822. - * This program is distributed in the hope that it will be useful,
  2823. - * but WITHOUT ANY WARRANTY; without even the implied warranty of
  2824. - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  2825. - * GNU General Public License for more details.
  2826. - *
  2827. - * see Documentation/dvb/README.dvb-usb for more information
  2828. - */
  2829. -#include "af9005.h"
  2830. -
  2831. -/* debug */
  2832. -int dvb_usb_af9005_debug;
  2833. -module_param_named(debug, dvb_usb_af9005_debug, int, 0644);
  2834. -MODULE_PARM_DESC(debug,
  2835. - "set debugging level (1=info,xfer=2,rc=4,reg=8,i2c=16,fw=32 (or-able))."
  2836. - DVB_USB_DEBUG_STATUS);
  2837. -/* enable obnoxious led */
  2838. -bool dvb_usb_af9005_led = true;
  2839. -module_param_named(led, dvb_usb_af9005_led, bool, 0644);
  2840. -MODULE_PARM_DESC(led, "enable led (default: 1).");
  2841. -
  2842. -/* eeprom dump */
  2843. -static int dvb_usb_af9005_dump_eeprom;
  2844. -module_param_named(dump_eeprom, dvb_usb_af9005_dump_eeprom, int, 0);
  2845. -MODULE_PARM_DESC(dump_eeprom, "dump contents of the eeprom.");
  2846. -
  2847. -DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
  2848. -
  2849. -/* remote control decoder */
  2850. -static int (*rc_decode) (struct dvb_usb_device *d, u8 *data, int len,
  2851. - u32 *event, int *state);
  2852. -static void *rc_keys;
  2853. -static int *rc_keys_size;
  2854. -
  2855. -u8 regmask[8] = { 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff };
  2856. -
  2857. -struct af9005_device_state {
  2858. - u8 sequence;
  2859. - int led_state;
  2860. - unsigned char data[256];
  2861. -};
  2862. -
  2863. -static int af9005_generic_read_write(struct dvb_usb_device *d, u16 reg,
  2864. - int readwrite, int type, u8 * values, int len)
  2865. -{
  2866. - struct af9005_device_state *st = d->priv;
  2867. - u8 command, seq;
  2868. - int i, ret;
  2869. -
  2870. - if (len < 1) {
  2871. - err("generic read/write, less than 1 byte. Makes no sense.");
  2872. - return -EINVAL;
  2873. - }
  2874. - if (len > 8) {
  2875. - err("generic read/write, more than 8 bytes. Not supported.");
  2876. - return -EINVAL;
  2877. - }
  2878. -
  2879. - mutex_lock(&d->data_mutex);
  2880. - st->data[0] = 14; /* rest of buffer length low */
  2881. - st->data[1] = 0; /* rest of buffer length high */
  2882. -
  2883. - st->data[2] = AF9005_REGISTER_RW; /* register operation */
  2884. - st->data[3] = 12; /* rest of buffer length */
  2885. -
  2886. - st->data[4] = seq = st->sequence++; /* sequence number */
  2887. -
  2888. - st->data[5] = (u8) (reg >> 8); /* register address */
  2889. - st->data[6] = (u8) (reg & 0xff);
  2890. -
  2891. - if (type == AF9005_OFDM_REG) {
  2892. - command = AF9005_CMD_OFDM_REG;
  2893. - } else {
  2894. - command = AF9005_CMD_TUNER;
  2895. - }
  2896. -
  2897. - if (len > 1)
  2898. - command |=
  2899. - AF9005_CMD_BURST | AF9005_CMD_AUTOINC | (len - 1) << 3;
  2900. - command |= readwrite;
  2901. - if (readwrite == AF9005_CMD_WRITE)
  2902. - for (i = 0; i < len; i++)
  2903. - st->data[8 + i] = values[i];
  2904. - else if (type == AF9005_TUNER_REG)
  2905. - /* read command for tuner, the first byte contains the i2c address */
  2906. - st->data[8] = values[0];
  2907. - st->data[7] = command;
  2908. -
  2909. - ret = dvb_usb_generic_rw(d, st->data, 16, st->data, 17, 0);
  2910. - if (ret)
  2911. - goto ret;
  2912. -
  2913. - /* sanity check */
  2914. - if (st->data[2] != AF9005_REGISTER_RW_ACK) {
  2915. - err("generic read/write, wrong reply code.");
  2916. - ret = -EIO;
  2917. - goto ret;
  2918. - }
  2919. - if (st->data[3] != 0x0d) {
  2920. - err("generic read/write, wrong length in reply.");
  2921. - ret = -EIO;
  2922. - goto ret;
  2923. - }
  2924. - if (st->data[4] != seq) {
  2925. - err("generic read/write, wrong sequence in reply.");
  2926. - ret = -EIO;
  2927. - goto ret;
  2928. - }
  2929. - /*
  2930. - * In thesis, both input and output buffers should have
  2931. - * identical values for st->data[5] to st->data[8].
  2932. - * However, windows driver doesn't check these fields, in fact
  2933. - * sometimes the register in the reply is different that what
  2934. - * has been sent
  2935. - */
  2936. - if (st->data[16] != 0x01) {
  2937. - err("generic read/write wrong status code in reply.");
  2938. - ret = -EIO;
  2939. - goto ret;
  2940. - }
  2941. -
  2942. - if (readwrite == AF9005_CMD_READ)
  2943. - for (i = 0; i < len; i++)
  2944. - values[i] = st->data[8 + i];
  2945. -
  2946. -ret:
  2947. - mutex_unlock(&d->data_mutex);
  2948. - return ret;
  2949. -
  2950. -}
  2951. -
  2952. -int af9005_read_ofdm_register(struct dvb_usb_device *d, u16 reg, u8 * value)
  2953. -{
  2954. - int ret;
  2955. - deb_reg("read register %x ", reg);
  2956. - ret = af9005_generic_read_write(d, reg,
  2957. - AF9005_CMD_READ, AF9005_OFDM_REG,
  2958. - value, 1);
  2959. - if (ret)
  2960. - deb_reg("failed\n");
  2961. - else
  2962. - deb_reg("value %x\n", *value);
  2963. - return ret;
  2964. -}
  2965. -
  2966. -int af9005_read_ofdm_registers(struct dvb_usb_device *d, u16 reg,
  2967. - u8 * values, int len)
  2968. -{
  2969. - int ret;
  2970. - deb_reg("read %d registers %x ", len, reg);
  2971. - ret = af9005_generic_read_write(d, reg,
  2972. - AF9005_CMD_READ, AF9005_OFDM_REG,
  2973. - values, len);
  2974. - if (ret)
  2975. - deb_reg("failed\n");
  2976. - else
  2977. - debug_dump(values, len, deb_reg);
  2978. - return ret;
  2979. -}
  2980. -
  2981. -int af9005_write_ofdm_register(struct dvb_usb_device *d, u16 reg, u8 value)
  2982. -{
  2983. - int ret;
  2984. - u8 temp = value;
  2985. - deb_reg("write register %x value %x ", reg, value);
  2986. - ret = af9005_generic_read_write(d, reg,
  2987. - AF9005_CMD_WRITE, AF9005_OFDM_REG,
  2988. - &temp, 1);
  2989. - if (ret)
  2990. - deb_reg("failed\n");
  2991. - else
  2992. - deb_reg("ok\n");
  2993. - return ret;
  2994. -}
  2995. -
  2996. -int af9005_write_ofdm_registers(struct dvb_usb_device *d, u16 reg,
  2997. - u8 * values, int len)
  2998. -{
  2999. - int ret;
  3000. - deb_reg("write %d registers %x values ", len, reg);
  3001. - debug_dump(values, len, deb_reg);
  3002. -
  3003. - ret = af9005_generic_read_write(d, reg,
  3004. - AF9005_CMD_WRITE, AF9005_OFDM_REG,
  3005. - values, len);
  3006. - if (ret)
  3007. - deb_reg("failed\n");
  3008. - else
  3009. - deb_reg("ok\n");
  3010. - return ret;
  3011. -}
  3012. -
  3013. -int af9005_read_register_bits(struct dvb_usb_device *d, u16 reg, u8 pos,
  3014. - u8 len, u8 * value)
  3015. -{
  3016. - u8 temp;
  3017. - int ret;
  3018. - deb_reg("read bits %x %x %x", reg, pos, len);
  3019. - ret = af9005_read_ofdm_register(d, reg, &temp);
  3020. - if (ret) {
  3021. - deb_reg(" failed\n");
  3022. - return ret;
  3023. - }
  3024. - *value = (temp >> pos) & regmask[len - 1];
  3025. - deb_reg(" value %x\n", *value);
  3026. - return 0;
  3027. -
  3028. -}
  3029. -
  3030. -int af9005_write_register_bits(struct dvb_usb_device *d, u16 reg, u8 pos,
  3031. - u8 len, u8 value)
  3032. -{
  3033. - u8 temp, mask;
  3034. - int ret;
  3035. - deb_reg("write bits %x %x %x value %x\n", reg, pos, len, value);
  3036. - if (pos == 0 && len == 8)
  3037. - return af9005_write_ofdm_register(d, reg, value);
  3038. - ret = af9005_read_ofdm_register(d, reg, &temp);
  3039. - if (ret)
  3040. - return ret;
  3041. - mask = regmask[len - 1] << pos;
  3042. - temp = (temp & ~mask) | ((value << pos) & mask);
  3043. - return af9005_write_ofdm_register(d, reg, temp);
  3044. -
  3045. -}
  3046. -
  3047. -static int af9005_usb_read_tuner_registers(struct dvb_usb_device *d,
  3048. - u16 reg, u8 * values, int len)
  3049. -{
  3050. - return af9005_generic_read_write(d, reg,
  3051. - AF9005_CMD_READ, AF9005_TUNER_REG,
  3052. - values, len);
  3053. -}
  3054. -
  3055. -static int af9005_usb_write_tuner_registers(struct dvb_usb_device *d,
  3056. - u16 reg, u8 * values, int len)
  3057. -{
  3058. - return af9005_generic_read_write(d, reg,
  3059. - AF9005_CMD_WRITE,
  3060. - AF9005_TUNER_REG, values, len);
  3061. -}
  3062. -
  3063. -int af9005_write_tuner_registers(struct dvb_usb_device *d, u16 reg,
  3064. - u8 * values, int len)
  3065. -{
  3066. - /* don't let the name of this function mislead you: it's just used
  3067. - as an interface from the firmware to the i2c bus. The actual
  3068. - i2c addresses are contained in the data */
  3069. - int ret, i, done = 0, fail = 0;
  3070. - u8 temp;
  3071. - ret = af9005_usb_write_tuner_registers(d, reg, values, len);
  3072. - if (ret)
  3073. - return ret;
  3074. - if (reg != 0xffff) {
  3075. - /* check if write done (0xa40d bit 1) or fail (0xa40d bit 2) */
  3076. - for (i = 0; i < 200; i++) {
  3077. - ret =
  3078. - af9005_read_ofdm_register(d,
  3079. - xd_I2C_i2c_m_status_wdat_done,
  3080. - &temp);
  3081. - if (ret)
  3082. - return ret;
  3083. - done = temp & (regmask[i2c_m_status_wdat_done_len - 1]
  3084. - << i2c_m_status_wdat_done_pos);
  3085. - if (done)
  3086. - break;
  3087. - fail = temp & (regmask[i2c_m_status_wdat_fail_len - 1]
  3088. - << i2c_m_status_wdat_fail_pos);
  3089. - if (fail)
  3090. - break;
  3091. - msleep(50);
  3092. - }
  3093. - if (i == 200)
  3094. - return -ETIMEDOUT;
  3095. - if (fail) {
  3096. - /* clear write fail bit */
  3097. - af9005_write_register_bits(d,
  3098. - xd_I2C_i2c_m_status_wdat_fail,
  3099. - i2c_m_status_wdat_fail_pos,
  3100. - i2c_m_status_wdat_fail_len,
  3101. - 1);
  3102. - return -EIO;
  3103. - }
  3104. - /* clear write done bit */
  3105. - ret =
  3106. - af9005_write_register_bits(d,
  3107. - xd_I2C_i2c_m_status_wdat_fail,
  3108. - i2c_m_status_wdat_done_pos,
  3109. - i2c_m_status_wdat_done_len, 1);
  3110. - if (ret)
  3111. - return ret;
  3112. - }
  3113. - return 0;
  3114. -}
  3115. -
  3116. -int af9005_read_tuner_registers(struct dvb_usb_device *d, u16 reg, u8 addr,
  3117. - u8 * values, int len)
  3118. -{
  3119. - /* don't let the name of this function mislead you: it's just used
  3120. - as an interface from the firmware to the i2c bus. The actual
  3121. - i2c addresses are contained in the data */
  3122. - int ret, i;
  3123. - u8 temp, buf[2];
  3124. -
  3125. - buf[0] = addr; /* tuner i2c address */
  3126. - buf[1] = values[0]; /* tuner register */
  3127. -
  3128. - values[0] = addr + 0x01; /* i2c read address */
  3129. -
  3130. - if (reg == APO_REG_I2C_RW_SILICON_TUNER) {
  3131. - /* write tuner i2c address to tuner, 0c00c0 undocumented, found by sniffing */
  3132. - ret = af9005_write_tuner_registers(d, 0x00c0, buf, 2);
  3133. - if (ret)
  3134. - return ret;
  3135. - }
  3136. -
  3137. - /* send read command to ofsm */
  3138. - ret = af9005_usb_read_tuner_registers(d, reg, values, 1);
  3139. - if (ret)
  3140. - return ret;
  3141. -
  3142. - /* check if read done */
  3143. - for (i = 0; i < 200; i++) {
  3144. - ret = af9005_read_ofdm_register(d, 0xa408, &temp);
  3145. - if (ret)
  3146. - return ret;
  3147. - if (temp & 0x01)
  3148. - break;
  3149. - msleep(50);
  3150. - }
  3151. - if (i == 200)
  3152. - return -ETIMEDOUT;
  3153. -
  3154. - /* clear read done bit (by writing 1) */
  3155. - ret = af9005_write_ofdm_register(d, xd_I2C_i2c_m_data8, 1);
  3156. - if (ret)
  3157. - return ret;
  3158. -
  3159. - /* get read data (available from 0xa400) */
  3160. - for (i = 0; i < len; i++) {
  3161. - ret = af9005_read_ofdm_register(d, 0xa400 + i, &temp);
  3162. - if (ret)
  3163. - return ret;
  3164. - values[i] = temp;
  3165. - }
  3166. - return 0;
  3167. -}
  3168. -
  3169. -static int af9005_i2c_write(struct dvb_usb_device *d, u8 i2caddr, u8 reg,
  3170. - u8 * data, int len)
  3171. -{
  3172. - int ret, i;
  3173. - u8 buf[3];
  3174. - deb_i2c("i2c_write i2caddr %x, reg %x, len %d data ", i2caddr,
  3175. - reg, len);
  3176. - debug_dump(data, len, deb_i2c);
  3177. -
  3178. - for (i = 0; i < len; i++) {
  3179. - buf[0] = i2caddr;
  3180. - buf[1] = reg + (u8) i;
  3181. - buf[2] = data[i];
  3182. - ret =
  3183. - af9005_write_tuner_registers(d,
  3184. - APO_REG_I2C_RW_SILICON_TUNER,
  3185. - buf, 3);
  3186. - if (ret) {
  3187. - deb_i2c("i2c_write failed\n");
  3188. - return ret;
  3189. - }
  3190. - }
  3191. - deb_i2c("i2c_write ok\n");
  3192. - return 0;
  3193. -}
  3194. -
  3195. -static int af9005_i2c_read(struct dvb_usb_device *d, u8 i2caddr, u8 reg,
  3196. - u8 * data, int len)
  3197. -{
  3198. - int ret, i;
  3199. - u8 temp;
  3200. - deb_i2c("i2c_read i2caddr %x, reg %x, len %d\n ", i2caddr, reg, len);
  3201. - for (i = 0; i < len; i++) {
  3202. - temp = reg + i;
  3203. - ret =
  3204. - af9005_read_tuner_registers(d,
  3205. - APO_REG_I2C_RW_SILICON_TUNER,
  3206. - i2caddr, &temp, 1);
  3207. - if (ret) {
  3208. - deb_i2c("i2c_read failed\n");
  3209. - return ret;
  3210. - }
  3211. - data[i] = temp;
  3212. - }
  3213. - deb_i2c("i2c data read: ");
  3214. - debug_dump(data, len, deb_i2c);
  3215. - return 0;
  3216. -}
  3217. -
  3218. -static int af9005_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[],
  3219. - int num)
  3220. -{
  3221. - /* only implements what the mt2060 module does, don't know how
  3222. - to make it really generic */
  3223. - struct dvb_usb_device *d = i2c_get_adapdata(adap);
  3224. - int ret;
  3225. - u8 reg, addr;
  3226. - u8 *value;
  3227. -
  3228. - if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
  3229. - return -EAGAIN;
  3230. -
  3231. - if (num > 2)
  3232. - warn("more than 2 i2c messages at a time is not handled yet. TODO.");
  3233. -
  3234. - if (num == 2) {
  3235. - /* reads a single register */
  3236. - reg = *msg[0].buf;
  3237. - addr = msg[0].addr;
  3238. - value = msg[1].buf;
  3239. - ret = af9005_i2c_read(d, addr, reg, value, 1);
  3240. - if (ret == 0)
  3241. - ret = 2;
  3242. - } else {
  3243. - if (msg[0].len < 2) {
  3244. - ret = -EOPNOTSUPP;
  3245. - goto unlock;
  3246. - }
  3247. - /* write one or more registers */
  3248. - reg = msg[0].buf[0];
  3249. - addr = msg[0].addr;
  3250. - value = &msg[0].buf[1];
  3251. - ret = af9005_i2c_write(d, addr, reg, value, msg[0].len - 1);
  3252. - if (ret == 0)
  3253. - ret = 1;
  3254. - }
  3255. -
  3256. -unlock:
  3257. - mutex_unlock(&d->i2c_mutex);
  3258. - return ret;
  3259. -}
  3260. -
  3261. -static u32 af9005_i2c_func(struct i2c_adapter *adapter)
  3262. -{
  3263. - return I2C_FUNC_I2C;
  3264. -}
  3265. -
  3266. -static struct i2c_algorithm af9005_i2c_algo = {
  3267. - .master_xfer = af9005_i2c_xfer,
  3268. - .functionality = af9005_i2c_func,
  3269. -};
  3270. -
  3271. -int af9005_send_command(struct dvb_usb_device *d, u8 command, u8 * wbuf,
  3272. - int wlen, u8 * rbuf, int rlen)
  3273. -{
  3274. - struct af9005_device_state *st = d->priv;
  3275. -
  3276. - int ret, i, packet_len;
  3277. - u8 seq;
  3278. -
  3279. - if (wlen < 0) {
  3280. - err("send command, wlen less than 0 bytes. Makes no sense.");
  3281. - return -EINVAL;
  3282. - }
  3283. - if (wlen > 54) {
  3284. - err("send command, wlen more than 54 bytes. Not supported.");
  3285. - return -EINVAL;
  3286. - }
  3287. - if (rlen > 54) {
  3288. - err("send command, rlen more than 54 bytes. Not supported.");
  3289. - return -EINVAL;
  3290. - }
  3291. - packet_len = wlen + 5;
  3292. -
  3293. - mutex_lock(&d->data_mutex);
  3294. -
  3295. - st->data[0] = (u8) (packet_len & 0xff);
  3296. - st->data[1] = (u8) ((packet_len & 0xff00) >> 8);
  3297. -
  3298. - st->data[2] = 0x26; /* packet type */
  3299. - st->data[3] = wlen + 3;
  3300. - st->data[4] = seq = st->sequence++;
  3301. - st->data[5] = command;
  3302. - st->data[6] = wlen;
  3303. - for (i = 0; i < wlen; i++)
  3304. - st->data[7 + i] = wbuf[i];
  3305. - ret = dvb_usb_generic_rw(d, st->data, wlen + 7, st->data, rlen + 7, 0);
  3306. - if (st->data[2] != 0x27) {
  3307. - err("send command, wrong reply code.");
  3308. - ret = -EIO;
  3309. - } else if (st->data[4] != seq) {
  3310. - err("send command, wrong sequence in reply.");
  3311. - ret = -EIO;
  3312. - } else if (st->data[5] != 0x01) {
  3313. - err("send command, wrong status code in reply.");
  3314. - ret = -EIO;
  3315. - } else if (st->data[6] != rlen) {
  3316. - err("send command, invalid data length in reply.");
  3317. - ret = -EIO;
  3318. - }
  3319. - if (!ret) {
  3320. - for (i = 0; i < rlen; i++)
  3321. - rbuf[i] = st->data[i + 7];
  3322. - }
  3323. -
  3324. - mutex_unlock(&d->data_mutex);
  3325. - return ret;
  3326. -}
  3327. -
  3328. -int af9005_read_eeprom(struct dvb_usb_device *d, u8 address, u8 * values,
  3329. - int len)
  3330. -{
  3331. - struct af9005_device_state *st = d->priv;
  3332. - u8 seq;
  3333. - int ret, i;
  3334. -
  3335. - mutex_lock(&d->data_mutex);
  3336. -
  3337. - memset(st->data, 0, sizeof(st->data));
  3338. -
  3339. - st->data[0] = 14; /* length of rest of packet low */
  3340. - st->data[1] = 0; /* length of rest of packer high */
  3341. -
  3342. - st->data[2] = 0x2a; /* read/write eeprom */
  3343. -
  3344. - st->data[3] = 12; /* size */
  3345. -
  3346. - st->data[4] = seq = st->sequence++;
  3347. -
  3348. - st->data[5] = 0; /* read */
  3349. -
  3350. - st->data[6] = len;
  3351. - st->data[7] = address;
  3352. - ret = dvb_usb_generic_rw(d, st->data, 16, st->data, 14, 0);
  3353. - if (st->data[2] != 0x2b) {
  3354. - err("Read eeprom, invalid reply code");
  3355. - ret = -EIO;
  3356. - } else if (st->data[3] != 10) {
  3357. - err("Read eeprom, invalid reply length");
  3358. - ret = -EIO;
  3359. - } else if (st->data[4] != seq) {
  3360. - err("Read eeprom, wrong sequence in reply ");
  3361. - ret = -EIO;
  3362. - } else if (st->data[5] != 1) {
  3363. - err("Read eeprom, wrong status in reply ");
  3364. - ret = -EIO;
  3365. - }
  3366. -
  3367. - if (!ret) {
  3368. - for (i = 0; i < len; i++)
  3369. - values[i] = st->data[6 + i];
  3370. - }
  3371. - mutex_unlock(&d->data_mutex);
  3372. -
  3373. - return ret;
  3374. -}
  3375. -
  3376. -static int af9005_boot_packet(struct usb_device *udev, int type, u8 *reply,
  3377. - u8 *buf, int size)
  3378. -{
  3379. - u16 checksum;
  3380. - int act_len = 0, i, ret;
  3381. -
  3382. - memset(buf, 0, size);
  3383. - buf[0] = (u8) (FW_BULKOUT_SIZE & 0xff);
  3384. - buf[1] = (u8) ((FW_BULKOUT_SIZE >> 8) & 0xff);
  3385. - switch (type) {
  3386. - case FW_CONFIG:
  3387. - buf[2] = 0x11;
  3388. - buf[3] = 0x04;
  3389. - buf[4] = 0x00; /* sequence number, original driver doesn't increment it here */
  3390. - buf[5] = 0x03;
  3391. - checksum = buf[4] + buf[5];
  3392. - buf[6] = (u8) ((checksum >> 8) & 0xff);
  3393. - buf[7] = (u8) (checksum & 0xff);
  3394. - break;
  3395. - case FW_CONFIRM:
  3396. - buf[2] = 0x11;
  3397. - buf[3] = 0x04;
  3398. - buf[4] = 0x00; /* sequence number, original driver doesn't increment it here */
  3399. - buf[5] = 0x01;
  3400. - checksum = buf[4] + buf[5];
  3401. - buf[6] = (u8) ((checksum >> 8) & 0xff);
  3402. - buf[7] = (u8) (checksum & 0xff);
  3403. - break;
  3404. - case FW_BOOT:
  3405. - buf[2] = 0x10;
  3406. - buf[3] = 0x08;
  3407. - buf[4] = 0x00; /* sequence number, original driver doesn't increment it here */
  3408. - buf[5] = 0x97;
  3409. - buf[6] = 0xaa;
  3410. - buf[7] = 0x55;
  3411. - buf[8] = 0xa5;
  3412. - buf[9] = 0x5a;
  3413. - checksum = 0;
  3414. - for (i = 4; i <= 9; i++)
  3415. - checksum += buf[i];
  3416. - buf[10] = (u8) ((checksum >> 8) & 0xff);
  3417. - buf[11] = (u8) (checksum & 0xff);
  3418. - break;
  3419. - default:
  3420. - err("boot packet invalid boot packet type");
  3421. - return -EINVAL;
  3422. - }
  3423. - deb_fw(">>> ");
  3424. - debug_dump(buf, FW_BULKOUT_SIZE + 2, deb_fw);
  3425. -
  3426. - ret = usb_bulk_msg(udev,
  3427. - usb_sndbulkpipe(udev, 0x02),
  3428. - buf, FW_BULKOUT_SIZE + 2, &act_len, 2000);
  3429. - if (ret)
  3430. - err("boot packet bulk message failed: %d (%d/%d)", ret,
  3431. - FW_BULKOUT_SIZE + 2, act_len);
  3432. - else
  3433. - ret = act_len != FW_BULKOUT_SIZE + 2 ? -1 : 0;
  3434. - if (ret)
  3435. - return ret;
  3436. - memset(buf, 0, 9);
  3437. - ret = usb_bulk_msg(udev,
  3438. - usb_rcvbulkpipe(udev, 0x01), buf, 9, &act_len, 2000);
  3439. - if (ret) {
  3440. - err("boot packet recv bulk message failed: %d", ret);
  3441. - return ret;
  3442. - }
  3443. - deb_fw("<<< ");
  3444. - debug_dump(buf, act_len, deb_fw);
  3445. - checksum = 0;
  3446. - switch (type) {
  3447. - case FW_CONFIG:
  3448. - if (buf[2] != 0x11) {
  3449. - err("boot bad config header.");
  3450. - return -EIO;
  3451. - }
  3452. - if (buf[3] != 0x05) {
  3453. - err("boot bad config size.");
  3454. - return -EIO;
  3455. - }
  3456. - if (buf[4] != 0x00) {
  3457. - err("boot bad config sequence.");
  3458. - return -EIO;
  3459. - }
  3460. - if (buf[5] != 0x04) {
  3461. - err("boot bad config subtype.");
  3462. - return -EIO;
  3463. - }
  3464. - for (i = 4; i <= 6; i++)
  3465. - checksum += buf[i];
  3466. - if (buf[7] * 256 + buf[8] != checksum) {
  3467. - err("boot bad config checksum.");
  3468. - return -EIO;
  3469. - }
  3470. - *reply = buf[6];
  3471. - break;
  3472. - case FW_CONFIRM:
  3473. - if (buf[2] != 0x11) {
  3474. - err("boot bad confirm header.");
  3475. - return -EIO;
  3476. - }
  3477. - if (buf[3] != 0x05) {
  3478. - err("boot bad confirm size.");
  3479. - return -EIO;
  3480. - }
  3481. - if (buf[4] != 0x00) {
  3482. - err("boot bad confirm sequence.");
  3483. - return -EIO;
  3484. - }
  3485. - if (buf[5] != 0x02) {
  3486. - err("boot bad confirm subtype.");
  3487. - return -EIO;
  3488. - }
  3489. - for (i = 4; i <= 6; i++)
  3490. - checksum += buf[i];
  3491. - if (buf[7] * 256 + buf[8] != checksum) {
  3492. - err("boot bad confirm checksum.");
  3493. - return -EIO;
  3494. - }
  3495. - *reply = buf[6];
  3496. - break;
  3497. - case FW_BOOT:
  3498. - if (buf[2] != 0x10) {
  3499. - err("boot bad boot header.");
  3500. - return -EIO;
  3501. - }
  3502. - if (buf[3] != 0x05) {
  3503. - err("boot bad boot size.");
  3504. - return -EIO;
  3505. - }
  3506. - if (buf[4] != 0x00) {
  3507. - err("boot bad boot sequence.");
  3508. - return -EIO;
  3509. - }
  3510. - if (buf[5] != 0x01) {
  3511. - err("boot bad boot pattern 01.");
  3512. - return -EIO;
  3513. - }
  3514. - if (buf[6] != 0x10) {
  3515. - err("boot bad boot pattern 10.");
  3516. - return -EIO;
  3517. - }
  3518. - for (i = 4; i <= 6; i++)
  3519. - checksum += buf[i];
  3520. - if (buf[7] * 256 + buf[8] != checksum) {
  3521. - err("boot bad boot checksum.");
  3522. - return -EIO;
  3523. - }
  3524. - break;
  3525. -
  3526. - }
  3527. -
  3528. - return 0;
  3529. -}
  3530. -
  3531. -static int af9005_download_firmware(struct usb_device *udev, const struct firmware *fw)
  3532. -{
  3533. - int i, packets, ret, act_len;
  3534. -
  3535. - u8 *buf;
  3536. - u8 reply;
  3537. -
  3538. - buf = kmalloc(FW_BULKOUT_SIZE + 2, GFP_KERNEL);
  3539. - if (!buf)
  3540. - return -ENOMEM;
  3541. -
  3542. - ret = af9005_boot_packet(udev, FW_CONFIG, &reply, buf,
  3543. - FW_BULKOUT_SIZE + 2);
  3544. - if (ret)
  3545. - goto err;
  3546. - if (reply != 0x01) {
  3547. - err("before downloading firmware, FW_CONFIG expected 0x01, received 0x%x", reply);
  3548. - ret = -EIO;
  3549. - goto err;
  3550. - }
  3551. - packets = fw->size / FW_BULKOUT_SIZE;
  3552. - buf[0] = (u8) (FW_BULKOUT_SIZE & 0xff);
  3553. - buf[1] = (u8) ((FW_BULKOUT_SIZE >> 8) & 0xff);
  3554. - for (i = 0; i < packets; i++) {
  3555. - memcpy(&buf[2], fw->data + i * FW_BULKOUT_SIZE,
  3556. - FW_BULKOUT_SIZE);
  3557. - deb_fw(">>> ");
  3558. - debug_dump(buf, FW_BULKOUT_SIZE + 2, deb_fw);
  3559. - ret = usb_bulk_msg(udev,
  3560. - usb_sndbulkpipe(udev, 0x02),
  3561. - buf, FW_BULKOUT_SIZE + 2, &act_len, 1000);
  3562. - if (ret) {
  3563. - err("firmware download failed at packet %d with code %d", i, ret);
  3564. - goto err;
  3565. - }
  3566. - }
  3567. - ret = af9005_boot_packet(udev, FW_CONFIRM, &reply,
  3568. - buf, FW_BULKOUT_SIZE + 2);
  3569. - if (ret)
  3570. - goto err;
  3571. - if (reply != (u8) (packets & 0xff)) {
  3572. - err("after downloading firmware, FW_CONFIRM expected 0x%x, received 0x%x", packets & 0xff, reply);
  3573. - ret = -EIO;
  3574. - goto err;
  3575. - }
  3576. - ret = af9005_boot_packet(udev, FW_BOOT, &reply, buf,
  3577. - FW_BULKOUT_SIZE + 2);
  3578. - if (ret)
  3579. - goto err;
  3580. - ret = af9005_boot_packet(udev, FW_CONFIG, &reply, buf,
  3581. - FW_BULKOUT_SIZE + 2);
  3582. - if (ret)
  3583. - goto err;
  3584. - if (reply != 0x02) {
  3585. - err("after downloading firmware, FW_CONFIG expected 0x02, received 0x%x", reply);
  3586. - ret = -EIO;
  3587. - goto err;
  3588. - }
  3589. -
  3590. -err:
  3591. - kfree(buf);
  3592. - return ret;
  3593. -
  3594. -}
  3595. -
  3596. -int af9005_led_control(struct dvb_usb_device *d, int onoff)
  3597. -{
  3598. - struct af9005_device_state *st = d->priv;
  3599. - int temp, ret;
  3600. -
  3601. - if (onoff && dvb_usb_af9005_led)
  3602. - temp = 1;
  3603. - else
  3604. - temp = 0;
  3605. - if (st->led_state != temp) {
  3606. - ret =
  3607. - af9005_write_register_bits(d, xd_p_reg_top_locken1,
  3608. - reg_top_locken1_pos,
  3609. - reg_top_locken1_len, temp);
  3610. - if (ret)
  3611. - return ret;
  3612. - ret =
  3613. - af9005_write_register_bits(d, xd_p_reg_top_lock1,
  3614. - reg_top_lock1_pos,
  3615. - reg_top_lock1_len, temp);
  3616. - if (ret)
  3617. - return ret;
  3618. - st->led_state = temp;
  3619. - }
  3620. - return 0;
  3621. -}
  3622. -
  3623. -static int af9005_frontend_attach(struct dvb_usb_adapter *adap)
  3624. -{
  3625. - u8 buf[8];
  3626. - int i;
  3627. -
  3628. - /* without these calls the first commands after downloading
  3629. - the firmware fail. I put these calls here to simulate
  3630. - what it is done in dvb-usb-init.c.
  3631. - */
  3632. - struct usb_device *udev = adap->dev->udev;
  3633. - usb_clear_halt(udev, usb_sndbulkpipe(udev, 2));
  3634. - usb_clear_halt(udev, usb_rcvbulkpipe(udev, 1));
  3635. - if (dvb_usb_af9005_dump_eeprom) {
  3636. - printk("EEPROM DUMP\n");
  3637. - for (i = 0; i < 255; i += 8) {
  3638. - af9005_read_eeprom(adap->dev, i, buf, 8);
  3639. - debug_dump(buf, 8, printk);
  3640. - }
  3641. - }
  3642. - adap->fe_adap[0].fe = af9005_fe_attach(adap->dev);
  3643. - return 0;
  3644. -}
  3645. -
  3646. -static int af9005_rc_query(struct dvb_usb_device *d, u32 * event, int *state)
  3647. -{
  3648. - struct af9005_device_state *st = d->priv;
  3649. - int ret, len;
  3650. - u8 seq;
  3651. -
  3652. - *state = REMOTE_NO_KEY_PRESSED;
  3653. - if (rc_decode == NULL) {
  3654. - /* it shouldn't never come here */
  3655. - return 0;
  3656. - }
  3657. -
  3658. - mutex_lock(&d->data_mutex);
  3659. -
  3660. - /* deb_info("rc_query\n"); */
  3661. - st->data[0] = 3; /* rest of packet length low */
  3662. - st->data[1] = 0; /* rest of packet lentgh high */
  3663. - st->data[2] = 0x40; /* read remote */
  3664. - st->data[3] = 1; /* rest of packet length */
  3665. - st->data[4] = seq = st->sequence++; /* sequence number */
  3666. - ret = dvb_usb_generic_rw(d, st->data, 5, st->data, 256, 0);
  3667. - if (ret) {
  3668. - err("rc query failed");
  3669. - goto ret;
  3670. - }
  3671. - if (st->data[2] != 0x41) {
  3672. - err("rc query bad header.");
  3673. - ret = -EIO;
  3674. - goto ret;
  3675. - } else if (st->data[4] != seq) {
  3676. - err("rc query bad sequence.");
  3677. - ret = -EIO;
  3678. - goto ret;
  3679. - }
  3680. - len = st->data[5];
  3681. - if (len > 246) {
  3682. - err("rc query invalid length");
  3683. - ret = -EIO;
  3684. - goto ret;
  3685. - }
  3686. - if (len > 0) {
  3687. - deb_rc("rc data (%d) ", len);
  3688. - debug_dump((st->data + 6), len, deb_rc);
  3689. - ret = rc_decode(d, &st->data[6], len, event, state);
  3690. - if (ret) {
  3691. - err("rc_decode failed");
  3692. - goto ret;
  3693. - } else {
  3694. - deb_rc("rc_decode state %x event %x\n", *state, *event);
  3695. - if (*state == REMOTE_KEY_REPEAT)
  3696. - *event = d->last_event;
  3697. - }
  3698. - }
  3699. -
  3700. -ret:
  3701. - mutex_unlock(&d->data_mutex);
  3702. - return ret;
  3703. -}
  3704. -
  3705. -static int af9005_power_ctrl(struct dvb_usb_device *d, int onoff)
  3706. -{
  3707. -
  3708. - return 0;
  3709. -}
  3710. -
  3711. -static int af9005_pid_filter_control(struct dvb_usb_adapter *adap, int onoff)
  3712. -{
  3713. - int ret;
  3714. - deb_info("pid filter control onoff %d\n", onoff);
  3715. - if (onoff) {
  3716. - ret =
  3717. - af9005_write_ofdm_register(adap->dev, XD_MP2IF_DMX_CTRL, 1);
  3718. - if (ret)
  3719. - return ret;
  3720. - ret =
  3721. - af9005_write_register_bits(adap->dev,
  3722. - XD_MP2IF_DMX_CTRL, 1, 1, 1);
  3723. - if (ret)
  3724. - return ret;
  3725. - ret =
  3726. - af9005_write_ofdm_register(adap->dev, XD_MP2IF_DMX_CTRL, 1);
  3727. - } else
  3728. - ret =
  3729. - af9005_write_ofdm_register(adap->dev, XD_MP2IF_DMX_CTRL, 0);
  3730. - if (ret)
  3731. - return ret;
  3732. - deb_info("pid filter control ok\n");
  3733. - return 0;
  3734. -}
  3735. -
  3736. -static int af9005_pid_filter(struct dvb_usb_adapter *adap, int index,
  3737. - u16 pid, int onoff)
  3738. -{
  3739. - u8 cmd = index & 0x1f;
  3740. - int ret;
  3741. - deb_info("set pid filter, index %d, pid %x, onoff %d\n", index,
  3742. - pid, onoff);
  3743. - if (onoff) {
  3744. - /* cannot use it as pid_filter_ctrl since it has to be done
  3745. - before setting the first pid */
  3746. - if (adap->feedcount == 1) {
  3747. - deb_info("first pid set, enable pid table\n");
  3748. - ret = af9005_pid_filter_control(adap, onoff);
  3749. - if (ret)
  3750. - return ret;
  3751. - }
  3752. - ret =
  3753. - af9005_write_ofdm_register(adap->dev,
  3754. - XD_MP2IF_PID_DATA_L,
  3755. - (u8) (pid & 0xff));
  3756. - if (ret)
  3757. - return ret;
  3758. - ret =
  3759. - af9005_write_ofdm_register(adap->dev,
  3760. - XD_MP2IF_PID_DATA_H,
  3761. - (u8) (pid >> 8));
  3762. - if (ret)
  3763. - return ret;
  3764. - cmd |= 0x20 | 0x40;
  3765. - } else {
  3766. - if (adap->feedcount == 0) {
  3767. - deb_info("last pid unset, disable pid table\n");
  3768. - ret = af9005_pid_filter_control(adap, onoff);
  3769. - if (ret)
  3770. - return ret;
  3771. - }
  3772. - }
  3773. - ret = af9005_write_ofdm_register(adap->dev, XD_MP2IF_PID_IDX, cmd);
  3774. - if (ret)
  3775. - return ret;
  3776. - deb_info("set pid ok\n");
  3777. - return 0;
  3778. -}
  3779. -
  3780. -static int af9005_identify_state(struct usb_device *udev,
  3781. - struct dvb_usb_device_properties *props,
  3782. - struct dvb_usb_device_description **desc,
  3783. - int *cold)
  3784. -{
  3785. - int ret;
  3786. - u8 reply, *buf;
  3787. -
  3788. - buf = kmalloc(FW_BULKOUT_SIZE + 2, GFP_KERNEL);
  3789. - if (!buf)
  3790. - return -ENOMEM;
  3791. -
  3792. - ret = af9005_boot_packet(udev, FW_CONFIG, &reply,
  3793. - buf, FW_BULKOUT_SIZE + 2);
  3794. - if (ret)
  3795. - goto err;
  3796. - deb_info("result of FW_CONFIG in identify state %d\n", reply);
  3797. - if (reply == 0x01)
  3798. - *cold = 1;
  3799. - else if (reply == 0x02)
  3800. - *cold = 0;
  3801. - else
  3802. - ret = -EIO;
  3803. - if (!ret)
  3804. - deb_info("Identify state cold = %d\n", *cold);
  3805. -
  3806. -err:
  3807. - kfree(buf);
  3808. - return ret;
  3809. -}
  3810. -
  3811. -static struct dvb_usb_device_properties af9005_properties;
  3812. -
  3813. -static int af9005_usb_probe(struct usb_interface *intf,
  3814. - const struct usb_device_id *id)
  3815. -{
  3816. - return dvb_usb_device_init(intf, &af9005_properties,
  3817. - THIS_MODULE, NULL, adapter_nr);
  3818. -}
  3819. -
  3820. -enum af9005_usb_table_entry {
  3821. - AFATECH_AF9005,
  3822. - TERRATEC_AF9005,
  3823. - ANSONIC_AF9005,
  3824. -};
  3825. -
  3826. -static struct usb_device_id af9005_usb_table[] = {
  3827. - [AFATECH_AF9005] = {USB_DEVICE(USB_VID_AFATECH,
  3828. - USB_PID_AFATECH_AF9005)},
  3829. - [TERRATEC_AF9005] = {USB_DEVICE(USB_VID_TERRATEC,
  3830. - USB_PID_TERRATEC_CINERGY_T_USB_XE)},
  3831. - [ANSONIC_AF9005] = {USB_DEVICE(USB_VID_ANSONIC,
  3832. - USB_PID_ANSONIC_DVBT_USB)},
  3833. - { }
  3834. -};
  3835. -
  3836. -MODULE_DEVICE_TABLE(usb, af9005_usb_table);
  3837. -
  3838. -static struct dvb_usb_device_properties af9005_properties = {
  3839. - .caps = DVB_USB_IS_AN_I2C_ADAPTER,
  3840. -
  3841. - .usb_ctrl = DEVICE_SPECIFIC,
  3842. - .firmware = "af9005.fw",
  3843. - .download_firmware = af9005_download_firmware,
  3844. - .no_reconnect = 1,
  3845. -
  3846. - .size_of_priv = sizeof(struct af9005_device_state),
  3847. -
  3848. - .num_adapters = 1,
  3849. - .adapter = {
  3850. - {
  3851. - .num_frontends = 1,
  3852. - .fe = {{
  3853. - .caps =
  3854. - DVB_USB_ADAP_HAS_PID_FILTER |
  3855. - DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF,
  3856. - .pid_filter_count = 32,
  3857. - .pid_filter = af9005_pid_filter,
  3858. - /* .pid_filter_ctrl = af9005_pid_filter_control, */
  3859. - .frontend_attach = af9005_frontend_attach,
  3860. - /* .tuner_attach = af9005_tuner_attach, */
  3861. - /* parameter for the MPEG2-data transfer */
  3862. - .stream = {
  3863. - .type = USB_BULK,
  3864. - .count = 10,
  3865. - .endpoint = 0x04,
  3866. - .u = {
  3867. - .bulk = {
  3868. - .buffersize = 4096, /* actual size seen is 3948 */
  3869. - }
  3870. - }
  3871. - },
  3872. - }},
  3873. - }
  3874. - },
  3875. - .power_ctrl = af9005_power_ctrl,
  3876. - .identify_state = af9005_identify_state,
  3877. -
  3878. - .i2c_algo = &af9005_i2c_algo,
  3879. -
  3880. - .rc.legacy = {
  3881. - .rc_interval = 200,
  3882. - .rc_map_table = NULL,
  3883. - .rc_map_size = 0,
  3884. - .rc_query = af9005_rc_query,
  3885. - },
  3886. -
  3887. - .generic_bulk_ctrl_endpoint = 2,
  3888. - .generic_bulk_ctrl_endpoint_response = 1,
  3889. -
  3890. - .num_device_descs = 3,
  3891. - .devices = {
  3892. - {.name = "Afatech DVB-T USB1.1 stick",
  3893. - .cold_ids = {&af9005_usb_table[AFATECH_AF9005], NULL},
  3894. - .warm_ids = {NULL},
  3895. - },
  3896. - {.name = "TerraTec Cinergy T USB XE",
  3897. - .cold_ids = {&af9005_usb_table[TERRATEC_AF9005], NULL},
  3898. - .warm_ids = {NULL},
  3899. - },
  3900. - {.name = "Ansonic DVB-T USB1.1 stick",
  3901. - .cold_ids = {&af9005_usb_table[ANSONIC_AF9005], NULL},
  3902. - .warm_ids = {NULL},
  3903. - },
  3904. - {NULL},
  3905. - }
  3906. -};
  3907. -
  3908. -/* usb specific object needed to register this driver with the usb subsystem */
  3909. -static struct usb_driver af9005_usb_driver = {
  3910. - .name = "dvb_usb_af9005",
  3911. - .probe = af9005_usb_probe,
  3912. - .disconnect = dvb_usb_device_exit,
  3913. - .id_table = af9005_usb_table,
  3914. -};
  3915. -
  3916. -/* module stuff */
  3917. -static int __init af9005_usb_module_init(void)
  3918. -{
  3919. - int result;
  3920. - if ((result = usb_register(&af9005_usb_driver))) {
  3921. - err("usb_register failed. (%d)", result);
  3922. - return result;
  3923. - }
  3924. -#if IS_MODULE(CONFIG_DVB_USB_AF9005) || defined(CONFIG_DVB_USB_AF9005_REMOTE)
  3925. - /* FIXME: convert to todays kernel IR infrastructure */
  3926. - rc_decode = symbol_request(af9005_rc_decode);
  3927. - rc_keys = symbol_request(rc_map_af9005_table);
  3928. - rc_keys_size = symbol_request(rc_map_af9005_table_size);
  3929. -#endif
  3930. - if (rc_decode == NULL || rc_keys == NULL || rc_keys_size == NULL) {
  3931. - err("af9005_rc_decode function not found, disabling remote");
  3932. - af9005_properties.rc.legacy.rc_query = NULL;
  3933. - } else {
  3934. - af9005_properties.rc.legacy.rc_map_table = rc_keys;
  3935. - af9005_properties.rc.legacy.rc_map_size = *rc_keys_size;
  3936. - }
  3937. -
  3938. - return 0;
  3939. -}
  3940. -
  3941. -static void __exit af9005_usb_module_exit(void)
  3942. -{
  3943. - /* release rc decode symbols */
  3944. - if (rc_decode != NULL)
  3945. - symbol_put(af9005_rc_decode);
  3946. - if (rc_keys != NULL)
  3947. - symbol_put(rc_map_af9005_table);
  3948. - if (rc_keys_size != NULL)
  3949. - symbol_put(rc_map_af9005_table_size);
  3950. - /* deregister this driver from the USB subsystem */
  3951. - usb_deregister(&af9005_usb_driver);
  3952. -}
  3953. -
  3954. -module_init(af9005_usb_module_init);
  3955. -module_exit(af9005_usb_module_exit);
  3956. -
  3957. -MODULE_AUTHOR("Luca Olivetti <luca@ventoso.org>");
  3958. -MODULE_DESCRIPTION("Driver for Afatech 9005 DVB-T USB1.1 stick");
  3959. -MODULE_VERSION("1.0");
  3960. -MODULE_LICENSE("GPL");
  3961. diff -ruN ../linux-4.14.336/drivers/media/usb/dvb-usb/af9005.h ./drivers/media/usb/dvb-usb/af9005.h
  3962. --- linux-4.14.336/../linux-4.14.336/drivers/media/usb/dvb-usb/af9005.h 2024-01-10 14:45:41.000000000 +0100
  3963. +++ linux-4.14.336/./drivers/media/usb/dvb-usb/af9005.h 1970-01-01 01:00:00.000000000 +0100
  3964. @@ -1,3492 +0,0 @@
  3965. -/* Common header-file of the Linux driver for the Afatech 9005
  3966. - * USB1.1 DVB-T receiver.
  3967. - *
  3968. - * Copyright (C) 2007 Luca Olivetti (luca@ventoso.org)
  3969. - *
  3970. - * Thanks to Afatech who kindly provided information.
  3971. - *
  3972. - * This program is free software; you can redistribute it and/or modify
  3973. - * it under the terms of the GNU General Public License as published by
  3974. - * the Free Software Foundation; either version 2 of the License, or
  3975. - * (at your option) any later version.
  3976. - *
  3977. - * This program is distributed in the hope that it will be useful,
  3978. - * but WITHOUT ANY WARRANTY; without even the implied warranty of
  3979. - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  3980. - * GNU General Public License for more details.
  3981. - *
  3982. - * see Documentation/dvb/README.dvb-usb for more information
  3983. - */
  3984. -#ifndef _DVB_USB_AF9005_H_
  3985. -#define _DVB_USB_AF9005_H_
  3986. -
  3987. -#define DVB_USB_LOG_PREFIX "af9005"
  3988. -#include "dvb-usb.h"
  3989. -
  3990. -extern int dvb_usb_af9005_debug;
  3991. -#define deb_info(args...) dprintk(dvb_usb_af9005_debug,0x01,args)
  3992. -#define deb_xfer(args...) dprintk(dvb_usb_af9005_debug,0x02,args)
  3993. -#define deb_rc(args...) dprintk(dvb_usb_af9005_debug,0x04,args)
  3994. -#define deb_reg(args...) dprintk(dvb_usb_af9005_debug,0x08,args)
  3995. -#define deb_i2c(args...) dprintk(dvb_usb_af9005_debug,0x10,args)
  3996. -#define deb_fw(args...) dprintk(dvb_usb_af9005_debug,0x20,args)
  3997. -
  3998. -extern bool dvb_usb_af9005_led;
  3999. -
  4000. -/* firmware */
  4001. -#define FW_BULKOUT_SIZE 250
  4002. -enum {
  4003. - FW_CONFIG,
  4004. - FW_CONFIRM,
  4005. - FW_BOOT
  4006. -};
  4007. -
  4008. -/* af9005 commands */
  4009. -#define AF9005_OFDM_REG 0
  4010. -#define AF9005_TUNER_REG 1
  4011. -
  4012. -#define AF9005_REGISTER_RW 0x20
  4013. -#define AF9005_REGISTER_RW_ACK 0x21
  4014. -
  4015. -#define AF9005_CMD_OFDM_REG 0x00
  4016. -#define AF9005_CMD_TUNER 0x80
  4017. -#define AF9005_CMD_BURST 0x02
  4018. -#define AF9005_CMD_AUTOINC 0x04
  4019. -#define AF9005_CMD_READ 0x00
  4020. -#define AF9005_CMD_WRITE 0x01
  4021. -
  4022. -/* af9005 registers */
  4023. -#define APO_REG_RESET 0xAEFF
  4024. -
  4025. -#define APO_REG_I2C_RW_CAN_TUNER 0xF000
  4026. -#define APO_REG_I2C_RW_SILICON_TUNER 0xF001
  4027. -#define APO_REG_GPIO_RW_SILICON_TUNER 0xFFFE /* also for OFSM */
  4028. -#define APO_REG_TRIGGER_OFSM 0xFFFF /* also for OFSM */
  4029. -
  4030. -/***********************************************************************
  4031. - * Apollo Registers from VLSI *
  4032. - ***********************************************************************/
  4033. -#define xd_p_reg_aagc_inverted_agc 0xA000
  4034. -#define reg_aagc_inverted_agc_pos 0
  4035. -#define reg_aagc_inverted_agc_len 1
  4036. -#define reg_aagc_inverted_agc_lsb 0
  4037. -#define xd_p_reg_aagc_sign_only 0xA000
  4038. -#define reg_aagc_sign_only_pos 1
  4039. -#define reg_aagc_sign_only_len 1
  4040. -#define reg_aagc_sign_only_lsb 0
  4041. -#define xd_p_reg_aagc_slow_adc_en 0xA000
  4042. -#define reg_aagc_slow_adc_en_pos 2
  4043. -#define reg_aagc_slow_adc_en_len 1
  4044. -#define reg_aagc_slow_adc_en_lsb 0
  4045. -#define xd_p_reg_aagc_slow_adc_scale 0xA000
  4046. -#define reg_aagc_slow_adc_scale_pos 3
  4047. -#define reg_aagc_slow_adc_scale_len 5
  4048. -#define reg_aagc_slow_adc_scale_lsb 0
  4049. -#define xd_p_reg_aagc_check_slow_adc_lock 0xA001
  4050. -#define reg_aagc_check_slow_adc_lock_pos 0
  4051. -#define reg_aagc_check_slow_adc_lock_len 1
  4052. -#define reg_aagc_check_slow_adc_lock_lsb 0
  4053. -#define xd_p_reg_aagc_init_control 0xA001
  4054. -#define reg_aagc_init_control_pos 1
  4055. -#define reg_aagc_init_control_len 1
  4056. -#define reg_aagc_init_control_lsb 0
  4057. -#define xd_p_reg_aagc_total_gain_sel 0xA001
  4058. -#define reg_aagc_total_gain_sel_pos 2
  4059. -#define reg_aagc_total_gain_sel_len 2
  4060. -#define reg_aagc_total_gain_sel_lsb 0
  4061. -#define xd_p_reg_aagc_out_inv 0xA001
  4062. -#define reg_aagc_out_inv_pos 5
  4063. -#define reg_aagc_out_inv_len 1
  4064. -#define reg_aagc_out_inv_lsb 0
  4065. -#define xd_p_reg_aagc_int_en 0xA001
  4066. -#define reg_aagc_int_en_pos 6
  4067. -#define reg_aagc_int_en_len 1
  4068. -#define reg_aagc_int_en_lsb 0
  4069. -#define xd_p_reg_aagc_lock_change_flag 0xA001
  4070. -#define reg_aagc_lock_change_flag_pos 7
  4071. -#define reg_aagc_lock_change_flag_len 1
  4072. -#define reg_aagc_lock_change_flag_lsb 0
  4073. -#define xd_p_reg_aagc_rf_loop_bw_scale_acquire 0xA002
  4074. -#define reg_aagc_rf_loop_bw_scale_acquire_pos 0
  4075. -#define reg_aagc_rf_loop_bw_scale_acquire_len 5
  4076. -#define reg_aagc_rf_loop_bw_scale_acquire_lsb 0
  4077. -#define xd_p_reg_aagc_rf_loop_bw_scale_track 0xA003
  4078. -#define reg_aagc_rf_loop_bw_scale_track_pos 0
  4079. -#define reg_aagc_rf_loop_bw_scale_track_len 5
  4080. -#define reg_aagc_rf_loop_bw_scale_track_lsb 0
  4081. -#define xd_p_reg_aagc_if_loop_bw_scale_acquire 0xA004
  4082. -#define reg_aagc_if_loop_bw_scale_acquire_pos 0
  4083. -#define reg_aagc_if_loop_bw_scale_acquire_len 5
  4084. -#define reg_aagc_if_loop_bw_scale_acquire_lsb 0
  4085. -#define xd_p_reg_aagc_if_loop_bw_scale_track 0xA005
  4086. -#define reg_aagc_if_loop_bw_scale_track_pos 0
  4087. -#define reg_aagc_if_loop_bw_scale_track_len 5
  4088. -#define reg_aagc_if_loop_bw_scale_track_lsb 0
  4089. -#define xd_p_reg_aagc_max_rf_agc_7_0 0xA006
  4090. -#define reg_aagc_max_rf_agc_7_0_pos 0
  4091. -#define reg_aagc_max_rf_agc_7_0_len 8
  4092. -#define reg_aagc_max_rf_agc_7_0_lsb 0
  4093. -#define xd_p_reg_aagc_max_rf_agc_9_8 0xA007
  4094. -#define reg_aagc_max_rf_agc_9_8_pos 0
  4095. -#define reg_aagc_max_rf_agc_9_8_len 2
  4096. -#define reg_aagc_max_rf_agc_9_8_lsb 8
  4097. -#define xd_p_reg_aagc_min_rf_agc_7_0 0xA008
  4098. -#define reg_aagc_min_rf_agc_7_0_pos 0
  4099. -#define reg_aagc_min_rf_agc_7_0_len 8
  4100. -#define reg_aagc_min_rf_agc_7_0_lsb 0
  4101. -#define xd_p_reg_aagc_min_rf_agc_9_8 0xA009
  4102. -#define reg_aagc_min_rf_agc_9_8_pos 0
  4103. -#define reg_aagc_min_rf_agc_9_8_len 2
  4104. -#define reg_aagc_min_rf_agc_9_8_lsb 8
  4105. -#define xd_p_reg_aagc_max_if_agc_7_0 0xA00A
  4106. -#define reg_aagc_max_if_agc_7_0_pos 0
  4107. -#define reg_aagc_max_if_agc_7_0_len 8
  4108. -#define reg_aagc_max_if_agc_7_0_lsb 0
  4109. -#define xd_p_reg_aagc_max_if_agc_9_8 0xA00B
  4110. -#define reg_aagc_max_if_agc_9_8_pos 0
  4111. -#define reg_aagc_max_if_agc_9_8_len 2
  4112. -#define reg_aagc_max_if_agc_9_8_lsb 8
  4113. -#define xd_p_reg_aagc_min_if_agc_7_0 0xA00C
  4114. -#define reg_aagc_min_if_agc_7_0_pos 0
  4115. -#define reg_aagc_min_if_agc_7_0_len 8
  4116. -#define reg_aagc_min_if_agc_7_0_lsb 0
  4117. -#define xd_p_reg_aagc_min_if_agc_9_8 0xA00D
  4118. -#define reg_aagc_min_if_agc_9_8_pos 0
  4119. -#define reg_aagc_min_if_agc_9_8_len 2
  4120. -#define reg_aagc_min_if_agc_9_8_lsb 8
  4121. -#define xd_p_reg_aagc_lock_sample_scale 0xA00E
  4122. -#define reg_aagc_lock_sample_scale_pos 0
  4123. -#define reg_aagc_lock_sample_scale_len 5
  4124. -#define reg_aagc_lock_sample_scale_lsb 0
  4125. -#define xd_p_reg_aagc_rf_agc_lock_scale_acquire 0xA00F
  4126. -#define reg_aagc_rf_agc_lock_scale_acquire_pos 0
  4127. -#define reg_aagc_rf_agc_lock_scale_acquire_len 3
  4128. -#define reg_aagc_rf_agc_lock_scale_acquire_lsb 0
  4129. -#define xd_p_reg_aagc_rf_agc_lock_scale_track 0xA00F
  4130. -#define reg_aagc_rf_agc_lock_scale_track_pos 3
  4131. -#define reg_aagc_rf_agc_lock_scale_track_len 3
  4132. -#define reg_aagc_rf_agc_lock_scale_track_lsb 0
  4133. -#define xd_p_reg_aagc_if_agc_lock_scale_acquire 0xA010
  4134. -#define reg_aagc_if_agc_lock_scale_acquire_pos 0
  4135. -#define reg_aagc_if_agc_lock_scale_acquire_len 3
  4136. -#define reg_aagc_if_agc_lock_scale_acquire_lsb 0
  4137. -#define xd_p_reg_aagc_if_agc_lock_scale_track 0xA010
  4138. -#define reg_aagc_if_agc_lock_scale_track_pos 3
  4139. -#define reg_aagc_if_agc_lock_scale_track_len 3
  4140. -#define reg_aagc_if_agc_lock_scale_track_lsb 0
  4141. -#define xd_p_reg_aagc_rf_top_numerator_7_0 0xA011
  4142. -#define reg_aagc_rf_top_numerator_7_0_pos 0
  4143. -#define reg_aagc_rf_top_numerator_7_0_len 8
  4144. -#define reg_aagc_rf_top_numerator_7_0_lsb 0
  4145. -#define xd_p_reg_aagc_rf_top_numerator_9_8 0xA012
  4146. -#define reg_aagc_rf_top_numerator_9_8_pos 0
  4147. -#define reg_aagc_rf_top_numerator_9_8_len 2
  4148. -#define reg_aagc_rf_top_numerator_9_8_lsb 8
  4149. -#define xd_p_reg_aagc_if_top_numerator_7_0 0xA013
  4150. -#define reg_aagc_if_top_numerator_7_0_pos 0
  4151. -#define reg_aagc_if_top_numerator_7_0_len 8
  4152. -#define reg_aagc_if_top_numerator_7_0_lsb 0
  4153. -#define xd_p_reg_aagc_if_top_numerator_9_8 0xA014
  4154. -#define reg_aagc_if_top_numerator_9_8_pos 0
  4155. -#define reg_aagc_if_top_numerator_9_8_len 2
  4156. -#define reg_aagc_if_top_numerator_9_8_lsb 8
  4157. -#define xd_p_reg_aagc_adc_out_desired_7_0 0xA015
  4158. -#define reg_aagc_adc_out_desired_7_0_pos 0
  4159. -#define reg_aagc_adc_out_desired_7_0_len 8
  4160. -#define reg_aagc_adc_out_desired_7_0_lsb 0
  4161. -#define xd_p_reg_aagc_adc_out_desired_8 0xA016
  4162. -#define reg_aagc_adc_out_desired_8_pos 0
  4163. -#define reg_aagc_adc_out_desired_8_len 1
  4164. -#define reg_aagc_adc_out_desired_8_lsb 0
  4165. -#define xd_p_reg_aagc_fixed_gain 0xA016
  4166. -#define reg_aagc_fixed_gain_pos 3
  4167. -#define reg_aagc_fixed_gain_len 1
  4168. -#define reg_aagc_fixed_gain_lsb 0
  4169. -#define xd_p_reg_aagc_lock_count_th 0xA016
  4170. -#define reg_aagc_lock_count_th_pos 4
  4171. -#define reg_aagc_lock_count_th_len 4
  4172. -#define reg_aagc_lock_count_th_lsb 0
  4173. -#define xd_p_reg_aagc_fixed_rf_agc_control_7_0 0xA017
  4174. -#define reg_aagc_fixed_rf_agc_control_7_0_pos 0
  4175. -#define reg_aagc_fixed_rf_agc_control_7_0_len 8
  4176. -#define reg_aagc_fixed_rf_agc_control_7_0_lsb 0
  4177. -#define xd_p_reg_aagc_fixed_rf_agc_control_15_8 0xA018
  4178. -#define reg_aagc_fixed_rf_agc_control_15_8_pos 0
  4179. -#define reg_aagc_fixed_rf_agc_control_15_8_len 8
  4180. -#define reg_aagc_fixed_rf_agc_control_15_8_lsb 8
  4181. -#define xd_p_reg_aagc_fixed_rf_agc_control_23_16 0xA019
  4182. -#define reg_aagc_fixed_rf_agc_control_23_16_pos 0
  4183. -#define reg_aagc_fixed_rf_agc_control_23_16_len 8
  4184. -#define reg_aagc_fixed_rf_agc_control_23_16_lsb 16
  4185. -#define xd_p_reg_aagc_fixed_rf_agc_control_30_24 0xA01A
  4186. -#define reg_aagc_fixed_rf_agc_control_30_24_pos 0
  4187. -#define reg_aagc_fixed_rf_agc_control_30_24_len 7
  4188. -#define reg_aagc_fixed_rf_agc_control_30_24_lsb 24
  4189. -#define xd_p_reg_aagc_fixed_if_agc_control_7_0 0xA01B
  4190. -#define reg_aagc_fixed_if_agc_control_7_0_pos 0
  4191. -#define reg_aagc_fixed_if_agc_control_7_0_len 8
  4192. -#define reg_aagc_fixed_if_agc_control_7_0_lsb 0
  4193. -#define xd_p_reg_aagc_fixed_if_agc_control_15_8 0xA01C
  4194. -#define reg_aagc_fixed_if_agc_control_15_8_pos 0
  4195. -#define reg_aagc_fixed_if_agc_control_15_8_len 8
  4196. -#define reg_aagc_fixed_if_agc_control_15_8_lsb 8
  4197. -#define xd_p_reg_aagc_fixed_if_agc_control_23_16 0xA01D
  4198. -#define reg_aagc_fixed_if_agc_control_23_16_pos 0
  4199. -#define reg_aagc_fixed_if_agc_control_23_16_len 8
  4200. -#define reg_aagc_fixed_if_agc_control_23_16_lsb 16
  4201. -#define xd_p_reg_aagc_fixed_if_agc_control_30_24 0xA01E
  4202. -#define reg_aagc_fixed_if_agc_control_30_24_pos 0
  4203. -#define reg_aagc_fixed_if_agc_control_30_24_len 7
  4204. -#define reg_aagc_fixed_if_agc_control_30_24_lsb 24
  4205. -#define xd_p_reg_aagc_rf_agc_unlock_numerator 0xA01F
  4206. -#define reg_aagc_rf_agc_unlock_numerator_pos 0
  4207. -#define reg_aagc_rf_agc_unlock_numerator_len 6
  4208. -#define reg_aagc_rf_agc_unlock_numerator_lsb 0
  4209. -#define xd_p_reg_aagc_if_agc_unlock_numerator 0xA020
  4210. -#define reg_aagc_if_agc_unlock_numerator_pos 0
  4211. -#define reg_aagc_if_agc_unlock_numerator_len 6
  4212. -#define reg_aagc_if_agc_unlock_numerator_lsb 0
  4213. -#define xd_p_reg_unplug_th 0xA021
  4214. -#define reg_unplug_th_pos 0
  4215. -#define reg_unplug_th_len 8
  4216. -#define reg_aagc_rf_x0_lsb 0
  4217. -#define xd_p_reg_weak_signal_rfagc_thr 0xA022
  4218. -#define reg_weak_signal_rfagc_thr_pos 0
  4219. -#define reg_weak_signal_rfagc_thr_len 8
  4220. -#define reg_weak_signal_rfagc_thr_lsb 0
  4221. -#define xd_p_reg_unplug_rf_gain_th 0xA023
  4222. -#define reg_unplug_rf_gain_th_pos 0
  4223. -#define reg_unplug_rf_gain_th_len 8
  4224. -#define reg_unplug_rf_gain_th_lsb 0
  4225. -#define xd_p_reg_unplug_dtop_rf_gain_th 0xA024
  4226. -#define reg_unplug_dtop_rf_gain_th_pos 0
  4227. -#define reg_unplug_dtop_rf_gain_th_len 8
  4228. -#define reg_unplug_dtop_rf_gain_th_lsb 0
  4229. -#define xd_p_reg_unplug_dtop_if_gain_th 0xA025
  4230. -#define reg_unplug_dtop_if_gain_th_pos 0
  4231. -#define reg_unplug_dtop_if_gain_th_len 8
  4232. -#define reg_unplug_dtop_if_gain_th_lsb 0
  4233. -#define xd_p_reg_top_recover_at_unplug_en 0xA026
  4234. -#define reg_top_recover_at_unplug_en_pos 0
  4235. -#define reg_top_recover_at_unplug_en_len 1
  4236. -#define reg_top_recover_at_unplug_en_lsb 0
  4237. -#define xd_p_reg_aagc_rf_x6 0xA027
  4238. -#define reg_aagc_rf_x6_pos 0
  4239. -#define reg_aagc_rf_x6_len 8
  4240. -#define reg_aagc_rf_x6_lsb 0
  4241. -#define xd_p_reg_aagc_rf_x7 0xA028
  4242. -#define reg_aagc_rf_x7_pos 0
  4243. -#define reg_aagc_rf_x7_len 8
  4244. -#define reg_aagc_rf_x7_lsb 0
  4245. -#define xd_p_reg_aagc_rf_x8 0xA029
  4246. -#define reg_aagc_rf_x8_pos 0
  4247. -#define reg_aagc_rf_x8_len 8
  4248. -#define reg_aagc_rf_x8_lsb 0
  4249. -#define xd_p_reg_aagc_rf_x9 0xA02A
  4250. -#define reg_aagc_rf_x9_pos 0
  4251. -#define reg_aagc_rf_x9_len 8
  4252. -#define reg_aagc_rf_x9_lsb 0
  4253. -#define xd_p_reg_aagc_rf_x10 0xA02B
  4254. -#define reg_aagc_rf_x10_pos 0
  4255. -#define reg_aagc_rf_x10_len 8
  4256. -#define reg_aagc_rf_x10_lsb 0
  4257. -#define xd_p_reg_aagc_rf_x11 0xA02C
  4258. -#define reg_aagc_rf_x11_pos 0
  4259. -#define reg_aagc_rf_x11_len 8
  4260. -#define reg_aagc_rf_x11_lsb 0
  4261. -#define xd_p_reg_aagc_rf_x12 0xA02D
  4262. -#define reg_aagc_rf_x12_pos 0
  4263. -#define reg_aagc_rf_x12_len 8
  4264. -#define reg_aagc_rf_x12_lsb 0
  4265. -#define xd_p_reg_aagc_rf_x13 0xA02E
  4266. -#define reg_aagc_rf_x13_pos 0
  4267. -#define reg_aagc_rf_x13_len 8
  4268. -#define reg_aagc_rf_x13_lsb 0
  4269. -#define xd_p_reg_aagc_if_x0 0xA02F
  4270. -#define reg_aagc_if_x0_pos 0
  4271. -#define reg_aagc_if_x0_len 8
  4272. -#define reg_aagc_if_x0_lsb 0
  4273. -#define xd_p_reg_aagc_if_x1 0xA030
  4274. -#define reg_aagc_if_x1_pos 0
  4275. -#define reg_aagc_if_x1_len 8
  4276. -#define reg_aagc_if_x1_lsb 0
  4277. -#define xd_p_reg_aagc_if_x2 0xA031
  4278. -#define reg_aagc_if_x2_pos 0
  4279. -#define reg_aagc_if_x2_len 8
  4280. -#define reg_aagc_if_x2_lsb 0
  4281. -#define xd_p_reg_aagc_if_x3 0xA032
  4282. -#define reg_aagc_if_x3_pos 0
  4283. -#define reg_aagc_if_x3_len 8
  4284. -#define reg_aagc_if_x3_lsb 0
  4285. -#define xd_p_reg_aagc_if_x4 0xA033
  4286. -#define reg_aagc_if_x4_pos 0
  4287. -#define reg_aagc_if_x4_len 8
  4288. -#define reg_aagc_if_x4_lsb 0
  4289. -#define xd_p_reg_aagc_if_x5 0xA034
  4290. -#define reg_aagc_if_x5_pos 0
  4291. -#define reg_aagc_if_x5_len 8
  4292. -#define reg_aagc_if_x5_lsb 0
  4293. -#define xd_p_reg_aagc_if_x6 0xA035
  4294. -#define reg_aagc_if_x6_pos 0
  4295. -#define reg_aagc_if_x6_len 8
  4296. -#define reg_aagc_if_x6_lsb 0
  4297. -#define xd_p_reg_aagc_if_x7 0xA036
  4298. -#define reg_aagc_if_x7_pos 0
  4299. -#define reg_aagc_if_x7_len 8
  4300. -#define reg_aagc_if_x7_lsb 0
  4301. -#define xd_p_reg_aagc_if_x8 0xA037
  4302. -#define reg_aagc_if_x8_pos 0
  4303. -#define reg_aagc_if_x8_len 8
  4304. -#define reg_aagc_if_x8_lsb 0
  4305. -#define xd_p_reg_aagc_if_x9 0xA038
  4306. -#define reg_aagc_if_x9_pos 0
  4307. -#define reg_aagc_if_x9_len 8
  4308. -#define reg_aagc_if_x9_lsb 0
  4309. -#define xd_p_reg_aagc_if_x10 0xA039
  4310. -#define reg_aagc_if_x10_pos 0
  4311. -#define reg_aagc_if_x10_len 8
  4312. -#define reg_aagc_if_x10_lsb 0
  4313. -#define xd_p_reg_aagc_if_x11 0xA03A
  4314. -#define reg_aagc_if_x11_pos 0
  4315. -#define reg_aagc_if_x11_len 8
  4316. -#define reg_aagc_if_x11_lsb 0
  4317. -#define xd_p_reg_aagc_if_x12 0xA03B
  4318. -#define reg_aagc_if_x12_pos 0
  4319. -#define reg_aagc_if_x12_len 8
  4320. -#define reg_aagc_if_x12_lsb 0
  4321. -#define xd_p_reg_aagc_if_x13 0xA03C
  4322. -#define reg_aagc_if_x13_pos 0
  4323. -#define reg_aagc_if_x13_len 8
  4324. -#define reg_aagc_if_x13_lsb 0
  4325. -#define xd_p_reg_aagc_min_rf_ctl_8bit_for_dca 0xA03D
  4326. -#define reg_aagc_min_rf_ctl_8bit_for_dca_pos 0
  4327. -#define reg_aagc_min_rf_ctl_8bit_for_dca_len 8
  4328. -#define reg_aagc_min_rf_ctl_8bit_for_dca_lsb 0
  4329. -#define xd_p_reg_aagc_min_if_ctl_8bit_for_dca 0xA03E
  4330. -#define reg_aagc_min_if_ctl_8bit_for_dca_pos 0
  4331. -#define reg_aagc_min_if_ctl_8bit_for_dca_len 8
  4332. -#define reg_aagc_min_if_ctl_8bit_for_dca_lsb 0
  4333. -#define xd_r_reg_aagc_total_gain_7_0 0xA070
  4334. -#define reg_aagc_total_gain_7_0_pos 0
  4335. -#define reg_aagc_total_gain_7_0_len 8
  4336. -#define reg_aagc_total_gain_7_0_lsb 0
  4337. -#define xd_r_reg_aagc_total_gain_15_8 0xA071
  4338. -#define reg_aagc_total_gain_15_8_pos 0
  4339. -#define reg_aagc_total_gain_15_8_len 8
  4340. -#define reg_aagc_total_gain_15_8_lsb 8
  4341. -#define xd_p_reg_aagc_in_sat_cnt_7_0 0xA074
  4342. -#define reg_aagc_in_sat_cnt_7_0_pos 0
  4343. -#define reg_aagc_in_sat_cnt_7_0_len 8
  4344. -#define reg_aagc_in_sat_cnt_7_0_lsb 0
  4345. -#define xd_p_reg_aagc_in_sat_cnt_15_8 0xA075
  4346. -#define reg_aagc_in_sat_cnt_15_8_pos 0
  4347. -#define reg_aagc_in_sat_cnt_15_8_len 8
  4348. -#define reg_aagc_in_sat_cnt_15_8_lsb 8
  4349. -#define xd_p_reg_aagc_in_sat_cnt_23_16 0xA076
  4350. -#define reg_aagc_in_sat_cnt_23_16_pos 0
  4351. -#define reg_aagc_in_sat_cnt_23_16_len 8
  4352. -#define reg_aagc_in_sat_cnt_23_16_lsb 16
  4353. -#define xd_p_reg_aagc_in_sat_cnt_31_24 0xA077
  4354. -#define reg_aagc_in_sat_cnt_31_24_pos 0
  4355. -#define reg_aagc_in_sat_cnt_31_24_len 8
  4356. -#define reg_aagc_in_sat_cnt_31_24_lsb 24
  4357. -#define xd_r_reg_aagc_digital_rf_volt_7_0 0xA078
  4358. -#define reg_aagc_digital_rf_volt_7_0_pos 0
  4359. -#define reg_aagc_digital_rf_volt_7_0_len 8
  4360. -#define reg_aagc_digital_rf_volt_7_0_lsb 0
  4361. -#define xd_r_reg_aagc_digital_rf_volt_9_8 0xA079
  4362. -#define reg_aagc_digital_rf_volt_9_8_pos 0
  4363. -#define reg_aagc_digital_rf_volt_9_8_len 2
  4364. -#define reg_aagc_digital_rf_volt_9_8_lsb 8
  4365. -#define xd_r_reg_aagc_digital_if_volt_7_0 0xA07A
  4366. -#define reg_aagc_digital_if_volt_7_0_pos 0
  4367. -#define reg_aagc_digital_if_volt_7_0_len 8
  4368. -#define reg_aagc_digital_if_volt_7_0_lsb 0
  4369. -#define xd_r_reg_aagc_digital_if_volt_9_8 0xA07B
  4370. -#define reg_aagc_digital_if_volt_9_8_pos 0
  4371. -#define reg_aagc_digital_if_volt_9_8_len 2
  4372. -#define reg_aagc_digital_if_volt_9_8_lsb 8
  4373. -#define xd_r_reg_aagc_rf_gain 0xA07C
  4374. -#define reg_aagc_rf_gain_pos 0
  4375. -#define reg_aagc_rf_gain_len 8
  4376. -#define reg_aagc_rf_gain_lsb 0
  4377. -#define xd_r_reg_aagc_if_gain 0xA07D
  4378. -#define reg_aagc_if_gain_pos 0
  4379. -#define reg_aagc_if_gain_len 8
  4380. -#define reg_aagc_if_gain_lsb 0
  4381. -#define xd_p_tinr_imp_indicator 0xA080
  4382. -#define tinr_imp_indicator_pos 0
  4383. -#define tinr_imp_indicator_len 2
  4384. -#define tinr_imp_indicator_lsb 0
  4385. -#define xd_p_reg_tinr_fifo_size 0xA080
  4386. -#define reg_tinr_fifo_size_pos 2
  4387. -#define reg_tinr_fifo_size_len 5
  4388. -#define reg_tinr_fifo_size_lsb 0
  4389. -#define xd_p_reg_tinr_saturation_cnt_th 0xA081
  4390. -#define reg_tinr_saturation_cnt_th_pos 0
  4391. -#define reg_tinr_saturation_cnt_th_len 4
  4392. -#define reg_tinr_saturation_cnt_th_lsb 0
  4393. -#define xd_p_reg_tinr_saturation_th_3_0 0xA081
  4394. -#define reg_tinr_saturation_th_3_0_pos 4
  4395. -#define reg_tinr_saturation_th_3_0_len 4
  4396. -#define reg_tinr_saturation_th_3_0_lsb 0
  4397. -#define xd_p_reg_tinr_saturation_th_8_4 0xA082
  4398. -#define reg_tinr_saturation_th_8_4_pos 0
  4399. -#define reg_tinr_saturation_th_8_4_len 5
  4400. -#define reg_tinr_saturation_th_8_4_lsb 4
  4401. -#define xd_p_reg_tinr_imp_duration_th_2k_7_0 0xA083
  4402. -#define reg_tinr_imp_duration_th_2k_7_0_pos 0
  4403. -#define reg_tinr_imp_duration_th_2k_7_0_len 8
  4404. -#define reg_tinr_imp_duration_th_2k_7_0_lsb 0
  4405. -#define xd_p_reg_tinr_imp_duration_th_2k_8 0xA084
  4406. -#define reg_tinr_imp_duration_th_2k_8_pos 0
  4407. -#define reg_tinr_imp_duration_th_2k_8_len 1
  4408. -#define reg_tinr_imp_duration_th_2k_8_lsb 0
  4409. -#define xd_p_reg_tinr_imp_duration_th_8k_7_0 0xA085
  4410. -#define reg_tinr_imp_duration_th_8k_7_0_pos 0
  4411. -#define reg_tinr_imp_duration_th_8k_7_0_len 8
  4412. -#define reg_tinr_imp_duration_th_8k_7_0_lsb 0
  4413. -#define xd_p_reg_tinr_imp_duration_th_8k_10_8 0xA086
  4414. -#define reg_tinr_imp_duration_th_8k_10_8_pos 0
  4415. -#define reg_tinr_imp_duration_th_8k_10_8_len 3
  4416. -#define reg_tinr_imp_duration_th_8k_10_8_lsb 8
  4417. -#define xd_p_reg_tinr_freq_ratio_6m_7_0 0xA087
  4418. -#define reg_tinr_freq_ratio_6m_7_0_pos 0
  4419. -#define reg_tinr_freq_ratio_6m_7_0_len 8
  4420. -#define reg_tinr_freq_ratio_6m_7_0_lsb 0
  4421. -#define xd_p_reg_tinr_freq_ratio_6m_12_8 0xA088
  4422. -#define reg_tinr_freq_ratio_6m_12_8_pos 0
  4423. -#define reg_tinr_freq_ratio_6m_12_8_len 5
  4424. -#define reg_tinr_freq_ratio_6m_12_8_lsb 8
  4425. -#define xd_p_reg_tinr_freq_ratio_7m_7_0 0xA089
  4426. -#define reg_tinr_freq_ratio_7m_7_0_pos 0
  4427. -#define reg_tinr_freq_ratio_7m_7_0_len 8
  4428. -#define reg_tinr_freq_ratio_7m_7_0_lsb 0
  4429. -#define xd_p_reg_tinr_freq_ratio_7m_12_8 0xA08A
  4430. -#define reg_tinr_freq_ratio_7m_12_8_pos 0
  4431. -#define reg_tinr_freq_ratio_7m_12_8_len 5
  4432. -#define reg_tinr_freq_ratio_7m_12_8_lsb 8
  4433. -#define xd_p_reg_tinr_freq_ratio_8m_7_0 0xA08B
  4434. -#define reg_tinr_freq_ratio_8m_7_0_pos 0
  4435. -#define reg_tinr_freq_ratio_8m_7_0_len 8
  4436. -#define reg_tinr_freq_ratio_8m_7_0_lsb 0
  4437. -#define xd_p_reg_tinr_freq_ratio_8m_12_8 0xA08C
  4438. -#define reg_tinr_freq_ratio_8m_12_8_pos 0
  4439. -#define reg_tinr_freq_ratio_8m_12_8_len 5
  4440. -#define reg_tinr_freq_ratio_8m_12_8_lsb 8
  4441. -#define xd_p_reg_tinr_imp_duration_th_low_2k 0xA08D
  4442. -#define reg_tinr_imp_duration_th_low_2k_pos 0
  4443. -#define reg_tinr_imp_duration_th_low_2k_len 8
  4444. -#define reg_tinr_imp_duration_th_low_2k_lsb 0
  4445. -#define xd_p_reg_tinr_imp_duration_th_low_8k 0xA08E
  4446. -#define reg_tinr_imp_duration_th_low_8k_pos 0
  4447. -#define reg_tinr_imp_duration_th_low_8k_len 8
  4448. -#define reg_tinr_imp_duration_th_low_8k_lsb 0
  4449. -#define xd_r_reg_tinr_counter_7_0 0xA090
  4450. -#define reg_tinr_counter_7_0_pos 0
  4451. -#define reg_tinr_counter_7_0_len 8
  4452. -#define reg_tinr_counter_7_0_lsb 0
  4453. -#define xd_r_reg_tinr_counter_15_8 0xA091
  4454. -#define reg_tinr_counter_15_8_pos 0
  4455. -#define reg_tinr_counter_15_8_len 8
  4456. -#define reg_tinr_counter_15_8_lsb 8
  4457. -#define xd_p_reg_tinr_adative_tinr_en 0xA093
  4458. -#define reg_tinr_adative_tinr_en_pos 0
  4459. -#define reg_tinr_adative_tinr_en_len 1
  4460. -#define reg_tinr_adative_tinr_en_lsb 0
  4461. -#define xd_p_reg_tinr_peak_fifo_size 0xA093
  4462. -#define reg_tinr_peak_fifo_size_pos 1
  4463. -#define reg_tinr_peak_fifo_size_len 5
  4464. -#define reg_tinr_peak_fifo_size_lsb 0
  4465. -#define xd_p_reg_tinr_counter_rst 0xA093
  4466. -#define reg_tinr_counter_rst_pos 6
  4467. -#define reg_tinr_counter_rst_len 1
  4468. -#define reg_tinr_counter_rst_lsb 0
  4469. -#define xd_p_reg_tinr_search_period_7_0 0xA094
  4470. -#define reg_tinr_search_period_7_0_pos 0
  4471. -#define reg_tinr_search_period_7_0_len 8
  4472. -#define reg_tinr_search_period_7_0_lsb 0
  4473. -#define xd_p_reg_tinr_search_period_15_8 0xA095
  4474. -#define reg_tinr_search_period_15_8_pos 0
  4475. -#define reg_tinr_search_period_15_8_len 8
  4476. -#define reg_tinr_search_period_15_8_lsb 8
  4477. -#define xd_p_reg_ccifs_fcw_7_0 0xA0A0
  4478. -#define reg_ccifs_fcw_7_0_pos 0
  4479. -#define reg_ccifs_fcw_7_0_len 8
  4480. -#define reg_ccifs_fcw_7_0_lsb 0
  4481. -#define xd_p_reg_ccifs_fcw_12_8 0xA0A1
  4482. -#define reg_ccifs_fcw_12_8_pos 0
  4483. -#define reg_ccifs_fcw_12_8_len 5
  4484. -#define reg_ccifs_fcw_12_8_lsb 8
  4485. -#define xd_p_reg_ccifs_spec_inv 0xA0A1
  4486. -#define reg_ccifs_spec_inv_pos 5
  4487. -#define reg_ccifs_spec_inv_len 1
  4488. -#define reg_ccifs_spec_inv_lsb 0
  4489. -#define xd_p_reg_gp_trigger 0xA0A2
  4490. -#define reg_gp_trigger_pos 0
  4491. -#define reg_gp_trigger_len 1
  4492. -#define reg_gp_trigger_lsb 0
  4493. -#define xd_p_reg_trigger_sel 0xA0A2
  4494. -#define reg_trigger_sel_pos 1
  4495. -#define reg_trigger_sel_len 2
  4496. -#define reg_trigger_sel_lsb 0
  4497. -#define xd_p_reg_debug_ofdm 0xA0A2
  4498. -#define reg_debug_ofdm_pos 3
  4499. -#define reg_debug_ofdm_len 2
  4500. -#define reg_debug_ofdm_lsb 0
  4501. -#define xd_p_reg_trigger_module_sel 0xA0A3
  4502. -#define reg_trigger_module_sel_pos 0
  4503. -#define reg_trigger_module_sel_len 6
  4504. -#define reg_trigger_module_sel_lsb 0
  4505. -#define xd_p_reg_trigger_set_sel 0xA0A4
  4506. -#define reg_trigger_set_sel_pos 0
  4507. -#define reg_trigger_set_sel_len 6
  4508. -#define reg_trigger_set_sel_lsb 0
  4509. -#define xd_p_reg_fw_int_mask_n 0xA0A4
  4510. -#define reg_fw_int_mask_n_pos 6
  4511. -#define reg_fw_int_mask_n_len 1
  4512. -#define reg_fw_int_mask_n_lsb 0
  4513. -#define xd_p_reg_debug_group 0xA0A5
  4514. -#define reg_debug_group_pos 0
  4515. -#define reg_debug_group_len 4
  4516. -#define reg_debug_group_lsb 0
  4517. -#define xd_p_reg_odbg_clk_sel 0xA0A5
  4518. -#define reg_odbg_clk_sel_pos 4
  4519. -#define reg_odbg_clk_sel_len 2
  4520. -#define reg_odbg_clk_sel_lsb 0
  4521. -#define xd_p_reg_ccif_sc 0xA0C0
  4522. -#define reg_ccif_sc_pos 0
  4523. -#define reg_ccif_sc_len 4
  4524. -#define reg_ccif_sc_lsb 0
  4525. -#define xd_r_reg_ccif_saturate 0xA0C1
  4526. -#define reg_ccif_saturate_pos 0
  4527. -#define reg_ccif_saturate_len 2
  4528. -#define reg_ccif_saturate_lsb 0
  4529. -#define xd_r_reg_antif_saturate 0xA0C1
  4530. -#define reg_antif_saturate_pos 2
  4531. -#define reg_antif_saturate_len 4
  4532. -#define reg_antif_saturate_lsb 0
  4533. -#define xd_r_reg_acif_saturate 0xA0C2
  4534. -#define reg_acif_saturate_pos 0
  4535. -#define reg_acif_saturate_len 8
  4536. -#define reg_acif_saturate_lsb 0
  4537. -#define xd_p_reg_tmr_timer0_threshold_7_0 0xA0C8
  4538. -#define reg_tmr_timer0_threshold_7_0_pos 0
  4539. -#define reg_tmr_timer0_threshold_7_0_len 8
  4540. -#define reg_tmr_timer0_threshold_7_0_lsb 0
  4541. -#define xd_p_reg_tmr_timer0_threshold_15_8 0xA0C9
  4542. -#define reg_tmr_timer0_threshold_15_8_pos 0
  4543. -#define reg_tmr_timer0_threshold_15_8_len 8
  4544. -#define reg_tmr_timer0_threshold_15_8_lsb 8
  4545. -#define xd_p_reg_tmr_timer0_enable 0xA0CA
  4546. -#define reg_tmr_timer0_enable_pos 0
  4547. -#define reg_tmr_timer0_enable_len 1
  4548. -#define reg_tmr_timer0_enable_lsb 0
  4549. -#define xd_p_reg_tmr_timer0_clk_sel 0xA0CA
  4550. -#define reg_tmr_timer0_clk_sel_pos 1
  4551. -#define reg_tmr_timer0_clk_sel_len 1
  4552. -#define reg_tmr_timer0_clk_sel_lsb 0
  4553. -#define xd_p_reg_tmr_timer0_int 0xA0CA
  4554. -#define reg_tmr_timer0_int_pos 2
  4555. -#define reg_tmr_timer0_int_len 1
  4556. -#define reg_tmr_timer0_int_lsb 0
  4557. -#define xd_p_reg_tmr_timer0_rst 0xA0CA
  4558. -#define reg_tmr_timer0_rst_pos 3
  4559. -#define reg_tmr_timer0_rst_len 1
  4560. -#define reg_tmr_timer0_rst_lsb 0
  4561. -#define xd_r_reg_tmr_timer0_count_7_0 0xA0CB
  4562. -#define reg_tmr_timer0_count_7_0_pos 0
  4563. -#define reg_tmr_timer0_count_7_0_len 8
  4564. -#define reg_tmr_timer0_count_7_0_lsb 0
  4565. -#define xd_r_reg_tmr_timer0_count_15_8 0xA0CC
  4566. -#define reg_tmr_timer0_count_15_8_pos 0
  4567. -#define reg_tmr_timer0_count_15_8_len 8
  4568. -#define reg_tmr_timer0_count_15_8_lsb 8
  4569. -#define xd_p_reg_suspend 0xA0CD
  4570. -#define reg_suspend_pos 0
  4571. -#define reg_suspend_len 1
  4572. -#define reg_suspend_lsb 0
  4573. -#define xd_p_reg_suspend_rdy 0xA0CD
  4574. -#define reg_suspend_rdy_pos 1
  4575. -#define reg_suspend_rdy_len 1
  4576. -#define reg_suspend_rdy_lsb 0
  4577. -#define xd_p_reg_resume 0xA0CD
  4578. -#define reg_resume_pos 2
  4579. -#define reg_resume_len 1
  4580. -#define reg_resume_lsb 0
  4581. -#define xd_p_reg_resume_rdy 0xA0CD
  4582. -#define reg_resume_rdy_pos 3
  4583. -#define reg_resume_rdy_len 1
  4584. -#define reg_resume_rdy_lsb 0
  4585. -#define xd_p_reg_fmf 0xA0CE
  4586. -#define reg_fmf_pos 0
  4587. -#define reg_fmf_len 8
  4588. -#define reg_fmf_lsb 0
  4589. -#define xd_p_ccid_accumulate_num_2k_7_0 0xA100
  4590. -#define ccid_accumulate_num_2k_7_0_pos 0
  4591. -#define ccid_accumulate_num_2k_7_0_len 8
  4592. -#define ccid_accumulate_num_2k_7_0_lsb 0
  4593. -#define xd_p_ccid_accumulate_num_2k_12_8 0xA101
  4594. -#define ccid_accumulate_num_2k_12_8_pos 0
  4595. -#define ccid_accumulate_num_2k_12_8_len 5
  4596. -#define ccid_accumulate_num_2k_12_8_lsb 8
  4597. -#define xd_p_ccid_accumulate_num_8k_7_0 0xA102
  4598. -#define ccid_accumulate_num_8k_7_0_pos 0
  4599. -#define ccid_accumulate_num_8k_7_0_len 8
  4600. -#define ccid_accumulate_num_8k_7_0_lsb 0
  4601. -#define xd_p_ccid_accumulate_num_8k_14_8 0xA103
  4602. -#define ccid_accumulate_num_8k_14_8_pos 0
  4603. -#define ccid_accumulate_num_8k_14_8_len 7
  4604. -#define ccid_accumulate_num_8k_14_8_lsb 8
  4605. -#define xd_p_ccid_desired_level_0 0xA103
  4606. -#define ccid_desired_level_0_pos 7
  4607. -#define ccid_desired_level_0_len 1
  4608. -#define ccid_desired_level_0_lsb 0
  4609. -#define xd_p_ccid_desired_level_8_1 0xA104
  4610. -#define ccid_desired_level_8_1_pos 0
  4611. -#define ccid_desired_level_8_1_len 8
  4612. -#define ccid_desired_level_8_1_lsb 1
  4613. -#define xd_p_ccid_apply_delay 0xA105
  4614. -#define ccid_apply_delay_pos 0
  4615. -#define ccid_apply_delay_len 7
  4616. -#define ccid_apply_delay_lsb 0
  4617. -#define xd_p_ccid_CCID_Threshold1 0xA106
  4618. -#define ccid_CCID_Threshold1_pos 0
  4619. -#define ccid_CCID_Threshold1_len 8
  4620. -#define ccid_CCID_Threshold1_lsb 0
  4621. -#define xd_p_ccid_CCID_Threshold2 0xA107
  4622. -#define ccid_CCID_Threshold2_pos 0
  4623. -#define ccid_CCID_Threshold2_len 8
  4624. -#define ccid_CCID_Threshold2_lsb 0
  4625. -#define xd_p_reg_ccid_gain_scale 0xA108
  4626. -#define reg_ccid_gain_scale_pos 0
  4627. -#define reg_ccid_gain_scale_len 4
  4628. -#define reg_ccid_gain_scale_lsb 0
  4629. -#define xd_p_reg_ccid2_passband_gain_set 0xA108
  4630. -#define reg_ccid2_passband_gain_set_pos 4
  4631. -#define reg_ccid2_passband_gain_set_len 4
  4632. -#define reg_ccid2_passband_gain_set_lsb 0
  4633. -#define xd_r_ccid_multiplier_7_0 0xA109
  4634. -#define ccid_multiplier_7_0_pos 0
  4635. -#define ccid_multiplier_7_0_len 8
  4636. -#define ccid_multiplier_7_0_lsb 0
  4637. -#define xd_r_ccid_multiplier_15_8 0xA10A
  4638. -#define ccid_multiplier_15_8_pos 0
  4639. -#define ccid_multiplier_15_8_len 8
  4640. -#define ccid_multiplier_15_8_lsb 8
  4641. -#define xd_r_ccid_right_shift_bits 0xA10B
  4642. -#define ccid_right_shift_bits_pos 0
  4643. -#define ccid_right_shift_bits_len 4
  4644. -#define ccid_right_shift_bits_lsb 0
  4645. -#define xd_r_reg_ccid_sx_7_0 0xA10C
  4646. -#define reg_ccid_sx_7_0_pos 0
  4647. -#define reg_ccid_sx_7_0_len 8
  4648. -#define reg_ccid_sx_7_0_lsb 0
  4649. -#define xd_r_reg_ccid_sx_15_8 0xA10D
  4650. -#define reg_ccid_sx_15_8_pos 0
  4651. -#define reg_ccid_sx_15_8_len 8
  4652. -#define reg_ccid_sx_15_8_lsb 8
  4653. -#define xd_r_reg_ccid_sx_21_16 0xA10E
  4654. -#define reg_ccid_sx_21_16_pos 0
  4655. -#define reg_ccid_sx_21_16_len 6
  4656. -#define reg_ccid_sx_21_16_lsb 16
  4657. -#define xd_r_reg_ccid_sy_7_0 0xA110
  4658. -#define reg_ccid_sy_7_0_pos 0
  4659. -#define reg_ccid_sy_7_0_len 8
  4660. -#define reg_ccid_sy_7_0_lsb 0
  4661. -#define xd_r_reg_ccid_sy_15_8 0xA111
  4662. -#define reg_ccid_sy_15_8_pos 0
  4663. -#define reg_ccid_sy_15_8_len 8
  4664. -#define reg_ccid_sy_15_8_lsb 8
  4665. -#define xd_r_reg_ccid_sy_23_16 0xA112
  4666. -#define reg_ccid_sy_23_16_pos 0
  4667. -#define reg_ccid_sy_23_16_len 8
  4668. -#define reg_ccid_sy_23_16_lsb 16
  4669. -#define xd_r_reg_ccid2_sz_7_0 0xA114
  4670. -#define reg_ccid2_sz_7_0_pos 0
  4671. -#define reg_ccid2_sz_7_0_len 8
  4672. -#define reg_ccid2_sz_7_0_lsb 0
  4673. -#define xd_r_reg_ccid2_sz_15_8 0xA115
  4674. -#define reg_ccid2_sz_15_8_pos 0
  4675. -#define reg_ccid2_sz_15_8_len 8
  4676. -#define reg_ccid2_sz_15_8_lsb 8
  4677. -#define xd_r_reg_ccid2_sz_23_16 0xA116
  4678. -#define reg_ccid2_sz_23_16_pos 0
  4679. -#define reg_ccid2_sz_23_16_len 8
  4680. -#define reg_ccid2_sz_23_16_lsb 16
  4681. -#define xd_r_reg_ccid2_sz_25_24 0xA117
  4682. -#define reg_ccid2_sz_25_24_pos 0
  4683. -#define reg_ccid2_sz_25_24_len 2
  4684. -#define reg_ccid2_sz_25_24_lsb 24
  4685. -#define xd_r_reg_ccid2_sy_7_0 0xA118
  4686. -#define reg_ccid2_sy_7_0_pos 0
  4687. -#define reg_ccid2_sy_7_0_len 8
  4688. -#define reg_ccid2_sy_7_0_lsb 0
  4689. -#define xd_r_reg_ccid2_sy_15_8 0xA119
  4690. -#define reg_ccid2_sy_15_8_pos 0
  4691. -#define reg_ccid2_sy_15_8_len 8
  4692. -#define reg_ccid2_sy_15_8_lsb 8
  4693. -#define xd_r_reg_ccid2_sy_23_16 0xA11A
  4694. -#define reg_ccid2_sy_23_16_pos 0
  4695. -#define reg_ccid2_sy_23_16_len 8
  4696. -#define reg_ccid2_sy_23_16_lsb 16
  4697. -#define xd_r_reg_ccid2_sy_25_24 0xA11B
  4698. -#define reg_ccid2_sy_25_24_pos 0
  4699. -#define reg_ccid2_sy_25_24_len 2
  4700. -#define reg_ccid2_sy_25_24_lsb 24
  4701. -#define xd_p_dagc1_accumulate_num_2k_7_0 0xA120
  4702. -#define dagc1_accumulate_num_2k_7_0_pos 0
  4703. -#define dagc1_accumulate_num_2k_7_0_len 8
  4704. -#define dagc1_accumulate_num_2k_7_0_lsb 0
  4705. -#define xd_p_dagc1_accumulate_num_2k_12_8 0xA121
  4706. -#define dagc1_accumulate_num_2k_12_8_pos 0
  4707. -#define dagc1_accumulate_num_2k_12_8_len 5
  4708. -#define dagc1_accumulate_num_2k_12_8_lsb 8
  4709. -#define xd_p_dagc1_accumulate_num_8k_7_0 0xA122
  4710. -#define dagc1_accumulate_num_8k_7_0_pos 0
  4711. -#define dagc1_accumulate_num_8k_7_0_len 8
  4712. -#define dagc1_accumulate_num_8k_7_0_lsb 0
  4713. -#define xd_p_dagc1_accumulate_num_8k_14_8 0xA123
  4714. -#define dagc1_accumulate_num_8k_14_8_pos 0
  4715. -#define dagc1_accumulate_num_8k_14_8_len 7
  4716. -#define dagc1_accumulate_num_8k_14_8_lsb 8
  4717. -#define xd_p_dagc1_desired_level_0 0xA123
  4718. -#define dagc1_desired_level_0_pos 7
  4719. -#define dagc1_desired_level_0_len 1
  4720. -#define dagc1_desired_level_0_lsb 0
  4721. -#define xd_p_dagc1_desired_level_8_1 0xA124
  4722. -#define dagc1_desired_level_8_1_pos 0
  4723. -#define dagc1_desired_level_8_1_len 8
  4724. -#define dagc1_desired_level_8_1_lsb 1
  4725. -#define xd_p_dagc1_apply_delay 0xA125
  4726. -#define dagc1_apply_delay_pos 0
  4727. -#define dagc1_apply_delay_len 7
  4728. -#define dagc1_apply_delay_lsb 0
  4729. -#define xd_p_dagc1_bypass_scale_ctl 0xA126
  4730. -#define dagc1_bypass_scale_ctl_pos 0
  4731. -#define dagc1_bypass_scale_ctl_len 2
  4732. -#define dagc1_bypass_scale_ctl_lsb 0
  4733. -#define xd_p_reg_dagc1_in_sat_cnt_7_0 0xA127
  4734. -#define reg_dagc1_in_sat_cnt_7_0_pos 0
  4735. -#define reg_dagc1_in_sat_cnt_7_0_len 8
  4736. -#define reg_dagc1_in_sat_cnt_7_0_lsb 0
  4737. -#define xd_p_reg_dagc1_in_sat_cnt_15_8 0xA128
  4738. -#define reg_dagc1_in_sat_cnt_15_8_pos 0
  4739. -#define reg_dagc1_in_sat_cnt_15_8_len 8
  4740. -#define reg_dagc1_in_sat_cnt_15_8_lsb 8
  4741. -#define xd_p_reg_dagc1_in_sat_cnt_23_16 0xA129
  4742. -#define reg_dagc1_in_sat_cnt_23_16_pos 0
  4743. -#define reg_dagc1_in_sat_cnt_23_16_len 8
  4744. -#define reg_dagc1_in_sat_cnt_23_16_lsb 16
  4745. -#define xd_p_reg_dagc1_in_sat_cnt_31_24 0xA12A
  4746. -#define reg_dagc1_in_sat_cnt_31_24_pos 0
  4747. -#define reg_dagc1_in_sat_cnt_31_24_len 8
  4748. -#define reg_dagc1_in_sat_cnt_31_24_lsb 24
  4749. -#define xd_p_reg_dagc1_out_sat_cnt_7_0 0xA12B
  4750. -#define reg_dagc1_out_sat_cnt_7_0_pos 0
  4751. -#define reg_dagc1_out_sat_cnt_7_0_len 8
  4752. -#define reg_dagc1_out_sat_cnt_7_0_lsb 0
  4753. -#define xd_p_reg_dagc1_out_sat_cnt_15_8 0xA12C
  4754. -#define reg_dagc1_out_sat_cnt_15_8_pos 0
  4755. -#define reg_dagc1_out_sat_cnt_15_8_len 8
  4756. -#define reg_dagc1_out_sat_cnt_15_8_lsb 8
  4757. -#define xd_p_reg_dagc1_out_sat_cnt_23_16 0xA12D
  4758. -#define reg_dagc1_out_sat_cnt_23_16_pos 0
  4759. -#define reg_dagc1_out_sat_cnt_23_16_len 8
  4760. -#define reg_dagc1_out_sat_cnt_23_16_lsb 16
  4761. -#define xd_p_reg_dagc1_out_sat_cnt_31_24 0xA12E
  4762. -#define reg_dagc1_out_sat_cnt_31_24_pos 0
  4763. -#define reg_dagc1_out_sat_cnt_31_24_len 8
  4764. -#define reg_dagc1_out_sat_cnt_31_24_lsb 24
  4765. -#define xd_r_dagc1_multiplier_7_0 0xA136
  4766. -#define dagc1_multiplier_7_0_pos 0
  4767. -#define dagc1_multiplier_7_0_len 8
  4768. -#define dagc1_multiplier_7_0_lsb 0
  4769. -#define xd_r_dagc1_multiplier_15_8 0xA137
  4770. -#define dagc1_multiplier_15_8_pos 0
  4771. -#define dagc1_multiplier_15_8_len 8
  4772. -#define dagc1_multiplier_15_8_lsb 8
  4773. -#define xd_r_dagc1_right_shift_bits 0xA138
  4774. -#define dagc1_right_shift_bits_pos 0
  4775. -#define dagc1_right_shift_bits_len 4
  4776. -#define dagc1_right_shift_bits_lsb 0
  4777. -#define xd_p_reg_bfs_fcw_7_0 0xA140
  4778. -#define reg_bfs_fcw_7_0_pos 0
  4779. -#define reg_bfs_fcw_7_0_len 8
  4780. -#define reg_bfs_fcw_7_0_lsb 0
  4781. -#define xd_p_reg_bfs_fcw_15_8 0xA141
  4782. -#define reg_bfs_fcw_15_8_pos 0
  4783. -#define reg_bfs_fcw_15_8_len 8
  4784. -#define reg_bfs_fcw_15_8_lsb 8
  4785. -#define xd_p_reg_bfs_fcw_22_16 0xA142
  4786. -#define reg_bfs_fcw_22_16_pos 0
  4787. -#define reg_bfs_fcw_22_16_len 7
  4788. -#define reg_bfs_fcw_22_16_lsb 16
  4789. -#define xd_p_reg_antif_sf_7_0 0xA144
  4790. -#define reg_antif_sf_7_0_pos 0
  4791. -#define reg_antif_sf_7_0_len 8
  4792. -#define reg_antif_sf_7_0_lsb 0
  4793. -#define xd_p_reg_antif_sf_11_8 0xA145
  4794. -#define reg_antif_sf_11_8_pos 0
  4795. -#define reg_antif_sf_11_8_len 4
  4796. -#define reg_antif_sf_11_8_lsb 8
  4797. -#define xd_r_bfs_fcw_q_7_0 0xA150
  4798. -#define bfs_fcw_q_7_0_pos 0
  4799. -#define bfs_fcw_q_7_0_len 8
  4800. -#define bfs_fcw_q_7_0_lsb 0
  4801. -#define xd_r_bfs_fcw_q_15_8 0xA151
  4802. -#define bfs_fcw_q_15_8_pos 0
  4803. -#define bfs_fcw_q_15_8_len 8
  4804. -#define bfs_fcw_q_15_8_lsb 8
  4805. -#define xd_r_bfs_fcw_q_22_16 0xA152
  4806. -#define bfs_fcw_q_22_16_pos 0
  4807. -#define bfs_fcw_q_22_16_len 7
  4808. -#define bfs_fcw_q_22_16_lsb 16
  4809. -#define xd_p_reg_dca_enu 0xA160
  4810. -#define reg_dca_enu_pos 0
  4811. -#define reg_dca_enu_len 1
  4812. -#define reg_dca_enu_lsb 0
  4813. -#define xd_p_reg_dca_enl 0xA160
  4814. -#define reg_dca_enl_pos 1
  4815. -#define reg_dca_enl_len 1
  4816. -#define reg_dca_enl_lsb 0
  4817. -#define xd_p_reg_dca_lower_chip 0xA160
  4818. -#define reg_dca_lower_chip_pos 2
  4819. -#define reg_dca_lower_chip_len 1
  4820. -#define reg_dca_lower_chip_lsb 0
  4821. -#define xd_p_reg_dca_upper_chip 0xA160
  4822. -#define reg_dca_upper_chip_pos 3
  4823. -#define reg_dca_upper_chip_len 1
  4824. -#define reg_dca_upper_chip_lsb 0
  4825. -#define xd_p_reg_dca_platch 0xA160
  4826. -#define reg_dca_platch_pos 4
  4827. -#define reg_dca_platch_len 1
  4828. -#define reg_dca_platch_lsb 0
  4829. -#define xd_p_reg_dca_th 0xA161
  4830. -#define reg_dca_th_pos 0
  4831. -#define reg_dca_th_len 5
  4832. -#define reg_dca_th_lsb 0
  4833. -#define xd_p_reg_dca_scale 0xA162
  4834. -#define reg_dca_scale_pos 0
  4835. -#define reg_dca_scale_len 4
  4836. -#define reg_dca_scale_lsb 0
  4837. -#define xd_p_reg_dca_tone_7_0 0xA163
  4838. -#define reg_dca_tone_7_0_pos 0
  4839. -#define reg_dca_tone_7_0_len 8
  4840. -#define reg_dca_tone_7_0_lsb 0
  4841. -#define xd_p_reg_dca_tone_12_8 0xA164
  4842. -#define reg_dca_tone_12_8_pos 0
  4843. -#define reg_dca_tone_12_8_len 5
  4844. -#define reg_dca_tone_12_8_lsb 8
  4845. -#define xd_p_reg_dca_time_7_0 0xA165
  4846. -#define reg_dca_time_7_0_pos 0
  4847. -#define reg_dca_time_7_0_len 8
  4848. -#define reg_dca_time_7_0_lsb 0
  4849. -#define xd_p_reg_dca_time_15_8 0xA166
  4850. -#define reg_dca_time_15_8_pos 0
  4851. -#define reg_dca_time_15_8_len 8
  4852. -#define reg_dca_time_15_8_lsb 8
  4853. -#define xd_r_dcasm 0xA167
  4854. -#define dcasm_pos 0
  4855. -#define dcasm_len 3
  4856. -#define dcasm_lsb 0
  4857. -#define xd_p_reg_qnt_valuew_7_0 0xA168
  4858. -#define reg_qnt_valuew_7_0_pos 0
  4859. -#define reg_qnt_valuew_7_0_len 8
  4860. -#define reg_qnt_valuew_7_0_lsb 0
  4861. -#define xd_p_reg_qnt_valuew_10_8 0xA169
  4862. -#define reg_qnt_valuew_10_8_pos 0
  4863. -#define reg_qnt_valuew_10_8_len 3
  4864. -#define reg_qnt_valuew_10_8_lsb 8
  4865. -#define xd_p_dca_sbx_gain_diff_7_0 0xA16A
  4866. -#define dca_sbx_gain_diff_7_0_pos 0
  4867. -#define dca_sbx_gain_diff_7_0_len 8
  4868. -#define dca_sbx_gain_diff_7_0_lsb 0
  4869. -#define xd_p_dca_sbx_gain_diff_9_8 0xA16B
  4870. -#define dca_sbx_gain_diff_9_8_pos 0
  4871. -#define dca_sbx_gain_diff_9_8_len 2
  4872. -#define dca_sbx_gain_diff_9_8_lsb 8
  4873. -#define xd_p_reg_dca_stand_alone 0xA16C
  4874. -#define reg_dca_stand_alone_pos 0
  4875. -#define reg_dca_stand_alone_len 1
  4876. -#define reg_dca_stand_alone_lsb 0
  4877. -#define xd_p_reg_dca_upper_out_en 0xA16C
  4878. -#define reg_dca_upper_out_en_pos 1
  4879. -#define reg_dca_upper_out_en_len 1
  4880. -#define reg_dca_upper_out_en_lsb 0
  4881. -#define xd_p_reg_dca_rc_en 0xA16C
  4882. -#define reg_dca_rc_en_pos 2
  4883. -#define reg_dca_rc_en_len 1
  4884. -#define reg_dca_rc_en_lsb 0
  4885. -#define xd_p_reg_dca_retrain_send 0xA16C
  4886. -#define reg_dca_retrain_send_pos 3
  4887. -#define reg_dca_retrain_send_len 1
  4888. -#define reg_dca_retrain_send_lsb 0
  4889. -#define xd_p_reg_dca_retrain_rec 0xA16C
  4890. -#define reg_dca_retrain_rec_pos 4
  4891. -#define reg_dca_retrain_rec_len 1
  4892. -#define reg_dca_retrain_rec_lsb 0
  4893. -#define xd_p_reg_dca_api_tpsrdy 0xA16C
  4894. -#define reg_dca_api_tpsrdy_pos 5
  4895. -#define reg_dca_api_tpsrdy_len 1
  4896. -#define reg_dca_api_tpsrdy_lsb 0
  4897. -#define xd_p_reg_dca_symbol_gap 0xA16D
  4898. -#define reg_dca_symbol_gap_pos 0
  4899. -#define reg_dca_symbol_gap_len 4
  4900. -#define reg_dca_symbol_gap_lsb 0
  4901. -#define xd_p_reg_qnt_nfvaluew_7_0 0xA16E
  4902. -#define reg_qnt_nfvaluew_7_0_pos 0
  4903. -#define reg_qnt_nfvaluew_7_0_len 8
  4904. -#define reg_qnt_nfvaluew_7_0_lsb 0
  4905. -#define xd_p_reg_qnt_nfvaluew_10_8 0xA16F
  4906. -#define reg_qnt_nfvaluew_10_8_pos 0
  4907. -#define reg_qnt_nfvaluew_10_8_len 3
  4908. -#define reg_qnt_nfvaluew_10_8_lsb 8
  4909. -#define xd_p_reg_qnt_flatness_thr_7_0 0xA170
  4910. -#define reg_qnt_flatness_thr_7_0_pos 0
  4911. -#define reg_qnt_flatness_thr_7_0_len 8
  4912. -#define reg_qnt_flatness_thr_7_0_lsb 0
  4913. -#define xd_p_reg_qnt_flatness_thr_9_8 0xA171
  4914. -#define reg_qnt_flatness_thr_9_8_pos 0
  4915. -#define reg_qnt_flatness_thr_9_8_len 2
  4916. -#define reg_qnt_flatness_thr_9_8_lsb 8
  4917. -#define xd_p_reg_dca_tone_idx_5_0 0xA171
  4918. -#define reg_dca_tone_idx_5_0_pos 2
  4919. -#define reg_dca_tone_idx_5_0_len 6
  4920. -#define reg_dca_tone_idx_5_0_lsb 0
  4921. -#define xd_p_reg_dca_tone_idx_12_6 0xA172
  4922. -#define reg_dca_tone_idx_12_6_pos 0
  4923. -#define reg_dca_tone_idx_12_6_len 7
  4924. -#define reg_dca_tone_idx_12_6_lsb 6
  4925. -#define xd_p_reg_dca_data_vld 0xA173
  4926. -#define reg_dca_data_vld_pos 0
  4927. -#define reg_dca_data_vld_len 1
  4928. -#define reg_dca_data_vld_lsb 0
  4929. -#define xd_p_reg_dca_read_update 0xA173
  4930. -#define reg_dca_read_update_pos 1
  4931. -#define reg_dca_read_update_len 1
  4932. -#define reg_dca_read_update_lsb 0
  4933. -#define xd_r_reg_dca_data_re_5_0 0xA173
  4934. -#define reg_dca_data_re_5_0_pos 2
  4935. -#define reg_dca_data_re_5_0_len 6
  4936. -#define reg_dca_data_re_5_0_lsb 0
  4937. -#define xd_r_reg_dca_data_re_10_6 0xA174
  4938. -#define reg_dca_data_re_10_6_pos 0
  4939. -#define reg_dca_data_re_10_6_len 5
  4940. -#define reg_dca_data_re_10_6_lsb 6
  4941. -#define xd_r_reg_dca_data_im_7_0 0xA175
  4942. -#define reg_dca_data_im_7_0_pos 0
  4943. -#define reg_dca_data_im_7_0_len 8
  4944. -#define reg_dca_data_im_7_0_lsb 0
  4945. -#define xd_r_reg_dca_data_im_10_8 0xA176
  4946. -#define reg_dca_data_im_10_8_pos 0
  4947. -#define reg_dca_data_im_10_8_len 3
  4948. -#define reg_dca_data_im_10_8_lsb 8
  4949. -#define xd_r_reg_dca_data_h2_7_0 0xA178
  4950. -#define reg_dca_data_h2_7_0_pos 0
  4951. -#define reg_dca_data_h2_7_0_len 8
  4952. -#define reg_dca_data_h2_7_0_lsb 0
  4953. -#define xd_r_reg_dca_data_h2_9_8 0xA179
  4954. -#define reg_dca_data_h2_9_8_pos 0
  4955. -#define reg_dca_data_h2_9_8_len 2
  4956. -#define reg_dca_data_h2_9_8_lsb 8
  4957. -#define xd_p_reg_f_adc_7_0 0xA180
  4958. -#define reg_f_adc_7_0_pos 0
  4959. -#define reg_f_adc_7_0_len 8
  4960. -#define reg_f_adc_7_0_lsb 0
  4961. -#define xd_p_reg_f_adc_15_8 0xA181
  4962. -#define reg_f_adc_15_8_pos 0
  4963. -#define reg_f_adc_15_8_len 8
  4964. -#define reg_f_adc_15_8_lsb 8
  4965. -#define xd_p_reg_f_adc_23_16 0xA182
  4966. -#define reg_f_adc_23_16_pos 0
  4967. -#define reg_f_adc_23_16_len 8
  4968. -#define reg_f_adc_23_16_lsb 16
  4969. -#define xd_r_intp_mu_7_0 0xA190
  4970. -#define intp_mu_7_0_pos 0
  4971. -#define intp_mu_7_0_len 8
  4972. -#define intp_mu_7_0_lsb 0
  4973. -#define xd_r_intp_mu_15_8 0xA191
  4974. -#define intp_mu_15_8_pos 0
  4975. -#define intp_mu_15_8_len 8
  4976. -#define intp_mu_15_8_lsb 8
  4977. -#define xd_r_intp_mu_19_16 0xA192
  4978. -#define intp_mu_19_16_pos 0
  4979. -#define intp_mu_19_16_len 4
  4980. -#define intp_mu_19_16_lsb 16
  4981. -#define xd_p_reg_agc_rst 0xA1A0
  4982. -#define reg_agc_rst_pos 0
  4983. -#define reg_agc_rst_len 1
  4984. -#define reg_agc_rst_lsb 0
  4985. -#define xd_p_rf_agc_en 0xA1A0
  4986. -#define rf_agc_en_pos 1
  4987. -#define rf_agc_en_len 1
  4988. -#define rf_agc_en_lsb 0
  4989. -#define xd_p_rf_agc_dis 0xA1A0
  4990. -#define rf_agc_dis_pos 2
  4991. -#define rf_agc_dis_len 1
  4992. -#define rf_agc_dis_lsb 0
  4993. -#define xd_p_if_agc_rst 0xA1A0
  4994. -#define if_agc_rst_pos 3
  4995. -#define if_agc_rst_len 1
  4996. -#define if_agc_rst_lsb 0
  4997. -#define xd_p_if_agc_en 0xA1A0
  4998. -#define if_agc_en_pos 4
  4999. -#define if_agc_en_len 1
  5000. -#define if_agc_en_lsb 0
  5001. -#define xd_p_if_agc_dis 0xA1A0
  5002. -#define if_agc_dis_pos 5
  5003. -#define if_agc_dis_len 1
  5004. -#define if_agc_dis_lsb 0
  5005. -#define xd_p_agc_lock 0xA1A0
  5006. -#define agc_lock_pos 6
  5007. -#define agc_lock_len 1
  5008. -#define agc_lock_lsb 0
  5009. -#define xd_p_reg_tinr_rst 0xA1A1
  5010. -#define reg_tinr_rst_pos 0
  5011. -#define reg_tinr_rst_len 1
  5012. -#define reg_tinr_rst_lsb 0
  5013. -#define xd_p_reg_tinr_en 0xA1A1
  5014. -#define reg_tinr_en_pos 1
  5015. -#define reg_tinr_en_len 1
  5016. -#define reg_tinr_en_lsb 0
  5017. -#define xd_p_reg_ccifs_en 0xA1A2
  5018. -#define reg_ccifs_en_pos 0
  5019. -#define reg_ccifs_en_len 1
  5020. -#define reg_ccifs_en_lsb 0
  5021. -#define xd_p_reg_ccifs_dis 0xA1A2
  5022. -#define reg_ccifs_dis_pos 1
  5023. -#define reg_ccifs_dis_len 1
  5024. -#define reg_ccifs_dis_lsb 0
  5025. -#define xd_p_reg_ccifs_rst 0xA1A2
  5026. -#define reg_ccifs_rst_pos 2
  5027. -#define reg_ccifs_rst_len 1
  5028. -#define reg_ccifs_rst_lsb 0
  5029. -#define xd_p_reg_ccifs_byp 0xA1A2
  5030. -#define reg_ccifs_byp_pos 3
  5031. -#define reg_ccifs_byp_len 1
  5032. -#define reg_ccifs_byp_lsb 0
  5033. -#define xd_p_reg_ccif_en 0xA1A3
  5034. -#define reg_ccif_en_pos 0
  5035. -#define reg_ccif_en_len 1
  5036. -#define reg_ccif_en_lsb 0
  5037. -#define xd_p_reg_ccif_dis 0xA1A3
  5038. -#define reg_ccif_dis_pos 1
  5039. -#define reg_ccif_dis_len 1
  5040. -#define reg_ccif_dis_lsb 0
  5041. -#define xd_p_reg_ccif_rst 0xA1A3
  5042. -#define reg_ccif_rst_pos 2
  5043. -#define reg_ccif_rst_len 1
  5044. -#define reg_ccif_rst_lsb 0
  5045. -#define xd_p_reg_ccif_byp 0xA1A3
  5046. -#define reg_ccif_byp_pos 3
  5047. -#define reg_ccif_byp_len 1
  5048. -#define reg_ccif_byp_lsb 0
  5049. -#define xd_p_dagc1_rst 0xA1A4
  5050. -#define dagc1_rst_pos 0
  5051. -#define dagc1_rst_len 1
  5052. -#define dagc1_rst_lsb 0
  5053. -#define xd_p_dagc1_en 0xA1A4
  5054. -#define dagc1_en_pos 1
  5055. -#define dagc1_en_len 1
  5056. -#define dagc1_en_lsb 0
  5057. -#define xd_p_dagc1_mode 0xA1A4
  5058. -#define dagc1_mode_pos 2
  5059. -#define dagc1_mode_len 2
  5060. -#define dagc1_mode_lsb 0
  5061. -#define xd_p_dagc1_done 0xA1A4
  5062. -#define dagc1_done_pos 4
  5063. -#define dagc1_done_len 1
  5064. -#define dagc1_done_lsb 0
  5065. -#define xd_p_ccid_rst 0xA1A5
  5066. -#define ccid_rst_pos 0
  5067. -#define ccid_rst_len 1
  5068. -#define ccid_rst_lsb 0
  5069. -#define xd_p_ccid_en 0xA1A5
  5070. -#define ccid_en_pos 1
  5071. -#define ccid_en_len 1
  5072. -#define ccid_en_lsb 0
  5073. -#define xd_p_ccid_mode 0xA1A5
  5074. -#define ccid_mode_pos 2
  5075. -#define ccid_mode_len 2
  5076. -#define ccid_mode_lsb 0
  5077. -#define xd_p_ccid_done 0xA1A5
  5078. -#define ccid_done_pos 4
  5079. -#define ccid_done_len 1
  5080. -#define ccid_done_lsb 0
  5081. -#define xd_r_ccid_deted 0xA1A5
  5082. -#define ccid_deted_pos 5
  5083. -#define ccid_deted_len 1
  5084. -#define ccid_deted_lsb 0
  5085. -#define xd_p_ccid2_en 0xA1A5
  5086. -#define ccid2_en_pos 6
  5087. -#define ccid2_en_len 1
  5088. -#define ccid2_en_lsb 0
  5089. -#define xd_p_ccid2_done 0xA1A5
  5090. -#define ccid2_done_pos 7
  5091. -#define ccid2_done_len 1
  5092. -#define ccid2_done_lsb 0
  5093. -#define xd_p_reg_bfs_en 0xA1A6
  5094. -#define reg_bfs_en_pos 0
  5095. -#define reg_bfs_en_len 1
  5096. -#define reg_bfs_en_lsb 0
  5097. -#define xd_p_reg_bfs_dis 0xA1A6
  5098. -#define reg_bfs_dis_pos 1
  5099. -#define reg_bfs_dis_len 1
  5100. -#define reg_bfs_dis_lsb 0
  5101. -#define xd_p_reg_bfs_rst 0xA1A6
  5102. -#define reg_bfs_rst_pos 2
  5103. -#define reg_bfs_rst_len 1
  5104. -#define reg_bfs_rst_lsb 0
  5105. -#define xd_p_reg_bfs_byp 0xA1A6
  5106. -#define reg_bfs_byp_pos 3
  5107. -#define reg_bfs_byp_len 1
  5108. -#define reg_bfs_byp_lsb 0
  5109. -#define xd_p_reg_antif_en 0xA1A7
  5110. -#define reg_antif_en_pos 0
  5111. -#define reg_antif_en_len 1
  5112. -#define reg_antif_en_lsb 0
  5113. -#define xd_p_reg_antif_dis 0xA1A7
  5114. -#define reg_antif_dis_pos 1
  5115. -#define reg_antif_dis_len 1
  5116. -#define reg_antif_dis_lsb 0
  5117. -#define xd_p_reg_antif_rst 0xA1A7
  5118. -#define reg_antif_rst_pos 2
  5119. -#define reg_antif_rst_len 1
  5120. -#define reg_antif_rst_lsb 0
  5121. -#define xd_p_reg_antif_byp 0xA1A7
  5122. -#define reg_antif_byp_pos 3
  5123. -#define reg_antif_byp_len 1
  5124. -#define reg_antif_byp_lsb 0
  5125. -#define xd_p_intp_en 0xA1A8
  5126. -#define intp_en_pos 0
  5127. -#define intp_en_len 1
  5128. -#define intp_en_lsb 0
  5129. -#define xd_p_intp_dis 0xA1A8
  5130. -#define intp_dis_pos 1
  5131. -#define intp_dis_len 1
  5132. -#define intp_dis_lsb 0
  5133. -#define xd_p_intp_rst 0xA1A8
  5134. -#define intp_rst_pos 2
  5135. -#define intp_rst_len 1
  5136. -#define intp_rst_lsb 0
  5137. -#define xd_p_intp_byp 0xA1A8
  5138. -#define intp_byp_pos 3
  5139. -#define intp_byp_len 1
  5140. -#define intp_byp_lsb 0
  5141. -#define xd_p_reg_acif_en 0xA1A9
  5142. -#define reg_acif_en_pos 0
  5143. -#define reg_acif_en_len 1
  5144. -#define reg_acif_en_lsb 0
  5145. -#define xd_p_reg_acif_dis 0xA1A9
  5146. -#define reg_acif_dis_pos 1
  5147. -#define reg_acif_dis_len 1
  5148. -#define reg_acif_dis_lsb 0
  5149. -#define xd_p_reg_acif_rst 0xA1A9
  5150. -#define reg_acif_rst_pos 2
  5151. -#define reg_acif_rst_len 1
  5152. -#define reg_acif_rst_lsb 0
  5153. -#define xd_p_reg_acif_byp 0xA1A9
  5154. -#define reg_acif_byp_pos 3
  5155. -#define reg_acif_byp_len 1
  5156. -#define reg_acif_byp_lsb 0
  5157. -#define xd_p_reg_acif_sync_mode 0xA1A9
  5158. -#define reg_acif_sync_mode_pos 4
  5159. -#define reg_acif_sync_mode_len 1
  5160. -#define reg_acif_sync_mode_lsb 0
  5161. -#define xd_p_dagc2_rst 0xA1AA
  5162. -#define dagc2_rst_pos 0
  5163. -#define dagc2_rst_len 1
  5164. -#define dagc2_rst_lsb 0
  5165. -#define xd_p_dagc2_en 0xA1AA
  5166. -#define dagc2_en_pos 1
  5167. -#define dagc2_en_len 1
  5168. -#define dagc2_en_lsb 0
  5169. -#define xd_p_dagc2_mode 0xA1AA
  5170. -#define dagc2_mode_pos 2
  5171. -#define dagc2_mode_len 2
  5172. -#define dagc2_mode_lsb 0
  5173. -#define xd_p_dagc2_done 0xA1AA
  5174. -#define dagc2_done_pos 4
  5175. -#define dagc2_done_len 1
  5176. -#define dagc2_done_lsb 0
  5177. -#define xd_p_reg_dca_en 0xA1AB
  5178. -#define reg_dca_en_pos 0
  5179. -#define reg_dca_en_len 1
  5180. -#define reg_dca_en_lsb 0
  5181. -#define xd_p_dagc2_accumulate_num_2k_7_0 0xA1C0
  5182. -#define dagc2_accumulate_num_2k_7_0_pos 0
  5183. -#define dagc2_accumulate_num_2k_7_0_len 8
  5184. -#define dagc2_accumulate_num_2k_7_0_lsb 0
  5185. -#define xd_p_dagc2_accumulate_num_2k_12_8 0xA1C1
  5186. -#define dagc2_accumulate_num_2k_12_8_pos 0
  5187. -#define dagc2_accumulate_num_2k_12_8_len 5
  5188. -#define dagc2_accumulate_num_2k_12_8_lsb 8
  5189. -#define xd_p_dagc2_accumulate_num_8k_7_0 0xA1C2
  5190. -#define dagc2_accumulate_num_8k_7_0_pos 0
  5191. -#define dagc2_accumulate_num_8k_7_0_len 8
  5192. -#define dagc2_accumulate_num_8k_7_0_lsb 0
  5193. -#define xd_p_dagc2_accumulate_num_8k_12_8 0xA1C3
  5194. -#define dagc2_accumulate_num_8k_12_8_pos 0
  5195. -#define dagc2_accumulate_num_8k_12_8_len 5
  5196. -#define dagc2_accumulate_num_8k_12_8_lsb 8
  5197. -#define xd_p_dagc2_desired_level_2_0 0xA1C3
  5198. -#define dagc2_desired_level_2_0_pos 5
  5199. -#define dagc2_desired_level_2_0_len 3
  5200. -#define dagc2_desired_level_2_0_lsb 0
  5201. -#define xd_p_dagc2_desired_level_8_3 0xA1C4
  5202. -#define dagc2_desired_level_8_3_pos 0
  5203. -#define dagc2_desired_level_8_3_len 6
  5204. -#define dagc2_desired_level_8_3_lsb 3
  5205. -#define xd_p_dagc2_apply_delay 0xA1C5
  5206. -#define dagc2_apply_delay_pos 0
  5207. -#define dagc2_apply_delay_len 7
  5208. -#define dagc2_apply_delay_lsb 0
  5209. -#define xd_p_dagc2_bypass_scale_ctl 0xA1C6
  5210. -#define dagc2_bypass_scale_ctl_pos 0
  5211. -#define dagc2_bypass_scale_ctl_len 3
  5212. -#define dagc2_bypass_scale_ctl_lsb 0
  5213. -#define xd_p_dagc2_programmable_shift1 0xA1C7
  5214. -#define dagc2_programmable_shift1_pos 0
  5215. -#define dagc2_programmable_shift1_len 8
  5216. -#define dagc2_programmable_shift1_lsb 0
  5217. -#define xd_p_dagc2_programmable_shift2 0xA1C8
  5218. -#define dagc2_programmable_shift2_pos 0
  5219. -#define dagc2_programmable_shift2_len 8
  5220. -#define dagc2_programmable_shift2_lsb 0
  5221. -#define xd_p_reg_dagc2_in_sat_cnt_7_0 0xA1C9
  5222. -#define reg_dagc2_in_sat_cnt_7_0_pos 0
  5223. -#define reg_dagc2_in_sat_cnt_7_0_len 8
  5224. -#define reg_dagc2_in_sat_cnt_7_0_lsb 0
  5225. -#define xd_p_reg_dagc2_in_sat_cnt_15_8 0xA1CA
  5226. -#define reg_dagc2_in_sat_cnt_15_8_pos 0
  5227. -#define reg_dagc2_in_sat_cnt_15_8_len 8
  5228. -#define reg_dagc2_in_sat_cnt_15_8_lsb 8
  5229. -#define xd_p_reg_dagc2_in_sat_cnt_23_16 0xA1CB
  5230. -#define reg_dagc2_in_sat_cnt_23_16_pos 0
  5231. -#define reg_dagc2_in_sat_cnt_23_16_len 8
  5232. -#define reg_dagc2_in_sat_cnt_23_16_lsb 16
  5233. -#define xd_p_reg_dagc2_in_sat_cnt_31_24 0xA1CC
  5234. -#define reg_dagc2_in_sat_cnt_31_24_pos 0
  5235. -#define reg_dagc2_in_sat_cnt_31_24_len 8
  5236. -#define reg_dagc2_in_sat_cnt_31_24_lsb 24
  5237. -#define xd_p_reg_dagc2_out_sat_cnt_7_0 0xA1CD
  5238. -#define reg_dagc2_out_sat_cnt_7_0_pos 0
  5239. -#define reg_dagc2_out_sat_cnt_7_0_len 8
  5240. -#define reg_dagc2_out_sat_cnt_7_0_lsb 0
  5241. -#define xd_p_reg_dagc2_out_sat_cnt_15_8 0xA1CE
  5242. -#define reg_dagc2_out_sat_cnt_15_8_pos 0
  5243. -#define reg_dagc2_out_sat_cnt_15_8_len 8
  5244. -#define reg_dagc2_out_sat_cnt_15_8_lsb 8
  5245. -#define xd_p_reg_dagc2_out_sat_cnt_23_16 0xA1CF
  5246. -#define reg_dagc2_out_sat_cnt_23_16_pos 0
  5247. -#define reg_dagc2_out_sat_cnt_23_16_len 8
  5248. -#define reg_dagc2_out_sat_cnt_23_16_lsb 16
  5249. -#define xd_p_reg_dagc2_out_sat_cnt_31_24 0xA1D0
  5250. -#define reg_dagc2_out_sat_cnt_31_24_pos 0
  5251. -#define reg_dagc2_out_sat_cnt_31_24_len 8
  5252. -#define reg_dagc2_out_sat_cnt_31_24_lsb 24
  5253. -#define xd_r_dagc2_multiplier_7_0 0xA1D6
  5254. -#define dagc2_multiplier_7_0_pos 0
  5255. -#define dagc2_multiplier_7_0_len 8
  5256. -#define dagc2_multiplier_7_0_lsb 0
  5257. -#define xd_r_dagc2_multiplier_15_8 0xA1D7
  5258. -#define dagc2_multiplier_15_8_pos 0
  5259. -#define dagc2_multiplier_15_8_len 8
  5260. -#define dagc2_multiplier_15_8_lsb 8
  5261. -#define xd_r_dagc2_right_shift_bits 0xA1D8
  5262. -#define dagc2_right_shift_bits_pos 0
  5263. -#define dagc2_right_shift_bits_len 4
  5264. -#define dagc2_right_shift_bits_lsb 0
  5265. -#define xd_p_cfoe_NS_coeff1_7_0 0xA200
  5266. -#define cfoe_NS_coeff1_7_0_pos 0
  5267. -#define cfoe_NS_coeff1_7_0_len 8
  5268. -#define cfoe_NS_coeff1_7_0_lsb 0
  5269. -#define xd_p_cfoe_NS_coeff1_15_8 0xA201
  5270. -#define cfoe_NS_coeff1_15_8_pos 0
  5271. -#define cfoe_NS_coeff1_15_8_len 8
  5272. -#define cfoe_NS_coeff1_15_8_lsb 8
  5273. -#define xd_p_cfoe_NS_coeff1_23_16 0xA202
  5274. -#define cfoe_NS_coeff1_23_16_pos 0
  5275. -#define cfoe_NS_coeff1_23_16_len 8
  5276. -#define cfoe_NS_coeff1_23_16_lsb 16
  5277. -#define xd_p_cfoe_NS_coeff1_25_24 0xA203
  5278. -#define cfoe_NS_coeff1_25_24_pos 0
  5279. -#define cfoe_NS_coeff1_25_24_len 2
  5280. -#define cfoe_NS_coeff1_25_24_lsb 24
  5281. -#define xd_p_cfoe_NS_coeff2_5_0 0xA203
  5282. -#define cfoe_NS_coeff2_5_0_pos 2
  5283. -#define cfoe_NS_coeff2_5_0_len 6
  5284. -#define cfoe_NS_coeff2_5_0_lsb 0
  5285. -#define xd_p_cfoe_NS_coeff2_13_6 0xA204
  5286. -#define cfoe_NS_coeff2_13_6_pos 0
  5287. -#define cfoe_NS_coeff2_13_6_len 8
  5288. -#define cfoe_NS_coeff2_13_6_lsb 6
  5289. -#define xd_p_cfoe_NS_coeff2_21_14 0xA205
  5290. -#define cfoe_NS_coeff2_21_14_pos 0
  5291. -#define cfoe_NS_coeff2_21_14_len 8
  5292. -#define cfoe_NS_coeff2_21_14_lsb 14
  5293. -#define xd_p_cfoe_NS_coeff2_24_22 0xA206
  5294. -#define cfoe_NS_coeff2_24_22_pos 0
  5295. -#define cfoe_NS_coeff2_24_22_len 3
  5296. -#define cfoe_NS_coeff2_24_22_lsb 22
  5297. -#define xd_p_cfoe_lf_c1_4_0 0xA206
  5298. -#define cfoe_lf_c1_4_0_pos 3
  5299. -#define cfoe_lf_c1_4_0_len 5
  5300. -#define cfoe_lf_c1_4_0_lsb 0
  5301. -#define xd_p_cfoe_lf_c1_12_5 0xA207
  5302. -#define cfoe_lf_c1_12_5_pos 0
  5303. -#define cfoe_lf_c1_12_5_len 8
  5304. -#define cfoe_lf_c1_12_5_lsb 5
  5305. -#define xd_p_cfoe_lf_c1_20_13 0xA208
  5306. -#define cfoe_lf_c1_20_13_pos 0
  5307. -#define cfoe_lf_c1_20_13_len 8
  5308. -#define cfoe_lf_c1_20_13_lsb 13
  5309. -#define xd_p_cfoe_lf_c1_25_21 0xA209
  5310. -#define cfoe_lf_c1_25_21_pos 0
  5311. -#define cfoe_lf_c1_25_21_len 5
  5312. -#define cfoe_lf_c1_25_21_lsb 21
  5313. -#define xd_p_cfoe_lf_c2_2_0 0xA209
  5314. -#define cfoe_lf_c2_2_0_pos 5
  5315. -#define cfoe_lf_c2_2_0_len 3
  5316. -#define cfoe_lf_c2_2_0_lsb 0
  5317. -#define xd_p_cfoe_lf_c2_10_3 0xA20A
  5318. -#define cfoe_lf_c2_10_3_pos 0
  5319. -#define cfoe_lf_c2_10_3_len 8
  5320. -#define cfoe_lf_c2_10_3_lsb 3
  5321. -#define xd_p_cfoe_lf_c2_18_11 0xA20B
  5322. -#define cfoe_lf_c2_18_11_pos 0
  5323. -#define cfoe_lf_c2_18_11_len 8
  5324. -#define cfoe_lf_c2_18_11_lsb 11
  5325. -#define xd_p_cfoe_lf_c2_25_19 0xA20C
  5326. -#define cfoe_lf_c2_25_19_pos 0
  5327. -#define cfoe_lf_c2_25_19_len 7
  5328. -#define cfoe_lf_c2_25_19_lsb 19
  5329. -#define xd_p_cfoe_ifod_7_0 0xA20D
  5330. -#define cfoe_ifod_7_0_pos 0
  5331. -#define cfoe_ifod_7_0_len 8
  5332. -#define cfoe_ifod_7_0_lsb 0
  5333. -#define xd_p_cfoe_ifod_10_8 0xA20E
  5334. -#define cfoe_ifod_10_8_pos 0
  5335. -#define cfoe_ifod_10_8_len 3
  5336. -#define cfoe_ifod_10_8_lsb 8
  5337. -#define xd_p_cfoe_Divg_ctr_th 0xA20E
  5338. -#define cfoe_Divg_ctr_th_pos 4
  5339. -#define cfoe_Divg_ctr_th_len 4
  5340. -#define cfoe_Divg_ctr_th_lsb 0
  5341. -#define xd_p_cfoe_FOT_divg_th 0xA20F
  5342. -#define cfoe_FOT_divg_th_pos 0
  5343. -#define cfoe_FOT_divg_th_len 8
  5344. -#define cfoe_FOT_divg_th_lsb 0
  5345. -#define xd_p_cfoe_FOT_cnvg_th 0xA210
  5346. -#define cfoe_FOT_cnvg_th_pos 0
  5347. -#define cfoe_FOT_cnvg_th_len 8
  5348. -#define cfoe_FOT_cnvg_th_lsb 0
  5349. -#define xd_p_reg_cfoe_offset_7_0 0xA211
  5350. -#define reg_cfoe_offset_7_0_pos 0
  5351. -#define reg_cfoe_offset_7_0_len 8
  5352. -#define reg_cfoe_offset_7_0_lsb 0
  5353. -#define xd_p_reg_cfoe_offset_9_8 0xA212
  5354. -#define reg_cfoe_offset_9_8_pos 0
  5355. -#define reg_cfoe_offset_9_8_len 2
  5356. -#define reg_cfoe_offset_9_8_lsb 8
  5357. -#define xd_p_reg_cfoe_ifoe_sign_corr 0xA212
  5358. -#define reg_cfoe_ifoe_sign_corr_pos 2
  5359. -#define reg_cfoe_ifoe_sign_corr_len 1
  5360. -#define reg_cfoe_ifoe_sign_corr_lsb 0
  5361. -#define xd_r_cfoe_fot_LF_output_7_0 0xA218
  5362. -#define cfoe_fot_LF_output_7_0_pos 0
  5363. -#define cfoe_fot_LF_output_7_0_len 8
  5364. -#define cfoe_fot_LF_output_7_0_lsb 0
  5365. -#define xd_r_cfoe_fot_LF_output_15_8 0xA219
  5366. -#define cfoe_fot_LF_output_15_8_pos 0
  5367. -#define cfoe_fot_LF_output_15_8_len 8
  5368. -#define cfoe_fot_LF_output_15_8_lsb 8
  5369. -#define xd_r_cfoe_ifo_metric_7_0 0xA21A
  5370. -#define cfoe_ifo_metric_7_0_pos 0
  5371. -#define cfoe_ifo_metric_7_0_len 8
  5372. -#define cfoe_ifo_metric_7_0_lsb 0
  5373. -#define xd_r_cfoe_ifo_metric_15_8 0xA21B
  5374. -#define cfoe_ifo_metric_15_8_pos 0
  5375. -#define cfoe_ifo_metric_15_8_len 8
  5376. -#define cfoe_ifo_metric_15_8_lsb 8
  5377. -#define xd_r_cfoe_ifo_metric_23_16 0xA21C
  5378. -#define cfoe_ifo_metric_23_16_pos 0
  5379. -#define cfoe_ifo_metric_23_16_len 8
  5380. -#define cfoe_ifo_metric_23_16_lsb 16
  5381. -#define xd_p_ste_Nu 0xA220
  5382. -#define ste_Nu_pos 0
  5383. -#define ste_Nu_len 2
  5384. -#define ste_Nu_lsb 0
  5385. -#define xd_p_ste_GI 0xA220
  5386. -#define ste_GI_pos 2
  5387. -#define ste_GI_len 3
  5388. -#define ste_GI_lsb 0
  5389. -#define xd_p_ste_symbol_num 0xA221
  5390. -#define ste_symbol_num_pos 0
  5391. -#define ste_symbol_num_len 2
  5392. -#define ste_symbol_num_lsb 0
  5393. -#define xd_p_ste_sample_num 0xA221
  5394. -#define ste_sample_num_pos 2
  5395. -#define ste_sample_num_len 2
  5396. -#define ste_sample_num_lsb 0
  5397. -#define xd_p_reg_ste_buf_en 0xA221
  5398. -#define reg_ste_buf_en_pos 7
  5399. -#define reg_ste_buf_en_len 1
  5400. -#define reg_ste_buf_en_lsb 0
  5401. -#define xd_p_ste_FFT_offset_7_0 0xA222
  5402. -#define ste_FFT_offset_7_0_pos 0
  5403. -#define ste_FFT_offset_7_0_len 8
  5404. -#define ste_FFT_offset_7_0_lsb 0
  5405. -#define xd_p_ste_FFT_offset_11_8 0xA223
  5406. -#define ste_FFT_offset_11_8_pos 0
  5407. -#define ste_FFT_offset_11_8_len 4
  5408. -#define ste_FFT_offset_11_8_lsb 8
  5409. -#define xd_p_reg_ste_tstmod 0xA223
  5410. -#define reg_ste_tstmod_pos 5
  5411. -#define reg_ste_tstmod_len 1
  5412. -#define reg_ste_tstmod_lsb 0
  5413. -#define xd_p_ste_adv_start_7_0 0xA224
  5414. -#define ste_adv_start_7_0_pos 0
  5415. -#define ste_adv_start_7_0_len 8
  5416. -#define ste_adv_start_7_0_lsb 0
  5417. -#define xd_p_ste_adv_start_10_8 0xA225
  5418. -#define ste_adv_start_10_8_pos 0
  5419. -#define ste_adv_start_10_8_len 3
  5420. -#define ste_adv_start_10_8_lsb 8
  5421. -#define xd_p_ste_adv_stop 0xA226
  5422. -#define ste_adv_stop_pos 0
  5423. -#define ste_adv_stop_len 8
  5424. -#define ste_adv_stop_lsb 0
  5425. -#define xd_r_ste_P_value_7_0 0xA228
  5426. -#define ste_P_value_7_0_pos 0
  5427. -#define ste_P_value_7_0_len 8
  5428. -#define ste_P_value_7_0_lsb 0
  5429. -#define xd_r_ste_P_value_10_8 0xA229
  5430. -#define ste_P_value_10_8_pos 0
  5431. -#define ste_P_value_10_8_len 3
  5432. -#define ste_P_value_10_8_lsb 8
  5433. -#define xd_r_ste_M_value_7_0 0xA22A
  5434. -#define ste_M_value_7_0_pos 0
  5435. -#define ste_M_value_7_0_len 8
  5436. -#define ste_M_value_7_0_lsb 0
  5437. -#define xd_r_ste_M_value_10_8 0xA22B
  5438. -#define ste_M_value_10_8_pos 0
  5439. -#define ste_M_value_10_8_len 3
  5440. -#define ste_M_value_10_8_lsb 8
  5441. -#define xd_r_ste_H1 0xA22C
  5442. -#define ste_H1_pos 0
  5443. -#define ste_H1_len 7
  5444. -#define ste_H1_lsb 0
  5445. -#define xd_r_ste_H2 0xA22D
  5446. -#define ste_H2_pos 0
  5447. -#define ste_H2_len 7
  5448. -#define ste_H2_lsb 0
  5449. -#define xd_r_ste_H3 0xA22E
  5450. -#define ste_H3_pos 0
  5451. -#define ste_H3_len 7
  5452. -#define ste_H3_lsb 0
  5453. -#define xd_r_ste_H4 0xA22F
  5454. -#define ste_H4_pos 0
  5455. -#define ste_H4_len 7
  5456. -#define ste_H4_lsb 0
  5457. -#define xd_r_ste_Corr_value_I_7_0 0xA230
  5458. -#define ste_Corr_value_I_7_0_pos 0
  5459. -#define ste_Corr_value_I_7_0_len 8
  5460. -#define ste_Corr_value_I_7_0_lsb 0
  5461. -#define xd_r_ste_Corr_value_I_15_8 0xA231
  5462. -#define ste_Corr_value_I_15_8_pos 0
  5463. -#define ste_Corr_value_I_15_8_len 8
  5464. -#define ste_Corr_value_I_15_8_lsb 8
  5465. -#define xd_r_ste_Corr_value_I_23_16 0xA232
  5466. -#define ste_Corr_value_I_23_16_pos 0
  5467. -#define ste_Corr_value_I_23_16_len 8
  5468. -#define ste_Corr_value_I_23_16_lsb 16
  5469. -#define xd_r_ste_Corr_value_I_27_24 0xA233
  5470. -#define ste_Corr_value_I_27_24_pos 0
  5471. -#define ste_Corr_value_I_27_24_len 4
  5472. -#define ste_Corr_value_I_27_24_lsb 24
  5473. -#define xd_r_ste_Corr_value_Q_7_0 0xA234
  5474. -#define ste_Corr_value_Q_7_0_pos 0
  5475. -#define ste_Corr_value_Q_7_0_len 8
  5476. -#define ste_Corr_value_Q_7_0_lsb 0
  5477. -#define xd_r_ste_Corr_value_Q_15_8 0xA235
  5478. -#define ste_Corr_value_Q_15_8_pos 0
  5479. -#define ste_Corr_value_Q_15_8_len 8
  5480. -#define ste_Corr_value_Q_15_8_lsb 8
  5481. -#define xd_r_ste_Corr_value_Q_23_16 0xA236
  5482. -#define ste_Corr_value_Q_23_16_pos 0
  5483. -#define ste_Corr_value_Q_23_16_len 8
  5484. -#define ste_Corr_value_Q_23_16_lsb 16
  5485. -#define xd_r_ste_Corr_value_Q_27_24 0xA237
  5486. -#define ste_Corr_value_Q_27_24_pos 0
  5487. -#define ste_Corr_value_Q_27_24_len 4
  5488. -#define ste_Corr_value_Q_27_24_lsb 24
  5489. -#define xd_r_ste_J_num_7_0 0xA238
  5490. -#define ste_J_num_7_0_pos 0
  5491. -#define ste_J_num_7_0_len 8
  5492. -#define ste_J_num_7_0_lsb 0
  5493. -#define xd_r_ste_J_num_15_8 0xA239
  5494. -#define ste_J_num_15_8_pos 0
  5495. -#define ste_J_num_15_8_len 8
  5496. -#define ste_J_num_15_8_lsb 8
  5497. -#define xd_r_ste_J_num_23_16 0xA23A
  5498. -#define ste_J_num_23_16_pos 0
  5499. -#define ste_J_num_23_16_len 8
  5500. -#define ste_J_num_23_16_lsb 16
  5501. -#define xd_r_ste_J_num_31_24 0xA23B
  5502. -#define ste_J_num_31_24_pos 0
  5503. -#define ste_J_num_31_24_len 8
  5504. -#define ste_J_num_31_24_lsb 24
  5505. -#define xd_r_ste_J_den_7_0 0xA23C
  5506. -#define ste_J_den_7_0_pos 0
  5507. -#define ste_J_den_7_0_len 8
  5508. -#define ste_J_den_7_0_lsb 0
  5509. -#define xd_r_ste_J_den_15_8 0xA23D
  5510. -#define ste_J_den_15_8_pos 0
  5511. -#define ste_J_den_15_8_len 8
  5512. -#define ste_J_den_15_8_lsb 8
  5513. -#define xd_r_ste_J_den_18_16 0xA23E
  5514. -#define ste_J_den_18_16_pos 0
  5515. -#define ste_J_den_18_16_len 3
  5516. -#define ste_J_den_18_16_lsb 16
  5517. -#define xd_r_ste_Beacon_Indicator 0xA23E
  5518. -#define ste_Beacon_Indicator_pos 4
  5519. -#define ste_Beacon_Indicator_len 1
  5520. -#define ste_Beacon_Indicator_lsb 0
  5521. -#define xd_r_tpsd_Frame_Num 0xA250
  5522. -#define tpsd_Frame_Num_pos 0
  5523. -#define tpsd_Frame_Num_len 2
  5524. -#define tpsd_Frame_Num_lsb 0
  5525. -#define xd_r_tpsd_Constel 0xA250
  5526. -#define tpsd_Constel_pos 2
  5527. -#define tpsd_Constel_len 2
  5528. -#define tpsd_Constel_lsb 0
  5529. -#define xd_r_tpsd_GI 0xA250
  5530. -#define tpsd_GI_pos 4
  5531. -#define tpsd_GI_len 2
  5532. -#define tpsd_GI_lsb 0
  5533. -#define xd_r_tpsd_Mode 0xA250
  5534. -#define tpsd_Mode_pos 6
  5535. -#define tpsd_Mode_len 2
  5536. -#define tpsd_Mode_lsb 0
  5537. -#define xd_r_tpsd_CR_HP 0xA251
  5538. -#define tpsd_CR_HP_pos 0
  5539. -#define tpsd_CR_HP_len 3
  5540. -#define tpsd_CR_HP_lsb 0
  5541. -#define xd_r_tpsd_CR_LP 0xA251
  5542. -#define tpsd_CR_LP_pos 3
  5543. -#define tpsd_CR_LP_len 3
  5544. -#define tpsd_CR_LP_lsb 0
  5545. -#define xd_r_tpsd_Hie 0xA252
  5546. -#define tpsd_Hie_pos 0
  5547. -#define tpsd_Hie_len 3
  5548. -#define tpsd_Hie_lsb 0
  5549. -#define xd_r_tpsd_Res_Bits 0xA252
  5550. -#define tpsd_Res_Bits_pos 3
  5551. -#define tpsd_Res_Bits_len 5
  5552. -#define tpsd_Res_Bits_lsb 0
  5553. -#define xd_r_tpsd_Res_Bits_0 0xA253
  5554. -#define tpsd_Res_Bits_0_pos 0
  5555. -#define tpsd_Res_Bits_0_len 1
  5556. -#define tpsd_Res_Bits_0_lsb 0
  5557. -#define xd_r_tpsd_LengthInd 0xA253
  5558. -#define tpsd_LengthInd_pos 1
  5559. -#define tpsd_LengthInd_len 6
  5560. -#define tpsd_LengthInd_lsb 0
  5561. -#define xd_r_tpsd_Cell_Id_7_0 0xA254
  5562. -#define tpsd_Cell_Id_7_0_pos 0
  5563. -#define tpsd_Cell_Id_7_0_len 8
  5564. -#define tpsd_Cell_Id_7_0_lsb 0
  5565. -#define xd_r_tpsd_Cell_Id_15_8 0xA255
  5566. -#define tpsd_Cell_Id_15_8_pos 0
  5567. -#define tpsd_Cell_Id_15_8_len 8
  5568. -#define tpsd_Cell_Id_15_8_lsb 0
  5569. -#define xd_p_reg_fft_mask_tone0_7_0 0xA260
  5570. -#define reg_fft_mask_tone0_7_0_pos 0
  5571. -#define reg_fft_mask_tone0_7_0_len 8
  5572. -#define reg_fft_mask_tone0_7_0_lsb 0
  5573. -#define xd_p_reg_fft_mask_tone0_12_8 0xA261
  5574. -#define reg_fft_mask_tone0_12_8_pos 0
  5575. -#define reg_fft_mask_tone0_12_8_len 5
  5576. -#define reg_fft_mask_tone0_12_8_lsb 8
  5577. -#define xd_p_reg_fft_mask_tone1_7_0 0xA262
  5578. -#define reg_fft_mask_tone1_7_0_pos 0
  5579. -#define reg_fft_mask_tone1_7_0_len 8
  5580. -#define reg_fft_mask_tone1_7_0_lsb 0
  5581. -#define xd_p_reg_fft_mask_tone1_12_8 0xA263
  5582. -#define reg_fft_mask_tone1_12_8_pos 0
  5583. -#define reg_fft_mask_tone1_12_8_len 5
  5584. -#define reg_fft_mask_tone1_12_8_lsb 8
  5585. -#define xd_p_reg_fft_mask_tone2_7_0 0xA264
  5586. -#define reg_fft_mask_tone2_7_0_pos 0
  5587. -#define reg_fft_mask_tone2_7_0_len 8
  5588. -#define reg_fft_mask_tone2_7_0_lsb 0
  5589. -#define xd_p_reg_fft_mask_tone2_12_8 0xA265
  5590. -#define reg_fft_mask_tone2_12_8_pos 0
  5591. -#define reg_fft_mask_tone2_12_8_len 5
  5592. -#define reg_fft_mask_tone2_12_8_lsb 8
  5593. -#define xd_p_reg_fft_mask_tone3_7_0 0xA266
  5594. -#define reg_fft_mask_tone3_7_0_pos 0
  5595. -#define reg_fft_mask_tone3_7_0_len 8
  5596. -#define reg_fft_mask_tone3_7_0_lsb 0
  5597. -#define xd_p_reg_fft_mask_tone3_12_8 0xA267
  5598. -#define reg_fft_mask_tone3_12_8_pos 0
  5599. -#define reg_fft_mask_tone3_12_8_len 5
  5600. -#define reg_fft_mask_tone3_12_8_lsb 8
  5601. -#define xd_p_reg_fft_mask_from0_7_0 0xA268
  5602. -#define reg_fft_mask_from0_7_0_pos 0
  5603. -#define reg_fft_mask_from0_7_0_len 8
  5604. -#define reg_fft_mask_from0_7_0_lsb 0
  5605. -#define xd_p_reg_fft_mask_from0_12_8 0xA269
  5606. -#define reg_fft_mask_from0_12_8_pos 0
  5607. -#define reg_fft_mask_from0_12_8_len 5
  5608. -#define reg_fft_mask_from0_12_8_lsb 8
  5609. -#define xd_p_reg_fft_mask_to0_7_0 0xA26A
  5610. -#define reg_fft_mask_to0_7_0_pos 0
  5611. -#define reg_fft_mask_to0_7_0_len 8
  5612. -#define reg_fft_mask_to0_7_0_lsb 0
  5613. -#define xd_p_reg_fft_mask_to0_12_8 0xA26B
  5614. -#define reg_fft_mask_to0_12_8_pos 0
  5615. -#define reg_fft_mask_to0_12_8_len 5
  5616. -#define reg_fft_mask_to0_12_8_lsb 8
  5617. -#define xd_p_reg_fft_mask_from1_7_0 0xA26C
  5618. -#define reg_fft_mask_from1_7_0_pos 0
  5619. -#define reg_fft_mask_from1_7_0_len 8
  5620. -#define reg_fft_mask_from1_7_0_lsb 0
  5621. -#define xd_p_reg_fft_mask_from1_12_8 0xA26D
  5622. -#define reg_fft_mask_from1_12_8_pos 0
  5623. -#define reg_fft_mask_from1_12_8_len 5
  5624. -#define reg_fft_mask_from1_12_8_lsb 8
  5625. -#define xd_p_reg_fft_mask_to1_7_0 0xA26E
  5626. -#define reg_fft_mask_to1_7_0_pos 0
  5627. -#define reg_fft_mask_to1_7_0_len 8
  5628. -#define reg_fft_mask_to1_7_0_lsb 0
  5629. -#define xd_p_reg_fft_mask_to1_12_8 0xA26F
  5630. -#define reg_fft_mask_to1_12_8_pos 0
  5631. -#define reg_fft_mask_to1_12_8_len 5
  5632. -#define reg_fft_mask_to1_12_8_lsb 8
  5633. -#define xd_p_reg_cge_idx0_7_0 0xA280
  5634. -#define reg_cge_idx0_7_0_pos 0
  5635. -#define reg_cge_idx0_7_0_len 8
  5636. -#define reg_cge_idx0_7_0_lsb 0
  5637. -#define xd_p_reg_cge_idx0_12_8 0xA281
  5638. -#define reg_cge_idx0_12_8_pos 0
  5639. -#define reg_cge_idx0_12_8_len 5
  5640. -#define reg_cge_idx0_12_8_lsb 8
  5641. -#define xd_p_reg_cge_idx1_7_0 0xA282
  5642. -#define reg_cge_idx1_7_0_pos 0
  5643. -#define reg_cge_idx1_7_0_len 8
  5644. -#define reg_cge_idx1_7_0_lsb 0
  5645. -#define xd_p_reg_cge_idx1_12_8 0xA283
  5646. -#define reg_cge_idx1_12_8_pos 0
  5647. -#define reg_cge_idx1_12_8_len 5
  5648. -#define reg_cge_idx1_12_8_lsb 8
  5649. -#define xd_p_reg_cge_idx2_7_0 0xA284
  5650. -#define reg_cge_idx2_7_0_pos 0
  5651. -#define reg_cge_idx2_7_0_len 8
  5652. -#define reg_cge_idx2_7_0_lsb 0
  5653. -#define xd_p_reg_cge_idx2_12_8 0xA285
  5654. -#define reg_cge_idx2_12_8_pos 0
  5655. -#define reg_cge_idx2_12_8_len 5
  5656. -#define reg_cge_idx2_12_8_lsb 8
  5657. -#define xd_p_reg_cge_idx3_7_0 0xA286
  5658. -#define reg_cge_idx3_7_0_pos 0
  5659. -#define reg_cge_idx3_7_0_len 8
  5660. -#define reg_cge_idx3_7_0_lsb 0
  5661. -#define xd_p_reg_cge_idx3_12_8 0xA287
  5662. -#define reg_cge_idx3_12_8_pos 0
  5663. -#define reg_cge_idx3_12_8_len 5
  5664. -#define reg_cge_idx3_12_8_lsb 8
  5665. -#define xd_p_reg_cge_idx4_7_0 0xA288
  5666. -#define reg_cge_idx4_7_0_pos 0
  5667. -#define reg_cge_idx4_7_0_len 8
  5668. -#define reg_cge_idx4_7_0_lsb 0
  5669. -#define xd_p_reg_cge_idx4_12_8 0xA289
  5670. -#define reg_cge_idx4_12_8_pos 0
  5671. -#define reg_cge_idx4_12_8_len 5
  5672. -#define reg_cge_idx4_12_8_lsb 8
  5673. -#define xd_p_reg_cge_idx5_7_0 0xA28A
  5674. -#define reg_cge_idx5_7_0_pos 0
  5675. -#define reg_cge_idx5_7_0_len 8
  5676. -#define reg_cge_idx5_7_0_lsb 0
  5677. -#define xd_p_reg_cge_idx5_12_8 0xA28B
  5678. -#define reg_cge_idx5_12_8_pos 0
  5679. -#define reg_cge_idx5_12_8_len 5
  5680. -#define reg_cge_idx5_12_8_lsb 8
  5681. -#define xd_p_reg_cge_idx6_7_0 0xA28C
  5682. -#define reg_cge_idx6_7_0_pos 0
  5683. -#define reg_cge_idx6_7_0_len 8
  5684. -#define reg_cge_idx6_7_0_lsb 0
  5685. -#define xd_p_reg_cge_idx6_12_8 0xA28D
  5686. -#define reg_cge_idx6_12_8_pos 0
  5687. -#define reg_cge_idx6_12_8_len 5
  5688. -#define reg_cge_idx6_12_8_lsb 8
  5689. -#define xd_p_reg_cge_idx7_7_0 0xA28E
  5690. -#define reg_cge_idx7_7_0_pos 0
  5691. -#define reg_cge_idx7_7_0_len 8
  5692. -#define reg_cge_idx7_7_0_lsb 0
  5693. -#define xd_p_reg_cge_idx7_12_8 0xA28F
  5694. -#define reg_cge_idx7_12_8_pos 0
  5695. -#define reg_cge_idx7_12_8_len 5
  5696. -#define reg_cge_idx7_12_8_lsb 8
  5697. -#define xd_p_reg_cge_idx8_7_0 0xA290
  5698. -#define reg_cge_idx8_7_0_pos 0
  5699. -#define reg_cge_idx8_7_0_len 8
  5700. -#define reg_cge_idx8_7_0_lsb 0
  5701. -#define xd_p_reg_cge_idx8_12_8 0xA291
  5702. -#define reg_cge_idx8_12_8_pos 0
  5703. -#define reg_cge_idx8_12_8_len 5
  5704. -#define reg_cge_idx8_12_8_lsb 8
  5705. -#define xd_p_reg_cge_idx9_7_0 0xA292
  5706. -#define reg_cge_idx9_7_0_pos 0
  5707. -#define reg_cge_idx9_7_0_len 8
  5708. -#define reg_cge_idx9_7_0_lsb 0
  5709. -#define xd_p_reg_cge_idx9_12_8 0xA293
  5710. -#define reg_cge_idx9_12_8_pos 0
  5711. -#define reg_cge_idx9_12_8_len 5
  5712. -#define reg_cge_idx9_12_8_lsb 8
  5713. -#define xd_p_reg_cge_idx10_7_0 0xA294
  5714. -#define reg_cge_idx10_7_0_pos 0
  5715. -#define reg_cge_idx10_7_0_len 8
  5716. -#define reg_cge_idx10_7_0_lsb 0
  5717. -#define xd_p_reg_cge_idx10_12_8 0xA295
  5718. -#define reg_cge_idx10_12_8_pos 0
  5719. -#define reg_cge_idx10_12_8_len 5
  5720. -#define reg_cge_idx10_12_8_lsb 8
  5721. -#define xd_p_reg_cge_idx11_7_0 0xA296
  5722. -#define reg_cge_idx11_7_0_pos 0
  5723. -#define reg_cge_idx11_7_0_len 8
  5724. -#define reg_cge_idx11_7_0_lsb 0
  5725. -#define xd_p_reg_cge_idx11_12_8 0xA297
  5726. -#define reg_cge_idx11_12_8_pos 0
  5727. -#define reg_cge_idx11_12_8_len 5
  5728. -#define reg_cge_idx11_12_8_lsb 8
  5729. -#define xd_p_reg_cge_idx12_7_0 0xA298
  5730. -#define reg_cge_idx12_7_0_pos 0
  5731. -#define reg_cge_idx12_7_0_len 8
  5732. -#define reg_cge_idx12_7_0_lsb 0
  5733. -#define xd_p_reg_cge_idx12_12_8 0xA299
  5734. -#define reg_cge_idx12_12_8_pos 0
  5735. -#define reg_cge_idx12_12_8_len 5
  5736. -#define reg_cge_idx12_12_8_lsb 8
  5737. -#define xd_p_reg_cge_idx13_7_0 0xA29A
  5738. -#define reg_cge_idx13_7_0_pos 0
  5739. -#define reg_cge_idx13_7_0_len 8
  5740. -#define reg_cge_idx13_7_0_lsb 0
  5741. -#define xd_p_reg_cge_idx13_12_8 0xA29B
  5742. -#define reg_cge_idx13_12_8_pos 0
  5743. -#define reg_cge_idx13_12_8_len 5
  5744. -#define reg_cge_idx13_12_8_lsb 8
  5745. -#define xd_p_reg_cge_idx14_7_0 0xA29C
  5746. -#define reg_cge_idx14_7_0_pos 0
  5747. -#define reg_cge_idx14_7_0_len 8
  5748. -#define reg_cge_idx14_7_0_lsb 0
  5749. -#define xd_p_reg_cge_idx14_12_8 0xA29D
  5750. -#define reg_cge_idx14_12_8_pos 0
  5751. -#define reg_cge_idx14_12_8_len 5
  5752. -#define reg_cge_idx14_12_8_lsb 8
  5753. -#define xd_p_reg_cge_idx15_7_0 0xA29E
  5754. -#define reg_cge_idx15_7_0_pos 0
  5755. -#define reg_cge_idx15_7_0_len 8
  5756. -#define reg_cge_idx15_7_0_lsb 0
  5757. -#define xd_p_reg_cge_idx15_12_8 0xA29F
  5758. -#define reg_cge_idx15_12_8_pos 0
  5759. -#define reg_cge_idx15_12_8_len 5
  5760. -#define reg_cge_idx15_12_8_lsb 8
  5761. -#define xd_r_reg_fft_crc 0xA2A8
  5762. -#define reg_fft_crc_pos 0
  5763. -#define reg_fft_crc_len 8
  5764. -#define reg_fft_crc_lsb 0
  5765. -#define xd_p_fd_fft_shift_max 0xA2A9
  5766. -#define fd_fft_shift_max_pos 0
  5767. -#define fd_fft_shift_max_len 4
  5768. -#define fd_fft_shift_max_lsb 0
  5769. -#define xd_r_fd_fft_shift 0xA2A9
  5770. -#define fd_fft_shift_pos 4
  5771. -#define fd_fft_shift_len 4
  5772. -#define fd_fft_shift_lsb 0
  5773. -#define xd_r_fd_fft_frame_num 0xA2AA
  5774. -#define fd_fft_frame_num_pos 0
  5775. -#define fd_fft_frame_num_len 2
  5776. -#define fd_fft_frame_num_lsb 0
  5777. -#define xd_r_fd_fft_symbol_count 0xA2AB
  5778. -#define fd_fft_symbol_count_pos 0
  5779. -#define fd_fft_symbol_count_len 7
  5780. -#define fd_fft_symbol_count_lsb 0
  5781. -#define xd_r_reg_fft_idx_max_7_0 0xA2AC
  5782. -#define reg_fft_idx_max_7_0_pos 0
  5783. -#define reg_fft_idx_max_7_0_len 8
  5784. -#define reg_fft_idx_max_7_0_lsb 0
  5785. -#define xd_r_reg_fft_idx_max_12_8 0xA2AD
  5786. -#define reg_fft_idx_max_12_8_pos 0
  5787. -#define reg_fft_idx_max_12_8_len 5
  5788. -#define reg_fft_idx_max_12_8_lsb 8
  5789. -#define xd_p_reg_cge_program 0xA2AE
  5790. -#define reg_cge_program_pos 0
  5791. -#define reg_cge_program_len 1
  5792. -#define reg_cge_program_lsb 0
  5793. -#define xd_p_reg_cge_fixed 0xA2AE
  5794. -#define reg_cge_fixed_pos 1
  5795. -#define reg_cge_fixed_len 1
  5796. -#define reg_cge_fixed_lsb 0
  5797. -#define xd_p_reg_fft_rotate_en 0xA2AE
  5798. -#define reg_fft_rotate_en_pos 2
  5799. -#define reg_fft_rotate_en_len 1
  5800. -#define reg_fft_rotate_en_lsb 0
  5801. -#define xd_p_reg_fft_rotate_base_4_0 0xA2AE
  5802. -#define reg_fft_rotate_base_4_0_pos 3
  5803. -#define reg_fft_rotate_base_4_0_len 5
  5804. -#define reg_fft_rotate_base_4_0_lsb 0
  5805. -#define xd_p_reg_fft_rotate_base_12_5 0xA2AF
  5806. -#define reg_fft_rotate_base_12_5_pos 0
  5807. -#define reg_fft_rotate_base_12_5_len 8
  5808. -#define reg_fft_rotate_base_12_5_lsb 5
  5809. -#define xd_p_reg_gp_trigger_fd 0xA2B8
  5810. -#define reg_gp_trigger_fd_pos 0
  5811. -#define reg_gp_trigger_fd_len 1
  5812. -#define reg_gp_trigger_fd_lsb 0
  5813. -#define xd_p_reg_trigger_sel_fd 0xA2B8
  5814. -#define reg_trigger_sel_fd_pos 1
  5815. -#define reg_trigger_sel_fd_len 2
  5816. -#define reg_trigger_sel_fd_lsb 0
  5817. -#define xd_p_reg_trigger_module_sel_fd 0xA2B9
  5818. -#define reg_trigger_module_sel_fd_pos 0
  5819. -#define reg_trigger_module_sel_fd_len 6
  5820. -#define reg_trigger_module_sel_fd_lsb 0
  5821. -#define xd_p_reg_trigger_set_sel_fd 0xA2BA
  5822. -#define reg_trigger_set_sel_fd_pos 0
  5823. -#define reg_trigger_set_sel_fd_len 6
  5824. -#define reg_trigger_set_sel_fd_lsb 0
  5825. -#define xd_p_reg_fd_noname_7_0 0xA2BC
  5826. -#define reg_fd_noname_7_0_pos 0
  5827. -#define reg_fd_noname_7_0_len 8
  5828. -#define reg_fd_noname_7_0_lsb 0
  5829. -#define xd_p_reg_fd_noname_15_8 0xA2BD
  5830. -#define reg_fd_noname_15_8_pos 0
  5831. -#define reg_fd_noname_15_8_len 8
  5832. -#define reg_fd_noname_15_8_lsb 8
  5833. -#define xd_p_reg_fd_noname_23_16 0xA2BE
  5834. -#define reg_fd_noname_23_16_pos 0
  5835. -#define reg_fd_noname_23_16_len 8
  5836. -#define reg_fd_noname_23_16_lsb 16
  5837. -#define xd_p_reg_fd_noname_31_24 0xA2BF
  5838. -#define reg_fd_noname_31_24_pos 0
  5839. -#define reg_fd_noname_31_24_len 8
  5840. -#define reg_fd_noname_31_24_lsb 24
  5841. -#define xd_r_fd_fpcc_cp_corr_signn 0xA2C0
  5842. -#define fd_fpcc_cp_corr_signn_pos 0
  5843. -#define fd_fpcc_cp_corr_signn_len 8
  5844. -#define fd_fpcc_cp_corr_signn_lsb 0
  5845. -#define xd_p_reg_feq_s1 0xA2C1
  5846. -#define reg_feq_s1_pos 0
  5847. -#define reg_feq_s1_len 5
  5848. -#define reg_feq_s1_lsb 0
  5849. -#define xd_p_fd_fpcc_cp_corr_tone_th 0xA2C2
  5850. -#define fd_fpcc_cp_corr_tone_th_pos 0
  5851. -#define fd_fpcc_cp_corr_tone_th_len 6
  5852. -#define fd_fpcc_cp_corr_tone_th_lsb 0
  5853. -#define xd_p_fd_fpcc_cp_corr_symbol_log_th 0xA2C3
  5854. -#define fd_fpcc_cp_corr_symbol_log_th_pos 0
  5855. -#define fd_fpcc_cp_corr_symbol_log_th_len 4
  5856. -#define fd_fpcc_cp_corr_symbol_log_th_lsb 0
  5857. -#define xd_p_fd_fpcc_cp_corr_int 0xA2C4
  5858. -#define fd_fpcc_cp_corr_int_pos 0
  5859. -#define fd_fpcc_cp_corr_int_len 1
  5860. -#define fd_fpcc_cp_corr_int_lsb 0
  5861. -#define xd_p_reg_sfoe_ns_7_0 0xA320
  5862. -#define reg_sfoe_ns_7_0_pos 0
  5863. -#define reg_sfoe_ns_7_0_len 8
  5864. -#define reg_sfoe_ns_7_0_lsb 0
  5865. -#define xd_p_reg_sfoe_ns_14_8 0xA321
  5866. -#define reg_sfoe_ns_14_8_pos 0
  5867. -#define reg_sfoe_ns_14_8_len 7
  5868. -#define reg_sfoe_ns_14_8_lsb 8
  5869. -#define xd_p_reg_sfoe_c1_7_0 0xA322
  5870. -#define reg_sfoe_c1_7_0_pos 0
  5871. -#define reg_sfoe_c1_7_0_len 8
  5872. -#define reg_sfoe_c1_7_0_lsb 0
  5873. -#define xd_p_reg_sfoe_c1_15_8 0xA323
  5874. -#define reg_sfoe_c1_15_8_pos 0
  5875. -#define reg_sfoe_c1_15_8_len 8
  5876. -#define reg_sfoe_c1_15_8_lsb 8
  5877. -#define xd_p_reg_sfoe_c1_17_16 0xA324
  5878. -#define reg_sfoe_c1_17_16_pos 0
  5879. -#define reg_sfoe_c1_17_16_len 2
  5880. -#define reg_sfoe_c1_17_16_lsb 16
  5881. -#define xd_p_reg_sfoe_c2_7_0 0xA325
  5882. -#define reg_sfoe_c2_7_0_pos 0
  5883. -#define reg_sfoe_c2_7_0_len 8
  5884. -#define reg_sfoe_c2_7_0_lsb 0
  5885. -#define xd_p_reg_sfoe_c2_15_8 0xA326
  5886. -#define reg_sfoe_c2_15_8_pos 0
  5887. -#define reg_sfoe_c2_15_8_len 8
  5888. -#define reg_sfoe_c2_15_8_lsb 8
  5889. -#define xd_p_reg_sfoe_c2_17_16 0xA327
  5890. -#define reg_sfoe_c2_17_16_pos 0
  5891. -#define reg_sfoe_c2_17_16_len 2
  5892. -#define reg_sfoe_c2_17_16_lsb 16
  5893. -#define xd_r_reg_sfoe_out_9_2 0xA328
  5894. -#define reg_sfoe_out_9_2_pos 0
  5895. -#define reg_sfoe_out_9_2_len 8
  5896. -#define reg_sfoe_out_9_2_lsb 0
  5897. -#define xd_r_reg_sfoe_out_1_0 0xA329
  5898. -#define reg_sfoe_out_1_0_pos 0
  5899. -#define reg_sfoe_out_1_0_len 2
  5900. -#define reg_sfoe_out_1_0_lsb 0
  5901. -#define xd_p_reg_sfoe_lm_counter_th 0xA32A
  5902. -#define reg_sfoe_lm_counter_th_pos 0
  5903. -#define reg_sfoe_lm_counter_th_len 4
  5904. -#define reg_sfoe_lm_counter_th_lsb 0
  5905. -#define xd_p_reg_sfoe_convg_th 0xA32B
  5906. -#define reg_sfoe_convg_th_pos 0
  5907. -#define reg_sfoe_convg_th_len 8
  5908. -#define reg_sfoe_convg_th_lsb 0
  5909. -#define xd_p_reg_sfoe_divg_th 0xA32C
  5910. -#define reg_sfoe_divg_th_pos 0
  5911. -#define reg_sfoe_divg_th_len 8
  5912. -#define reg_sfoe_divg_th_lsb 0
  5913. -#define xd_p_fd_tpsd_en 0xA330
  5914. -#define fd_tpsd_en_pos 0
  5915. -#define fd_tpsd_en_len 1
  5916. -#define fd_tpsd_en_lsb 0
  5917. -#define xd_p_fd_tpsd_dis 0xA330
  5918. -#define fd_tpsd_dis_pos 1
  5919. -#define fd_tpsd_dis_len 1
  5920. -#define fd_tpsd_dis_lsb 0
  5921. -#define xd_p_fd_tpsd_rst 0xA330
  5922. -#define fd_tpsd_rst_pos 2
  5923. -#define fd_tpsd_rst_len 1
  5924. -#define fd_tpsd_rst_lsb 0
  5925. -#define xd_p_fd_tpsd_lock 0xA330
  5926. -#define fd_tpsd_lock_pos 3
  5927. -#define fd_tpsd_lock_len 1
  5928. -#define fd_tpsd_lock_lsb 0
  5929. -#define xd_r_fd_tpsd_s19 0xA330
  5930. -#define fd_tpsd_s19_pos 4
  5931. -#define fd_tpsd_s19_len 1
  5932. -#define fd_tpsd_s19_lsb 0
  5933. -#define xd_r_fd_tpsd_s17 0xA330
  5934. -#define fd_tpsd_s17_pos 5
  5935. -#define fd_tpsd_s17_len 1
  5936. -#define fd_tpsd_s17_lsb 0
  5937. -#define xd_p_fd_sfr_ste_en 0xA331
  5938. -#define fd_sfr_ste_en_pos 0
  5939. -#define fd_sfr_ste_en_len 1
  5940. -#define fd_sfr_ste_en_lsb 0
  5941. -#define xd_p_fd_sfr_ste_dis 0xA331
  5942. -#define fd_sfr_ste_dis_pos 1
  5943. -#define fd_sfr_ste_dis_len 1
  5944. -#define fd_sfr_ste_dis_lsb 0
  5945. -#define xd_p_fd_sfr_ste_rst 0xA331
  5946. -#define fd_sfr_ste_rst_pos 2
  5947. -#define fd_sfr_ste_rst_len 1
  5948. -#define fd_sfr_ste_rst_lsb 0
  5949. -#define xd_p_fd_sfr_ste_mode 0xA331
  5950. -#define fd_sfr_ste_mode_pos 3
  5951. -#define fd_sfr_ste_mode_len 1
  5952. -#define fd_sfr_ste_mode_lsb 0
  5953. -#define xd_p_fd_sfr_ste_done 0xA331
  5954. -#define fd_sfr_ste_done_pos 4
  5955. -#define fd_sfr_ste_done_len 1
  5956. -#define fd_sfr_ste_done_lsb 0
  5957. -#define xd_p_reg_cfoe_ffoe_en 0xA332
  5958. -#define reg_cfoe_ffoe_en_pos 0
  5959. -#define reg_cfoe_ffoe_en_len 1
  5960. -#define reg_cfoe_ffoe_en_lsb 0
  5961. -#define xd_p_reg_cfoe_ffoe_dis 0xA332
  5962. -#define reg_cfoe_ffoe_dis_pos 1
  5963. -#define reg_cfoe_ffoe_dis_len 1
  5964. -#define reg_cfoe_ffoe_dis_lsb 0
  5965. -#define xd_p_reg_cfoe_ffoe_rst 0xA332
  5966. -#define reg_cfoe_ffoe_rst_pos 2
  5967. -#define reg_cfoe_ffoe_rst_len 1
  5968. -#define reg_cfoe_ffoe_rst_lsb 0
  5969. -#define xd_p_reg_cfoe_ifoe_en 0xA332
  5970. -#define reg_cfoe_ifoe_en_pos 3
  5971. -#define reg_cfoe_ifoe_en_len 1
  5972. -#define reg_cfoe_ifoe_en_lsb 0
  5973. -#define xd_p_reg_cfoe_ifoe_dis 0xA332
  5974. -#define reg_cfoe_ifoe_dis_pos 4
  5975. -#define reg_cfoe_ifoe_dis_len 1
  5976. -#define reg_cfoe_ifoe_dis_lsb 0
  5977. -#define xd_p_reg_cfoe_ifoe_rst 0xA332
  5978. -#define reg_cfoe_ifoe_rst_pos 5
  5979. -#define reg_cfoe_ifoe_rst_len 1
  5980. -#define reg_cfoe_ifoe_rst_lsb 0
  5981. -#define xd_p_reg_cfoe_fot_en 0xA332
  5982. -#define reg_cfoe_fot_en_pos 6
  5983. -#define reg_cfoe_fot_en_len 1
  5984. -#define reg_cfoe_fot_en_lsb 0
  5985. -#define xd_p_reg_cfoe_fot_lm_en 0xA332
  5986. -#define reg_cfoe_fot_lm_en_pos 7
  5987. -#define reg_cfoe_fot_lm_en_len 1
  5988. -#define reg_cfoe_fot_lm_en_lsb 0
  5989. -#define xd_p_reg_cfoe_fot_rst 0xA333
  5990. -#define reg_cfoe_fot_rst_pos 0
  5991. -#define reg_cfoe_fot_rst_len 1
  5992. -#define reg_cfoe_fot_rst_lsb 0
  5993. -#define xd_r_fd_cfoe_ffoe_done 0xA333
  5994. -#define fd_cfoe_ffoe_done_pos 1
  5995. -#define fd_cfoe_ffoe_done_len 1
  5996. -#define fd_cfoe_ffoe_done_lsb 0
  5997. -#define xd_p_fd_cfoe_metric_vld 0xA333
  5998. -#define fd_cfoe_metric_vld_pos 2
  5999. -#define fd_cfoe_metric_vld_len 1
  6000. -#define fd_cfoe_metric_vld_lsb 0
  6001. -#define xd_p_reg_cfoe_ifod_vld 0xA333
  6002. -#define reg_cfoe_ifod_vld_pos 3
  6003. -#define reg_cfoe_ifod_vld_len 1
  6004. -#define reg_cfoe_ifod_vld_lsb 0
  6005. -#define xd_r_fd_cfoe_ifoe_done 0xA333
  6006. -#define fd_cfoe_ifoe_done_pos 4
  6007. -#define fd_cfoe_ifoe_done_len 1
  6008. -#define fd_cfoe_ifoe_done_lsb 0
  6009. -#define xd_r_fd_cfoe_fot_valid 0xA333
  6010. -#define fd_cfoe_fot_valid_pos 5
  6011. -#define fd_cfoe_fot_valid_len 1
  6012. -#define fd_cfoe_fot_valid_lsb 0
  6013. -#define xd_p_reg_cfoe_divg_int 0xA333
  6014. -#define reg_cfoe_divg_int_pos 6
  6015. -#define reg_cfoe_divg_int_len 1
  6016. -#define reg_cfoe_divg_int_lsb 0
  6017. -#define xd_r_reg_cfoe_divg_flag 0xA333
  6018. -#define reg_cfoe_divg_flag_pos 7
  6019. -#define reg_cfoe_divg_flag_len 1
  6020. -#define reg_cfoe_divg_flag_lsb 0
  6021. -#define xd_p_reg_sfoe_en 0xA334
  6022. -#define reg_sfoe_en_pos 0
  6023. -#define reg_sfoe_en_len 1
  6024. -#define reg_sfoe_en_lsb 0
  6025. -#define xd_p_reg_sfoe_dis 0xA334
  6026. -#define reg_sfoe_dis_pos 1
  6027. -#define reg_sfoe_dis_len 1
  6028. -#define reg_sfoe_dis_lsb 0
  6029. -#define xd_p_reg_sfoe_rst 0xA334
  6030. -#define reg_sfoe_rst_pos 2
  6031. -#define reg_sfoe_rst_len 1
  6032. -#define reg_sfoe_rst_lsb 0
  6033. -#define xd_p_reg_sfoe_vld_int 0xA334
  6034. -#define reg_sfoe_vld_int_pos 3
  6035. -#define reg_sfoe_vld_int_len 1
  6036. -#define reg_sfoe_vld_int_lsb 0
  6037. -#define xd_p_reg_sfoe_lm_en 0xA334
  6038. -#define reg_sfoe_lm_en_pos 4
  6039. -#define reg_sfoe_lm_en_len 1
  6040. -#define reg_sfoe_lm_en_lsb 0
  6041. -#define xd_p_reg_sfoe_divg_int 0xA334
  6042. -#define reg_sfoe_divg_int_pos 5
  6043. -#define reg_sfoe_divg_int_len 1
  6044. -#define reg_sfoe_divg_int_lsb 0
  6045. -#define xd_r_reg_sfoe_divg_flag 0xA334
  6046. -#define reg_sfoe_divg_flag_pos 6
  6047. -#define reg_sfoe_divg_flag_len 1
  6048. -#define reg_sfoe_divg_flag_lsb 0
  6049. -#define xd_p_reg_fft_rst 0xA335
  6050. -#define reg_fft_rst_pos 0
  6051. -#define reg_fft_rst_len 1
  6052. -#define reg_fft_rst_lsb 0
  6053. -#define xd_p_reg_fft_fast_beacon 0xA335
  6054. -#define reg_fft_fast_beacon_pos 1
  6055. -#define reg_fft_fast_beacon_len 1
  6056. -#define reg_fft_fast_beacon_lsb 0
  6057. -#define xd_p_reg_fft_fast_valid 0xA335
  6058. -#define reg_fft_fast_valid_pos 2
  6059. -#define reg_fft_fast_valid_len 1
  6060. -#define reg_fft_fast_valid_lsb 0
  6061. -#define xd_p_reg_fft_mask_en 0xA335
  6062. -#define reg_fft_mask_en_pos 3
  6063. -#define reg_fft_mask_en_len 1
  6064. -#define reg_fft_mask_en_lsb 0
  6065. -#define xd_p_reg_fft_crc_en 0xA335
  6066. -#define reg_fft_crc_en_pos 4
  6067. -#define reg_fft_crc_en_len 1
  6068. -#define reg_fft_crc_en_lsb 0
  6069. -#define xd_p_reg_finr_en 0xA336
  6070. -#define reg_finr_en_pos 0
  6071. -#define reg_finr_en_len 1
  6072. -#define reg_finr_en_lsb 0
  6073. -#define xd_p_fd_fste_en 0xA337
  6074. -#define fd_fste_en_pos 1
  6075. -#define fd_fste_en_len 1
  6076. -#define fd_fste_en_lsb 0
  6077. -#define xd_p_fd_sqi_tps_level_shift 0xA338
  6078. -#define fd_sqi_tps_level_shift_pos 0
  6079. -#define fd_sqi_tps_level_shift_len 8
  6080. -#define fd_sqi_tps_level_shift_lsb 0
  6081. -#define xd_p_fd_pilot_ma_len 0xA339
  6082. -#define fd_pilot_ma_len_pos 0
  6083. -#define fd_pilot_ma_len_len 6
  6084. -#define fd_pilot_ma_len_lsb 0
  6085. -#define xd_p_fd_tps_ma_len 0xA33A
  6086. -#define fd_tps_ma_len_pos 0
  6087. -#define fd_tps_ma_len_len 6
  6088. -#define fd_tps_ma_len_lsb 0
  6089. -#define xd_p_fd_sqi_s3 0xA33B
  6090. -#define fd_sqi_s3_pos 0
  6091. -#define fd_sqi_s3_len 8
  6092. -#define fd_sqi_s3_lsb 0
  6093. -#define xd_p_fd_sqi_dummy_reg_0 0xA33C
  6094. -#define fd_sqi_dummy_reg_0_pos 0
  6095. -#define fd_sqi_dummy_reg_0_len 1
  6096. -#define fd_sqi_dummy_reg_0_lsb 0
  6097. -#define xd_p_fd_sqi_debug_sel 0xA33C
  6098. -#define fd_sqi_debug_sel_pos 1
  6099. -#define fd_sqi_debug_sel_len 2
  6100. -#define fd_sqi_debug_sel_lsb 0
  6101. -#define xd_p_fd_sqi_s2 0xA33C
  6102. -#define fd_sqi_s2_pos 3
  6103. -#define fd_sqi_s2_len 5
  6104. -#define fd_sqi_s2_lsb 0
  6105. -#define xd_p_fd_sqi_dummy_reg_1 0xA33D
  6106. -#define fd_sqi_dummy_reg_1_pos 0
  6107. -#define fd_sqi_dummy_reg_1_len 1
  6108. -#define fd_sqi_dummy_reg_1_lsb 0
  6109. -#define xd_p_fd_inr_ignore 0xA33D
  6110. -#define fd_inr_ignore_pos 1
  6111. -#define fd_inr_ignore_len 1
  6112. -#define fd_inr_ignore_lsb 0
  6113. -#define xd_p_fd_pilot_ignore 0xA33D
  6114. -#define fd_pilot_ignore_pos 2
  6115. -#define fd_pilot_ignore_len 1
  6116. -#define fd_pilot_ignore_lsb 0
  6117. -#define xd_p_fd_etps_ignore 0xA33D
  6118. -#define fd_etps_ignore_pos 3
  6119. -#define fd_etps_ignore_len 1
  6120. -#define fd_etps_ignore_lsb 0
  6121. -#define xd_p_fd_sqi_s1 0xA33D
  6122. -#define fd_sqi_s1_pos 4
  6123. -#define fd_sqi_s1_len 4
  6124. -#define fd_sqi_s1_lsb 0
  6125. -#define xd_p_reg_fste_ehw_7_0 0xA33E
  6126. -#define reg_fste_ehw_7_0_pos 0
  6127. -#define reg_fste_ehw_7_0_len 8
  6128. -#define reg_fste_ehw_7_0_lsb 0
  6129. -#define xd_p_reg_fste_ehw_9_8 0xA33F
  6130. -#define reg_fste_ehw_9_8_pos 0
  6131. -#define reg_fste_ehw_9_8_len 2
  6132. -#define reg_fste_ehw_9_8_lsb 8
  6133. -#define xd_p_reg_fste_i_adj_vld 0xA33F
  6134. -#define reg_fste_i_adj_vld_pos 2
  6135. -#define reg_fste_i_adj_vld_len 1
  6136. -#define reg_fste_i_adj_vld_lsb 0
  6137. -#define xd_p_reg_fste_phase_ini_7_0 0xA340
  6138. -#define reg_fste_phase_ini_7_0_pos 0
  6139. -#define reg_fste_phase_ini_7_0_len 8
  6140. -#define reg_fste_phase_ini_7_0_lsb 0
  6141. -#define xd_p_reg_fste_phase_ini_11_8 0xA341
  6142. -#define reg_fste_phase_ini_11_8_pos 0
  6143. -#define reg_fste_phase_ini_11_8_len 4
  6144. -#define reg_fste_phase_ini_11_8_lsb 8
  6145. -#define xd_p_reg_fste_phase_inc_3_0 0xA341
  6146. -#define reg_fste_phase_inc_3_0_pos 4
  6147. -#define reg_fste_phase_inc_3_0_len 4
  6148. -#define reg_fste_phase_inc_3_0_lsb 0
  6149. -#define xd_p_reg_fste_phase_inc_11_4 0xA342
  6150. -#define reg_fste_phase_inc_11_4_pos 0
  6151. -#define reg_fste_phase_inc_11_4_len 8
  6152. -#define reg_fste_phase_inc_11_4_lsb 4
  6153. -#define xd_p_reg_fste_acum_cost_cnt_max 0xA343
  6154. -#define reg_fste_acum_cost_cnt_max_pos 0
  6155. -#define reg_fste_acum_cost_cnt_max_len 4
  6156. -#define reg_fste_acum_cost_cnt_max_lsb 0
  6157. -#define xd_p_reg_fste_step_size_std 0xA343
  6158. -#define reg_fste_step_size_std_pos 4
  6159. -#define reg_fste_step_size_std_len 4
  6160. -#define reg_fste_step_size_std_lsb 0
  6161. -#define xd_p_reg_fste_step_size_max 0xA344
  6162. -#define reg_fste_step_size_max_pos 0
  6163. -#define reg_fste_step_size_max_len 4
  6164. -#define reg_fste_step_size_max_lsb 0
  6165. -#define xd_p_reg_fste_step_size_min 0xA344
  6166. -#define reg_fste_step_size_min_pos 4
  6167. -#define reg_fste_step_size_min_len 4
  6168. -#define reg_fste_step_size_min_lsb 0
  6169. -#define xd_p_reg_fste_frac_step_size_7_0 0xA345
  6170. -#define reg_fste_frac_step_size_7_0_pos 0
  6171. -#define reg_fste_frac_step_size_7_0_len 8
  6172. -#define reg_fste_frac_step_size_7_0_lsb 0
  6173. -#define xd_p_reg_fste_frac_step_size_15_8 0xA346
  6174. -#define reg_fste_frac_step_size_15_8_pos 0
  6175. -#define reg_fste_frac_step_size_15_8_len 8
  6176. -#define reg_fste_frac_step_size_15_8_lsb 8
  6177. -#define xd_p_reg_fste_frac_step_size_19_16 0xA347
  6178. -#define reg_fste_frac_step_size_19_16_pos 0
  6179. -#define reg_fste_frac_step_size_19_16_len 4
  6180. -#define reg_fste_frac_step_size_19_16_lsb 16
  6181. -#define xd_p_reg_fste_rpd_dir_cnt_max 0xA347
  6182. -#define reg_fste_rpd_dir_cnt_max_pos 4
  6183. -#define reg_fste_rpd_dir_cnt_max_len 4
  6184. -#define reg_fste_rpd_dir_cnt_max_lsb 0
  6185. -#define xd_p_reg_fste_ehs 0xA348
  6186. -#define reg_fste_ehs_pos 0
  6187. -#define reg_fste_ehs_len 4
  6188. -#define reg_fste_ehs_lsb 0
  6189. -#define xd_p_reg_fste_frac_cost_cnt_max_3_0 0xA348
  6190. -#define reg_fste_frac_cost_cnt_max_3_0_pos 4
  6191. -#define reg_fste_frac_cost_cnt_max_3_0_len 4
  6192. -#define reg_fste_frac_cost_cnt_max_3_0_lsb 0
  6193. -#define xd_p_reg_fste_frac_cost_cnt_max_9_4 0xA349
  6194. -#define reg_fste_frac_cost_cnt_max_9_4_pos 0
  6195. -#define reg_fste_frac_cost_cnt_max_9_4_len 6
  6196. -#define reg_fste_frac_cost_cnt_max_9_4_lsb 4
  6197. -#define xd_p_reg_fste_w0_7_0 0xA34A
  6198. -#define reg_fste_w0_7_0_pos 0
  6199. -#define reg_fste_w0_7_0_len 8
  6200. -#define reg_fste_w0_7_0_lsb 0
  6201. -#define xd_p_reg_fste_w0_11_8 0xA34B
  6202. -#define reg_fste_w0_11_8_pos 0
  6203. -#define reg_fste_w0_11_8_len 4
  6204. -#define reg_fste_w0_11_8_lsb 8
  6205. -#define xd_p_reg_fste_w1_3_0 0xA34B
  6206. -#define reg_fste_w1_3_0_pos 4
  6207. -#define reg_fste_w1_3_0_len 4
  6208. -#define reg_fste_w1_3_0_lsb 0
  6209. -#define xd_p_reg_fste_w1_11_4 0xA34C
  6210. -#define reg_fste_w1_11_4_pos 0
  6211. -#define reg_fste_w1_11_4_len 8
  6212. -#define reg_fste_w1_11_4_lsb 4
  6213. -#define xd_p_reg_fste_w2_7_0 0xA34D
  6214. -#define reg_fste_w2_7_0_pos 0
  6215. -#define reg_fste_w2_7_0_len 8
  6216. -#define reg_fste_w2_7_0_lsb 0
  6217. -#define xd_p_reg_fste_w2_11_8 0xA34E
  6218. -#define reg_fste_w2_11_8_pos 0
  6219. -#define reg_fste_w2_11_8_len 4
  6220. -#define reg_fste_w2_11_8_lsb 8
  6221. -#define xd_p_reg_fste_w3_3_0 0xA34E
  6222. -#define reg_fste_w3_3_0_pos 4
  6223. -#define reg_fste_w3_3_0_len 4
  6224. -#define reg_fste_w3_3_0_lsb 0
  6225. -#define xd_p_reg_fste_w3_11_4 0xA34F
  6226. -#define reg_fste_w3_11_4_pos 0
  6227. -#define reg_fste_w3_11_4_len 8
  6228. -#define reg_fste_w3_11_4_lsb 4
  6229. -#define xd_p_reg_fste_w4_7_0 0xA350
  6230. -#define reg_fste_w4_7_0_pos 0
  6231. -#define reg_fste_w4_7_0_len 8
  6232. -#define reg_fste_w4_7_0_lsb 0
  6233. -#define xd_p_reg_fste_w4_11_8 0xA351
  6234. -#define reg_fste_w4_11_8_pos 0
  6235. -#define reg_fste_w4_11_8_len 4
  6236. -#define reg_fste_w4_11_8_lsb 8
  6237. -#define xd_p_reg_fste_w5_3_0 0xA351
  6238. -#define reg_fste_w5_3_0_pos 4
  6239. -#define reg_fste_w5_3_0_len 4
  6240. -#define reg_fste_w5_3_0_lsb 0
  6241. -#define xd_p_reg_fste_w5_11_4 0xA352
  6242. -#define reg_fste_w5_11_4_pos 0
  6243. -#define reg_fste_w5_11_4_len 8
  6244. -#define reg_fste_w5_11_4_lsb 4
  6245. -#define xd_p_reg_fste_w6_7_0 0xA353
  6246. -#define reg_fste_w6_7_0_pos 0
  6247. -#define reg_fste_w6_7_0_len 8
  6248. -#define reg_fste_w6_7_0_lsb 0
  6249. -#define xd_p_reg_fste_w6_11_8 0xA354
  6250. -#define reg_fste_w6_11_8_pos 0
  6251. -#define reg_fste_w6_11_8_len 4
  6252. -#define reg_fste_w6_11_8_lsb 8
  6253. -#define xd_p_reg_fste_w7_3_0 0xA354
  6254. -#define reg_fste_w7_3_0_pos 4
  6255. -#define reg_fste_w7_3_0_len 4
  6256. -#define reg_fste_w7_3_0_lsb 0
  6257. -#define xd_p_reg_fste_w7_11_4 0xA355
  6258. -#define reg_fste_w7_11_4_pos 0
  6259. -#define reg_fste_w7_11_4_len 8
  6260. -#define reg_fste_w7_11_4_lsb 4
  6261. -#define xd_p_reg_fste_w8_7_0 0xA356
  6262. -#define reg_fste_w8_7_0_pos 0
  6263. -#define reg_fste_w8_7_0_len 8
  6264. -#define reg_fste_w8_7_0_lsb 0
  6265. -#define xd_p_reg_fste_w8_11_8 0xA357
  6266. -#define reg_fste_w8_11_8_pos 0
  6267. -#define reg_fste_w8_11_8_len 4
  6268. -#define reg_fste_w8_11_8_lsb 8
  6269. -#define xd_p_reg_fste_w9_3_0 0xA357
  6270. -#define reg_fste_w9_3_0_pos 4
  6271. -#define reg_fste_w9_3_0_len 4
  6272. -#define reg_fste_w9_3_0_lsb 0
  6273. -#define xd_p_reg_fste_w9_11_4 0xA358
  6274. -#define reg_fste_w9_11_4_pos 0
  6275. -#define reg_fste_w9_11_4_len 8
  6276. -#define reg_fste_w9_11_4_lsb 4
  6277. -#define xd_p_reg_fste_wa_7_0 0xA359
  6278. -#define reg_fste_wa_7_0_pos 0
  6279. -#define reg_fste_wa_7_0_len 8
  6280. -#define reg_fste_wa_7_0_lsb 0
  6281. -#define xd_p_reg_fste_wa_11_8 0xA35A
  6282. -#define reg_fste_wa_11_8_pos 0
  6283. -#define reg_fste_wa_11_8_len 4
  6284. -#define reg_fste_wa_11_8_lsb 8
  6285. -#define xd_p_reg_fste_wb_3_0 0xA35A
  6286. -#define reg_fste_wb_3_0_pos 4
  6287. -#define reg_fste_wb_3_0_len 4
  6288. -#define reg_fste_wb_3_0_lsb 0
  6289. -#define xd_p_reg_fste_wb_11_4 0xA35B
  6290. -#define reg_fste_wb_11_4_pos 0
  6291. -#define reg_fste_wb_11_4_len 8
  6292. -#define reg_fste_wb_11_4_lsb 4
  6293. -#define xd_r_fd_fste_i_adj 0xA35C
  6294. -#define fd_fste_i_adj_pos 0
  6295. -#define fd_fste_i_adj_len 5
  6296. -#define fd_fste_i_adj_lsb 0
  6297. -#define xd_r_fd_fste_f_adj_7_0 0xA35D
  6298. -#define fd_fste_f_adj_7_0_pos 0
  6299. -#define fd_fste_f_adj_7_0_len 8
  6300. -#define fd_fste_f_adj_7_0_lsb 0
  6301. -#define xd_r_fd_fste_f_adj_15_8 0xA35E
  6302. -#define fd_fste_f_adj_15_8_pos 0
  6303. -#define fd_fste_f_adj_15_8_len 8
  6304. -#define fd_fste_f_adj_15_8_lsb 8
  6305. -#define xd_r_fd_fste_f_adj_19_16 0xA35F
  6306. -#define fd_fste_f_adj_19_16_pos 0
  6307. -#define fd_fste_f_adj_19_16_len 4
  6308. -#define fd_fste_f_adj_19_16_lsb 16
  6309. -#define xd_p_reg_feq_Leak_Bypass 0xA366
  6310. -#define reg_feq_Leak_Bypass_pos 0
  6311. -#define reg_feq_Leak_Bypass_len 1
  6312. -#define reg_feq_Leak_Bypass_lsb 0
  6313. -#define xd_p_reg_feq_Leak_Mneg1 0xA366
  6314. -#define reg_feq_Leak_Mneg1_pos 1
  6315. -#define reg_feq_Leak_Mneg1_len 3
  6316. -#define reg_feq_Leak_Mneg1_lsb 0
  6317. -#define xd_p_reg_feq_Leak_B_ShiftQ 0xA366
  6318. -#define reg_feq_Leak_B_ShiftQ_pos 4
  6319. -#define reg_feq_Leak_B_ShiftQ_len 4
  6320. -#define reg_feq_Leak_B_ShiftQ_lsb 0
  6321. -#define xd_p_reg_feq_Leak_B_Float0 0xA367
  6322. -#define reg_feq_Leak_B_Float0_pos 0
  6323. -#define reg_feq_Leak_B_Float0_len 8
  6324. -#define reg_feq_Leak_B_Float0_lsb 0
  6325. -#define xd_p_reg_feq_Leak_B_Float1 0xA368
  6326. -#define reg_feq_Leak_B_Float1_pos 0
  6327. -#define reg_feq_Leak_B_Float1_len 8
  6328. -#define reg_feq_Leak_B_Float1_lsb 0
  6329. -#define xd_p_reg_feq_Leak_B_Float2 0xA369
  6330. -#define reg_feq_Leak_B_Float2_pos 0
  6331. -#define reg_feq_Leak_B_Float2_len 8
  6332. -#define reg_feq_Leak_B_Float2_lsb 0
  6333. -#define xd_p_reg_feq_Leak_B_Float3 0xA36A
  6334. -#define reg_feq_Leak_B_Float3_pos 0
  6335. -#define reg_feq_Leak_B_Float3_len 8
  6336. -#define reg_feq_Leak_B_Float3_lsb 0
  6337. -#define xd_p_reg_feq_Leak_B_Float4 0xA36B
  6338. -#define reg_feq_Leak_B_Float4_pos 0
  6339. -#define reg_feq_Leak_B_Float4_len 8
  6340. -#define reg_feq_Leak_B_Float4_lsb 0
  6341. -#define xd_p_reg_feq_Leak_B_Float5 0xA36C
  6342. -#define reg_feq_Leak_B_Float5_pos 0
  6343. -#define reg_feq_Leak_B_Float5_len 8
  6344. -#define reg_feq_Leak_B_Float5_lsb 0
  6345. -#define xd_p_reg_feq_Leak_B_Float6 0xA36D
  6346. -#define reg_feq_Leak_B_Float6_pos 0
  6347. -#define reg_feq_Leak_B_Float6_len 8
  6348. -#define reg_feq_Leak_B_Float6_lsb 0
  6349. -#define xd_p_reg_feq_Leak_B_Float7 0xA36E
  6350. -#define reg_feq_Leak_B_Float7_pos 0
  6351. -#define reg_feq_Leak_B_Float7_len 8
  6352. -#define reg_feq_Leak_B_Float7_lsb 0
  6353. -#define xd_r_reg_feq_data_h2_7_0 0xA36F
  6354. -#define reg_feq_data_h2_7_0_pos 0
  6355. -#define reg_feq_data_h2_7_0_len 8
  6356. -#define reg_feq_data_h2_7_0_lsb 0
  6357. -#define xd_r_reg_feq_data_h2_9_8 0xA370
  6358. -#define reg_feq_data_h2_9_8_pos 0
  6359. -#define reg_feq_data_h2_9_8_len 2
  6360. -#define reg_feq_data_h2_9_8_lsb 8
  6361. -#define xd_p_reg_feq_leak_use_slice_tps 0xA371
  6362. -#define reg_feq_leak_use_slice_tps_pos 0
  6363. -#define reg_feq_leak_use_slice_tps_len 1
  6364. -#define reg_feq_leak_use_slice_tps_lsb 0
  6365. -#define xd_p_reg_feq_read_update 0xA371
  6366. -#define reg_feq_read_update_pos 1
  6367. -#define reg_feq_read_update_len 1
  6368. -#define reg_feq_read_update_lsb 0
  6369. -#define xd_p_reg_feq_data_vld 0xA371
  6370. -#define reg_feq_data_vld_pos 2
  6371. -#define reg_feq_data_vld_len 1
  6372. -#define reg_feq_data_vld_lsb 0
  6373. -#define xd_p_reg_feq_tone_idx_4_0 0xA371
  6374. -#define reg_feq_tone_idx_4_0_pos 3
  6375. -#define reg_feq_tone_idx_4_0_len 5
  6376. -#define reg_feq_tone_idx_4_0_lsb 0
  6377. -#define xd_p_reg_feq_tone_idx_12_5 0xA372
  6378. -#define reg_feq_tone_idx_12_5_pos 0
  6379. -#define reg_feq_tone_idx_12_5_len 8
  6380. -#define reg_feq_tone_idx_12_5_lsb 5
  6381. -#define xd_r_reg_feq_data_re_7_0 0xA373
  6382. -#define reg_feq_data_re_7_0_pos 0
  6383. -#define reg_feq_data_re_7_0_len 8
  6384. -#define reg_feq_data_re_7_0_lsb 0
  6385. -#define xd_r_reg_feq_data_re_10_8 0xA374
  6386. -#define reg_feq_data_re_10_8_pos 0
  6387. -#define reg_feq_data_re_10_8_len 3
  6388. -#define reg_feq_data_re_10_8_lsb 8
  6389. -#define xd_r_reg_feq_data_im_7_0 0xA375
  6390. -#define reg_feq_data_im_7_0_pos 0
  6391. -#define reg_feq_data_im_7_0_len 8
  6392. -#define reg_feq_data_im_7_0_lsb 0
  6393. -#define xd_r_reg_feq_data_im_10_8 0xA376
  6394. -#define reg_feq_data_im_10_8_pos 0
  6395. -#define reg_feq_data_im_10_8_len 3
  6396. -#define reg_feq_data_im_10_8_lsb 8
  6397. -#define xd_r_reg_feq_y_re 0xA377
  6398. -#define reg_feq_y_re_pos 0
  6399. -#define reg_feq_y_re_len 8
  6400. -#define reg_feq_y_re_lsb 0
  6401. -#define xd_r_reg_feq_y_im 0xA378
  6402. -#define reg_feq_y_im_pos 0
  6403. -#define reg_feq_y_im_len 8
  6404. -#define reg_feq_y_im_lsb 0
  6405. -#define xd_r_reg_feq_h_re_7_0 0xA379
  6406. -#define reg_feq_h_re_7_0_pos 0
  6407. -#define reg_feq_h_re_7_0_len 8
  6408. -#define reg_feq_h_re_7_0_lsb 0
  6409. -#define xd_r_reg_feq_h_re_8 0xA37A
  6410. -#define reg_feq_h_re_8_pos 0
  6411. -#define reg_feq_h_re_8_len 1
  6412. -#define reg_feq_h_re_8_lsb 0
  6413. -#define xd_r_reg_feq_h_im_7_0 0xA37B
  6414. -#define reg_feq_h_im_7_0_pos 0
  6415. -#define reg_feq_h_im_7_0_len 8
  6416. -#define reg_feq_h_im_7_0_lsb 0
  6417. -#define xd_r_reg_feq_h_im_8 0xA37C
  6418. -#define reg_feq_h_im_8_pos 0
  6419. -#define reg_feq_h_im_8_len 1
  6420. -#define reg_feq_h_im_8_lsb 0
  6421. -#define xd_p_fec_super_frm_unit_7_0 0xA380
  6422. -#define fec_super_frm_unit_7_0_pos 0
  6423. -#define fec_super_frm_unit_7_0_len 8
  6424. -#define fec_super_frm_unit_7_0_lsb 0
  6425. -#define xd_p_fec_super_frm_unit_15_8 0xA381
  6426. -#define fec_super_frm_unit_15_8_pos 0
  6427. -#define fec_super_frm_unit_15_8_len 8
  6428. -#define fec_super_frm_unit_15_8_lsb 8
  6429. -#define xd_r_fec_vtb_err_bit_cnt_7_0 0xA382
  6430. -#define fec_vtb_err_bit_cnt_7_0_pos 0
  6431. -#define fec_vtb_err_bit_cnt_7_0_len 8
  6432. -#define fec_vtb_err_bit_cnt_7_0_lsb 0
  6433. -#define xd_r_fec_vtb_err_bit_cnt_15_8 0xA383
  6434. -#define fec_vtb_err_bit_cnt_15_8_pos 0
  6435. -#define fec_vtb_err_bit_cnt_15_8_len 8
  6436. -#define fec_vtb_err_bit_cnt_15_8_lsb 8
  6437. -#define xd_r_fec_vtb_err_bit_cnt_23_16 0xA384
  6438. -#define fec_vtb_err_bit_cnt_23_16_pos 0
  6439. -#define fec_vtb_err_bit_cnt_23_16_len 8
  6440. -#define fec_vtb_err_bit_cnt_23_16_lsb 16
  6441. -#define xd_p_fec_rsd_packet_unit_7_0 0xA385
  6442. -#define fec_rsd_packet_unit_7_0_pos 0
  6443. -#define fec_rsd_packet_unit_7_0_len 8
  6444. -#define fec_rsd_packet_unit_7_0_lsb 0
  6445. -#define xd_p_fec_rsd_packet_unit_15_8 0xA386
  6446. -#define fec_rsd_packet_unit_15_8_pos 0
  6447. -#define fec_rsd_packet_unit_15_8_len 8
  6448. -#define fec_rsd_packet_unit_15_8_lsb 8
  6449. -#define xd_r_fec_rsd_bit_err_cnt_7_0 0xA387
  6450. -#define fec_rsd_bit_err_cnt_7_0_pos 0
  6451. -#define fec_rsd_bit_err_cnt_7_0_len 8
  6452. -#define fec_rsd_bit_err_cnt_7_0_lsb 0
  6453. -#define xd_r_fec_rsd_bit_err_cnt_15_8 0xA388
  6454. -#define fec_rsd_bit_err_cnt_15_8_pos 0
  6455. -#define fec_rsd_bit_err_cnt_15_8_len 8
  6456. -#define fec_rsd_bit_err_cnt_15_8_lsb 8
  6457. -#define xd_r_fec_rsd_bit_err_cnt_23_16 0xA389
  6458. -#define fec_rsd_bit_err_cnt_23_16_pos 0
  6459. -#define fec_rsd_bit_err_cnt_23_16_len 8
  6460. -#define fec_rsd_bit_err_cnt_23_16_lsb 16
  6461. -#define xd_r_fec_rsd_abort_packet_cnt_7_0 0xA38A
  6462. -#define fec_rsd_abort_packet_cnt_7_0_pos 0
  6463. -#define fec_rsd_abort_packet_cnt_7_0_len 8
  6464. -#define fec_rsd_abort_packet_cnt_7_0_lsb 0
  6465. -#define xd_r_fec_rsd_abort_packet_cnt_15_8 0xA38B
  6466. -#define fec_rsd_abort_packet_cnt_15_8_pos 0
  6467. -#define fec_rsd_abort_packet_cnt_15_8_len 8
  6468. -#define fec_rsd_abort_packet_cnt_15_8_lsb 8
  6469. -#define xd_p_fec_RSD_PKT_NUM_PER_UNIT_7_0 0xA38C
  6470. -#define fec_RSD_PKT_NUM_PER_UNIT_7_0_pos 0
  6471. -#define fec_RSD_PKT_NUM_PER_UNIT_7_0_len 8
  6472. -#define fec_RSD_PKT_NUM_PER_UNIT_7_0_lsb 0
  6473. -#define xd_p_fec_RSD_PKT_NUM_PER_UNIT_15_8 0xA38D
  6474. -#define fec_RSD_PKT_NUM_PER_UNIT_15_8_pos 0
  6475. -#define fec_RSD_PKT_NUM_PER_UNIT_15_8_len 8
  6476. -#define fec_RSD_PKT_NUM_PER_UNIT_15_8_lsb 8
  6477. -#define xd_p_fec_RS_TH_1_7_0 0xA38E
  6478. -#define fec_RS_TH_1_7_0_pos 0
  6479. -#define fec_RS_TH_1_7_0_len 8
  6480. -#define fec_RS_TH_1_7_0_lsb 0
  6481. -#define xd_p_fec_RS_TH_1_15_8 0xA38F
  6482. -#define fec_RS_TH_1_15_8_pos 0
  6483. -#define fec_RS_TH_1_15_8_len 8
  6484. -#define fec_RS_TH_1_15_8_lsb 8
  6485. -#define xd_p_fec_RS_TH_2 0xA390
  6486. -#define fec_RS_TH_2_pos 0
  6487. -#define fec_RS_TH_2_len 8
  6488. -#define fec_RS_TH_2_lsb 0
  6489. -#define xd_p_fec_mon_en 0xA391
  6490. -#define fec_mon_en_pos 0
  6491. -#define fec_mon_en_len 1
  6492. -#define fec_mon_en_lsb 0
  6493. -#define xd_p_reg_b8to47 0xA391
  6494. -#define reg_b8to47_pos 1
  6495. -#define reg_b8to47_len 1
  6496. -#define reg_b8to47_lsb 0
  6497. -#define xd_p_reg_rsd_sync_rep 0xA391
  6498. -#define reg_rsd_sync_rep_pos 2
  6499. -#define reg_rsd_sync_rep_len 1
  6500. -#define reg_rsd_sync_rep_lsb 0
  6501. -#define xd_p_fec_rsd_retrain_rst 0xA391
  6502. -#define fec_rsd_retrain_rst_pos 3
  6503. -#define fec_rsd_retrain_rst_len 1
  6504. -#define fec_rsd_retrain_rst_lsb 0
  6505. -#define xd_r_fec_rsd_ber_rdy 0xA391
  6506. -#define fec_rsd_ber_rdy_pos 4
  6507. -#define fec_rsd_ber_rdy_len 1
  6508. -#define fec_rsd_ber_rdy_lsb 0
  6509. -#define xd_p_fec_rsd_ber_rst 0xA391
  6510. -#define fec_rsd_ber_rst_pos 5
  6511. -#define fec_rsd_ber_rst_len 1
  6512. -#define fec_rsd_ber_rst_lsb 0
  6513. -#define xd_r_fec_vtb_ber_rdy 0xA391
  6514. -#define fec_vtb_ber_rdy_pos 6
  6515. -#define fec_vtb_ber_rdy_len 1
  6516. -#define fec_vtb_ber_rdy_lsb 0
  6517. -#define xd_p_fec_vtb_ber_rst 0xA391
  6518. -#define fec_vtb_ber_rst_pos 7
  6519. -#define fec_vtb_ber_rst_len 1
  6520. -#define fec_vtb_ber_rst_lsb 0
  6521. -#define xd_p_reg_vtb_clk40en 0xA392
  6522. -#define reg_vtb_clk40en_pos 0
  6523. -#define reg_vtb_clk40en_len 1
  6524. -#define reg_vtb_clk40en_lsb 0
  6525. -#define xd_p_fec_vtb_rsd_mon_en 0xA392
  6526. -#define fec_vtb_rsd_mon_en_pos 1
  6527. -#define fec_vtb_rsd_mon_en_len 1
  6528. -#define fec_vtb_rsd_mon_en_lsb 0
  6529. -#define xd_p_reg_fec_data_en 0xA392
  6530. -#define reg_fec_data_en_pos 2
  6531. -#define reg_fec_data_en_len 1
  6532. -#define reg_fec_data_en_lsb 0
  6533. -#define xd_p_fec_dummy_reg_2 0xA392
  6534. -#define fec_dummy_reg_2_pos 3
  6535. -#define fec_dummy_reg_2_len 3
  6536. -#define fec_dummy_reg_2_lsb 0
  6537. -#define xd_p_reg_sync_chk 0xA392
  6538. -#define reg_sync_chk_pos 6
  6539. -#define reg_sync_chk_len 1
  6540. -#define reg_sync_chk_lsb 0
  6541. -#define xd_p_fec_rsd_bypass 0xA392
  6542. -#define fec_rsd_bypass_pos 7
  6543. -#define fec_rsd_bypass_len 1
  6544. -#define fec_rsd_bypass_lsb 0
  6545. -#define xd_p_fec_sw_rst 0xA393
  6546. -#define fec_sw_rst_pos 0
  6547. -#define fec_sw_rst_len 1
  6548. -#define fec_sw_rst_lsb 0
  6549. -#define xd_r_fec_vtb_pm_crc 0xA394
  6550. -#define fec_vtb_pm_crc_pos 0
  6551. -#define fec_vtb_pm_crc_len 8
  6552. -#define fec_vtb_pm_crc_lsb 0
  6553. -#define xd_r_fec_vtb_tb_7_crc 0xA395
  6554. -#define fec_vtb_tb_7_crc_pos 0
  6555. -#define fec_vtb_tb_7_crc_len 8
  6556. -#define fec_vtb_tb_7_crc_lsb 0
  6557. -#define xd_r_fec_vtb_tb_6_crc 0xA396
  6558. -#define fec_vtb_tb_6_crc_pos 0
  6559. -#define fec_vtb_tb_6_crc_len 8
  6560. -#define fec_vtb_tb_6_crc_lsb 0
  6561. -#define xd_r_fec_vtb_tb_5_crc 0xA397
  6562. -#define fec_vtb_tb_5_crc_pos 0
  6563. -#define fec_vtb_tb_5_crc_len 8
  6564. -#define fec_vtb_tb_5_crc_lsb 0
  6565. -#define xd_r_fec_vtb_tb_4_crc 0xA398
  6566. -#define fec_vtb_tb_4_crc_pos 0
  6567. -#define fec_vtb_tb_4_crc_len 8
  6568. -#define fec_vtb_tb_4_crc_lsb 0
  6569. -#define xd_r_fec_vtb_tb_3_crc 0xA399
  6570. -#define fec_vtb_tb_3_crc_pos 0
  6571. -#define fec_vtb_tb_3_crc_len 8
  6572. -#define fec_vtb_tb_3_crc_lsb 0
  6573. -#define xd_r_fec_vtb_tb_2_crc 0xA39A
  6574. -#define fec_vtb_tb_2_crc_pos 0
  6575. -#define fec_vtb_tb_2_crc_len 8
  6576. -#define fec_vtb_tb_2_crc_lsb 0
  6577. -#define xd_r_fec_vtb_tb_1_crc 0xA39B
  6578. -#define fec_vtb_tb_1_crc_pos 0
  6579. -#define fec_vtb_tb_1_crc_len 8
  6580. -#define fec_vtb_tb_1_crc_lsb 0
  6581. -#define xd_r_fec_vtb_tb_0_crc 0xA39C
  6582. -#define fec_vtb_tb_0_crc_pos 0
  6583. -#define fec_vtb_tb_0_crc_len 8
  6584. -#define fec_vtb_tb_0_crc_lsb 0
  6585. -#define xd_r_fec_rsd_bank0_crc 0xA39D
  6586. -#define fec_rsd_bank0_crc_pos 0
  6587. -#define fec_rsd_bank0_crc_len 8
  6588. -#define fec_rsd_bank0_crc_lsb 0
  6589. -#define xd_r_fec_rsd_bank1_crc 0xA39E
  6590. -#define fec_rsd_bank1_crc_pos 0
  6591. -#define fec_rsd_bank1_crc_len 8
  6592. -#define fec_rsd_bank1_crc_lsb 0
  6593. -#define xd_r_fec_idi_vtb_crc 0xA39F
  6594. -#define fec_idi_vtb_crc_pos 0
  6595. -#define fec_idi_vtb_crc_len 8
  6596. -#define fec_idi_vtb_crc_lsb 0
  6597. -#define xd_g_reg_tpsd_txmod 0xA3C0
  6598. -#define reg_tpsd_txmod_pos 0
  6599. -#define reg_tpsd_txmod_len 2
  6600. -#define reg_tpsd_txmod_lsb 0
  6601. -#define xd_g_reg_tpsd_gi 0xA3C0
  6602. -#define reg_tpsd_gi_pos 2
  6603. -#define reg_tpsd_gi_len 2
  6604. -#define reg_tpsd_gi_lsb 0
  6605. -#define xd_g_reg_tpsd_hier 0xA3C0
  6606. -#define reg_tpsd_hier_pos 4
  6607. -#define reg_tpsd_hier_len 3
  6608. -#define reg_tpsd_hier_lsb 0
  6609. -#define xd_g_reg_bw 0xA3C1
  6610. -#define reg_bw_pos 2
  6611. -#define reg_bw_len 2
  6612. -#define reg_bw_lsb 0
  6613. -#define xd_g_reg_dec_pri 0xA3C1
  6614. -#define reg_dec_pri_pos 4
  6615. -#define reg_dec_pri_len 1
  6616. -#define reg_dec_pri_lsb 0
  6617. -#define xd_g_reg_tpsd_const 0xA3C1
  6618. -#define reg_tpsd_const_pos 6
  6619. -#define reg_tpsd_const_len 2
  6620. -#define reg_tpsd_const_lsb 0
  6621. -#define xd_g_reg_tpsd_hpcr 0xA3C2
  6622. -#define reg_tpsd_hpcr_pos 0
  6623. -#define reg_tpsd_hpcr_len 3
  6624. -#define reg_tpsd_hpcr_lsb 0
  6625. -#define xd_g_reg_tpsd_lpcr 0xA3C2
  6626. -#define reg_tpsd_lpcr_pos 3
  6627. -#define reg_tpsd_lpcr_len 3
  6628. -#define reg_tpsd_lpcr_lsb 0
  6629. -#define xd_g_reg_ofsm_clk 0xA3D0
  6630. -#define reg_ofsm_clk_pos 0
  6631. -#define reg_ofsm_clk_len 3
  6632. -#define reg_ofsm_clk_lsb 0
  6633. -#define xd_g_reg_fclk_cfg 0xA3D1
  6634. -#define reg_fclk_cfg_pos 0
  6635. -#define reg_fclk_cfg_len 1
  6636. -#define reg_fclk_cfg_lsb 0
  6637. -#define xd_g_reg_fclk_idi 0xA3D1
  6638. -#define reg_fclk_idi_pos 1
  6639. -#define reg_fclk_idi_len 1
  6640. -#define reg_fclk_idi_lsb 0
  6641. -#define xd_g_reg_fclk_odi 0xA3D1
  6642. -#define reg_fclk_odi_pos 2
  6643. -#define reg_fclk_odi_len 1
  6644. -#define reg_fclk_odi_lsb 0
  6645. -#define xd_g_reg_fclk_rsd 0xA3D1
  6646. -#define reg_fclk_rsd_pos 3
  6647. -#define reg_fclk_rsd_len 1
  6648. -#define reg_fclk_rsd_lsb 0
  6649. -#define xd_g_reg_fclk_vtb 0xA3D1
  6650. -#define reg_fclk_vtb_pos 4
  6651. -#define reg_fclk_vtb_len 1
  6652. -#define reg_fclk_vtb_lsb 0
  6653. -#define xd_g_reg_fclk_cste 0xA3D1
  6654. -#define reg_fclk_cste_pos 5
  6655. -#define reg_fclk_cste_len 1
  6656. -#define reg_fclk_cste_lsb 0
  6657. -#define xd_g_reg_fclk_mp2if 0xA3D1
  6658. -#define reg_fclk_mp2if_pos 6
  6659. -#define reg_fclk_mp2if_len 1
  6660. -#define reg_fclk_mp2if_lsb 0
  6661. -#define xd_I2C_i2c_m_slave_addr 0xA400
  6662. -#define i2c_m_slave_addr_pos 0
  6663. -#define i2c_m_slave_addr_len 8
  6664. -#define i2c_m_slave_addr_lsb 0
  6665. -#define xd_I2C_i2c_m_data1 0xA401
  6666. -#define i2c_m_data1_pos 0
  6667. -#define i2c_m_data1_len 8
  6668. -#define i2c_m_data1_lsb 0
  6669. -#define xd_I2C_i2c_m_data2 0xA402
  6670. -#define i2c_m_data2_pos 0
  6671. -#define i2c_m_data2_len 8
  6672. -#define i2c_m_data2_lsb 0
  6673. -#define xd_I2C_i2c_m_data3 0xA403
  6674. -#define i2c_m_data3_pos 0
  6675. -#define i2c_m_data3_len 8
  6676. -#define i2c_m_data3_lsb 0
  6677. -#define xd_I2C_i2c_m_data4 0xA404
  6678. -#define i2c_m_data4_pos 0
  6679. -#define i2c_m_data4_len 8
  6680. -#define i2c_m_data4_lsb 0
  6681. -#define xd_I2C_i2c_m_data5 0xA405
  6682. -#define i2c_m_data5_pos 0
  6683. -#define i2c_m_data5_len 8
  6684. -#define i2c_m_data5_lsb 0
  6685. -#define xd_I2C_i2c_m_data6 0xA406
  6686. -#define i2c_m_data6_pos 0
  6687. -#define i2c_m_data6_len 8
  6688. -#define i2c_m_data6_lsb 0
  6689. -#define xd_I2C_i2c_m_data7 0xA407
  6690. -#define i2c_m_data7_pos 0
  6691. -#define i2c_m_data7_len 8
  6692. -#define i2c_m_data7_lsb 0
  6693. -#define xd_I2C_i2c_m_data8 0xA408
  6694. -#define i2c_m_data8_pos 0
  6695. -#define i2c_m_data8_len 8
  6696. -#define i2c_m_data8_lsb 0
  6697. -#define xd_I2C_i2c_m_data9 0xA409
  6698. -#define i2c_m_data9_pos 0
  6699. -#define i2c_m_data9_len 8
  6700. -#define i2c_m_data9_lsb 0
  6701. -#define xd_I2C_i2c_m_data10 0xA40A
  6702. -#define i2c_m_data10_pos 0
  6703. -#define i2c_m_data10_len 8
  6704. -#define i2c_m_data10_lsb 0
  6705. -#define xd_I2C_i2c_m_data11 0xA40B
  6706. -#define i2c_m_data11_pos 0
  6707. -#define i2c_m_data11_len 8
  6708. -#define i2c_m_data11_lsb 0
  6709. -#define xd_I2C_i2c_m_cmd_rw 0xA40C
  6710. -#define i2c_m_cmd_rw_pos 0
  6711. -#define i2c_m_cmd_rw_len 1
  6712. -#define i2c_m_cmd_rw_lsb 0
  6713. -#define xd_I2C_i2c_m_cmd_rwlen 0xA40C
  6714. -#define i2c_m_cmd_rwlen_pos 3
  6715. -#define i2c_m_cmd_rwlen_len 4
  6716. -#define i2c_m_cmd_rwlen_lsb 0
  6717. -#define xd_I2C_i2c_m_status_cmd_exe 0xA40D
  6718. -#define i2c_m_status_cmd_exe_pos 0
  6719. -#define i2c_m_status_cmd_exe_len 1
  6720. -#define i2c_m_status_cmd_exe_lsb 0
  6721. -#define xd_I2C_i2c_m_status_wdat_done 0xA40D
  6722. -#define i2c_m_status_wdat_done_pos 1
  6723. -#define i2c_m_status_wdat_done_len 1
  6724. -#define i2c_m_status_wdat_done_lsb 0
  6725. -#define xd_I2C_i2c_m_status_wdat_fail 0xA40D
  6726. -#define i2c_m_status_wdat_fail_pos 2
  6727. -#define i2c_m_status_wdat_fail_len 1
  6728. -#define i2c_m_status_wdat_fail_lsb 0
  6729. -#define xd_I2C_i2c_m_period 0xA40E
  6730. -#define i2c_m_period_pos 0
  6731. -#define i2c_m_period_len 8
  6732. -#define i2c_m_period_lsb 0
  6733. -#define xd_I2C_i2c_m_reg_msb_lsb 0xA40F
  6734. -#define i2c_m_reg_msb_lsb_pos 0
  6735. -#define i2c_m_reg_msb_lsb_len 1
  6736. -#define i2c_m_reg_msb_lsb_lsb 0
  6737. -#define xd_I2C_reg_ofdm_rst 0xA40F
  6738. -#define reg_ofdm_rst_pos 1
  6739. -#define reg_ofdm_rst_len 1
  6740. -#define reg_ofdm_rst_lsb 0
  6741. -#define xd_I2C_reg_sample_period_on_tuner 0xA40F
  6742. -#define reg_sample_period_on_tuner_pos 2
  6743. -#define reg_sample_period_on_tuner_len 1
  6744. -#define reg_sample_period_on_tuner_lsb 0
  6745. -#define xd_I2C_reg_rst_i2c 0xA40F
  6746. -#define reg_rst_i2c_pos 3
  6747. -#define reg_rst_i2c_len 1
  6748. -#define reg_rst_i2c_lsb 0
  6749. -#define xd_I2C_reg_ofdm_rst_en 0xA40F
  6750. -#define reg_ofdm_rst_en_pos 4
  6751. -#define reg_ofdm_rst_en_len 1
  6752. -#define reg_ofdm_rst_en_lsb 0
  6753. -#define xd_I2C_reg_tuner_sda_sync_on 0xA40F
  6754. -#define reg_tuner_sda_sync_on_pos 5
  6755. -#define reg_tuner_sda_sync_on_len 1
  6756. -#define reg_tuner_sda_sync_on_lsb 0
  6757. -#define xd_p_mp2if_data_access_disable_ofsm 0xA500
  6758. -#define mp2if_data_access_disable_ofsm_pos 0
  6759. -#define mp2if_data_access_disable_ofsm_len 1
  6760. -#define mp2if_data_access_disable_ofsm_lsb 0
  6761. -#define xd_p_reg_mp2_sw_rst_ofsm 0xA500
  6762. -#define reg_mp2_sw_rst_ofsm_pos 1
  6763. -#define reg_mp2_sw_rst_ofsm_len 1
  6764. -#define reg_mp2_sw_rst_ofsm_lsb 0
  6765. -#define xd_p_reg_mp2if_clk_en_ofsm 0xA500
  6766. -#define reg_mp2if_clk_en_ofsm_pos 2
  6767. -#define reg_mp2if_clk_en_ofsm_len 1
  6768. -#define reg_mp2if_clk_en_ofsm_lsb 0
  6769. -#define xd_r_mp2if_sync_byte_locked 0xA500
  6770. -#define mp2if_sync_byte_locked_pos 3
  6771. -#define mp2if_sync_byte_locked_len 1
  6772. -#define mp2if_sync_byte_locked_lsb 0
  6773. -#define xd_r_mp2if_ts_not_188 0xA500
  6774. -#define mp2if_ts_not_188_pos 4
  6775. -#define mp2if_ts_not_188_len 1
  6776. -#define mp2if_ts_not_188_lsb 0
  6777. -#define xd_r_mp2if_psb_empty 0xA500
  6778. -#define mp2if_psb_empty_pos 5
  6779. -#define mp2if_psb_empty_len 1
  6780. -#define mp2if_psb_empty_lsb 0
  6781. -#define xd_r_mp2if_psb_overflow 0xA500
  6782. -#define mp2if_psb_overflow_pos 6
  6783. -#define mp2if_psb_overflow_len 1
  6784. -#define mp2if_psb_overflow_lsb 0
  6785. -#define xd_p_mp2if_keep_sf_sync_byte_ofsm 0xA500
  6786. -#define mp2if_keep_sf_sync_byte_ofsm_pos 7
  6787. -#define mp2if_keep_sf_sync_byte_ofsm_len 1
  6788. -#define mp2if_keep_sf_sync_byte_ofsm_lsb 0
  6789. -#define xd_r_mp2if_psb_mp2if_num_pkt 0xA501
  6790. -#define mp2if_psb_mp2if_num_pkt_pos 0
  6791. -#define mp2if_psb_mp2if_num_pkt_len 6
  6792. -#define mp2if_psb_mp2if_num_pkt_lsb 0
  6793. -#define xd_p_reg_mpeg_full_speed_ofsm 0xA501
  6794. -#define reg_mpeg_full_speed_ofsm_pos 6
  6795. -#define reg_mpeg_full_speed_ofsm_len 1
  6796. -#define reg_mpeg_full_speed_ofsm_lsb 0
  6797. -#define xd_p_mp2if_mpeg_ser_mode_ofsm 0xA501
  6798. -#define mp2if_mpeg_ser_mode_ofsm_pos 7
  6799. -#define mp2if_mpeg_ser_mode_ofsm_len 1
  6800. -#define mp2if_mpeg_ser_mode_ofsm_lsb 0
  6801. -#define xd_p_reg_sw_mon51 0xA600
  6802. -#define reg_sw_mon51_pos 0
  6803. -#define reg_sw_mon51_len 8
  6804. -#define reg_sw_mon51_lsb 0
  6805. -#define xd_p_reg_top_pcsel 0xA601
  6806. -#define reg_top_pcsel_pos 0
  6807. -#define reg_top_pcsel_len 1
  6808. -#define reg_top_pcsel_lsb 0
  6809. -#define xd_p_reg_top_rs232 0xA601
  6810. -#define reg_top_rs232_pos 1
  6811. -#define reg_top_rs232_len 1
  6812. -#define reg_top_rs232_lsb 0
  6813. -#define xd_p_reg_top_pcout 0xA601
  6814. -#define reg_top_pcout_pos 2
  6815. -#define reg_top_pcout_len 1
  6816. -#define reg_top_pcout_lsb 0
  6817. -#define xd_p_reg_top_debug 0xA601
  6818. -#define reg_top_debug_pos 3
  6819. -#define reg_top_debug_len 1
  6820. -#define reg_top_debug_lsb 0
  6821. -#define xd_p_reg_top_adcdly 0xA601
  6822. -#define reg_top_adcdly_pos 4
  6823. -#define reg_top_adcdly_len 2
  6824. -#define reg_top_adcdly_lsb 0
  6825. -#define xd_p_reg_top_pwrdw 0xA601
  6826. -#define reg_top_pwrdw_pos 6
  6827. -#define reg_top_pwrdw_len 1
  6828. -#define reg_top_pwrdw_lsb 0
  6829. -#define xd_p_reg_top_pwrdw_inv 0xA601
  6830. -#define reg_top_pwrdw_inv_pos 7
  6831. -#define reg_top_pwrdw_inv_len 1
  6832. -#define reg_top_pwrdw_inv_lsb 0
  6833. -#define xd_p_reg_top_int_inv 0xA602
  6834. -#define reg_top_int_inv_pos 0
  6835. -#define reg_top_int_inv_len 1
  6836. -#define reg_top_int_inv_lsb 0
  6837. -#define xd_p_reg_top_dio_sel 0xA602
  6838. -#define reg_top_dio_sel_pos 1
  6839. -#define reg_top_dio_sel_len 1
  6840. -#define reg_top_dio_sel_lsb 0
  6841. -#define xd_p_reg_top_gpioon0 0xA603
  6842. -#define reg_top_gpioon0_pos 0
  6843. -#define reg_top_gpioon0_len 1
  6844. -#define reg_top_gpioon0_lsb 0
  6845. -#define xd_p_reg_top_gpioon1 0xA603
  6846. -#define reg_top_gpioon1_pos 1
  6847. -#define reg_top_gpioon1_len 1
  6848. -#define reg_top_gpioon1_lsb 0
  6849. -#define xd_p_reg_top_gpioon2 0xA603
  6850. -#define reg_top_gpioon2_pos 2
  6851. -#define reg_top_gpioon2_len 1
  6852. -#define reg_top_gpioon2_lsb 0
  6853. -#define xd_p_reg_top_gpioon3 0xA603
  6854. -#define reg_top_gpioon3_pos 3
  6855. -#define reg_top_gpioon3_len 1
  6856. -#define reg_top_gpioon3_lsb 0
  6857. -#define xd_p_reg_top_lockon1 0xA603
  6858. -#define reg_top_lockon1_pos 4
  6859. -#define reg_top_lockon1_len 1
  6860. -#define reg_top_lockon1_lsb 0
  6861. -#define xd_p_reg_top_lockon2 0xA603
  6862. -#define reg_top_lockon2_pos 5
  6863. -#define reg_top_lockon2_len 1
  6864. -#define reg_top_lockon2_lsb 0
  6865. -#define xd_p_reg_top_gpioo0 0xA604
  6866. -#define reg_top_gpioo0_pos 0
  6867. -#define reg_top_gpioo0_len 1
  6868. -#define reg_top_gpioo0_lsb 0
  6869. -#define xd_p_reg_top_gpioo1 0xA604
  6870. -#define reg_top_gpioo1_pos 1
  6871. -#define reg_top_gpioo1_len 1
  6872. -#define reg_top_gpioo1_lsb 0
  6873. -#define xd_p_reg_top_gpioo2 0xA604
  6874. -#define reg_top_gpioo2_pos 2
  6875. -#define reg_top_gpioo2_len 1
  6876. -#define reg_top_gpioo2_lsb 0
  6877. -#define xd_p_reg_top_gpioo3 0xA604
  6878. -#define reg_top_gpioo3_pos 3
  6879. -#define reg_top_gpioo3_len 1
  6880. -#define reg_top_gpioo3_lsb 0
  6881. -#define xd_p_reg_top_lock1 0xA604
  6882. -#define reg_top_lock1_pos 4
  6883. -#define reg_top_lock1_len 1
  6884. -#define reg_top_lock1_lsb 0
  6885. -#define xd_p_reg_top_lock2 0xA604
  6886. -#define reg_top_lock2_pos 5
  6887. -#define reg_top_lock2_len 1
  6888. -#define reg_top_lock2_lsb 0
  6889. -#define xd_p_reg_top_gpioen0 0xA605
  6890. -#define reg_top_gpioen0_pos 0
  6891. -#define reg_top_gpioen0_len 1
  6892. -#define reg_top_gpioen0_lsb 0
  6893. -#define xd_p_reg_top_gpioen1 0xA605
  6894. -#define reg_top_gpioen1_pos 1
  6895. -#define reg_top_gpioen1_len 1
  6896. -#define reg_top_gpioen1_lsb 0
  6897. -#define xd_p_reg_top_gpioen2 0xA605
  6898. -#define reg_top_gpioen2_pos 2
  6899. -#define reg_top_gpioen2_len 1
  6900. -#define reg_top_gpioen2_lsb 0
  6901. -#define xd_p_reg_top_gpioen3 0xA605
  6902. -#define reg_top_gpioen3_pos 3
  6903. -#define reg_top_gpioen3_len 1
  6904. -#define reg_top_gpioen3_lsb 0
  6905. -#define xd_p_reg_top_locken1 0xA605
  6906. -#define reg_top_locken1_pos 4
  6907. -#define reg_top_locken1_len 1
  6908. -#define reg_top_locken1_lsb 0
  6909. -#define xd_p_reg_top_locken2 0xA605
  6910. -#define reg_top_locken2_pos 5
  6911. -#define reg_top_locken2_len 1
  6912. -#define reg_top_locken2_lsb 0
  6913. -#define xd_r_reg_top_gpioi0 0xA606
  6914. -#define reg_top_gpioi0_pos 0
  6915. -#define reg_top_gpioi0_len 1
  6916. -#define reg_top_gpioi0_lsb 0
  6917. -#define xd_r_reg_top_gpioi1 0xA606
  6918. -#define reg_top_gpioi1_pos 1
  6919. -#define reg_top_gpioi1_len 1
  6920. -#define reg_top_gpioi1_lsb 0
  6921. -#define xd_r_reg_top_gpioi2 0xA606
  6922. -#define reg_top_gpioi2_pos 2
  6923. -#define reg_top_gpioi2_len 1
  6924. -#define reg_top_gpioi2_lsb 0
  6925. -#define xd_r_reg_top_gpioi3 0xA606
  6926. -#define reg_top_gpioi3_pos 3
  6927. -#define reg_top_gpioi3_len 1
  6928. -#define reg_top_gpioi3_lsb 0
  6929. -#define xd_r_reg_top_locki1 0xA606
  6930. -#define reg_top_locki1_pos 4
  6931. -#define reg_top_locki1_len 1
  6932. -#define reg_top_locki1_lsb 0
  6933. -#define xd_r_reg_top_locki2 0xA606
  6934. -#define reg_top_locki2_pos 5
  6935. -#define reg_top_locki2_len 1
  6936. -#define reg_top_locki2_lsb 0
  6937. -#define xd_p_reg_dummy_7_0 0xA608
  6938. -#define reg_dummy_7_0_pos 0
  6939. -#define reg_dummy_7_0_len 8
  6940. -#define reg_dummy_7_0_lsb 0
  6941. -#define xd_p_reg_dummy_15_8 0xA609
  6942. -#define reg_dummy_15_8_pos 0
  6943. -#define reg_dummy_15_8_len 8
  6944. -#define reg_dummy_15_8_lsb 8
  6945. -#define xd_p_reg_dummy_23_16 0xA60A
  6946. -#define reg_dummy_23_16_pos 0
  6947. -#define reg_dummy_23_16_len 8
  6948. -#define reg_dummy_23_16_lsb 16
  6949. -#define xd_p_reg_dummy_31_24 0xA60B
  6950. -#define reg_dummy_31_24_pos 0
  6951. -#define reg_dummy_31_24_len 8
  6952. -#define reg_dummy_31_24_lsb 24
  6953. -#define xd_p_reg_dummy_39_32 0xA60C
  6954. -#define reg_dummy_39_32_pos 0
  6955. -#define reg_dummy_39_32_len 8
  6956. -#define reg_dummy_39_32_lsb 32
  6957. -#define xd_p_reg_dummy_47_40 0xA60D
  6958. -#define reg_dummy_47_40_pos 0
  6959. -#define reg_dummy_47_40_len 8
  6960. -#define reg_dummy_47_40_lsb 40
  6961. -#define xd_p_reg_dummy_55_48 0xA60E
  6962. -#define reg_dummy_55_48_pos 0
  6963. -#define reg_dummy_55_48_len 8
  6964. -#define reg_dummy_55_48_lsb 48
  6965. -#define xd_p_reg_dummy_63_56 0xA60F
  6966. -#define reg_dummy_63_56_pos 0
  6967. -#define reg_dummy_63_56_len 8
  6968. -#define reg_dummy_63_56_lsb 56
  6969. -#define xd_p_reg_dummy_71_64 0xA610
  6970. -#define reg_dummy_71_64_pos 0
  6971. -#define reg_dummy_71_64_len 8
  6972. -#define reg_dummy_71_64_lsb 64
  6973. -#define xd_p_reg_dummy_79_72 0xA611
  6974. -#define reg_dummy_79_72_pos 0
  6975. -#define reg_dummy_79_72_len 8
  6976. -#define reg_dummy_79_72_lsb 72
  6977. -#define xd_p_reg_dummy_87_80 0xA612
  6978. -#define reg_dummy_87_80_pos 0
  6979. -#define reg_dummy_87_80_len 8
  6980. -#define reg_dummy_87_80_lsb 80
  6981. -#define xd_p_reg_dummy_95_88 0xA613
  6982. -#define reg_dummy_95_88_pos 0
  6983. -#define reg_dummy_95_88_len 8
  6984. -#define reg_dummy_95_88_lsb 88
  6985. -#define xd_p_reg_dummy_103_96 0xA614
  6986. -#define reg_dummy_103_96_pos 0
  6987. -#define reg_dummy_103_96_len 8
  6988. -#define reg_dummy_103_96_lsb 96
  6989. -
  6990. -#define xd_p_reg_unplug_flag 0xA615
  6991. -#define reg_unplug_flag_pos 0
  6992. -#define reg_unplug_flag_len 1
  6993. -#define reg_unplug_flag_lsb 104
  6994. -
  6995. -#define xd_p_reg_api_dca_stes_request 0xA615
  6996. -#define reg_api_dca_stes_request_pos 1
  6997. -#define reg_api_dca_stes_request_len 1
  6998. -#define reg_api_dca_stes_request_lsb 0
  6999. -
  7000. -#define xd_p_reg_back_to_dca_flag 0xA615
  7001. -#define reg_back_to_dca_flag_pos 2
  7002. -#define reg_back_to_dca_flag_len 1
  7003. -#define reg_back_to_dca_flag_lsb 106
  7004. -
  7005. -#define xd_p_reg_api_retrain_request 0xA615
  7006. -#define reg_api_retrain_request_pos 3
  7007. -#define reg_api_retrain_request_len 1
  7008. -#define reg_api_retrain_request_lsb 0
  7009. -
  7010. -#define xd_p_reg_Dyn_Top_Try_flag 0xA615
  7011. -#define reg_Dyn_Top_Try_flag_pos 3
  7012. -#define reg_Dyn_Top_Try_flag_len 1
  7013. -#define reg_Dyn_Top_Try_flag_lsb 107
  7014. -
  7015. -#define xd_p_reg_API_retrain_freeze_flag 0xA615
  7016. -#define reg_API_retrain_freeze_flag_pos 4
  7017. -#define reg_API_retrain_freeze_flag_len 1
  7018. -#define reg_API_retrain_freeze_flag_lsb 108
  7019. -
  7020. -#define xd_p_reg_dummy_111_104 0xA615
  7021. -#define reg_dummy_111_104_pos 0
  7022. -#define reg_dummy_111_104_len 8
  7023. -#define reg_dummy_111_104_lsb 104
  7024. -#define xd_p_reg_dummy_119_112 0xA616
  7025. -#define reg_dummy_119_112_pos 0
  7026. -#define reg_dummy_119_112_len 8
  7027. -#define reg_dummy_119_112_lsb 112
  7028. -#define xd_p_reg_dummy_127_120 0xA617
  7029. -#define reg_dummy_127_120_pos 0
  7030. -#define reg_dummy_127_120_len 8
  7031. -#define reg_dummy_127_120_lsb 120
  7032. -#define xd_p_reg_dummy_135_128 0xA618
  7033. -#define reg_dummy_135_128_pos 0
  7034. -#define reg_dummy_135_128_len 8
  7035. -#define reg_dummy_135_128_lsb 128
  7036. -
  7037. -#define xd_p_reg_dummy_143_136 0xA619
  7038. -#define reg_dummy_143_136_pos 0
  7039. -#define reg_dummy_143_136_len 8
  7040. -#define reg_dummy_143_136_lsb 136
  7041. -
  7042. -#define xd_p_reg_CCIR_dis 0xA619
  7043. -#define reg_CCIR_dis_pos 0
  7044. -#define reg_CCIR_dis_len 1
  7045. -#define reg_CCIR_dis_lsb 0
  7046. -
  7047. -#define xd_p_reg_dummy_151_144 0xA61A
  7048. -#define reg_dummy_151_144_pos 0
  7049. -#define reg_dummy_151_144_len 8
  7050. -#define reg_dummy_151_144_lsb 144
  7051. -
  7052. -#define xd_p_reg_dummy_159_152 0xA61B
  7053. -#define reg_dummy_159_152_pos 0
  7054. -#define reg_dummy_159_152_len 8
  7055. -#define reg_dummy_159_152_lsb 152
  7056. -
  7057. -#define xd_p_reg_dummy_167_160 0xA61C
  7058. -#define reg_dummy_167_160_pos 0
  7059. -#define reg_dummy_167_160_len 8
  7060. -#define reg_dummy_167_160_lsb 160
  7061. -
  7062. -#define xd_p_reg_dummy_175_168 0xA61D
  7063. -#define reg_dummy_175_168_pos 0
  7064. -#define reg_dummy_175_168_len 8
  7065. -#define reg_dummy_175_168_lsb 168
  7066. -
  7067. -#define xd_p_reg_dummy_183_176 0xA61E
  7068. -#define reg_dummy_183_176_pos 0
  7069. -#define reg_dummy_183_176_len 8
  7070. -#define reg_dummy_183_176_lsb 176
  7071. -
  7072. -#define xd_p_reg_ofsm_read_rbc_en 0xA61E
  7073. -#define reg_ofsm_read_rbc_en_pos 2
  7074. -#define reg_ofsm_read_rbc_en_len 1
  7075. -#define reg_ofsm_read_rbc_en_lsb 0
  7076. -
  7077. -#define xd_p_reg_ce_filter_selection_dis 0xA61E
  7078. -#define reg_ce_filter_selection_dis_pos 1
  7079. -#define reg_ce_filter_selection_dis_len 1
  7080. -#define reg_ce_filter_selection_dis_lsb 0
  7081. -
  7082. -#define xd_p_reg_OFSM_version_control_7_0 0xA611
  7083. -#define reg_OFSM_version_control_7_0_pos 0
  7084. -#define reg_OFSM_version_control_7_0_len 8
  7085. -#define reg_OFSM_version_control_7_0_lsb 0
  7086. -
  7087. -#define xd_p_reg_OFSM_version_control_15_8 0xA61F
  7088. -#define reg_OFSM_version_control_15_8_pos 0
  7089. -#define reg_OFSM_version_control_15_8_len 8
  7090. -#define reg_OFSM_version_control_15_8_lsb 0
  7091. -
  7092. -#define xd_p_reg_OFSM_version_control_23_16 0xA620
  7093. -#define reg_OFSM_version_control_23_16_pos 0
  7094. -#define reg_OFSM_version_control_23_16_len 8
  7095. -#define reg_OFSM_version_control_23_16_lsb 0
  7096. -
  7097. -#define xd_p_reg_dummy_191_184 0xA61F
  7098. -#define reg_dummy_191_184_pos 0
  7099. -#define reg_dummy_191_184_len 8
  7100. -#define reg_dummy_191_184_lsb 184
  7101. -
  7102. -#define xd_p_reg_dummy_199_192 0xA620
  7103. -#define reg_dummy_199_192_pos 0
  7104. -#define reg_dummy_199_192_len 8
  7105. -#define reg_dummy_199_192_lsb 192
  7106. -
  7107. -#define xd_p_reg_ce_en 0xABC0
  7108. -#define reg_ce_en_pos 0
  7109. -#define reg_ce_en_len 1
  7110. -#define reg_ce_en_lsb 0
  7111. -#define xd_p_reg_ce_fctrl_en 0xABC0
  7112. -#define reg_ce_fctrl_en_pos 1
  7113. -#define reg_ce_fctrl_en_len 1
  7114. -#define reg_ce_fctrl_en_lsb 0
  7115. -#define xd_p_reg_ce_fste_tdi 0xABC0
  7116. -#define reg_ce_fste_tdi_pos 2
  7117. -#define reg_ce_fste_tdi_len 1
  7118. -#define reg_ce_fste_tdi_lsb 0
  7119. -#define xd_p_reg_ce_dynamic 0xABC0
  7120. -#define reg_ce_dynamic_pos 3
  7121. -#define reg_ce_dynamic_len 1
  7122. -#define reg_ce_dynamic_lsb 0
  7123. -#define xd_p_reg_ce_conf 0xABC0
  7124. -#define reg_ce_conf_pos 4
  7125. -#define reg_ce_conf_len 2
  7126. -#define reg_ce_conf_lsb 0
  7127. -#define xd_p_reg_ce_dyn12 0xABC0
  7128. -#define reg_ce_dyn12_pos 6
  7129. -#define reg_ce_dyn12_len 1
  7130. -#define reg_ce_dyn12_lsb 0
  7131. -#define xd_p_reg_ce_derot_en 0xABC0
  7132. -#define reg_ce_derot_en_pos 7
  7133. -#define reg_ce_derot_en_len 1
  7134. -#define reg_ce_derot_en_lsb 0
  7135. -#define xd_p_reg_ce_dynamic_th_7_0 0xABC1
  7136. -#define reg_ce_dynamic_th_7_0_pos 0
  7137. -#define reg_ce_dynamic_th_7_0_len 8
  7138. -#define reg_ce_dynamic_th_7_0_lsb 0
  7139. -#define xd_p_reg_ce_dynamic_th_15_8 0xABC2
  7140. -#define reg_ce_dynamic_th_15_8_pos 0
  7141. -#define reg_ce_dynamic_th_15_8_len 8
  7142. -#define reg_ce_dynamic_th_15_8_lsb 8
  7143. -#define xd_p_reg_ce_s1 0xABC3
  7144. -#define reg_ce_s1_pos 0
  7145. -#define reg_ce_s1_len 5
  7146. -#define reg_ce_s1_lsb 0
  7147. -#define xd_p_reg_ce_var_forced_value 0xABC3
  7148. -#define reg_ce_var_forced_value_pos 5
  7149. -#define reg_ce_var_forced_value_len 3
  7150. -#define reg_ce_var_forced_value_lsb 0
  7151. -#define xd_p_reg_ce_data_im_7_0 0xABC4
  7152. -#define reg_ce_data_im_7_0_pos 0
  7153. -#define reg_ce_data_im_7_0_len 8
  7154. -#define reg_ce_data_im_7_0_lsb 0
  7155. -#define xd_p_reg_ce_data_im_8 0xABC5
  7156. -#define reg_ce_data_im_8_pos 0
  7157. -#define reg_ce_data_im_8_len 1
  7158. -#define reg_ce_data_im_8_lsb 0
  7159. -#define xd_p_reg_ce_data_re_6_0 0xABC5
  7160. -#define reg_ce_data_re_6_0_pos 1
  7161. -#define reg_ce_data_re_6_0_len 7
  7162. -#define reg_ce_data_re_6_0_lsb 0
  7163. -#define xd_p_reg_ce_data_re_8_7 0xABC6
  7164. -#define reg_ce_data_re_8_7_pos 0
  7165. -#define reg_ce_data_re_8_7_len 2
  7166. -#define reg_ce_data_re_8_7_lsb 7
  7167. -#define xd_p_reg_ce_tone_5_0 0xABC6
  7168. -#define reg_ce_tone_5_0_pos 2
  7169. -#define reg_ce_tone_5_0_len 6
  7170. -#define reg_ce_tone_5_0_lsb 0
  7171. -#define xd_p_reg_ce_tone_12_6 0xABC7
  7172. -#define reg_ce_tone_12_6_pos 0
  7173. -#define reg_ce_tone_12_6_len 7
  7174. -#define reg_ce_tone_12_6_lsb 6
  7175. -#define xd_p_reg_ce_centroid_drift_th 0xABC8
  7176. -#define reg_ce_centroid_drift_th_pos 0
  7177. -#define reg_ce_centroid_drift_th_len 8
  7178. -#define reg_ce_centroid_drift_th_lsb 0
  7179. -#define xd_p_reg_ce_centroid_count_max 0xABC9
  7180. -#define reg_ce_centroid_count_max_pos 0
  7181. -#define reg_ce_centroid_count_max_len 4
  7182. -#define reg_ce_centroid_count_max_lsb 0
  7183. -#define xd_p_reg_ce_centroid_bias_inc_7_0 0xABCA
  7184. -#define reg_ce_centroid_bias_inc_7_0_pos 0
  7185. -#define reg_ce_centroid_bias_inc_7_0_len 8
  7186. -#define reg_ce_centroid_bias_inc_7_0_lsb 0
  7187. -#define xd_p_reg_ce_centroid_bias_inc_8 0xABCB
  7188. -#define reg_ce_centroid_bias_inc_8_pos 0
  7189. -#define reg_ce_centroid_bias_inc_8_len 1
  7190. -#define reg_ce_centroid_bias_inc_8_lsb 0
  7191. -#define xd_p_reg_ce_var_th0_7_0 0xABCC
  7192. -#define reg_ce_var_th0_7_0_pos 0
  7193. -#define reg_ce_var_th0_7_0_len 8
  7194. -#define reg_ce_var_th0_7_0_lsb 0
  7195. -#define xd_p_reg_ce_var_th0_15_8 0xABCD
  7196. -#define reg_ce_var_th0_15_8_pos 0
  7197. -#define reg_ce_var_th0_15_8_len 8
  7198. -#define reg_ce_var_th0_15_8_lsb 8
  7199. -#define xd_p_reg_ce_var_th1_7_0 0xABCE
  7200. -#define reg_ce_var_th1_7_0_pos 0
  7201. -#define reg_ce_var_th1_7_0_len 8
  7202. -#define reg_ce_var_th1_7_0_lsb 0
  7203. -#define xd_p_reg_ce_var_th1_15_8 0xABCF
  7204. -#define reg_ce_var_th1_15_8_pos 0
  7205. -#define reg_ce_var_th1_15_8_len 8
  7206. -#define reg_ce_var_th1_15_8_lsb 8
  7207. -#define xd_p_reg_ce_var_th2_7_0 0xABD0
  7208. -#define reg_ce_var_th2_7_0_pos 0
  7209. -#define reg_ce_var_th2_7_0_len 8
  7210. -#define reg_ce_var_th2_7_0_lsb 0
  7211. -#define xd_p_reg_ce_var_th2_15_8 0xABD1
  7212. -#define reg_ce_var_th2_15_8_pos 0
  7213. -#define reg_ce_var_th2_15_8_len 8
  7214. -#define reg_ce_var_th2_15_8_lsb 8
  7215. -#define xd_p_reg_ce_var_th3_7_0 0xABD2
  7216. -#define reg_ce_var_th3_7_0_pos 0
  7217. -#define reg_ce_var_th3_7_0_len 8
  7218. -#define reg_ce_var_th3_7_0_lsb 0
  7219. -#define xd_p_reg_ce_var_th3_15_8 0xABD3
  7220. -#define reg_ce_var_th3_15_8_pos 0
  7221. -#define reg_ce_var_th3_15_8_len 8
  7222. -#define reg_ce_var_th3_15_8_lsb 8
  7223. -#define xd_p_reg_ce_var_th4_7_0 0xABD4
  7224. -#define reg_ce_var_th4_7_0_pos 0
  7225. -#define reg_ce_var_th4_7_0_len 8
  7226. -#define reg_ce_var_th4_7_0_lsb 0
  7227. -#define xd_p_reg_ce_var_th4_15_8 0xABD5
  7228. -#define reg_ce_var_th4_15_8_pos 0
  7229. -#define reg_ce_var_th4_15_8_len 8
  7230. -#define reg_ce_var_th4_15_8_lsb 8
  7231. -#define xd_p_reg_ce_var_th5_7_0 0xABD6
  7232. -#define reg_ce_var_th5_7_0_pos 0
  7233. -#define reg_ce_var_th5_7_0_len 8
  7234. -#define reg_ce_var_th5_7_0_lsb 0
  7235. -#define xd_p_reg_ce_var_th5_15_8 0xABD7
  7236. -#define reg_ce_var_th5_15_8_pos 0
  7237. -#define reg_ce_var_th5_15_8_len 8
  7238. -#define reg_ce_var_th5_15_8_lsb 8
  7239. -#define xd_p_reg_ce_var_th6_7_0 0xABD8
  7240. -#define reg_ce_var_th6_7_0_pos 0
  7241. -#define reg_ce_var_th6_7_0_len 8
  7242. -#define reg_ce_var_th6_7_0_lsb 0
  7243. -#define xd_p_reg_ce_var_th6_15_8 0xABD9
  7244. -#define reg_ce_var_th6_15_8_pos 0
  7245. -#define reg_ce_var_th6_15_8_len 8
  7246. -#define reg_ce_var_th6_15_8_lsb 8
  7247. -#define xd_p_reg_ce_fctrl_reset 0xABDA
  7248. -#define reg_ce_fctrl_reset_pos 0
  7249. -#define reg_ce_fctrl_reset_len 1
  7250. -#define reg_ce_fctrl_reset_lsb 0
  7251. -#define xd_p_reg_ce_cent_auto_clr_en 0xABDA
  7252. -#define reg_ce_cent_auto_clr_en_pos 1
  7253. -#define reg_ce_cent_auto_clr_en_len 1
  7254. -#define reg_ce_cent_auto_clr_en_lsb 0
  7255. -#define xd_p_reg_ce_fctrl_auto_reset_en 0xABDA
  7256. -#define reg_ce_fctrl_auto_reset_en_pos 2
  7257. -#define reg_ce_fctrl_auto_reset_en_len 1
  7258. -#define reg_ce_fctrl_auto_reset_en_lsb 0
  7259. -#define xd_p_reg_ce_var_forced_en 0xABDA
  7260. -#define reg_ce_var_forced_en_pos 3
  7261. -#define reg_ce_var_forced_en_len 1
  7262. -#define reg_ce_var_forced_en_lsb 0
  7263. -#define xd_p_reg_ce_cent_forced_en 0xABDA
  7264. -#define reg_ce_cent_forced_en_pos 4
  7265. -#define reg_ce_cent_forced_en_len 1
  7266. -#define reg_ce_cent_forced_en_lsb 0
  7267. -#define xd_p_reg_ce_var_max 0xABDA
  7268. -#define reg_ce_var_max_pos 5
  7269. -#define reg_ce_var_max_len 3
  7270. -#define reg_ce_var_max_lsb 0
  7271. -#define xd_p_reg_ce_cent_forced_value_7_0 0xABDB
  7272. -#define reg_ce_cent_forced_value_7_0_pos 0
  7273. -#define reg_ce_cent_forced_value_7_0_len 8
  7274. -#define reg_ce_cent_forced_value_7_0_lsb 0
  7275. -#define xd_p_reg_ce_cent_forced_value_11_8 0xABDC
  7276. -#define reg_ce_cent_forced_value_11_8_pos 0
  7277. -#define reg_ce_cent_forced_value_11_8_len 4
  7278. -#define reg_ce_cent_forced_value_11_8_lsb 8
  7279. -#define xd_p_reg_ce_fctrl_rd 0xABDD
  7280. -#define reg_ce_fctrl_rd_pos 0
  7281. -#define reg_ce_fctrl_rd_len 1
  7282. -#define reg_ce_fctrl_rd_lsb 0
  7283. -#define xd_p_reg_ce_centroid_max_6_0 0xABDD
  7284. -#define reg_ce_centroid_max_6_0_pos 1
  7285. -#define reg_ce_centroid_max_6_0_len 7
  7286. -#define reg_ce_centroid_max_6_0_lsb 0
  7287. -#define xd_p_reg_ce_centroid_max_11_7 0xABDE
  7288. -#define reg_ce_centroid_max_11_7_pos 0
  7289. -#define reg_ce_centroid_max_11_7_len 5
  7290. -#define reg_ce_centroid_max_11_7_lsb 7
  7291. -#define xd_p_reg_ce_var 0xABDF
  7292. -#define reg_ce_var_pos 0
  7293. -#define reg_ce_var_len 3
  7294. -#define reg_ce_var_lsb 0
  7295. -#define xd_p_reg_ce_fctrl_rdy 0xABDF
  7296. -#define reg_ce_fctrl_rdy_pos 3
  7297. -#define reg_ce_fctrl_rdy_len 1
  7298. -#define reg_ce_fctrl_rdy_lsb 0
  7299. -#define xd_p_reg_ce_centroid_out_3_0 0xABDF
  7300. -#define reg_ce_centroid_out_3_0_pos 4
  7301. -#define reg_ce_centroid_out_3_0_len 4
  7302. -#define reg_ce_centroid_out_3_0_lsb 0
  7303. -#define xd_p_reg_ce_centroid_out_11_4 0xABE0
  7304. -#define reg_ce_centroid_out_11_4_pos 0
  7305. -#define reg_ce_centroid_out_11_4_len 8
  7306. -#define reg_ce_centroid_out_11_4_lsb 4
  7307. -#define xd_p_reg_ce_bias_7_0 0xABE1
  7308. -#define reg_ce_bias_7_0_pos 0
  7309. -#define reg_ce_bias_7_0_len 8
  7310. -#define reg_ce_bias_7_0_lsb 0
  7311. -#define xd_p_reg_ce_bias_11_8 0xABE2
  7312. -#define reg_ce_bias_11_8_pos 0
  7313. -#define reg_ce_bias_11_8_len 4
  7314. -#define reg_ce_bias_11_8_lsb 8
  7315. -#define xd_p_reg_ce_m1_3_0 0xABE2
  7316. -#define reg_ce_m1_3_0_pos 4
  7317. -#define reg_ce_m1_3_0_len 4
  7318. -#define reg_ce_m1_3_0_lsb 0
  7319. -#define xd_p_reg_ce_m1_11_4 0xABE3
  7320. -#define reg_ce_m1_11_4_pos 0
  7321. -#define reg_ce_m1_11_4_len 8
  7322. -#define reg_ce_m1_11_4_lsb 4
  7323. -#define xd_p_reg_ce_rh0_7_0 0xABE4
  7324. -#define reg_ce_rh0_7_0_pos 0
  7325. -#define reg_ce_rh0_7_0_len 8
  7326. -#define reg_ce_rh0_7_0_lsb 0
  7327. -#define xd_p_reg_ce_rh0_15_8 0xABE5
  7328. -#define reg_ce_rh0_15_8_pos 0
  7329. -#define reg_ce_rh0_15_8_len 8
  7330. -#define reg_ce_rh0_15_8_lsb 8
  7331. -#define xd_p_reg_ce_rh0_23_16 0xABE6
  7332. -#define reg_ce_rh0_23_16_pos 0
  7333. -#define reg_ce_rh0_23_16_len 8
  7334. -#define reg_ce_rh0_23_16_lsb 16
  7335. -#define xd_p_reg_ce_rh0_31_24 0xABE7
  7336. -#define reg_ce_rh0_31_24_pos 0
  7337. -#define reg_ce_rh0_31_24_len 8
  7338. -#define reg_ce_rh0_31_24_lsb 24
  7339. -#define xd_p_reg_ce_rh3_real_7_0 0xABE8
  7340. -#define reg_ce_rh3_real_7_0_pos 0
  7341. -#define reg_ce_rh3_real_7_0_len 8
  7342. -#define reg_ce_rh3_real_7_0_lsb 0
  7343. -#define xd_p_reg_ce_rh3_real_15_8 0xABE9
  7344. -#define reg_ce_rh3_real_15_8_pos 0
  7345. -#define reg_ce_rh3_real_15_8_len 8
  7346. -#define reg_ce_rh3_real_15_8_lsb 8
  7347. -#define xd_p_reg_ce_rh3_real_23_16 0xABEA
  7348. -#define reg_ce_rh3_real_23_16_pos 0
  7349. -#define reg_ce_rh3_real_23_16_len 8
  7350. -#define reg_ce_rh3_real_23_16_lsb 16
  7351. -#define xd_p_reg_ce_rh3_real_31_24 0xABEB
  7352. -#define reg_ce_rh3_real_31_24_pos 0
  7353. -#define reg_ce_rh3_real_31_24_len 8
  7354. -#define reg_ce_rh3_real_31_24_lsb 24
  7355. -#define xd_p_reg_ce_rh3_imag_7_0 0xABEC
  7356. -#define reg_ce_rh3_imag_7_0_pos 0
  7357. -#define reg_ce_rh3_imag_7_0_len 8
  7358. -#define reg_ce_rh3_imag_7_0_lsb 0
  7359. -#define xd_p_reg_ce_rh3_imag_15_8 0xABED
  7360. -#define reg_ce_rh3_imag_15_8_pos 0
  7361. -#define reg_ce_rh3_imag_15_8_len 8
  7362. -#define reg_ce_rh3_imag_15_8_lsb 8
  7363. -#define xd_p_reg_ce_rh3_imag_23_16 0xABEE
  7364. -#define reg_ce_rh3_imag_23_16_pos 0
  7365. -#define reg_ce_rh3_imag_23_16_len 8
  7366. -#define reg_ce_rh3_imag_23_16_lsb 16
  7367. -#define xd_p_reg_ce_rh3_imag_31_24 0xABEF
  7368. -#define reg_ce_rh3_imag_31_24_pos 0
  7369. -#define reg_ce_rh3_imag_31_24_len 8
  7370. -#define reg_ce_rh3_imag_31_24_lsb 24
  7371. -#define xd_p_reg_feq_fix_eh2_7_0 0xABF0
  7372. -#define reg_feq_fix_eh2_7_0_pos 0
  7373. -#define reg_feq_fix_eh2_7_0_len 8
  7374. -#define reg_feq_fix_eh2_7_0_lsb 0
  7375. -#define xd_p_reg_feq_fix_eh2_15_8 0xABF1
  7376. -#define reg_feq_fix_eh2_15_8_pos 0
  7377. -#define reg_feq_fix_eh2_15_8_len 8
  7378. -#define reg_feq_fix_eh2_15_8_lsb 8
  7379. -#define xd_p_reg_feq_fix_eh2_23_16 0xABF2
  7380. -#define reg_feq_fix_eh2_23_16_pos 0
  7381. -#define reg_feq_fix_eh2_23_16_len 8
  7382. -#define reg_feq_fix_eh2_23_16_lsb 16
  7383. -#define xd_p_reg_feq_fix_eh2_31_24 0xABF3
  7384. -#define reg_feq_fix_eh2_31_24_pos 0
  7385. -#define reg_feq_fix_eh2_31_24_len 8
  7386. -#define reg_feq_fix_eh2_31_24_lsb 24
  7387. -#define xd_p_reg_ce_m2_central_7_0 0xABF4
  7388. -#define reg_ce_m2_central_7_0_pos 0
  7389. -#define reg_ce_m2_central_7_0_len 8
  7390. -#define reg_ce_m2_central_7_0_lsb 0
  7391. -#define xd_p_reg_ce_m2_central_15_8 0xABF5
  7392. -#define reg_ce_m2_central_15_8_pos 0
  7393. -#define reg_ce_m2_central_15_8_len 8
  7394. -#define reg_ce_m2_central_15_8_lsb 8
  7395. -#define xd_p_reg_ce_fftshift 0xABF6
  7396. -#define reg_ce_fftshift_pos 0
  7397. -#define reg_ce_fftshift_len 4
  7398. -#define reg_ce_fftshift_lsb 0
  7399. -#define xd_p_reg_ce_fftshift1 0xABF6
  7400. -#define reg_ce_fftshift1_pos 4
  7401. -#define reg_ce_fftshift1_len 4
  7402. -#define reg_ce_fftshift1_lsb 0
  7403. -#define xd_p_reg_ce_fftshift2 0xABF7
  7404. -#define reg_ce_fftshift2_pos 0
  7405. -#define reg_ce_fftshift2_len 4
  7406. -#define reg_ce_fftshift2_lsb 0
  7407. -#define xd_p_reg_ce_top_mobile 0xABF7
  7408. -#define reg_ce_top_mobile_pos 4
  7409. -#define reg_ce_top_mobile_len 1
  7410. -#define reg_ce_top_mobile_lsb 0
  7411. -#define xd_p_reg_strong_sginal_detected 0xA2BC
  7412. -#define reg_strong_sginal_detected_pos 2
  7413. -#define reg_strong_sginal_detected_len 1
  7414. -#define reg_strong_sginal_detected_lsb 0
  7415. -
  7416. -#define XD_MP2IF_BASE 0xB000
  7417. -#define XD_MP2IF_CSR (0x00 + XD_MP2IF_BASE)
  7418. -#define XD_MP2IF_DMX_CTRL (0x03 + XD_MP2IF_BASE)
  7419. -#define XD_MP2IF_PID_IDX (0x04 + XD_MP2IF_BASE)
  7420. -#define XD_MP2IF_PID_DATA_L (0x05 + XD_MP2IF_BASE)
  7421. -#define XD_MP2IF_PID_DATA_H (0x06 + XD_MP2IF_BASE)
  7422. -#define XD_MP2IF_MISC (0x07 + XD_MP2IF_BASE)
  7423. -
  7424. -extern struct dvb_frontend *af9005_fe_attach(struct dvb_usb_device *d);
  7425. -extern int af9005_read_ofdm_register(struct dvb_usb_device *d, u16 reg,
  7426. - u8 * value);
  7427. -extern int af9005_read_ofdm_registers(struct dvb_usb_device *d, u16 reg,
  7428. - u8 * values, int len);
  7429. -extern int af9005_write_ofdm_register(struct dvb_usb_device *d, u16 reg,
  7430. - u8 value);
  7431. -extern int af9005_write_ofdm_registers(struct dvb_usb_device *d, u16 reg,
  7432. - u8 * values, int len);
  7433. -extern int af9005_read_tuner_registers(struct dvb_usb_device *d, u16 reg,
  7434. - u8 addr, u8 * values, int len);
  7435. -extern int af9005_write_tuner_registers(struct dvb_usb_device *d, u16 reg,
  7436. - u8 * values, int len);
  7437. -extern int af9005_read_register_bits(struct dvb_usb_device *d, u16 reg,
  7438. - u8 pos, u8 len, u8 * value);
  7439. -extern int af9005_write_register_bits(struct dvb_usb_device *d, u16 reg,
  7440. - u8 pos, u8 len, u8 value);
  7441. -extern int af9005_send_command(struct dvb_usb_device *d, u8 command,
  7442. - u8 * wbuf, int wlen, u8 * rbuf, int rlen);
  7443. -extern int af9005_read_eeprom(struct dvb_usb_device *d, u8 address,
  7444. - u8 * values, int len);
  7445. -extern int af9005_tuner_attach(struct dvb_usb_adapter *adap);
  7446. -extern int af9005_led_control(struct dvb_usb_device *d, int onoff);
  7447. -
  7448. -extern u8 regmask[8];
  7449. -
  7450. -/* remote control decoder */
  7451. -extern int af9005_rc_decode(struct dvb_usb_device *d, u8 * data, int len,
  7452. - u32 * event, int *state);
  7453. -extern struct rc_map_table rc_map_af9005_table[];
  7454. -extern int rc_map_af9005_table_size;
  7455. -
  7456. -#endif
  7457. diff -ruN ../linux-4.14.336/drivers/net/Space.c ./drivers/net/Space.c
  7458. --- linux-4.14.336/../linux-4.14.336/drivers/net/Space.c 2024-01-10 14:45:41.000000000 +0100
  7459. +++ linux-4.14.336/./drivers/net/Space.c 2024-02-14 21:04:46.981594989 +0100
  7460. @@ -150,11 +150,6 @@
  7461. for (num = 0; num < 8; ++num)
  7462. ethif_probe2(num);
  7463. -#ifdef CONFIG_COPS
  7464. - cops_probe(0);
  7465. - cops_probe(1);
  7466. - cops_probe(2);
  7467. -#endif
  7468. #ifdef CONFIG_LTPC
  7469. ltpc_probe();
  7470. #endif
  7471. diff -ruN ../linux-4.14.336/drivers/net/appletalk/Kconfig ./drivers/net/appletalk/Kconfig
  7472. --- linux-4.14.336/../linux-4.14.336/drivers/net/appletalk/Kconfig 2024-01-10 14:45:41.000000000 +0100
  7473. +++ linux-4.14.336/./drivers/net/appletalk/Kconfig 2024-02-14 21:04:25.861596249 +0100
  7474. @@ -49,32 +49,6 @@
  7475. This driver is experimental, which means that it may not work.
  7476. See the file <file:Documentation/networking/ltpc.txt>.
  7477. -config COPS
  7478. - tristate "COPS LocalTalk PC support"
  7479. - depends on DEV_APPLETALK && (ISA || EISA)
  7480. - help
  7481. - This allows you to use COPS AppleTalk cards to connect to LocalTalk
  7482. - networks. You also need version 1.3.3 or later of the netatalk
  7483. - package. This driver is experimental, which means that it may not
  7484. - work. This driver will only work if you choose "AppleTalk DDP"
  7485. - networking support, above.
  7486. - Please read the file <file:Documentation/networking/cops.txt>.
  7487. -
  7488. -config COPS_DAYNA
  7489. - bool "Dayna firmware support"
  7490. - depends on COPS
  7491. - help
  7492. - Support COPS compatible cards with Dayna style firmware (Dayna
  7493. - DL2000/ Daynatalk/PC (half length), COPS LT-95, Farallon PhoneNET PC
  7494. - III, Farallon PhoneNET PC II).
  7495. -
  7496. -config COPS_TANGENT
  7497. - bool "Tangent firmware support"
  7498. - depends on COPS
  7499. - help
  7500. - Support COPS compatible cards with Tangent style firmware (Tangent
  7501. - ATB_II, Novell NL-1000, Daystar Digital LT-200.
  7502. -
  7503. config IPDDP
  7504. tristate "Appletalk-IP driver support"
  7505. depends on DEV_APPLETALK && ATALK
  7506. diff -ruN ../linux-4.14.336/drivers/net/appletalk/Makefile ./drivers/net/appletalk/Makefile
  7507. --- linux-4.14.336/../linux-4.14.336/drivers/net/appletalk/Makefile 2024-01-10 14:45:41.000000000 +0100
  7508. +++ linux-4.14.336/./drivers/net/appletalk/Makefile 2024-02-14 21:04:05.191597490 +0100
  7509. @@ -3,5 +3,4 @@
  7510. #
  7511. obj-$(CONFIG_IPDDP) += ipddp.o
  7512. -obj-$(CONFIG_COPS) += cops.o
  7513. obj-$(CONFIG_LTPC) += ltpc.o
  7514. diff -ruN ../linux-4.14.336/drivers/net/appletalk/cops.c ./drivers/net/appletalk/cops.c
  7515. --- linux-4.14.336/../linux-4.14.336/drivers/net/appletalk/cops.c 2024-01-10 14:45:41.000000000 +0100
  7516. +++ linux-4.14.336/./drivers/net/appletalk/cops.c 1970-01-01 01:00:00.000000000 +0100
  7517. @@ -1,1010 +0,0 @@
  7518. -/* cops.c: LocalTalk driver for Linux.
  7519. - *
  7520. - * Authors:
  7521. - * - Jay Schulist <jschlst@samba.org>
  7522. - *
  7523. - * With more than a little help from;
  7524. - * - Alan Cox <alan@lxorguk.ukuu.org.uk>
  7525. - *
  7526. - * Derived from:
  7527. - * - skeleton.c: A network driver outline for linux.
  7528. - * Written 1993-94 by Donald Becker.
  7529. - * - ltpc.c: A driver for the LocalTalk PC card.
  7530. - * Written by Bradford W. Johnson.
  7531. - *
  7532. - * Copyright 1993 United States Government as represented by the
  7533. - * Director, National Security Agency.
  7534. - *
  7535. - * This software may be used and distributed according to the terms
  7536. - * of the GNU General Public License, incorporated herein by reference.
  7537. - *
  7538. - * Changes:
  7539. - * 19970608 Alan Cox Allowed dual card type support
  7540. - * Can set board type in insmod
  7541. - * Hooks for cops_setup routine
  7542. - * (not yet implemented).
  7543. - * 19971101 Jay Schulist Fixes for multiple lt* devices.
  7544. - * 19980607 Steven Hirsch Fixed the badly broken support
  7545. - * for Tangent type cards. Only
  7546. - * tested on Daystar LT200. Some
  7547. - * cleanup of formatting and program
  7548. - * logic. Added emacs 'local-vars'
  7549. - * setup for Jay's brace style.
  7550. - * 20000211 Alan Cox Cleaned up for softnet
  7551. - */
  7552. -
  7553. -static const char *version =
  7554. -"cops.c:v0.04 6/7/98 Jay Schulist <jschlst@samba.org>\n";
  7555. -/*
  7556. - * Sources:
  7557. - * COPS Localtalk SDK. This provides almost all of the information
  7558. - * needed.
  7559. - */
  7560. -
  7561. -/*
  7562. - * insmod/modprobe configurable stuff.
  7563. - * - IO Port, choose one your card supports or 0 if you dare.
  7564. - * - IRQ, also choose one your card supports or nothing and let
  7565. - * the driver figure it out.
  7566. - */
  7567. -
  7568. -#include <linux/module.h>
  7569. -#include <linux/kernel.h>
  7570. -#include <linux/types.h>
  7571. -#include <linux/fcntl.h>
  7572. -#include <linux/interrupt.h>
  7573. -#include <linux/ptrace.h>
  7574. -#include <linux/ioport.h>
  7575. -#include <linux/in.h>
  7576. -#include <linux/string.h>
  7577. -#include <linux/errno.h>
  7578. -#include <linux/init.h>
  7579. -#include <linux/netdevice.h>
  7580. -#include <linux/etherdevice.h>
  7581. -#include <linux/skbuff.h>
  7582. -#include <linux/if_arp.h>
  7583. -#include <linux/if_ltalk.h>
  7584. -#include <linux/delay.h> /* For udelay() */
  7585. -#include <linux/atalk.h>
  7586. -#include <linux/spinlock.h>
  7587. -#include <linux/bitops.h>
  7588. -#include <linux/jiffies.h>
  7589. -
  7590. -#include <asm/io.h>
  7591. -#include <asm/dma.h>
  7592. -
  7593. -#include "cops.h" /* Our Stuff */
  7594. -#include "cops_ltdrv.h" /* Firmware code for Tangent type cards. */
  7595. -#include "cops_ffdrv.h" /* Firmware code for Dayna type cards. */
  7596. -
  7597. -/*
  7598. - * The name of the card. Is used for messages and in the requests for
  7599. - * io regions, irqs and dma channels
  7600. - */
  7601. -
  7602. -static const char *cardname = "cops";
  7603. -
  7604. -#ifdef CONFIG_COPS_DAYNA
  7605. -static int board_type = DAYNA; /* Module exported */
  7606. -#else
  7607. -static int board_type = TANGENT;
  7608. -#endif
  7609. -
  7610. -static int io = 0x240; /* Default IO for Dayna */
  7611. -static int irq = 5; /* Default IRQ */
  7612. -
  7613. -/*
  7614. - * COPS Autoprobe information.
  7615. - * Right now if port address is right but IRQ is not 5 this will
  7616. - * return a 5 no matter what since we will still get a status response.
  7617. - * Need one more additional check to narrow down after we have gotten
  7618. - * the ioaddr. But since only other possible IRQs is 3 and 4 so no real
  7619. - * hurry on this. I *STRONGLY* recommend using IRQ 5 for your card with
  7620. - * this driver.
  7621. - *
  7622. - * This driver has 2 modes and they are: Dayna mode and Tangent mode.
  7623. - * Each mode corresponds with the type of card. It has been found
  7624. - * that there are 2 main types of cards and all other cards are
  7625. - * the same and just have different names or only have minor differences
  7626. - * such as more IO ports. As this driver is tested it will
  7627. - * become more clear on exactly what cards are supported. The driver
  7628. - * defaults to using Dayna mode. To change the drivers mode, simply
  7629. - * select Dayna or Tangent mode when configuring the kernel.
  7630. - *
  7631. - * This driver should support:
  7632. - * TANGENT driver mode:
  7633. - * Tangent ATB-II, Novell NL-1000, Daystar Digital LT-200,
  7634. - * COPS LT-1
  7635. - * DAYNA driver mode:
  7636. - * Dayna DL2000/DaynaTalk PC (Half Length), COPS LT-95,
  7637. - * Farallon PhoneNET PC III, Farallon PhoneNET PC II
  7638. - * Other cards possibly supported mode unknown though:
  7639. - * Dayna DL2000 (Full length), COPS LT/M (Micro-Channel)
  7640. - *
  7641. - * Cards NOT supported by this driver but supported by the ltpc.c
  7642. - * driver written by Bradford W. Johnson <johns393@maroon.tc.umn.edu>
  7643. - * Farallon PhoneNET PC
  7644. - * Original Apple LocalTalk PC card
  7645. - *
  7646. - * N.B.
  7647. - *
  7648. - * The Daystar Digital LT200 boards do not support interrupt-driven
  7649. - * IO. You must specify 'irq=0xff' as a module parameter to invoke
  7650. - * polled mode. I also believe that the port probing logic is quite
  7651. - * dangerous at best and certainly hopeless for a polled card. Best to
  7652. - * specify both. - Steve H.
  7653. - *
  7654. - */
  7655. -
  7656. -/*
  7657. - * Zero terminated list of IO ports to probe.
  7658. - */
  7659. -
  7660. -static unsigned int ports[] = {
  7661. - 0x240, 0x340, 0x200, 0x210, 0x220, 0x230, 0x260,
  7662. - 0x2A0, 0x300, 0x310, 0x320, 0x330, 0x350, 0x360,
  7663. - 0
  7664. -};
  7665. -
  7666. -/*
  7667. - * Zero terminated list of IRQ ports to probe.
  7668. - */
  7669. -
  7670. -static int cops_irqlist[] = {
  7671. - 5, 4, 3, 0
  7672. -};
  7673. -
  7674. -static struct timer_list cops_timer;
  7675. -
  7676. -/* use 0 for production, 1 for verification, 2 for debug, 3 for verbose debug */
  7677. -#ifndef COPS_DEBUG
  7678. -#define COPS_DEBUG 1
  7679. -#endif
  7680. -static unsigned int cops_debug = COPS_DEBUG;
  7681. -
  7682. -/* The number of low I/O ports used by the card. */
  7683. -#define COPS_IO_EXTENT 8
  7684. -
  7685. -/* Information that needs to be kept for each board. */
  7686. -
  7687. -struct cops_local
  7688. -{
  7689. - int board; /* Holds what board type is. */
  7690. - int nodeid; /* Set to 1 once have nodeid. */
  7691. - unsigned char node_acquire; /* Node ID when acquired. */
  7692. - struct atalk_addr node_addr; /* Full node address */
  7693. - spinlock_t lock; /* RX/TX lock */
  7694. -};
  7695. -
  7696. -/* Index to functions, as function prototypes. */
  7697. -static int cops_probe1 (struct net_device *dev, int ioaddr);
  7698. -static int cops_irq (int ioaddr, int board);
  7699. -
  7700. -static int cops_open (struct net_device *dev);
  7701. -static int cops_jumpstart (struct net_device *dev);
  7702. -static void cops_reset (struct net_device *dev, int sleep);
  7703. -static void cops_load (struct net_device *dev);
  7704. -static int cops_nodeid (struct net_device *dev, int nodeid);
  7705. -
  7706. -static irqreturn_t cops_interrupt (int irq, void *dev_id);
  7707. -static void cops_poll (unsigned long ltdev);
  7708. -static void cops_timeout(struct net_device *dev);
  7709. -static void cops_rx (struct net_device *dev);
  7710. -static netdev_tx_t cops_send_packet (struct sk_buff *skb,
  7711. - struct net_device *dev);
  7712. -static void set_multicast_list (struct net_device *dev);
  7713. -static int cops_ioctl (struct net_device *dev, struct ifreq *rq, int cmd);
  7714. -static int cops_close (struct net_device *dev);
  7715. -
  7716. -static void cleanup_card(struct net_device *dev)
  7717. -{
  7718. - if (dev->irq)
  7719. - free_irq(dev->irq, dev);
  7720. - release_region(dev->base_addr, COPS_IO_EXTENT);
  7721. -}
  7722. -
  7723. -/*
  7724. - * Check for a network adaptor of this type, and return '0' iff one exists.
  7725. - * If dev->base_addr == 0, probe all likely locations.
  7726. - * If dev->base_addr in [1..0x1ff], always return failure.
  7727. - * otherwise go with what we pass in.
  7728. - */
  7729. -struct net_device * __init cops_probe(int unit)
  7730. -{
  7731. - struct net_device *dev;
  7732. - unsigned *port;
  7733. - int base_addr;
  7734. - int err = 0;
  7735. -
  7736. - dev = alloc_ltalkdev(sizeof(struct cops_local));
  7737. - if (!dev)
  7738. - return ERR_PTR(-ENOMEM);
  7739. -
  7740. - if (unit >= 0) {
  7741. - sprintf(dev->name, "lt%d", unit);
  7742. - netdev_boot_setup_check(dev);
  7743. - irq = dev->irq;
  7744. - base_addr = dev->base_addr;
  7745. - } else {
  7746. - base_addr = dev->base_addr = io;
  7747. - }
  7748. -
  7749. - if (base_addr > 0x1ff) { /* Check a single specified location. */
  7750. - err = cops_probe1(dev, base_addr);
  7751. - } else if (base_addr != 0) { /* Don't probe at all. */
  7752. - err = -ENXIO;
  7753. - } else {
  7754. - /* FIXME Does this really work for cards which generate irq?
  7755. - * It's definitely N.G. for polled Tangent. sh
  7756. - * Dayna cards don't autoprobe well at all, but if your card is
  7757. - * at IRQ 5 & IO 0x240 we find it every time. ;) JS
  7758. - */
  7759. - for (port = ports; *port && cops_probe1(dev, *port) < 0; port++)
  7760. - ;
  7761. - if (!*port)
  7762. - err = -ENODEV;
  7763. - }
  7764. - if (err)
  7765. - goto out;
  7766. - err = register_netdev(dev);
  7767. - if (err)
  7768. - goto out1;
  7769. - return dev;
  7770. -out1:
  7771. - cleanup_card(dev);
  7772. -out:
  7773. - free_netdev(dev);
  7774. - return ERR_PTR(err);
  7775. -}
  7776. -
  7777. -static const struct net_device_ops cops_netdev_ops = {
  7778. - .ndo_open = cops_open,
  7779. - .ndo_stop = cops_close,
  7780. - .ndo_start_xmit = cops_send_packet,
  7781. - .ndo_tx_timeout = cops_timeout,
  7782. - .ndo_do_ioctl = cops_ioctl,
  7783. - .ndo_set_rx_mode = set_multicast_list,
  7784. -};
  7785. -
  7786. -/*
  7787. - * This is the real probe routine. Linux has a history of friendly device
  7788. - * probes on the ISA bus. A good device probes avoids doing writes, and
  7789. - * verifies that the correct device exists and functions.
  7790. - */
  7791. -static int __init cops_probe1(struct net_device *dev, int ioaddr)
  7792. -{
  7793. - struct cops_local *lp;
  7794. - static unsigned version_printed;
  7795. - int board = board_type;
  7796. - int retval;
  7797. -
  7798. - if(cops_debug && version_printed++ == 0)
  7799. - printk("%s", version);
  7800. -
  7801. - /* Grab the region so no one else tries to probe our ioports. */
  7802. - if (!request_region(ioaddr, COPS_IO_EXTENT, dev->name))
  7803. - return -EBUSY;
  7804. -
  7805. - /*
  7806. - * Since this board has jumpered interrupts, allocate the interrupt
  7807. - * vector now. There is no point in waiting since no other device
  7808. - * can use the interrupt, and this marks the irq as busy. Jumpered
  7809. - * interrupts are typically not reported by the boards, and we must
  7810. - * used AutoIRQ to find them.
  7811. - */
  7812. - dev->irq = irq;
  7813. - switch (dev->irq)
  7814. - {
  7815. - case 0:
  7816. - /* COPS AutoIRQ routine */
  7817. - dev->irq = cops_irq(ioaddr, board);
  7818. - if (dev->irq)
  7819. - break;
  7820. - /* No IRQ found on this port, fallthrough */
  7821. - case 1:
  7822. - retval = -EINVAL;
  7823. - goto err_out;
  7824. -
  7825. - /* Fixup for users that don't know that IRQ 2 is really
  7826. - * IRQ 9, or don't know which one to set.
  7827. - */
  7828. - case 2:
  7829. - dev->irq = 9;
  7830. - break;
  7831. -
  7832. - /* Polled operation requested. Although irq of zero passed as
  7833. - * a parameter tells the init routines to probe, we'll
  7834. - * overload it to denote polled operation at runtime.
  7835. - */
  7836. - case 0xff:
  7837. - dev->irq = 0;
  7838. - break;
  7839. -
  7840. - default:
  7841. - break;
  7842. - }
  7843. -
  7844. - dev->base_addr = ioaddr;
  7845. -
  7846. - /* Reserve any actual interrupt. */
  7847. - if (dev->irq) {
  7848. - retval = request_irq(dev->irq, cops_interrupt, 0, dev->name, dev);
  7849. - if (retval)
  7850. - goto err_out;
  7851. - }
  7852. -
  7853. - lp = netdev_priv(dev);
  7854. - spin_lock_init(&lp->lock);
  7855. -
  7856. - /* Copy local board variable to lp struct. */
  7857. - lp->board = board;
  7858. -
  7859. - dev->netdev_ops = &cops_netdev_ops;
  7860. - dev->watchdog_timeo = HZ * 2;
  7861. -
  7862. -
  7863. - /* Tell the user where the card is and what mode we're in. */
  7864. - if(board==DAYNA)
  7865. - printk("%s: %s at %#3x, using IRQ %d, in Dayna mode.\n",
  7866. - dev->name, cardname, ioaddr, dev->irq);
  7867. - if(board==TANGENT) {
  7868. - if(dev->irq)
  7869. - printk("%s: %s at %#3x, IRQ %d, in Tangent mode\n",
  7870. - dev->name, cardname, ioaddr, dev->irq);
  7871. - else
  7872. - printk("%s: %s at %#3x, using polled IO, in Tangent mode.\n",
  7873. - dev->name, cardname, ioaddr);
  7874. -
  7875. - }
  7876. - return 0;
  7877. -
  7878. -err_out:
  7879. - release_region(ioaddr, COPS_IO_EXTENT);
  7880. - return retval;
  7881. -}
  7882. -
  7883. -static int __init cops_irq (int ioaddr, int board)
  7884. -{ /*
  7885. - * This does not use the IRQ to determine where the IRQ is. We just
  7886. - * assume that when we get a correct status response that it's the IRQ.
  7887. - * This really just verifies the IO port but since we only have access
  7888. - * to such a small number of IRQs (5, 4, 3) this is not bad.
  7889. - * This will probably not work for more than one card.
  7890. - */
  7891. - int irqaddr=0;
  7892. - int i, x, status;
  7893. -
  7894. - if(board==DAYNA)
  7895. - {
  7896. - outb(0, ioaddr+DAYNA_RESET);
  7897. - inb(ioaddr+DAYNA_RESET);
  7898. - mdelay(333);
  7899. - }
  7900. - if(board==TANGENT)
  7901. - {
  7902. - inb(ioaddr);
  7903. - outb(0, ioaddr);
  7904. - outb(0, ioaddr+TANG_RESET);
  7905. - }
  7906. -
  7907. - for(i=0; cops_irqlist[i] !=0; i++)
  7908. - {
  7909. - irqaddr = cops_irqlist[i];
  7910. - for(x = 0xFFFF; x>0; x --) /* wait for response */
  7911. - {
  7912. - if(board==DAYNA)
  7913. - {
  7914. - status = (inb(ioaddr+DAYNA_CARD_STATUS)&3);
  7915. - if(status == 1)
  7916. - return irqaddr;
  7917. - }
  7918. - if(board==TANGENT)
  7919. - {
  7920. - if((inb(ioaddr+TANG_CARD_STATUS)& TANG_TX_READY) !=0)
  7921. - return irqaddr;
  7922. - }
  7923. - }
  7924. - }
  7925. - return 0; /* no IRQ found */
  7926. -}
  7927. -
  7928. -/*
  7929. - * Open/initialize the board. This is called (in the current kernel)
  7930. - * sometime after booting when the 'ifconfig' program is run.
  7931. - */
  7932. -static int cops_open(struct net_device *dev)
  7933. -{
  7934. - struct cops_local *lp = netdev_priv(dev);
  7935. -
  7936. - if(dev->irq==0)
  7937. - {
  7938. - /*
  7939. - * I don't know if the Dayna-style boards support polled
  7940. - * operation. For now, only allow it for Tangent.
  7941. - */
  7942. - if(lp->board==TANGENT) /* Poll 20 times per second */
  7943. - {
  7944. - init_timer(&cops_timer);
  7945. - cops_timer.function = cops_poll;
  7946. - cops_timer.data = (unsigned long)dev;
  7947. - cops_timer.expires = jiffies + HZ/20;
  7948. - add_timer(&cops_timer);
  7949. - }
  7950. - else
  7951. - {
  7952. - printk(KERN_WARNING "%s: No irq line set\n", dev->name);
  7953. - return -EAGAIN;
  7954. - }
  7955. - }
  7956. -
  7957. - cops_jumpstart(dev); /* Start the card up. */
  7958. -
  7959. - netif_start_queue(dev);
  7960. - return 0;
  7961. -}
  7962. -
  7963. -/*
  7964. - * This allows for a dynamic start/restart of the entire card.
  7965. - */
  7966. -static int cops_jumpstart(struct net_device *dev)
  7967. -{
  7968. - struct cops_local *lp = netdev_priv(dev);
  7969. -
  7970. - /*
  7971. - * Once the card has the firmware loaded and has acquired
  7972. - * the nodeid, if it is reset it will lose it all.
  7973. - */
  7974. - cops_reset(dev,1); /* Need to reset card before load firmware. */
  7975. - cops_load(dev); /* Load the firmware. */
  7976. -
  7977. - /*
  7978. - * If atalkd already gave us a nodeid we will use that
  7979. - * one again, else we wait for atalkd to give us a nodeid
  7980. - * in cops_ioctl. This may cause a problem if someone steals
  7981. - * our nodeid while we are resetting.
  7982. - */
  7983. - if(lp->nodeid == 1)
  7984. - cops_nodeid(dev,lp->node_acquire);
  7985. -
  7986. - return 0;
  7987. -}
  7988. -
  7989. -static void tangent_wait_reset(int ioaddr)
  7990. -{
  7991. - int timeout=0;
  7992. -
  7993. - while(timeout++ < 5 && (inb(ioaddr+TANG_CARD_STATUS)&TANG_TX_READY)==0)
  7994. - mdelay(1); /* Wait 1 second */
  7995. -}
  7996. -
  7997. -/*
  7998. - * Reset the LocalTalk board.
  7999. - */
  8000. -static void cops_reset(struct net_device *dev, int sleep)
  8001. -{
  8002. - struct cops_local *lp = netdev_priv(dev);
  8003. - int ioaddr=dev->base_addr;
  8004. -
  8005. - if(lp->board==TANGENT)
  8006. - {
  8007. - inb(ioaddr); /* Clear request latch. */
  8008. - outb(0,ioaddr); /* Clear the TANG_TX_READY flop. */
  8009. - outb(0, ioaddr+TANG_RESET); /* Reset the adapter. */
  8010. -
  8011. - tangent_wait_reset(ioaddr);
  8012. - outb(0, ioaddr+TANG_CLEAR_INT);
  8013. - }
  8014. - if(lp->board==DAYNA)
  8015. - {
  8016. - outb(0, ioaddr+DAYNA_RESET); /* Assert the reset port */
  8017. - inb(ioaddr+DAYNA_RESET); /* Clear the reset */
  8018. - if (sleep)
  8019. - msleep(333);
  8020. - else
  8021. - mdelay(333);
  8022. - }
  8023. -
  8024. - netif_wake_queue(dev);
  8025. -}
  8026. -
  8027. -static void cops_load (struct net_device *dev)
  8028. -{
  8029. - struct ifreq ifr;
  8030. - struct ltfirmware *ltf= (struct ltfirmware *)&ifr.ifr_ifru;
  8031. - struct cops_local *lp = netdev_priv(dev);
  8032. - int ioaddr=dev->base_addr;
  8033. - int length, i = 0;
  8034. -
  8035. - strcpy(ifr.ifr_name,"lt0");
  8036. -
  8037. - /* Get card's firmware code and do some checks on it. */
  8038. -#ifdef CONFIG_COPS_DAYNA
  8039. - if(lp->board==DAYNA)
  8040. - {
  8041. - ltf->length=sizeof(ffdrv_code);
  8042. - ltf->data=ffdrv_code;
  8043. - }
  8044. - else
  8045. -#endif
  8046. -#ifdef CONFIG_COPS_TANGENT
  8047. - if(lp->board==TANGENT)
  8048. - {
  8049. - ltf->length=sizeof(ltdrv_code);
  8050. - ltf->data=ltdrv_code;
  8051. - }
  8052. - else
  8053. -#endif
  8054. - {
  8055. - printk(KERN_INFO "%s; unsupported board type.\n", dev->name);
  8056. - return;
  8057. - }
  8058. -
  8059. - /* Check to make sure firmware is correct length. */
  8060. - if(lp->board==DAYNA && ltf->length!=5983)
  8061. - {
  8062. - printk(KERN_WARNING "%s: Firmware is not length of FFDRV.BIN.\n", dev->name);
  8063. - return;
  8064. - }
  8065. - if(lp->board==TANGENT && ltf->length!=2501)
  8066. - {
  8067. - printk(KERN_WARNING "%s: Firmware is not length of DRVCODE.BIN.\n", dev->name);
  8068. - return;
  8069. - }
  8070. -
  8071. - if(lp->board==DAYNA)
  8072. - {
  8073. - /*
  8074. - * We must wait for a status response
  8075. - * with the DAYNA board.
  8076. - */
  8077. - while(++i<65536)
  8078. - {
  8079. - if((inb(ioaddr+DAYNA_CARD_STATUS)&3)==1)
  8080. - break;
  8081. - }
  8082. -
  8083. - if(i==65536)
  8084. - return;
  8085. - }
  8086. -
  8087. - /*
  8088. - * Upload the firmware and kick. Byte-by-byte works nicely here.
  8089. - */
  8090. - i=0;
  8091. - length = ltf->length;
  8092. - while(length--)
  8093. - {
  8094. - outb(ltf->data[i], ioaddr);
  8095. - i++;
  8096. - }
  8097. -
  8098. - if(cops_debug > 1)
  8099. - printk("%s: Uploaded firmware - %d bytes of %d bytes.\n",
  8100. - dev->name, i, ltf->length);
  8101. -
  8102. - if(lp->board==DAYNA) /* Tell Dayna to run the firmware code. */
  8103. - outb(1, ioaddr+DAYNA_INT_CARD);
  8104. - else /* Tell Tang to run the firmware code. */
  8105. - inb(ioaddr);
  8106. -
  8107. - if(lp->board==TANGENT)
  8108. - {
  8109. - tangent_wait_reset(ioaddr);
  8110. - inb(ioaddr); /* Clear initial ready signal. */
  8111. - }
  8112. -}
  8113. -
  8114. -/*
  8115. - * Get the LocalTalk Nodeid from the card. We can suggest
  8116. - * any nodeid 1-254. The card will try and get that exact
  8117. - * address else we can specify 0 as the nodeid and the card
  8118. - * will autoprobe for a nodeid.
  8119. - */
  8120. -static int cops_nodeid (struct net_device *dev, int nodeid)
  8121. -{
  8122. - struct cops_local *lp = netdev_priv(dev);
  8123. - int ioaddr = dev->base_addr;
  8124. -
  8125. - if(lp->board == DAYNA)
  8126. - {
  8127. - /* Empty any pending adapter responses. */
  8128. - while((inb(ioaddr+DAYNA_CARD_STATUS)&DAYNA_TX_READY)==0)
  8129. - {
  8130. - outb(0, ioaddr+COPS_CLEAR_INT); /* Clear interrupts. */
  8131. - if((inb(ioaddr+DAYNA_CARD_STATUS)&0x03)==DAYNA_RX_REQUEST)
  8132. - cops_rx(dev); /* Kick any packets waiting. */
  8133. - schedule();
  8134. - }
  8135. -
  8136. - outb(2, ioaddr); /* Output command packet length as 2. */
  8137. - outb(0, ioaddr);
  8138. - outb(LAP_INIT, ioaddr); /* Send LAP_INIT command byte. */
  8139. - outb(nodeid, ioaddr); /* Suggest node address. */
  8140. - }
  8141. -
  8142. - if(lp->board == TANGENT)
  8143. - {
  8144. - /* Empty any pending adapter responses. */
  8145. - while(inb(ioaddr+TANG_CARD_STATUS)&TANG_RX_READY)
  8146. - {
  8147. - outb(0, ioaddr+COPS_CLEAR_INT); /* Clear interrupt. */
  8148. - cops_rx(dev); /* Kick out packets waiting. */
  8149. - schedule();
  8150. - }
  8151. -
  8152. - /* Not sure what Tangent does if nodeid picked is used. */
  8153. - if(nodeid == 0) /* Seed. */
  8154. - nodeid = jiffies&0xFF; /* Get a random try */
  8155. - outb(2, ioaddr); /* Command length LSB */
  8156. - outb(0, ioaddr); /* Command length MSB */
  8157. - outb(LAP_INIT, ioaddr); /* Send LAP_INIT byte */
  8158. - outb(nodeid, ioaddr); /* LAP address hint. */
  8159. - outb(0xFF, ioaddr); /* Int. level to use */
  8160. - }
  8161. -
  8162. - lp->node_acquire=0; /* Set nodeid holder to 0. */
  8163. - while(lp->node_acquire==0) /* Get *True* nodeid finally. */
  8164. - {
  8165. - outb(0, ioaddr+COPS_CLEAR_INT); /* Clear any interrupt. */
  8166. -
  8167. - if(lp->board == DAYNA)
  8168. - {
  8169. - if((inb(ioaddr+DAYNA_CARD_STATUS)&0x03)==DAYNA_RX_REQUEST)
  8170. - cops_rx(dev); /* Grab the nodeid put in lp->node_acquire. */
  8171. - }
  8172. - if(lp->board == TANGENT)
  8173. - {
  8174. - if(inb(ioaddr+TANG_CARD_STATUS)&TANG_RX_READY)
  8175. - cops_rx(dev); /* Grab the nodeid put in lp->node_acquire. */
  8176. - }
  8177. - schedule();
  8178. - }
  8179. -
  8180. - if(cops_debug > 1)
  8181. - printk(KERN_DEBUG "%s: Node ID %d has been acquired.\n",
  8182. - dev->name, lp->node_acquire);
  8183. -
  8184. - lp->nodeid=1; /* Set got nodeid to 1. */
  8185. -
  8186. - return 0;
  8187. -}
  8188. -
  8189. -/*
  8190. - * Poll the Tangent type cards to see if we have work.
  8191. - */
  8192. -
  8193. -static void cops_poll(unsigned long ltdev)
  8194. -{
  8195. - int ioaddr, status;
  8196. - int boguscount = 0;
  8197. -
  8198. - struct net_device *dev = (struct net_device *)ltdev;
  8199. -
  8200. - del_timer(&cops_timer);
  8201. -
  8202. - if(dev == NULL)
  8203. - return; /* We've been downed */
  8204. -
  8205. - ioaddr = dev->base_addr;
  8206. - do {
  8207. - status=inb(ioaddr+TANG_CARD_STATUS);
  8208. - if(status & TANG_RX_READY)
  8209. - cops_rx(dev);
  8210. - if(status & TANG_TX_READY)
  8211. - netif_wake_queue(dev);
  8212. - status = inb(ioaddr+TANG_CARD_STATUS);
  8213. - } while((++boguscount < 20) && (status&(TANG_RX_READY|TANG_TX_READY)));
  8214. -
  8215. - /* poll 20 times per second */
  8216. - cops_timer.expires = jiffies + HZ/20;
  8217. - add_timer(&cops_timer);
  8218. -}
  8219. -
  8220. -/*
  8221. - * The typical workload of the driver:
  8222. - * Handle the network interface interrupts.
  8223. - */
  8224. -static irqreturn_t cops_interrupt(int irq, void *dev_id)
  8225. -{
  8226. - struct net_device *dev = dev_id;
  8227. - struct cops_local *lp;
  8228. - int ioaddr, status;
  8229. - int boguscount = 0;
  8230. -
  8231. - ioaddr = dev->base_addr;
  8232. - lp = netdev_priv(dev);
  8233. -
  8234. - if(lp->board==DAYNA)
  8235. - {
  8236. - do {
  8237. - outb(0, ioaddr + COPS_CLEAR_INT);
  8238. - status=inb(ioaddr+DAYNA_CARD_STATUS);
  8239. - if((status&0x03)==DAYNA_RX_REQUEST)
  8240. - cops_rx(dev);
  8241. - netif_wake_queue(dev);
  8242. - } while(++boguscount < 20);
  8243. - }
  8244. - else
  8245. - {
  8246. - do {
  8247. - status=inb(ioaddr+TANG_CARD_STATUS);
  8248. - if(status & TANG_RX_READY)
  8249. - cops_rx(dev);
  8250. - if(status & TANG_TX_READY)
  8251. - netif_wake_queue(dev);
  8252. - status=inb(ioaddr+TANG_CARD_STATUS);
  8253. - } while((++boguscount < 20) && (status&(TANG_RX_READY|TANG_TX_READY)));
  8254. - }
  8255. -
  8256. - return IRQ_HANDLED;
  8257. -}
  8258. -
  8259. -/*
  8260. - * We have a good packet(s), get it/them out of the buffers.
  8261. - */
  8262. -static void cops_rx(struct net_device *dev)
  8263. -{
  8264. - int pkt_len = 0;
  8265. - int rsp_type = 0;
  8266. - struct sk_buff *skb = NULL;
  8267. - struct cops_local *lp = netdev_priv(dev);
  8268. - int ioaddr = dev->base_addr;
  8269. - int boguscount = 0;
  8270. - unsigned long flags;
  8271. -
  8272. -
  8273. - spin_lock_irqsave(&lp->lock, flags);
  8274. -
  8275. - if(lp->board==DAYNA)
  8276. - {
  8277. - outb(0, ioaddr); /* Send out Zero length. */
  8278. - outb(0, ioaddr);
  8279. - outb(DATA_READ, ioaddr); /* Send read command out. */
  8280. -
  8281. - /* Wait for DMA to turn around. */
  8282. - while(++boguscount<1000000)
  8283. - {
  8284. - barrier();
  8285. - if((inb(ioaddr+DAYNA_CARD_STATUS)&0x03)==DAYNA_RX_READY)
  8286. - break;
  8287. - }
  8288. -
  8289. - if(boguscount==1000000)
  8290. - {
  8291. - printk(KERN_WARNING "%s: DMA timed out.\n",dev->name);
  8292. - spin_unlock_irqrestore(&lp->lock, flags);
  8293. - return;
  8294. - }
  8295. - }
  8296. -
  8297. - /* Get response length. */
  8298. - if(lp->board==DAYNA)
  8299. - pkt_len = inb(ioaddr) & 0xFF;
  8300. - else
  8301. - pkt_len = inb(ioaddr) & 0x00FF;
  8302. - pkt_len |= (inb(ioaddr) << 8);
  8303. - /* Input IO code. */
  8304. - rsp_type=inb(ioaddr);
  8305. -
  8306. - /* Malloc up new buffer. */
  8307. - skb = dev_alloc_skb(pkt_len);
  8308. - if(skb == NULL)
  8309. - {
  8310. - printk(KERN_WARNING "%s: Memory squeeze, dropping packet.\n",
  8311. - dev->name);
  8312. - dev->stats.rx_dropped++;
  8313. - while(pkt_len--) /* Discard packet */
  8314. - inb(ioaddr);
  8315. - spin_unlock_irqrestore(&lp->lock, flags);
  8316. - return;
  8317. - }
  8318. - skb->dev = dev;
  8319. - skb_put(skb, pkt_len);
  8320. - skb->protocol = htons(ETH_P_LOCALTALK);
  8321. -
  8322. - insb(ioaddr, skb->data, pkt_len); /* Eat the Data */
  8323. -
  8324. - if(lp->board==DAYNA)
  8325. - outb(1, ioaddr+DAYNA_INT_CARD); /* Interrupt the card */
  8326. -
  8327. - spin_unlock_irqrestore(&lp->lock, flags); /* Restore interrupts. */
  8328. -
  8329. - /* Check for bad response length */
  8330. - if(pkt_len < 0 || pkt_len > MAX_LLAP_SIZE)
  8331. - {
  8332. - printk(KERN_WARNING "%s: Bad packet length of %d bytes.\n",
  8333. - dev->name, pkt_len);
  8334. - dev->stats.tx_errors++;
  8335. - dev_kfree_skb_any(skb);
  8336. - return;
  8337. - }
  8338. -
  8339. - /* Set nodeid and then get out. */
  8340. - if(rsp_type == LAP_INIT_RSP)
  8341. - { /* Nodeid taken from received packet. */
  8342. - lp->node_acquire = skb->data[0];
  8343. - dev_kfree_skb_any(skb);
  8344. - return;
  8345. - }
  8346. -
  8347. - /* One last check to make sure we have a good packet. */
  8348. - if(rsp_type != LAP_RESPONSE)
  8349. - {
  8350. - printk(KERN_WARNING "%s: Bad packet type %d.\n", dev->name, rsp_type);
  8351. - dev->stats.tx_errors++;
  8352. - dev_kfree_skb_any(skb);
  8353. - return;
  8354. - }
  8355. -
  8356. - skb_reset_mac_header(skb); /* Point to entire packet. */
  8357. - skb_pull(skb,3);
  8358. - skb_reset_transport_header(skb); /* Point to data (Skip header). */
  8359. -
  8360. - /* Update the counters. */
  8361. - dev->stats.rx_packets++;
  8362. - dev->stats.rx_bytes += skb->len;
  8363. -
  8364. - /* Send packet to a higher place. */
  8365. - netif_rx(skb);
  8366. -}
  8367. -
  8368. -static void cops_timeout(struct net_device *dev)
  8369. -{
  8370. - struct cops_local *lp = netdev_priv(dev);
  8371. - int ioaddr = dev->base_addr;
  8372. -
  8373. - dev->stats.tx_errors++;
  8374. - if(lp->board==TANGENT)
  8375. - {
  8376. - if((inb(ioaddr+TANG_CARD_STATUS)&TANG_TX_READY)==0)
  8377. - printk(KERN_WARNING "%s: No TX complete interrupt.\n", dev->name);
  8378. - }
  8379. - printk(KERN_WARNING "%s: Transmit timed out.\n", dev->name);
  8380. - cops_jumpstart(dev); /* Restart the card. */
  8381. - netif_trans_update(dev); /* prevent tx timeout */
  8382. - netif_wake_queue(dev);
  8383. -}
  8384. -
  8385. -
  8386. -/*
  8387. - * Make the card transmit a LocalTalk packet.
  8388. - */
  8389. -
  8390. -static netdev_tx_t cops_send_packet(struct sk_buff *skb,
  8391. - struct net_device *dev)
  8392. -{
  8393. - struct cops_local *lp = netdev_priv(dev);
  8394. - int ioaddr = dev->base_addr;
  8395. - unsigned long flags;
  8396. -
  8397. - /*
  8398. - * Block a timer-based transmit from overlapping.
  8399. - */
  8400. -
  8401. - netif_stop_queue(dev);
  8402. -
  8403. - spin_lock_irqsave(&lp->lock, flags);
  8404. - if(lp->board == DAYNA) /* Wait for adapter transmit buffer. */
  8405. - while((inb(ioaddr+DAYNA_CARD_STATUS)&DAYNA_TX_READY)==0)
  8406. - cpu_relax();
  8407. - if(lp->board == TANGENT) /* Wait for adapter transmit buffer. */
  8408. - while((inb(ioaddr+TANG_CARD_STATUS)&TANG_TX_READY)==0)
  8409. - cpu_relax();
  8410. -
  8411. - /* Output IO length. */
  8412. - outb(skb->len, ioaddr);
  8413. - if(lp->board == DAYNA)
  8414. - outb(skb->len >> 8, ioaddr);
  8415. - else
  8416. - outb((skb->len >> 8)&0x0FF, ioaddr);
  8417. -
  8418. - /* Output IO code. */
  8419. - outb(LAP_WRITE, ioaddr);
  8420. -
  8421. - if(lp->board == DAYNA) /* Check the transmit buffer again. */
  8422. - while((inb(ioaddr+DAYNA_CARD_STATUS)&DAYNA_TX_READY)==0);
  8423. -
  8424. - outsb(ioaddr, skb->data, skb->len); /* Send out the data. */
  8425. -
  8426. - if(lp->board==DAYNA) /* Dayna requires you kick the card */
  8427. - outb(1, ioaddr+DAYNA_INT_CARD);
  8428. -
  8429. - spin_unlock_irqrestore(&lp->lock, flags); /* Restore interrupts. */
  8430. -
  8431. - /* Done sending packet, update counters and cleanup. */
  8432. - dev->stats.tx_packets++;
  8433. - dev->stats.tx_bytes += skb->len;
  8434. - dev_kfree_skb (skb);
  8435. - return NETDEV_TX_OK;
  8436. -}
  8437. -
  8438. -/*
  8439. - * Dummy function to keep the Appletalk layer happy.
  8440. - */
  8441. -
  8442. -static void set_multicast_list(struct net_device *dev)
  8443. -{
  8444. - if(cops_debug >= 3)
  8445. - printk("%s: set_multicast_list executed\n", dev->name);
  8446. -}
  8447. -
  8448. -/*
  8449. - * System ioctls for the COPS LocalTalk card.
  8450. - */
  8451. -
  8452. -static int cops_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
  8453. -{
  8454. - struct cops_local *lp = netdev_priv(dev);
  8455. - struct sockaddr_at *sa = (struct sockaddr_at *)&ifr->ifr_addr;
  8456. - struct atalk_addr *aa = &lp->node_addr;
  8457. -
  8458. - switch(cmd)
  8459. - {
  8460. - case SIOCSIFADDR:
  8461. - /* Get and set the nodeid and network # atalkd wants. */
  8462. - cops_nodeid(dev, sa->sat_addr.s_node);
  8463. - aa->s_net = sa->sat_addr.s_net;
  8464. - aa->s_node = lp->node_acquire;
  8465. -
  8466. - /* Set broardcast address. */
  8467. - dev->broadcast[0] = 0xFF;
  8468. -
  8469. - /* Set hardware address. */
  8470. - dev->dev_addr[0] = aa->s_node;
  8471. - dev->addr_len = 1;
  8472. - return 0;
  8473. -
  8474. - case SIOCGIFADDR:
  8475. - sa->sat_addr.s_net = aa->s_net;
  8476. - sa->sat_addr.s_node = aa->s_node;
  8477. - return 0;
  8478. -
  8479. - default:
  8480. - return -EOPNOTSUPP;
  8481. - }
  8482. -}
  8483. -
  8484. -/*
  8485. - * The inverse routine to cops_open().
  8486. - */
  8487. -
  8488. -static int cops_close(struct net_device *dev)
  8489. -{
  8490. - struct cops_local *lp = netdev_priv(dev);
  8491. -
  8492. - /* If we were running polled, yank the timer.
  8493. - */
  8494. - if(lp->board==TANGENT && dev->irq==0)
  8495. - del_timer(&cops_timer);
  8496. -
  8497. - netif_stop_queue(dev);
  8498. - return 0;
  8499. -}
  8500. -
  8501. -
  8502. -#ifdef MODULE
  8503. -static struct net_device *cops_dev;
  8504. -
  8505. -MODULE_LICENSE("GPL");
  8506. -module_param_hw(io, int, ioport, 0);
  8507. -module_param_hw(irq, int, irq, 0);
  8508. -module_param_hw(board_type, int, other, 0);
  8509. -
  8510. -static int __init cops_module_init(void)
  8511. -{
  8512. - if (io == 0)
  8513. - printk(KERN_WARNING "%s: You shouldn't autoprobe with insmod\n",
  8514. - cardname);
  8515. - cops_dev = cops_probe(-1);
  8516. - return PTR_ERR_OR_ZERO(cops_dev);
  8517. -}
  8518. -
  8519. -static void __exit cops_module_exit(void)
  8520. -{
  8521. - unregister_netdev(cops_dev);
  8522. - cleanup_card(cops_dev);
  8523. - free_netdev(cops_dev);
  8524. -}
  8525. -module_init(cops_module_init);
  8526. -module_exit(cops_module_exit);
  8527. -#endif /* MODULE */
  8528. diff -ruN ../linux-4.14.336/drivers/net/appletalk/cops.h ./drivers/net/appletalk/cops.h
  8529. --- linux-4.14.336/../linux-4.14.336/drivers/net/appletalk/cops.h 2024-01-10 14:45:41.000000000 +0100
  8530. +++ linux-4.14.336/./drivers/net/appletalk/cops.h 1970-01-01 01:00:00.000000000 +0100
  8531. @@ -1,61 +0,0 @@
  8532. -/* SPDX-License-Identifier: GPL-2.0 */
  8533. -/* cops.h: LocalTalk driver for Linux.
  8534. - *
  8535. - * Authors:
  8536. - * - Jay Schulist <jschlst@samba.org>
  8537. - */
  8538. -
  8539. -#ifndef __LINUX_COPSLTALK_H
  8540. -#define __LINUX_COPSLTALK_H
  8541. -
  8542. -#ifdef __KERNEL__
  8543. -
  8544. -/* Max LLAP size we will accept. */
  8545. -#define MAX_LLAP_SIZE 603
  8546. -
  8547. -/* Tangent */
  8548. -#define TANG_CARD_STATUS 1
  8549. -#define TANG_CLEAR_INT 1
  8550. -#define TANG_RESET 3
  8551. -
  8552. -#define TANG_TX_READY 1
  8553. -#define TANG_RX_READY 2
  8554. -
  8555. -/* Dayna */
  8556. -#define DAYNA_CMD_DATA 0
  8557. -#define DAYNA_CLEAR_INT 1
  8558. -#define DAYNA_CARD_STATUS 2
  8559. -#define DAYNA_INT_CARD 3
  8560. -#define DAYNA_RESET 4
  8561. -
  8562. -#define DAYNA_RX_READY 0
  8563. -#define DAYNA_TX_READY 1
  8564. -#define DAYNA_RX_REQUEST 3
  8565. -
  8566. -/* Same on both card types */
  8567. -#define COPS_CLEAR_INT 1
  8568. -
  8569. -/* LAP response codes received from the cards. */
  8570. -#define LAP_INIT 1 /* Init cmd */
  8571. -#define LAP_INIT_RSP 2 /* Init response */
  8572. -#define LAP_WRITE 3 /* Write cmd */
  8573. -#define DATA_READ 4 /* Data read */
  8574. -#define LAP_RESPONSE 4 /* Received ALAP frame response */
  8575. -#define LAP_GETSTAT 5 /* Get LAP and HW status */
  8576. -#define LAP_RSPSTAT 6 /* Status response */
  8577. -
  8578. -#endif
  8579. -
  8580. -/*
  8581. - * Structure to hold the firmware information.
  8582. - */
  8583. -struct ltfirmware
  8584. -{
  8585. - unsigned int length;
  8586. - const unsigned char *data;
  8587. -};
  8588. -
  8589. -#define DAYNA 1
  8590. -#define TANGENT 2
  8591. -
  8592. -#endif
  8593. diff -ruN ../linux-4.14.336/drivers/net/appletalk/cops_ffdrv.h ./drivers/net/appletalk/cops_ffdrv.h
  8594. --- linux-4.14.336/../linux-4.14.336/drivers/net/appletalk/cops_ffdrv.h 2024-01-10 14:45:41.000000000 +0100
  8595. +++ linux-4.14.336/./drivers/net/appletalk/cops_ffdrv.h 1970-01-01 01:00:00.000000000 +0100
  8596. @@ -1,532 +0,0 @@
  8597. -
  8598. -/*
  8599. - * The firmware this driver downloads into the Localtalk card is a
  8600. - * separate program and is not GPL'd source code, even though the Linux
  8601. - * side driver and the routine that loads this data into the card are.
  8602. - *
  8603. - * It is taken from the COPS SDK and is under the following license
  8604. - *
  8605. - * This material is licensed to you strictly for use in conjunction with
  8606. - * the use of COPS LocalTalk adapters.
  8607. - * There is no charge for this SDK. And no waranty express or implied
  8608. - * about its fitness for any purpose. However, we will cheerefully
  8609. - * refund every penny you paid for this SDK...
  8610. - * Regards,
  8611. - *
  8612. - * Thomas F. Divine
  8613. - * Chief Scientist
  8614. - */
  8615. -
  8616. -
  8617. -/* cops_ffdrv.h: LocalTalk driver firmware dump for Linux.
  8618. - *
  8619. - * Authors:
  8620. - * - Jay Schulist <jschlst@samba.org>
  8621. - */
  8622. -
  8623. -
  8624. -#ifdef CONFIG_COPS_DAYNA
  8625. -
  8626. -static const unsigned char ffdrv_code[] = {
  8627. - 58,3,0,50,228,149,33,255,255,34,226,149,
  8628. - 249,17,40,152,33,202,154,183,237,82,77,68,
  8629. - 11,107,98,19,54,0,237,176,175,50,80,0,
  8630. - 62,128,237,71,62,32,237,57,51,62,12,237,
  8631. - 57,50,237,57,54,62,6,237,57,52,62,12,
  8632. - 237,57,49,33,107,137,34,32,128,33,83,130,
  8633. - 34,40,128,33,86,130,34,42,128,33,112,130,
  8634. - 34,36,128,33,211,130,34,38,128,62,0,237,
  8635. - 57,16,33,63,148,34,34,128,237,94,205,15,
  8636. - 130,251,205,168,145,24,141,67,111,112,121,114,
  8637. - 105,103,104,116,32,40,67,41,32,49,57,56,
  8638. - 56,32,45,32,68,97,121,110,97,32,67,111,
  8639. - 109,109,117,110,105,99,97,116,105,111,110,115,
  8640. - 32,32,32,65,108,108,32,114,105,103,104,116,
  8641. - 115,32,114,101,115,101,114,118,101,100,46,32,
  8642. - 32,40,68,40,68,7,16,8,34,7,22,6,
  8643. - 16,5,12,4,8,3,6,140,0,16,39,128,
  8644. - 0,4,96,10,224,6,0,7,126,2,64,11,
  8645. - 118,12,6,13,0,14,193,15,0,5,96,3,
  8646. - 192,1,64,9,8,62,9,211,66,62,192,211,
  8647. - 66,62,100,61,32,253,6,28,33,205,129,14,
  8648. - 66,237,163,194,253,129,6,28,33,205,129,14,
  8649. - 64,237,163,194,9,130,201,62,47,50,71,152,
  8650. - 62,47,211,68,58,203,129,237,57,20,58,204,
  8651. - 129,237,57,21,33,77,152,54,132,205,233,129,
  8652. - 58,228,149,254,209,40,6,56,4,62,0,24,
  8653. - 2,219,96,33,233,149,119,230,62,33,232,149,
  8654. - 119,213,33,8,152,17,7,0,25,119,19,25,
  8655. - 119,209,201,251,237,77,245,197,213,229,221,229,
  8656. - 205,233,129,62,1,50,106,137,205,158,139,221,
  8657. - 225,225,209,193,241,251,237,77,245,197,213,219,
  8658. - 72,237,56,16,230,46,237,57,16,237,56,12,
  8659. - 58,72,152,183,32,26,6,20,17,128,2,237,
  8660. - 56,46,187,32,35,237,56,47,186,32,29,219,
  8661. - 72,230,1,32,3,5,32,232,175,50,72,152,
  8662. - 229,221,229,62,1,50,106,137,205,158,139,221,
  8663. - 225,225,24,25,62,1,50,72,152,58,201,129,
  8664. - 237,57,12,58,202,129,237,57,13,237,56,16,
  8665. - 246,17,237,57,16,209,193,241,251,237,77,245,
  8666. - 197,229,213,221,229,237,56,16,230,17,237,57,
  8667. - 16,237,56,20,58,34,152,246,16,246,8,211,
  8668. - 68,62,6,61,32,253,58,34,152,246,8,211,
  8669. - 68,58,203,129,237,57,20,58,204,129,237,57,
  8670. - 21,237,56,16,246,34,237,57,16,221,225,209,
  8671. - 225,193,241,251,237,77,33,2,0,57,126,230,
  8672. - 3,237,100,1,40,2,246,128,230,130,245,62,
  8673. - 5,211,64,241,211,64,201,229,213,243,237,56,
  8674. - 16,230,46,237,57,16,237,56,12,251,70,35,
  8675. - 35,126,254,175,202,77,133,254,129,202,15,133,
  8676. - 230,128,194,191,132,43,58,44,152,119,33,76,
  8677. - 152,119,35,62,132,119,120,254,255,40,4,58,
  8678. - 49,152,119,219,72,43,43,112,17,3,0,237,
  8679. - 56,52,230,248,237,57,52,219,72,230,1,194,
  8680. - 141,131,209,225,237,56,52,246,6,237,57,52,
  8681. - 62,1,55,251,201,62,3,211,66,62,192,211,
  8682. - 66,62,48,211,66,0,0,219,66,230,1,40,
  8683. - 4,219,67,24,240,205,203,135,58,75,152,254,
  8684. - 255,202,128,132,58,49,152,254,161,250,207,131,
  8685. - 58,34,152,211,68,62,10,211,66,62,128,211,
  8686. - 66,62,11,211,66,62,6,211,66,24,0,62,
  8687. - 14,211,66,62,33,211,66,62,1,211,66,62,
  8688. - 64,211,66,62,3,211,66,62,209,211,66,62,
  8689. - 100,71,219,66,230,1,32,6,5,32,247,195,
  8690. - 248,132,219,67,71,58,44,152,184,194,248,132,
  8691. - 62,100,71,219,66,230,1,32,6,5,32,247,
  8692. - 195,248,132,219,67,62,100,71,219,66,230,1,
  8693. - 32,6,5,32,247,195,248,132,219,67,254,133,
  8694. - 32,7,62,0,50,74,152,24,17,254,173,32,
  8695. - 7,62,1,50,74,152,24,6,254,141,194,248,
  8696. - 132,71,209,225,58,49,152,254,132,32,10,62,
  8697. - 50,205,2,134,205,144,135,24,27,254,140,32,
  8698. - 15,62,110,205,2,134,62,141,184,32,5,205,
  8699. - 144,135,24,8,62,10,205,2,134,205,8,134,
  8700. - 62,1,50,106,137,205,158,139,237,56,52,246,
  8701. - 6,237,57,52,175,183,251,201,62,20,135,237,
  8702. - 57,20,175,237,57,21,237,56,16,246,2,237,
  8703. - 57,16,237,56,20,95,237,56,21,123,254,10,
  8704. - 48,244,237,56,16,230,17,237,57,16,209,225,
  8705. - 205,144,135,62,1,50,106,137,205,158,139,237,
  8706. - 56,52,246,6,237,57,52,175,183,251,201,209,
  8707. - 225,243,219,72,230,1,40,13,62,10,211,66,
  8708. - 0,0,219,66,230,192,202,226,132,237,56,52,
  8709. - 246,6,237,57,52,62,1,55,251,201,205,203,
  8710. - 135,62,1,50,106,137,205,158,139,237,56,52,
  8711. - 246,6,237,57,52,183,251,201,209,225,62,1,
  8712. - 50,106,137,205,158,139,237,56,52,246,6,237,
  8713. - 57,52,62,2,55,251,201,209,225,243,219,72,
  8714. - 230,1,202,213,132,62,10,211,66,0,0,219,
  8715. - 66,230,192,194,213,132,229,62,1,50,106,137,
  8716. - 42,40,152,205,65,143,225,17,3,0,205,111,
  8717. - 136,62,6,211,66,58,44,152,211,66,237,56,
  8718. - 52,246,6,237,57,52,183,251,201,209,197,237,
  8719. - 56,52,230,248,237,57,52,219,72,230,1,32,
  8720. - 15,193,225,237,56,52,246,6,237,57,52,62,
  8721. - 1,55,251,201,14,23,58,37,152,254,0,40,
  8722. - 14,14,2,254,1,32,5,62,140,119,24,3,
  8723. - 62,132,119,43,43,197,205,203,135,193,62,1,
  8724. - 211,66,62,64,211,66,62,3,211,66,62,193,
  8725. - 211,66,62,100,203,39,71,219,66,230,1,32,
  8726. - 6,5,32,247,195,229,133,33,238,151,219,67,
  8727. - 71,58,44,152,184,194,229,133,119,62,100,71,
  8728. - 219,66,230,1,32,6,5,32,247,195,229,133,
  8729. - 219,67,35,119,13,32,234,193,225,62,1,50,
  8730. - 106,137,205,158,139,237,56,52,246,6,237,57,
  8731. - 52,175,183,251,201,33,234,151,35,35,62,255,
  8732. - 119,193,225,62,1,50,106,137,205,158,139,237,
  8733. - 56,52,246,6,237,57,52,175,251,201,243,61,
  8734. - 32,253,251,201,62,3,211,66,62,192,211,66,
  8735. - 58,49,152,254,140,32,19,197,229,213,17,181,
  8736. - 129,33,185,129,1,2,0,237,176,209,225,193,
  8737. - 24,27,229,213,33,187,129,58,49,152,230,15,
  8738. - 87,30,2,237,92,25,17,181,129,126,18,19,
  8739. - 35,126,18,209,225,58,34,152,246,8,211,68,
  8740. - 58,49,152,254,165,40,14,254,164,40,10,62,
  8741. - 10,211,66,62,224,211,66,24,25,58,74,152,
  8742. - 254,0,40,10,62,10,211,66,62,160,211,66,
  8743. - 24,8,62,10,211,66,62,128,211,66,62,11,
  8744. - 211,66,62,6,211,66,205,147,143,62,5,211,
  8745. - 66,62,224,211,66,62,5,211,66,62,96,211,
  8746. - 66,62,5,61,32,253,62,5,211,66,62,224,
  8747. - 211,66,62,14,61,32,253,62,5,211,66,62,
  8748. - 233,211,66,62,128,211,66,58,181,129,61,32,
  8749. - 253,62,1,211,66,62,192,211,66,1,254,19,
  8750. - 237,56,46,187,32,6,13,32,247,195,226,134,
  8751. - 62,192,211,66,0,0,219,66,203,119,40,250,
  8752. - 219,66,203,87,40,250,243,237,56,16,230,17,
  8753. - 237,57,16,237,56,20,251,62,5,211,66,62,
  8754. - 224,211,66,58,182,129,61,32,253,229,33,181,
  8755. - 129,58,183,129,203,63,119,35,58,184,129,119,
  8756. - 225,62,10,211,66,62,224,211,66,62,11,211,
  8757. - 66,62,118,211,66,62,47,211,68,62,5,211,
  8758. - 66,62,233,211,66,58,181,129,61,32,253,62,
  8759. - 5,211,66,62,224,211,66,58,182,129,61,32,
  8760. - 253,62,5,211,66,62,96,211,66,201,229,213,
  8761. - 58,50,152,230,15,87,30,2,237,92,33,187,
  8762. - 129,25,17,181,129,126,18,35,19,126,18,209,
  8763. - 225,58,71,152,246,8,211,68,58,50,152,254,
  8764. - 165,40,14,254,164,40,10,62,10,211,66,62,
  8765. - 224,211,66,24,8,62,10,211,66,62,128,211,
  8766. - 66,62,11,211,66,62,6,211,66,195,248,135,
  8767. - 62,3,211,66,62,192,211,66,197,229,213,17,
  8768. - 181,129,33,183,129,1,2,0,237,176,209,225,
  8769. - 193,62,47,211,68,62,10,211,66,62,224,211,
  8770. - 66,62,11,211,66,62,118,211,66,62,1,211,
  8771. - 66,62,0,211,66,205,147,143,195,16,136,62,
  8772. - 3,211,66,62,192,211,66,197,229,213,17,181,
  8773. - 129,33,183,129,1,2,0,237,176,209,225,193,
  8774. - 62,47,211,68,62,10,211,66,62,224,211,66,
  8775. - 62,11,211,66,62,118,211,66,205,147,143,62,
  8776. - 5,211,66,62,224,211,66,62,5,211,66,62,
  8777. - 96,211,66,62,5,61,32,253,62,5,211,66,
  8778. - 62,224,211,66,62,14,61,32,253,62,5,211,
  8779. - 66,62,233,211,66,62,128,211,66,58,181,129,
  8780. - 61,32,253,62,1,211,66,62,192,211,66,1,
  8781. - 254,19,237,56,46,187,32,6,13,32,247,195,
  8782. - 88,136,62,192,211,66,0,0,219,66,203,119,
  8783. - 40,250,219,66,203,87,40,250,62,5,211,66,
  8784. - 62,224,211,66,58,182,129,61,32,253,62,5,
  8785. - 211,66,62,96,211,66,201,197,14,67,6,0,
  8786. - 62,3,211,66,62,192,211,66,62,48,211,66,
  8787. - 0,0,219,66,230,1,40,4,219,67,24,240,
  8788. - 62,5,211,66,62,233,211,66,62,128,211,66,
  8789. - 58,181,129,61,32,253,237,163,29,62,192,211,
  8790. - 66,219,66,230,4,40,250,237,163,29,32,245,
  8791. - 219,66,230,4,40,250,62,255,71,219,66,230,
  8792. - 4,40,3,5,32,247,219,66,230,4,40,250,
  8793. - 62,5,211,66,62,224,211,66,58,182,129,61,
  8794. - 32,253,62,5,211,66,62,96,211,66,58,71,
  8795. - 152,254,1,202,18,137,62,16,211,66,62,56,
  8796. - 211,66,62,14,211,66,62,33,211,66,62,1,
  8797. - 211,66,62,248,211,66,237,56,48,246,153,230,
  8798. - 207,237,57,48,62,3,211,66,62,221,211,66,
  8799. - 193,201,58,71,152,211,68,62,10,211,66,62,
  8800. - 128,211,66,62,11,211,66,62,6,211,66,62,
  8801. - 6,211,66,58,44,152,211,66,62,16,211,66,
  8802. - 62,56,211,66,62,48,211,66,0,0,62,14,
  8803. - 211,66,62,33,211,66,62,1,211,66,62,248,
  8804. - 211,66,237,56,48,246,145,246,8,230,207,237,
  8805. - 57,48,62,3,211,66,62,221,211,66,193,201,
  8806. - 44,3,1,0,70,69,1,245,197,213,229,175,
  8807. - 50,72,152,237,56,16,230,46,237,57,16,237,
  8808. - 56,12,62,1,211,66,0,0,219,66,95,230,
  8809. - 160,32,3,195,20,139,123,230,96,194,72,139,
  8810. - 62,48,211,66,62,1,211,66,62,64,211,66,
  8811. - 237,91,40,152,205,207,143,25,43,55,237,82,
  8812. - 218,70,139,34,42,152,98,107,58,44,152,190,
  8813. - 194,210,138,35,35,62,130,190,194,200,137,62,
  8814. - 1,50,48,152,62,175,190,202,82,139,62,132,
  8815. - 190,32,44,50,50,152,62,47,50,71,152,229,
  8816. - 175,50,106,137,42,40,152,205,65,143,225,54,
  8817. - 133,43,70,58,44,152,119,43,112,17,3,0,
  8818. - 62,10,205,2,134,205,111,136,195,158,138,62,
  8819. - 140,190,32,19,50,50,152,58,233,149,230,4,
  8820. - 202,222,138,62,1,50,71,152,195,219,137,126,
  8821. - 254,160,250,185,138,254,166,242,185,138,50,50,
  8822. - 152,43,126,35,229,213,33,234,149,95,22,0,
  8823. - 25,126,254,132,40,18,254,140,40,14,58,50,
  8824. - 152,230,15,87,126,31,21,242,65,138,56,2,
  8825. - 175,119,58,50,152,230,15,87,58,233,149,230,
  8826. - 62,31,21,242,85,138,218,98,138,209,225,195,
  8827. - 20,139,58,50,152,33,100,137,230,15,95,22,
  8828. - 0,25,126,50,71,152,209,225,58,50,152,254,
  8829. - 164,250,135,138,58,73,152,254,0,40,4,54,
  8830. - 173,24,2,54,133,43,70,58,44,152,119,43,
  8831. - 112,17,3,0,205,70,135,175,50,106,137,205,
  8832. - 208,139,58,199,129,237,57,12,58,200,129,237,
  8833. - 57,13,237,56,16,246,17,237,57,16,225,209,
  8834. - 193,241,251,237,77,62,129,190,194,227,138,54,
  8835. - 130,43,70,58,44,152,119,43,112,17,3,0,
  8836. - 205,144,135,195,20,139,35,35,126,254,132,194,
  8837. - 227,138,175,50,106,137,205,158,139,24,42,58,
  8838. - 201,154,254,1,40,7,62,1,50,106,137,24,
  8839. - 237,58,106,137,254,1,202,222,138,62,128,166,
  8840. - 194,222,138,221,229,221,33,67,152,205,127,142,
  8841. - 205,109,144,221,225,225,209,193,241,251,237,77,
  8842. - 58,106,137,254,1,202,44,139,58,50,152,254,
  8843. - 164,250,44,139,58,73,152,238,1,50,73,152,
  8844. - 221,229,221,33,51,152,205,127,142,221,225,62,
  8845. - 1,50,106,137,205,158,139,195,13,139,24,208,
  8846. - 24,206,24,204,230,64,40,3,195,20,139,195,
  8847. - 20,139,43,126,33,8,152,119,35,58,44,152,
  8848. - 119,43,237,91,35,152,205,203,135,205,158,139,
  8849. - 195,13,139,175,50,78,152,62,3,211,66,62,
  8850. - 192,211,66,201,197,33,4,0,57,126,35,102,
  8851. - 111,62,1,50,106,137,219,72,205,141,139,193,
  8852. - 201,62,1,50,78,152,34,40,152,54,0,35,
  8853. - 35,54,0,195,163,139,58,78,152,183,200,229,
  8854. - 33,181,129,58,183,129,119,35,58,184,129,119,
  8855. - 225,62,47,211,68,62,14,211,66,62,193,211,
  8856. - 66,62,10,211,66,62,224,211,66,62,11,211,
  8857. - 66,62,118,211,66,195,3,140,58,78,152,183,
  8858. - 200,58,71,152,211,68,254,69,40,4,254,70,
  8859. - 32,17,58,73,152,254,0,40,10,62,10,211,
  8860. - 66,62,160,211,66,24,8,62,10,211,66,62,
  8861. - 128,211,66,62,11,211,66,62,6,211,66,62,
  8862. - 6,211,66,58,44,152,211,66,62,16,211,66,
  8863. - 62,56,211,66,62,48,211,66,0,0,219,66,
  8864. - 230,1,40,4,219,67,24,240,62,14,211,66,
  8865. - 62,33,211,66,42,40,152,205,65,143,62,1,
  8866. - 211,66,62,248,211,66,237,56,48,246,145,246,
  8867. - 8,230,207,237,57,48,62,3,211,66,62,221,
  8868. - 211,66,201,62,16,211,66,62,56,211,66,62,
  8869. - 48,211,66,0,0,219,66,230,1,40,4,219,
  8870. - 67,24,240,62,14,211,66,62,33,211,66,62,
  8871. - 1,211,66,62,248,211,66,237,56,48,246,153,
  8872. - 230,207,237,57,48,62,3,211,66,62,221,211,
  8873. - 66,201,229,213,33,234,149,95,22,0,25,126,
  8874. - 254,132,40,4,254,140,32,2,175,119,123,209,
  8875. - 225,201,6,8,14,0,31,48,1,12,16,250,
  8876. - 121,201,33,4,0,57,94,35,86,33,2,0,
  8877. - 57,126,35,102,111,221,229,34,89,152,237,83,
  8878. - 91,152,221,33,63,152,205,127,142,58,81,152,
  8879. - 50,82,152,58,80,152,135,50,80,152,205,162,
  8880. - 140,254,3,56,16,58,81,152,135,60,230,15,
  8881. - 50,81,152,175,50,80,152,24,23,58,79,152,
  8882. - 205,162,140,254,3,48,13,58,81,152,203,63,
  8883. - 50,81,152,62,255,50,79,152,58,81,152,50,
  8884. - 82,152,58,79,152,135,50,79,152,62,32,50,
  8885. - 83,152,50,84,152,237,56,16,230,17,237,57,
  8886. - 16,219,72,62,192,50,93,152,62,93,50,94,
  8887. - 152,58,93,152,61,50,93,152,32,9,58,94,
  8888. - 152,61,50,94,152,40,44,62,170,237,57,20,
  8889. - 175,237,57,21,237,56,16,246,2,237,57,16,
  8890. - 219,72,230,1,202,29,141,237,56,20,71,237,
  8891. - 56,21,120,254,10,48,237,237,56,16,230,17,
  8892. - 237,57,16,243,62,14,211,66,62,65,211,66,
  8893. - 251,58,39,152,23,23,60,50,39,152,71,58,
  8894. - 82,152,160,230,15,40,22,71,14,10,219,66,
  8895. - 230,16,202,186,141,219,72,230,1,202,186,141,
  8896. - 13,32,239,16,235,42,89,152,237,91,91,152,
  8897. - 205,47,131,48,7,61,202,186,141,195,227,141,
  8898. - 221,225,33,0,0,201,221,33,55,152,205,127,
  8899. - 142,58,84,152,61,50,84,152,40,19,58,82,
  8900. - 152,246,1,50,82,152,58,79,152,246,1,50,
  8901. - 79,152,195,29,141,221,225,33,1,0,201,221,
  8902. - 33,59,152,205,127,142,58,80,152,246,1,50,
  8903. - 80,152,58,82,152,135,246,1,50,82,152,58,
  8904. - 83,152,61,50,83,152,194,29,141,221,225,33,
  8905. - 2,0,201,221,229,33,0,0,57,17,4,0,
  8906. - 25,126,50,44,152,230,128,50,85,152,58,85,
  8907. - 152,183,40,6,221,33,88,2,24,4,221,33,
  8908. - 150,0,58,44,152,183,40,53,60,40,50,60,
  8909. - 40,47,61,61,33,86,152,119,35,119,35,54,
  8910. - 129,175,50,48,152,221,43,221,229,225,124,181,
  8911. - 40,42,33,86,152,17,3,0,205,189,140,17,
  8912. - 232,3,27,123,178,32,251,58,48,152,183,40,
  8913. - 224,58,44,152,71,62,7,128,230,127,71,58,
  8914. - 85,152,176,50,44,152,24,162,221,225,201,183,
  8915. - 221,52,0,192,221,52,1,192,221,52,2,192,
  8916. - 221,52,3,192,55,201,245,62,1,211,100,241,
  8917. - 201,245,62,1,211,96,241,201,33,2,0,57,
  8918. - 126,35,102,111,237,56,48,230,175,237,57,48,
  8919. - 62,48,237,57,49,125,237,57,32,124,237,57,
  8920. - 33,62,0,237,57,34,62,88,237,57,35,62,
  8921. - 0,237,57,36,237,57,37,33,128,2,125,237,
  8922. - 57,38,124,237,57,39,237,56,48,246,97,230,
  8923. - 207,237,57,48,62,0,237,57,0,62,0,211,
  8924. - 96,211,100,201,33,2,0,57,126,35,102,111,
  8925. - 237,56,48,230,175,237,57,48,62,12,237,57,
  8926. - 49,62,76,237,57,32,62,0,237,57,33,237,
  8927. - 57,34,125,237,57,35,124,237,57,36,62,0,
  8928. - 237,57,37,33,128,2,125,237,57,38,124,237,
  8929. - 57,39,237,56,48,246,97,230,207,237,57,48,
  8930. - 62,1,211,96,201,33,2,0,57,126,35,102,
  8931. - 111,229,237,56,48,230,87,237,57,48,125,237,
  8932. - 57,40,124,237,57,41,62,0,237,57,42,62,
  8933. - 67,237,57,43,62,0,237,57,44,58,106,137,
  8934. - 254,1,32,5,33,6,0,24,3,33,128,2,
  8935. - 125,237,57,46,124,237,57,47,237,56,50,230,
  8936. - 252,246,2,237,57,50,225,201,33,4,0,57,
  8937. - 94,35,86,33,2,0,57,126,35,102,111,237,
  8938. - 56,48,230,87,237,57,48,125,237,57,40,124,
  8939. - 237,57,41,62,0,237,57,42,62,67,237,57,
  8940. - 43,62,0,237,57,44,123,237,57,46,122,237,
  8941. - 57,47,237,56,50,230,244,246,0,237,57,50,
  8942. - 237,56,48,246,145,230,207,237,57,48,201,213,
  8943. - 237,56,46,95,237,56,47,87,237,56,46,111,
  8944. - 237,56,47,103,183,237,82,32,235,33,128,2,
  8945. - 183,237,82,209,201,213,237,56,38,95,237,56,
  8946. - 39,87,237,56,38,111,237,56,39,103,183,237,
  8947. - 82,32,235,33,128,2,183,237,82,209,201,245,
  8948. - 197,1,52,0,237,120,230,253,237,121,193,241,
  8949. - 201,245,197,1,52,0,237,120,246,2,237,121,
  8950. - 193,241,201,33,2,0,57,126,35,102,111,126,
  8951. - 35,110,103,201,33,0,0,34,102,152,34,96,
  8952. - 152,34,98,152,33,202,154,34,104,152,237,91,
  8953. - 104,152,42,226,149,183,237,82,17,0,255,25,
  8954. - 34,100,152,203,124,40,6,33,0,125,34,100,
  8955. - 152,42,104,152,35,35,35,229,205,120,139,193,
  8956. - 201,205,186,149,229,42,40,152,35,35,35,229,
  8957. - 205,39,144,193,124,230,3,103,221,117,254,221,
  8958. - 116,255,237,91,42,152,35,35,35,183,237,82,
  8959. - 32,12,17,5,0,42,42,152,205,171,149,242,
  8960. - 169,144,42,40,152,229,205,120,139,193,195,198,
  8961. - 149,237,91,42,152,42,98,152,25,34,98,152,
  8962. - 19,19,19,42,102,152,25,34,102,152,237,91,
  8963. - 100,152,33,158,253,25,237,91,102,152,205,171,
  8964. - 149,242,214,144,33,0,0,34,102,152,62,1,
  8965. - 50,95,152,205,225,144,195,198,149,58,95,152,
  8966. - 183,200,237,91,96,152,42,102,152,205,171,149,
  8967. - 242,5,145,237,91,102,152,33,98,2,25,237,
  8968. - 91,96,152,205,171,149,250,37,145,237,91,96,
  8969. - 152,42,102,152,183,237,82,32,7,42,98,152,
  8970. - 125,180,40,13,237,91,102,152,42,96,152,205,
  8971. - 171,149,242,58,145,237,91,104,152,42,102,152,
  8972. - 25,35,35,35,229,205,120,139,193,175,50,95,
  8973. - 152,201,195,107,139,205,206,149,250,255,243,205,
  8974. - 225,144,251,58,230,149,183,194,198,149,17,1,
  8975. - 0,42,98,152,205,171,149,250,198,149,62,1,
  8976. - 50,230,149,237,91,96,152,42,104,152,25,221,
  8977. - 117,252,221,116,253,237,91,104,152,42,96,152,
  8978. - 25,35,35,35,221,117,254,221,116,255,35,35,
  8979. - 35,229,205,39,144,124,230,3,103,35,35,35,
  8980. - 221,117,250,221,116,251,235,221,110,252,221,102,
  8981. - 253,115,35,114,35,54,4,62,1,211,100,211,
  8982. - 84,195,198,149,33,0,0,34,102,152,34,96,
  8983. - 152,34,98,152,33,202,154,34,104,152,237,91,
  8984. - 104,152,42,226,149,183,237,82,17,0,255,25,
  8985. - 34,100,152,33,109,152,54,0,33,107,152,229,
  8986. - 205,240,142,193,62,47,50,34,152,62,132,50,
  8987. - 49,152,205,241,145,205,61,145,58,39,152,60,
  8988. - 50,39,152,24,241,205,206,149,251,255,33,109,
  8989. - 152,126,183,202,198,149,110,221,117,251,33,109,
  8990. - 152,54,0,221,126,251,254,1,40,28,254,3,
  8991. - 40,101,254,4,202,190,147,254,5,202,147,147,
  8992. - 254,8,40,87,33,107,152,229,205,240,142,195,
  8993. - 198,149,58,201,154,183,32,21,33,111,152,126,
  8994. - 50,229,149,205,52,144,33,110,152,110,38,0,
  8995. - 229,205,11,142,193,237,91,96,152,42,104,152,
  8996. - 25,221,117,254,221,116,255,35,35,54,2,17,
  8997. - 2,0,43,43,115,35,114,58,44,152,35,35,
  8998. - 119,58,228,149,35,119,62,1,211,100,211,84,
  8999. - 62,1,50,201,154,24,169,205,153,142,58,231,
  9000. - 149,183,40,250,175,50,231,149,33,110,152,126,
  9001. - 254,255,40,91,58,233,149,230,63,183,40,83,
  9002. - 94,22,0,33,234,149,25,126,183,40,13,33,
  9003. - 110,152,94,33,234,150,25,126,254,3,32,36,
  9004. - 205,81,148,125,180,33,110,152,94,22,0,40,
  9005. - 17,33,234,149,25,54,0,33,107,152,229,205,
  9006. - 240,142,193,195,198,149,33,234,150,25,54,0,
  9007. - 33,110,152,94,22,0,33,234,149,25,126,50,
  9008. - 49,152,254,132,32,37,62,47,50,34,152,42,
  9009. - 107,152,229,33,110,152,229,205,174,140,193,193,
  9010. - 125,180,33,110,152,94,22,0,33,234,150,202,
  9011. - 117,147,25,52,195,120,147,58,49,152,254,140,
  9012. - 32,7,62,1,50,34,152,24,210,62,32,50,
  9013. - 106,152,24,19,58,49,152,95,58,106,152,163,
  9014. - 183,58,106,152,32,11,203,63,50,106,152,58,
  9015. - 106,152,183,32,231,254,2,40,51,254,4,40,
  9016. - 38,254,8,40,26,254,16,40,13,254,32,32,
  9017. - 158,62,165,50,49,152,62,69,24,190,62,164,
  9018. - 50,49,152,62,70,24,181,62,163,50,49,152,
  9019. - 175,24,173,62,162,50,49,152,62,1,24,164,
  9020. - 62,161,50,49,152,62,3,24,155,25,54,0,
  9021. - 221,126,251,254,8,40,7,58,230,149,183,202,
  9022. - 32,146,33,107,152,229,205,240,142,193,211,84,
  9023. - 195,198,149,237,91,96,152,42,104,152,25,221,
  9024. - 117,254,221,116,255,35,35,54,6,17,2,0,
  9025. - 43,43,115,35,114,58,228,149,35,35,119,58,
  9026. - 233,149,35,119,205,146,142,195,32,146,237,91,
  9027. - 96,152,42,104,152,25,229,205,160,142,193,58,
  9028. - 231,149,183,40,250,175,50,231,149,243,237,91,
  9029. - 96,152,42,104,152,25,221,117,254,221,116,255,
  9030. - 78,35,70,221,113,252,221,112,253,89,80,42,
  9031. - 98,152,183,237,82,34,98,152,203,124,40,19,
  9032. - 33,0,0,34,98,152,34,102,152,34,96,152,
  9033. - 62,1,50,95,152,24,40,221,94,252,221,86,
  9034. - 253,19,19,19,42,96,152,25,34,96,152,237,
  9035. - 91,100,152,33,158,253,25,237,91,96,152,205,
  9036. - 171,149,242,55,148,33,0,0,34,96,152,175,
  9037. - 50,230,149,251,195,32,146,245,62,1,50,231,
  9038. - 149,62,16,237,57,0,211,80,241,251,237,77,
  9039. - 201,205,186,149,229,229,33,0,0,34,37,152,
  9040. - 33,110,152,126,50,234,151,58,44,152,33,235,
  9041. - 151,119,221,54,253,0,221,54,254,0,195,230,
  9042. - 148,33,236,151,54,175,33,3,0,229,33,234,
  9043. - 151,229,205,174,140,193,193,33,236,151,126,254,
  9044. - 255,40,74,33,245,151,110,221,117,255,33,249,
  9045. - 151,126,221,166,255,221,119,255,33,253,151,126,
  9046. - 221,166,255,221,119,255,58,232,149,95,221,126,
  9047. - 255,163,221,119,255,183,40,15,230,191,33,110,
  9048. - 152,94,22,0,33,234,149,25,119,24,12,33,
  9049. - 110,152,94,22,0,33,234,149,25,54,132,33,
  9050. - 0,0,195,198,149,221,110,253,221,102,254,35,
  9051. - 221,117,253,221,116,254,17,32,0,221,110,253,
  9052. - 221,102,254,205,171,149,250,117,148,58,233,149,
  9053. - 203,87,40,84,33,1,0,34,37,152,221,54,
  9054. - 253,0,221,54,254,0,24,53,33,236,151,54,
  9055. - 175,33,3,0,229,33,234,151,229,205,174,140,
  9056. - 193,193,33,236,151,126,254,255,40,14,33,110,
  9057. - 152,94,22,0,33,234,149,25,54,140,24,159,
  9058. - 221,110,253,221,102,254,35,221,117,253,221,116,
  9059. - 254,17,32,0,221,110,253,221,102,254,205,171,
  9060. - 149,250,12,149,33,2,0,34,37,152,221,54,
  9061. - 253,0,221,54,254,0,24,54,33,236,151,54,
  9062. - 175,33,3,0,229,33,234,151,229,205,174,140,
  9063. - 193,193,33,236,151,126,254,255,40,15,33,110,
  9064. - 152,94,22,0,33,234,149,25,54,132,195,211,
  9065. - 148,221,110,253,221,102,254,35,221,117,253,221,
  9066. - 116,254,17,32,0,221,110,253,221,102,254,205,
  9067. - 171,149,250,96,149,33,1,0,195,198,149,124,
  9068. - 170,250,179,149,237,82,201,124,230,128,237,82,
  9069. - 60,201,225,253,229,221,229,221,33,0,0,221,
  9070. - 57,233,221,249,221,225,253,225,201,233,225,253,
  9071. - 229,221,229,221,33,0,0,221,57,94,35,86,
  9072. - 35,235,57,249,235,233,0,0,0,0,0,0,
  9073. - 62,0,0,0,0,0,0,0,0,0,0,0,
  9074. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9075. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9076. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9077. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9078. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9079. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9080. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9081. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9082. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9083. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9084. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9085. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9086. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9087. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9088. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9089. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9090. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9091. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9092. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9093. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9094. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9095. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9096. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9097. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9098. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9099. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9100. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9101. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9102. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9103. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9104. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9105. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9106. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9107. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9108. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9109. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9110. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9111. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9112. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9113. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9114. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9115. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9116. - 175,0,0,0,0,0,0,0,0,0,0,0,
  9117. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9118. - 0,0,0,0,0,0,133,1,0,0,0,63,
  9119. - 255,255,255,255,0,0,0,63,0,0,0,0,
  9120. - 0,0,0,0,0,0,0,24,0,0,0,0,
  9121. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9122. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9123. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9124. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9125. - 0,0,0,0,0,0,0
  9126. - } ;
  9127. -
  9128. -#endif
  9129. diff -ruN ../linux-4.14.336/drivers/net/appletalk/cops_ltdrv.h ./drivers/net/appletalk/cops_ltdrv.h
  9130. --- linux-4.14.336/../linux-4.14.336/drivers/net/appletalk/cops_ltdrv.h 2024-01-10 14:45:41.000000000 +0100
  9131. +++ linux-4.14.336/./drivers/net/appletalk/cops_ltdrv.h 1970-01-01 01:00:00.000000000 +0100
  9132. @@ -1,241 +0,0 @@
  9133. -/*
  9134. - * The firmware this driver downloads into the Localtalk card is a
  9135. - * separate program and is not GPL'd source code, even though the Linux
  9136. - * side driver and the routine that loads this data into the card are.
  9137. - *
  9138. - * It is taken from the COPS SDK and is under the following license
  9139. - *
  9140. - * This material is licensed to you strictly for use in conjunction with
  9141. - * the use of COPS LocalTalk adapters.
  9142. - * There is no charge for this SDK. And no waranty express or implied
  9143. - * about its fitness for any purpose. However, we will cheerefully
  9144. - * refund every penny you paid for this SDK...
  9145. - * Regards,
  9146. - *
  9147. - * Thomas F. Divine
  9148. - * Chief Scientist
  9149. - */
  9150. -
  9151. -
  9152. -/* cops_ltdrv.h: LocalTalk driver firmware dump for Linux.
  9153. - *
  9154. - * Authors:
  9155. - * - Jay Schulist <jschlst@samba.org>
  9156. - */
  9157. -
  9158. -
  9159. -#ifdef CONFIG_COPS_TANGENT
  9160. -
  9161. -static const unsigned char ltdrv_code[] = {
  9162. - 58,3,0,50,148,10,33,143,15,62,85,119,
  9163. - 190,32,9,62,170,119,190,32,3,35,24,241,
  9164. - 34,146,10,249,17,150,10,33,143,15,183,237,
  9165. - 82,77,68,11,107,98,19,54,0,237,176,62,
  9166. - 16,237,57,51,62,0,237,57,50,237,57,54,
  9167. - 62,12,237,57,49,62,195,33,39,2,50,56,
  9168. - 0,34,57,0,237,86,205,30,2,251,205,60,
  9169. - 10,24,169,67,111,112,121,114,105,103,104,116,
  9170. - 32,40,99,41,32,49,57,56,56,45,49,57,
  9171. - 57,50,44,32,80,114,105,110,116,105,110,103,
  9172. - 32,67,111,109,109,117,110,105,99,97,116,105,
  9173. - 111,110,115,32,65,115,115,111,99,105,97,116,
  9174. - 101,115,44,32,73,110,99,46,65,108,108,32,
  9175. - 114,105,103,104,116,115,32,114,101,115,101,114,
  9176. - 118,101,100,46,32,32,4,4,22,40,255,60,
  9177. - 4,96,10,224,6,0,7,126,2,64,11,246,
  9178. - 12,6,13,0,14,193,15,0,5,96,3,192,
  9179. - 1,0,9,8,62,3,211,82,62,192,211,82,
  9180. - 201,62,3,211,82,62,213,211,82,201,62,5,
  9181. - 211,82,62,224,211,82,201,62,5,211,82,62,
  9182. - 224,211,82,201,62,5,211,82,62,96,211,82,
  9183. - 201,6,28,33,180,1,14,82,237,163,194,4,
  9184. - 2,33,39,2,34,64,0,58,3,0,230,1,
  9185. - 192,62,11,237,121,62,118,237,121,201,33,182,
  9186. - 10,54,132,205,253,1,201,245,197,213,229,42,
  9187. - 150,10,14,83,17,98,2,67,20,237,162,58,
  9188. - 179,1,95,219,82,230,1,32,6,29,32,247,
  9189. - 195,17,3,62,1,211,82,219,82,95,230,160,
  9190. - 32,10,237,162,32,225,21,32,222,195,15,3,
  9191. - 237,162,123,230,96,194,21,3,62,48,211,82,
  9192. - 62,1,211,82,175,211,82,237,91,150,10,43,
  9193. - 55,237,82,218,19,3,34,152,10,98,107,58,
  9194. - 154,10,190,32,81,62,1,50,158,10,35,35,
  9195. - 62,132,190,32,44,54,133,43,70,58,154,10,
  9196. - 119,43,112,17,3,0,205,137,3,62,16,211,
  9197. - 82,62,56,211,82,205,217,1,42,150,10,14,
  9198. - 83,17,98,2,67,20,58,178,1,95,195,59,
  9199. - 2,62,129,190,194,227,2,54,130,43,70,58,
  9200. - 154,10,119,43,112,17,3,0,205,137,3,195,
  9201. - 254,2,35,35,126,254,132,194,227,2,205,61,
  9202. - 3,24,20,62,128,166,194,222,2,221,229,221,
  9203. - 33,175,10,205,93,6,205,144,7,221,225,225,
  9204. - 209,193,241,251,237,77,221,229,221,33,159,10,
  9205. - 205,93,6,221,225,205,61,3,195,247,2,24,
  9206. - 237,24,235,24,233,230,64,40,2,24,227,24,
  9207. - 225,175,50,179,10,205,208,1,201,197,33,4,
  9208. - 0,57,126,35,102,111,205,51,3,193,201,62,
  9209. - 1,50,179,10,34,150,10,54,0,58,179,10,
  9210. - 183,200,62,14,211,82,62,193,211,82,62,10,
  9211. - 211,82,62,224,211,82,62,6,211,82,58,154,
  9212. - 10,211,82,62,16,211,82,62,56,211,82,62,
  9213. - 48,211,82,219,82,230,1,40,4,219,83,24,
  9214. - 242,62,14,211,82,62,33,211,82,62,1,211,
  9215. - 82,62,9,211,82,62,32,211,82,205,217,1,
  9216. - 201,14,83,205,208,1,24,23,14,83,205,208,
  9217. - 1,205,226,1,58,174,1,61,32,253,205,244,
  9218. - 1,58,174,1,61,32,253,205,226,1,58,175,
  9219. - 1,61,32,253,62,5,211,82,62,233,211,82,
  9220. - 62,128,211,82,58,176,1,61,32,253,237,163,
  9221. - 27,62,192,211,82,219,82,230,4,40,250,237,
  9222. - 163,27,122,179,32,243,219,82,230,4,40,250,
  9223. - 58,178,1,71,219,82,230,4,40,3,5,32,
  9224. - 247,219,82,230,4,40,250,205,235,1,58,177,
  9225. - 1,61,32,253,205,244,1,201,229,213,35,35,
  9226. - 126,230,128,194,145,4,43,58,154,10,119,43,
  9227. - 70,33,181,10,119,43,112,17,3,0,243,62,
  9228. - 10,211,82,219,82,230,128,202,41,4,209,225,
  9229. - 62,1,55,251,201,205,144,3,58,180,10,254,
  9230. - 255,202,127,4,205,217,1,58,178,1,71,219,
  9231. - 82,230,1,32,6,5,32,247,195,173,4,219,
  9232. - 83,71,58,154,10,184,194,173,4,58,178,1,
  9233. - 71,219,82,230,1,32,6,5,32,247,195,173,
  9234. - 4,219,83,58,178,1,71,219,82,230,1,32,
  9235. - 6,5,32,247,195,173,4,219,83,254,133,194,
  9236. - 173,4,58,179,1,24,4,58,179,1,135,61,
  9237. - 32,253,209,225,205,137,3,205,61,3,183,251,
  9238. - 201,209,225,243,62,10,211,82,219,82,230,128,
  9239. - 202,164,4,62,1,55,251,201,205,144,3,205,
  9240. - 61,3,183,251,201,209,225,62,2,55,251,201,
  9241. - 243,62,14,211,82,62,33,211,82,251,201,33,
  9242. - 4,0,57,94,35,86,33,2,0,57,126,35,
  9243. - 102,111,221,229,34,193,10,237,83,195,10,221,
  9244. - 33,171,10,205,93,6,58,185,10,50,186,10,
  9245. - 58,184,10,135,50,184,10,205,112,6,254,3,
  9246. - 56,16,58,185,10,135,60,230,15,50,185,10,
  9247. - 175,50,184,10,24,23,58,183,10,205,112,6,
  9248. - 254,3,48,13,58,185,10,203,63,50,185,10,
  9249. - 62,255,50,183,10,58,185,10,50,186,10,58,
  9250. - 183,10,135,50,183,10,62,32,50,187,10,50,
  9251. - 188,10,6,255,219,82,230,16,32,3,5,32,
  9252. - 247,205,180,4,6,40,219,82,230,16,40,3,
  9253. - 5,32,247,62,10,211,82,219,82,230,128,194,
  9254. - 46,5,219,82,230,16,40,214,237,95,71,58,
  9255. - 186,10,160,230,15,40,32,71,14,10,62,10,
  9256. - 211,82,219,82,230,128,202,119,5,205,180,4,
  9257. - 195,156,5,219,82,230,16,202,156,5,13,32,
  9258. - 229,16,225,42,193,10,237,91,195,10,205,252,
  9259. - 3,48,7,61,202,156,5,195,197,5,221,225,
  9260. - 33,0,0,201,221,33,163,10,205,93,6,58,
  9261. - 188,10,61,50,188,10,40,19,58,186,10,246,
  9262. - 1,50,186,10,58,183,10,246,1,50,183,10,
  9263. - 195,46,5,221,225,33,1,0,201,221,33,167,
  9264. - 10,205,93,6,58,184,10,246,1,50,184,10,
  9265. - 58,186,10,135,246,1,50,186,10,58,187,10,
  9266. - 61,50,187,10,194,46,5,221,225,33,2,0,
  9267. - 201,221,229,33,0,0,57,17,4,0,25,126,
  9268. - 50,154,10,230,128,50,189,10,58,189,10,183,
  9269. - 40,6,221,33,88,2,24,4,221,33,150,0,
  9270. - 58,154,10,183,40,49,60,40,46,61,33,190,
  9271. - 10,119,35,119,35,54,129,175,50,158,10,221,
  9272. - 43,221,229,225,124,181,40,42,33,190,10,17,
  9273. - 3,0,205,206,4,17,232,3,27,123,178,32,
  9274. - 251,58,158,10,183,40,224,58,154,10,71,62,
  9275. - 7,128,230,127,71,58,189,10,176,50,154,10,
  9276. - 24,166,221,225,201,183,221,52,0,192,221,52,
  9277. - 1,192,221,52,2,192,221,52,3,192,55,201,
  9278. - 6,8,14,0,31,48,1,12,16,250,121,201,
  9279. - 33,2,0,57,94,35,86,35,78,35,70,35,
  9280. - 126,35,102,105,79,120,68,103,237,176,201,33,
  9281. - 2,0,57,126,35,102,111,62,17,237,57,48,
  9282. - 125,237,57,40,124,237,57,41,62,0,237,57,
  9283. - 42,62,64,237,57,43,62,0,237,57,44,33,
  9284. - 128,2,125,237,57,46,124,237,57,47,62,145,
  9285. - 237,57,48,211,68,58,149,10,211,66,201,33,
  9286. - 2,0,57,126,35,102,111,62,33,237,57,48,
  9287. - 62,64,237,57,32,62,0,237,57,33,237,57,
  9288. - 34,125,237,57,35,124,237,57,36,62,0,237,
  9289. - 57,37,33,128,2,125,237,57,38,124,237,57,
  9290. - 39,62,97,237,57,48,211,67,58,149,10,211,
  9291. - 66,201,237,56,46,95,237,56,47,87,237,56,
  9292. - 46,111,237,56,47,103,183,237,82,32,235,33,
  9293. - 128,2,183,237,82,201,237,56,38,95,237,56,
  9294. - 39,87,237,56,38,111,237,56,39,103,183,237,
  9295. - 82,32,235,33,128,2,183,237,82,201,205,106,
  9296. - 10,221,110,6,221,102,7,126,35,110,103,195,
  9297. - 118,10,205,106,10,33,0,0,34,205,10,34,
  9298. - 198,10,34,200,10,33,143,15,34,207,10,237,
  9299. - 91,207,10,42,146,10,183,237,82,17,0,255,
  9300. - 25,34,203,10,203,124,40,6,33,0,125,34,
  9301. - 203,10,42,207,10,229,205,37,3,195,118,10,
  9302. - 205,106,10,229,42,150,10,35,35,35,229,205,
  9303. - 70,7,193,124,230,3,103,221,117,254,221,116,
  9304. - 255,237,91,152,10,35,35,35,183,237,82,32,
  9305. - 12,17,5,0,42,152,10,205,91,10,242,203,
  9306. - 7,42,150,10,229,205,37,3,195,118,10,237,
  9307. - 91,152,10,42,200,10,25,34,200,10,42,205,
  9308. - 10,25,34,205,10,237,91,203,10,33,158,253,
  9309. - 25,237,91,205,10,205,91,10,242,245,7,33,
  9310. - 0,0,34,205,10,62,1,50,197,10,205,5,
  9311. - 8,33,0,0,57,249,195,118,10,205,106,10,
  9312. - 58,197,10,183,202,118,10,237,91,198,10,42,
  9313. - 205,10,205,91,10,242,46,8,237,91,205,10,
  9314. - 33,98,2,25,237,91,198,10,205,91,10,250,
  9315. - 78,8,237,91,198,10,42,205,10,183,237,82,
  9316. - 32,7,42,200,10,125,180,40,13,237,91,205,
  9317. - 10,42,198,10,205,91,10,242,97,8,237,91,
  9318. - 207,10,42,205,10,25,229,205,37,3,175,50,
  9319. - 197,10,195,118,10,205,29,3,33,0,0,57,
  9320. - 249,195,118,10,205,106,10,58,202,10,183,40,
  9321. - 22,205,14,7,237,91,209,10,19,19,19,205,
  9322. - 91,10,242,139,8,33,1,0,195,118,10,33,
  9323. - 0,0,195,118,10,205,126,10,252,255,205,108,
  9324. - 8,125,180,194,118,10,237,91,200,10,33,0,
  9325. - 0,205,91,10,242,118,10,237,91,207,10,42,
  9326. - 198,10,25,221,117,254,221,116,255,35,35,35,
  9327. - 229,205,70,7,193,124,230,3,103,35,35,35,
  9328. - 221,117,252,221,116,253,229,221,110,254,221,102,
  9329. - 255,229,33,212,10,229,205,124,6,193,193,221,
  9330. - 110,252,221,102,253,34,209,10,33,211,10,54,
  9331. - 4,33,209,10,227,205,147,6,193,62,1,50,
  9332. - 202,10,243,221,94,252,221,86,253,42,200,10,
  9333. - 183,237,82,34,200,10,203,124,40,17,33,0,
  9334. - 0,34,200,10,34,205,10,34,198,10,50,197,
  9335. - 10,24,37,221,94,252,221,86,253,42,198,10,
  9336. - 25,34,198,10,237,91,203,10,33,158,253,25,
  9337. - 237,91,198,10,205,91,10,242,68,9,33,0,
  9338. - 0,34,198,10,205,5,8,33,0,0,57,249,
  9339. - 251,195,118,10,205,106,10,33,49,13,126,183,
  9340. - 40,16,205,42,7,237,91,47,13,19,19,19,
  9341. - 205,91,10,242,117,9,58,142,15,198,1,50,
  9342. - 142,15,195,118,10,33,49,13,126,254,1,40,
  9343. - 25,254,3,202,7,10,254,5,202,21,10,33,
  9344. - 49,13,54,0,33,47,13,229,205,207,6,195,
  9345. - 118,10,58,141,15,183,32,72,33,51,13,126,
  9346. - 50,149,10,205,86,7,33,50,13,126,230,127,
  9347. - 183,32,40,58,142,15,230,127,50,142,15,183,
  9348. - 32,5,198,1,50,142,15,33,50,13,126,111,
  9349. - 23,159,103,203,125,58,142,15,40,5,198,128,
  9350. - 50,142,15,33,50,13,119,33,50,13,126,111,
  9351. - 23,159,103,229,205,237,5,193,33,211,10,54,
  9352. - 2,33,2,0,34,209,10,58,154,10,33,212,
  9353. - 10,119,58,148,10,33,213,10,119,33,209,10,
  9354. - 229,205,147,6,193,24,128,42,47,13,229,33,
  9355. - 50,13,229,205,191,4,193,24,239,33,211,10,
  9356. - 54,6,33,3,0,34,209,10,58,154,10,33,
  9357. - 212,10,119,58,148,10,33,213,10,119,33,214,
  9358. - 10,54,5,33,209,10,229,205,147,6,24,200,
  9359. - 205,106,10,33,49,13,54,0,33,47,13,229,
  9360. - 205,207,6,33,209,10,227,205,147,6,193,205,
  9361. - 80,9,205,145,8,24,248,124,170,250,99,10,
  9362. - 237,82,201,124,230,128,237,82,60,201,225,253,
  9363. - 229,221,229,221,33,0,0,221,57,233,221,249,
  9364. - 221,225,253,225,201,233,225,253,229,221,229,221,
  9365. - 33,0,0,221,57,94,35,86,35,235,57,249,
  9366. - 235,233,0,0,0,0,0,0,0,0,0,0,
  9367. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9368. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9369. - 0,0,0,0,0,0,0,0,0,0,0,0,
  9370. - 0,0,0,0,0
  9371. - } ;
  9372. -
  9373. -#endif