1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /* cx25840 - Conexant CX25840 audio/video decoder driver
4 * Copyright (C) 2004 Ulf Eklund
6 * Based on the saa7115 driver and on the first version of Chris Kennedy's
9 * Changes by Tyler Trafford <tatrafford@comcast.net>
10 * - cleanup/rewrite for V4L2 API (2005)
12 * VBI support by Hans Verkuil <hverkuil@xs4all.nl>.
14 * NTSC sliced VBI support by Christopher Neufeld <television@cneufeld.ca>
15 * with additional fixes by Hans Verkuil <hverkuil@xs4all.nl>.
17 * CX23885 support by Steven Toth <stoth@linuxtv.org>.
19 * CX2388[578] IRQ handling, IO Pin mux configuration and other small fixes are
20 * Copyright (C) 2010 Andy Walls <awalls@md.metrocast.net>
22 * CX23888 DIF support for the HVR1850
23 * Copyright (C) 2011 Steven Toth <stoth@kernellabs.com>
25 * CX2584x pin to pad mapping and output format configuration support are
26 * Copyright (C) 2011 Maciej S. Szmigiero <mail@maciej.szmigiero.name>
29 #include <linux/kernel.h>
30 #include <linux/module.h>
31 #include <linux/slab.h>
32 #include <linux/videodev2.h>
33 #include <linux/i2c.h>
34 #include <linux/delay.h>
35 #include <linux/math64.h>
36 #include <media/v4l2-common.h>
37 #include <media/drv-intf/cx25840.h>
39 #include "cx25840-core.h"
41 MODULE_DESCRIPTION("Conexant CX25840 audio/video decoder driver");
42 MODULE_AUTHOR("Ulf Eklund, Chris Kennedy, Hans Verkuil, Tyler Trafford");
43 MODULE_LICENSE("GPL");
45 #define CX25840_VID_INT_STAT_REG 0x410
46 #define CX25840_VID_INT_STAT_BITS 0x0000ffff
47 #define CX25840_VID_INT_MASK_BITS 0xffff0000
48 #define CX25840_VID_INT_MASK_SHFT 16
49 #define CX25840_VID_INT_MASK_REG 0x412
51 #define CX23885_AUD_MC_INT_MASK_REG 0x80c
52 #define CX23885_AUD_MC_INT_STAT_BITS 0xffff0000
53 #define CX23885_AUD_MC_INT_CTRL_BITS 0x0000ffff
54 #define CX23885_AUD_MC_INT_STAT_SHFT 16
56 #define CX25840_AUD_INT_CTRL_REG 0x812
57 #define CX25840_AUD_INT_STAT_REG 0x813
59 #define CX23885_PIN_CTRL_IRQ_REG 0x123
60 #define CX23885_PIN_CTRL_IRQ_IR_STAT 0x40
61 #define CX23885_PIN_CTRL_IRQ_AUD_STAT 0x20
62 #define CX23885_PIN_CTRL_IRQ_VID_STAT 0x10
64 #define CX25840_IR_STATS_REG 0x210
65 #define CX25840_IR_IRQEN_REG 0x214
67 static int cx25840_debug
;
69 module_param_named(debug
, cx25840_debug
, int, 0644);
71 MODULE_PARM_DESC(debug
, "Debugging messages [0=Off (default) 1=On]");
73 /* ----------------------------------------------------------------------- */
74 static void cx23888_std_setup(struct i2c_client
*client
);
76 int cx25840_write(struct i2c_client
*client
, u16 addr
, u8 value
)
80 buffer
[0] = addr
>> 8;
81 buffer
[1] = addr
& 0xff;
83 return i2c_master_send(client
, buffer
, 3);
86 int cx25840_write4(struct i2c_client
*client
, u16 addr
, u32 value
)
90 buffer
[0] = addr
>> 8;
91 buffer
[1] = addr
& 0xff;
92 buffer
[2] = value
& 0xff;
93 buffer
[3] = (value
>> 8) & 0xff;
94 buffer
[4] = (value
>> 16) & 0xff;
95 buffer
[5] = value
>> 24;
96 return i2c_master_send(client
, buffer
, 6);
99 u8
cx25840_read(struct i2c_client
*client
, u16 addr
)
101 struct i2c_msg msgs
[2];
102 u8 tx_buf
[2], rx_buf
[1];
104 /* Write register address */
105 tx_buf
[0] = addr
>> 8;
106 tx_buf
[1] = addr
& 0xff;
107 msgs
[0].addr
= client
->addr
;
110 msgs
[0].buf
= (char *)tx_buf
;
112 /* Read data from register */
113 msgs
[1].addr
= client
->addr
;
114 msgs
[1].flags
= I2C_M_RD
;
116 msgs
[1].buf
= (char *)rx_buf
;
118 if (i2c_transfer(client
->adapter
, msgs
, 2) < 2)
124 u32
cx25840_read4(struct i2c_client
*client
, u16 addr
)
126 struct i2c_msg msgs
[2];
127 u8 tx_buf
[2], rx_buf
[4];
129 /* Write register address */
130 tx_buf
[0] = addr
>> 8;
131 tx_buf
[1] = addr
& 0xff;
132 msgs
[0].addr
= client
->addr
;
135 msgs
[0].buf
= (char *)tx_buf
;
137 /* Read data from registers */
138 msgs
[1].addr
= client
->addr
;
139 msgs
[1].flags
= I2C_M_RD
;
141 msgs
[1].buf
= (char *)rx_buf
;
143 if (i2c_transfer(client
->adapter
, msgs
, 2) < 2)
146 return (rx_buf
[3] << 24) | (rx_buf
[2] << 16) | (rx_buf
[1] << 8) |
150 int cx25840_and_or(struct i2c_client
*client
, u16 addr
, unsigned int and_mask
,
153 return cx25840_write(client
, addr
,
154 (cx25840_read(client
, addr
) & and_mask
) |
158 int cx25840_and_or4(struct i2c_client
*client
, u16 addr
, u32 and_mask
,
161 return cx25840_write4(client
, addr
,
162 (cx25840_read4(client
, addr
) & and_mask
) |
166 /* ----------------------------------------------------------------------- */
168 static int set_input(struct i2c_client
*client
,
169 enum cx25840_video_input vid_input
,
170 enum cx25840_audio_input aud_input
);
172 /* ----------------------------------------------------------------------- */
174 static int cx23885_s_io_pin_config(struct v4l2_subdev
*sd
, size_t n
,
175 struct v4l2_subdev_io_pin_config
*p
)
177 struct i2c_client
*client
= v4l2_get_subdevdata(sd
);
180 u8 gpio_oe
, gpio_data
, strength
;
182 pin_ctrl
= cx25840_read4(client
, 0x120);
183 gpio_oe
= cx25840_read(client
, 0x160);
184 gpio_data
= cx25840_read(client
, 0x164);
186 for (i
= 0; i
< n
; i
++) {
187 strength
= p
[i
].strength
;
188 if (strength
> CX25840_PIN_DRIVE_FAST
)
189 strength
= CX25840_PIN_DRIVE_FAST
;
192 case CX23885_PIN_IRQ_N_GPIO16
:
193 if (p
[i
].function
!= CX23885_PAD_IRQ_N
) {
195 pin_ctrl
&= ~(0x1 << 25);
199 (BIT(V4L2_SUBDEV_IO_PIN_DISABLE
) |
200 BIT(V4L2_SUBDEV_IO_PIN_INPUT
))) {
201 pin_ctrl
&= ~(0x1 << 25);
203 pin_ctrl
|= (0x1 << 25);
206 BIT(V4L2_SUBDEV_IO_PIN_ACTIVE_LOW
)) {
207 pin_ctrl
&= ~(0x1 << 24);
209 pin_ctrl
|= (0x1 << 24);
213 case CX23885_PIN_IR_RX_GPIO19
:
214 if (p
[i
].function
!= CX23885_PAD_GPIO19
) {
216 gpio_oe
|= (0x1 << 0);
217 pin_ctrl
&= ~(0x3 << 18);
218 pin_ctrl
|= (strength
<< 18);
221 gpio_oe
&= ~(0x1 << 0);
222 if (p
[i
].flags
& BIT(V4L2_SUBDEV_IO_PIN_SET_VALUE
)) {
223 gpio_data
&= ~(0x1 << 0);
224 gpio_data
|= ((p
[i
].value
& 0x1) << 0);
226 pin_ctrl
&= ~(0x3 << 12);
227 pin_ctrl
|= (strength
<< 12);
230 case CX23885_PIN_IR_TX_GPIO20
:
231 if (p
[i
].function
!= CX23885_PAD_GPIO20
) {
233 gpio_oe
|= (0x1 << 1);
234 if (p
[i
].flags
& BIT(V4L2_SUBDEV_IO_PIN_DISABLE
))
235 pin_ctrl
&= ~(0x1 << 10);
237 pin_ctrl
|= (0x1 << 10);
238 pin_ctrl
&= ~(0x3 << 18);
239 pin_ctrl
|= (strength
<< 18);
242 gpio_oe
&= ~(0x1 << 1);
243 if (p
[i
].flags
& BIT(V4L2_SUBDEV_IO_PIN_SET_VALUE
)) {
244 gpio_data
&= ~(0x1 << 1);
245 gpio_data
|= ((p
[i
].value
& 0x1) << 1);
247 pin_ctrl
&= ~(0x3 << 12);
248 pin_ctrl
|= (strength
<< 12);
251 case CX23885_PIN_I2S_SDAT_GPIO21
:
252 if (p
[i
].function
!= CX23885_PAD_GPIO21
) {
254 /* TODO: Input or Output config */
255 gpio_oe
|= (0x1 << 2);
256 pin_ctrl
&= ~(0x3 << 22);
257 pin_ctrl
|= (strength
<< 22);
260 gpio_oe
&= ~(0x1 << 2);
261 if (p
[i
].flags
& BIT(V4L2_SUBDEV_IO_PIN_SET_VALUE
)) {
262 gpio_data
&= ~(0x1 << 2);
263 gpio_data
|= ((p
[i
].value
& 0x1) << 2);
265 pin_ctrl
&= ~(0x3 << 12);
266 pin_ctrl
|= (strength
<< 12);
269 case CX23885_PIN_I2S_WCLK_GPIO22
:
270 if (p
[i
].function
!= CX23885_PAD_GPIO22
) {
272 /* TODO: Input or Output config */
273 gpio_oe
|= (0x1 << 3);
274 pin_ctrl
&= ~(0x3 << 22);
275 pin_ctrl
|= (strength
<< 22);
278 gpio_oe
&= ~(0x1 << 3);
279 if (p
[i
].flags
& BIT(V4L2_SUBDEV_IO_PIN_SET_VALUE
)) {
280 gpio_data
&= ~(0x1 << 3);
281 gpio_data
|= ((p
[i
].value
& 0x1) << 3);
283 pin_ctrl
&= ~(0x3 << 12);
284 pin_ctrl
|= (strength
<< 12);
287 case CX23885_PIN_I2S_BCLK_GPIO23
:
288 if (p
[i
].function
!= CX23885_PAD_GPIO23
) {
290 /* TODO: Input or Output config */
291 gpio_oe
|= (0x1 << 4);
292 pin_ctrl
&= ~(0x3 << 22);
293 pin_ctrl
|= (strength
<< 22);
296 gpio_oe
&= ~(0x1 << 4);
297 if (p
[i
].flags
& BIT(V4L2_SUBDEV_IO_PIN_SET_VALUE
)) {
298 gpio_data
&= ~(0x1 << 4);
299 gpio_data
|= ((p
[i
].value
& 0x1) << 4);
301 pin_ctrl
&= ~(0x3 << 12);
302 pin_ctrl
|= (strength
<< 12);
308 cx25840_write(client
, 0x164, gpio_data
);
309 cx25840_write(client
, 0x160, gpio_oe
);
310 cx25840_write4(client
, 0x120, pin_ctrl
);
314 static u8
cx25840_function_to_pad(struct i2c_client
*client
, u8 function
)
316 if (function
> CX25840_PAD_VRESET
) {
317 v4l_err(client
, "invalid function %u, assuming default\n",
318 (unsigned int)function
);
325 static void cx25840_set_invert(u8
*pinctrl3
, u8
*voutctrl4
, u8 function
,
329 case CX25840_PAD_IRQ_N
:
336 case CX25840_PAD_ACTIVE
:
338 *voutctrl4
|= BIT(2);
340 *voutctrl4
&= ~BIT(2);
343 case CX25840_PAD_VACTIVE
:
345 *voutctrl4
|= BIT(5);
347 *voutctrl4
&= ~BIT(5);
350 case CX25840_PAD_CBFLAG
:
352 *voutctrl4
|= BIT(4);
354 *voutctrl4
&= ~BIT(4);
357 case CX25840_PAD_VRESET
:
359 *voutctrl4
|= BIT(0);
361 *voutctrl4
&= ~BIT(0);
365 if (function
!= CX25840_PAD_DEFAULT
)
369 case CX25840_PIN_DVALID_PRGM0
:
371 *voutctrl4
|= BIT(6);
373 *voutctrl4
&= ~BIT(6);
376 case CX25840_PIN_HRESET_PRGM2
:
378 *voutctrl4
|= BIT(1);
380 *voutctrl4
&= ~BIT(1);
385 static int cx25840_s_io_pin_config(struct v4l2_subdev
*sd
, size_t n
,
386 struct v4l2_subdev_io_pin_config
*p
)
388 struct i2c_client
*client
= v4l2_get_subdevdata(sd
);
390 u8 pinctrl
[6], pinconf
[10], voutctrl4
;
392 for (i
= 0; i
< 6; i
++)
393 pinctrl
[i
] = cx25840_read(client
, 0x114 + i
);
395 for (i
= 0; i
< 10; i
++)
396 pinconf
[i
] = cx25840_read(client
, 0x11c + i
);
398 voutctrl4
= cx25840_read(client
, 0x407);
400 for (i
= 0; i
< n
; i
++) {
401 u8 strength
= p
[i
].strength
;
403 if (strength
!= CX25840_PIN_DRIVE_SLOW
&&
404 strength
!= CX25840_PIN_DRIVE_MEDIUM
&&
405 strength
!= CX25840_PIN_DRIVE_FAST
) {
407 "invalid drive speed for pin %u (%u), assuming fast\n",
408 (unsigned int)p
[i
].pin
,
409 (unsigned int)strength
);
411 strength
= CX25840_PIN_DRIVE_FAST
;
415 case CX25840_PIN_DVALID_PRGM0
:
416 if (p
[i
].flags
& BIT(V4L2_SUBDEV_IO_PIN_DISABLE
))
417 pinctrl
[0] &= ~BIT(6);
419 pinctrl
[0] |= BIT(6);
422 pinconf
[3] |= cx25840_function_to_pad(client
,
425 cx25840_set_invert(&pinctrl
[3], &voutctrl4
,
427 CX25840_PIN_DVALID_PRGM0
,
429 BIT(V4L2_SUBDEV_IO_PIN_ACTIVE_LOW
));
431 pinctrl
[4] &= ~(3 << 2); /* CX25840_PIN_DRIVE_MEDIUM */
433 case CX25840_PIN_DRIVE_SLOW
:
434 pinctrl
[4] |= 1 << 2;
437 case CX25840_PIN_DRIVE_FAST
:
438 pinctrl
[4] |= 2 << 2;
444 case CX25840_PIN_HRESET_PRGM2
:
445 if (p
[i
].flags
& BIT(V4L2_SUBDEV_IO_PIN_DISABLE
))
446 pinctrl
[1] &= ~BIT(0);
448 pinctrl
[1] |= BIT(0);
451 pinconf
[4] |= cx25840_function_to_pad(client
,
454 cx25840_set_invert(&pinctrl
[3], &voutctrl4
,
456 CX25840_PIN_HRESET_PRGM2
,
458 BIT(V4L2_SUBDEV_IO_PIN_ACTIVE_LOW
));
460 pinctrl
[4] &= ~(3 << 2); /* CX25840_PIN_DRIVE_MEDIUM */
462 case CX25840_PIN_DRIVE_SLOW
:
463 pinctrl
[4] |= 1 << 2;
466 case CX25840_PIN_DRIVE_FAST
:
467 pinctrl
[4] |= 2 << 2;
473 case CX25840_PIN_PLL_CLK_PRGM7
:
474 if (p
[i
].flags
& BIT(V4L2_SUBDEV_IO_PIN_DISABLE
))
475 pinctrl
[2] &= ~BIT(2);
477 pinctrl
[2] |= BIT(2);
479 switch (p
[i
].function
) {
480 case CX25840_PAD_XTI_X5_DLL
:
484 case CX25840_PAD_AUX_PLL
:
488 case CX25840_PAD_VID_PLL
:
492 case CX25840_PAD_XTI
:
499 cx25840_function_to_pad(client
,
507 v4l_err(client
, "invalid or unsupported pin %u\n",
508 (unsigned int)p
[i
].pin
);
513 cx25840_write(client
, 0x407, voutctrl4
);
515 for (i
= 0; i
< 6; i
++)
516 cx25840_write(client
, 0x114 + i
, pinctrl
[i
]);
518 for (i
= 0; i
< 10; i
++)
519 cx25840_write(client
, 0x11c + i
, pinconf
[i
]);
524 static int common_s_io_pin_config(struct v4l2_subdev
*sd
, size_t n
,
525 struct v4l2_subdev_io_pin_config
*pincfg
)
527 struct cx25840_state
*state
= to_state(sd
);
529 if (is_cx2388x(state
))
530 return cx23885_s_io_pin_config(sd
, n
, pincfg
);
531 else if (is_cx2584x(state
))
532 return cx25840_s_io_pin_config(sd
, n
, pincfg
);
536 /* ----------------------------------------------------------------------- */
538 static void init_dll1(struct i2c_client
*client
)
541 * This is the Hauppauge sequence used to
542 * initialize the Delay Lock Loop 1 (ADC DLL).
544 cx25840_write(client
, 0x159, 0x23);
545 cx25840_write(client
, 0x15a, 0x87);
546 cx25840_write(client
, 0x15b, 0x06);
548 cx25840_write(client
, 0x159, 0xe1);
550 cx25840_write(client
, 0x15a, 0x86);
551 cx25840_write(client
, 0x159, 0xe0);
552 cx25840_write(client
, 0x159, 0xe1);
553 cx25840_write(client
, 0x15b, 0x10);
556 static void init_dll2(struct i2c_client
*client
)
559 * This is the Hauppauge sequence used to
560 * initialize the Delay Lock Loop 2 (ADC DLL).
562 cx25840_write(client
, 0x15d, 0xe3);
563 cx25840_write(client
, 0x15e, 0x86);
564 cx25840_write(client
, 0x15f, 0x06);
566 cx25840_write(client
, 0x15d, 0xe1);
567 cx25840_write(client
, 0x15d, 0xe0);
568 cx25840_write(client
, 0x15d, 0xe1);
571 static void cx25836_initialize(struct i2c_client
*client
)
574 *reset configuration is described on page 3-77
575 * of the CX25836 datasheet
579 cx25840_and_or(client
, 0x000, ~0x01, 0x01);
580 cx25840_and_or(client
, 0x000, ~0x01, 0x00);
582 cx25840_and_or(client
, 0x15a, ~0x70, 0x00);
584 cx25840_and_or(client
, 0x15b, ~0x1e, 0x06);
586 cx25840_and_or(client
, 0x159, ~0x02, 0x02);
590 cx25840_and_or(client
, 0x159, ~0x02, 0x00);
592 cx25840_and_or(client
, 0x159, ~0xc0, 0xc0);
594 cx25840_and_or(client
, 0x159, ~0x01, 0x00);
595 cx25840_and_or(client
, 0x159, ~0x01, 0x01);
597 cx25840_and_or(client
, 0x15b, ~0x1e, 0x10);
600 static void cx25840_work_handler(struct work_struct
*work
)
602 struct cx25840_state
*state
= container_of(work
, struct cx25840_state
, fw_work
);
604 cx25840_loadfw(state
->c
);
605 wake_up(&state
->fw_wait
);
608 #define CX25840_VCONFIG_SET_BIT(state, opt_msk, voc, idx, bit, oneval) \
610 if ((state)->vid_config & (opt_msk)) { \
611 if (((state)->vid_config & (opt_msk)) == \
613 (voc)[idx] |= BIT(bit); \
615 (voc)[idx] &= ~BIT(bit); \
619 /* apply current vconfig to hardware regs */
620 static void cx25840_vconfig_apply(struct i2c_client
*client
)
622 struct cx25840_state
*state
= to_state(i2c_get_clientdata(client
));
626 for (i
= 0; i
< 3; i
++)
627 voutctrl
[i
] = cx25840_read(client
, 0x404 + i
);
629 if (state
->vid_config
& CX25840_VCONFIG_FMT_MASK
)
631 switch (state
->vid_config
& CX25840_VCONFIG_FMT_MASK
) {
632 case CX25840_VCONFIG_FMT_BT656
:
636 case CX25840_VCONFIG_FMT_VIP11
:
640 case CX25840_VCONFIG_FMT_VIP2
:
644 case CX25840_VCONFIG_FMT_BT601
:
650 CX25840_VCONFIG_SET_BIT(state
, CX25840_VCONFIG_RES_MASK
, voutctrl
,
651 0, 2, CX25840_VCONFIG_RES_10BIT
);
652 CX25840_VCONFIG_SET_BIT(state
, CX25840_VCONFIG_VBIRAW_MASK
, voutctrl
,
653 0, 3, CX25840_VCONFIG_VBIRAW_ENABLED
);
654 CX25840_VCONFIG_SET_BIT(state
, CX25840_VCONFIG_ANCDATA_MASK
, voutctrl
,
655 0, 4, CX25840_VCONFIG_ANCDATA_ENABLED
);
656 CX25840_VCONFIG_SET_BIT(state
, CX25840_VCONFIG_TASKBIT_MASK
, voutctrl
,
657 0, 5, CX25840_VCONFIG_TASKBIT_ONE
);
658 CX25840_VCONFIG_SET_BIT(state
, CX25840_VCONFIG_ACTIVE_MASK
, voutctrl
,
659 1, 2, CX25840_VCONFIG_ACTIVE_HORIZONTAL
);
660 CX25840_VCONFIG_SET_BIT(state
, CX25840_VCONFIG_VALID_MASK
, voutctrl
,
661 1, 3, CX25840_VCONFIG_VALID_ANDACTIVE
);
662 CX25840_VCONFIG_SET_BIT(state
, CX25840_VCONFIG_HRESETW_MASK
, voutctrl
,
663 1, 4, CX25840_VCONFIG_HRESETW_PIXCLK
);
665 if (state
->vid_config
& CX25840_VCONFIG_CLKGATE_MASK
)
666 voutctrl
[1] &= ~(3 << 6);
667 switch (state
->vid_config
& CX25840_VCONFIG_CLKGATE_MASK
) {
668 case CX25840_VCONFIG_CLKGATE_VALID
:
672 case CX25840_VCONFIG_CLKGATE_VALIDACTIVE
:
676 case CX25840_VCONFIG_CLKGATE_NONE
:
682 CX25840_VCONFIG_SET_BIT(state
, CX25840_VCONFIG_DCMODE_MASK
, voutctrl
,
683 2, 0, CX25840_VCONFIG_DCMODE_BYTES
);
684 CX25840_VCONFIG_SET_BIT(state
, CX25840_VCONFIG_IDID0S_MASK
, voutctrl
,
685 2, 1, CX25840_VCONFIG_IDID0S_LINECNT
);
686 CX25840_VCONFIG_SET_BIT(state
, CX25840_VCONFIG_VIPCLAMP_MASK
, voutctrl
,
687 2, 4, CX25840_VCONFIG_VIPCLAMP_ENABLED
);
689 for (i
= 0; i
< 3; i
++)
690 cx25840_write(client
, 0x404 + i
, voutctrl
[i
]);
693 static void cx25840_initialize(struct i2c_client
*client
)
696 struct cx25840_state
*state
= to_state(i2c_get_clientdata(client
));
697 struct workqueue_struct
*q
;
699 /* datasheet startup in numbered steps, refer to page 3-77 */
701 cx25840_and_or(client
, 0x803, ~0x10, 0x00);
703 * The default of this register should be 4, but I get 0 instead.
704 * Set this register to 4 manually.
706 cx25840_write(client
, 0x000, 0x04);
710 cx25840_write(client
, 0x136, 0x0a);
712 cx25840_write(client
, 0x13c, 0x01);
713 cx25840_write(client
, 0x13c, 0x00);
716 * Do the firmware load in a work handler to prevent.
717 * Otherwise the kernel is blocked waiting for the
718 * bit-banging i2c interface to finish uploading the
721 INIT_WORK(&state
->fw_work
, cx25840_work_handler
);
722 init_waitqueue_head(&state
->fw_wait
);
723 q
= create_singlethread_workqueue("cx25840_fw");
725 prepare_to_wait(&state
->fw_wait
, &wait
, TASK_UNINTERRUPTIBLE
);
726 queue_work(q
, &state
->fw_work
);
728 finish_wait(&state
->fw_wait
, &wait
);
729 destroy_workqueue(q
);
733 cx25840_write(client
, 0x115, 0x8c);
734 cx25840_write(client
, 0x116, 0x07);
735 cx25840_write(client
, 0x118, 0x02);
737 cx25840_write(client
, 0x4a5, 0x80);
738 cx25840_write(client
, 0x4a5, 0x00);
739 cx25840_write(client
, 0x402, 0x00);
741 cx25840_and_or(client
, 0x401, ~0x18, 0);
742 cx25840_and_or(client
, 0x4a2, ~0x10, 0x10);
743 /* steps 8c and 8d are done in change_input() */
745 cx25840_write(client
, 0x8d3, 0x1f);
746 cx25840_write(client
, 0x8e3, 0x03);
748 cx25840_std_setup(client
);
750 /* trial and error says these are needed to get audio */
751 cx25840_write(client
, 0x914, 0xa0);
752 cx25840_write(client
, 0x918, 0xa0);
753 cx25840_write(client
, 0x919, 0x01);
755 /* stereo preferred */
756 cx25840_write(client
, 0x809, 0x04);
758 cx25840_write(client
, 0x8cf, 0x0f);
761 set_input(client
, state
->vid_input
, state
->aud_input
);
763 if (state
->generic_mode
)
764 cx25840_vconfig_apply(client
);
766 /* start microcontroller */
767 cx25840_and_or(client
, 0x803, ~0x10, 0x10);
770 static void cx23885_initialize(struct i2c_client
*client
)
773 struct cx25840_state
*state
= to_state(i2c_get_clientdata(client
));
775 struct workqueue_struct
*q
;
777 /* cx23885 sets hostdata to clk_freq pointer */
778 if (v4l2_get_subdev_hostdata(&state
->sd
))
779 clk_freq
= *((u32
*)v4l2_get_subdev_hostdata(&state
->sd
));
782 * Come out of digital power down
783 * The CX23888, at least, needs this, otherwise registers aside from
784 * 0x0-0x2 can't be read or written.
786 cx25840_write(client
, 0x000, 0);
789 cx25840_and_or(client
, 0x102, ~0x01, 0x01);
790 cx25840_and_or(client
, 0x102, ~0x01, 0x00);
792 /* Stop microcontroller */
793 cx25840_and_or(client
, 0x803, ~0x10, 0x00);
796 cx25840_write(client
, 0x398, 0);
799 * Trust the default xtal, no division
800 * '885: 28.636363... MHz
801 * '887: 25.000000 MHz
802 * '888: 50.000000 MHz
804 cx25840_write(client
, 0x2, 0x76);
806 /* Power up all the PLL's and DLL */
807 cx25840_write(client
, 0x1, 0x40);
813 * 50.0 MHz * (0xb + 0xe8ba26/0x2000000)/4 = 5 * 28.636363 MHz
814 * 572.73 MHz before post divide
816 if (clk_freq
== 25000000) {
817 /* 888/ImpactVCBe or 25Mhz xtal */
818 ; /* nothing to do */
820 /* HVR1850 or 50MHz xtal */
821 cx25840_write(client
, 0x2, 0x71);
823 cx25840_write4(client
, 0x11c, 0x01d1744c);
824 cx25840_write4(client
, 0x118, 0x00000416);
825 cx25840_write4(client
, 0x404, 0x0010253e);
826 cx25840_write4(client
, 0x42c, 0x42600000);
827 cx25840_write4(client
, 0x44c, 0x161f1000);
831 * 25.0 MHz * (0x16 + 0x1d1744c/0x2000000)/4 = 5 * 28.636363 MHz
832 * 572.73 MHz before post divide
834 cx25840_write4(client
, 0x11c, 0x01d1744c);
835 cx25840_write4(client
, 0x118, 0x00000416);
840 * 28.636363 MHz * (0x14 + 0x0/0x2000000)/4 = 5 * 28.636363 MHz
841 * 572.73 MHz before post divide
843 cx25840_write4(client
, 0x11c, 0x00000000);
844 cx25840_write4(client
, 0x118, 0x00000414);
848 /* Disable DIF bypass */
849 cx25840_write4(client
, 0x33c, 0x00000001);
851 /* DIF Src phase inc */
852 cx25840_write4(client
, 0x340, 0x0df7df83);
856 * Setup for a BT.656 pixel clock of 13.5 Mpixels/second
858 * 28.636363 MHz * (0xf + 0x02be2c9/0x2000000)/4 = 8 * 13.5 MHz
859 * 432.0 MHz before post divide
865 if (clk_freq
== 25000000) {
866 /* 888/ImpactVCBe or 25MHz xtal */
867 cx25840_write4(client
, 0x10c, 0x01b6db7b);
868 cx25840_write4(client
, 0x108, 0x00000512);
870 /* 888/HVR1250 or 50MHz xtal */
871 cx25840_write4(client
, 0x10c, 0x13333333);
872 cx25840_write4(client
, 0x108, 0x00000515);
876 cx25840_write4(client
, 0x10c, 0x002be2c9);
877 cx25840_write4(client
, 0x108, 0x0000040f);
881 cx25840_write4(client
, 0x414, 0x00107d12);
884 if (is_cx23888(state
))
885 cx25840_write4(client
, 0x418, 0x1d008282);
887 cx25840_write4(client
, 0x420, 0x3d008282);
891 * Initial setup for audio sample clock:
892 * 48 ksps, 16 bits/sample, x160 multiplier = 122.88 MHz
893 * Initial I2S output/master clock(?):
894 * 48 ksps, 16 bits/sample, x16 multiplier = 12.288 MHz
899 * 50.0 MHz * (0x7 + 0x0bedfa4/0x2000000)/3 = 122.88 MHz
900 * 368.64 MHz before post divide
901 * 122.88 MHz / 0xa = 12.288 MHz
903 /* HVR1850 or 50MHz xtal or 25MHz xtal */
904 cx25840_write4(client
, 0x114, 0x017dbf48);
905 cx25840_write4(client
, 0x110, 0x000a030e);
909 * 25.0 MHz * (0xe + 0x17dbf48/0x2000000)/3 = 122.88 MHz
910 * 368.64 MHz before post divide
911 * 122.88 MHz / 0xa = 12.288 MHz
913 cx25840_write4(client
, 0x114, 0x017dbf48);
914 cx25840_write4(client
, 0x110, 0x000a030e);
919 * 28.636363 MHz * (0xc + 0x1bf0c9e/0x2000000)/3 = 122.88 MHz
920 * 368.64 MHz before post divide
921 * 122.88 MHz / 0xa = 12.288 MHz
923 cx25840_write4(client
, 0x114, 0x01bf0c9e);
924 cx25840_write4(client
, 0x110, 0x000a030c);
928 /* ADC2 input select */
929 cx25840_write(client
, 0x102, 0x10);
932 cx25840_write(client
, 0x103, 0x11);
934 /* Enable format auto detect */
935 cx25840_write(client
, 0x400, 0);
936 /* Fast subchroma lock */
937 /* White crush, Chroma AGC & Chroma Killer enabled */
938 cx25840_write(client
, 0x401, 0xe8);
940 /* Select AFE clock pad output source */
941 cx25840_write(client
, 0x144, 0x05);
943 /* Drive GPIO2 direction and values for HVR1700
944 * where an onboard mux selects the output of demodulator
945 * vs the 417. Failure to set this results in no DTV.
946 * It's safe to set this across all Hauppauge boards
947 * currently, regardless of the board type.
949 cx25840_write(client
, 0x160, 0x1d);
950 cx25840_write(client
, 0x164, 0x00);
953 * Do the firmware load in a work handler to prevent.
954 * Otherwise the kernel is blocked waiting for the
955 * bit-banging i2c interface to finish uploading the
958 INIT_WORK(&state
->fw_work
, cx25840_work_handler
);
959 init_waitqueue_head(&state
->fw_wait
);
960 q
= create_singlethread_workqueue("cx25840_fw");
962 prepare_to_wait(&state
->fw_wait
, &wait
, TASK_UNINTERRUPTIBLE
);
963 queue_work(q
, &state
->fw_work
);
965 finish_wait(&state
->fw_wait
, &wait
);
966 destroy_workqueue(q
);
970 * Call the cx23888 specific std setup func, we no longer rely on
971 * the generic cx24840 func.
973 if (is_cx23888(state
))
974 cx23888_std_setup(client
);
976 cx25840_std_setup(client
);
979 set_input(client
, state
->vid_input
, state
->aud_input
);
981 /* start microcontroller */
982 cx25840_and_or(client
, 0x803, ~0x10, 0x10);
984 /* Disable and clear video interrupts - we don't use them */
985 cx25840_write4(client
, CX25840_VID_INT_STAT_REG
, 0xffffffff);
987 /* Disable and clear audio interrupts - we don't use them */
988 cx25840_write(client
, CX25840_AUD_INT_CTRL_REG
, 0xff);
989 cx25840_write(client
, CX25840_AUD_INT_STAT_REG
, 0xff);
994 * - VIP 1.1 control codes - 10bit, blue field enable.
995 * - enable raw data during vertical blanking.
996 * - enable ancillary Data insertion for 656 or VIP.
998 cx25840_write4(client
, 0x404, 0x0010253e);
1000 /* CC on - VBI_LINE_CTRL3, FLD_VBI_MD_LINE12 */
1001 cx25840_write(client
, state
->vbi_regs_offset
+ 0x42f, 0x66);
1003 /* HVR-1250 / HVR1850 DIF related */
1004 /* Power everything up */
1005 cx25840_write4(client
, 0x130, 0x0);
1008 if (is_cx23888(state
))
1009 cx25840_write4(client
, 0x454, 0x6628021F);
1011 cx25840_write4(client
, 0x478, 0x6628021F);
1013 /* AFE_CLK_OUT_CTRL - Select the clock output source as output */
1014 cx25840_write4(client
, 0x144, 0x5);
1016 /* I2C_OUT_CTL - I2S output configuration as
1017 * Master, Sony, Left justified, left sample on WS=1
1019 cx25840_write4(client
, 0x918, 0x1a0);
1021 /* AFE_DIAG_CTRL1 */
1022 cx25840_write4(client
, 0x134, 0x000a1800);
1024 /* AFE_DIAG_CTRL3 - Inverted Polarity for Audio and Video */
1025 cx25840_write4(client
, 0x13c, 0x00310000);
1028 /* ----------------------------------------------------------------------- */
1030 static void cx231xx_initialize(struct i2c_client
*client
)
1033 struct cx25840_state
*state
= to_state(i2c_get_clientdata(client
));
1034 struct workqueue_struct
*q
;
1036 /* Internal Reset */
1037 cx25840_and_or(client
, 0x102, ~0x01, 0x01);
1038 cx25840_and_or(client
, 0x102, ~0x01, 0x00);
1040 /* Stop microcontroller */
1041 cx25840_and_or(client
, 0x803, ~0x10, 0x00);
1044 cx25840_write(client
, 0x398, 0);
1046 /* Trust the default xtal, no division */
1047 /* This changes for the cx23888 products */
1048 cx25840_write(client
, 0x2, 0x76);
1050 /* Bring down the regulator for AUX clk */
1051 cx25840_write(client
, 0x1, 0x40);
1053 /* Disable DIF bypass */
1054 cx25840_write4(client
, 0x33c, 0x00000001);
1056 /* DIF Src phase inc */
1057 cx25840_write4(client
, 0x340, 0x0df7df83);
1060 cx25840_write4(client
, 0x414, 0x00107d12);
1063 cx25840_write4(client
, 0x420, 0x3d008282);
1065 /* ADC2 input select */
1066 cx25840_write(client
, 0x102, 0x10);
1069 cx25840_write(client
, 0x103, 0x11);
1071 /* Enable format auto detect */
1072 cx25840_write(client
, 0x400, 0);
1073 /* Fast subchroma lock */
1074 /* White crush, Chroma AGC & Chroma Killer enabled */
1075 cx25840_write(client
, 0x401, 0xe8);
1078 * Do the firmware load in a work handler to prevent.
1079 * Otherwise the kernel is blocked waiting for the
1080 * bit-banging i2c interface to finish uploading the
1083 INIT_WORK(&state
->fw_work
, cx25840_work_handler
);
1084 init_waitqueue_head(&state
->fw_wait
);
1085 q
= create_singlethread_workqueue("cx25840_fw");
1087 prepare_to_wait(&state
->fw_wait
, &wait
, TASK_UNINTERRUPTIBLE
);
1088 queue_work(q
, &state
->fw_work
);
1090 finish_wait(&state
->fw_wait
, &wait
);
1091 destroy_workqueue(q
);
1094 cx25840_std_setup(client
);
1097 set_input(client
, state
->vid_input
, state
->aud_input
);
1099 /* start microcontroller */
1100 cx25840_and_or(client
, 0x803, ~0x10, 0x10);
1103 cx25840_write(client
, 0x404, 0x0b);
1106 cx25840_write(client
, 0x42f, 0x66);
1107 cx25840_write4(client
, 0x474, 0x1e1e601a);
1110 /* ----------------------------------------------------------------------- */
1112 void cx25840_std_setup(struct i2c_client
*client
)
1114 struct cx25840_state
*state
= to_state(i2c_get_clientdata(client
));
1115 v4l2_std_id std
= state
->std
;
1116 int hblank
, hactive
, burst
, vblank
, vactive
, sc
;
1117 int vblank656
, src_decimation
;
1118 int luma_lpf
, uv_lpf
, comb
;
1119 u32 pll_int
, pll_frac
, pll_post
;
1121 /* datasheet startup, step 8d */
1122 if (std
& ~V4L2_STD_NTSC
)
1123 cx25840_write(client
, 0x49f, 0x11);
1125 cx25840_write(client
, 0x49f, 0x14);
1127 /* generic mode uses the values that the chip autoconfig would set */
1128 if (std
& V4L2_STD_625_50
) {
1132 if (state
->generic_mode
) {
1141 src_decimation
= 0x21f;
1144 if (std
& V4L2_STD_SECAM
) {
1148 } else if (std
== V4L2_STD_PAL_Nc
) {
1149 if (state
->generic_mode
) {
1167 if (state
->generic_mode
) {
1172 src_decimation
= 0x21f;
1173 if (std
== V4L2_STD_PAL_60
) {
1174 if (!state
->generic_mode
) {
1184 } else if (std
== V4L2_STD_PAL_M
) {
1191 if (!state
->generic_mode
) {
1201 /* DEBUG: Displays configured PLL frequency */
1202 if (!is_cx231xx(state
)) {
1203 pll_int
= cx25840_read(client
, 0x108);
1204 pll_frac
= cx25840_read4(client
, 0x10c) & 0x1ffffff;
1205 pll_post
= cx25840_read(client
, 0x109);
1206 v4l_dbg(1, cx25840_debug
, client
,
1207 "PLL regs = int: %u, frac: %u, post: %u\n",
1208 pll_int
, pll_frac
, pll_post
);
1212 int pll
= (28636363L * ((((u64
)pll_int
) << 25L) + pll_frac
)) >> 25L;
1215 v4l_dbg(1, cx25840_debug
, client
,
1216 "PLL = %d.%06d MHz\n",
1217 pll
/ 1000000, pll
% 1000000);
1218 v4l_dbg(1, cx25840_debug
, client
,
1219 "PLL/8 = %d.%06d MHz\n",
1220 pll
/ 8000000, (pll
/ 8) % 1000000);
1222 fin
= ((u64
)src_decimation
* pll
) >> 12;
1223 v4l_dbg(1, cx25840_debug
, client
,
1224 "ADC Sampling freq = %d.%06d MHz\n",
1225 fin
/ 1000000, fin
% 1000000);
1227 fsc
= (((u64
)sc
) * pll
) >> 24L;
1228 v4l_dbg(1, cx25840_debug
, client
,
1229 "Chroma sub-carrier freq = %d.%06d MHz\n",
1230 fsc
/ 1000000, fsc
% 1000000);
1232 v4l_dbg(1, cx25840_debug
, client
,
1233 "hblank %i, hactive %i, vblank %i, vactive %i, vblank656 %i, src_dec %i, burst 0x%02x, luma_lpf %i, uv_lpf %i, comb 0x%02x, sc 0x%06x\n",
1234 hblank
, hactive
, vblank
, vactive
, vblank656
,
1235 src_decimation
, burst
, luma_lpf
, uv_lpf
,
1240 /* Sets horizontal blanking delay and active lines */
1241 cx25840_write(client
, 0x470, hblank
);
1242 cx25840_write(client
, 0x471,
1243 (((hblank
>> 8) & 0x3) | (hactive
<< 4)) & 0xff);
1244 cx25840_write(client
, 0x472, hactive
>> 4);
1246 /* Sets burst gate delay */
1247 cx25840_write(client
, 0x473, burst
);
1249 /* Sets vertical blanking delay and active duration */
1250 cx25840_write(client
, 0x474, vblank
);
1251 cx25840_write(client
, 0x475,
1252 (((vblank
>> 8) & 0x3) | (vactive
<< 4)) & 0xff);
1253 cx25840_write(client
, 0x476, vactive
>> 4);
1254 cx25840_write(client
, 0x477, vblank656
);
1256 /* Sets src decimation rate */
1257 cx25840_write(client
, 0x478, src_decimation
& 0xff);
1258 cx25840_write(client
, 0x479, (src_decimation
>> 8) & 0xff);
1260 /* Sets Luma and UV Low pass filters */
1261 cx25840_write(client
, 0x47a, luma_lpf
<< 6 | ((uv_lpf
<< 4) & 0x30));
1263 /* Enables comb filters */
1264 cx25840_write(client
, 0x47b, comb
);
1267 cx25840_write(client
, 0x47c, sc
);
1268 cx25840_write(client
, 0x47d, (sc
>> 8) & 0xff);
1269 cx25840_write(client
, 0x47e, (sc
>> 16) & 0xff);
1271 /* Sets VBI parameters */
1272 if (std
& V4L2_STD_625_50
) {
1273 cx25840_write(client
, 0x47f, 0x01);
1274 state
->vbi_line_offset
= 5;
1276 cx25840_write(client
, 0x47f, 0x00);
1277 state
->vbi_line_offset
= 8;
1281 /* ----------------------------------------------------------------------- */
1283 static void input_change(struct i2c_client
*client
)
1285 struct cx25840_state
*state
= to_state(i2c_get_clientdata(client
));
1286 v4l2_std_id std
= state
->std
;
1288 /* Follow step 8c and 8d of section 3.16 in the cx25840 datasheet */
1289 if (std
& V4L2_STD_SECAM
) {
1290 cx25840_write(client
, 0x402, 0);
1292 cx25840_write(client
, 0x402, 0x04);
1293 cx25840_write(client
, 0x49f,
1294 (std
& V4L2_STD_NTSC
) ? 0x14 : 0x11);
1296 cx25840_and_or(client
, 0x401, ~0x60, 0);
1297 cx25840_and_or(client
, 0x401, ~0x60, 0x60);
1299 /* Don't write into audio registers on cx2583x chips */
1300 if (is_cx2583x(state
))
1303 cx25840_and_or(client
, 0x810, ~0x01, 1);
1306 cx25840_write(client
, 0x808, 0xf9);
1307 cx25840_write(client
, 0x80b, 0x00);
1308 } else if (std
& V4L2_STD_525_60
) {
1310 * Certain Hauppauge PVR150 models have a hardware bug
1311 * that causes audio to drop out. For these models the
1312 * audio standard must be set explicitly.
1313 * To be precise: it affects cards with tuner models
1314 * 85, 99 and 112 (model numbers from tveeprom).
1316 int hw_fix
= state
->pvr150_workaround
;
1318 if (std
== V4L2_STD_NTSC_M_JP
) {
1319 /* Japan uses EIAJ audio standard */
1320 cx25840_write(client
, 0x808, hw_fix
? 0x2f : 0xf7);
1321 } else if (std
== V4L2_STD_NTSC_M_KR
) {
1322 /* South Korea uses A2 audio standard */
1323 cx25840_write(client
, 0x808, hw_fix
? 0x3f : 0xf8);
1325 /* Others use the BTSC audio standard */
1326 cx25840_write(client
, 0x808, hw_fix
? 0x1f : 0xf6);
1328 cx25840_write(client
, 0x80b, 0x00);
1329 } else if (std
& V4L2_STD_PAL
) {
1330 /* Autodetect audio standard and audio system */
1331 cx25840_write(client
, 0x808, 0xff);
1333 * Since system PAL-L is pretty much non-existent and
1334 * not used by any public broadcast network, force
1335 * 6.5 MHz carrier to be interpreted as System DK,
1336 * this avoids DK audio detection instability
1338 cx25840_write(client
, 0x80b, 0x00);
1339 } else if (std
& V4L2_STD_SECAM
) {
1340 /* Autodetect audio standard and audio system */
1341 cx25840_write(client
, 0x808, 0xff);
1343 * If only one of SECAM-DK / SECAM-L is required, then force
1344 * 6.5MHz carrier, else autodetect it
1346 if ((std
& V4L2_STD_SECAM_DK
) &&
1347 !(std
& (V4L2_STD_SECAM_L
| V4L2_STD_SECAM_LC
))) {
1348 /* 6.5 MHz carrier to be interpreted as System DK */
1349 cx25840_write(client
, 0x80b, 0x00);
1350 } else if (!(std
& V4L2_STD_SECAM_DK
) &&
1351 (std
& (V4L2_STD_SECAM_L
| V4L2_STD_SECAM_LC
))) {
1352 /* 6.5 MHz carrier to be interpreted as System L */
1353 cx25840_write(client
, 0x80b, 0x08);
1355 /* 6.5 MHz carrier to be autodetected */
1356 cx25840_write(client
, 0x80b, 0x10);
1360 cx25840_and_or(client
, 0x810, ~0x01, 0);
1363 static int set_input(struct i2c_client
*client
,
1364 enum cx25840_video_input vid_input
,
1365 enum cx25840_audio_input aud_input
)
1367 struct cx25840_state
*state
= to_state(i2c_get_clientdata(client
));
1368 u8 is_composite
= (vid_input
>= CX25840_COMPOSITE1
&&
1369 vid_input
<= CX25840_COMPOSITE8
);
1370 u8 is_component
= (vid_input
& CX25840_COMPONENT_ON
) ==
1371 CX25840_COMPONENT_ON
;
1372 u8 is_dif
= (vid_input
& CX25840_DIF_ON
) ==
1374 u8 is_svideo
= (vid_input
& CX25840_SVIDEO_ON
) ==
1376 int luma
= vid_input
& 0xf0;
1377 int chroma
= vid_input
& 0xf00;
1381 v4l_dbg(1, cx25840_debug
, client
,
1382 "decoder set video input %d, audio input %d\n",
1383 vid_input
, aud_input
);
1385 if (vid_input
>= CX25840_VIN1_CH1
) {
1386 v4l_dbg(1, cx25840_debug
, client
, "vid_input 0x%x\n",
1388 reg
= vid_input
& 0xff;
1389 is_composite
= !is_component
&&
1390 ((vid_input
& CX25840_SVIDEO_ON
) != CX25840_SVIDEO_ON
);
1392 v4l_dbg(1, cx25840_debug
, client
, "mux cfg 0x%x comp=%d\n",
1394 } else if (is_composite
) {
1395 reg
= 0xf0 + (vid_input
- CX25840_COMPOSITE1
);
1397 if ((vid_input
& ~0xff0) ||
1398 luma
< CX25840_SVIDEO_LUMA1
||
1399 luma
> CX25840_SVIDEO_LUMA8
||
1400 chroma
< CX25840_SVIDEO_CHROMA4
||
1401 chroma
> CX25840_SVIDEO_CHROMA8
) {
1402 v4l_err(client
, "0x%04x is not a valid video input!\n",
1406 reg
= 0xf0 + ((luma
- CX25840_SVIDEO_LUMA1
) >> 4);
1407 if (chroma
>= CX25840_SVIDEO_CHROMA7
) {
1409 reg
|= (chroma
- CX25840_SVIDEO_CHROMA7
) >> 2;
1412 reg
|= (chroma
- CX25840_SVIDEO_CHROMA4
) >> 4;
1416 /* The caller has previously prepared the correct routing
1417 * configuration in reg (for the cx23885) so we have no
1418 * need to attempt to flip bits for earlier av decoders.
1420 if (!is_cx2388x(state
) && !is_cx231xx(state
)) {
1421 switch (aud_input
) {
1422 case CX25840_AUDIO_SERIAL
:
1423 /* do nothing, use serial audio input */
1425 case CX25840_AUDIO4
:
1428 case CX25840_AUDIO5
:
1432 case CX25840_AUDIO6
:
1436 case CX25840_AUDIO7
:
1439 case CX25840_AUDIO8
:
1444 v4l_err(client
, "0x%04x is not a valid audio input!\n",
1450 cx25840_write(client
, 0x103, reg
);
1452 /* Set INPUT_MODE to Composite, S-Video or Component */
1454 cx25840_and_or(client
, 0x401, ~0x6, 0x6);
1456 cx25840_and_or(client
, 0x401, ~0x6, is_composite
? 0 : 0x02);
1458 if (is_cx2388x(state
)) {
1459 /* Enable or disable the DIF for tuner use */
1461 cx25840_and_or(client
, 0x102, ~0x80, 0x80);
1463 /* Set of defaults for NTSC and PAL */
1464 cx25840_write4(client
, 0x31c, 0xc2262600);
1465 cx25840_write4(client
, 0x320, 0xc2262600);
1467 /* 18271 IF - Nobody else yet uses a different
1468 * tuner with the DIF, so these are reasonable
1469 * assumptions (HVR1250 and HVR1850 specific).
1471 cx25840_write4(client
, 0x318, 0xda262600);
1472 cx25840_write4(client
, 0x33c, 0x2a24c800);
1473 cx25840_write4(client
, 0x104, 0x0704dd00);
1475 cx25840_write4(client
, 0x300, 0x015c28f5);
1477 cx25840_and_or(client
, 0x102, ~0x80, 0);
1478 cx25840_write4(client
, 0x340, 0xdf7df83);
1479 cx25840_write4(client
, 0x104, 0x0704dd80);
1480 cx25840_write4(client
, 0x314, 0x22400600);
1481 cx25840_write4(client
, 0x318, 0x40002600);
1482 cx25840_write4(client
, 0x324, 0x40002600);
1483 cx25840_write4(client
, 0x32c, 0x0250e620);
1484 cx25840_write4(client
, 0x39c, 0x01FF0B00);
1486 cx25840_write4(client
, 0x410, 0xffff0dbf);
1487 cx25840_write4(client
, 0x414, 0x00137d03);
1489 if (is_cx23888(state
)) {
1490 /* 888 MISC_TIM_CTRL */
1491 cx25840_write4(client
, 0x42c, 0x42600000);
1492 /* 888 FIELD_COUNT */
1493 cx25840_write4(client
, 0x430, 0x0000039b);
1494 /* 888 VSCALE_CTRL */
1495 cx25840_write4(client
, 0x438, 0x00000000);
1497 cx25840_write4(client
, 0x440, 0xF8E3E824);
1499 cx25840_write4(client
, 0x444, 0x401040dc);
1501 cx25840_write4(client
, 0x448, 0xcd3f02a0);
1503 cx25840_write4(client
, 0x44c, 0x161f1000);
1505 cx25840_write4(client
, 0x450, 0x00000802);
1507 cx25840_write4(client
, 0x91c, 0x01000000);
1508 cx25840_write4(client
, 0x8e0, 0x03063870);
1509 cx25840_write4(client
, 0x8d4, 0x7FFF0024);
1510 cx25840_write4(client
, 0x8d0, 0x00063073);
1512 cx25840_write4(client
, 0x8c8, 0x00010000);
1513 cx25840_write4(client
, 0x8cc, 0x00080023);
1516 cx25840_write4(client
, 0x33c, 0x2a04c800);
1520 cx25840_write4(client
, 0x398, 0);
1523 if (!is_cx2388x(state
) && !is_cx231xx(state
)) {
1524 /* Set CH_SEL_ADC2 to 1 if input comes from CH3 */
1525 cx25840_and_or(client
, 0x102, ~0x2, (reg
& 0x80) == 0 ? 2 : 0);
1526 /* Set DUAL_MODE_ADC2 to 1 if input comes from both CH2&CH3 */
1527 if ((reg
& 0xc0) != 0xc0 && (reg
& 0x30) != 0x30)
1528 cx25840_and_or(client
, 0x102, ~0x4, 4);
1530 cx25840_and_or(client
, 0x102, ~0x4, 0);
1532 /* Set DUAL_MODE_ADC2 to 1 if component*/
1533 cx25840_and_or(client
, 0x102, ~0x4, is_component
? 0x4 : 0x0);
1535 /* ADC2 input select channel 2 */
1536 cx25840_and_or(client
, 0x102, ~0x2, 0);
1537 } else if (!is_component
) {
1539 if (chroma
>= CX25840_SVIDEO_CHROMA7
) {
1540 /* ADC2 input select channel 3 */
1541 cx25840_and_or(client
, 0x102, ~0x2, 2);
1543 /* ADC2 input select channel 2 */
1544 cx25840_and_or(client
, 0x102, ~0x2, 0);
1548 /* cx23885 / SVIDEO */
1549 if (is_cx2388x(state
) && is_svideo
) {
1550 #define AFE_CTRL (0x104)
1551 #define MODE_CTRL (0x400)
1552 cx25840_and_or(client
, 0x102, ~0x2, 0x2);
1554 val
= cx25840_read4(client
, MODE_CTRL
);
1560 cx25840_write4(client
, MODE_CTRL
, val
);
1562 val
= cx25840_read4(client
, AFE_CTRL
);
1564 /* Chroma in select */
1567 /* Clear VGA_SEL_CH2 and VGA_SEL_CH3 (bits 7 and 8).
1568 * This sets them to use video rather than audio.
1569 * Only one of the two will be in use.
1571 cx25840_write4(client
, AFE_CTRL
, val
);
1573 cx25840_and_or(client
, 0x102, ~0x2, 0);
1577 state
->vid_input
= vid_input
;
1578 state
->aud_input
= aud_input
;
1579 cx25840_audio_set_path(client
);
1580 input_change(client
);
1582 if (is_cx2388x(state
)) {
1583 /* Audio channel 1 src : Parallel 1 */
1584 cx25840_write(client
, 0x124, 0x03);
1586 /* Select AFE clock pad output source */
1587 cx25840_write(client
, 0x144, 0x05);
1589 /* I2S_IN_CTL: I2S_IN_SONY_MODE, LEFT SAMPLE on WS=1 */
1590 cx25840_write(client
, 0x914, 0xa0);
1593 * I2S_IN_SONY_MODE, LEFT SAMPLE on WS=1
1594 * I2S_OUT_MASTER_MODE = Master
1596 cx25840_write(client
, 0x918, 0xa0);
1597 cx25840_write(client
, 0x919, 0x01);
1598 } else if (is_cx231xx(state
)) {
1599 /* Audio channel 1 src : Parallel 1 */
1600 cx25840_write(client
, 0x124, 0x03);
1602 /* I2S_IN_CTL: I2S_IN_SONY_MODE, LEFT SAMPLE on WS=1 */
1603 cx25840_write(client
, 0x914, 0xa0);
1606 * I2S_IN_SONY_MODE, LEFT SAMPLE on WS=1
1607 * I2S_OUT_MASTER_MODE = Master
1609 cx25840_write(client
, 0x918, 0xa0);
1610 cx25840_write(client
, 0x919, 0x01);
1613 if (is_cx2388x(state
) &&
1614 ((aud_input
== CX25840_AUDIO7
) || (aud_input
== CX25840_AUDIO6
))) {
1615 /* Configure audio from LR1 or LR2 input */
1616 cx25840_write4(client
, 0x910, 0);
1617 cx25840_write4(client
, 0x8d0, 0x63073);
1618 } else if (is_cx2388x(state
) && (aud_input
== CX25840_AUDIO8
)) {
1619 /* Configure audio from tuner/sif input */
1620 cx25840_write4(client
, 0x910, 0x12b000c9);
1621 cx25840_write4(client
, 0x8d0, 0x1f063870);
1624 if (is_cx23888(state
)) {
1628 * AUD_IO_CTRL - I2S Input, Parallel1
1629 * - Channel 1 src - Parallel1 (Merlin out)
1630 * - Channel 2 src - Parallel2 (Merlin out)
1631 * - Channel 3 src - Parallel3 (Merlin AC97 out)
1632 * - I2S source and dir - Merlin, output
1634 cx25840_write4(client
, 0x124, 0x100);
1638 * Stop microcontroller if we don't need it
1639 * to avoid audio popping on svideo/composite use.
1641 cx25840_and_or(client
, 0x803, ~0x10, 0x00);
1648 /* ----------------------------------------------------------------------- */
1650 static int set_v4lstd(struct i2c_client
*client
)
1652 struct cx25840_state
*state
= to_state(i2c_get_clientdata(client
));
1653 u8 fmt
= 0; /* zero is autodetect */
1656 /* First tests should be against specific std */
1657 if (state
->std
== V4L2_STD_NTSC_M_JP
) {
1659 } else if (state
->std
== V4L2_STD_NTSC_443
) {
1661 } else if (state
->std
== V4L2_STD_PAL_M
) {
1664 } else if (state
->std
== V4L2_STD_PAL_N
) {
1666 } else if (state
->std
== V4L2_STD_PAL_Nc
) {
1668 } else if (state
->std
== V4L2_STD_PAL_60
) {
1671 /* Then, test against generic ones */
1672 if (state
->std
& V4L2_STD_NTSC
)
1674 else if (state
->std
& V4L2_STD_PAL
)
1676 else if (state
->std
& V4L2_STD_SECAM
)
1680 v4l_dbg(1, cx25840_debug
, client
,
1681 "changing video std to fmt %i\n", fmt
);
1684 * Follow step 9 of section 3.16 in the cx25840 datasheet.
1685 * Without this PAL may display a vertical ghosting effect.
1686 * This happens for example with the Yuan MPC622.
1688 if (fmt
>= 4 && fmt
< 8) {
1689 /* Set format to NTSC-M */
1690 cx25840_and_or(client
, 0x400, ~0xf, 1);
1691 /* Turn off LCOMB */
1692 cx25840_and_or(client
, 0x47b, ~6, 0);
1694 cx25840_and_or(client
, 0x400, ~0xf, fmt
);
1695 cx25840_and_or(client
, 0x403, ~0x3, pal_m
);
1696 if (is_cx23888(state
))
1697 cx23888_std_setup(client
);
1699 cx25840_std_setup(client
);
1700 if (!is_cx2583x(state
))
1701 input_change(client
);
1705 /* ----------------------------------------------------------------------- */
1707 static int cx25840_s_ctrl(struct v4l2_ctrl
*ctrl
)
1709 struct v4l2_subdev
*sd
= to_sd(ctrl
);
1710 struct cx25840_state
*state
= to_state(sd
);
1711 struct i2c_client
*client
= v4l2_get_subdevdata(sd
);
1714 case V4L2_CID_BRIGHTNESS
:
1715 cx25840_write(client
, 0x414, ctrl
->val
- 128);
1718 case V4L2_CID_CONTRAST
:
1719 cx25840_write(client
, 0x415, ctrl
->val
<< 1);
1722 case V4L2_CID_SATURATION
:
1723 if (is_cx23888(state
)) {
1724 cx25840_write(client
, 0x418, ctrl
->val
<< 1);
1725 cx25840_write(client
, 0x419, ctrl
->val
<< 1);
1727 cx25840_write(client
, 0x420, ctrl
->val
<< 1);
1728 cx25840_write(client
, 0x421, ctrl
->val
<< 1);
1733 if (is_cx23888(state
))
1734 cx25840_write(client
, 0x41a, ctrl
->val
);
1736 cx25840_write(client
, 0x422, ctrl
->val
);
1746 /* ----------------------------------------------------------------------- */
1748 static int cx25840_set_fmt(struct v4l2_subdev
*sd
,
1749 struct v4l2_subdev_pad_config
*cfg
,
1750 struct v4l2_subdev_format
*format
)
1752 struct v4l2_mbus_framefmt
*fmt
= &format
->format
;
1753 struct cx25840_state
*state
= to_state(sd
);
1754 struct i2c_client
*client
= v4l2_get_subdevdata(sd
);
1755 u32 hsc
, vsc
, v_src
, h_src
, v_add
;
1757 int is_50hz
= !(state
->std
& V4L2_STD_525_60
);
1759 if (format
->pad
|| fmt
->code
!= MEDIA_BUS_FMT_FIXED
)
1762 fmt
->field
= V4L2_FIELD_INTERLACED
;
1763 fmt
->colorspace
= V4L2_COLORSPACE_SMPTE170M
;
1765 if (is_cx23888(state
)) {
1766 v_src
= (cx25840_read(client
, 0x42a) & 0x3f) << 4;
1767 v_src
|= (cx25840_read(client
, 0x429) & 0xf0) >> 4;
1769 v_src
= (cx25840_read(client
, 0x476) & 0x3f) << 4;
1770 v_src
|= (cx25840_read(client
, 0x475) & 0xf0) >> 4;
1773 if (is_cx23888(state
)) {
1774 h_src
= (cx25840_read(client
, 0x426) & 0x3f) << 4;
1775 h_src
|= (cx25840_read(client
, 0x425) & 0xf0) >> 4;
1777 h_src
= (cx25840_read(client
, 0x472) & 0x3f) << 4;
1778 h_src
|= (cx25840_read(client
, 0x471) & 0xf0) >> 4;
1781 if (!state
->generic_mode
) {
1782 v_add
= is_50hz
? 4 : 7;
1785 * cx23888 in 525-line mode is programmed for 486 active lines
1786 * while other chips use 487 active lines.
1788 * See reg 0x428 bits [21:12] in cx23888_std_setup() vs
1789 * vactive in cx25840_std_setup().
1791 if (is_cx23888(state
) && !is_50hz
)
1800 "chip reported picture size (%u x %u) is far too small\n",
1801 (unsigned int)h_src
, (unsigned int)v_src
);
1803 * that's the best we can do since the output picture
1804 * size is completely unknown in this case
1809 fmt
->width
= clamp(fmt
->width
, (h_src
+ 15) / 16, h_src
);
1811 if (v_add
* 8 >= v_src
)
1812 fmt
->height
= clamp(fmt
->height
, (u32
)1, v_src
- v_add
);
1814 fmt
->height
= clamp(fmt
->height
, (v_src
- v_add
* 8 + 7) / 8,
1817 if (format
->which
== V4L2_SUBDEV_FORMAT_TRY
)
1820 hsc
= (h_src
* (1 << 20)) / fmt
->width
- (1 << 20);
1821 vsc
= (1 << 16) - (v_src
* (1 << 9) / (fmt
->height
+ v_add
) - (1 << 9));
1824 if (fmt
->width
>= 385)
1826 else if (fmt
->width
> 192)
1828 else if (fmt
->width
> 96)
1833 v4l_dbg(1, cx25840_debug
, client
,
1834 "decoder set size %u x %u with scale %x x %x\n",
1835 (unsigned int)fmt
->width
, (unsigned int)fmt
->height
,
1836 (unsigned int)hsc
, (unsigned int)vsc
);
1839 if (is_cx23888(state
)) {
1840 cx25840_write4(client
, 0x434, hsc
| (1 << 24));
1841 /* VSCALE=vsc VS_INTRLACE=1 VFILT=filter */
1842 cx25840_write4(client
, 0x438, vsc
| (1 << 19) | (filter
<< 16));
1844 cx25840_write(client
, 0x418, hsc
& 0xff);
1845 cx25840_write(client
, 0x419, (hsc
>> 8) & 0xff);
1846 cx25840_write(client
, 0x41a, hsc
>> 16);
1848 cx25840_write(client
, 0x41c, vsc
& 0xff);
1849 cx25840_write(client
, 0x41d, vsc
>> 8);
1850 /* VS_INTRLACE=1 VFILT=filter */
1851 cx25840_write(client
, 0x41e, 0x8 | filter
);
1856 /* ----------------------------------------------------------------------- */
1858 static void log_video_status(struct i2c_client
*client
)
1860 static const char *const fmt_strs
[] = {
1862 "NTSC-M", "NTSC-J", "NTSC-4.43",
1863 "PAL-BDGHI", "PAL-M", "PAL-N", "PAL-Nc", "PAL-60",
1864 "0x9", "0xA", "0xB",
1869 struct cx25840_state
*state
= to_state(i2c_get_clientdata(client
));
1870 u8 vidfmt_sel
= cx25840_read(client
, 0x400) & 0xf;
1871 u8 gen_stat1
= cx25840_read(client
, 0x40d);
1872 u8 gen_stat2
= cx25840_read(client
, 0x40e);
1873 int vid_input
= state
->vid_input
;
1875 v4l_info(client
, "Video signal: %spresent\n",
1876 (gen_stat2
& 0x20) ? "" : "not ");
1877 v4l_info(client
, "Detected format: %s\n",
1878 fmt_strs
[gen_stat1
& 0xf]);
1880 v4l_info(client
, "Specified standard: %s\n",
1881 vidfmt_sel
? fmt_strs
[vidfmt_sel
] : "automatic detection");
1883 if (vid_input
>= CX25840_COMPOSITE1
&&
1884 vid_input
<= CX25840_COMPOSITE8
) {
1885 v4l_info(client
, "Specified video input: Composite %d\n",
1886 vid_input
- CX25840_COMPOSITE1
+ 1);
1889 "Specified video input: S-Video (Luma In%d, Chroma In%d)\n",
1890 (vid_input
& 0xf0) >> 4, (vid_input
& 0xf00) >> 8);
1893 v4l_info(client
, "Specified audioclock freq: %d Hz\n",
1894 state
->audclk_freq
);
1897 /* ----------------------------------------------------------------------- */
1899 static void log_audio_status(struct i2c_client
*client
)
1901 struct cx25840_state
*state
= to_state(i2c_get_clientdata(client
));
1902 u8 download_ctl
= cx25840_read(client
, 0x803);
1903 u8 mod_det_stat0
= cx25840_read(client
, 0x804);
1904 u8 mod_det_stat1
= cx25840_read(client
, 0x805);
1905 u8 audio_config
= cx25840_read(client
, 0x808);
1906 u8 pref_mode
= cx25840_read(client
, 0x809);
1907 u8 afc0
= cx25840_read(client
, 0x80b);
1908 u8 mute_ctl
= cx25840_read(client
, 0x8d3);
1909 int aud_input
= state
->aud_input
;
1912 switch (mod_det_stat0
) {
1926 p
= "mono with SAP";
1929 p
= "stereo with SAP";
1932 p
= "dual with SAP";
1943 v4l_info(client
, "Detected audio mode: %s\n", p
);
1945 switch (mod_det_stat1
) {
1968 p
= "A1 (6.0 MHz FM Mono)";
1986 p
= "BTSC/EIAJ/A2-M Mono (4.5 MHz FMMono)";
1995 p
= "high-deviation FM";
1998 p
= "very high-deviation FM";
2001 p
= "unknown audio standard";
2004 p
= "forced audio standard";
2007 p
= "no detected audio standard";
2012 v4l_info(client
, "Detected audio standard: %s\n", p
);
2013 v4l_info(client
, "Audio microcontroller: %s\n",
2014 (download_ctl
& 0x10) ?
2015 ((mute_ctl
& 0x2) ? "detecting" : "running") : "stopped");
2017 switch (audio_config
>> 4) {
2043 p
= "A1 (6.0 MHz FM Mono)";
2064 p
= "automatic detection";
2069 v4l_info(client
, "Configured audio standard: %s\n", p
);
2071 if ((audio_config
>> 4) < 0xF) {
2072 switch (audio_config
& 0xF) {
2074 p
= "MONO1 (LANGUAGE A/Mono L+R channel for BTSC, EIAJ, A2)";
2077 p
= "MONO2 (LANGUAGE B)";
2080 p
= "MONO3 (STEREO forced MONO)";
2083 p
= "MONO4 (NICAM ANALOG-Language C/Analog Fallback)";
2092 p
= "DUAL2 (AC) (FM)";
2095 p
= "DUAL3 (BC) (FM)";
2098 p
= "DUAL4 (AC) (AM)";
2101 p
= "DUAL5 (BC) (AM)";
2109 v4l_info(client
, "Configured audio mode: %s\n", p
);
2111 switch (audio_config
& 0xF) {
2143 p
= "automatic standard and mode detection";
2148 v4l_info(client
, "Configured audio system: %s\n", p
);
2152 v4l_info(client
, "Specified audio input: Tuner (In%d)\n",
2155 v4l_info(client
, "Specified audio input: External\n");
2158 switch (pref_mode
& 0xf) {
2160 p
= "mono/language A";
2169 p
= "analog fallback";
2186 v4l_info(client
, "Preferred audio mode: %s\n", p
);
2188 if ((audio_config
& 0xf) == 0xf) {
2189 switch ((afc0
>> 3) & 0x3) {
2202 v4l_info(client
, "Selected 65 MHz format: %s\n", p
);
2204 switch (afc0
& 0x7) {
2223 v4l_info(client
, "Selected 45 MHz format: %s\n", p
);
2227 #define CX25840_VCONFIG_OPTION(state, cfg_in, opt_msk) \
2229 if ((cfg_in) & (opt_msk)) { \
2230 (state)->vid_config &= ~(opt_msk); \
2231 (state)->vid_config |= (cfg_in) & (opt_msk); \
2235 /* apply incoming options to the current vconfig */
2236 static void cx25840_vconfig_add(struct cx25840_state
*state
, u32 cfg_in
)
2238 CX25840_VCONFIG_OPTION(state
, cfg_in
, CX25840_VCONFIG_FMT_MASK
);
2239 CX25840_VCONFIG_OPTION(state
, cfg_in
, CX25840_VCONFIG_RES_MASK
);
2240 CX25840_VCONFIG_OPTION(state
, cfg_in
, CX25840_VCONFIG_VBIRAW_MASK
);
2241 CX25840_VCONFIG_OPTION(state
, cfg_in
, CX25840_VCONFIG_ANCDATA_MASK
);
2242 CX25840_VCONFIG_OPTION(state
, cfg_in
, CX25840_VCONFIG_TASKBIT_MASK
);
2243 CX25840_VCONFIG_OPTION(state
, cfg_in
, CX25840_VCONFIG_ACTIVE_MASK
);
2244 CX25840_VCONFIG_OPTION(state
, cfg_in
, CX25840_VCONFIG_VALID_MASK
);
2245 CX25840_VCONFIG_OPTION(state
, cfg_in
, CX25840_VCONFIG_HRESETW_MASK
);
2246 CX25840_VCONFIG_OPTION(state
, cfg_in
, CX25840_VCONFIG_CLKGATE_MASK
);
2247 CX25840_VCONFIG_OPTION(state
, cfg_in
, CX25840_VCONFIG_DCMODE_MASK
);
2248 CX25840_VCONFIG_OPTION(state
, cfg_in
, CX25840_VCONFIG_IDID0S_MASK
);
2249 CX25840_VCONFIG_OPTION(state
, cfg_in
, CX25840_VCONFIG_VIPCLAMP_MASK
);
2252 /* ----------------------------------------------------------------------- */
2255 * Initializes the device in the generic mode.
2256 * For cx2584x chips also adds additional video output settings provided
2257 * in @val parameter (CX25840_VCONFIG_*).
2259 * The generic mode disables some of the ivtv-related hacks in this driver.
2260 * For cx2584x chips it also enables setting video output configuration while
2261 * setting it according to datasheet defaults by default.
2263 static int cx25840_init(struct v4l2_subdev
*sd
, u32 val
)
2265 struct cx25840_state
*state
= to_state(sd
);
2267 state
->generic_mode
= true;
2269 if (is_cx2584x(state
)) {
2270 /* set datasheet video output defaults */
2271 state
->vid_config
= CX25840_VCONFIG_FMT_BT656
|
2272 CX25840_VCONFIG_RES_8BIT
|
2273 CX25840_VCONFIG_VBIRAW_DISABLED
|
2274 CX25840_VCONFIG_ANCDATA_ENABLED
|
2275 CX25840_VCONFIG_TASKBIT_ONE
|
2276 CX25840_VCONFIG_ACTIVE_HORIZONTAL
|
2277 CX25840_VCONFIG_VALID_NORMAL
|
2278 CX25840_VCONFIG_HRESETW_NORMAL
|
2279 CX25840_VCONFIG_CLKGATE_NONE
|
2280 CX25840_VCONFIG_DCMODE_DWORDS
|
2281 CX25840_VCONFIG_IDID0S_NORMAL
|
2282 CX25840_VCONFIG_VIPCLAMP_DISABLED
;
2284 /* add additional settings */
2285 cx25840_vconfig_add(state
, val
);
2287 /* TODO: generic mode needs to be developed for other chips */
2294 static int cx25840_reset(struct v4l2_subdev
*sd
, u32 val
)
2296 struct cx25840_state
*state
= to_state(sd
);
2297 struct i2c_client
*client
= v4l2_get_subdevdata(sd
);
2299 if (is_cx2583x(state
))
2300 cx25836_initialize(client
);
2301 else if (is_cx2388x(state
))
2302 cx23885_initialize(client
);
2303 else if (is_cx231xx(state
))
2304 cx231xx_initialize(client
);
2306 cx25840_initialize(client
);
2308 state
->is_initialized
= 1;
2314 * This load_fw operation must be called to load the driver's firmware.
2315 * This will load the firmware on the first invocation (further ones are NOP).
2316 * Without this the audio standard detection will fail and you will
2318 * Alternatively, you can call the reset operation instead of this one.
2320 * Since loading the firmware is often problematic when the driver is
2321 * compiled into the kernel I recommend postponing calling this function
2322 * until the first open of the video device. Another reason for
2323 * postponing it is that loading this firmware takes a long time (seconds)
2324 * due to the slow i2c bus speed. So it will speed up the boot process if
2325 * you can avoid loading the fw as long as the video device isn't used.
2327 static int cx25840_load_fw(struct v4l2_subdev
*sd
)
2329 struct cx25840_state
*state
= to_state(sd
);
2331 if (!state
->is_initialized
) {
2332 /* initialize and load firmware */
2333 cx25840_reset(sd
, 0);
2338 #ifdef CONFIG_VIDEO_ADV_DEBUG
2339 static int cx25840_g_register(struct v4l2_subdev
*sd
,
2340 struct v4l2_dbg_register
*reg
)
2342 struct i2c_client
*client
= v4l2_get_subdevdata(sd
);
2345 reg
->val
= cx25840_read(client
, reg
->reg
& 0x0fff);
2349 static int cx25840_s_register(struct v4l2_subdev
*sd
,
2350 const struct v4l2_dbg_register
*reg
)
2352 struct i2c_client
*client
= v4l2_get_subdevdata(sd
);
2354 cx25840_write(client
, reg
->reg
& 0x0fff, reg
->val
& 0xff);
2359 static int cx25840_s_audio_stream(struct v4l2_subdev
*sd
, int enable
)
2361 struct cx25840_state
*state
= to_state(sd
);
2362 struct i2c_client
*client
= v4l2_get_subdevdata(sd
);
2365 if (is_cx2583x(state
) || is_cx2388x(state
) || is_cx231xx(state
))
2368 v4l_dbg(1, cx25840_debug
, client
, "%s audio output\n",
2369 enable
? "enable" : "disable");
2372 v
= cx25840_read(client
, 0x115) | 0x80;
2373 cx25840_write(client
, 0x115, v
);
2374 v
= cx25840_read(client
, 0x116) | 0x03;
2375 cx25840_write(client
, 0x116, v
);
2377 v
= cx25840_read(client
, 0x115) & ~(0x80);
2378 cx25840_write(client
, 0x115, v
);
2379 v
= cx25840_read(client
, 0x116) & ~(0x03);
2380 cx25840_write(client
, 0x116, v
);
2385 static int cx25840_s_stream(struct v4l2_subdev
*sd
, int enable
)
2387 struct cx25840_state
*state
= to_state(sd
);
2388 struct i2c_client
*client
= v4l2_get_subdevdata(sd
);
2391 v4l_dbg(1, cx25840_debug
, client
, "%s video output\n",
2392 enable
? "enable" : "disable");
2395 * It's not clear what should be done for these devices.
2396 * The original code used the same addresses as for the cx25840, but
2397 * those addresses do something else entirely on the cx2388x and
2398 * cx231xx. Since it never did anything in the first place, just do
2401 if (is_cx2388x(state
) || is_cx231xx(state
))
2405 v
= cx25840_read(client
, 0x115) | 0x0c;
2406 cx25840_write(client
, 0x115, v
);
2407 v
= cx25840_read(client
, 0x116) | 0x04;
2408 cx25840_write(client
, 0x116, v
);
2410 v
= cx25840_read(client
, 0x115) & ~(0x0c);
2411 cx25840_write(client
, 0x115, v
);
2412 v
= cx25840_read(client
, 0x116) & ~(0x04);
2413 cx25840_write(client
, 0x116, v
);
2418 /* Query the current detected video format */
2419 static int cx25840_querystd(struct v4l2_subdev
*sd
, v4l2_std_id
*std
)
2421 struct i2c_client
*client
= v4l2_get_subdevdata(sd
);
2423 static const v4l2_std_id stds
[] = {
2424 /* 0000 */ V4L2_STD_UNKNOWN
,
2426 /* 0001 */ V4L2_STD_NTSC_M
,
2427 /* 0010 */ V4L2_STD_NTSC_M_JP
,
2428 /* 0011 */ V4L2_STD_NTSC_443
,
2429 /* 0100 */ V4L2_STD_PAL
,
2430 /* 0101 */ V4L2_STD_PAL_M
,
2431 /* 0110 */ V4L2_STD_PAL_N
,
2432 /* 0111 */ V4L2_STD_PAL_Nc
,
2433 /* 1000 */ V4L2_STD_PAL_60
,
2435 /* 1001 */ V4L2_STD_UNKNOWN
,
2436 /* 1010 */ V4L2_STD_UNKNOWN
,
2437 /* 1011 */ V4L2_STD_UNKNOWN
,
2438 /* 1100 */ V4L2_STD_SECAM
,
2439 /* 1101 */ V4L2_STD_UNKNOWN
,
2440 /* 1110 */ V4L2_STD_UNKNOWN
,
2441 /* 1111 */ V4L2_STD_UNKNOWN
2444 u32 fmt
= (cx25840_read4(client
, 0x40c) >> 8) & 0xf;
2447 v4l_dbg(1, cx25840_debug
, client
,
2448 "querystd fmt = %x, v4l2_std_id = 0x%x\n",
2449 fmt
, (unsigned int)stds
[fmt
]);
2454 static int cx25840_g_input_status(struct v4l2_subdev
*sd
, u32
*status
)
2456 struct i2c_client
*client
= v4l2_get_subdevdata(sd
);
2459 * A limited function that checks for signal status and returns
2463 /* Check for status of Horizontal lock (SRC lock isn't reliable) */
2464 if ((cx25840_read4(client
, 0x40c) & 0x00010000) == 0)
2465 *status
|= V4L2_IN_ST_NO_SIGNAL
;
2470 static int cx25840_g_std(struct v4l2_subdev
*sd
, v4l2_std_id
*std
)
2472 struct cx25840_state
*state
= to_state(sd
);
2479 static int cx25840_s_std(struct v4l2_subdev
*sd
, v4l2_std_id std
)
2481 struct cx25840_state
*state
= to_state(sd
);
2482 struct i2c_client
*client
= v4l2_get_subdevdata(sd
);
2484 if (state
->radio
== 0 && state
->std
== std
)
2488 return set_v4lstd(client
);
2491 static int cx25840_s_radio(struct v4l2_subdev
*sd
)
2493 struct cx25840_state
*state
= to_state(sd
);
2499 static int cx25840_s_video_routing(struct v4l2_subdev
*sd
,
2500 u32 input
, u32 output
, u32 config
)
2502 struct cx25840_state
*state
= to_state(sd
);
2503 struct i2c_client
*client
= v4l2_get_subdevdata(sd
);
2505 if (is_cx23888(state
))
2506 cx23888_std_setup(client
);
2508 if (is_cx2584x(state
) && state
->generic_mode
&& config
) {
2509 cx25840_vconfig_add(state
, config
);
2510 cx25840_vconfig_apply(client
);
2513 return set_input(client
, input
, state
->aud_input
);
2516 static int cx25840_s_audio_routing(struct v4l2_subdev
*sd
,
2517 u32 input
, u32 output
, u32 config
)
2519 struct cx25840_state
*state
= to_state(sd
);
2520 struct i2c_client
*client
= v4l2_get_subdevdata(sd
);
2522 if (is_cx23888(state
))
2523 cx23888_std_setup(client
);
2524 return set_input(client
, state
->vid_input
, input
);
2527 static int cx25840_s_frequency(struct v4l2_subdev
*sd
,
2528 const struct v4l2_frequency
*freq
)
2530 struct i2c_client
*client
= v4l2_get_subdevdata(sd
);
2532 input_change(client
);
2536 static int cx25840_g_tuner(struct v4l2_subdev
*sd
, struct v4l2_tuner
*vt
)
2538 struct cx25840_state
*state
= to_state(sd
);
2539 struct i2c_client
*client
= v4l2_get_subdevdata(sd
);
2540 u8 vpres
= cx25840_read(client
, 0x40e) & 0x20;
2547 vt
->signal
= vpres
? 0xffff : 0x0;
2548 if (is_cx2583x(state
))
2551 vt
->capability
|= V4L2_TUNER_CAP_STEREO
| V4L2_TUNER_CAP_LANG1
|
2552 V4L2_TUNER_CAP_LANG2
| V4L2_TUNER_CAP_SAP
;
2554 mode
= cx25840_read(client
, 0x804);
2556 /* get rxsubchans and audmode */
2557 if ((mode
& 0xf) == 1)
2558 val
|= V4L2_TUNER_SUB_STEREO
;
2560 val
|= V4L2_TUNER_SUB_MONO
;
2562 if (mode
== 2 || mode
== 4)
2563 val
= V4L2_TUNER_SUB_LANG1
| V4L2_TUNER_SUB_LANG2
;
2566 val
|= V4L2_TUNER_SUB_SAP
;
2568 vt
->rxsubchans
= val
;
2569 vt
->audmode
= state
->audmode
;
2573 static int cx25840_s_tuner(struct v4l2_subdev
*sd
, const struct v4l2_tuner
*vt
)
2575 struct cx25840_state
*state
= to_state(sd
);
2576 struct i2c_client
*client
= v4l2_get_subdevdata(sd
);
2578 if (state
->radio
|| is_cx2583x(state
))
2581 switch (vt
->audmode
) {
2582 case V4L2_TUNER_MODE_MONO
:
2586 * bilingual -> lang1
2588 cx25840_and_or(client
, 0x809, ~0xf, 0x00);
2590 case V4L2_TUNER_MODE_STEREO
:
2591 case V4L2_TUNER_MODE_LANG1
:
2595 * bilingual -> lang1
2597 cx25840_and_or(client
, 0x809, ~0xf, 0x04);
2599 case V4L2_TUNER_MODE_LANG1_LANG2
:
2603 * bilingual -> lang1/lang2
2605 cx25840_and_or(client
, 0x809, ~0xf, 0x07);
2607 case V4L2_TUNER_MODE_LANG2
:
2611 * bilingual -> lang2
2613 cx25840_and_or(client
, 0x809, ~0xf, 0x01);
2618 state
->audmode
= vt
->audmode
;
2622 static int cx25840_log_status(struct v4l2_subdev
*sd
)
2624 struct cx25840_state
*state
= to_state(sd
);
2625 struct i2c_client
*client
= v4l2_get_subdevdata(sd
);
2627 log_video_status(client
);
2628 if (!is_cx2583x(state
))
2629 log_audio_status(client
);
2630 cx25840_ir_log_status(sd
);
2631 v4l2_ctrl_handler_log_status(&state
->hdl
, sd
->name
);
2635 static int cx23885_irq_handler(struct v4l2_subdev
*sd
, u32 status
,
2638 struct cx25840_state
*state
= to_state(sd
);
2639 struct i2c_client
*c
= v4l2_get_subdevdata(sd
);
2640 u8 irq_stat
, aud_stat
, aud_en
, ir_stat
, ir_en
;
2641 u32 vid_stat
, aud_mc_stat
;
2645 irq_stat
= cx25840_read(c
, CX23885_PIN_CTRL_IRQ_REG
);
2646 v4l_dbg(2, cx25840_debug
, c
, "AV Core IRQ status (entry): %s %s %s\n",
2647 irq_stat
& CX23885_PIN_CTRL_IRQ_IR_STAT
? "ir" : " ",
2648 irq_stat
& CX23885_PIN_CTRL_IRQ_AUD_STAT
? "aud" : " ",
2649 irq_stat
& CX23885_PIN_CTRL_IRQ_VID_STAT
? "vid" : " ");
2651 if ((is_cx23885(state
) || is_cx23887(state
))) {
2652 ir_stat
= cx25840_read(c
, CX25840_IR_STATS_REG
);
2653 ir_en
= cx25840_read(c
, CX25840_IR_IRQEN_REG
);
2654 v4l_dbg(2, cx25840_debug
, c
,
2655 "AV Core ir IRQ status: %#04x disables: %#04x\n",
2657 if (irq_stat
& CX23885_PIN_CTRL_IRQ_IR_STAT
) {
2658 block_handled
= false;
2659 ret
= cx25840_ir_irq_handler(sd
,
2660 status
, &block_handled
);
2666 aud_stat
= cx25840_read(c
, CX25840_AUD_INT_STAT_REG
);
2667 aud_en
= cx25840_read(c
, CX25840_AUD_INT_CTRL_REG
);
2668 v4l_dbg(2, cx25840_debug
, c
,
2669 "AV Core audio IRQ status: %#04x disables: %#04x\n",
2671 aud_mc_stat
= cx25840_read4(c
, CX23885_AUD_MC_INT_MASK_REG
);
2672 v4l_dbg(2, cx25840_debug
, c
,
2673 "AV Core audio MC IRQ status: %#06x enables: %#06x\n",
2674 aud_mc_stat
>> CX23885_AUD_MC_INT_STAT_SHFT
,
2675 aud_mc_stat
& CX23885_AUD_MC_INT_CTRL_BITS
);
2676 if (irq_stat
& CX23885_PIN_CTRL_IRQ_AUD_STAT
) {
2678 cx25840_write(c
, CX25840_AUD_INT_STAT_REG
, aud_stat
);
2683 vid_stat
= cx25840_read4(c
, CX25840_VID_INT_STAT_REG
);
2684 v4l_dbg(2, cx25840_debug
, c
,
2685 "AV Core video IRQ status: %#06x disables: %#06x\n",
2686 vid_stat
& CX25840_VID_INT_STAT_BITS
,
2687 vid_stat
>> CX25840_VID_INT_MASK_SHFT
);
2688 if (irq_stat
& CX23885_PIN_CTRL_IRQ_VID_STAT
) {
2689 if (vid_stat
& CX25840_VID_INT_STAT_BITS
) {
2690 cx25840_write4(c
, CX25840_VID_INT_STAT_REG
, vid_stat
);
2695 irq_stat
= cx25840_read(c
, CX23885_PIN_CTRL_IRQ_REG
);
2696 v4l_dbg(2, cx25840_debug
, c
, "AV Core IRQ status (exit): %s %s %s\n",
2697 irq_stat
& CX23885_PIN_CTRL_IRQ_IR_STAT
? "ir" : " ",
2698 irq_stat
& CX23885_PIN_CTRL_IRQ_AUD_STAT
? "aud" : " ",
2699 irq_stat
& CX23885_PIN_CTRL_IRQ_VID_STAT
? "vid" : " ");
2704 static int cx25840_irq_handler(struct v4l2_subdev
*sd
, u32 status
,
2707 struct cx25840_state
*state
= to_state(sd
);
2711 /* Only support the CX2388[578] AV Core for now */
2712 if (is_cx2388x(state
))
2713 return cx23885_irq_handler(sd
, status
, handled
);
2718 /* ----------------------------------------------------------------------- */
2720 #define DIF_PLL_FREQ_WORD (0x300)
2721 #define DIF_BPF_COEFF01 (0x348)
2722 #define DIF_BPF_COEFF23 (0x34c)
2723 #define DIF_BPF_COEFF45 (0x350)
2724 #define DIF_BPF_COEFF67 (0x354)
2725 #define DIF_BPF_COEFF89 (0x358)
2726 #define DIF_BPF_COEFF1011 (0x35c)
2727 #define DIF_BPF_COEFF1213 (0x360)
2728 #define DIF_BPF_COEFF1415 (0x364)
2729 #define DIF_BPF_COEFF1617 (0x368)
2730 #define DIF_BPF_COEFF1819 (0x36c)
2731 #define DIF_BPF_COEFF2021 (0x370)
2732 #define DIF_BPF_COEFF2223 (0x374)
2733 #define DIF_BPF_COEFF2425 (0x378)
2734 #define DIF_BPF_COEFF2627 (0x37c)
2735 #define DIF_BPF_COEFF2829 (0x380)
2736 #define DIF_BPF_COEFF3031 (0x384)
2737 #define DIF_BPF_COEFF3233 (0x388)
2738 #define DIF_BPF_COEFF3435 (0x38c)
2739 #define DIF_BPF_COEFF36 (0x390)
2741 static void cx23885_dif_setup(struct i2c_client
*client
, u32 ifHz
)
2746 v4l_dbg(1, cx25840_debug
, client
, "%s(%d)\n", __func__
, ifHz
);
2749 /* Calculate the PLL frequency word based on the adjusted ifHz */
2750 pll_freq
= div_u64((u64
)ifHz
* 268435456, 50000000);
2751 pll_freq_word
= (u32
)pll_freq
;
2753 cx25840_write4(client
, DIF_PLL_FREQ_WORD
, pll_freq_word
);
2755 /* Round down to the nearest 100KHz */
2756 ifHz
= (ifHz
/ 100000) * 100000;
2761 if (ifHz
> 16000000)
2764 v4l_dbg(1, cx25840_debug
, client
, "%s(%d) again\n", __func__
, ifHz
);
2768 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000002);
2769 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00080012);
2770 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x001e0024);
2771 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x001bfff8);
2772 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffb4ff50);
2773 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfed8fe68);
2774 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe24fe34);
2775 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfebaffc7);
2776 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x014d031f);
2777 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x04f0065d);
2778 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x07010688);
2779 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x04c901d6);
2780 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfe00f9d3);
2781 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf600f342);
2782 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf235f337);
2783 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf64efb22);
2784 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0105070f);
2785 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x0c460fce);
2786 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
2790 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000001);
2791 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00070012);
2792 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00220032);
2793 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x00370026);
2794 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xfff0ff91);
2795 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff0efe7c);
2796 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe01fdcc);
2797 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfe0afedb);
2798 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x00440224);
2799 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x0434060c);
2800 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0738074e);
2801 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x06090361);
2802 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xff99fb39);
2803 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf6fef3b6);
2804 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf21af2a5);
2805 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf573fa33);
2806 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0034067d);
2807 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x0bfb0fb9);
2808 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
2812 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000000);
2813 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0004000e);
2814 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00200038);
2815 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x004c004f);
2816 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x002fffdf);
2817 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff5cfeb6);
2818 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe0dfd92);
2819 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd7ffe03);
2820 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xff36010a);
2821 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x03410575);
2822 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x072607d2);
2823 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x071804d5);
2824 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0134fcb7);
2825 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf81ff451);
2826 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf223f22e);
2827 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf4a7f94b);
2828 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xff6405e8);
2829 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x0bae0fa4);
2830 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
2834 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000ffff);
2835 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00000008);
2836 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x001a0036);
2837 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0056006d);
2838 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00670030);
2839 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xffbdff10);
2840 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe46fd8d);
2841 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd25fd4f);
2842 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfe35ffe0);
2843 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x0224049f);
2844 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x06c9080e);
2845 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x07ef0627);
2846 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x02c9fe45);
2847 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf961f513);
2848 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf250f1d2);
2849 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf3ecf869);
2850 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xfe930552);
2851 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x0b5f0f8f);
2852 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
2856 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xfffffffe);
2857 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffd0001);
2858 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x000f002c);
2859 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0054007d);
2860 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x0093007c);
2861 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x0024ff82);
2862 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfea6fdbb);
2863 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd03fcca);
2864 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfd51feb9);
2865 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x00eb0392);
2866 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x06270802);
2867 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x08880750);
2868 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x044dffdb);
2869 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xfabdf5f8);
2870 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf2a0f193);
2871 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf342f78f);
2872 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xfdc404b9);
2873 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x0b0e0f78);
2874 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
2878 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xfffffffd);
2879 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffafff9);
2880 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0002001b);
2881 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0046007d);
2882 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00ad00ba);
2883 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00870000);
2884 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xff26fe1a);
2885 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd1bfc7e);
2886 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc99fda4);
2887 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xffa5025c);
2888 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x054507ad);
2889 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x08dd0847);
2890 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x05b80172);
2891 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xfc2ef6ff);
2892 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf313f170);
2893 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf2abf6bd);
2894 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xfcf6041f);
2895 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x0abc0f61);
2896 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
2900 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xfffffffd);
2901 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff8fff3);
2902 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xfff50006);
2903 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x002f006c);
2904 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00b200e3);
2905 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00dc007e);
2906 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xffb9fea0);
2907 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd6bfc71);
2908 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc17fcb1);
2909 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfe65010b);
2910 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x042d0713);
2911 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x08ec0906);
2912 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x07020302);
2913 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xfdaff823);
2914 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf3a7f16a);
2915 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf228f5f5);
2916 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xfc2a0384);
2917 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x0a670f4a);
2918 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
2922 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
2923 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff7ffef);
2924 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe9fff1);
2925 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0010004d);
2926 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00a100f2);
2927 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x011a00f0);
2928 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x0053ff44);
2929 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfdedfca2);
2930 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfbd3fbef);
2931 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfd39ffae);
2932 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x02ea0638);
2933 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x08b50987);
2934 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x08230483);
2935 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xff39f960);
2936 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf45bf180);
2937 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf1b8f537);
2938 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xfb6102e7);
2939 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x0a110f32);
2940 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
2944 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffe);
2945 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff9ffee);
2946 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe1ffdd);
2947 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xfff00024);
2948 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x007c00e5);
2949 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x013a014a);
2950 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x00e6fff8);
2951 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfe98fd0f);
2952 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfbd3fb67);
2953 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfc32fe54);
2954 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x01880525);
2955 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x083909c7);
2956 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x091505ee);
2957 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x00c7fab3);
2958 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf52df1b4);
2959 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf15df484);
2960 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xfa9b0249);
2961 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x09ba0f19);
2962 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
2966 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000000);
2967 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffbfff0);
2968 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffdeffcf);
2969 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffd1fff6);
2970 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x004800be);
2971 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x01390184);
2972 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x016300ac);
2973 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xff5efdb1);
2974 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc17fb23);
2975 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfb5cfd0d);
2976 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x001703e4);
2977 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x077b09c4);
2978 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x09d2073c);
2979 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0251fc18);
2980 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf61cf203);
2981 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf118f3dc);
2982 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf9d801aa);
2983 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x09600eff);
2984 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
2988 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000001);
2989 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffefff4);
2990 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe1ffc8);
2991 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffbaffca);
2992 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x000b0082);
2993 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x01170198);
2994 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01c10152);
2995 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x0030fe7b);
2996 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc99fb24);
2997 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfac3fbe9);
2998 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfea5027f);
2999 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x0683097f);
3000 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0a560867);
3001 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x03d2fd89);
3002 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf723f26f);
3003 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf0e8f341);
3004 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf919010a);
3005 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x09060ee5);
3006 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3010 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010002);
3011 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0002fffb);
3012 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe8ffca);
3013 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffacffa4);
3014 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffcd0036);
3015 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00d70184);
3016 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01f601dc);
3017 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x00ffff60);
3018 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfd51fb6d);
3019 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfa6efaf5);
3020 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfd410103);
3021 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x055708f9);
3022 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0a9e0969);
3023 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0543ff02);
3024 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf842f2f5);
3025 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf0cef2b2);
3026 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf85e006b);
3027 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x08aa0ecb);
3028 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3032 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010003);
3033 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00050003);
3034 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xfff3ffd3);
3035 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffaaff8b);
3036 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff95ffe5);
3037 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x0080014a);
3038 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01fe023f);
3039 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x01ba0050);
3040 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfe35fbf8);
3041 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfa62fa3b);
3042 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfbf9ff7e);
3043 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x04010836);
3044 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0aa90a3d);
3045 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x069f007f);
3046 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf975f395);
3047 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf0cbf231);
3048 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf7a9ffcb);
3049 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x084c0eaf);
3050 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3054 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010003);
3055 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0008000a);
3056 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0000ffe4);
3057 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffb4ff81);
3058 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff6aff96);
3059 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x001c00f0);
3060 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01d70271);
3061 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x0254013b);
3062 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xff36fcbd);
3063 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfa9ff9c5);
3064 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfadbfdfe);
3065 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x028c073b);
3066 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0a750adf);
3067 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x07e101fa);
3068 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xfab8f44e);
3069 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf0ddf1be);
3070 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf6f9ff2b);
3071 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x07ed0e94);
3072 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3076 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
3077 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0009000f);
3078 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x000efff8);
3079 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffc9ff87);
3080 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff52ff54);
3081 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xffb5007e);
3082 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01860270);
3083 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02c00210);
3084 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0044fdb2);
3085 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfb22f997);
3086 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf9f2fc90);
3087 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x0102060f);
3088 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0a050b4c);
3089 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0902036e);
3090 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xfc0af51e);
3091 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf106f15a);
3092 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf64efe8b);
3093 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x078d0e77);
3094 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3098 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000002);
3099 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00080012);
3100 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0019000e);
3101 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffe5ff9e);
3102 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff4fff25);
3103 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff560000);
3104 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x0112023b);
3105 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02f702c0);
3106 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x014dfec8);
3107 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfbe5f9b3);
3108 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf947fb41);
3109 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xff7004b9);
3110 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x095a0b81);
3111 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0a0004d8);
3112 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xfd65f603);
3113 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf144f104);
3114 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf5aafdec);
3115 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x072b0e5a);
3116 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3120 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000001);
3121 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00060012);
3122 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00200022);
3123 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0005ffc1);
3124 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff61ff10);
3125 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff09ff82);
3126 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x008601d7);
3127 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02f50340);
3128 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0241fff0);
3129 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfcddfa19);
3130 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf8e2fa1e);
3131 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfde30343);
3132 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x08790b7f);
3133 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0ad50631);
3134 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xfec7f6fc);
3135 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf198f0bd);
3136 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf50dfd4e);
3137 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x06c90e3d);
3138 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3142 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000ffff);
3143 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0003000f);
3144 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00220030);
3145 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0025ffed);
3146 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff87ff15);
3147 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfed6ff10);
3148 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xffed014c);
3149 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02b90386);
3150 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x03110119);
3151 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfdfefac4);
3152 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf8c6f92f);
3153 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfc6701b7);
3154 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x07670b44);
3155 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0b7e0776);
3156 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x002df807);
3157 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf200f086);
3158 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf477fcb1);
3159 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x06650e1e);
3160 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3164 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xfffffffe);
3165 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xffff0009);
3166 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x001e0038);
3167 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x003f001b);
3168 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffbcff36);
3169 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfec2feb6);
3170 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xff5600a5);
3171 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x0248038d);
3172 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x03b00232);
3173 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xff39fbab);
3174 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf8f4f87f);
3175 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfb060020);
3176 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x062a0ad2);
3177 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0bf908a3);
3178 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0192f922);
3179 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf27df05e);
3180 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf3e8fc14);
3181 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x06000e00);
3182 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3186 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xfffffffd);
3187 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffc0002);
3188 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00160037);
3189 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x00510046);
3190 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xfff9ff6d);
3191 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfed0fe7c);
3192 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfecefff0);
3193 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x01aa0356);
3194 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0413032b);
3195 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x007ffcc5);
3196 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf96cf812);
3197 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf9cefe87);
3198 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x04c90a2c);
3199 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0c4309b4);
3200 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x02f3fa4a);
3201 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf30ef046);
3202 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf361fb7a);
3203 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x059b0de0);
3204 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3208 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xfffffffd);
3209 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff9fffa);
3210 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x000a002d);
3211 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x00570067);
3212 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x0037ffb5);
3213 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfefffe68);
3214 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe62ff3d);
3215 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x00ec02e3);
3216 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x043503f6);
3217 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x01befe05);
3218 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfa27f7ee);
3219 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf8c6fcf8);
3220 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x034c0954);
3221 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0c5c0aa4);
3222 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x044cfb7e);
3223 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf3b1f03f);
3224 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf2e2fae1);
3225 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x05340dc0);
3226 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3230 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
3231 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff8fff4);
3232 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xfffd001e);
3233 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0051007b);
3234 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x006e0006);
3235 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff48fe7c);
3236 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe1bfe9a);
3237 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x001d023e);
3238 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x04130488);
3239 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x02e6ff5b);
3240 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfb1ef812);
3241 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf7f7fb7f);
3242 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x01bc084e);
3243 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0c430b72);
3244 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x059afcba);
3245 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf467f046);
3246 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf26cfa4a);
3247 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x04cd0da0);
3248 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3252 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffe);
3253 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff8ffef);
3254 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xfff00009);
3255 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x003f007f);
3256 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00980056);
3257 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xffa5feb6);
3258 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe00fe15);
3259 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xff4b0170);
3260 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x03b004d7);
3261 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x03e800b9);
3262 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfc48f87f);
3263 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf768fa23);
3264 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0022071f);
3265 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0bf90c1b);
3266 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x06dafdfd);
3267 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf52df05e);
3268 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf1fef9b5);
3269 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x04640d7f);
3270 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3274 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000ffff);
3275 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff9ffee);
3276 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe6fff3);
3277 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x00250072);
3278 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00af009c);
3279 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x000cff10);
3280 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe13fdb8);
3281 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfe870089);
3282 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x031104e1);
3283 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x04b8020f);
3284 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfd98f92f);
3285 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf71df8f0);
3286 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfe8805ce);
3287 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0b7e0c9c);
3288 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0808ff44);
3289 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf603f086);
3290 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf19af922);
3291 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x03fb0d5e);
3292 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3296 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000001);
3297 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffcffef);
3298 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe0ffe0);
3299 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x00050056);
3300 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00b000d1);
3301 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x0071ff82);
3302 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe53fd8c);
3303 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfddfff99);
3304 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x024104a3);
3305 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x054a034d);
3306 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xff01fa1e);
3307 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf717f7ed);
3308 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfcf50461);
3309 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0ad50cf4);
3310 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0921008d);
3311 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf6e7f0bd);
3312 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf13ff891);
3313 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x03920d3b);
3314 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3318 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010002);
3319 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffffff3);
3320 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffdeffd1);
3321 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffe5002f);
3322 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x009c00ed);
3323 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00cb0000);
3324 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfebafd94);
3325 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd61feb0);
3326 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x014d0422);
3327 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x05970464);
3328 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0074fb41);
3329 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf759f721);
3330 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfb7502de);
3331 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0a000d21);
3332 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0a2201d4);
3333 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf7d9f104);
3334 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf0edf804);
3335 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x03280d19);
3336 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3340 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010003);
3341 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0003fffa);
3342 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe3ffc9);
3343 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffc90002);
3344 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x007500ef);
3345 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x010e007e);
3346 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xff3dfdcf);
3347 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd16fddd);
3348 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x00440365);
3349 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x059b0548);
3350 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x01e3fc90);
3351 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf7dff691);
3352 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfa0f014d);
3353 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x09020d23);
3354 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0b0a0318);
3355 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf8d7f15a);
3356 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf0a5f779);
3357 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x02bd0cf6);
3358 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3362 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010003);
3363 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00060001);
3364 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffecffc9);
3365 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffb4ffd4);
3366 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x004000d5);
3367 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x013600f0);
3368 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xffd3fe39);
3369 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd04fd31);
3370 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xff360277);
3371 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x055605ef);
3372 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x033efdfe);
3373 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf8a5f642);
3374 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf8cbffb6);
3375 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x07e10cfb);
3376 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0bd50456);
3377 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf9dff1be);
3378 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf067f6f2);
3379 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x02520cd2);
3380 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3384 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
3385 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00080009);
3386 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xfff8ffd2);
3387 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffaaffac);
3388 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x000200a3);
3389 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x013c014a);
3390 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x006dfec9);
3391 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd2bfcb7);
3392 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfe350165);
3393 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x04cb0651);
3394 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0477ff7e);
3395 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf9a5f635);
3396 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf7b1fe20);
3397 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x069f0ca8);
3398 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0c81058b);
3399 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xfaf0f231);
3400 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf033f66d);
3401 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x01e60cae);
3402 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3406 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000002);
3407 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0009000e);
3408 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0005ffe1);
3409 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffacff90);
3410 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffc5005f);
3411 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x01210184);
3412 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x00fcff72);
3413 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd8afc77);
3414 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfd51003f);
3415 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x04020669);
3416 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x05830103);
3417 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfad7f66b);
3418 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf6c8fc93);
3419 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x05430c2b);
3420 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0d0d06b5);
3421 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xfc08f2b2);
3422 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf00af5ec);
3423 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x017b0c89);
3424 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3428 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000001);
3429 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00070012);
3430 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0012fff5);
3431 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffbaff82);
3432 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff8e000f);
3433 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00e80198);
3434 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01750028);
3435 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfe18fc75);
3436 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc99ff15);
3437 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x03050636);
3438 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0656027f);
3439 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfc32f6e2);
3440 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf614fb17);
3441 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x03d20b87);
3442 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0d7707d2);
3443 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xfd26f341);
3444 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xefeaf56f);
3445 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x010f0c64);
3446 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3450 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xffff0000);
3451 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00050012);
3452 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x001c000b);
3453 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffd1ff84);
3454 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff66ffbe);
3455 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00960184);
3456 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01cd00da);
3457 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfeccfcb2);
3458 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc17fdf9);
3459 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x01e005bc);
3460 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x06e703e4);
3461 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfdabf798);
3462 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf599f9b3);
3463 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x02510abd);
3464 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0dbf08df);
3465 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xfe48f3dc);
3466 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xefd5f4f6);
3467 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x00a20c3e);
3468 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3472 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xfffffffe);
3473 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0002000f);
3474 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0021001f);
3475 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xfff0ff97);
3476 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff50ff74);
3477 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x0034014a);
3478 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01fa0179);
3479 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xff97fd2a);
3480 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfbd3fcfa);
3481 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x00a304fe);
3482 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x07310525);
3483 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xff37f886);
3484 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf55cf86e);
3485 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x00c709d0);
3486 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0de209db);
3487 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xff6df484);
3488 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xefcbf481);
3489 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0x00360c18);
3490 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3494 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xfffffffd);
3495 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffe000a);
3496 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0021002f);
3497 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0010ffb8);
3498 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff50ff3b);
3499 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xffcc00f0);
3500 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01fa01fa);
3501 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x0069fdd4);
3502 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfbd3fc26);
3503 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xff5d0407);
3504 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x07310638);
3505 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x00c9f9a8);
3506 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf55cf74e);
3507 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xff3908c3);
3508 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0de20ac3);
3509 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0093f537);
3510 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xefcbf410);
3511 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xffca0bf2);
3512 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3516 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xfffffffd);
3517 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffb0003);
3518 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x001c0037);
3519 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x002fffe2);
3520 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff66ff17);
3521 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff6a007e);
3522 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01cd0251);
3523 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x0134fea5);
3524 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc17fb8b);
3525 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfe2002e0);
3526 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x06e70713);
3527 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x0255faf5);
3528 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf599f658);
3529 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xfdaf0799);
3530 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0dbf0b96);
3531 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x01b8f5f5);
3532 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xefd5f3a3);
3533 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xff5e0bca);
3534 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3538 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
3539 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff9fffb);
3540 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00120037);
3541 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x00460010);
3542 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff8eff0f);
3543 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff180000);
3544 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01750276);
3545 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x01e8ff8d);
3546 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc99fb31);
3547 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfcfb0198);
3548 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x065607ad);
3549 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x03cefc64);
3550 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf614f592);
3551 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xfc2e0656);
3552 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0d770c52);
3553 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x02daf6bd);
3554 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xefeaf33b);
3555 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xfef10ba3);
3556 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3560 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffe);
3561 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff7fff5);
3562 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0005002f);
3563 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0054003c);
3564 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffc5ff22);
3565 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfedfff82);
3566 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x00fc0267);
3567 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x0276007e);
3568 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfd51fb1c);
3569 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfbfe003e);
3570 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x05830802);
3571 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x0529fdec);
3572 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf6c8f4fe);
3573 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xfabd04ff);
3574 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0d0d0cf6);
3575 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x03f8f78f);
3576 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf00af2d7);
3577 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xfe850b7b);
3578 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3582 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000ffff);
3583 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff8fff0);
3584 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xfff80020);
3585 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x00560060);
3586 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x0002ff4e);
3587 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfec4ff10);
3588 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x006d0225);
3589 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02d50166);
3590 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfe35fb4e);
3591 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfb35fee1);
3592 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0477080e);
3593 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x065bff82);
3594 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf7b1f4a0);
3595 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf9610397);
3596 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0c810d80);
3597 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0510f869);
3598 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf033f278);
3599 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xfe1a0b52);
3600 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3604 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010000);
3605 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffaffee);
3606 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffec000c);
3607 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x004c0078);
3608 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x0040ff8e);
3609 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfecafeb6);
3610 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xffd301b6);
3611 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02fc0235);
3612 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xff36fbc5);
3613 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfaaafd90);
3614 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x033e07d2);
3615 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x075b011b);
3616 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf8cbf47a);
3617 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf81f0224);
3618 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0bd50def);
3619 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0621f94b);
3620 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf067f21e);
3621 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xfdae0b29);
3622 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3626 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010001);
3627 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffdffef);
3628 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe3fff6);
3629 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0037007f);
3630 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x0075ffdc);
3631 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfef2fe7c);
3632 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xff3d0122);
3633 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02ea02dd);
3634 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0044fc79);
3635 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfa65fc5d);
3636 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x01e3074e);
3637 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x082102ad);
3638 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfa0ff48c);
3639 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf6fe00a9);
3640 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0b0a0e43);
3641 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0729fa33);
3642 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf0a5f1c9);
3643 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xfd430b00);
3644 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3648 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010002);
3649 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0001fff3);
3650 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffdeffe2);
3651 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x001b0076);
3652 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x009c002d);
3653 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff35fe68);
3654 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfeba0076);
3655 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x029f0352);
3656 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x014dfd60);
3657 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfa69fb53);
3658 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x00740688);
3659 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x08a7042d);
3660 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfb75f4d6);
3661 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf600ff2d);
3662 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0a220e7a);
3663 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0827fb22);
3664 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf0edf17a);
3665 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xfcd80ad6);
3666 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3670 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
3671 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0004fff9);
3672 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe0ffd2);
3673 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xfffb005e);
3674 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00b0007a);
3675 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff8ffe7c);
3676 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe53ffc1);
3677 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x0221038c);
3678 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0241fe6e);
3679 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfab6fa80);
3680 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xff010587);
3681 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x08e90590);
3682 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfcf5f556);
3683 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf52bfdb3);
3684 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x09210e95);
3685 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0919fc15);
3686 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf13ff12f);
3687 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xfc6e0aab);
3688 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3692 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
3693 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00070000);
3694 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe6ffc9);
3695 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffdb0039);
3696 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00af00b8);
3697 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfff4feb6);
3698 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe13ff10);
3699 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x01790388);
3700 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0311ff92);
3701 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfb48f9ed);
3702 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfd980453);
3703 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x08e306cd);
3704 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfe88f60a);
3705 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf482fc40);
3706 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x08080e93);
3707 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x09fdfd0c);
3708 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf19af0ea);
3709 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xfc050a81);
3710 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3714 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000002);
3715 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00080008);
3716 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xfff0ffc9);
3717 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffc1000d);
3718 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x009800e2);
3719 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x005bff10);
3720 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe00fe74);
3721 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x00b50345);
3722 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x03b000bc);
3723 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfc18f9a1);
3724 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfc4802f9);
3725 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x089807dc);
3726 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0022f6f0);
3727 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf407fada);
3728 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x06da0e74);
3729 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0ad3fe06);
3730 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf1fef0ab);
3731 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xfb9c0a55);
3732 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3736 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000001);
3737 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0008000e);
3738 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xfffdffd0);
3739 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffafffdf);
3740 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x006e00f2);
3741 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00b8ff82);
3742 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe1bfdf8);
3743 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xffe302c8);
3744 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x041301dc);
3745 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfd1af99e);
3746 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfb1e0183);
3747 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x080908b5);
3748 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x01bcf801);
3749 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf3bdf985);
3750 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x059a0e38);
3751 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0b99ff03);
3752 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf26cf071);
3753 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xfb330a2a);
3754 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3758 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xffff0000);
3759 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00070011);
3760 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x000affdf);
3761 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffa9ffb5);
3762 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x003700e6);
3763 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x01010000);
3764 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe62fda8);
3765 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xff140219);
3766 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x043502e1);
3767 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfe42f9e6);
3768 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfa270000);
3769 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x073a0953);
3770 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x034cf939);
3771 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf3a4f845);
3772 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x044c0de1);
3773 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0c4f0000);
3774 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf2e2f03c);
3775 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xfacc09fe);
3776 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3780 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xffffffff);
3781 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00040012);
3782 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0016fff3);
3783 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffafff95);
3784 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xfff900c0);
3785 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x0130007e);
3786 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfecefd89);
3787 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfe560146);
3788 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x041303bc);
3789 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xff81fa76);
3790 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf96cfe7d);
3791 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x063209b1);
3792 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x04c9fa93);
3793 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf3bdf71e);
3794 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x02f30d6e);
3795 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0cf200fd);
3796 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf361f00e);
3797 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xfa6509d1);
3798 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3802 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xfffffffe);
3803 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00010010);
3804 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x001e0008);
3805 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffc1ff84);
3806 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffbc0084);
3807 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x013e00f0);
3808 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xff56fd9f);
3809 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfdb8005c);
3810 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x03b00460);
3811 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x00c7fb45);
3812 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf8f4fd07);
3813 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x04fa09ce);
3814 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x062afc07);
3815 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf407f614);
3816 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x01920ce0);
3817 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0d8301fa);
3818 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf3e8efe5);
3819 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xfa0009a4);
3820 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3824 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
3825 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffd000b);
3826 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0022001d);
3827 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffdbff82);
3828 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff870039);
3829 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x012a014a);
3830 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xffedfde7);
3831 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd47ff6b);
3832 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x031104c6);
3833 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x0202fc4c);
3834 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf8c6fbad);
3835 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x039909a7);
3836 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0767fd8e);
3837 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf482f52b);
3838 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x002d0c39);
3839 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0e0002f4);
3840 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf477efc2);
3841 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf99b0977);
3842 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3846 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
3847 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffa0004);
3848 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0020002d);
3849 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xfffbff91);
3850 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff61ffe8);
3851 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00f70184);
3852 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x0086fe5c);
3853 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd0bfe85);
3854 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x024104e5);
3855 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x0323fd7d);
3856 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf8e2fa79);
3857 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x021d093f);
3858 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0879ff22);
3859 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf52bf465);
3860 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xfec70b79);
3861 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0e6803eb);
3862 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf50defa5);
3863 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf937094a);
3864 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3868 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffe);
3869 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff8fffd);
3870 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00190036);
3871 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x001bffaf);
3872 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff4fff99);
3873 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00aa0198);
3874 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x0112fef3);
3875 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd09fdb9);
3876 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x014d04be);
3877 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x041bfecc);
3878 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf947f978);
3879 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x00900897);
3880 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x095a00b9);
3881 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf600f3c5);
3882 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xfd650aa3);
3883 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0ebc04de);
3884 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf5aaef8e);
3885 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf8d5091c);
3886 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3890 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000ffff);
3891 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff7fff6);
3892 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x000e0038);
3893 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0037ffd7);
3894 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff52ff56);
3895 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x004b0184);
3896 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x0186ffa1);
3897 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd40fd16);
3898 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x00440452);
3899 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x04de0029);
3900 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf9f2f8b2);
3901 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfefe07b5);
3902 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0a05024d);
3903 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf6fef34d);
3904 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xfc0a09b8);
3905 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0efa05cd);
3906 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf64eef7d);
3907 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf87308ed);
3908 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3912 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010000);
3913 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff8fff0);
3914 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00000031);
3915 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x004c0005);
3916 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff6aff27);
3917 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xffe4014a);
3918 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01d70057);
3919 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfdacfca6);
3920 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xff3603a7);
3921 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x05610184);
3922 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfadbf82e);
3923 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfd74069f);
3924 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0a7503d6);
3925 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf81ff2ff);
3926 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xfab808b9);
3927 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0f2306b5);
3928 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf6f9ef72);
3929 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf81308bf);
3930 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3934 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010001);
3935 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffbffee);
3936 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xfff30022);
3937 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x00560032);
3938 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff95ff10);
3939 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff8000f0);
3940 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01fe0106);
3941 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfe46fc71);
3942 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfe3502c7);
3943 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x059e02ce);
3944 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfbf9f7f2);
3945 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfbff055b);
3946 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0aa9054c);
3947 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf961f2db);
3948 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf97507aa);
3949 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0f350797);
3950 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf7a9ef6d);
3951 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf7b40890);
3952 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3956 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010002);
3957 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffeffee);
3958 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe8000f);
3959 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x00540058);
3960 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffcdff14);
3961 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff29007e);
3962 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01f6019e);
3963 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xff01fc7c);
3964 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfd5101bf);
3965 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x059203f6);
3966 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfd41f7fe);
3967 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfaa903f3);
3968 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0a9e06a9);
3969 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xfabdf2e2);
3970 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf842068b);
3971 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0f320871);
3972 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf85eef6e);
3973 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf7560860);
3974 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
3978 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
3979 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0002fff2);
3980 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe1fff9);
3981 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x00460073);
3982 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x000bff34);
3983 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfee90000);
3984 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01c10215);
3985 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xffd0fcc5);
3986 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc99009d);
3987 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x053d04f1);
3988 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfea5f853);
3989 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf97d0270);
3990 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0a5607e4);
3991 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xfc2ef314);
3992 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf723055f);
3993 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0f180943);
3994 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf919ef75);
3995 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf6fa0830);
3996 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4000 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
4001 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0005fff8);
4002 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffdeffe4);
4003 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x002f007f);
4004 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x0048ff6b);
4005 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfec7ff82);
4006 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x0163025f);
4007 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x00a2fd47);
4008 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc17ff73);
4009 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x04a405b2);
4010 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0017f8ed);
4011 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf88500dc);
4012 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x09d208f9);
4013 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xfdaff370);
4014 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf61c0429);
4015 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0ee80a0b);
4016 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xf9d8ef82);
4017 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf6a00800);
4018 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4022 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
4023 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0007ffff);
4024 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe1ffd4);
4025 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0010007a);
4026 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x007cffb2);
4027 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfec6ff10);
4028 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x00e60277);
4029 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x0168fdf9);
4030 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfbd3fe50);
4031 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x03ce0631);
4032 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0188f9c8);
4033 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf7c7ff43);
4034 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x091509e3);
4035 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xff39f3f6);
4036 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf52d02ea);
4037 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0ea30ac9);
4038 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xfa9bef95);
4039 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf64607d0);
4040 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4044 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000002);
4045 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00090007);
4046 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe9ffca);
4047 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xfff00065);
4048 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00a10003);
4049 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfee6feb6);
4050 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x0053025b);
4051 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x0213fed0);
4052 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfbd3fd46);
4053 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x02c70668);
4054 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x02eafadb);
4055 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf74bfdae);
4056 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x08230a9c);
4057 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x00c7f4a3);
4058 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf45b01a6);
4059 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0e480b7c);
4060 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xfb61efae);
4061 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf5ef079f);
4062 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4066 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xffff0000);
4067 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0008000d);
4068 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xfff5ffc8);
4069 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffd10043);
4070 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00b20053);
4071 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff24fe7c);
4072 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xffb9020c);
4073 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x0295ffbb);
4074 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc17fc64);
4075 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x019b0654);
4076 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x042dfc1c);
4077 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf714fc2a);
4078 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x07020b21);
4079 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0251f575);
4080 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf3a7005e);
4081 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0dd80c24);
4082 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xfc2aefcd);
4083 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf599076e);
4084 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4088 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xffffffff);
4089 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00060011);
4090 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0002ffcf);
4091 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffba0018);
4092 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00ad009a);
4093 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff79fe68);
4094 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xff260192);
4095 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02e500ab);
4096 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc99fbb6);
4097 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x005b05f7);
4098 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0545fd81);
4099 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf723fabf);
4100 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x05b80b70);
4101 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x03d2f669);
4102 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf313ff15);
4103 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0d550cbf);
4104 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xfcf6eff2);
4105 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf544073d);
4106 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4110 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xfffffffe);
4111 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00030012);
4112 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x000fffdd);
4113 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffacffea);
4114 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x009300cf);
4115 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xffdcfe7c);
4116 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfea600f7);
4117 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02fd0190);
4118 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfd51fb46);
4119 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xff150554);
4120 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0627fefd);
4121 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf778f978);
4122 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x044d0b87);
4123 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0543f77d);
4124 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf2a0fdcf);
4125 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0cbe0d4e);
4126 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xfdc4f01d);
4127 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf4f2070b);
4128 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4132 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
4133 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00000010);
4134 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x001afff0);
4135 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffaaffbf);
4136 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x006700ed);
4137 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x0043feb6);
4138 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe460047);
4139 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02db0258);
4140 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfe35fb1b);
4141 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfddc0473);
4142 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x06c90082);
4143 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf811f85e);
4144 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x02c90b66);
4145 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x069ff8ad);
4146 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf250fc8d);
4147 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0c140dcf);
4148 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xfe93f04d);
4149 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf4a106d9);
4150 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4154 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
4155 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffc000c);
4156 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00200006);
4157 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffb4ff9c);
4158 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x002f00ef);
4159 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00a4ff10);
4160 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe0dff92);
4161 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x028102f7);
4162 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xff36fb37);
4163 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfcbf035e);
4164 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x07260202);
4165 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf8e8f778);
4166 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x01340b0d);
4167 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x07e1f9f4);
4168 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf223fb51);
4169 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0b590e42);
4170 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xff64f083);
4171 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf45206a7);
4172 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4176 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
4177 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff90005);
4178 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0022001a);
4179 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffc9ff86);
4180 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xfff000d7);
4181 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00f2ff82);
4182 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe01fee5);
4183 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x01f60362);
4184 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0044fb99);
4185 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfbcc0222);
4186 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x07380370);
4187 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf9f7f6cc);
4188 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xff990a7e);
4189 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0902fb50);
4190 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf21afa1f);
4191 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0a8d0ea6);
4192 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0034f0bf);
4193 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf4050675);
4194 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4198 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffe);
4199 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff8fffe);
4200 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x001e002b);
4201 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffe5ff81);
4202 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffb400a5);
4203 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x01280000);
4204 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe24fe50);
4205 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x01460390);
4206 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x014dfc3a);
4207 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfb1000ce);
4208 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x070104bf);
4209 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfb37f65f);
4210 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfe0009bc);
4211 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0a00fcbb);
4212 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf235f8f8);
4213 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x09b20efc);
4214 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0105f101);
4215 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf3ba0642);
4216 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4220 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0001ffff);
4221 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff8fff7);
4222 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00150036);
4223 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0005ff8c);
4224 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff810061);
4225 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x013d007e);
4226 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe71fddf);
4227 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x007c0380);
4228 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0241fd13);
4229 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfa94ff70);
4230 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x068005e2);
4231 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfc9bf633);
4232 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfc7308ca);
4233 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0ad5fe30);
4234 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf274f7e0);
4235 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x08c90f43);
4236 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x01d4f147);
4237 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf371060f);
4238 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4242 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010001);
4243 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff9fff1);
4244 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00090038);
4245 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0025ffa7);
4246 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff5e0012);
4247 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x013200f0);
4248 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfee3fd9b);
4249 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xffaa0331);
4250 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0311fe15);
4251 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfa60fe18);
4252 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x05bd06d1);
4253 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfe1bf64a);
4254 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfafa07ae);
4255 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0b7effab);
4256 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf2d5f6d7);
4257 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x07d30f7a);
4258 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x02a3f194);
4259 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf32905dc);
4260 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4264 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010002);
4265 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffcffee);
4266 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xfffb0032);
4267 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x003fffcd);
4268 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff4effc1);
4269 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x0106014a);
4270 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xff6efd8a);
4271 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfedd02aa);
4272 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x03b0ff34);
4273 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfa74fcd7);
4274 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x04bf0781);
4275 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xffaaf6a3);
4276 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf99e066b);
4277 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0bf90128);
4278 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf359f5e1);
4279 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x06d20fa2);
4280 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0370f1e5);
4281 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf2e405a8);
4282 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4286 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
4287 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xffffffee);
4288 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffef0024);
4289 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0051fffa);
4290 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff54ff77);
4291 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00be0184);
4292 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x0006fdad);
4293 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfe2701f3);
4294 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0413005e);
4295 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfad1fbba);
4296 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x039007ee);
4297 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x013bf73d);
4298 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf868050a);
4299 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0c4302a1);
4300 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf3fdf4fe);
4301 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x05c70fba);
4302 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x043bf23c);
4303 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf2a10575);
4304 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4308 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
4309 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0003fff1);
4310 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe50011);
4311 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x00570027);
4312 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff70ff3c);
4313 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00620198);
4314 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x009efe01);
4315 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd95011a);
4316 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x04350183);
4317 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfb71fad0);
4318 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x023c0812);
4319 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x02c3f811);
4320 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf75e0390);
4321 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0c5c0411);
4322 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf4c1f432);
4323 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x04b30fc1);
4324 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0503f297);
4325 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf2610541);
4326 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4330 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
4331 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0006fff7);
4332 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffdffffc);
4333 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x00510050);
4334 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff9dff18);
4335 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfffc0184);
4336 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x0128fe80);
4337 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd32002e);
4338 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x04130292);
4339 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfc4dfa21);
4340 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x00d107ee);
4341 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x0435f91c);
4342 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf6850205);
4343 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0c430573);
4344 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf5a1f37d);
4345 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x03990fba);
4346 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x05c7f2f8);
4347 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf222050d);
4348 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4352 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000002);
4353 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0008fffe);
4354 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffdfffe7);
4355 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x003f006e);
4356 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffd6ff0f);
4357 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff96014a);
4358 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x0197ff1f);
4359 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd05ff3e);
4360 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x03b0037c);
4361 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfd59f9b7);
4362 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xff5d0781);
4363 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x0585fa56);
4364 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf5e4006f);
4365 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0bf906c4);
4366 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf69df2e0);
4367 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x02790fa2);
4368 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0688f35d);
4369 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf1e604d8);
4370 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4374 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xffff0001);
4375 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00090005);
4376 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe4ffd6);
4377 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0025007e);
4378 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x0014ff20);
4379 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff3c00f0);
4380 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01e1ffd0);
4381 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd12fe5c);
4382 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x03110433);
4383 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfe88f996);
4384 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfdf106d1);
4385 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x06aafbb7);
4386 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf57efed8);
4387 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0b7e07ff);
4388 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf7b0f25e);
4389 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x01560f7a);
4390 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0745f3c7);
4391 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf1ac04a4);
4392 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4396 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xffffffff);
4397 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0008000c);
4398 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffedffcb);
4399 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0005007d);
4400 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x0050ff4c);
4401 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfef6007e);
4402 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01ff0086);
4403 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd58fd97);
4404 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x024104ad);
4405 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xffcaf9c0);
4406 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfc9905e2);
4407 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x079afd35);
4408 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf555fd46);
4409 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0ad50920);
4410 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf8d9f1f6);
4411 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x00310f43);
4412 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x07fdf435);
4413 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf174046f);
4414 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4418 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xfffffffe);
4419 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00050011);
4420 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xfffaffc8);
4421 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffe5006b);
4422 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x0082ff8c);
4423 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfecc0000);
4424 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01f00130);
4425 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfdd2fcfc);
4426 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x014d04e3);
4427 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x010efa32);
4428 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfb6404bf);
4429 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x084efec5);
4430 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf569fbc2);
4431 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0a000a23);
4432 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xfa15f1ab);
4433 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xff0b0efc);
4434 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x08b0f4a7);
4435 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf13f043a);
4436 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4440 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
4441 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00020012);
4442 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0007ffcd);
4443 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffc9004c);
4444 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00a4ffd9);
4445 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfec3ff82);
4446 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01b401c1);
4447 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfe76fc97);
4448 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x004404d2);
4449 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x0245fae8);
4450 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfa5f0370);
4451 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x08c1005f);
4452 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf5bcfa52);
4453 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x09020b04);
4454 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xfb60f17b);
4455 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xfde70ea6);
4456 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x095df51e);
4457 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf10c0405);
4458 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4462 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
4463 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xffff0011);
4464 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0014ffdb);
4465 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffb40023);
4466 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00b2002a);
4467 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfedbff10);
4468 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x0150022d);
4469 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xff38fc6f);
4470 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xff36047b);
4471 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x035efbda);
4472 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf9940202);
4473 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x08ee01f5);
4474 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf649f8fe);
4475 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x07e10bc2);
4476 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xfcb6f169);
4477 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xfcc60e42);
4478 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0a04f599);
4479 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf0db03d0);
4480 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4484 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
4485 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffb000d);
4486 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x001dffed);
4487 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffaafff5);
4488 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00aa0077);
4489 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff13feb6);
4490 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x00ce026b);
4491 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x000afc85);
4492 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfe3503e3);
4493 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x044cfcfb);
4494 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf90c0082);
4495 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x08d5037f);
4496 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf710f7cc);
4497 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x069f0c59);
4498 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xfe16f173);
4499 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xfbaa0dcf);
4500 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0aa5f617);
4501 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf0ad039b);
4502 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4506 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffe);
4507 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff90006);
4508 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00210003);
4509 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffacffc8);
4510 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x008e00b6);
4511 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff63fe7c);
4512 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x003a0275);
4513 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x00dafcda);
4514 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfd510313);
4515 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x0501fe40);
4516 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf8cbfefd);
4517 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x087604f0);
4518 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf80af6c2);
4519 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x05430cc8);
4520 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xff7af19a);
4521 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xfa940d4e);
4522 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0b3ff699);
4523 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf0810365);
4524 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4528 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0001ffff);
4529 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff8ffff);
4530 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00210018);
4531 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffbaffa3);
4532 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x006000e1);
4533 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xffc4fe68);
4534 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xffa0024b);
4535 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x019afd66);
4536 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc990216);
4537 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x0575ff99);
4538 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf8d4fd81);
4539 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x07d40640);
4540 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf932f5e6);
4541 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x03d20d0d);
4542 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x00dff1de);
4543 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf9860cbf);
4544 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0bd1f71e);
4545 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf058032f);
4546 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4550 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010000);
4551 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff8fff8);
4552 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x001b0029);
4553 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffd1ff8a);
4554 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x002600f2);
4555 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x002cfe7c);
4556 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xff0f01f0);
4557 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x023bfe20);
4558 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc1700fa);
4559 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x05a200f7);
4560 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf927fc1c);
4561 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x06f40765);
4562 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfa82f53b);
4563 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x02510d27);
4564 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0243f23d);
4565 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf8810c24);
4566 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0c5cf7a7);
4567 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf03102fa);
4568 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4572 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010002);
4573 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffafff2);
4574 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00110035);
4575 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xfff0ff81);
4576 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffe700e7);
4577 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x008ffeb6);
4578 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe94016d);
4579 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02b0fefb);
4580 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfbd3ffd1);
4581 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x05850249);
4582 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf9c1fadb);
4583 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x05de0858);
4584 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfbf2f4c4);
4585 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x00c70d17);
4586 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x03a0f2b8);
4587 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf7870b7c);
4588 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0cdff833);
4589 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf00d02c4);
4590 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4594 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
4595 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffdffee);
4596 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00040038);
4597 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0010ff88);
4598 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffac00c2);
4599 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00e2ff10);
4600 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe3900cb);
4601 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02f1ffe9);
4602 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfbd3feaa);
4603 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x05210381);
4604 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfa9cf9c8);
4605 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x04990912);
4606 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfd7af484);
4607 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xff390cdb);
4608 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x04f4f34d);
4609 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf69a0ac9);
4610 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0d5af8c1);
4611 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xefec028e);
4612 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4616 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
4617 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0000ffee);
4618 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xfff60033);
4619 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x002fff9f);
4620 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff7b0087);
4621 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x011eff82);
4622 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe080018);
4623 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02f900d8);
4624 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc17fd96);
4625 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x04790490);
4626 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfbadf8ed);
4627 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x032f098e);
4628 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xff10f47d);
4629 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xfdaf0c75);
4630 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x063cf3fc);
4631 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf5ba0a0b);
4632 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0dccf952);
4633 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xefcd0258);
4634 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4638 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
4639 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0004fff1);
4640 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffea0026);
4641 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0046ffc3);
4642 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff5a003c);
4643 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x013b0000);
4644 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe04ff63);
4645 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02c801b8);
4646 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc99fca6);
4647 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x0397056a);
4648 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfcecf853);
4649 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x01ad09c9);
4650 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x00acf4ad);
4651 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xfc2e0be7);
4652 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0773f4c2);
4653 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf4e90943);
4654 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0e35f9e6);
4655 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xefb10221);
4656 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4660 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000002);
4661 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0007fff6);
4662 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe20014);
4663 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0054ffee);
4664 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff4effeb);
4665 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x0137007e);
4666 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe2efebb);
4667 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x0260027a);
4668 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfd51fbe6);
4669 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x02870605);
4670 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfe4af7fe);
4671 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x001d09c1);
4672 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0243f515);
4673 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xfabd0b32);
4674 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0897f59e);
4675 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf4280871);
4676 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0e95fa7c);
4677 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef9701eb);
4678 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4682 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xffff0001);
4683 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0008fffd);
4684 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffdeffff);
4685 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0056001d);
4686 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff57ff9c);
4687 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x011300f0);
4688 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe82fe2e);
4689 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x01ca0310);
4690 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfe35fb62);
4691 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x0155065a);
4692 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xffbaf7f2);
4693 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfe8c0977);
4694 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x03cef5b2);
4695 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf9610a58);
4696 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x09a5f68f);
4697 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf3790797);
4698 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0eebfb14);
4699 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef8001b5);
4700 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4704 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xffff0000);
4705 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00080004);
4706 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe0ffe9);
4707 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x004c0047);
4708 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff75ff58);
4709 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00d1014a);
4710 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfef9fdc8);
4711 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x0111036f);
4712 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xff36fb21);
4713 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x00120665);
4714 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x012df82e);
4715 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfd0708ec);
4716 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0542f682);
4717 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf81f095c);
4718 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0a9af792);
4719 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf2db06b5);
4720 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0f38fbad);
4721 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef6c017e);
4722 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4726 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xffffffff);
4727 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0007000b);
4728 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe7ffd8);
4729 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x00370068);
4730 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffa4ff28);
4731 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00790184);
4732 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xff87fd91);
4733 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x00430392);
4734 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0044fb26);
4735 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfece0626);
4736 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0294f8b2);
4737 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfb990825);
4738 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0698f77f);
4739 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf6fe0842);
4740 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0b73f8a7);
4741 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf25105cd);
4742 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0f7bfc48);
4743 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef5a0148);
4744 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4748 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffe);
4749 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00050010);
4750 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xfff2ffcc);
4751 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x001b007b);
4752 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffdfff10);
4753 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00140198);
4754 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x0020fd8e);
4755 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xff710375);
4756 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x014dfb73);
4757 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfd9a059f);
4758 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x03e0f978);
4759 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfa4e0726);
4760 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x07c8f8a7);
4761 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf600070c);
4762 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0c2ff9c9);
4763 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf1db04de);
4764 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0fb4fce5);
4765 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef4b0111);
4766 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4770 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
4771 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00010012);
4772 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffffffc8);
4773 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xfffb007e);
4774 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x001dff14);
4775 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xffad0184);
4776 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x00b7fdbe);
4777 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfea9031b);
4778 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0241fc01);
4779 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfc8504d6);
4780 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0504fa79);
4781 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf93005f6);
4782 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x08caf9f2);
4783 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf52b05c0);
4784 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0ccbfaf9);
4785 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf17903eb);
4786 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0fe3fd83);
4787 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef3f00db);
4788 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4792 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
4793 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffe0011);
4794 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x000cffcc);
4795 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffdb0071);
4796 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x0058ff32);
4797 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff4f014a);
4798 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x013cfe1f);
4799 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfdfb028a);
4800 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0311fcc9);
4801 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfb9d03d6);
4802 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x05f4fbad);
4803 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf848049d);
4804 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0999fb5b);
4805 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf4820461);
4806 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0d46fc32);
4807 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf12d02f4);
4808 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x1007fe21);
4809 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef3600a4);
4810 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4814 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffe);
4815 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffa000e);
4816 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0017ffd9);
4817 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffc10055);
4818 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x0088ff68);
4819 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff0400f0);
4820 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01a6fea7);
4821 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd7501cc);
4822 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x03b0fdc0);
4823 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfaef02a8);
4824 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x06a7fd07);
4825 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf79d0326);
4826 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0a31fcda);
4827 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf40702f3);
4828 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0d9ffd72);
4829 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf0f601fa);
4830 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x1021fec0);
4831 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef2f006d);
4832 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4836 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0001ffff);
4837 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff80007);
4838 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x001fffeb);
4839 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffaf002d);
4840 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00a8ffb0);
4841 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfed3007e);
4842 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01e9ff4c);
4843 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd2000ee);
4844 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0413fed8);
4845 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfa82015c);
4846 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0715fe7d);
4847 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf7340198);
4848 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0a8dfe69);
4849 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf3bd017c);
4850 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0dd5feb8);
4851 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf0d500fd);
4852 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x1031ff60);
4853 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef2b0037);
4854 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4858 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010000);
4859 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff70000);
4860 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00220000);
4861 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffa90000);
4862 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00b30000);
4863 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfec20000);
4864 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x02000000);
4865 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd030000);
4866 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x04350000);
4867 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfa5e0000);
4868 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x073b0000);
4869 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf7110000);
4870 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0aac0000);
4871 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf3a40000);
4872 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0de70000);
4873 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf0c90000);
4874 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x10360000);
4875 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef290000);
4876 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4880 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010001);
4881 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff8fff9);
4882 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x001f0015);
4883 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffafffd3);
4884 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00a80050);
4885 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfed3ff82);
4886 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01e900b4);
4887 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd20ff12);
4888 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x04130128);
4889 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfa82fea4);
4890 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x07150183);
4891 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf734fe68);
4892 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0a8d0197);
4893 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf3bdfe84);
4894 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0dd50148);
4895 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf0d5ff03);
4896 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x103100a0);
4897 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef2bffc9);
4898 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4902 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000002);
4903 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffafff2);
4904 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00170027);
4905 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffc1ffab);
4906 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00880098);
4907 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff04ff10);
4908 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01a60159);
4909 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd75fe34);
4910 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x03b00240);
4911 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfaeffd58);
4912 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x06a702f9);
4913 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf79dfcda);
4914 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0a310326);
4915 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf407fd0d);
4916 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0d9f028e);
4917 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf0f6fe06);
4918 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x10210140);
4919 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef2fff93);
4920 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4924 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
4925 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffeffef);
4926 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x000c0034);
4927 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffdbff8f);
4928 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x005800ce);
4929 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff4ffeb6);
4930 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x013c01e1);
4931 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfdfbfd76);
4932 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x03110337);
4933 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfb9dfc2a);
4934 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x05f40453);
4935 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf848fb63);
4936 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x099904a5);
4937 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf482fb9f);
4938 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0d4603ce);
4939 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf12dfd0c);
4940 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x100701df);
4941 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef36ff5c);
4942 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4946 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
4947 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0001ffee);
4948 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffff0038);
4949 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xfffbff82);
4950 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x001d00ec);
4951 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xffadfe7c);
4952 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x00b70242);
4953 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfea9fce5);
4954 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x024103ff);
4955 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfc85fb2a);
4956 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x05040587);
4957 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf930fa0a);
4958 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x08ca060e);
4959 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf52bfa40);
4960 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0ccb0507);
4961 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf179fc15);
4962 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0fe3027d);
4963 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef3fff25);
4964 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4968 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000002);
4969 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0005fff0);
4970 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xfff20034);
4971 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x001bff85);
4972 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffdf00f0);
4973 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x0014fe68);
4974 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x00200272);
4975 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xff71fc8b);
4976 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x014d048d);
4977 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfd9afa61);
4978 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x03e00688);
4979 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfa4ef8da);
4980 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x07c80759);
4981 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf600f8f4);
4982 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0c2f0637);
4983 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf1dbfb22);
4984 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0fb4031b);
4985 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef4bfeef);
4986 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
4990 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xffff0001);
4991 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0007fff5);
4992 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe70028);
4993 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0037ff98);
4994 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffa400d8);
4995 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x0079fe7c);
4996 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xff87026f);
4997 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x0043fc6e);
4998 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x004404da);
4999 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfecef9da);
5000 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0294074e);
5001 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfb99f7db);
5002 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x06980881);
5003 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf6fef7be);
5004 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0b730759);
5005 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf251fa33);
5006 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0f7b03b8);
5007 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef5afeb8);
5008 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5012 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xffff0000);
5013 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0008fffc);
5014 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe00017);
5015 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x004cffb9);
5016 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff7500a8);
5017 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00d1feb6);
5018 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfef90238);
5019 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x0111fc91);
5020 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xff3604df);
5021 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x0012f99b);
5022 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x012d07d2);
5023 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfd07f714);
5024 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0542097e);
5025 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf81ff6a4);
5026 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x0a9a086e);
5027 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf2dbf94b);
5028 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0f380453);
5029 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef6cfe82);
5030 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5034 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xffffffff);
5035 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00080003);
5036 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffde0001);
5037 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0056ffe3);
5038 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff570064);
5039 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x0113ff10);
5040 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe8201d2);
5041 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x01cafcf0);
5042 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfe35049e);
5043 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x0155f9a6);
5044 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xffba080e);
5045 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfe8cf689);
5046 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x03ce0a4e);
5047 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xf961f5a8);
5048 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x09a50971);
5049 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf379f869);
5050 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0eeb04ec);
5051 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef80fe4b);
5052 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5056 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffe);
5057 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0007000a);
5058 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe2ffec);
5059 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x00540012);
5060 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff4e0015);
5061 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x0137ff82);
5062 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe2e0145);
5063 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x0260fd86);
5064 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfd51041a);
5065 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x0287f9fb);
5066 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfe4a0802);
5067 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x001df63f);
5068 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x02430aeb);
5069 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xfabdf4ce);
5070 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x08970a62);
5071 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf428f78f);
5072 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0e950584);
5073 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xef97fe15);
5074 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5078 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
5079 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0004000f);
5080 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffeaffda);
5081 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0046003d);
5082 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff5affc4);
5083 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x013b0000);
5084 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe04009d);
5085 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02c8fe48);
5086 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc99035a);
5087 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x0397fa96);
5088 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfcec07ad);
5089 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x01adf637);
5090 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x00ac0b53);
5091 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xfc2ef419);
5092 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x07730b3e);
5093 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf4e9f6bd);
5094 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0e35061a);
5095 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xefb1fddf);
5096 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5100 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
5101 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00000012);
5102 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xfff6ffcd);
5103 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x002f0061);
5104 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff7bff79);
5105 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x011e007e);
5106 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe08ffe8);
5107 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02f9ff28);
5108 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc17026a);
5109 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x0479fb70);
5110 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfbad0713);
5111 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x032ff672);
5112 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xff100b83);
5113 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xfdaff38b);
5114 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x063c0c04);
5115 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf5baf5f5);
5116 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0dcc06ae);
5117 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xefcdfda8);
5118 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5122 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
5123 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffd0012);
5124 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0004ffc8);
5125 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x00100078);
5126 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffacff3e);
5127 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00e200f0);
5128 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe39ff35);
5129 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02f10017);
5130 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfbd30156);
5131 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x0521fc7f);
5132 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfa9c0638);
5133 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x0499f6ee);
5134 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfd7a0b7c);
5135 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0xff39f325);
5136 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x04f40cb3);
5137 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf69af537);
5138 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0d5a073f);
5139 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xefecfd72);
5140 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5144 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0001fffe);
5145 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffa000e);
5146 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0011ffcb);
5147 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xfff0007f);
5148 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffe7ff19);
5149 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x008f014a);
5150 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe94fe93);
5151 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02b00105);
5152 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfbd3002f);
5153 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x0585fdb7);
5154 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf9c10525);
5155 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x05def7a8);
5156 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfbf20b3c);
5157 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x00c7f2e9);
5158 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x03a00d48);
5159 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf787f484);
5160 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0cdf07cd);
5161 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf00dfd3c);
5162 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5166 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010000);
5167 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff80008);
5168 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x001bffd7);
5169 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffd10076);
5170 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x0026ff0e);
5171 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x002c0184);
5172 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xff0ffe10);
5173 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x023b01e0);
5174 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc17ff06);
5175 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x05a2ff09);
5176 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf92703e4);
5177 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x06f4f89b);
5178 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfa820ac5);
5179 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0251f2d9);
5180 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x02430dc3);
5181 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf881f3dc);
5182 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0c5c0859);
5183 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf031fd06);
5184 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5188 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010001);
5189 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff80001);
5190 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0021ffe8);
5191 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffba005d);
5192 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x0060ff1f);
5193 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xffc40198);
5194 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xffa0fdb5);
5195 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x019a029a);
5196 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc99fdea);
5197 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x05750067);
5198 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf8d4027f);
5199 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x07d4f9c0);
5200 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf9320a1a);
5201 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x03d2f2f3);
5202 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0x00df0e22);
5203 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xf986f341);
5204 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0bd108e2);
5205 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf058fcd1);
5206 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5210 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000002);
5211 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff9fffa);
5212 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0021fffd);
5213 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffac0038);
5214 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x008eff4a);
5215 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff630184);
5216 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x003afd8b);
5217 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x00da0326);
5218 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfd51fced);
5219 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x050101c0);
5220 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf8cb0103);
5221 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x0876fb10);
5222 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf80a093e);
5223 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0543f338);
5224 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xff7a0e66);
5225 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xfa94f2b2);
5226 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0b3f0967);
5227 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf081fc9b);
5228 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5232 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
5233 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffbfff3);
5234 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x001d0013);
5235 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffaa000b);
5236 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00aaff89);
5237 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff13014a);
5238 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x00cefd95);
5239 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x000a037b);
5240 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfe35fc1d);
5241 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x044c0305);
5242 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf90cff7e);
5243 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x08d5fc81);
5244 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf7100834);
5245 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x069ff3a7);
5246 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xfe160e8d);
5247 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xfbaaf231);
5248 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0aa509e9);
5249 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf0adfc65);
5250 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5254 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
5255 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xffffffef);
5256 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00140025);
5257 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffb4ffdd);
5258 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00b2ffd6);
5259 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfedb00f0);
5260 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x0150fdd3);
5261 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xff380391);
5262 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xff36fb85);
5263 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x035e0426);
5264 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xf994fdfe);
5265 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x08eefe0b);
5266 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf6490702);
5267 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x07e1f43e);
5268 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xfcb60e97);
5269 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xfcc6f1be);
5270 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x0a040a67);
5271 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf0dbfc30);
5272 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5276 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
5277 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0002ffee);
5278 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00070033);
5279 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffc9ffb4);
5280 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00a40027);
5281 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfec3007e);
5282 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01b4fe3f);
5283 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfe760369);
5284 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0044fb2e);
5285 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x02450518);
5286 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfa5ffc90);
5287 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x08c1ffa1);
5288 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf5bc05ae);
5289 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0902f4fc);
5290 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xfb600e85);
5291 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xfde7f15a);
5292 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x095d0ae2);
5293 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf10cfbfb);
5294 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5298 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xffff0002);
5299 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0005ffef);
5300 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xfffa0038);
5301 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffe5ff95);
5302 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00820074);
5303 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfecc0000);
5304 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01f0fed0);
5305 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfdd20304);
5306 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x014dfb1d);
5307 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x010e05ce);
5308 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfb64fb41);
5309 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x084e013b);
5310 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf569043e);
5311 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0a00f5dd);
5312 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xfa150e55);
5313 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0xff0bf104);
5314 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x08b00b59);
5315 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf13ffbc6);
5316 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5320 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xffff0001);
5321 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0008fff4);
5322 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffed0035);
5323 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0005ff83);
5324 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x005000b4);
5325 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfef6ff82);
5326 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01ffff7a);
5327 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd580269);
5328 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0241fb53);
5329 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xffca0640);
5330 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfc99fa1e);
5331 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x079a02cb);
5332 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf55502ba);
5333 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0ad5f6e0);
5334 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf8d90e0a);
5335 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0031f0bd);
5336 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x07fd0bcb);
5337 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf174fb91);
5338 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5342 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xffffffff);
5343 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0009fffb);
5344 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe4002a);
5345 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0025ff82);
5346 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x001400e0);
5347 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff3cff10);
5348 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01e10030);
5349 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd1201a4);
5350 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0311fbcd);
5351 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfe88066a);
5352 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xfdf1f92f);
5353 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x06aa0449);
5354 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf57e0128);
5355 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0b7ef801);
5356 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf7b00da2);
5357 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0156f086);
5358 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x07450c39);
5359 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf1acfb5c);
5360 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5364 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffe);
5365 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00080002);
5366 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffdf0019);
5367 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x003fff92);
5368 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffd600f1);
5369 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff96feb6);
5370 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x019700e1);
5371 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd0500c2);
5372 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x03b0fc84);
5373 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfd590649);
5374 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0xff5df87f);
5375 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x058505aa);
5376 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf5e4ff91);
5377 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0bf9f93c);
5378 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf69d0d20);
5379 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0279f05e);
5380 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x06880ca3);
5381 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf1e6fb28);
5382 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5386 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
5387 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x00060009);
5388 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffdf0004);
5389 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0051ffb0);
5390 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff9d00e8);
5391 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xfffcfe7c);
5392 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x01280180);
5393 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd32ffd2);
5394 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0413fd6e);
5395 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfc4d05df);
5396 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x00d1f812);
5397 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x043506e4);
5398 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf685fdfb);
5399 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0c43fa8d);
5400 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf5a10c83);
5401 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0399f046);
5402 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x05c70d08);
5403 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf222faf3);
5404 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5408 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
5409 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0003000f);
5410 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffe5ffef);
5411 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x0057ffd9);
5412 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff7000c4);
5413 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x0062fe68);
5414 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x009e01ff);
5415 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfd95fee6);
5416 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0435fe7d);
5417 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfb710530);
5418 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x023cf7ee);
5419 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x02c307ef);
5420 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf75efc70);
5421 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0c5cfbef);
5422 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf4c10bce);
5423 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x04b3f03f);
5424 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x05030d69);
5425 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf261fabf);
5426 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5430 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0000fffd);
5431 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xffff0012);
5432 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xffefffdc);
5433 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x00510006);
5434 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff540089);
5435 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00befe7c);
5436 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0x00060253);
5437 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfe27fe0d);
5438 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x0413ffa2);
5439 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfad10446);
5440 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0390f812);
5441 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0x013b08c3);
5442 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf868faf6);
5443 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0c43fd5f);
5444 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf3fd0b02);
5445 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x05c7f046);
5446 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x043b0dc4);
5447 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf2a1fa8b);
5448 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5452 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0001fffe);
5453 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffc0012);
5454 cx25840_write4(client
, DIF_BPF_COEFF45
, 0xfffbffce);
5455 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x003f0033);
5456 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff4e003f);
5457 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x0106feb6);
5458 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xff6e0276);
5459 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xfeddfd56);
5460 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x03b000cc);
5461 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfa740329);
5462 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x04bff87f);
5463 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xffaa095d);
5464 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xf99ef995);
5465 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0bf9fed8);
5466 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf3590a1f);
5467 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x06d2f05e);
5468 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x03700e1b);
5469 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf2e4fa58);
5470 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5474 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x0001ffff);
5475 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff9000f);
5476 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0009ffc8);
5477 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x00250059);
5478 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff5effee);
5479 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x0132ff10);
5480 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfee30265);
5481 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0xffaafccf);
5482 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x031101eb);
5483 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfa6001e8);
5484 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x05bdf92f);
5485 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfe1b09b6);
5486 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfafaf852);
5487 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0b7e0055);
5488 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf2d50929);
5489 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x07d3f086);
5490 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x02a30e6c);
5491 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf329fa24);
5492 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5496 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00010001);
5497 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff80009);
5498 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0015ffca);
5499 cx25840_write4(client
, DIF_BPF_COEFF67
, 0x00050074);
5500 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xff81ff9f);
5501 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x013dff82);
5502 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe710221);
5503 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x007cfc80);
5504 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x024102ed);
5505 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfa940090);
5506 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0680fa1e);
5507 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfc9b09cd);
5508 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfc73f736);
5509 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0ad501d0);
5510 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf2740820);
5511 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x08c9f0bd);
5512 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x01d40eb9);
5513 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf371f9f1);
5514 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5518 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000002);
5519 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff80002);
5520 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x001effd5);
5521 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffe5007f);
5522 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xffb4ff5b);
5523 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x01280000);
5524 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe2401b0);
5525 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x0146fc70);
5526 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x014d03c6);
5527 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfb10ff32);
5528 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0701fb41);
5529 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xfb3709a1);
5530 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xfe00f644);
5531 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x0a000345);
5532 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf2350708);
5533 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x09b2f104);
5534 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x01050eff);
5535 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf3baf9be);
5536 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5540 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
5541 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfff9fffb);
5542 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0022ffe6);
5543 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffc9007a);
5544 cx25840_write4(client
, DIF_BPF_COEFF89
, 0xfff0ff29);
5545 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00f2007e);
5546 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe01011b);
5547 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x01f6fc9e);
5548 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0x00440467);
5549 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfbccfdde);
5550 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0738fc90);
5551 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf9f70934);
5552 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0xff99f582);
5553 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x090204b0);
5554 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf21a05e1);
5555 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0a8df15a);
5556 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0x00340f41);
5557 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf405f98b);
5558 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5562 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
5563 cx25840_write4(client
, DIF_BPF_COEFF23
, 0xfffcfff4);
5564 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x0020fffa);
5565 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffb40064);
5566 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x002fff11);
5567 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x00a400f0);
5568 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe0d006e);
5569 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x0281fd09);
5570 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xff3604c9);
5571 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfcbffca2);
5572 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0726fdfe);
5573 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf8e80888);
5574 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x0134f4f3);
5575 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x07e1060c);
5576 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf22304af);
5577 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0b59f1be);
5578 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xff640f7d);
5579 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf452f959);
5580 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5584 cx25840_write4(client
, DIF_BPF_COEFF01
, 0x00000003);
5585 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0000fff0);
5586 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x001a0010);
5587 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffaa0041);
5588 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x0067ff13);
5589 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0x0043014a);
5590 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfe46ffb9);
5591 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02dbfda8);
5592 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfe3504e5);
5593 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xfddcfb8d);
5594 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x06c9ff7e);
5595 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf81107a2);
5596 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x02c9f49a);
5597 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x069f0753);
5598 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf2500373);
5599 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0c14f231);
5600 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xfe930fb3);
5601 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf4a1f927);
5602 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5606 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xffff0002);
5607 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0003ffee);
5608 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x000f0023);
5609 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffac0016);
5610 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x0093ff31);
5611 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xffdc0184);
5612 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xfea6ff09);
5613 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02fdfe70);
5614 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfd5104ba);
5615 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0xff15faac);
5616 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x06270103);
5617 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf7780688);
5618 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x044df479);
5619 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x05430883);
5620 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf2a00231);
5621 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0cbef2b2);
5622 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xfdc40fe3);
5623 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf4f2f8f5);
5624 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5628 cx25840_write4(client
, DIF_BPF_COEFF01
, 0xffff0001);
5629 cx25840_write4(client
, DIF_BPF_COEFF23
, 0x0006ffef);
5630 cx25840_write4(client
, DIF_BPF_COEFF45
, 0x00020031);
5631 cx25840_write4(client
, DIF_BPF_COEFF67
, 0xffbaffe8);
5632 cx25840_write4(client
, DIF_BPF_COEFF89
, 0x00adff66);
5633 cx25840_write4(client
, DIF_BPF_COEFF1011
, 0xff790198);
5634 cx25840_write4(client
, DIF_BPF_COEFF1213
, 0xff26fe6e);
5635 cx25840_write4(client
, DIF_BPF_COEFF1415
, 0x02e5ff55);
5636 cx25840_write4(client
, DIF_BPF_COEFF1617
, 0xfc99044a);
5637 cx25840_write4(client
, DIF_BPF_COEFF1819
, 0x005bfa09);
5638 cx25840_write4(client
, DIF_BPF_COEFF2021
, 0x0545027f);
5639 cx25840_write4(client
, DIF_BPF_COEFF2223
, 0xf7230541);
5640 cx25840_write4(client
, DIF_BPF_COEFF2425
, 0x05b8f490);
5641 cx25840_write4(client
, DIF_BPF_COEFF2627
, 0x03d20997);
5642 cx25840_write4(client
, DIF_BPF_COEFF2829
, 0xf31300eb);
5643 cx25840_write4(client
, DIF_BPF_COEFF3031
, 0x0d55f341);
5644 cx25840_write4(client
, DIF_BPF_COEFF3233
, 0xfcf6100e);
5645 cx25840_write4(client
, DIF_BPF_COEFF3435
, 0xf544f8c3);
5646 cx25840_write4(client
, DIF_BPF_COEFF36
, 0x110d0000);
5651 static void cx23888_std_setup(struct i2c_client
*client
)
5653 struct cx25840_state
*state
= to_state(i2c_get_clientdata(client
));
5654 v4l2_std_id std
= state
->std
;
5657 cx25840_write4(client
, 0x478, 0x6628021F);
5658 cx25840_write4(client
, 0x400, 0x0);
5659 cx25840_write4(client
, 0x4b4, 0x20524030);
5660 cx25840_write4(client
, 0x47c, 0x010a8263);
5662 if (std
& V4L2_STD_525_60
) {
5663 v4l_dbg(1, cx25840_debug
, client
, "%s() Selecting NTSC",
5666 /* Horiz / vert timing */
5667 cx25840_write4(client
, 0x428, 0x1e1e601a);
5668 cx25840_write4(client
, 0x424, 0x5b2d007a);
5671 cx25840_write4(client
, 0x304, 0x6503bc0c);
5672 cx25840_write4(client
, 0x308, 0xbd038c85);
5673 cx25840_write4(client
, 0x30c, 0x1db4640a);
5674 cx25840_write4(client
, 0x310, 0x00008800);
5675 cx25840_write4(client
, 0x314, 0x44400400);
5676 cx25840_write4(client
, 0x32c, 0x0c800800);
5677 cx25840_write4(client
, 0x330, 0x27000100);
5678 cx25840_write4(client
, 0x334, 0x1f296e1f);
5679 cx25840_write4(client
, 0x338, 0x009f50c1);
5680 cx25840_write4(client
, 0x340, 0x1befbf06);
5681 cx25840_write4(client
, 0x344, 0x000035e8);
5687 v4l_dbg(1, cx25840_debug
, client
, "%s() Selecting PAL-BG",
5690 /* Horiz / vert timing */
5691 cx25840_write4(client
, 0x428, 0x28244024);
5692 cx25840_write4(client
, 0x424, 0x5d2d0084);
5695 cx25840_write4(client
, 0x304, 0x6503bc0c);
5696 cx25840_write4(client
, 0x308, 0xbd038c85);
5697 cx25840_write4(client
, 0x30c, 0x1db4640a);
5698 cx25840_write4(client
, 0x310, 0x00008800);
5699 cx25840_write4(client
, 0x314, 0x44400600);
5700 cx25840_write4(client
, 0x32c, 0x0c800800);
5701 cx25840_write4(client
, 0x330, 0x27000100);
5702 cx25840_write4(client
, 0x334, 0x213530ec);
5703 cx25840_write4(client
, 0x338, 0x00a65ba8);
5704 cx25840_write4(client
, 0x340, 0x1befbf06);
5705 cx25840_write4(client
, 0x344, 0x000035e8);
5711 cx23885_dif_setup(client
, ifHz
);
5713 /* Explicitly ensure the inputs are reconfigured after
5714 * a standard change.
5716 set_input(client
, state
->vid_input
, state
->aud_input
);
5719 /* ----------------------------------------------------------------------- */
5721 static const struct v4l2_ctrl_ops cx25840_ctrl_ops
= {
5722 .s_ctrl
= cx25840_s_ctrl
,
5725 static const struct v4l2_subdev_core_ops cx25840_core_ops
= {
5726 .log_status
= cx25840_log_status
,
5727 .reset
= cx25840_reset
,
5728 /* calling the (optional) init op will turn on the generic mode */
5729 .init
= cx25840_init
,
5730 .load_fw
= cx25840_load_fw
,
5731 .s_io_pin_config
= common_s_io_pin_config
,
5732 #ifdef CONFIG_VIDEO_ADV_DEBUG
5733 .g_register
= cx25840_g_register
,
5734 .s_register
= cx25840_s_register
,
5736 .interrupt_service_routine
= cx25840_irq_handler
,
5739 static const struct v4l2_subdev_tuner_ops cx25840_tuner_ops
= {
5740 .s_frequency
= cx25840_s_frequency
,
5741 .s_radio
= cx25840_s_radio
,
5742 .g_tuner
= cx25840_g_tuner
,
5743 .s_tuner
= cx25840_s_tuner
,
5746 static const struct v4l2_subdev_audio_ops cx25840_audio_ops
= {
5747 .s_clock_freq
= cx25840_s_clock_freq
,
5748 .s_routing
= cx25840_s_audio_routing
,
5749 .s_stream
= cx25840_s_audio_stream
,
5752 static const struct v4l2_subdev_video_ops cx25840_video_ops
= {
5753 .g_std
= cx25840_g_std
,
5754 .s_std
= cx25840_s_std
,
5755 .querystd
= cx25840_querystd
,
5756 .s_routing
= cx25840_s_video_routing
,
5757 .s_stream
= cx25840_s_stream
,
5758 .g_input_status
= cx25840_g_input_status
,
5761 static const struct v4l2_subdev_vbi_ops cx25840_vbi_ops
= {
5762 .decode_vbi_line
= cx25840_decode_vbi_line
,
5763 .s_raw_fmt
= cx25840_s_raw_fmt
,
5764 .s_sliced_fmt
= cx25840_s_sliced_fmt
,
5765 .g_sliced_fmt
= cx25840_g_sliced_fmt
,
5768 static const struct v4l2_subdev_pad_ops cx25840_pad_ops
= {
5769 .set_fmt
= cx25840_set_fmt
,
5772 static const struct v4l2_subdev_ops cx25840_ops
= {
5773 .core
= &cx25840_core_ops
,
5774 .tuner
= &cx25840_tuner_ops
,
5775 .audio
= &cx25840_audio_ops
,
5776 .video
= &cx25840_video_ops
,
5777 .vbi
= &cx25840_vbi_ops
,
5778 .pad
= &cx25840_pad_ops
,
5779 .ir
= &cx25840_ir_ops
,
5782 /* ----------------------------------------------------------------------- */
5784 static u32
get_cx2388x_ident(struct i2c_client
*client
)
5788 /* Come out of digital power down */
5789 cx25840_write(client
, 0x000, 0);
5792 * Detecting whether the part is cx23885/7/8 is more
5793 * difficult than it needs to be. No ID register. Instead we
5794 * probe certain registers indicated in the datasheets to look
5795 * for specific defaults that differ between the silicon designs.
5798 /* It's either 885/7 if the IR Tx Clk Divider register exists */
5799 if (cx25840_read4(client
, 0x204) & 0xffff) {
5801 * CX23885 returns bogus repetitive byte values for the DIF,
5802 * which doesn't exist for it. (Ex. 8a8a8a8a or 31313131)
5804 ret
= cx25840_read4(client
, 0x300);
5805 if (((ret
& 0xffff0000) >> 16) == (ret
& 0xffff)) {
5810 * CX23887 has a broken DIF, but the registers
5811 * appear valid (but unused), good enough to detect.
5815 } else if (cx25840_read4(client
, 0x300) & 0x0fffffff) {
5816 /* DIF PLL Freq Word reg exists; chip must be a CX23888 */
5819 v4l_err(client
, "Unable to detect h/w, assuming cx23887\n");
5823 /* Back into digital power down */
5824 cx25840_write(client
, 0x000, 2);
5828 static int cx25840_probe(struct i2c_client
*client
,
5829 const struct i2c_device_id
*did
)
5831 struct cx25840_state
*state
;
5832 struct v4l2_subdev
*sd
;
5836 #if defined(CONFIG_MEDIA_CONTROLLER)
5840 /* Check if the adapter supports the needed features */
5841 if (!i2c_check_functionality(client
->adapter
, I2C_FUNC_SMBUS_BYTE_DATA
))
5844 v4l_dbg(1, cx25840_debug
, client
,
5845 "detecting cx25840 client on address 0x%x\n",
5848 device_id
= cx25840_read(client
, 0x101) << 8;
5849 device_id
|= cx25840_read(client
, 0x100);
5850 v4l_dbg(1, cx25840_debug
, client
, "device_id = 0x%04x\n", device_id
);
5853 * The high byte of the device ID should be
5854 * 0x83 for the cx2583x and 0x84 for the cx2584x
5856 if ((device_id
& 0xff00) == 0x8300) {
5857 id
= CX25836
+ ((device_id
>> 4) & 0xf) - 6;
5858 } else if ((device_id
& 0xff00) == 0x8400) {
5859 id
= CX25840
+ ((device_id
>> 4) & 0xf);
5860 } else if (device_id
== 0x0000) {
5861 id
= get_cx2388x_ident(client
);
5862 } else if ((device_id
& 0xfff0) == 0x5A30) {
5863 /* The CX23100 (0x5A3C = 23100) doesn't have an A/V decoder */
5865 } else if ((device_id
& 0xff) == (device_id
>> 8)) {
5867 "likely a confused/unresponsive cx2388[578] A/V decoder found @ 0x%x (%s)\n",
5868 client
->addr
<< 1, client
->adapter
->name
);
5870 "A method to reset it from the cx25840 driver software is not known at this time\n");
5873 v4l_dbg(1, cx25840_debug
, client
, "cx25840 not found\n");
5877 state
= devm_kzalloc(&client
->dev
, sizeof(*state
), GFP_KERNEL
);
5882 v4l2_i2c_subdev_init(sd
, client
, &cx25840_ops
);
5883 #if defined(CONFIG_MEDIA_CONTROLLER)
5885 * TODO: add media controller support for analog video inputs like
5886 * composite, svideo, etc.
5887 * A real input pad for this analog demod would be like:
5889 * TUNER --------> | |
5891 * SVIDEO .......> | cx25840 |
5893 * COMPOSITE1 ...> |_________|
5895 * However, at least for now, there's no much gain on modelling
5896 * those extra inputs. So, let's add it only when needed.
5898 state
->pads
[CX25840_PAD_INPUT
].flags
= MEDIA_PAD_FL_SINK
;
5899 state
->pads
[CX25840_PAD_INPUT
].sig_type
= PAD_SIGNAL_ANALOG
;
5900 state
->pads
[CX25840_PAD_VID_OUT
].flags
= MEDIA_PAD_FL_SOURCE
;
5901 state
->pads
[CX25840_PAD_VID_OUT
].sig_type
= PAD_SIGNAL_DV
;
5902 sd
->entity
.function
= MEDIA_ENT_F_ATV_DECODER
;
5904 ret
= media_entity_pads_init(&sd
->entity
, ARRAY_SIZE(state
->pads
),
5907 v4l_info(client
, "failed to initialize media entity!\n");
5914 v4l_info(client
, "cx23885 A/V decoder found @ 0x%x (%s)\n",
5915 client
->addr
<< 1, client
->adapter
->name
);
5918 v4l_info(client
, "cx23887 A/V decoder found @ 0x%x (%s)\n",
5919 client
->addr
<< 1, client
->adapter
->name
);
5922 v4l_info(client
, "cx23888 A/V decoder found @ 0x%x (%s)\n",
5923 client
->addr
<< 1, client
->adapter
->name
);
5926 v4l_info(client
, "cx%d A/V decoder found @ 0x%x (%s)\n",
5927 device_id
, client
->addr
<< 1, client
->adapter
->name
);
5934 * Note: revision '(device_id & 0x0f) == 2' was never built.
5935 * The marking skips from 0x1 == 22 to 0x3 == 23.
5937 v4l_info(client
, "cx25%3x-2%x found @ 0x%x (%s)\n",
5938 (device_id
& 0xfff0) >> 4,
5939 (device_id
& 0x0f) < 3 ? (device_id
& 0x0f) + 1
5940 : (device_id
& 0x0f),
5941 client
->addr
<< 1, client
->adapter
->name
);
5946 v4l_info(client
, "cx25%3x-%x found @ 0x%x (%s)\n",
5947 (device_id
& 0xfff0) >> 4, device_id
& 0x0f,
5948 client
->addr
<< 1, client
->adapter
->name
);
5953 state
->vid_input
= CX25840_COMPOSITE7
;
5954 state
->aud_input
= CX25840_AUDIO8
;
5955 state
->audclk_freq
= 48000;
5956 state
->audmode
= V4L2_TUNER_MODE_LANG1
;
5957 state
->vbi_line_offset
= 8;
5959 state
->rev
= device_id
;
5960 state
->vbi_regs_offset
= id
== CX23888_AV
? 0x500 - 0x424 : 0;
5961 state
->std
= V4L2_STD_NTSC_M
;
5962 v4l2_ctrl_handler_init(&state
->hdl
, 9);
5963 v4l2_ctrl_new_std(&state
->hdl
, &cx25840_ctrl_ops
,
5964 V4L2_CID_BRIGHTNESS
, 0, 255, 1, 128);
5965 v4l2_ctrl_new_std(&state
->hdl
, &cx25840_ctrl_ops
,
5966 V4L2_CID_CONTRAST
, 0, 127, 1, 64);
5967 v4l2_ctrl_new_std(&state
->hdl
, &cx25840_ctrl_ops
,
5968 V4L2_CID_SATURATION
, 0, 127, 1, 64);
5969 v4l2_ctrl_new_std(&state
->hdl
, &cx25840_ctrl_ops
,
5970 V4L2_CID_HUE
, -128, 127, 1, 0);
5971 if (!is_cx2583x(state
)) {
5972 default_volume
= cx25840_read(client
, 0x8d4);
5974 * Enforce the legacy PVR-350/MSP3400 to PVR-150/CX25843 volume
5975 * scale mapping limits to avoid -ERANGE errors when
5976 * initializing the volume control
5978 if (default_volume
> 228) {
5979 /* Bottom out at -96 dB, v4l2 vol range 0x2e00-0x2fff */
5980 default_volume
= 228;
5981 cx25840_write(client
, 0x8d4, 228);
5982 } else if (default_volume
< 20) {
5983 /* Top out at + 8 dB, v4l2 vol range 0xfe00-0xffff */
5984 default_volume
= 20;
5985 cx25840_write(client
, 0x8d4, 20);
5987 default_volume
= (((228 - default_volume
) >> 1) + 23) << 9;
5989 state
->volume
= v4l2_ctrl_new_std(&state
->hdl
,
5990 &cx25840_audio_ctrl_ops
,
5991 V4L2_CID_AUDIO_VOLUME
,
5992 0, 65535, 65535 / 100,
5994 state
->mute
= v4l2_ctrl_new_std(&state
->hdl
,
5995 &cx25840_audio_ctrl_ops
,
5996 V4L2_CID_AUDIO_MUTE
,
5998 v4l2_ctrl_new_std(&state
->hdl
, &cx25840_audio_ctrl_ops
,
5999 V4L2_CID_AUDIO_BALANCE
,
6000 0, 65535, 65535 / 100, 32768);
6001 v4l2_ctrl_new_std(&state
->hdl
, &cx25840_audio_ctrl_ops
,
6002 V4L2_CID_AUDIO_BASS
,
6003 0, 65535, 65535 / 100, 32768);
6004 v4l2_ctrl_new_std(&state
->hdl
, &cx25840_audio_ctrl_ops
,
6005 V4L2_CID_AUDIO_TREBLE
,
6006 0, 65535, 65535 / 100, 32768);
6008 sd
->ctrl_handler
= &state
->hdl
;
6009 if (state
->hdl
.error
) {
6010 int err
= state
->hdl
.error
;
6012 v4l2_ctrl_handler_free(&state
->hdl
);
6015 if (!is_cx2583x(state
))
6016 v4l2_ctrl_cluster(2, &state
->volume
);
6017 v4l2_ctrl_handler_setup(&state
->hdl
);
6019 if (client
->dev
.platform_data
) {
6020 struct cx25840_platform_data
*pdata
= client
->dev
.platform_data
;
6022 state
->pvr150_workaround
= pdata
->pvr150_workaround
;
6025 cx25840_ir_probe(sd
);
6029 static int cx25840_remove(struct i2c_client
*client
)
6031 struct v4l2_subdev
*sd
= i2c_get_clientdata(client
);
6032 struct cx25840_state
*state
= to_state(sd
);
6034 cx25840_ir_remove(sd
);
6035 v4l2_device_unregister_subdev(sd
);
6036 v4l2_ctrl_handler_free(&state
->hdl
);
6040 static const struct i2c_device_id cx25840_id
[] = {
6044 MODULE_DEVICE_TABLE(i2c
, cx25840_id
);
6046 static struct i2c_driver cx25840_driver
= {
6050 .probe
= cx25840_probe
,
6051 .remove
= cx25840_remove
,
6052 .id_table
= cx25840_id
,
6055 module_i2c_driver(cx25840_driver
);