/* cx25840 - Conexant CX25840 audio/video decoder driver
 *
 * Copyright (C) 2004 Ulf Eklund
 *
 * Based on the saa7115 driver and on the first version of Chris Kennedy's
 * cx25840 driver.
 *
 * Changes by Tyler Trafford <tatrafford@comcast.net>
 *    - cleanup/rewrite for V4L2 API (2005)
 *
 * VBI support by Hans Verkuil <hverkuil@xs4all.nl>.
 *
 * NTSC sliced VBI support by Christopher Neufeld <television@cneufeld.ca>
 * with additional fixes by Hans Verkuil <hverkuil@xs4all.nl>.
 *
 * CX23885 support by Steven Toth <stoth@linuxtv.org>.
 *
 * CX2388[578] IRQ handling, IO Pin mux configuration and other small fixes are
 * Copyright (C) 2010 Andy Walls <awalls@md.metrocast.net>
 *
 * CX23888 DIF support for the HVR1850
 * Copyright (C) 2011 Steven Toth <stoth@kernellabs.com>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */


#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/videodev2.h>
#include <linux/i2c.h>
#include <linux/delay.h>
#include <linux/math64.h>
#include <media/v4l2-common.h>
#include <media/v4l2-chip-ident.h>
#include <media/cx25840.h>

#include "cx25840-core.h"

MODULE_DESCRIPTION("Conexant CX25840 audio/video decoder driver");
MODULE_AUTHOR("Ulf Eklund, Chris Kennedy, Hans Verkuil, Tyler Trafford");
MODULE_LICENSE("GPL");

#define CX25840_VID_INT_STAT_REG 0x410
#define CX25840_VID_INT_STAT_BITS 0x0000ffff
#define CX25840_VID_INT_MASK_BITS 0xffff0000
#define CX25840_VID_INT_MASK_SHFT 16
#define CX25840_VID_INT_MASK_REG 0x412

#define CX23885_AUD_MC_INT_MASK_REG 0x80c
#define CX23885_AUD_MC_INT_STAT_BITS 0xffff0000
#define CX23885_AUD_MC_INT_CTRL_BITS 0x0000ffff
#define CX23885_AUD_MC_INT_STAT_SHFT 16

#define CX25840_AUD_INT_CTRL_REG 0x812
#define CX25840_AUD_INT_STAT_REG 0x813

#define CX23885_PIN_CTRL_IRQ_REG 0x123
#define CX23885_PIN_CTRL_IRQ_IR_STAT  0x40
#define CX23885_PIN_CTRL_IRQ_AUD_STAT 0x20
#define CX23885_PIN_CTRL_IRQ_VID_STAT 0x10

#define CX25840_IR_STATS_REG	0x210
#define CX25840_IR_IRQEN_REG	0x214

static int cx25840_debug;

module_param_named(debug,cx25840_debug, int, 0644);

MODULE_PARM_DESC(debug, "Debugging messages [0=Off (default) 1=On]");


/* ----------------------------------------------------------------------- */
static void cx23888_std_setup(struct i2c_client *client);

int cx25840_write(struct i2c_client *client, u16 addr, u8 value)
{
	u8 buffer[3];
	buffer[0] = addr >> 8;
	buffer[1] = addr & 0xff;
	buffer[2] = value;
	return i2c_master_send(client, buffer, 3);
}

int cx25840_write4(struct i2c_client *client, u16 addr, u32 value)
{
	u8 buffer[6];
	buffer[0] = addr >> 8;
	buffer[1] = addr & 0xff;
	buffer[2] = value & 0xff;
	buffer[3] = (value >> 8) & 0xff;
	buffer[4] = (value >> 16) & 0xff;
	buffer[5] = value >> 24;
	return i2c_master_send(client, buffer, 6);
}

u8 cx25840_read(struct i2c_client * client, u16 addr)
{
	struct i2c_msg msgs[2];
	u8 tx_buf[2], rx_buf[1];

	/* Write register address */
	tx_buf[0] = addr >> 8;
	tx_buf[1] = addr & 0xff;
	msgs[0].addr = client->addr;
	msgs[0].flags = 0;
	msgs[0].len = 2;
	msgs[0].buf = (char *) tx_buf;

	/* Read data from register */
	msgs[1].addr = client->addr;
	msgs[1].flags = I2C_M_RD;
	msgs[1].len = 1;
	msgs[1].buf = (char *) rx_buf;

	if (i2c_transfer(client->adapter, msgs, 2) < 2)
		return 0;

	return rx_buf[0];
}

u32 cx25840_read4(struct i2c_client * client, u16 addr)
{
	struct i2c_msg msgs[2];
	u8 tx_buf[2], rx_buf[4];

	/* Write register address */
	tx_buf[0] = addr >> 8;
	tx_buf[1] = addr & 0xff;
	msgs[0].addr = client->addr;
	msgs[0].flags = 0;
	msgs[0].len = 2;
	msgs[0].buf = (char *) tx_buf;

	/* Read data from registers */
	msgs[1].addr = client->addr;
	msgs[1].flags = I2C_M_RD;
	msgs[1].len = 4;
	msgs[1].buf = (char *) rx_buf;

	if (i2c_transfer(client->adapter, msgs, 2) < 2)
		return 0;

	return (rx_buf[3] << 24) | (rx_buf[2] << 16) | (rx_buf[1] << 8) |
		rx_buf[0];
}

int cx25840_and_or(struct i2c_client *client, u16 addr, unsigned and_mask,
		   u8 or_value)
{
	return cx25840_write(client, addr,
			     (cx25840_read(client, addr) & and_mask) |
			     or_value);
}

int cx25840_and_or4(struct i2c_client *client, u16 addr, u32 and_mask,
		    u32 or_value)
{
	return cx25840_write4(client, addr,
			      (cx25840_read4(client, addr) & and_mask) |
			      or_value);
}

/* ----------------------------------------------------------------------- */

static int set_input(struct i2c_client *client, enum cx25840_video_input vid_input,
						enum cx25840_audio_input aud_input);

/* ----------------------------------------------------------------------- */

static int cx23885_s_io_pin_config(struct v4l2_subdev *sd, size_t n,
				      struct v4l2_subdev_io_pin_config *p)
{
	struct i2c_client *client = v4l2_get_subdevdata(sd);
	int i;
	u32 pin_ctrl;
	u8 gpio_oe, gpio_data, strength;

	pin_ctrl = cx25840_read4(client, 0x120);
	gpio_oe = cx25840_read(client, 0x160);
	gpio_data = cx25840_read(client, 0x164);

	for (i = 0; i < n; i++) {
		strength = p[i].strength;
		if (strength > CX25840_PIN_DRIVE_FAST)
			strength = CX25840_PIN_DRIVE_FAST;

		switch (p[i].pin) {
		case CX23885_PIN_IRQ_N_GPIO16:
			if (p[i].function != CX23885_PAD_IRQ_N) {
				/* GPIO16 */
				pin_ctrl &= ~(0x1 << 25);
			} else {
				/* IRQ_N */
				if (p[i].flags &
					(V4L2_SUBDEV_IO_PIN_DISABLE |
					 V4L2_SUBDEV_IO_PIN_INPUT)) {
					pin_ctrl &= ~(0x1 << 25);
				} else {
					pin_ctrl |= (0x1 << 25);
				}
				if (p[i].flags &
					V4L2_SUBDEV_IO_PIN_ACTIVE_LOW) {
					pin_ctrl &= ~(0x1 << 24);
				} else {
					pin_ctrl |= (0x1 << 24);
				}
			}
			break;
		case CX23885_PIN_IR_RX_GPIO19:
			if (p[i].function != CX23885_PAD_GPIO19) {
				/* IR_RX */
				gpio_oe |= (0x1 << 0);
				pin_ctrl &= ~(0x3 << 18);
				pin_ctrl |= (strength << 18);
			} else {
				/* GPIO19 */
				gpio_oe &= ~(0x1 << 0);
				if (p[i].flags & V4L2_SUBDEV_IO_PIN_SET_VALUE) {
					gpio_data &= ~(0x1 << 0);
					gpio_data |= ((p[i].value & 0x1) << 0);
				}
				pin_ctrl &= ~(0x3 << 12);
				pin_ctrl |= (strength << 12);
			}
			break;
		case CX23885_PIN_IR_TX_GPIO20:
			if (p[i].function != CX23885_PAD_GPIO20) {
				/* IR_TX */
				gpio_oe |= (0x1 << 1);
				if (p[i].flags & V4L2_SUBDEV_IO_PIN_DISABLE)
					pin_ctrl &= ~(0x1 << 10);
				else
					pin_ctrl |= (0x1 << 10);
				pin_ctrl &= ~(0x3 << 18);
				pin_ctrl |= (strength << 18);
			} else {
				/* GPIO20 */
				gpio_oe &= ~(0x1 << 1);
				if (p[i].flags & V4L2_SUBDEV_IO_PIN_SET_VALUE) {
					gpio_data &= ~(0x1 << 1);
					gpio_data |= ((p[i].value & 0x1) << 1);
				}
				pin_ctrl &= ~(0x3 << 12);
				pin_ctrl |= (strength << 12);
			}
			break;
		case CX23885_PIN_I2S_SDAT_GPIO21:
			if (p[i].function != CX23885_PAD_GPIO21) {
				/* I2S_SDAT */
				/* TODO: Input or Output config */
				gpio_oe |= (0x1 << 2);
				pin_ctrl &= ~(0x3 << 22);
				pin_ctrl |= (strength << 22);
			} else {
				/* GPIO21 */
				gpio_oe &= ~(0x1 << 2);
				if (p[i].flags & V4L2_SUBDEV_IO_PIN_SET_VALUE) {
					gpio_data &= ~(0x1 << 2);
					gpio_data |= ((p[i].value & 0x1) << 2);
				}
				pin_ctrl &= ~(0x3 << 12);
				pin_ctrl |= (strength << 12);
			}
			break;
		case CX23885_PIN_I2S_WCLK_GPIO22:
			if (p[i].function != CX23885_PAD_GPIO22) {
				/* I2S_WCLK */
				/* TODO: Input or Output config */
				gpio_oe |= (0x1 << 3);
				pin_ctrl &= ~(0x3 << 22);
				pin_ctrl |= (strength << 22);
			} else {
				/* GPIO22 */
				gpio_oe &= ~(0x1 << 3);
				if (p[i].flags & V4L2_SUBDEV_IO_PIN_SET_VALUE) {
					gpio_data &= ~(0x1 << 3);
					gpio_data |= ((p[i].value & 0x1) << 3);
				}
				pin_ctrl &= ~(0x3 << 12);
				pin_ctrl |= (strength << 12);
			}
			break;
		case CX23885_PIN_I2S_BCLK_GPIO23:
			if (p[i].function != CX23885_PAD_GPIO23) {
				/* I2S_BCLK */
				/* TODO: Input or Output config */
				gpio_oe |= (0x1 << 4);
				pin_ctrl &= ~(0x3 << 22);
				pin_ctrl |= (strength << 22);
			} else {
				/* GPIO23 */
				gpio_oe &= ~(0x1 << 4);
				if (p[i].flags & V4L2_SUBDEV_IO_PIN_SET_VALUE) {
					gpio_data &= ~(0x1 << 4);
					gpio_data |= ((p[i].value & 0x1) << 4);
				}
				pin_ctrl &= ~(0x3 << 12);
				pin_ctrl |= (strength << 12);
			}
			break;
		}
	}

	cx25840_write(client, 0x164, gpio_data);
	cx25840_write(client, 0x160, gpio_oe);
	cx25840_write4(client, 0x120, pin_ctrl);
	return 0;
}

static int common_s_io_pin_config(struct v4l2_subdev *sd, size_t n,
				      struct v4l2_subdev_io_pin_config *pincfg)
{
	struct cx25840_state *state = to_state(sd);

	if (is_cx2388x(state))
		return cx23885_s_io_pin_config(sd, n, pincfg);
	return 0;
}

/* ----------------------------------------------------------------------- */

static void init_dll1(struct i2c_client *client)
{
	/* This is the Hauppauge sequence used to
	 * initialize the Delay Lock Loop 1 (ADC DLL). */
	cx25840_write(client, 0x159, 0x23);
	cx25840_write(client, 0x15a, 0x87);
	cx25840_write(client, 0x15b, 0x06);
	udelay(10);
	cx25840_write(client, 0x159, 0xe1);
	udelay(10);
	cx25840_write(client, 0x15a, 0x86);
	cx25840_write(client, 0x159, 0xe0);
	cx25840_write(client, 0x159, 0xe1);
	cx25840_write(client, 0x15b, 0x10);
}

static void init_dll2(struct i2c_client *client)
{
	/* This is the Hauppauge sequence used to
	 * initialize the Delay Lock Loop 2 (ADC DLL). */
	cx25840_write(client, 0x15d, 0xe3);
	cx25840_write(client, 0x15e, 0x86);
	cx25840_write(client, 0x15f, 0x06);
	udelay(10);
	cx25840_write(client, 0x15d, 0xe1);
	cx25840_write(client, 0x15d, 0xe0);
	cx25840_write(client, 0x15d, 0xe1);
}

static void cx25836_initialize(struct i2c_client *client)
{
	/* reset configuration is described on page 3-77 of the CX25836 datasheet */
	/* 2. */
	cx25840_and_or(client, 0x000, ~0x01, 0x01);
	cx25840_and_or(client, 0x000, ~0x01, 0x00);
	/* 3a. */
	cx25840_and_or(client, 0x15a, ~0x70, 0x00);
	/* 3b. */
	cx25840_and_or(client, 0x15b, ~0x1e, 0x06);
	/* 3c. */
	cx25840_and_or(client, 0x159, ~0x02, 0x02);
	/* 3d. */
	udelay(10);
	/* 3e. */
	cx25840_and_or(client, 0x159, ~0x02, 0x00);
	/* 3f. */
	cx25840_and_or(client, 0x159, ~0xc0, 0xc0);
	/* 3g. */
	cx25840_and_or(client, 0x159, ~0x01, 0x00);
	cx25840_and_or(client, 0x159, ~0x01, 0x01);
	/* 3h. */
	cx25840_and_or(client, 0x15b, ~0x1e, 0x10);
}

static void cx25840_work_handler(struct work_struct *work)
{
	struct cx25840_state *state = container_of(work, struct cx25840_state, fw_work);
	cx25840_loadfw(state->c);
	wake_up(&state->fw_wait);
}

static void cx25840_initialize(struct i2c_client *client)
{
	DEFINE_WAIT(wait);
	struct cx25840_state *state = to_state(i2c_get_clientdata(client));
	struct workqueue_struct *q;

	/* datasheet startup in numbered steps, refer to page 3-77 */
	/* 2. */
	cx25840_and_or(client, 0x803, ~0x10, 0x00);
	/* The default of this register should be 4, but I get 0 instead.
	 * Set this register to 4 manually. */
	cx25840_write(client, 0x000, 0x04);
	/* 3. */
	init_dll1(client);
	init_dll2(client);
	cx25840_write(client, 0x136, 0x0a);
	/* 4. */
	cx25840_write(client, 0x13c, 0x01);
	cx25840_write(client, 0x13c, 0x00);
	/* 5. */
	/* Do the firmware load in a work handler to prevent.
	   Otherwise the kernel is blocked waiting for the
	   bit-banging i2c interface to finish uploading the
	   firmware. */
	INIT_WORK(&state->fw_work, cx25840_work_handler);
	init_waitqueue_head(&state->fw_wait);
	q = create_singlethread_workqueue("cx25840_fw");
	prepare_to_wait(&state->fw_wait, &wait, TASK_UNINTERRUPTIBLE);
	queue_work(q, &state->fw_work);
	schedule();
	finish_wait(&state->fw_wait, &wait);
	destroy_workqueue(q);

	/* 6. */
	cx25840_write(client, 0x115, 0x8c);
	cx25840_write(client, 0x116, 0x07);
	cx25840_write(client, 0x118, 0x02);
	/* 7. */
	cx25840_write(client, 0x4a5, 0x80);
	cx25840_write(client, 0x4a5, 0x00);
	cx25840_write(client, 0x402, 0x00);
	/* 8. */
	cx25840_and_or(client, 0x401, ~0x18, 0);
	cx25840_and_or(client, 0x4a2, ~0x10, 0x10);
	/* steps 8c and 8d are done in change_input() */
	/* 10. */
	cx25840_write(client, 0x8d3, 0x1f);
	cx25840_write(client, 0x8e3, 0x03);

	cx25840_std_setup(client);

	/* trial and error says these are needed to get audio */
	cx25840_write(client, 0x914, 0xa0);
	cx25840_write(client, 0x918, 0xa0);
	cx25840_write(client, 0x919, 0x01);

	/* stereo preferred */
	cx25840_write(client, 0x809, 0x04);
	/* AC97 shift */
	cx25840_write(client, 0x8cf, 0x0f);

	/* (re)set input */
	set_input(client, state->vid_input, state->aud_input);

	/* start microcontroller */
	cx25840_and_or(client, 0x803, ~0x10, 0x10);
}

static void cx23885_initialize(struct i2c_client *client)
{
	DEFINE_WAIT(wait);
	struct cx25840_state *state = to_state(i2c_get_clientdata(client));
	struct workqueue_struct *q;

	/*
	 * Come out of digital power down
	 * The CX23888, at least, needs this, otherwise registers aside from
	 * 0x0-0x2 can't be read or written.
	 */
	cx25840_write(client, 0x000, 0);

	/* Internal Reset */
	cx25840_and_or(client, 0x102, ~0x01, 0x01);
	cx25840_and_or(client, 0x102, ~0x01, 0x00);

	/* Stop microcontroller */
	cx25840_and_or(client, 0x803, ~0x10, 0x00);

	/* DIF in reset? */
	cx25840_write(client, 0x398, 0);

	/*
	 * Trust the default xtal, no division
	 * '885: 28.636363... MHz
	 * '887: 25.000000 MHz
	 * '888: 50.000000 MHz
	 */
	cx25840_write(client, 0x2, 0x76);

	/* Power up all the PLL's and DLL */
	cx25840_write(client, 0x1, 0x40);

	/* Sys PLL */
	switch (state->id) {
	case V4L2_IDENT_CX23888_AV:
		/*
		 * 50.0 MHz * (0xb + 0xe8ba26/0x2000000)/4 = 5 * 28.636363 MHz
		 * 572.73 MHz before post divide
		 */
		/* HVR1850 or 50MHz xtal */
		cx25840_write(client, 0x2, 0x71);
		cx25840_write4(client, 0x11c, 0x01d1744c);
		cx25840_write4(client, 0x118, 0x00000416);
		cx25840_write4(client, 0x404, 0x0010253e);
		cx25840_write4(client, 0x42c, 0x42600000);
		cx25840_write4(client, 0x44c, 0x161f1000);
		break;
	case V4L2_IDENT_CX23887_AV:
		/*
		 * 25.0 MHz * (0x16 + 0x1d1744c/0x2000000)/4 = 5 * 28.636363 MHz
		 * 572.73 MHz before post divide
		 */
		cx25840_write4(client, 0x11c, 0x01d1744c);
		cx25840_write4(client, 0x118, 0x00000416);
		break;
	case V4L2_IDENT_CX23885_AV:
	default:
		/*
		 * 28.636363 MHz * (0x14 + 0x0/0x2000000)/4 = 5 * 28.636363 MHz
		 * 572.73 MHz before post divide
		 */
		cx25840_write4(client, 0x11c, 0x00000000);
		cx25840_write4(client, 0x118, 0x00000414);
		break;
	}

	/* Disable DIF bypass */
	cx25840_write4(client, 0x33c, 0x00000001);

	/* DIF Src phase inc */
	cx25840_write4(client, 0x340, 0x0df7df83);

	/*
	 * Vid PLL
	 * Setup for a BT.656 pixel clock of 13.5 Mpixels/second
	 *
	 * 28.636363 MHz * (0xf + 0x02be2c9/0x2000000)/4 = 8 * 13.5 MHz
	 * 432.0 MHz before post divide
	 */

	/* HVR1850 */
	switch (state->id) {
	case V4L2_IDENT_CX23888_AV:
		/* 888/HVR1250 specific */
		cx25840_write4(client, 0x10c, 0x13333333);
		cx25840_write4(client, 0x108, 0x00000515);
		break;
	default:
		cx25840_write4(client, 0x10c, 0x002be2c9);
		cx25840_write4(client, 0x108, 0x0000040f);
	}

	/* Luma */
	cx25840_write4(client, 0x414, 0x00107d12);

	/* Chroma */
	cx25840_write4(client, 0x420, 0x3d008282);

	/*
	 * Aux PLL
	 * Initial setup for audio sample clock:
	 * 48 ksps, 16 bits/sample, x160 multiplier = 122.88 MHz
	 * Initial I2S output/master clock(?):
	 * 48 ksps, 16 bits/sample, x16 multiplier = 12.288 MHz
	 */
	switch (state->id) {
	case V4L2_IDENT_CX23888_AV:
		/*
		 * 50.0 MHz * (0x7 + 0x0bedfa4/0x2000000)/3 = 122.88 MHz
		 * 368.64 MHz before post divide
		 * 122.88 MHz / 0xa = 12.288 MHz
		 */
		/* HVR1850  or 50MHz xtal */
		cx25840_write4(client, 0x114, 0x017dbf48);
		cx25840_write4(client, 0x110, 0x000a030e);
		break;
	case V4L2_IDENT_CX23887_AV:
		/*
		 * 25.0 MHz * (0xe + 0x17dbf48/0x2000000)/3 = 122.88 MHz
		 * 368.64 MHz before post divide
		 * 122.88 MHz / 0xa = 12.288 MHz
		 */
		cx25840_write4(client, 0x114, 0x017dbf48);
		cx25840_write4(client, 0x110, 0x000a030e);
		break;
	case V4L2_IDENT_CX23885_AV:
	default:
		/*
		 * 28.636363 MHz * (0xc + 0x1bf0c9e/0x2000000)/3 = 122.88 MHz
		 * 368.64 MHz before post divide
		 * 122.88 MHz / 0xa = 12.288 MHz
		 */
		cx25840_write4(client, 0x114, 0x01bf0c9e);
		cx25840_write4(client, 0x110, 0x000a030c);
		break;
	}

	/* ADC2 input select */
	cx25840_write(client, 0x102, 0x10);

	/* VIN1 & VIN5 */
	cx25840_write(client, 0x103, 0x11);

	/* Enable format auto detect */
	cx25840_write(client, 0x400, 0);
	/* Fast subchroma lock */
	/* White crush, Chroma AGC & Chroma Killer enabled */
	cx25840_write(client, 0x401, 0xe8);

	/* Select AFE clock pad output source */
	cx25840_write(client, 0x144, 0x05);

	/* Drive GPIO2 direction and values for HVR1700
	 * where an onboard mux selects the output of demodulator
	 * vs the 417. Failure to set this results in no DTV.
	 * It's safe to set this across all Hauppauge boards
	 * currently, regardless of the board type.
	 */
	cx25840_write(client, 0x160, 0x1d);
	cx25840_write(client, 0x164, 0x00);

	/* Do the firmware load in a work handler to prevent.
	   Otherwise the kernel is blocked waiting for the
	   bit-banging i2c interface to finish uploading the
	   firmware. */
	INIT_WORK(&state->fw_work, cx25840_work_handler);
	init_waitqueue_head(&state->fw_wait);
	q = create_singlethread_workqueue("cx25840_fw");
	prepare_to_wait(&state->fw_wait, &wait, TASK_UNINTERRUPTIBLE);
	queue_work(q, &state->fw_work);
	schedule();
	finish_wait(&state->fw_wait, &wait);
	destroy_workqueue(q);

	/* Call the cx23888 specific std setup func, we no longer rely on
	 * the generic cx24840 func.
	 */
	if (is_cx23888(state))
		cx23888_std_setup(client);
	else
		cx25840_std_setup(client);

	/* (re)set input */
	set_input(client, state->vid_input, state->aud_input);

	/* start microcontroller */
	cx25840_and_or(client, 0x803, ~0x10, 0x10);

	/* Disable and clear video interrupts - we don't use them */
	cx25840_write4(client, CX25840_VID_INT_STAT_REG, 0xffffffff);

	/* Disable and clear audio interrupts - we don't use them */
	cx25840_write(client, CX25840_AUD_INT_CTRL_REG, 0xff);
	cx25840_write(client, CX25840_AUD_INT_STAT_REG, 0xff);

	/* CC raw enable */
	/*  - VIP 1.1 control codes - 10bit, blue field enable.
	 *  - enable raw data during vertical blanking.
	 *  - enable ancillary Data insertion for 656 or VIP.
	 */
	cx25840_write4(client, 0x404, 0x0010253e);

	/* CC on  - Undocumented Register */
	cx25840_write(client, 0x42f, 0x66);

	/* HVR-1250 / HVR1850 DIF related */
	/* Power everything up */
	cx25840_write4(client, 0x130, 0x0);

	/* Undocumented */
	cx25840_write4(client, 0x478, 0x6628021F);

	/* AFE_CLK_OUT_CTRL - Select the clock output source as output */
	cx25840_write4(client, 0x144, 0x5);

	/* I2C_OUT_CTL - I2S output configuration as
	 * Master, Sony, Left justified, left sample on WS=1
	 */
	cx25840_write4(client, 0x918, 0x1a0);

	/* AFE_DIAG_CTRL1 */
	cx25840_write4(client, 0x134, 0x000a1800);

	/* AFE_DIAG_CTRL3 - Inverted Polarity for Audio and Video */
	cx25840_write4(client, 0x13c, 0x00310000);
}

/* ----------------------------------------------------------------------- */

static void cx231xx_initialize(struct i2c_client *client)
{
	DEFINE_WAIT(wait);
	struct cx25840_state *state = to_state(i2c_get_clientdata(client));
	struct workqueue_struct *q;

	/* Internal Reset */
	cx25840_and_or(client, 0x102, ~0x01, 0x01);
	cx25840_and_or(client, 0x102, ~0x01, 0x00);

	/* Stop microcontroller */
	cx25840_and_or(client, 0x803, ~0x10, 0x00);

	/* DIF in reset? */
	cx25840_write(client, 0x398, 0);

	/* Trust the default xtal, no division */
	/* This changes for the cx23888 products */
	cx25840_write(client, 0x2, 0x76);

	/* Bring down the regulator for AUX clk */
	cx25840_write(client, 0x1, 0x40);

	/* Disable DIF bypass */
	cx25840_write4(client, 0x33c, 0x00000001);

	/* DIF Src phase inc */
	cx25840_write4(client, 0x340, 0x0df7df83);

	/* Luma */
	cx25840_write4(client, 0x414, 0x00107d12);

	/* Chroma */
	cx25840_write4(client, 0x420, 0x3d008282);

	/* ADC2 input select */
	cx25840_write(client, 0x102, 0x10);

	/* VIN1 & VIN5 */
	cx25840_write(client, 0x103, 0x11);

	/* Enable format auto detect */
	cx25840_write(client, 0x400, 0);
	/* Fast subchroma lock */
	/* White crush, Chroma AGC & Chroma Killer enabled */
	cx25840_write(client, 0x401, 0xe8);

	/* Do the firmware load in a work handler to prevent.
	   Otherwise the kernel is blocked waiting for the
	   bit-banging i2c interface to finish uploading the
	   firmware. */
	INIT_WORK(&state->fw_work, cx25840_work_handler);
	init_waitqueue_head(&state->fw_wait);
	q = create_singlethread_workqueue("cx25840_fw");
	prepare_to_wait(&state->fw_wait, &wait, TASK_UNINTERRUPTIBLE);
	queue_work(q, &state->fw_work);
	schedule();
	finish_wait(&state->fw_wait, &wait);
	destroy_workqueue(q);

	cx25840_std_setup(client);

	/* (re)set input */
	set_input(client, state->vid_input, state->aud_input);

	/* start microcontroller */
	cx25840_and_or(client, 0x803, ~0x10, 0x10);

	/* CC raw enable */
	cx25840_write(client, 0x404, 0x0b);

	/* CC on */
	cx25840_write(client, 0x42f, 0x66);
	cx25840_write4(client, 0x474, 0x1e1e601a);
}

/* ----------------------------------------------------------------------- */

void cx25840_std_setup(struct i2c_client *client)
{
	struct cx25840_state *state = to_state(i2c_get_clientdata(client));
	v4l2_std_id std = state->std;
	int hblank, hactive, burst, vblank, vactive, sc;
	int vblank656, src_decimation;
	int luma_lpf, uv_lpf, comb;
	u32 pll_int, pll_frac, pll_post;

	/* datasheet startup, step 8d */
	if (std & ~V4L2_STD_NTSC)
		cx25840_write(client, 0x49f, 0x11);
	else
		cx25840_write(client, 0x49f, 0x14);

	if (std & V4L2_STD_625_50) {
		hblank = 132;
		hactive = 720;
		burst = 93;
		vblank = 36;
		vactive = 580;
		vblank656 = 40;
		src_decimation = 0x21f;
		luma_lpf = 2;

		if (std & V4L2_STD_SECAM) {
			uv_lpf = 0;
			comb = 0;
			sc = 0x0a425f;
		} else if (std == V4L2_STD_PAL_Nc) {
			uv_lpf = 1;
			comb = 0x20;
			sc = 556453;
		} else {
			uv_lpf = 1;
			comb = 0x20;
			sc = 688739;
		}
	} else {
		hactive = 720;
		hblank = 122;
		vactive = 487;
		luma_lpf = 1;
		uv_lpf = 1;

		src_decimation = 0x21f;
		if (std == V4L2_STD_PAL_60) {
			vblank = 26;
			vblank656 = 26;
			burst = 0x5b;
			luma_lpf = 2;
			comb = 0x20;
			sc = 688739;
		} else if (std == V4L2_STD_PAL_M) {
			vblank = 20;
			vblank656 = 24;
			burst = 0x61;
			comb = 0x20;
			sc = 555452;
		} else {
			vblank = 26;
			vblank656 = 26;
			burst = 0x5b;
			comb = 0x66;
			sc = 556063;
		}
	}

	/* DEBUG: Displays configured PLL frequency */
	if (!is_cx231xx(state)) {
		pll_int = cx25840_read(client, 0x108);
		pll_frac = cx25840_read4(client, 0x10c) & 0x1ffffff;
		pll_post = cx25840_read(client, 0x109);
		v4l_dbg(1, cx25840_debug, client,
			"PLL regs = int: %u, frac: %u, post: %u\n",
			pll_int, pll_frac, pll_post);

		if (pll_post) {
			int fin, fsc;
			int pll = (28636363L * ((((u64)pll_int) << 25L) + pll_frac)) >> 25L;

			pll /= pll_post;
			v4l_dbg(1, cx25840_debug, client, "PLL = %d.%06d MHz\n",
					pll / 1000000, pll % 1000000);
			v4l_dbg(1, cx25840_debug, client, "PLL/8 = %d.%06d MHz\n",
					pll / 8000000, (pll / 8) % 1000000);

			fin = ((u64)src_decimation * pll) >> 12;
			v4l_dbg(1, cx25840_debug, client,
					"ADC Sampling freq = %d.%06d MHz\n",
					fin / 1000000, fin % 1000000);

			fsc = (((u64)sc) * pll) >> 24L;
			v4l_dbg(1, cx25840_debug, client,
					"Chroma sub-carrier freq = %d.%06d MHz\n",
					fsc / 1000000, fsc % 1000000);

			v4l_dbg(1, cx25840_debug, client, "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",
				hblank, hactive, vblank, vactive, vblank656,
				src_decimation, burst, luma_lpf, uv_lpf, comb, sc);
		}
	}

	/* Sets horizontal blanking delay and active lines */
	cx25840_write(client, 0x470, hblank);
	cx25840_write(client, 0x471,
			0xff & (((hblank >> 8) & 0x3) | (hactive << 4)));
	cx25840_write(client, 0x472, hactive >> 4);

	/* Sets burst gate delay */
	cx25840_write(client, 0x473, burst);

	/* Sets vertical blanking delay and active duration */
	cx25840_write(client, 0x474, vblank);
	cx25840_write(client, 0x475,
			0xff & (((vblank >> 8) & 0x3) | (vactive << 4)));
	cx25840_write(client, 0x476, vactive >> 4);
	cx25840_write(client, 0x477, vblank656);

	/* Sets src decimation rate */
	cx25840_write(client, 0x478, 0xff & src_decimation);
	cx25840_write(client, 0x479, 0xff & (src_decimation >> 8));

	/* Sets Luma and UV Low pass filters */
	cx25840_write(client, 0x47a, luma_lpf << 6 | ((uv_lpf << 4) & 0x30));

	/* Enables comb filters */
	cx25840_write(client, 0x47b, comb);

	/* Sets SC Step*/
	cx25840_write(client, 0x47c, sc);
	cx25840_write(client, 0x47d, 0xff & sc >> 8);
	cx25840_write(client, 0x47e, 0xff & sc >> 16);

	/* Sets VBI parameters */
	if (std & V4L2_STD_625_50) {
		cx25840_write(client, 0x47f, 0x01);
		state->vbi_line_offset = 5;
	} else {
		cx25840_write(client, 0x47f, 0x00);
		state->vbi_line_offset = 8;
	}
}

/* ----------------------------------------------------------------------- */

static void input_change(struct i2c_client *client)
{
	struct cx25840_state *state = to_state(i2c_get_clientdata(client));
	v4l2_std_id std = state->std;

	/* Follow step 8c and 8d of section 3.16 in the cx25840 datasheet */
	if (std & V4L2_STD_SECAM) {
		cx25840_write(client, 0x402, 0);
	}
	else {
		cx25840_write(client, 0x402, 0x04);
		cx25840_write(client, 0x49f, (std & V4L2_STD_NTSC) ? 0x14 : 0x11);
	}
	cx25840_and_or(client, 0x401, ~0x60, 0);
	cx25840_and_or(client, 0x401, ~0x60, 0x60);

	/* Don't write into audio registers on cx2583x chips */
	if (is_cx2583x(state))
		return;

	cx25840_and_or(client, 0x810, ~0x01, 1);

	if (state->radio) {
		cx25840_write(client, 0x808, 0xf9);
		cx25840_write(client, 0x80b, 0x00);
	}
	else if (std & V4L2_STD_525_60) {
		/* Certain Hauppauge PVR150 models have a hardware bug
		   that causes audio to drop out. For these models the
		   audio standard must be set explicitly.
		   To be precise: it affects cards with tuner models
		   85, 99 and 112 (model numbers from tveeprom). */
		int hw_fix = state->pvr150_workaround;

		if (std == V4L2_STD_NTSC_M_JP) {
			/* Japan uses EIAJ audio standard */
			cx25840_write(client, 0x808, hw_fix ? 0x2f : 0xf7);
		} else if (std == V4L2_STD_NTSC_M_KR) {
			/* South Korea uses A2 audio standard */
			cx25840_write(client, 0x808, hw_fix ? 0x3f : 0xf8);
		} else {
			/* Others use the BTSC audio standard */
			cx25840_write(client, 0x808, hw_fix ? 0x1f : 0xf6);
		}
		cx25840_write(client, 0x80b, 0x00);
	} else if (std & V4L2_STD_PAL) {
		/* Autodetect audio standard and audio system */
		cx25840_write(client, 0x808, 0xff);
		/* Since system PAL-L is pretty much non-existent and
		   not used by any public broadcast network, force
		   6.5 MHz carrier to be interpreted as System DK,
		   this avoids DK audio detection instability */
	       cx25840_write(client, 0x80b, 0x00);
	} else if (std & V4L2_STD_SECAM) {
		/* Autodetect audio standard and audio system */
		cx25840_write(client, 0x808, 0xff);
		/* If only one of SECAM-DK / SECAM-L is required, then force
		  6.5MHz carrier, else autodetect it */
		if ((std & V4L2_STD_SECAM_DK) &&
		    !(std & (V4L2_STD_SECAM_L | V4L2_STD_SECAM_LC))) {
			/* 6.5 MHz carrier to be interpreted as System DK */
			cx25840_write(client, 0x80b, 0x00);
	       } else if (!(std & V4L2_STD_SECAM_DK) &&
			  (std & (V4L2_STD_SECAM_L | V4L2_STD_SECAM_LC))) {
			/* 6.5 MHz carrier to be interpreted as System L */
			cx25840_write(client, 0x80b, 0x08);
	       } else {
			/* 6.5 MHz carrier to be autodetected */
			cx25840_write(client, 0x80b, 0x10);
	       }
	}

	cx25840_and_or(client, 0x810, ~0x01, 0);
}

static int set_input(struct i2c_client *client, enum cx25840_video_input vid_input,
						enum cx25840_audio_input aud_input)
{
	struct cx25840_state *state = to_state(i2c_get_clientdata(client));
	u8 is_composite = (vid_input >= CX25840_COMPOSITE1 &&
			   vid_input <= CX25840_COMPOSITE8);
	u8 is_component = (vid_input & CX25840_COMPONENT_ON) ==
			CX25840_COMPONENT_ON;
	u8 is_dif = (vid_input & CX25840_DIF_ON) ==
			CX25840_DIF_ON;
	u8 is_svideo = (vid_input & CX25840_SVIDEO_ON) ==
			CX25840_SVIDEO_ON;
	int luma = vid_input & 0xf0;
	int chroma = vid_input & 0xf00;
	u8 reg;
	u32 val;

	v4l_dbg(1, cx25840_debug, client,
		"decoder set video input %d, audio input %d\n",
		vid_input, aud_input);

	if (vid_input >= CX25840_VIN1_CH1) {
		v4l_dbg(1, cx25840_debug, client, "vid_input 0x%x\n",
			vid_input);
		reg = vid_input & 0xff;
		is_composite = !is_component &&
			((vid_input & CX25840_SVIDEO_ON) != CX25840_SVIDEO_ON);

		v4l_dbg(1, cx25840_debug, client, "mux cfg 0x%x comp=%d\n",
			reg, is_composite);
	} else if (is_composite) {
		reg = 0xf0 + (vid_input - CX25840_COMPOSITE1);
	} else {
		if ((vid_input & ~0xff0) ||
		    luma < CX25840_SVIDEO_LUMA1 || luma > CX25840_SVIDEO_LUMA8 ||
		    chroma < CX25840_SVIDEO_CHROMA4 || chroma > CX25840_SVIDEO_CHROMA8) {
			v4l_err(client, "0x%04x is not a valid video input!\n",
				vid_input);
			return -EINVAL;
		}
		reg = 0xf0 + ((luma - CX25840_SVIDEO_LUMA1) >> 4);
		if (chroma >= CX25840_SVIDEO_CHROMA7) {
			reg &= 0x3f;
			reg |= (chroma - CX25840_SVIDEO_CHROMA7) >> 2;
		} else {
			reg &= 0xcf;
			reg |= (chroma - CX25840_SVIDEO_CHROMA4) >> 4;
		}
	}

	/* The caller has previously prepared the correct routing
	 * configuration in reg (for the cx23885) so we have no
	 * need to attempt to flip bits for earlier av decoders.
	 */
	if (!is_cx2388x(state) && !is_cx231xx(state)) {
		switch (aud_input) {
		case CX25840_AUDIO_SERIAL:
			/* do nothing, use serial audio input */
			break;
		case CX25840_AUDIO4: reg &= ~0x30; break;
		case CX25840_AUDIO5: reg &= ~0x30; reg |= 0x10; break;
		case CX25840_AUDIO6: reg &= ~0x30; reg |= 0x20; break;
		case CX25840_AUDIO7: reg &= ~0xc0; break;
		case CX25840_AUDIO8: reg &= ~0xc0; reg |= 0x40; break;

		default:
			v4l_err(client, "0x%04x is not a valid audio input!\n",
				aud_input);
			return -EINVAL;
		}
	}

	cx25840_write(client, 0x103, reg);

	/* Set INPUT_MODE to Composite, S-Video or Component */
	if (is_component)
		cx25840_and_or(client, 0x401, ~0x6, 0x6);
	else
		cx25840_and_or(client, 0x401, ~0x6, is_composite ? 0 : 0x02);

	if (is_cx2388x(state)) {

		/* Enable or disable the DIF for tuner use */
		if (is_dif) {
			cx25840_and_or(client, 0x102, ~0x80, 0x80);

			/* Set of defaults for NTSC and PAL */
			cx25840_write4(client, 0x31c, 0xc2262600);
			cx25840_write4(client, 0x320, 0xc2262600);

			/* 18271 IF - Nobody else yet uses a different
			 * tuner with the DIF, so these are reasonable
			 * assumptions (HVR1250 and HVR1850 specific).
			 */
			cx25840_write4(client, 0x318, 0xda262600);
			cx25840_write4(client, 0x33c, 0x2a24c800);
			cx25840_write4(client, 0x104, 0x0704dd00);
		} else {
			cx25840_write4(client, 0x300, 0x015c28f5);

			cx25840_and_or(client, 0x102, ~0x80, 0);
			cx25840_write4(client, 0x340, 0xdf7df83);
			cx25840_write4(client, 0x104, 0x0704dd80);
			cx25840_write4(client, 0x314, 0x22400600);
			cx25840_write4(client, 0x318, 0x40002600);
			cx25840_write4(client, 0x324, 0x40002600);
			cx25840_write4(client, 0x32c, 0x0250e620);
			cx25840_write4(client, 0x39c, 0x01FF0B00);

			cx25840_write4(client, 0x410, 0xffff0dbf);
			cx25840_write4(client, 0x414, 0x00137d03);

			/* on the 887, 0x418 is HSCALE_CTRL, on the 888 it is 
			   CHROMA_CTRL */
			if (is_cx23888(state))
				cx25840_write4(client, 0x418, 0x01008080);
			else
				cx25840_write4(client, 0x418, 0x01000000);

			cx25840_write4(client, 0x41c, 0x00000000);

			/* on the 887, 0x420 is CHROMA_CTRL, on the 888 it is 
			   CRUSH_CTRL */
			if (is_cx23888(state))
				cx25840_write4(client, 0x420, 0x001c3e0f);
			else
				cx25840_write4(client, 0x420, 0x001c8282);

			cx25840_write4(client, 0x42c, 0x42600000);
			cx25840_write4(client, 0x430, 0x0000039b);
			cx25840_write4(client, 0x438, 0x00000000);

			cx25840_write4(client, 0x440, 0xF8E3E824);
			cx25840_write4(client, 0x444, 0x401040dc);
			cx25840_write4(client, 0x448, 0xcd3f02a0);
			cx25840_write4(client, 0x44c, 0x161f1000);
			cx25840_write4(client, 0x450, 0x00000802);

			cx25840_write4(client, 0x91c, 0x01000000);
			cx25840_write4(client, 0x8e0, 0x03063870);
			cx25840_write4(client, 0x8d4, 0x7FFF0024);
			cx25840_write4(client, 0x8d0, 0x00063073);

			cx25840_write4(client, 0x8c8, 0x00010000);
			cx25840_write4(client, 0x8cc, 0x00080023);

			/* DIF BYPASS */
			cx25840_write4(client, 0x33c, 0x2a04c800);
		}

		/* Reset the DIF */
		cx25840_write4(client, 0x398, 0);
	}

	if (!is_cx2388x(state) && !is_cx231xx(state)) {
		/* Set CH_SEL_ADC2 to 1 if input comes from CH3 */
		cx25840_and_or(client, 0x102, ~0x2, (reg & 0x80) == 0 ? 2 : 0);
		/* Set DUAL_MODE_ADC2 to 1 if input comes from both CH2&CH3 */
		if ((reg & 0xc0) != 0xc0 && (reg & 0x30) != 0x30)
			cx25840_and_or(client, 0x102, ~0x4, 4);
		else
			cx25840_and_or(client, 0x102, ~0x4, 0);
	} else {
		/* Set DUAL_MODE_ADC2 to 1 if component*/
		cx25840_and_or(client, 0x102, ~0x4, is_component ? 0x4 : 0x0);
		if (is_composite) {
			/* ADC2 input select channel 2 */
			cx25840_and_or(client, 0x102, ~0x2, 0);
		} else if (!is_component) {
			/* S-Video */
			if (chroma >= CX25840_SVIDEO_CHROMA7) {
				/* ADC2 input select channel 3 */
				cx25840_and_or(client, 0x102, ~0x2, 2);
			} else {
				/* ADC2 input select channel 2 */
				cx25840_and_or(client, 0x102, ~0x2, 0);
			}
		}

		/* cx23885 / SVIDEO */
		if (is_cx2388x(state) && is_svideo) {
#define AFE_CTRL  (0x104)
#define MODE_CTRL (0x400)
			cx25840_and_or(client, 0x102, ~0x2, 0x2);

			val = cx25840_read4(client, MODE_CTRL);
			val &= 0xFFFFF9FF;

			/* YC */
			val |= 0x00000200;
			val &= ~0x2000;
			cx25840_write4(client, MODE_CTRL, val);

			val = cx25840_read4(client, AFE_CTRL);

			/* Chroma in select */
			val |= 0x00001000;
			val &= 0xfffffe7f;
			/* Clear VGA_SEL_CH2 and VGA_SEL_CH3 (bits 7 and 8).
			 * This sets them to use video rather than audio.
			 * Only one of the two will be in use.
			 */
			cx25840_write4(client, AFE_CTRL, val);
		} else
			cx25840_and_or(client, 0x102, ~0x2, 0);
	}

	state->vid_input = vid_input;
	state->aud_input = aud_input;
	cx25840_audio_set_path(client);
	input_change(client);

	if (is_cx2388x(state)) {
		/* Audio channel 1 src : Parallel 1 */
		cx25840_write(client, 0x124, 0x03);

		/* Select AFE clock pad output source */
		cx25840_write(client, 0x144, 0x05);

		/* I2S_IN_CTL: I2S_IN_SONY_MODE, LEFT SAMPLE on WS=1 */
		cx25840_write(client, 0x914, 0xa0);

		/* I2S_OUT_CTL:
		 * I2S_IN_SONY_MODE, LEFT SAMPLE on WS=1
		 * I2S_OUT_MASTER_MODE = Master
		 */
		cx25840_write(client, 0x918, 0xa0);
		cx25840_write(client, 0x919, 0x01);
	} else if (is_cx231xx(state)) {
		/* Audio channel 1 src : Parallel 1 */
		cx25840_write(client, 0x124, 0x03);

		/* I2S_IN_CTL: I2S_IN_SONY_MODE, LEFT SAMPLE on WS=1 */
		cx25840_write(client, 0x914, 0xa0);

		/* I2S_OUT_CTL:
		 * I2S_IN_SONY_MODE, LEFT SAMPLE on WS=1
		 * I2S_OUT_MASTER_MODE = Master
		 */
		cx25840_write(client, 0x918, 0xa0);
		cx25840_write(client, 0x919, 0x01);
	}

	if (is_cx2388x(state) && ((aud_input == CX25840_AUDIO7) ||
		(aud_input == CX25840_AUDIO6))) {
		/* Configure audio from LR1 or LR2 input */
		cx25840_write4(client, 0x910, 0);
		cx25840_write4(client, 0x8d0, 0x63073);
	} else
	if (is_cx2388x(state) && (aud_input == CX25840_AUDIO8)) {
		/* Configure audio from tuner/sif input */
		cx25840_write4(client, 0x910, 0x12b000c9);
		cx25840_write4(client, 0x8d0, 0x1f063870);
	}

	if (is_cx23888(state)) {
		/* HVR1850 */
		/* AUD_IO_CTRL - I2S Input, Parallel1*/
		/*  - Channel 1 src - Parallel1 (Merlin out) */
		/*  - Channel 2 src - Parallel2 (Merlin out) */
		/*  - Channel 3 src - Parallel3 (Merlin AC97 out) */
		/*  - I2S source and dir - Merlin, output */
		cx25840_write4(client, 0x124, 0x100);

		if (!is_dif) {
			/* Stop microcontroller if we don't need it
			 * to avoid audio popping on svideo/composite use.
			 */
			cx25840_and_or(client, 0x803, ~0x10, 0x00);
		}
	}

	return 0;
}

/* ----------------------------------------------------------------------- */

static int set_v4lstd(struct i2c_client *client)
{
	struct cx25840_state *state = to_state(i2c_get_clientdata(client));
	u8 fmt = 0; 	/* zero is autodetect */
	u8 pal_m = 0;

	/* First tests should be against specific std */
	if (state->std == V4L2_STD_NTSC_M_JP) {
		fmt = 0x2;
	} else if (state->std == V4L2_STD_NTSC_443) {
		fmt = 0x3;
	} else if (state->std == V4L2_STD_PAL_M) {
		pal_m = 1;
		fmt = 0x5;
	} else if (state->std == V4L2_STD_PAL_N) {
		fmt = 0x6;
	} else if (state->std == V4L2_STD_PAL_Nc) {
		fmt = 0x7;
	} else if (state->std == V4L2_STD_PAL_60) {
		fmt = 0x8;
	} else {
		/* Then, test against generic ones */
		if (state->std & V4L2_STD_NTSC)
			fmt = 0x1;
		else if (state->std & V4L2_STD_PAL)
			fmt = 0x4;
		else if (state->std & V4L2_STD_SECAM)
			fmt = 0xc;
	}

	v4l_dbg(1, cx25840_debug, client, "changing video std to fmt %i\n",fmt);

	/* Follow step 9 of section 3.16 in the cx25840 datasheet.
	   Without this PAL may display a vertical ghosting effect.
	   This happens for example with the Yuan MPC622. */
	if (fmt >= 4 && fmt < 8) {
		/* Set format to NTSC-M */
		cx25840_and_or(client, 0x400, ~0xf, 1);
		/* Turn off LCOMB */
		cx25840_and_or(client, 0x47b, ~6, 0);
	}
	cx25840_and_or(client, 0x400, ~0xf, fmt);
	cx25840_and_or(client, 0x403, ~0x3, pal_m);
	if (is_cx23888(state))
		cx23888_std_setup(client);
	else
		cx25840_std_setup(client);
	if (!is_cx2583x(state))
		input_change(client);
	return 0;
}

/* ----------------------------------------------------------------------- */

static int cx25840_s_ctrl(struct v4l2_ctrl *ctrl)
{
	struct v4l2_subdev *sd = to_sd(ctrl);
	struct cx25840_state *state = to_state(sd);
	struct i2c_client *client = v4l2_get_subdevdata(sd);

	switch (ctrl->id) {
	case V4L2_CID_BRIGHTNESS:
		cx25840_write(client, 0x414, ctrl->val - 128);
		break;

	case V4L2_CID_CONTRAST:
		cx25840_write(client, 0x415, ctrl->val << 1);
		break;

	case V4L2_CID_SATURATION:
		if (is_cx23888(state)) {
			cx25840_write(client, 0x418, ctrl->val << 1);
			cx25840_write(client, 0x419, ctrl->val << 1);
		} else {
			cx25840_write(client, 0x420, ctrl->val << 1);
			cx25840_write(client, 0x421, ctrl->val << 1);
		}
		break;

	case V4L2_CID_HUE:
		if (is_cx23888(state))
			cx25840_write(client, 0x41a, ctrl->val);
		else
			cx25840_write(client, 0x422, ctrl->val);
		break;

	default:
		return -EINVAL;
	}

	return 0;
}

/* ----------------------------------------------------------------------- */

static int cx25840_s_mbus_fmt(struct v4l2_subdev *sd, struct v4l2_mbus_framefmt *fmt)
{
	struct cx25840_state *state = to_state(sd);
	struct i2c_client *client = v4l2_get_subdevdata(sd);
	int HSC, VSC, Vsrc, Hsrc, filter, Vlines;
	int is_50Hz = !(state->std & V4L2_STD_525_60);

	if (fmt->code != V4L2_MBUS_FMT_FIXED)
		return -EINVAL;

	fmt->field = V4L2_FIELD_INTERLACED;
	fmt->colorspace = V4L2_COLORSPACE_SMPTE170M;

	if (is_cx23888(state)) {
		Vsrc = (cx25840_read(client, 0x42a) & 0x3f) << 4;
		Vsrc |= (cx25840_read(client, 0x429) & 0xf0) >> 4;
	} else {
		Vsrc = (cx25840_read(client, 0x476) & 0x3f) << 4;
		Vsrc |= (cx25840_read(client, 0x475) & 0xf0) >> 4;
	}

	if (is_cx23888(state)) {
		Hsrc = (cx25840_read(client, 0x426) & 0x3f) << 4;
		Hsrc |= (cx25840_read(client, 0x425) & 0xf0) >> 4;
	} else {
		Hsrc = (cx25840_read(client, 0x472) & 0x3f) << 4;
		Hsrc |= (cx25840_read(client, 0x471) & 0xf0) >> 4;
	}

	Vlines = fmt->height + (is_50Hz ? 4 : 7);

	if ((fmt->width * 16 < Hsrc) || (Hsrc < fmt->width) ||
			(Vlines * 8 < Vsrc) || (Vsrc < Vlines)) {
		v4l_err(client, "%dx%d is not a valid size!\n",
				fmt->width, fmt->height);
		return -ERANGE;
	}

	HSC = (Hsrc * (1 << 20)) / fmt->width - (1 << 20);
	VSC = (1 << 16) - (Vsrc * (1 << 9) / Vlines - (1 << 9));
	VSC &= 0x1fff;

	if (fmt->width >= 385)
		filter = 0;
	else if (fmt->width > 192)
		filter = 1;
	else if (fmt->width > 96)
		filter = 2;
	else
		filter = 3;

	v4l_dbg(1, cx25840_debug, client, "decoder set size %dx%d -> scale  %ux%u\n",
			fmt->width, fmt->height, HSC, VSC);

	/* HSCALE=HSC */
	cx25840_write(client, 0x418, HSC & 0xff);
	cx25840_write(client, 0x419, (HSC >> 8) & 0xff);
	cx25840_write(client, 0x41a, HSC >> 16);
	/* VSCALE=VSC */
	cx25840_write(client, 0x41c, VSC & 0xff);
	cx25840_write(client, 0x41d, VSC >> 8);
	/* VS_INTRLACE=1 VFILT=filter */
	cx25840_write(client, 0x41e, 0x8 | filter);
	return 0;
}

/* ----------------------------------------------------------------------- */

static void log_video_status(struct i2c_client *client)
{
	static const char *const fmt_strs[] = {
		"0x0",
		"NTSC-M", "NTSC-J", "NTSC-4.43",
		"PAL-BDGHI", "PAL-M", "PAL-N", "PAL-Nc", "PAL-60",
		"0x9", "0xA", "0xB",
		"SECAM",
		"0xD", "0xE", "0xF"
	};

	struct cx25840_state *state = to_state(i2c_get_clientdata(client));
	u8 vidfmt_sel = cx25840_read(client, 0x400) & 0xf;
	u8 gen_stat1 = cx25840_read(client, 0x40d);
	u8 gen_stat2 = cx25840_read(client, 0x40e);
	int vid_input = state->vid_input;

	v4l_info(client, "Video signal:              %spresent\n",
		    (gen_stat2 & 0x20) ? "" : "not ");
	v4l_info(client, "Detected format:           %s\n",
		    fmt_strs[gen_stat1 & 0xf]);

	v4l_info(client, "Specified standard:        %s\n",
		    vidfmt_sel ? fmt_strs[vidfmt_sel] : "automatic detection");

	if (vid_input >= CX25840_COMPOSITE1 &&
	    vid_input <= CX25840_COMPOSITE8) {
		v4l_info(client, "Specified video input:     Composite %d\n",
			vid_input - CX25840_COMPOSITE1 + 1);
	} else {
		v4l_info(client, "Specified video input:     S-Video (Luma In%d, Chroma In%d)\n",
			(vid_input & 0xf0) >> 4, (vid_input & 0xf00) >> 8);
	}

	v4l_info(client, "Specified audioclock freq: %d Hz\n", state->audclk_freq);
}

/* ----------------------------------------------------------------------- */

static void log_audio_status(struct i2c_client *client)
{
	struct cx25840_state *state = to_state(i2c_get_clientdata(client));
	u8 download_ctl = cx25840_read(client, 0x803);
	u8 mod_det_stat0 = cx25840_read(client, 0x804);
	u8 mod_det_stat1 = cx25840_read(client, 0x805);
	u8 audio_config = cx25840_read(client, 0x808);
	u8 pref_mode = cx25840_read(client, 0x809);
	u8 afc0 = cx25840_read(client, 0x80b);
	u8 mute_ctl = cx25840_read(client, 0x8d3);
	int aud_input = state->aud_input;
	char *p;

	switch (mod_det_stat0) {
	case 0x00: p = "mono"; break;
	case 0x01: p = "stereo"; break;
	case 0x02: p = "dual"; break;
	case 0x04: p = "tri"; break;
	case 0x10: p = "mono with SAP"; break;
	case 0x11: p = "stereo with SAP"; break;
	case 0x12: p = "dual with SAP"; break;
	case 0x14: p = "tri with SAP"; break;
	case 0xfe: p = "forced mode"; break;
	default: p = "not defined";
	}
	v4l_info(client, "Detected audio mode:       %s\n", p);

	switch (mod_det_stat1) {
	case 0x00: p = "not defined"; break;
	case 0x01: p = "EIAJ"; break;
	case 0x02: p = "A2-M"; break;
	case 0x03: p = "A2-BG"; break;
	case 0x04: p = "A2-DK1"; break;
	case 0x05: p = "A2-DK2"; break;
	case 0x06: p = "A2-DK3"; break;
	case 0x07: p = "A1 (6.0 MHz FM Mono)"; break;
	case 0x08: p = "AM-L"; break;
	case 0x09: p = "NICAM-BG"; break;
	case 0x0a: p = "NICAM-DK"; break;
	case 0x0b: p = "NICAM-I"; break;
	case 0x0c: p = "NICAM-L"; break;
	case 0x0d: p = "BTSC/EIAJ/A2-M Mono (4.5 MHz FMMono)"; break;
	case 0x0e: p = "IF FM Radio"; break;
	case 0x0f: p = "BTSC"; break;
	case 0x10: p = "high-deviation FM"; break;
	case 0x11: p = "very high-deviation FM"; break;
	case 0xfd: p = "unknown audio standard"; break;
	case 0xfe: p = "forced audio standard"; break;
	case 0xff: p = "no detected audio standard"; break;
	default: p = "not defined";
	}
	v4l_info(client, "Detected audio standard:   %s\n", p);
	v4l_info(client, "Audio microcontroller:     %s\n",
		    (download_ctl & 0x10) ?
				((mute_ctl & 0x2) ? "detecting" : "running") : "stopped");

	switch (audio_config >> 4) {
	case 0x00: p = "undefined"; break;
	case 0x01: p = "BTSC"; break;
	case 0x02: p = "EIAJ"; break;
	case 0x03: p = "A2-M"; break;
	case 0x04: p = "A2-BG"; break;
	case 0x05: p = "A2-DK1"; break;
	case 0x06: p = "A2-DK2"; break;
	case 0x07: p = "A2-DK3"; break;
	case 0x08: p = "A1 (6.0 MHz FM Mono)"; break;
	case 0x09: p = "AM-L"; break;
	case 0x0a: p = "NICAM-BG"; break;
	case 0x0b: p = "NICAM-DK"; break;
	case 0x0c: p = "NICAM-I"; break;
	case 0x0d: p = "NICAM-L"; break;
	case 0x0e: p = "FM radio"; break;
	case 0x0f: p = "automatic detection"; break;
	default: p = "undefined";
	}
	v4l_info(client, "Configured audio standard: %s\n", p);

	if ((audio_config >> 4) < 0xF) {
		switch (audio_config & 0xF) {
		case 0x00: p = "MONO1 (LANGUAGE A/Mono L+R channel for BTSC, EIAJ, A2)"; break;
		case 0x01: p = "MONO2 (LANGUAGE B)"; break;
		case 0x02: p = "MONO3 (STEREO forced MONO)"; break;
		case 0x03: p = "MONO4 (NICAM ANALOG-Language C/Analog Fallback)"; break;
		case 0x04: p = "STEREO"; break;
		case 0x05: p = "DUAL1 (AB)"; break;
		case 0x06: p = "DUAL2 (AC) (FM)"; break;
		case 0x07: p = "DUAL3 (BC) (FM)"; break;
		case 0x08: p = "DUAL4 (AC) (AM)"; break;
		case 0x09: p = "DUAL5 (BC) (AM)"; break;
		case 0x0a: p = "SAP"; break;
		default: p = "undefined";
		}
		v4l_info(client, "Configured audio mode:     %s\n", p);
	} else {
		switch (audio_config & 0xF) {
		case 0x00: p = "BG"; break;
		case 0x01: p = "DK1"; break;
		case 0x02: p = "DK2"; break;
		case 0x03: p = "DK3"; break;
		case 0x04: p = "I"; break;
		case 0x05: p = "L"; break;
		case 0x06: p = "BTSC"; break;
		case 0x07: p = "EIAJ"; break;
		case 0x08: p = "A2-M"; break;
		case 0x09: p = "FM Radio"; break;
		case 0x0f: p = "automatic standard and mode detection"; break;
		default: p = "undefined";
		}
		v4l_info(client, "Configured audio system:   %s\n", p);
	}

	if (aud_input) {
		v4l_info(client, "Specified audio input:     Tuner (In%d)\n", aud_input);
	} else {
		v4l_info(client, "Specified audio input:     External\n");
	}

	switch (pref_mode & 0xf) {
	case 0: p = "mono/language A"; break;
	case 1: p = "language B"; break;
	case 2: p = "language C"; break;
	case 3: p = "analog fallback"; break;
	case 4: p = "stereo"; break;
	case 5: p = "language AC"; break;
	case 6: p = "language BC"; break;
	case 7: p = "language AB"; break;
	default: p = "undefined";
	}
	v4l_info(client, "Preferred audio mode:      %s\n", p);

	if ((audio_config & 0xf) == 0xf) {
		switch ((afc0 >> 3) & 0x3) {
		case 0: p = "system DK"; break;
		case 1: p = "system L"; break;
		case 2: p = "autodetect"; break;
		default: p = "undefined";
		}
		v4l_info(client, "Selected 65 MHz format:    %s\n", p);

		switch (afc0 & 0x7) {
		case 0: p = "chroma"; break;
		case 1: p = "BTSC"; break;
		case 2: p = "EIAJ"; break;
		case 3: p = "A2-M"; break;
		case 4: p = "autodetect"; break;
		default: p = "undefined";
		}
		v4l_info(client, "Selected 45 MHz format:    %s\n", p);
	}
}

/* ----------------------------------------------------------------------- */

/* This load_fw operation must be called to load the driver's firmware.
   Without this the audio standard detection will fail and you will
   only get mono.

   Since loading the firmware is often problematic when the driver is
   compiled into the kernel I recommend postponing calling this function
   until the first open of the video device. Another reason for
   postponing it is that loading this firmware takes a long time (seconds)
   due to the slow i2c bus speed. So it will speed up the boot process if
   you can avoid loading the fw as long as the video device isn't used.  */
static int cx25840_load_fw(struct v4l2_subdev *sd)
{
	struct cx25840_state *state = to_state(sd);
	struct i2c_client *client = v4l2_get_subdevdata(sd);

	if (!state->is_initialized) {
		/* initialize and load firmware */
		state->is_initialized = 1;
		if (is_cx2583x(state))
			cx25836_initialize(client);
		else if (is_cx2388x(state))
			cx23885_initialize(client);
		else if (is_cx231xx(state))
			cx231xx_initialize(client);
		else
			cx25840_initialize(client);
	}
	return 0;
}

#ifdef CONFIG_VIDEO_ADV_DEBUG
static int cx25840_g_register(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg)
{
	struct i2c_client *client = v4l2_get_subdevdata(sd);

	if (!v4l2_chip_match_i2c_client(client, &reg->match))
		return -EINVAL;
	if (!capable(CAP_SYS_ADMIN))
		return -EPERM;
	reg->size = 1;
	reg->val = cx25840_read(client, reg->reg & 0x0fff);
	return 0;
}

static int cx25840_s_register(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg)
{
	struct i2c_client *client = v4l2_get_subdevdata(sd);

	if (!v4l2_chip_match_i2c_client(client, &reg->match))
		return -EINVAL;
	if (!capable(CAP_SYS_ADMIN))
		return -EPERM;
	cx25840_write(client, reg->reg & 0x0fff, reg->val & 0xff);
	return 0;
}
#endif

static int cx25840_s_audio_stream(struct v4l2_subdev *sd, int enable)
{
	struct cx25840_state *state = to_state(sd);
	struct i2c_client *client = v4l2_get_subdevdata(sd);
	u8 v;

	if (is_cx2583x(state) || is_cx2388x(state) || is_cx231xx(state))
		return 0;

	v4l_dbg(1, cx25840_debug, client, "%s audio output\n",
			enable ? "enable" : "disable");

	if (enable) {
		v = cx25840_read(client, 0x115) | 0x80;
		cx25840_write(client, 0x115, v);
		v = cx25840_read(client, 0x116) | 0x03;
		cx25840_write(client, 0x116, v);
	} else {
		v = cx25840_read(client, 0x115) & ~(0x80);
		cx25840_write(client, 0x115, v);
		v = cx25840_read(client, 0x116) & ~(0x03);
		cx25840_write(client, 0x116, v);
	}
	return 0;
}

static int cx25840_s_stream(struct v4l2_subdev *sd, int enable)
{
	struct cx25840_state *state = to_state(sd);
	struct i2c_client *client = v4l2_get_subdevdata(sd);
	u8 v;

	v4l_dbg(1, cx25840_debug, client, "%s video output\n",
			enable ? "enable" : "disable");
	if (enable) {
		if (is_cx2388x(state) || is_cx231xx(state)) {
			v = cx25840_read(client, 0x421) | 0x0b;
			cx25840_write(client, 0x421, v);
		} else {
			v = cx25840_read(client, 0x115) | 0x0c;
			cx25840_write(client, 0x115, v);
			v = cx25840_read(client, 0x116) | 0x04;
			cx25840_write(client, 0x116, v);
		}
	} else {
		if (is_cx2388x(state) || is_cx231xx(state)) {
			v = cx25840_read(client, 0x421) & ~(0x0b);
			cx25840_write(client, 0x421, v);
		} else {
			v = cx25840_read(client, 0x115) & ~(0x0c);
			cx25840_write(client, 0x115, v);
			v = cx25840_read(client, 0x116) & ~(0x04);
			cx25840_write(client, 0x116, v);
		}
	}
	return 0;
}

/* Query the current detected video format */
static int cx25840_g_std(struct v4l2_subdev *sd, v4l2_std_id *std)
{
	struct i2c_client *client = v4l2_get_subdevdata(sd);

	v4l2_std_id stds[] = {
		/* 0000 */ V4L2_STD_UNKNOWN,

		/* 0001 */ V4L2_STD_NTSC_M,
		/* 0010 */ V4L2_STD_NTSC_M_JP,
		/* 0011 */ V4L2_STD_NTSC_443,
		/* 0100 */ V4L2_STD_PAL,
		/* 0101 */ V4L2_STD_PAL_M,
		/* 0110 */ V4L2_STD_PAL_N,
		/* 0111 */ V4L2_STD_PAL_Nc,
		/* 1000 */ V4L2_STD_PAL_60,

		/* 1001 */ V4L2_STD_UNKNOWN,
		/* 1010 */ V4L2_STD_UNKNOWN,
		/* 1001 */ V4L2_STD_UNKNOWN,
		/* 1010 */ V4L2_STD_UNKNOWN,
		/* 1011 */ V4L2_STD_UNKNOWN,
		/* 1110 */ V4L2_STD_UNKNOWN,
		/* 1111 */ V4L2_STD_UNKNOWN
	};

	u32 fmt = (cx25840_read4(client, 0x40c) >> 8) & 0xf;
	*std = stds[ fmt ];

	v4l_dbg(1, cx25840_debug, client, "g_std fmt = %x, v4l2_std_id = 0x%x\n",
		fmt, (unsigned int)stds[ fmt ]);

	return 0;
}

static int cx25840_g_input_status(struct v4l2_subdev *sd, u32 *status)
{
	struct i2c_client *client = v4l2_get_subdevdata(sd);

	/* A limited function that checks for signal status and returns
	 * the state.
	 */

	/* Check for status of Horizontal lock (SRC lock isn't reliable) */
	if ((cx25840_read4(client, 0x40c) & 0x00010000) == 0)
		*status |= V4L2_IN_ST_NO_SIGNAL;

	return 0;
}

static int cx25840_s_std(struct v4l2_subdev *sd, v4l2_std_id std)
{
	struct cx25840_state *state = to_state(sd);
	struct i2c_client *client = v4l2_get_subdevdata(sd);

	if (state->radio == 0 && state->std == std)
		return 0;
	state->radio = 0;
	state->std = std;
	return set_v4lstd(client);
}

static int cx25840_s_radio(struct v4l2_subdev *sd)
{
	struct cx25840_state *state = to_state(sd);

	state->radio = 1;
	return 0;
}

static int cx25840_s_video_routing(struct v4l2_subdev *sd,
				   u32 input, u32 output, u32 config)
{
	struct cx25840_state *state = to_state(sd);
	struct i2c_client *client = v4l2_get_subdevdata(sd);

	if (is_cx23888(state))
		cx23888_std_setup(client);

	return set_input(client, input, state->aud_input);
}

static int cx25840_s_audio_routing(struct v4l2_subdev *sd,
				   u32 input, u32 output, u32 config)
{
	struct cx25840_state *state = to_state(sd);
	struct i2c_client *client = v4l2_get_subdevdata(sd);

	if (is_cx23888(state))
		cx23888_std_setup(client);
	return set_input(client, state->vid_input, input);
}

static int cx25840_s_frequency(struct v4l2_subdev *sd, struct v4l2_frequency *freq)
{
	struct i2c_client *client = v4l2_get_subdevdata(sd);

	input_change(client);
	return 0;
}

static int cx25840_g_tuner(struct v4l2_subdev *sd, struct v4l2_tuner *vt)
{
	struct cx25840_state *state = to_state(sd);
	struct i2c_client *client = v4l2_get_subdevdata(sd);
	u8 vpres = cx25840_read(client, 0x40e) & 0x20;
	u8 mode;
	int val = 0;

	if (state->radio)
		return 0;

	vt->signal = vpres ? 0xffff : 0x0;
	if (is_cx2583x(state))
		return 0;

	vt->capability |=
		V4L2_TUNER_CAP_STEREO | V4L2_TUNER_CAP_LANG1 |
		V4L2_TUNER_CAP_LANG2 | V4L2_TUNER_CAP_SAP;

	mode = cx25840_read(client, 0x804);

	/* get rxsubchans and audmode */
	if ((mode & 0xf) == 1)
		val |= V4L2_TUNER_SUB_STEREO;
	else
		val |= V4L2_TUNER_SUB_MONO;

	if (mode == 2 || mode == 4)
		val = V4L2_TUNER_SUB_LANG1 | V4L2_TUNER_SUB_LANG2;

	if (mode & 0x10)
		val |= V4L2_TUNER_SUB_SAP;

	vt->rxsubchans = val;
	vt->audmode = state->audmode;
	return 0;
}

static int cx25840_s_tuner(struct v4l2_subdev *sd, struct v4l2_tuner *vt)
{
	struct cx25840_state *state = to_state(sd);
	struct i2c_client *client = v4l2_get_subdevdata(sd);

	if (state->radio || is_cx2583x(state))
		return 0;

	switch (vt->audmode) {
		case V4L2_TUNER_MODE_MONO:
			/* mono      -> mono
			   stereo    -> mono
			   bilingual -> lang1 */
			cx25840_and_or(client, 0x809, ~0xf, 0x00);
			break;
		case V4L2_TUNER_MODE_STEREO:
		case V4L2_TUNER_MODE_LANG1:
			/* mono      -> mono
			   stereo    -> stereo
			   bilingual -> lang1 */
			cx25840_and_or(client, 0x809, ~0xf, 0x04);
			break;
		case V4L2_TUNER_MODE_LANG1_LANG2:
			/* mono      -> mono
			   stereo    -> stereo
			   bilingual -> lang1/lang2 */
			cx25840_and_or(client, 0x809, ~0xf, 0x07);
			break;
		case V4L2_TUNER_MODE_LANG2:
			/* mono      -> mono
			   stereo    -> stereo
			   bilingual -> lang2 */
			cx25840_and_or(client, 0x809, ~0xf, 0x01);
			break;
		default:
			return -EINVAL;
	}
	state->audmode = vt->audmode;
	return 0;
}

static int cx25840_reset(struct v4l2_subdev *sd, u32 val)
{
	struct cx25840_state *state = to_state(sd);
	struct i2c_client *client = v4l2_get_subdevdata(sd);

	if (is_cx2583x(state))
		cx25836_initialize(client);
	else if (is_cx2388x(state))
		cx23885_initialize(client);
	else if (is_cx231xx(state))
		cx231xx_initialize(client);
	else
		cx25840_initialize(client);
	return 0;
}

static int cx25840_g_chip_ident(struct v4l2_subdev *sd, struct v4l2_dbg_chip_ident *chip)
{
	struct cx25840_state *state = to_state(sd);
	struct i2c_client *client = v4l2_get_subdevdata(sd);

	return v4l2_chip_ident_i2c_client(client, chip, state->id, state->rev);
}

static int cx25840_log_status(struct v4l2_subdev *sd)
{
	struct cx25840_state *state = to_state(sd);
	struct i2c_client *client = v4l2_get_subdevdata(sd);

	log_video_status(client);
	if (!is_cx2583x(state))
		log_audio_status(client);
	cx25840_ir_log_status(sd);
	v4l2_ctrl_handler_log_status(&state->hdl, sd->name);
	return 0;
}

static int cx23885_irq_handler(struct v4l2_subdev *sd, u32 status,
			       bool *handled)
{
	struct cx25840_state *state = to_state(sd);
	struct i2c_client *c = v4l2_get_subdevdata(sd);
	u8 irq_stat, aud_stat, aud_en, ir_stat, ir_en;
	u32 vid_stat, aud_mc_stat;
	bool block_handled;
	int ret = 0;

	irq_stat = cx25840_read(c, CX23885_PIN_CTRL_IRQ_REG);
	v4l_dbg(2, cx25840_debug, c, "AV Core IRQ status (entry): %s %s %s\n",
		irq_stat & CX23885_PIN_CTRL_IRQ_IR_STAT ? "ir" : "  ",
		irq_stat & CX23885_PIN_CTRL_IRQ_AUD_STAT ? "aud" : "   ",
		irq_stat & CX23885_PIN_CTRL_IRQ_VID_STAT ? "vid" : "   ");

	if ((is_cx23885(state) || is_cx23887(state))) {
		ir_stat = cx25840_read(c, CX25840_IR_STATS_REG);
		ir_en = cx25840_read(c, CX25840_IR_IRQEN_REG);
		v4l_dbg(2, cx25840_debug, c,
			"AV Core ir IRQ status: %#04x disables: %#04x\n",
			ir_stat, ir_en);
		if (irq_stat & CX23885_PIN_CTRL_IRQ_IR_STAT) {
			block_handled = false;
			ret = cx25840_ir_irq_handler(sd,
						     status, &block_handled);
			if (block_handled)
				*handled = true;
		}
	}

	aud_stat = cx25840_read(c, CX25840_AUD_INT_STAT_REG);
	aud_en = cx25840_read(c, CX25840_AUD_INT_CTRL_REG);
	v4l_dbg(2, cx25840_debug, c,
		"AV Core audio IRQ status: %#04x disables: %#04x\n",
		aud_stat, aud_en);
	aud_mc_stat = cx25840_read4(c, CX23885_AUD_MC_INT_MASK_REG);
	v4l_dbg(2, cx25840_debug, c,
		"AV Core audio MC IRQ status: %#06x enables: %#06x\n",
		aud_mc_stat >> CX23885_AUD_MC_INT_STAT_SHFT,
		aud_mc_stat & CX23885_AUD_MC_INT_CTRL_BITS);
	if (irq_stat & CX23885_PIN_CTRL_IRQ_AUD_STAT) {
		if (aud_stat) {
			cx25840_write(c, CX25840_AUD_INT_STAT_REG, aud_stat);
			*handled = true;
		}
	}

	vid_stat = cx25840_read4(c, CX25840_VID_INT_STAT_REG);
	v4l_dbg(2, cx25840_debug, c,
		"AV Core video IRQ status: %#06x disables: %#06x\n",
		vid_stat & CX25840_VID_INT_STAT_BITS,
		vid_stat >> CX25840_VID_INT_MASK_SHFT);
	if (irq_stat & CX23885_PIN_CTRL_IRQ_VID_STAT) {
		if (vid_stat & CX25840_VID_INT_STAT_BITS) {
			cx25840_write4(c, CX25840_VID_INT_STAT_REG, vid_stat);
			*handled = true;
		}
	}

	irq_stat = cx25840_read(c, CX23885_PIN_CTRL_IRQ_REG);
	v4l_dbg(2, cx25840_debug, c, "AV Core IRQ status (exit): %s %s %s\n",
		irq_stat & CX23885_PIN_CTRL_IRQ_IR_STAT ? "ir" : "  ",
		irq_stat & CX23885_PIN_CTRL_IRQ_AUD_STAT ? "aud" : "   ",
		irq_stat & CX23885_PIN_CTRL_IRQ_VID_STAT ? "vid" : "   ");

	return ret;
}

static int cx25840_irq_handler(struct v4l2_subdev *sd, u32 status,
			       bool *handled)
{
	struct cx25840_state *state = to_state(sd);

	*handled = false;

	/* Only support the CX2388[578] AV Core for now */
	if (is_cx2388x(state))
		return cx23885_irq_handler(sd, status, handled);

	return -ENODEV;
}

/* ----------------------------------------------------------------------- */

#define DIF_PLL_FREQ_WORD	(0x300)
#define DIF_BPF_COEFF01		(0x348)
#define DIF_BPF_COEFF23		(0x34c)
#define DIF_BPF_COEFF45		(0x350)
#define DIF_BPF_COEFF67		(0x354)
#define DIF_BPF_COEFF89		(0x358)
#define DIF_BPF_COEFF1011	(0x35c)
#define DIF_BPF_COEFF1213	(0x360)
#define DIF_BPF_COEFF1415	(0x364)
#define DIF_BPF_COEFF1617	(0x368)
#define DIF_BPF_COEFF1819	(0x36c)
#define DIF_BPF_COEFF2021	(0x370)
#define DIF_BPF_COEFF2223	(0x374)
#define DIF_BPF_COEFF2425	(0x378)
#define DIF_BPF_COEFF2627	(0x37c)
#define DIF_BPF_COEFF2829	(0x380)
#define DIF_BPF_COEFF3031	(0x384)
#define DIF_BPF_COEFF3233	(0x388)
#define DIF_BPF_COEFF3435	(0x38c)
#define DIF_BPF_COEFF36		(0x390)

void cx23885_dif_setup(struct i2c_client *client, u32 ifHz)
{
	u64 pll_freq;
	u32 pll_freq_word;

	v4l_dbg(1, cx25840_debug, client, "%s(%d)\n", __func__, ifHz);

	/* Assuming TV */
	/* Calculate the PLL frequency word based on the adjusted ifHz */
        pll_freq = div_u64((u64)ifHz * 268435456, 50000000);
        pll_freq_word = (u32)pll_freq;

        cx25840_write4(client, DIF_PLL_FREQ_WORD,  pll_freq_word);

	/* Round down to the nearest 100KHz */
	ifHz = (ifHz / 100000) * 100000;

	if (ifHz < 3000000)
		ifHz = 3000000;

	if (ifHz > 16000000)
		ifHz = 16000000;

	v4l_dbg(1, cx25840_debug, client, "%s(%d) again\n", __func__, ifHz);

	switch (ifHz) {
	case 3000000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00080012);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x001e0024);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x001bfff8);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffb4ff50);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfed8fe68);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe24fe34);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfebaffc7);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x014d031f);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x04f0065d);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x07010688);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x04c901d6);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfe00f9d3);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf600f342);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf235f337);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf64efb22);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0105070f);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x0c460fce);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 3100000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000001);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00070012);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00220032);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x00370026);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xfff0ff91);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff0efe7c);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe01fdcc);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfe0afedb);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x00440224);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x0434060c);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0738074e);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x06090361);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xff99fb39);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf6fef3b6);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf21af2a5);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf573fa33);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0034067d);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x0bfb0fb9);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 3200000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000000);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0004000e);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00200038);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x004c004f);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x002fffdf);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff5cfeb6);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe0dfd92);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd7ffe03);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xff36010a);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x03410575);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x072607d2);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x071804d5);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0134fcb7);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf81ff451);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf223f22e);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf4a7f94b);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xff6405e8);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x0bae0fa4);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 3300000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000ffff);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00000008);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x001a0036);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0056006d);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00670030);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xffbdff10);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe46fd8d);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd25fd4f);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfe35ffe0);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x0224049f);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x06c9080e);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x07ef0627);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x02c9fe45);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf961f513);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf250f1d2);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf3ecf869);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xfe930552);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x0b5f0f8f);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 3400000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xfffffffe);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffd0001);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x000f002c);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0054007d);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x0093007c);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x0024ff82);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfea6fdbb);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd03fcca);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfd51feb9);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x00eb0392);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x06270802);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x08880750);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x044dffdb);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xfabdf5f8);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf2a0f193);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf342f78f);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xfdc404b9);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x0b0e0f78);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 3500000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xfffffffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffafff9);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0002001b);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0046007d);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00ad00ba);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00870000);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xff26fe1a);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd1bfc7e);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc99fda4);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xffa5025c);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x054507ad);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x08dd0847);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x05b80172);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xfc2ef6ff);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf313f170);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf2abf6bd);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xfcf6041f);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x0abc0f61);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 3600000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xfffffffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff8fff3);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xfff50006);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x002f006c);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00b200e3);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00dc007e);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xffb9fea0);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd6bfc71);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc17fcb1);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfe65010b);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x042d0713);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x08ec0906);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x07020302);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xfdaff823);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf3a7f16a);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf228f5f5);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xfc2a0384);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x0a670f4a);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 3700000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff7ffef);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe9fff1);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0010004d);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00a100f2);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x011a00f0);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x0053ff44);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfdedfca2);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfbd3fbef);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfd39ffae);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x02ea0638);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x08b50987);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x08230483);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xff39f960);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf45bf180);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf1b8f537);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xfb6102e7);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x0a110f32);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 3800000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffe);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff9ffee);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe1ffdd);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xfff00024);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x007c00e5);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x013a014a);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x00e6fff8);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfe98fd0f);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfbd3fb67);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfc32fe54);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x01880525);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x083909c7);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x091505ee);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x00c7fab3);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf52df1b4);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf15df484);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xfa9b0249);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x09ba0f19);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 3900000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000000);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffbfff0);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffdeffcf);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffd1fff6);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x004800be);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x01390184);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x016300ac);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xff5efdb1);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc17fb23);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfb5cfd0d);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x001703e4);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x077b09c4);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x09d2073c);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0251fc18);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf61cf203);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf118f3dc);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf9d801aa);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x09600eff);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 4000000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000001);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffefff4);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe1ffc8);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffbaffca);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x000b0082);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x01170198);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01c10152);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x0030fe7b);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc99fb24);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfac3fbe9);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfea5027f);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x0683097f);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0a560867);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x03d2fd89);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf723f26f);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf0e8f341);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf919010a);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x09060ee5);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 4100000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0002fffb);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe8ffca);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffacffa4);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffcd0036);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00d70184);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01f601dc);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x00ffff60);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfd51fb6d);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfa6efaf5);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfd410103);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x055708f9);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0a9e0969);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0543ff02);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf842f2f5);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf0cef2b2);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf85e006b);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x08aa0ecb);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 4200000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00050003);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xfff3ffd3);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffaaff8b);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff95ffe5);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x0080014a);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01fe023f);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x01ba0050);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfe35fbf8);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfa62fa3b);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfbf9ff7e);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x04010836);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0aa90a3d);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x069f007f);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf975f395);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf0cbf231);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf7a9ffcb);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x084c0eaf);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 4300000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0008000a);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0000ffe4);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffb4ff81);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff6aff96);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x001c00f0);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01d70271);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x0254013b);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xff36fcbd);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfa9ff9c5);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfadbfdfe);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x028c073b);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0a750adf);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x07e101fa);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xfab8f44e);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf0ddf1be);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf6f9ff2b);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x07ed0e94);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 4400000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0009000f);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x000efff8);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffc9ff87);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff52ff54);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xffb5007e);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01860270);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02c00210);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0044fdb2);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfb22f997);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf9f2fc90);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x0102060f);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0a050b4c);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0902036e);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xfc0af51e);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf106f15a);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf64efe8b);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x078d0e77);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 4500000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00080012);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0019000e);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffe5ff9e);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff4fff25);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff560000);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x0112023b);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02f702c0);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x014dfec8);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfbe5f9b3);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf947fb41);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xff7004b9);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x095a0b81);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0a0004d8);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xfd65f603);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf144f104);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf5aafdec);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x072b0e5a);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 4600000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000001);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00060012);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00200022);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0005ffc1);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff61ff10);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff09ff82);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x008601d7);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02f50340);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0241fff0);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfcddfa19);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf8e2fa1e);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfde30343);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x08790b7f);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0ad50631);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xfec7f6fc);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf198f0bd);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf50dfd4e);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x06c90e3d);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 4700000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000ffff);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0003000f);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00220030);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0025ffed);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff87ff15);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfed6ff10);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xffed014c);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02b90386);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x03110119);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfdfefac4);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf8c6f92f);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfc6701b7);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x07670b44);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0b7e0776);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x002df807);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf200f086);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf477fcb1);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x06650e1e);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 4800000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xfffffffe);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xffff0009);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x001e0038);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x003f001b);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffbcff36);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfec2feb6);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xff5600a5);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x0248038d);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x03b00232);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xff39fbab);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf8f4f87f);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfb060020);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x062a0ad2);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0bf908a3);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0192f922);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf27df05e);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf3e8fc14);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x06000e00);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 4900000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xfffffffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffc0002);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00160037);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x00510046);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xfff9ff6d);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfed0fe7c);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfecefff0);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x01aa0356);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0413032b);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x007ffcc5);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf96cf812);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf9cefe87);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x04c90a2c);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0c4309b4);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x02f3fa4a);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf30ef046);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf361fb7a);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x059b0de0);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 5000000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xfffffffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff9fffa);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x000a002d);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x00570067);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x0037ffb5);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfefffe68);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe62ff3d);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x00ec02e3);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x043503f6);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x01befe05);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfa27f7ee);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf8c6fcf8);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x034c0954);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0c5c0aa4);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x044cfb7e);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf3b1f03f);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf2e2fae1);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x05340dc0);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 5100000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff8fff4);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xfffd001e);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0051007b);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x006e0006);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff48fe7c);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe1bfe9a);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x001d023e);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x04130488);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x02e6ff5b);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfb1ef812);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf7f7fb7f);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x01bc084e);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0c430b72);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x059afcba);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf467f046);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf26cfa4a);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x04cd0da0);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 5200000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffe);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff8ffef);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xfff00009);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x003f007f);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00980056);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xffa5feb6);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe00fe15);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xff4b0170);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x03b004d7);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x03e800b9);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfc48f87f);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf768fa23);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0022071f);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0bf90c1b);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x06dafdfd);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf52df05e);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf1fef9b5);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x04640d7f);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 5300000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000ffff);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff9ffee);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe6fff3);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x00250072);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00af009c);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x000cff10);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe13fdb8);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfe870089);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x031104e1);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x04b8020f);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfd98f92f);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf71df8f0);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfe8805ce);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0b7e0c9c);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0808ff44);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf603f086);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf19af922);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x03fb0d5e);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 5400000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000001);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffcffef);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe0ffe0);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x00050056);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00b000d1);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x0071ff82);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe53fd8c);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfddfff99);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x024104a3);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x054a034d);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xff01fa1e);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf717f7ed);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfcf50461);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0ad50cf4);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0921008d);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf6e7f0bd);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf13ff891);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x03920d3b);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 5500000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffffff3);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffdeffd1);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffe5002f);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x009c00ed);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00cb0000);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfebafd94);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd61feb0);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x014d0422);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x05970464);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0074fb41);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf759f721);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfb7502de);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0a000d21);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0a2201d4);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf7d9f104);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf0edf804);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x03280d19);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 5600000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0003fffa);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe3ffc9);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffc90002);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x007500ef);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x010e007e);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xff3dfdcf);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd16fddd);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x00440365);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x059b0548);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x01e3fc90);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf7dff691);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfa0f014d);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x09020d23);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0b0a0318);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf8d7f15a);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf0a5f779);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x02bd0cf6);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 5700000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00060001);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffecffc9);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffb4ffd4);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x004000d5);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x013600f0);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xffd3fe39);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd04fd31);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xff360277);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x055605ef);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x033efdfe);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf8a5f642);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf8cbffb6);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x07e10cfb);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0bd50456);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf9dff1be);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf067f6f2);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x02520cd2);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 5800000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00080009);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xfff8ffd2);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffaaffac);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x000200a3);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x013c014a);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x006dfec9);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd2bfcb7);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfe350165);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x04cb0651);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0477ff7e);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf9a5f635);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf7b1fe20);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x069f0ca8);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0c81058b);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xfaf0f231);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf033f66d);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x01e60cae);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 5900000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0009000e);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0005ffe1);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffacff90);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffc5005f);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x01210184);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x00fcff72);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd8afc77);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfd51003f);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x04020669);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x05830103);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfad7f66b);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf6c8fc93);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x05430c2b);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0d0d06b5);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xfc08f2b2);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf00af5ec);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x017b0c89);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 6000000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000001);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00070012);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0012fff5);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffbaff82);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff8e000f);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00e80198);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01750028);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfe18fc75);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc99ff15);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x03050636);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0656027f);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfc32f6e2);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf614fb17);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x03d20b87);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0d7707d2);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xfd26f341);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xefeaf56f);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x010f0c64);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 6100000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xffff0000);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00050012);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x001c000b);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffd1ff84);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff66ffbe);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00960184);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01cd00da);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfeccfcb2);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc17fdf9);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x01e005bc);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x06e703e4);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfdabf798);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf599f9b3);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x02510abd);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0dbf08df);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xfe48f3dc);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xefd5f4f6);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x00a20c3e);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 6200000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xfffffffe);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0002000f);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0021001f);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xfff0ff97);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff50ff74);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x0034014a);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01fa0179);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xff97fd2a);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfbd3fcfa);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x00a304fe);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x07310525);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xff37f886);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf55cf86e);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x00c709d0);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0de209db);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xff6df484);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xefcbf481);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0x00360c18);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 6300000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xfffffffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffe000a);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0021002f);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0010ffb8);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff50ff3b);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xffcc00f0);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01fa01fa);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x0069fdd4);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfbd3fc26);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xff5d0407);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x07310638);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x00c9f9a8);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf55cf74e);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xff3908c3);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0de20ac3);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0093f537);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xefcbf410);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xffca0bf2);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 6400000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xfffffffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffb0003);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x001c0037);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x002fffe2);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff66ff17);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff6a007e);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01cd0251);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x0134fea5);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc17fb8b);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfe2002e0);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x06e70713);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x0255faf5);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf599f658);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xfdaf0799);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0dbf0b96);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x01b8f5f5);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xefd5f3a3);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xff5e0bca);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 6500000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff9fffb);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00120037);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x00460010);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff8eff0f);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff180000);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01750276);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x01e8ff8d);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc99fb31);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfcfb0198);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x065607ad);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x03cefc64);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf614f592);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xfc2e0656);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0d770c52);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x02daf6bd);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xefeaf33b);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xfef10ba3);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 6600000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffe);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff7fff5);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0005002f);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0054003c);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffc5ff22);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfedfff82);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x00fc0267);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x0276007e);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfd51fb1c);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfbfe003e);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x05830802);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x0529fdec);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf6c8f4fe);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xfabd04ff);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0d0d0cf6);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x03f8f78f);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf00af2d7);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xfe850b7b);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 6700000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000ffff);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff8fff0);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xfff80020);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x00560060);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x0002ff4e);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfec4ff10);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x006d0225);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02d50166);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfe35fb4e);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfb35fee1);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0477080e);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x065bff82);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf7b1f4a0);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf9610397);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0c810d80);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0510f869);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf033f278);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xfe1a0b52);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 6800000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010000);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffaffee);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffec000c);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x004c0078);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x0040ff8e);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfecafeb6);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xffd301b6);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02fc0235);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xff36fbc5);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfaaafd90);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x033e07d2);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x075b011b);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf8cbf47a);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf81f0224);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0bd50def);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0621f94b);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf067f21e);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xfdae0b29);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 6900000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010001);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffdffef);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe3fff6);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0037007f);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x0075ffdc);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfef2fe7c);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xff3d0122);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02ea02dd);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0044fc79);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfa65fc5d);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x01e3074e);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x082102ad);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfa0ff48c);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf6fe00a9);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0b0a0e43);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0729fa33);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf0a5f1c9);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xfd430b00);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 7000000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0001fff3);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffdeffe2);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x001b0076);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x009c002d);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff35fe68);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfeba0076);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x029f0352);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x014dfd60);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfa69fb53);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x00740688);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x08a7042d);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfb75f4d6);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf600ff2d);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0a220e7a);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0827fb22);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf0edf17a);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xfcd80ad6);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 7100000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0004fff9);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe0ffd2);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xfffb005e);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00b0007a);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff8ffe7c);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe53ffc1);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x0221038c);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0241fe6e);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfab6fa80);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xff010587);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x08e90590);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfcf5f556);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf52bfdb3);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x09210e95);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0919fc15);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf13ff12f);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xfc6e0aab);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 7200000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00070000);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe6ffc9);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffdb0039);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00af00b8);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfff4feb6);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe13ff10);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x01790388);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0311ff92);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfb48f9ed);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfd980453);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x08e306cd);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfe88f60a);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf482fc40);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x08080e93);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x09fdfd0c);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf19af0ea);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xfc050a81);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 7300000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00080008);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xfff0ffc9);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffc1000d);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x009800e2);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x005bff10);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe00fe74);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x00b50345);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x03b000bc);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfc18f9a1);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfc4802f9);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x089807dc);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0022f6f0);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf407fada);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x06da0e74);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0ad3fe06);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf1fef0ab);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xfb9c0a55);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 7400000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000001);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0008000e);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xfffdffd0);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffafffdf);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x006e00f2);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00b8ff82);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe1bfdf8);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xffe302c8);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x041301dc);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfd1af99e);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfb1e0183);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x080908b5);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x01bcf801);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf3bdf985);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x059a0e38);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0b99ff03);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf26cf071);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xfb330a2a);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 7500000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xffff0000);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00070011);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x000affdf);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffa9ffb5);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x003700e6);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x01010000);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe62fda8);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xff140219);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x043502e1);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfe42f9e6);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfa270000);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x073a0953);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x034cf939);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf3a4f845);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x044c0de1);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0c4f0000);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf2e2f03c);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xfacc09fe);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 7600000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xffffffff);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00040012);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0016fff3);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffafff95);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xfff900c0);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x0130007e);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfecefd89);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfe560146);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x041303bc);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xff81fa76);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf96cfe7d);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x063209b1);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x04c9fa93);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf3bdf71e);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x02f30d6e);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0cf200fd);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf361f00e);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xfa6509d1);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 7700000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xfffffffe);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00010010);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x001e0008);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffc1ff84);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffbc0084);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x013e00f0);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xff56fd9f);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfdb8005c);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x03b00460);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x00c7fb45);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf8f4fd07);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x04fa09ce);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x062afc07);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf407f614);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x01920ce0);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0d8301fa);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf3e8efe5);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xfa0009a4);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 7800000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffd000b);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0022001d);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffdbff82);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff870039);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x012a014a);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xffedfde7);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd47ff6b);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x031104c6);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x0202fc4c);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf8c6fbad);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x039909a7);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0767fd8e);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf482f52b);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x002d0c39);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0e0002f4);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf477efc2);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf99b0977);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 7900000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffa0004);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0020002d);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xfffbff91);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff61ffe8);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00f70184);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x0086fe5c);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd0bfe85);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x024104e5);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x0323fd7d);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf8e2fa79);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x021d093f);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0879ff22);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf52bf465);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xfec70b79);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0e6803eb);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf50defa5);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf937094a);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 8000000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffe);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff8fffd);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00190036);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x001bffaf);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff4fff99);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00aa0198);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x0112fef3);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd09fdb9);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x014d04be);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x041bfecc);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf947f978);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x00900897);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x095a00b9);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf600f3c5);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xfd650aa3);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0ebc04de);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf5aaef8e);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf8d5091c);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 8100000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000ffff);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff7fff6);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x000e0038);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0037ffd7);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff52ff56);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x004b0184);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x0186ffa1);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd40fd16);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x00440452);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x04de0029);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf9f2f8b2);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfefe07b5);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0a05024d);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf6fef34d);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xfc0a09b8);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0efa05cd);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf64eef7d);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf87308ed);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 8200000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010000);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff8fff0);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00000031);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x004c0005);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff6aff27);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xffe4014a);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01d70057);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfdacfca6);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xff3603a7);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x05610184);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfadbf82e);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfd74069f);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0a7503d6);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf81ff2ff);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xfab808b9);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0f2306b5);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf6f9ef72);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf81308bf);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 8300000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010001);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffbffee);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xfff30022);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x00560032);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff95ff10);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff8000f0);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01fe0106);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfe46fc71);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfe3502c7);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x059e02ce);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfbf9f7f2);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfbff055b);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0aa9054c);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf961f2db);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf97507aa);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0f350797);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf7a9ef6d);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf7b40890);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 8400000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffeffee);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe8000f);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x00540058);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffcdff14);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff29007e);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01f6019e);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xff01fc7c);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfd5101bf);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x059203f6);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfd41f7fe);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfaa903f3);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0a9e06a9);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xfabdf2e2);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf842068b);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0f320871);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf85eef6e);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf7560860);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 8500000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0002fff2);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe1fff9);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x00460073);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x000bff34);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfee90000);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01c10215);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xffd0fcc5);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc99009d);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x053d04f1);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfea5f853);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf97d0270);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0a5607e4);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xfc2ef314);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf723055f);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0f180943);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf919ef75);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf6fa0830);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 8600000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0005fff8);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffdeffe4);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x002f007f);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x0048ff6b);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfec7ff82);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x0163025f);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x00a2fd47);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc17ff73);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x04a405b2);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0017f8ed);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf88500dc);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x09d208f9);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xfdaff370);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf61c0429);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0ee80a0b);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xf9d8ef82);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf6a00800);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 8700000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0007ffff);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe1ffd4);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0010007a);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x007cffb2);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfec6ff10);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x00e60277);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x0168fdf9);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfbd3fe50);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x03ce0631);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0188f9c8);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf7c7ff43);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x091509e3);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xff39f3f6);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf52d02ea);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0ea30ac9);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xfa9bef95);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf64607d0);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 8800000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00090007);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe9ffca);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xfff00065);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00a10003);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfee6feb6);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x0053025b);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x0213fed0);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfbd3fd46);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x02c70668);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x02eafadb);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf74bfdae);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x08230a9c);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x00c7f4a3);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf45b01a6);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0e480b7c);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xfb61efae);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf5ef079f);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 8900000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xffff0000);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0008000d);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xfff5ffc8);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffd10043);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00b20053);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff24fe7c);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xffb9020c);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x0295ffbb);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc17fc64);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x019b0654);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x042dfc1c);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf714fc2a);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x07020b21);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0251f575);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf3a7005e);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0dd80c24);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xfc2aefcd);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf599076e);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 9000000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xffffffff);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00060011);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0002ffcf);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffba0018);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00ad009a);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff79fe68);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xff260192);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02e500ab);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc99fbb6);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x005b05f7);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0545fd81);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf723fabf);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x05b80b70);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x03d2f669);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf313ff15);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0d550cbf);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xfcf6eff2);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf544073d);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 9100000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xfffffffe);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00030012);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x000fffdd);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffacffea);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x009300cf);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xffdcfe7c);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfea600f7);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02fd0190);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfd51fb46);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xff150554);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0627fefd);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf778f978);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x044d0b87);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0543f77d);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf2a0fdcf);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0cbe0d4e);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xfdc4f01d);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf4f2070b);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 9200000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00000010);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x001afff0);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffaaffbf);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x006700ed);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x0043feb6);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe460047);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02db0258);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfe35fb1b);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfddc0473);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x06c90082);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf811f85e);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x02c90b66);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x069ff8ad);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf250fc8d);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0c140dcf);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xfe93f04d);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf4a106d9);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 9300000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffc000c);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00200006);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffb4ff9c);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x002f00ef);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00a4ff10);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe0dff92);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x028102f7);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xff36fb37);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfcbf035e);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x07260202);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf8e8f778);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x01340b0d);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x07e1f9f4);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf223fb51);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0b590e42);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xff64f083);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf45206a7);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 9400000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff90005);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0022001a);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffc9ff86);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xfff000d7);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00f2ff82);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe01fee5);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x01f60362);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0044fb99);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfbcc0222);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x07380370);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf9f7f6cc);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xff990a7e);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0902fb50);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf21afa1f);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0a8d0ea6);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0034f0bf);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf4050675);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 9500000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffe);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff8fffe);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x001e002b);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffe5ff81);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffb400a5);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x01280000);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe24fe50);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x01460390);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x014dfc3a);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfb1000ce);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x070104bf);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfb37f65f);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfe0009bc);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0a00fcbb);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf235f8f8);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x09b20efc);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0105f101);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf3ba0642);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 9600000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0001ffff);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff8fff7);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00150036);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0005ff8c);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff810061);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x013d007e);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe71fddf);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x007c0380);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0241fd13);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfa94ff70);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x068005e2);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfc9bf633);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfc7308ca);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0ad5fe30);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf274f7e0);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x08c90f43);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x01d4f147);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf371060f);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 9700000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010001);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff9fff1);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00090038);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0025ffa7);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff5e0012);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x013200f0);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfee3fd9b);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xffaa0331);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0311fe15);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfa60fe18);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x05bd06d1);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfe1bf64a);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfafa07ae);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0b7effab);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf2d5f6d7);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x07d30f7a);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x02a3f194);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf32905dc);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 9800000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffcffee);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xfffb0032);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x003fffcd);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff4effc1);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x0106014a);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xff6efd8a);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfedd02aa);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x03b0ff34);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfa74fcd7);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x04bf0781);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xffaaf6a3);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf99e066b);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0bf90128);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf359f5e1);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x06d20fa2);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0370f1e5);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf2e405a8);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 9900000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xffffffee);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffef0024);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0051fffa);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff54ff77);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00be0184);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x0006fdad);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfe2701f3);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0413005e);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfad1fbba);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x039007ee);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x013bf73d);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf868050a);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0c4302a1);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf3fdf4fe);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x05c70fba);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x043bf23c);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf2a10575);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 10000000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0003fff1);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe50011);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x00570027);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff70ff3c);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00620198);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x009efe01);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd95011a);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x04350183);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfb71fad0);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x023c0812);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x02c3f811);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf75e0390);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0c5c0411);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf4c1f432);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x04b30fc1);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0503f297);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf2610541);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 10100000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0006fff7);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffdffffc);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x00510050);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff9dff18);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfffc0184);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x0128fe80);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd32002e);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x04130292);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfc4dfa21);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x00d107ee);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x0435f91c);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf6850205);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0c430573);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf5a1f37d);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x03990fba);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x05c7f2f8);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf222050d);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 10200000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0008fffe);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffdfffe7);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x003f006e);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffd6ff0f);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff96014a);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x0197ff1f);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd05ff3e);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x03b0037c);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfd59f9b7);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xff5d0781);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x0585fa56);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf5e4006f);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0bf906c4);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf69df2e0);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x02790fa2);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0688f35d);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf1e604d8);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 10300000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xffff0001);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00090005);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe4ffd6);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0025007e);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x0014ff20);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff3c00f0);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01e1ffd0);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd12fe5c);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x03110433);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfe88f996);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfdf106d1);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x06aafbb7);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf57efed8);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0b7e07ff);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf7b0f25e);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x01560f7a);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0745f3c7);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf1ac04a4);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 10400000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xffffffff);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0008000c);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffedffcb);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0005007d);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x0050ff4c);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfef6007e);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01ff0086);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd58fd97);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x024104ad);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xffcaf9c0);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfc9905e2);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x079afd35);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf555fd46);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0ad50920);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf8d9f1f6);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x00310f43);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x07fdf435);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf174046f);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 10500000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xfffffffe);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00050011);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xfffaffc8);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffe5006b);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x0082ff8c);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfecc0000);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01f00130);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfdd2fcfc);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x014d04e3);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x010efa32);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfb6404bf);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x084efec5);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf569fbc2);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0a000a23);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xfa15f1ab);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xff0b0efc);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x08b0f4a7);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf13f043a);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 10600000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00020012);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0007ffcd);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffc9004c);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00a4ffd9);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfec3ff82);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01b401c1);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfe76fc97);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x004404d2);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x0245fae8);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfa5f0370);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x08c1005f);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf5bcfa52);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x09020b04);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xfb60f17b);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xfde70ea6);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x095df51e);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf10c0405);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 10700000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xffff0011);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0014ffdb);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffb40023);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00b2002a);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfedbff10);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x0150022d);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xff38fc6f);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xff36047b);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x035efbda);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf9940202);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x08ee01f5);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf649f8fe);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x07e10bc2);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xfcb6f169);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xfcc60e42);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0a04f599);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf0db03d0);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 10800000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffb000d);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x001dffed);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffaafff5);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00aa0077);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff13feb6);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x00ce026b);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x000afc85);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfe3503e3);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x044cfcfb);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf90c0082);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x08d5037f);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf710f7cc);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x069f0c59);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xfe16f173);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xfbaa0dcf);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0aa5f617);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf0ad039b);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 10900000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffe);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff90006);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00210003);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffacffc8);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x008e00b6);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff63fe7c);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x003a0275);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x00dafcda);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfd510313);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x0501fe40);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf8cbfefd);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x087604f0);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf80af6c2);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x05430cc8);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xff7af19a);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xfa940d4e);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0b3ff699);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf0810365);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 11000000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0001ffff);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff8ffff);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00210018);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffbaffa3);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x006000e1);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xffc4fe68);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xffa0024b);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x019afd66);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc990216);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x0575ff99);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf8d4fd81);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x07d40640);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf932f5e6);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x03d20d0d);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x00dff1de);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf9860cbf);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0bd1f71e);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf058032f);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 11100000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010000);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff8fff8);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x001b0029);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffd1ff8a);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x002600f2);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x002cfe7c);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xff0f01f0);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x023bfe20);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc1700fa);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x05a200f7);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf927fc1c);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x06f40765);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfa82f53b);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x02510d27);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0243f23d);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf8810c24);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0c5cf7a7);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf03102fa);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 11200000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffafff2);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00110035);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xfff0ff81);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffe700e7);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x008ffeb6);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe94016d);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02b0fefb);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfbd3ffd1);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x05850249);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf9c1fadb);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x05de0858);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfbf2f4c4);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x00c70d17);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x03a0f2b8);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf7870b7c);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0cdff833);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf00d02c4);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 11300000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffdffee);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00040038);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0010ff88);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffac00c2);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00e2ff10);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe3900cb);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02f1ffe9);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfbd3feaa);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x05210381);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfa9cf9c8);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x04990912);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfd7af484);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xff390cdb);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x04f4f34d);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf69a0ac9);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0d5af8c1);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xefec028e);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 11400000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0000ffee);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xfff60033);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x002fff9f);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff7b0087);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x011eff82);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe080018);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02f900d8);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc17fd96);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x04790490);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfbadf8ed);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x032f098e);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xff10f47d);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xfdaf0c75);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x063cf3fc);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf5ba0a0b);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0dccf952);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xefcd0258);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 11500000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0004fff1);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffea0026);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0046ffc3);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff5a003c);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x013b0000);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe04ff63);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02c801b8);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc99fca6);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x0397056a);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfcecf853);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x01ad09c9);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x00acf4ad);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xfc2e0be7);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0773f4c2);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf4e90943);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0e35f9e6);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xefb10221);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 11600000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0007fff6);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe20014);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0054ffee);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff4effeb);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x0137007e);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe2efebb);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x0260027a);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfd51fbe6);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x02870605);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfe4af7fe);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x001d09c1);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0243f515);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xfabd0b32);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0897f59e);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf4280871);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0e95fa7c);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef9701eb);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 11700000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xffff0001);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0008fffd);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffdeffff);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0056001d);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff57ff9c);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x011300f0);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe82fe2e);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x01ca0310);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfe35fb62);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x0155065a);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xffbaf7f2);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfe8c0977);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x03cef5b2);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf9610a58);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x09a5f68f);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf3790797);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0eebfb14);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef8001b5);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 11800000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xffff0000);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00080004);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe0ffe9);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x004c0047);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff75ff58);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00d1014a);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfef9fdc8);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x0111036f);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xff36fb21);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x00120665);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x012df82e);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfd0708ec);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0542f682);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf81f095c);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0a9af792);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf2db06b5);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0f38fbad);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef6c017e);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 11900000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xffffffff);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0007000b);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe7ffd8);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x00370068);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffa4ff28);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00790184);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xff87fd91);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x00430392);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0044fb26);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfece0626);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0294f8b2);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfb990825);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0698f77f);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf6fe0842);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0b73f8a7);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf25105cd);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0f7bfc48);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef5a0148);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 12000000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffe);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00050010);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xfff2ffcc);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x001b007b);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffdfff10);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00140198);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x0020fd8e);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xff710375);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x014dfb73);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfd9a059f);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x03e0f978);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfa4e0726);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x07c8f8a7);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf600070c);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0c2ff9c9);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf1db04de);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0fb4fce5);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef4b0111);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 12100000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00010012);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffffffc8);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xfffb007e);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x001dff14);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xffad0184);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x00b7fdbe);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfea9031b);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0241fc01);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfc8504d6);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0504fa79);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf93005f6);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x08caf9f2);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf52b05c0);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0ccbfaf9);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf17903eb);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0fe3fd83);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef3f00db);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 12200000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffe0011);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x000cffcc);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffdb0071);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x0058ff32);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff4f014a);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x013cfe1f);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfdfb028a);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0311fcc9);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfb9d03d6);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x05f4fbad);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf848049d);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0999fb5b);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf4820461);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0d46fc32);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf12d02f4);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x1007fe21);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef3600a4);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 12300000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffe);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffa000e);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0017ffd9);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffc10055);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x0088ff68);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff0400f0);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01a6fea7);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd7501cc);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x03b0fdc0);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfaef02a8);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x06a7fd07);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf79d0326);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0a31fcda);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf40702f3);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0d9ffd72);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf0f601fa);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x1021fec0);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef2f006d);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 12400000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0001ffff);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff80007);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x001fffeb);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffaf002d);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00a8ffb0);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfed3007e);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01e9ff4c);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd2000ee);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0413fed8);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfa82015c);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0715fe7d);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf7340198);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0a8dfe69);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf3bd017c);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0dd5feb8);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf0d500fd);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x1031ff60);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef2b0037);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 12500000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010000);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff70000);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00220000);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffa90000);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00b30000);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfec20000);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x02000000);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd030000);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x04350000);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfa5e0000);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x073b0000);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf7110000);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0aac0000);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf3a40000);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0de70000);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf0c90000);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x10360000);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef290000);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 12600000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010001);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff8fff9);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x001f0015);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffafffd3);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00a80050);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfed3ff82);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01e900b4);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd20ff12);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x04130128);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfa82fea4);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x07150183);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf734fe68);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0a8d0197);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf3bdfe84);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0dd50148);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf0d5ff03);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x103100a0);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef2bffc9);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 12700000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffafff2);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00170027);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffc1ffab);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00880098);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff04ff10);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01a60159);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd75fe34);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x03b00240);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfaeffd58);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x06a702f9);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf79dfcda);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0a310326);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf407fd0d);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0d9f028e);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf0f6fe06);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x10210140);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef2fff93);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 12800000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffeffef);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x000c0034);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffdbff8f);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x005800ce);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff4ffeb6);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x013c01e1);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfdfbfd76);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x03110337);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfb9dfc2a);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x05f40453);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf848fb63);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x099904a5);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf482fb9f);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0d4603ce);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf12dfd0c);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x100701df);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef36ff5c);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 12900000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0001ffee);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffff0038);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xfffbff82);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x001d00ec);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xffadfe7c);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x00b70242);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfea9fce5);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x024103ff);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfc85fb2a);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x05040587);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf930fa0a);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x08ca060e);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf52bfa40);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0ccb0507);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf179fc15);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0fe3027d);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef3fff25);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 13000000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0005fff0);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xfff20034);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x001bff85);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffdf00f0);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x0014fe68);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x00200272);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xff71fc8b);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x014d048d);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfd9afa61);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x03e00688);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfa4ef8da);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x07c80759);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf600f8f4);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0c2f0637);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf1dbfb22);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0fb4031b);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef4bfeef);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 13100000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xffff0001);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0007fff5);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe70028);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0037ff98);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffa400d8);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x0079fe7c);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xff87026f);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x0043fc6e);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x004404da);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfecef9da);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0294074e);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfb99f7db);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x06980881);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf6fef7be);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0b730759);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf251fa33);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0f7b03b8);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef5afeb8);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 13200000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xffff0000);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0008fffc);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe00017);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x004cffb9);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff7500a8);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00d1feb6);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfef90238);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x0111fc91);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xff3604df);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x0012f99b);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x012d07d2);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfd07f714);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0542097e);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf81ff6a4);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x0a9a086e);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf2dbf94b);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0f380453);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef6cfe82);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 13300000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xffffffff);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00080003);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffde0001);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0056ffe3);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff570064);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x0113ff10);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe8201d2);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x01cafcf0);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfe35049e);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x0155f9a6);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xffba080e);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfe8cf689);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x03ce0a4e);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xf961f5a8);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x09a50971);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf379f869);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0eeb04ec);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef80fe4b);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 13400000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffe);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0007000a);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe2ffec);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x00540012);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff4e0015);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x0137ff82);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe2e0145);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x0260fd86);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfd51041a);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x0287f9fb);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfe4a0802);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x001df63f);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x02430aeb);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xfabdf4ce);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x08970a62);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf428f78f);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0e950584);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xef97fe15);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 13500000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0004000f);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffeaffda);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0046003d);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff5affc4);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x013b0000);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe04009d);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02c8fe48);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc99035a);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x0397fa96);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfcec07ad);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x01adf637);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x00ac0b53);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xfc2ef419);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x07730b3e);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf4e9f6bd);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0e35061a);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xefb1fddf);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 13600000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00000012);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xfff6ffcd);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x002f0061);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff7bff79);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x011e007e);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe08ffe8);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02f9ff28);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc17026a);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x0479fb70);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfbad0713);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x032ff672);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xff100b83);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xfdaff38b);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x063c0c04);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf5baf5f5);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0dcc06ae);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xefcdfda8);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 13700000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffd0012);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0004ffc8);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x00100078);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffacff3e);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00e200f0);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe39ff35);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02f10017);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfbd30156);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x0521fc7f);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfa9c0638);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x0499f6ee);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfd7a0b7c);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0xff39f325);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x04f40cb3);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf69af537);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0d5a073f);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xefecfd72);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 13800000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0001fffe);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffa000e);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0011ffcb);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xfff0007f);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffe7ff19);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x008f014a);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe94fe93);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02b00105);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfbd3002f);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x0585fdb7);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf9c10525);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x05def7a8);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfbf20b3c);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x00c7f2e9);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x03a00d48);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf787f484);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0cdf07cd);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf00dfd3c);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 13900000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010000);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff80008);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x001bffd7);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffd10076);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x0026ff0e);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x002c0184);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xff0ffe10);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x023b01e0);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc17ff06);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x05a2ff09);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf92703e4);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x06f4f89b);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfa820ac5);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0251f2d9);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x02430dc3);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf881f3dc);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0c5c0859);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf031fd06);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 14000000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010001);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff80001);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0021ffe8);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffba005d);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x0060ff1f);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xffc40198);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xffa0fdb5);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x019a029a);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc99fdea);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x05750067);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf8d4027f);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x07d4f9c0);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf9320a1a);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x03d2f2f3);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0x00df0e22);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xf986f341);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0bd108e2);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf058fcd1);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 14100000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff9fffa);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0021fffd);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffac0038);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x008eff4a);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff630184);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x003afd8b);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x00da0326);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfd51fced);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x050101c0);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf8cb0103);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x0876fb10);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf80a093e);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0543f338);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xff7a0e66);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xfa94f2b2);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0b3f0967);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf081fc9b);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 14200000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffbfff3);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x001d0013);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffaa000b);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00aaff89);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff13014a);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x00cefd95);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x000a037b);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfe35fc1d);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x044c0305);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf90cff7e);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x08d5fc81);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf7100834);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x069ff3a7);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xfe160e8d);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xfbaaf231);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0aa509e9);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf0adfc65);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 14300000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xffffffef);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00140025);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffb4ffdd);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00b2ffd6);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfedb00f0);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x0150fdd3);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xff380391);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xff36fb85);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x035e0426);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xf994fdfe);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x08eefe0b);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf6490702);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x07e1f43e);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xfcb60e97);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xfcc6f1be);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x0a040a67);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf0dbfc30);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 14400000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0002ffee);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00070033);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffc9ffb4);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00a40027);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfec3007e);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01b4fe3f);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfe760369);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0044fb2e);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x02450518);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfa5ffc90);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x08c1ffa1);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf5bc05ae);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0902f4fc);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xfb600e85);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xfde7f15a);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x095d0ae2);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf10cfbfb);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 14500000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xffff0002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0005ffef);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xfffa0038);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffe5ff95);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00820074);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfecc0000);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01f0fed0);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfdd20304);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x014dfb1d);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x010e05ce);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfb64fb41);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x084e013b);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf569043e);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0a00f5dd);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xfa150e55);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0xff0bf104);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x08b00b59);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf13ffbc6);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 14600000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xffff0001);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0008fff4);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffed0035);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0005ff83);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x005000b4);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfef6ff82);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01ffff7a);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd580269);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0241fb53);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xffca0640);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfc99fa1e);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x079a02cb);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf55502ba);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0ad5f6e0);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf8d90e0a);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0031f0bd);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x07fd0bcb);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf174fb91);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 14700000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xffffffff);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0009fffb);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe4002a);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0025ff82);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x001400e0);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff3cff10);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01e10030);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd1201a4);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0311fbcd);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfe88066a);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xfdf1f92f);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x06aa0449);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf57e0128);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0b7ef801);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf7b00da2);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0156f086);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x07450c39);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf1acfb5c);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 14800000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffe);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00080002);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffdf0019);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x003fff92);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffd600f1);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff96feb6);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x019700e1);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd0500c2);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x03b0fc84);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfd590649);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0xff5df87f);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x058505aa);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf5e4ff91);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0bf9f93c);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf69d0d20);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0279f05e);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x06880ca3);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf1e6fb28);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 14900000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x00060009);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffdf0004);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0051ffb0);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff9d00e8);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xfffcfe7c);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x01280180);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd32ffd2);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0413fd6e);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfc4d05df);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x00d1f812);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x043506e4);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf685fdfb);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0c43fa8d);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf5a10c83);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0399f046);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x05c70d08);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf222faf3);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 15000000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0003000f);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffe5ffef);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x0057ffd9);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff7000c4);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x0062fe68);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x009e01ff);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfd95fee6);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0435fe7d);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfb710530);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x023cf7ee);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x02c307ef);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf75efc70);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0c5cfbef);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf4c10bce);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x04b3f03f);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x05030d69);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf261fabf);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 15100000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0000fffd);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xffff0012);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xffefffdc);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x00510006);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff540089);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00befe7c);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0x00060253);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfe27fe0d);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x0413ffa2);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfad10446);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0390f812);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0x013b08c3);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf868faf6);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0c43fd5f);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf3fd0b02);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x05c7f046);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x043b0dc4);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf2a1fa8b);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 15200000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0001fffe);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffc0012);
		cx25840_write4(client, DIF_BPF_COEFF45, 0xfffbffce);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x003f0033);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff4e003f);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x0106feb6);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xff6e0276);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xfeddfd56);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x03b000cc);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfa740329);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x04bff87f);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xffaa095d);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xf99ef995);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0bf9fed8);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf3590a1f);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x06d2f05e);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x03700e1b);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf2e4fa58);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 15300000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x0001ffff);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff9000f);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0009ffc8);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x00250059);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff5effee);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x0132ff10);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfee30265);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0xffaafccf);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x031101eb);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfa6001e8);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x05bdf92f);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfe1b09b6);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfafaf852);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0b7e0055);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf2d50929);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x07d3f086);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x02a30e6c);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf329fa24);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 15400000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00010001);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff80009);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0015ffca);
		cx25840_write4(client, DIF_BPF_COEFF67, 0x00050074);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xff81ff9f);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x013dff82);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe710221);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x007cfc80);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x024102ed);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfa940090);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0680fa1e);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfc9b09cd);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfc73f736);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0ad501d0);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf2740820);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x08c9f0bd);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x01d40eb9);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf371f9f1);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 15500000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff80002);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x001effd5);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffe5007f);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xffb4ff5b);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x01280000);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe2401b0);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x0146fc70);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x014d03c6);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfb10ff32);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0701fb41);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xfb3709a1);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xfe00f644);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x0a000345);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf2350708);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x09b2f104);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x01050eff);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf3baf9be);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 15600000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfff9fffb);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0022ffe6);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffc9007a);
		cx25840_write4(client, DIF_BPF_COEFF89, 0xfff0ff29);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00f2007e);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe01011b);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x01f6fc9e);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0x00440467);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfbccfdde);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0738fc90);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf9f70934);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0xff99f582);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x090204b0);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf21a05e1);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0a8df15a);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0x00340f41);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf405f98b);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 15700000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0xfffcfff4);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x0020fffa);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffb40064);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x002fff11);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x00a400f0);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe0d006e);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x0281fd09);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xff3604c9);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfcbffca2);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0726fdfe);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf8e80888);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x0134f4f3);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x07e1060c);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf22304af);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0b59f1be);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xff640f7d);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf452f959);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 15800000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0x00000003);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0000fff0);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x001a0010);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffaa0041);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x0067ff13);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0x0043014a);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfe46ffb9);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02dbfda8);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfe3504e5);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xfddcfb8d);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x06c9ff7e);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf81107a2);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x02c9f49a);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x069f0753);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf2500373);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0c14f231);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xfe930fb3);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf4a1f927);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 15900000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xffff0002);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0003ffee);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x000f0023);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffac0016);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x0093ff31);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xffdc0184);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xfea6ff09);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02fdfe70);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfd5104ba);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0xff15faac);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x06270103);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf7780688);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x044df479);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x05430883);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf2a00231);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0cbef2b2);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xfdc40fe3);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf4f2f8f5);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;

	case 16000000:
		cx25840_write4(client, DIF_BPF_COEFF01, 0xffff0001);
		cx25840_write4(client, DIF_BPF_COEFF23, 0x0006ffef);
		cx25840_write4(client, DIF_BPF_COEFF45, 0x00020031);
		cx25840_write4(client, DIF_BPF_COEFF67, 0xffbaffe8);
		cx25840_write4(client, DIF_BPF_COEFF89, 0x00adff66);
		cx25840_write4(client, DIF_BPF_COEFF1011, 0xff790198);
		cx25840_write4(client, DIF_BPF_COEFF1213, 0xff26fe6e);
		cx25840_write4(client, DIF_BPF_COEFF1415, 0x02e5ff55);
		cx25840_write4(client, DIF_BPF_COEFF1617, 0xfc99044a);
		cx25840_write4(client, DIF_BPF_COEFF1819, 0x005bfa09);
		cx25840_write4(client, DIF_BPF_COEFF2021, 0x0545027f);
		cx25840_write4(client, DIF_BPF_COEFF2223, 0xf7230541);
		cx25840_write4(client, DIF_BPF_COEFF2425, 0x05b8f490);
		cx25840_write4(client, DIF_BPF_COEFF2627, 0x03d20997);
		cx25840_write4(client, DIF_BPF_COEFF2829, 0xf31300eb);
		cx25840_write4(client, DIF_BPF_COEFF3031, 0x0d55f341);
		cx25840_write4(client, DIF_BPF_COEFF3233, 0xfcf6100e);
		cx25840_write4(client, DIF_BPF_COEFF3435, 0xf544f8c3);
		cx25840_write4(client, DIF_BPF_COEFF36, 0x110d0000);
		break;
	}
}

static void cx23888_std_setup(struct i2c_client *client)
{
	struct cx25840_state *state = to_state(i2c_get_clientdata(client));
	v4l2_std_id std = state->std;
	u32 ifHz;

	cx25840_write4(client, 0x478, 0x6628021F);
	cx25840_write4(client, 0x400, 0x0);
	cx25840_write4(client, 0x4b4, 0x20524030);
	cx25840_write4(client, 0x47c, 0x010a8263);

	if (std & V4L2_STD_NTSC) {
		v4l_dbg(1, cx25840_debug, client, "%s() Selecting NTSC",
			__func__);

		/* Horiz / vert timing */
		cx25840_write4(client, 0x428, 0x1e1e601a);
		cx25840_write4(client, 0x424, 0x5b2d007a);

		/* DIF NTSC */
		cx25840_write4(client, 0x304, 0x6503bc0c);
		cx25840_write4(client, 0x308, 0xbd038c85);
		cx25840_write4(client, 0x30c, 0x1db4640a);
		cx25840_write4(client, 0x310, 0x00008800);
		cx25840_write4(client, 0x314, 0x44400400);
		cx25840_write4(client, 0x32c, 0x0c800800);
		cx25840_write4(client, 0x330, 0x27000100);
		cx25840_write4(client, 0x334, 0x1f296e1f);
		cx25840_write4(client, 0x338, 0x009f50c1);
		cx25840_write4(client, 0x340, 0x1befbf06);
		cx25840_write4(client, 0x344, 0x000035e8);

		/* DIF I/F */
		ifHz = 5400000;

	} else {
		v4l_dbg(1, cx25840_debug, client, "%s() Selecting PAL-BG",
			__func__);

		/* Horiz / vert timing */
		cx25840_write4(client, 0x428, 0x28244024);
		cx25840_write4(client, 0x424, 0x5d2d0084);

		/* DIF */
		cx25840_write4(client, 0x304, 0x6503bc0c);
		cx25840_write4(client, 0x308, 0xbd038c85);
		cx25840_write4(client, 0x30c, 0x1db4640a);
		cx25840_write4(client, 0x310, 0x00008800);
		cx25840_write4(client, 0x314, 0x44400600);
		cx25840_write4(client, 0x32c, 0x0c800800);
		cx25840_write4(client, 0x330, 0x27000100);
		cx25840_write4(client, 0x334, 0x213530ec);
		cx25840_write4(client, 0x338, 0x00a65ba8);
		cx25840_write4(client, 0x340, 0x1befbf06);
		cx25840_write4(client, 0x344, 0x000035e8);

		/* DIF I/F */
		ifHz = 6000000;
	}

	cx23885_dif_setup(client, ifHz);

	/* Explicitly ensure the inputs are reconfigured after
	 * a standard change.
	 */
	set_input(client, state->vid_input, state->aud_input);
}

/* ----------------------------------------------------------------------- */

static const struct v4l2_ctrl_ops cx25840_ctrl_ops = {
	.s_ctrl = cx25840_s_ctrl,
};

static const struct v4l2_subdev_core_ops cx25840_core_ops = {
	.log_status = cx25840_log_status,
	.g_chip_ident = cx25840_g_chip_ident,
	.g_ctrl = v4l2_subdev_g_ctrl,
	.s_ctrl = v4l2_subdev_s_ctrl,
	.s_ext_ctrls = v4l2_subdev_s_ext_ctrls,
	.try_ext_ctrls = v4l2_subdev_try_ext_ctrls,
	.g_ext_ctrls = v4l2_subdev_g_ext_ctrls,
	.queryctrl = v4l2_subdev_queryctrl,
	.querymenu = v4l2_subdev_querymenu,
	.s_std = cx25840_s_std,
	.g_std = cx25840_g_std,
	.reset = cx25840_reset,
	.load_fw = cx25840_load_fw,
	.s_io_pin_config = common_s_io_pin_config,
#ifdef CONFIG_VIDEO_ADV_DEBUG
	.g_register = cx25840_g_register,
	.s_register = cx25840_s_register,
#endif
	.interrupt_service_routine = cx25840_irq_handler,
};

static const struct v4l2_subdev_tuner_ops cx25840_tuner_ops = {
	.s_frequency = cx25840_s_frequency,
	.s_radio = cx25840_s_radio,
	.g_tuner = cx25840_g_tuner,
	.s_tuner = cx25840_s_tuner,
};

static const struct v4l2_subdev_audio_ops cx25840_audio_ops = {
	.s_clock_freq = cx25840_s_clock_freq,
	.s_routing = cx25840_s_audio_routing,
	.s_stream = cx25840_s_audio_stream,
};

static const struct v4l2_subdev_video_ops cx25840_video_ops = {
	.s_routing = cx25840_s_video_routing,
	.s_mbus_fmt = cx25840_s_mbus_fmt,
	.s_stream = cx25840_s_stream,
	.g_input_status = cx25840_g_input_status,
};

static const struct v4l2_subdev_vbi_ops cx25840_vbi_ops = {
	.decode_vbi_line = cx25840_decode_vbi_line,
	.s_raw_fmt = cx25840_s_raw_fmt,
	.s_sliced_fmt = cx25840_s_sliced_fmt,
	.g_sliced_fmt = cx25840_g_sliced_fmt,
};

static const struct v4l2_subdev_ops cx25840_ops = {
	.core = &cx25840_core_ops,
	.tuner = &cx25840_tuner_ops,
	.audio = &cx25840_audio_ops,
	.video = &cx25840_video_ops,
	.vbi = &cx25840_vbi_ops,
	.ir = &cx25840_ir_ops,
};

/* ----------------------------------------------------------------------- */

static u32 get_cx2388x_ident(struct i2c_client *client)
{
	u32 ret;

	/* Come out of digital power down */
	cx25840_write(client, 0x000, 0);

	/* Detecting whether the part is cx23885/7/8 is more
	 * difficult than it needs to be. No ID register. Instead we
	 * probe certain registers indicated in the datasheets to look
	 * for specific defaults that differ between the silicon designs. */

	/* It's either 885/7 if the IR Tx Clk Divider register exists */
	if (cx25840_read4(client, 0x204) & 0xffff) {
		/* CX23885 returns bogus repetitive byte values for the DIF,
		 * which doesn't exist for it. (Ex. 8a8a8a8a or 31313131) */
		ret = cx25840_read4(client, 0x300);
		if (((ret & 0xffff0000) >> 16) == (ret & 0xffff)) {
			/* No DIF */
			ret = V4L2_IDENT_CX23885_AV;
		} else {
			/* CX23887 has a broken DIF, but the registers
			 * appear valid (but unused), good enough to detect. */
			ret = V4L2_IDENT_CX23887_AV;
		}
	} else if (cx25840_read4(client, 0x300) & 0x0fffffff) {
		/* DIF PLL Freq Word reg exists; chip must be a CX23888 */
		ret = V4L2_IDENT_CX23888_AV;
	} else {
		v4l_err(client, "Unable to detect h/w, assuming cx23887\n");
		ret = V4L2_IDENT_CX23887_AV;
	}

	/* Back into digital power down */
	cx25840_write(client, 0x000, 2);
	return ret;
}

static int cx25840_probe(struct i2c_client *client,
			 const struct i2c_device_id *did)
{
	struct cx25840_state *state;
	struct v4l2_subdev *sd;
	int default_volume;
	u32 id = V4L2_IDENT_NONE;
	u16 device_id;

	/* Check if the adapter supports the needed features */
	if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
		return -EIO;

	v4l_dbg(1, cx25840_debug, client, "detecting cx25840 client on address 0x%x\n", client->addr << 1);

	device_id = cx25840_read(client, 0x101) << 8;
	device_id |= cx25840_read(client, 0x100);
	v4l_dbg(1, cx25840_debug, client, "device_id = 0x%04x\n", device_id);

	/* The high byte of the device ID should be
	 * 0x83 for the cx2583x and 0x84 for the cx2584x */
	if ((device_id & 0xff00) == 0x8300) {
		id = V4L2_IDENT_CX25836 + ((device_id >> 4) & 0xf) - 6;
	} else if ((device_id & 0xff00) == 0x8400) {
		id = V4L2_IDENT_CX25840 + ((device_id >> 4) & 0xf);
	} else if (device_id == 0x0000) {
		id = get_cx2388x_ident(client);
	} else if ((device_id & 0xfff0) == 0x5A30) {
		/* The CX23100 (0x5A3C = 23100) doesn't have an A/V decoder */
		id = V4L2_IDENT_CX2310X_AV;
	} else if ((device_id & 0xff) == (device_id >> 8)) {
		v4l_err(client,
			"likely a confused/unresponsive cx2388[578] A/V decoder"
			" found @ 0x%x (%s)\n",
			client->addr << 1, client->adapter->name);
		v4l_err(client, "A method to reset it from the cx25840 driver"
			" software is not known at this time\n");
		return -ENODEV;
	} else {
		v4l_dbg(1, cx25840_debug, client, "cx25840 not found\n");
		return -ENODEV;
	}

	state = kzalloc(sizeof(struct cx25840_state), GFP_KERNEL);
	if (state == NULL)
		return -ENOMEM;

	sd = &state->sd;
	v4l2_i2c_subdev_init(sd, client, &cx25840_ops);

	switch (id) {
	case V4L2_IDENT_CX23885_AV:
		v4l_info(client, "cx23885 A/V decoder found @ 0x%x (%s)\n",
			 client->addr << 1, client->adapter->name);
		break;
	case V4L2_IDENT_CX23887_AV:
		v4l_info(client, "cx23887 A/V decoder found @ 0x%x (%s)\n",
			 client->addr << 1, client->adapter->name);
		break;
	case V4L2_IDENT_CX23888_AV:
		v4l_info(client, "cx23888 A/V decoder found @ 0x%x (%s)\n",
			 client->addr << 1, client->adapter->name);
		break;
	case V4L2_IDENT_CX2310X_AV:
		v4l_info(client, "cx%d A/V decoder found @ 0x%x (%s)\n",
			 device_id, client->addr << 1, client->adapter->name);
		break;
	case V4L2_IDENT_CX25840:
	case V4L2_IDENT_CX25841:
	case V4L2_IDENT_CX25842:
	case V4L2_IDENT_CX25843:
		/* Note: revision '(device_id & 0x0f) == 2' was never built. The
		   marking skips from 0x1 == 22 to 0x3 == 23. */
		v4l_info(client, "cx25%3x-2%x found @ 0x%x (%s)\n",
			 (device_id & 0xfff0) >> 4,
			 (device_id & 0x0f) < 3 ? (device_id & 0x0f) + 1
						: (device_id & 0x0f),
			 client->addr << 1, client->adapter->name);
		break;
	case V4L2_IDENT_CX25836:
	case V4L2_IDENT_CX25837:
	default:
		v4l_info(client, "cx25%3x-%x found @ 0x%x (%s)\n",
			 (device_id & 0xfff0) >> 4, device_id & 0x0f,
			 client->addr << 1, client->adapter->name);
		break;
	}

	state->c = client;
	state->vid_input = CX25840_COMPOSITE7;
	state->aud_input = CX25840_AUDIO8;
	state->audclk_freq = 48000;
	state->audmode = V4L2_TUNER_MODE_LANG1;
	state->vbi_line_offset = 8;
	state->id = id;
	state->rev = device_id;
	v4l2_ctrl_handler_init(&state->hdl, 9);
	v4l2_ctrl_new_std(&state->hdl, &cx25840_ctrl_ops,
			V4L2_CID_BRIGHTNESS, 0, 255, 1, 128);
	v4l2_ctrl_new_std(&state->hdl, &cx25840_ctrl_ops,
			V4L2_CID_CONTRAST, 0, 127, 1, 64);
	v4l2_ctrl_new_std(&state->hdl, &cx25840_ctrl_ops,
			V4L2_CID_SATURATION, 0, 127, 1, 64);
	v4l2_ctrl_new_std(&state->hdl, &cx25840_ctrl_ops,
			V4L2_CID_HUE, -128, 127, 1, 0);
	if (!is_cx2583x(state)) {
		default_volume = cx25840_read(client, 0x8d4);
		/*
		 * Enforce the legacy PVR-350/MSP3400 to PVR-150/CX25843 volume
		 * scale mapping limits to avoid -ERANGE errors when
		 * initializing the volume control
		 */
		if (default_volume > 228) {
			/* Bottom out at -96 dB, v4l2 vol range 0x2e00-0x2fff */
			default_volume = 228;
			cx25840_write(client, 0x8d4, 228);
		}
		else if (default_volume < 20) {
			/* Top out at + 8 dB, v4l2 vol range 0xfe00-0xffff */
			default_volume = 20;
			cx25840_write(client, 0x8d4, 20);
		}
		default_volume = (((228 - default_volume) >> 1) + 23) << 9;

		state->volume = v4l2_ctrl_new_std(&state->hdl,
			&cx25840_audio_ctrl_ops, V4L2_CID_AUDIO_VOLUME,
			0, 65535, 65535 / 100, default_volume);
		state->mute = v4l2_ctrl_new_std(&state->hdl,
			&cx25840_audio_ctrl_ops, V4L2_CID_AUDIO_MUTE,
			0, 1, 1, 0);
		v4l2_ctrl_new_std(&state->hdl, &cx25840_audio_ctrl_ops,
			V4L2_CID_AUDIO_BALANCE,
			0, 65535, 65535 / 100, 32768);
		v4l2_ctrl_new_std(&state->hdl, &cx25840_audio_ctrl_ops,
			V4L2_CID_AUDIO_BASS,
			0, 65535, 65535 / 100, 32768);
		v4l2_ctrl_new_std(&state->hdl, &cx25840_audio_ctrl_ops,
			V4L2_CID_AUDIO_TREBLE,
			0, 65535, 65535 / 100, 32768);
	}
	sd->ctrl_handler = &state->hdl;
	if (state->hdl.error) {
		int err = state->hdl.error;

		v4l2_ctrl_handler_free(&state->hdl);
		kfree(state);
		return err;
	}
	if (!is_cx2583x(state))
		v4l2_ctrl_cluster(2, &state->volume);
	v4l2_ctrl_handler_setup(&state->hdl);

	if (client->dev.platform_data) {
		struct cx25840_platform_data *pdata = client->dev.platform_data;

		state->pvr150_workaround = pdata->pvr150_workaround;
	}

	cx25840_ir_probe(sd);
	return 0;
}

static int cx25840_remove(struct i2c_client *client)
{
	struct v4l2_subdev *sd = i2c_get_clientdata(client);
	struct cx25840_state *state = to_state(sd);

	cx25840_ir_remove(sd);
	v4l2_device_unregister_subdev(sd);
	v4l2_ctrl_handler_free(&state->hdl);
	kfree(state);
	return 0;
}

static const struct i2c_device_id cx25840_id[] = {
	{ "cx25840", 0 },
	{ }
};
MODULE_DEVICE_TABLE(i2c, cx25840_id);

static struct i2c_driver cx25840_driver = {
	.driver = {
		.owner	= THIS_MODULE,
		.name	= "cx25840",
	},
	.probe		= cx25840_probe,
	.remove		= cx25840_remove,
	.id_table	= cx25840_id,
};

module_i2c_driver(cx25840_driver);
