Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d4e76681 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

V4L/DVB (6427): Some cleanups at tuner-xc2028 driver

parent 2e4160ca
Loading
Loading
Loading
Loading
+10 −31
Original line number Diff line number Diff line
@@ -314,28 +314,11 @@ static void generic_set_tv_freq(struct i2c_client *c, u32 freq /* in Hz */,
	struct tuner  *t  = i2c_get_clientdata(c);
	u32 div, offset = 0;

	printk("xc3028: should set frequency %d kHz)\n", freq / 1000);

	if (check_firmware(c, new_mode, bandwidth)<0)
		return;

	if(new_mode == T_DIGITAL_TV) {
		switch(bandwidth) {
			case BANDWIDTH_8_MHZ:
				offset = 2750000;
			break;

			case BANDWIDTH_7_MHZ:
				offset = 2750000;
			break;

			case BANDWIDTH_6_MHZ:
			default:
				printk(KERN_ERR "xc2028: bandwidth not implemented!\n");
		}
	}
	/* HACK: It seems that specific firmware need to be reloaded
	   when freq is changed */
	struct xc2028_data	*xc2028 = t->priv;

	div = (freq - offset + DIV/2)/DIV;
	xc2028->firm_type=0;

	/* Reset GPIO 1 */
	if (t->tuner_callback) {
@@ -345,17 +328,16 @@ static void generic_set_tv_freq(struct i2c_client *c, u32 freq /* in Hz */,
			return;
	}
	msleep(10);
	printk("xc3028: should set frequency %d kHz)\n", freq / 1000);

	char *name;
	if (check_firmware(c, new_mode, bandwidth)<0)
		return;

	rc = load_firmware(c,firmware_INIT1);
	if(new_mode == T_DIGITAL_TV)
		offset = 2750000;

	if (t->std & V4L2_STD_MN)
		name=firmware_MN;
	else
		name=firmware_DK;
	div = (freq - offset + DIV/2)/DIV;

	rc = load_firmware(c,name);
	/* CMD= Set frequency */
	send_seq(c, {0x00, 0x02, 0x00, 0x00});
	if (t->tuner_callback) {
@@ -366,8 +348,6 @@ static void generic_set_tv_freq(struct i2c_client *c, u32 freq /* in Hz */,
	}

	msleep(10);
//	send_seq(c, {0x00, 0x00, 0x10, 0xd0, 0x00});
//	msleep(100);

	buf[0]= 0xff & (div>>24);
	buf[1]= 0xff & (div>>16);
@@ -383,7 +363,6 @@ static void generic_set_tv_freq(struct i2c_client *c, u32 freq /* in Hz */,
	printk("divider= %02x %02x %02x %02x (freq=%d.%02d)\n",
		 buf[1],buf[2],buf[3],buf[4],
		 freq / 16, freq % 16 * 100 / 16);
//	printk("signal=%d\n",xc2028_signal(c));
}