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

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



V4L/DVB (3345): Fixes some bad global variables


- Debug global var is already used inside kernel.
- v4l_dbg now expects the debug var
- global vars inside msp34xx renamed to msp_*

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent b2a17e47
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -75,13 +75,13 @@ int bt832_hexdump(struct i2c_client *i2c_client_s, unsigned char *buf)

	if(debug>1) {
		int i;
		v4l_dbg(2,i2c_client_s,"hexdump:");
		v4l_dbg(2, debug,i2c_client_s,"hexdump:");
		for(i=1;i<65;i++) {
			if(i!=1) {
				if(((i-1)%8)==0) printk(" ");
				if(((i-1)%16)==0) {
					printk("\n");
					v4l_dbg(2,i2c_client_s,"hexdump:");
					v4l_dbg(2, debug,i2c_client_s,"hexdump:");
				}
			}
			printk(" %02x",buf[i]);
+2 −2
Original line number Diff line number Diff line
@@ -155,7 +155,7 @@ static int cs53l32a_attach(struct i2c_adapter *adapter, int address, int kind)
	for (i = 1; i <= 7; i++) {
		u8 v = cs53l32a_read(client, i);

		v4l_dbg(1, client, "Read Reg %d %02x\n", i, v);
		v4l_dbg(1, debug, client, "Read Reg %d %02x\n", i, v);
	}

	/* Set cs53l32a internal register for Adaptec 2010/2410 setup */
@@ -173,7 +173,7 @@ static int cs53l32a_attach(struct i2c_adapter *adapter, int address, int kind)
	for (i = 1; i <= 7; i++) {
		u8 v = cs53l32a_read(client, i);

		v4l_dbg(1, client, "Read Reg %d %02x\n", i, v);
		v4l_dbg(1, debug, client, "Read Reg %d %02x\n", i, v);
	}

	i2c_attach_client(client);
+6 −6
Original line number Diff line number Diff line
@@ -265,7 +265,7 @@ static int set_input(struct i2c_client *client, enum cx25840_video_input vid_inp
			   vid_input <= CX25840_COMPOSITE8);
	u8 reg;

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

	if (is_composite) {
@@ -533,7 +533,7 @@ static int set_v4lfmt(struct i2c_client *client, struct v4l2_format *fmt)
		else
			filter = 3;

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

		/* HSCALE=HSC */
@@ -687,13 +687,13 @@ static int cx25840_command(struct i2c_client *client, unsigned int cmd,
		return cx25840_audio(client, cmd, arg);

	case VIDIOC_STREAMON:
		v4l_dbg(1, client, "enable output\n");
		v4l_dbg(1, debug, client, "enable output\n");
		cx25840_write(client, 0x115, 0x8c);
		cx25840_write(client, 0x116, 0x07);
		break;

	case VIDIOC_STREAMOFF:
		v4l_dbg(1, client, "disable output\n");
		v4l_dbg(1, debug, client, "disable output\n");
		cx25840_write(client, 0x115, 0x00);
		cx25840_write(client, 0x116, 0x00);
		break;
@@ -871,7 +871,7 @@ static int cx25840_detect_client(struct i2c_adapter *adapter, int address,
	client->driver = &i2c_driver_cx25840;
	snprintf(client->name, sizeof(client->name) - 1, "cx25840");

	v4l_dbg(1, client, "detecting cx25840 client on address 0x%x\n", address << 1);
	v4l_dbg(1, debug, client, "detecting cx25840 client on address 0x%x\n", address << 1);

	device_id = cx25840_read(client, 0x101) << 8;
	device_id |= cx25840_read(client, 0x100);
@@ -879,7 +879,7 @@ static int cx25840_detect_client(struct i2c_adapter *adapter, int address,
	/* The high byte of the device ID should be
	 * 0x84 if chip is present */
	if ((device_id & 0xff00) != 0x8400) {
		v4l_dbg(1, client, "cx25840 not found\n");
		v4l_dbg(1, debug, client, "cx25840 not found\n");
		kfree(client);
		return 0;
	}
+32 −32
Original line number Diff line number Diff line
@@ -66,26 +66,26 @@ MODULE_LICENSE("GPL");

/* module parameters */
static int opmode   = OPMODE_AUTO;
int debug    = 0;    /* debug output */
int once     = 0;    /* no continous stereo monitoring */
int amsound  = 0;    /* hard-wire AM sound at 6.5 Hz (france),
int msp_debug    = 0;    /* msp_debug output */
int msp_once     = 0;    /* no continous stereo monitoring */
int msp_amsound  = 0;    /* hard-wire AM sound at 6.5 Hz (france),
			       the autoscan seems work well only with FM... */
int standard = 1;    /* Override auto detect of audio standard, if needed. */
int dolby    = 0;
int msp_standard = 1;    /* Override auto detect of audio msp_standard, if needed. */
int msp_dolby    = 0;

int stereo_threshold = 0x190; /* a2 threshold for stereo/bilingual
int msp_stereo_thresh = 0x190; /* a2 threshold for stereo/bilingual
					(msp34xxg only) 0x00a0-0x03c0 */

/* read-only */
module_param(opmode,           int, 0444);

/* read-write */
module_param(once,             bool, 0644);
module_param(debug,            int, 0644);
module_param(stereo_threshold, int, 0644);
module_param(standard,         int, 0644);
module_param(amsound,          bool, 0644);
module_param(dolby,            bool, 0644);
module_param_named(once,msp_once,                      bool, 0644);
module_param_named(debug,msp_debug,                    int,  0644);
module_param_named(stereo_threshold,msp_stereo_thresh, int,  0644);
module_param_named(standard,msp_standard,              int,  0644);
module_param_named(amsound,msp_amsound,                bool, 0644);
module_param_named(dolby,msp_dolby,                    bool, 0644);

MODULE_PARM_DESC(opmode, "Forces a MSP3400 opmode. 0=Manual, 1=Autodetect, 2=Autodetect and autoselect");
MODULE_PARM_DESC(once, "No continuous stereo monitoring");
@@ -127,7 +127,7 @@ int msp_reset(struct i2c_client *client)
		{ client->addr, I2C_M_RD, 2, read  },
	};

	v4l_dbg(3, client, "msp_reset\n");
	v4l_dbg(3, msp_debug, client, "msp_reset\n");
	if (i2c_transfer(client->adapter, &reset[0], 1) != 1 ||
	    i2c_transfer(client->adapter, &reset[1], 1) != 1 ||
	    i2c_transfer(client->adapter, test, 2) != 2) {
@@ -165,7 +165,7 @@ static int msp_read(struct i2c_client *client, int dev, int addr)
		return -1;
	}
	retval = read[0] << 8 | read[1];
	v4l_dbg(3, client, "msp_read(0x%x, 0x%x): 0x%x\n", dev, addr, retval);
	v4l_dbg(3, msp_debug, client, "msp_read(0x%x, 0x%x): 0x%x\n", dev, addr, retval);
	return retval;
}

@@ -190,7 +190,7 @@ static int msp_write(struct i2c_client *client, int dev, int addr, int val)
	buffer[3] = val  >> 8;
	buffer[4] = val  &  0xff;

	v4l_dbg(3, client, "msp_write(0x%x, 0x%x, 0x%x)\n", dev, addr, val);
	v4l_dbg(3, msp_debug, client, "msp_write(0x%x, 0x%x, 0x%x)\n", dev, addr, val);
	for (err = 0; err < 3; err++) {
		if (i2c_master_send(client, buffer, 5) == 5)
			break;
@@ -273,7 +273,7 @@ void msp_set_scart(struct i2c_client *client, int in, int out)
	} else
		state->acb = 0xf60; /* Mute Input and SCART 1 Output */

	v4l_dbg(1, client, "scart switch: %s => %d (ACB=0x%04x)\n",
	v4l_dbg(1, msp_debug, client, "scart switch: %s => %d (ACB=0x%04x)\n",
						scart_names[in], out, state->acb);
	msp_write_dsp(client, 0x13, state->acb);

@@ -285,7 +285,7 @@ void msp_set_mute(struct i2c_client *client)
{
	struct msp_state *state = i2c_get_clientdata(client);

	v4l_dbg(1, client, "mute audio\n");
	v4l_dbg(1, msp_debug, client, "mute audio\n");
	msp_write_dsp(client, 0x0000, 0);
	msp_write_dsp(client, 0x0007, 1);
	if (state->has_scart2_out_volume)
@@ -303,7 +303,7 @@ void msp_set_audio(struct i2c_client *client)
	if (!state->muted)
		val = (state->volume * 0x7f / 65535) << 8;

	v4l_dbg(1, client, "mute=%s volume=%d\n",
	v4l_dbg(1, msp_debug, client, "mute=%s volume=%d\n",
		state->muted ? "on" : "off", state->volume);

	msp_write_dsp(client, 0x0000, val);
@@ -321,7 +321,7 @@ void msp_set_audio(struct i2c_client *client)
	treble = ((state->treble - 32768) * 0x60 / 65535) << 8;
	loudness = state->loudness ? ((5 * 4) << 8) : 0;

	v4l_dbg(1, client, "balance=%d bass=%d treble=%d loudness=%d\n",
	v4l_dbg(1, msp_debug, client, "balance=%d bass=%d treble=%d loudness=%d\n",
		state->balance, state->bass, state->treble, state->loudness);

	msp_write_dsp(client, 0x0001, bal << 8);
@@ -341,12 +341,12 @@ int msp_modus(struct i2c_client *client)
	struct msp_state *state = i2c_get_clientdata(client);

	if (state->radio) {
		v4l_dbg(1, client, "video mode selected to Radio\n");
		v4l_dbg(1, msp_debug, client, "video mode selected to Radio\n");
		return 0x0003;
	}

	if (state->v4l2_std & V4L2_STD_PAL) {
		v4l_dbg(1, client, "video mode selected to PAL\n");
		v4l_dbg(1, msp_debug, client, "video mode selected to PAL\n");

#if 1
		/* experimental: not sure this works with all chip versions */
@@ -357,11 +357,11 @@ int msp_modus(struct i2c_client *client)
#endif
	}
	if (state->v4l2_std & V4L2_STD_NTSC) {
		v4l_dbg(1, client, "video mode selected to NTSC\n");
		v4l_dbg(1, msp_debug, client, "video mode selected to NTSC\n");
		return 0x2003;
	}
	if (state->v4l2_std & V4L2_STD_SECAM) {
		v4l_dbg(1, client, "video mode selected to SECAM\n");
		v4l_dbg(1, msp_debug, client, "video mode selected to SECAM\n");
		return 0x0003;
	}
	return 0x0003;
@@ -619,7 +619,7 @@ static int msp_command(struct i2c_client *client, unsigned int cmd, void *arg)
	u16 *sarg = arg;
	int scart = 0;

	if (debug >= 2)
	if (msp_debug >= 2)
		v4l_i2c_print_ioctl(client, cmd);

	switch (cmd) {
@@ -666,7 +666,7 @@ static int msp_command(struct i2c_client *client, unsigned int cmd, void *arg)
		if (state->radio)
			return 0;
		state->radio = 1;
		v4l_dbg(1, client, "switching to radio mode\n");
		v4l_dbg(1, msp_debug, client, "switching to radio mode\n");
		state->watch_stereo = 0;
		switch (state->opmode) {
		case OPMODE_MANUAL:
@@ -937,7 +937,7 @@ static int msp_command(struct i2c_client *client, unsigned int cmd, void *arg)
		if (a->index < 0 || a->index > 2)
			return -EINVAL;

		v4l_dbg(1, client, "Setting audio out on msp34xx to input %i\n", a->index);
		v4l_dbg(1, msp_debug, client, "Setting audio out on msp34xx to input %i\n", a->index);
		msp_set_scart(client, state->in_scart, a->index + 1);

		break;
@@ -947,7 +947,7 @@ static int msp_command(struct i2c_client *client, unsigned int cmd, void *arg)
	{
		u32 *a = (u32 *)arg;

		v4l_dbg(1, client, "Setting I2S speed to %d\n", *a);
		v4l_dbg(1, msp_debug, client, "Setting I2S speed to %d\n", *a);

		switch (*a) {
			case 1024000:
@@ -1041,7 +1041,7 @@ static int msp_suspend(struct device * dev, pm_message_t state)
{
	struct i2c_client *client = container_of(dev, struct i2c_client, dev);

	v4l_dbg(1, client, "suspend\n");
	v4l_dbg(1, msp_debug, client, "suspend\n");
	msp_reset(client);
	return 0;
}
@@ -1050,7 +1050,7 @@ static int msp_resume(struct device * dev)
{
	struct i2c_client *client = container_of(dev, struct i2c_client, dev);

	v4l_dbg(1, client, "resume\n");
	v4l_dbg(1, msp_debug, client, "resume\n");
	msp_wake_thread(client);
	return 0;
}
@@ -1080,7 +1080,7 @@ static int msp_attach(struct i2c_adapter *adapter, int address, int kind)
	snprintf(client->name, sizeof(client->name) - 1, "msp3400");

	if (msp_reset(client) == -1) {
		v4l_dbg(1, client, "msp3400 not found\n");
		v4l_dbg(1, msp_debug, client, "msp3400 not found\n");
		kfree(client);
		return -1;
	}
@@ -1107,9 +1107,9 @@ static int msp_attach(struct i2c_adapter *adapter, int address, int kind)
	state->rev1 = msp_read_dsp(client, 0x1e);
	if (state->rev1 != -1)
		state->rev2 = msp_read_dsp(client, 0x1f);
	v4l_dbg(1, client, "rev1=0x%04x, rev2=0x%04x\n", state->rev1, state->rev2);
	v4l_dbg(1, msp_debug, client, "rev1=0x%04x, rev2=0x%04x\n", state->rev1, state->rev2);
	if (state->rev1 == -1 || (state->rev1 == 0 && state->rev2 == 0)) {
		v4l_dbg(1, client, "not an msp3400 (cannot read chip version)\n");
		v4l_dbg(1, msp_debug, client, "not an msp3400 (cannot read chip version)\n");
		kfree(state);
		kfree(client);
		return -1;
+62 −62
Original line number Diff line number Diff line
@@ -168,7 +168,7 @@ void msp3400c_setmode(struct i2c_client *client, int type)
	struct msp_state *state = i2c_get_clientdata(client);
	int i;

	v4l_dbg(1, client, "setmode: %d\n", type);
	v4l_dbg(1, msp_debug, client, "setmode: %d\n", type);
	state->mode       = type;
	state->audmode    = V4L2_TUNER_MODE_MONO;
	state->rxsubchans = V4L2_TUNER_SUB_MONO;
@@ -191,7 +191,7 @@ void msp3400c_setmode(struct i2c_client *client, int type)

	msp_write_dem(client, 0x0056, 0); /*LOAD_REG_1/2*/

	if (dolby) {
	if (msp_dolby) {
		msp_write_dsp(client, 0x0008, 0x0520); /* I2S1 */
		msp_write_dsp(client, 0x0009, 0x0620); /* I2S2 */
		msp_write_dsp(client, 0x000b, msp3400c_init_data[type].dsp_src);
@@ -221,7 +221,7 @@ void msp3400c_setstereo(struct i2c_client *client, int mode)
		/* this method would break everything, let's make sure
		 * it's never called
		 */
		v4l_dbg(1, client, "setstereo called with mode=%d instead of set_source (ignored)\n",
		v4l_dbg(1, msp_debug, client, "setstereo called with mode=%d instead of set_source (ignored)\n",
		     mode);
		return;
	}
@@ -229,7 +229,7 @@ void msp3400c_setstereo(struct i2c_client *client, int mode)
	/* switch demodulator */
	switch (state->mode) {
	case MSP_MODE_FM_TERRA:
		v4l_dbg(1, client, "FM setstereo: %s\n", strmode[mode]);
		v4l_dbg(1, msp_debug, client, "FM setstereo: %s\n", strmode[mode]);
		msp3400c_setcarrier(client, state->second, state->main);
		switch (mode) {
		case V4L2_TUNER_MODE_STEREO:
@@ -243,7 +243,7 @@ void msp3400c_setstereo(struct i2c_client *client, int mode)
		}
		break;
	case MSP_MODE_FM_SAT:
		v4l_dbg(1, client, "SAT setstereo: %s\n", strmode[mode]);
		v4l_dbg(1, msp_debug, client, "SAT setstereo: %s\n", strmode[mode]);
		switch (mode) {
		case V4L2_TUNER_MODE_MONO:
			msp3400c_setcarrier(client, MSP_CARRIER(6.5), MSP_CARRIER(6.5));
@@ -262,24 +262,24 @@ void msp3400c_setstereo(struct i2c_client *client, int mode)
	case MSP_MODE_FM_NICAM1:
	case MSP_MODE_FM_NICAM2:
	case MSP_MODE_AM_NICAM:
		v4l_dbg(1, client, "NICAM setstereo: %s\n",strmode[mode]);
		v4l_dbg(1, msp_debug, client, "NICAM setstereo: %s\n",strmode[mode]);
		msp3400c_setcarrier(client,state->second,state->main);
		if (state->nicam_on)
			nicam=0x0100;
		break;
	case MSP_MODE_BTSC:
		v4l_dbg(1, client, "BTSC setstereo: %s\n",strmode[mode]);
		v4l_dbg(1, msp_debug, client, "BTSC setstereo: %s\n",strmode[mode]);
		nicam=0x0300;
		break;
	case MSP_MODE_EXTERN:
		v4l_dbg(1, client, "extern setstereo: %s\n",strmode[mode]);
		v4l_dbg(1, msp_debug, client, "extern setstereo: %s\n",strmode[mode]);
		nicam = 0x0200;
		break;
	case MSP_MODE_FM_RADIO:
		v4l_dbg(1, client, "FM-Radio setstereo: %s\n",strmode[mode]);
		v4l_dbg(1, msp_debug, client, "FM-Radio setstereo: %s\n",strmode[mode]);
		break;
	default:
		v4l_dbg(1, client, "mono setstereo\n");
		v4l_dbg(1, msp_debug, client, "mono setstereo\n");
		return;
	}

@@ -290,7 +290,7 @@ void msp3400c_setstereo(struct i2c_client *client, int mode)
		break;
	case V4L2_TUNER_MODE_MONO:
		if (state->mode == MSP_MODE_AM_NICAM) {
			v4l_dbg(1, client, "switching to AM mono\n");
			v4l_dbg(1, msp_debug, client, "switching to AM mono\n");
			/* AM mono decoding is handled by tuner, not MSP chip */
			/* SCART switching control register */
			msp_set_scart(client, SCART_MONO, 0);
@@ -304,9 +304,9 @@ void msp3400c_setstereo(struct i2c_client *client, int mode)
		src = 0x0010 | nicam;
		break;
	}
	v4l_dbg(1, client, "setstereo final source/matrix = 0x%x\n", src);
	v4l_dbg(1, msp_debug, client, "setstereo final source/matrix = 0x%x\n", src);

	if (dolby) {
	if (msp_dolby) {
		msp_write_dsp(client, 0x0008, 0x0520);
		msp_write_dsp(client, 0x0009, 0x0620);
		msp_write_dsp(client, 0x000a, src);
@@ -327,20 +327,20 @@ static void msp3400c_print_mode(struct i2c_client *client)
	struct msp_state *state = i2c_get_clientdata(client);

	if (state->main == state->second) {
		v4l_dbg(1, client, "mono sound carrier: %d.%03d MHz\n",
		v4l_dbg(1, msp_debug, client, "mono sound carrier: %d.%03d MHz\n",
		       state->main / 910000, (state->main / 910) % 1000);
	} else {
		v4l_dbg(1, client, "main sound carrier: %d.%03d MHz\n",
		v4l_dbg(1, msp_debug, client, "main sound carrier: %d.%03d MHz\n",
		       state->main / 910000, (state->main / 910) % 1000);
	}
	if (state->mode == MSP_MODE_FM_NICAM1 || state->mode == MSP_MODE_FM_NICAM2)
		v4l_dbg(1, client, "NICAM/FM carrier  : %d.%03d MHz\n",
		v4l_dbg(1, msp_debug, client, "NICAM/FM carrier  : %d.%03d MHz\n",
		       state->second / 910000, (state->second/910) % 1000);
	if (state->mode == MSP_MODE_AM_NICAM)
		v4l_dbg(1, client, "NICAM/AM carrier  : %d.%03d MHz\n",
		v4l_dbg(1, msp_debug, client, "NICAM/AM carrier  : %d.%03d MHz\n",
		       state->second / 910000, (state->second / 910) % 1000);
	if (state->mode == MSP_MODE_FM_TERRA && state->main != state->second) {
		v4l_dbg(1, client, "FM-stereo carrier : %d.%03d MHz\n",
		v4l_dbg(1, msp_debug, client, "FM-stereo carrier : %d.%03d MHz\n",
		       state->second / 910000, (state->second / 910) % 1000);
	}
}
@@ -360,7 +360,7 @@ int autodetect_stereo(struct i2c_client *client)
		val = msp_read_dsp(client, 0x18);
		if (val > 32767)
			val -= 65536;
		v4l_dbg(2, client, "stereo detect register: %d\n", val);
		v4l_dbg(2, msp_debug, client, "stereo detect register: %d\n", val);
		if (val > 4096) {
			rxsubchans = V4L2_TUNER_SUB_STEREO | V4L2_TUNER_SUB_MONO;
		} else if (val < -4096) {
@@ -374,7 +374,7 @@ int autodetect_stereo(struct i2c_client *client)
	case MSP_MODE_FM_NICAM2:
	case MSP_MODE_AM_NICAM:
		val = msp_read_dem(client, 0x23);
		v4l_dbg(2, client, "nicam sync=%d, mode=%d\n",
		v4l_dbg(2, msp_debug, client, "nicam sync=%d, mode=%d\n",
			val & 1, (val & 0x1e) >> 1);

		if (val & 1) {
@@ -407,7 +407,7 @@ int autodetect_stereo(struct i2c_client *client)
		break;
	case MSP_MODE_BTSC:
		val = msp_read_dem(client, 0x200);
		v4l_dbg(2, client, "status=0x%x (pri=%s, sec=%s, %s%s%s)\n",
		v4l_dbg(2, msp_debug, client, "status=0x%x (pri=%s, sec=%s, %s%s%s)\n",
			val,
			(val & 0x0002) ? "no"     : "yes",
			(val & 0x0004) ? "no"     : "yes",
@@ -421,13 +421,13 @@ int autodetect_stereo(struct i2c_client *client)
	}
	if (rxsubchans != state->rxsubchans) {
		update = 1;
		v4l_dbg(1, client, "watch: rxsubchans %d => %d\n",
		v4l_dbg(1, msp_debug, client, "watch: rxsubchans %d => %d\n",
			state->rxsubchans,rxsubchans);
		state->rxsubchans = rxsubchans;
	}
	if (newnicam != state->nicam_on) {
		update = 1;
		v4l_dbg(1, client, "watch: nicam %d => %d\n",
		v4l_dbg(1, msp_debug, client, "watch: nicam %d => %d\n",
			state->nicam_on,newnicam);
		state->nicam_on = newnicam;
	}
@@ -452,7 +452,7 @@ static void watch_stereo(struct i2c_client *client)
			msp3400c_setstereo(client, V4L2_TUNER_MODE_MONO);
	}

	if (once)
	if (msp_once)
		state->watch_stereo = 0;
}

@@ -464,21 +464,21 @@ int msp3400c_thread(void *data)
	int count, max1,max2,val1,val2, val,this;


	v4l_dbg(1, client, "msp3400 daemon started\n");
	v4l_dbg(1, msp_debug, client, "msp3400 daemon started\n");
	for (;;) {
		v4l_dbg(2, client, "msp3400 thread: sleep\n");
		v4l_dbg(2, msp_debug, client, "msp3400 thread: sleep\n");
		msp_sleep(state, -1);
		v4l_dbg(2, client, "msp3400 thread: wakeup\n");
		v4l_dbg(2, msp_debug, client, "msp3400 thread: wakeup\n");

	restart:
		v4l_dbg(1, client, "thread: restart scan\n");
		v4l_dbg(1, msp_debug, client, "thread: restart scan\n");
		state->restart = 0;
		if (kthread_should_stop())
			break;

		if (state->radio || MSP_MODE_EXTERN == state->mode) {
			/* no carrier scan, just unmute */
			v4l_dbg(1, client, "thread: no carrier scan\n");
			v4l_dbg(1, msp_debug, client, "thread: no carrier scan\n");
			msp_set_audio(client);
			continue;
		}
@@ -498,11 +498,11 @@ int msp3400c_thread(void *data)
		cd = msp3400c_carrier_detect_main;
		count = ARRAY_SIZE(msp3400c_carrier_detect_main);

		if (amsound && (state->v4l2_std & V4L2_STD_SECAM)) {
		if (msp_amsound && (state->v4l2_std & V4L2_STD_SECAM)) {
			/* autodetect doesn't work well with AM ... */
			max1 = 3;
			count = 0;
			v4l_dbg(1, client, "AM sound override\n");
			v4l_dbg(1, msp_debug, client, "AM sound override\n");
		}

		for (this = 0; this < count; this++) {
@@ -514,7 +514,7 @@ int msp3400c_thread(void *data)
				val -= 65536;
			if (val1 < val)
				val1 = val, max1 = this;
			v4l_dbg(1, client, "carrier1 val: %5d / %s\n", val,cd[this].name);
			v4l_dbg(1, msp_debug, client, "carrier1 val: %5d / %s\n", val,cd[this].name);
		}

		/* carrier detect pass #2 -- second (stereo) carrier */
@@ -535,7 +535,7 @@ int msp3400c_thread(void *data)
			break;
		}

		if (amsound && (state->v4l2_std & V4L2_STD_SECAM)) {
		if (msp_amsound && (state->v4l2_std & V4L2_STD_SECAM)) {
			/* autodetect doesn't work well with AM ... */
			cd = NULL;
			count = 0;
@@ -550,7 +550,7 @@ int msp3400c_thread(void *data)
				val -= 65536;
			if (val2 < val)
				val2 = val, max2 = this;
			v4l_dbg(1, client, "carrier2 val: %5d / %s\n", val,cd[this].name);
			v4l_dbg(1, msp_debug, client, "carrier2 val: %5d / %s\n", val,cd[this].name);
		}

		/* program the msp3400 according to the results */
@@ -627,7 +627,7 @@ int msp3400c_thread(void *data)
		/* unmute */
		msp_set_audio(client);

		if (debug)
		if (msp_debug)
			msp3400c_print_mode(client);

		/* monitor tv audio mode */
@@ -637,7 +637,7 @@ int msp3400c_thread(void *data)
			watch_stereo(client);
		}
	}
	v4l_dbg(1, client, "thread: exit\n");
	v4l_dbg(1, msp_debug, client, "thread: exit\n");
	return 0;
}

@@ -648,22 +648,22 @@ int msp3410d_thread(void *data)
	struct msp_state *state = i2c_get_clientdata(client);
	int val, i, std;

	v4l_dbg(1, client, "msp3410 daemon started\n");
	v4l_dbg(1, msp_debug, client, "msp3410 daemon started\n");

	for (;;) {
		v4l_dbg(2, client, "msp3410 thread: sleep\n");
		v4l_dbg(2, msp_debug, client, "msp3410 thread: sleep\n");
		msp_sleep(state,-1);
		v4l_dbg(2, client, "msp3410 thread: wakeup\n");
		v4l_dbg(2, msp_debug, client, "msp3410 thread: wakeup\n");

	restart:
		v4l_dbg(1, client, "thread: restart scan\n");
		v4l_dbg(1, msp_debug, client, "thread: restart scan\n");
		state->restart = 0;
		if (kthread_should_stop())
			break;

		if (state->mode == MSP_MODE_EXTERN) {
			/* no carrier scan needed, just unmute */
			v4l_dbg(1, client, "thread: no carrier scan\n");
			v4l_dbg(1, msp_debug, client, "thread: no carrier scan\n");
			msp_set_audio(client);
			continue;
		}
@@ -682,8 +682,8 @@ int msp3410d_thread(void *data)
			std = (state->v4l2_std & V4L2_STD_NTSC) ? 0x20 : 1;
		state->watch_stereo = 0;

		if (debug)
			v4l_dbg(1, client, "setting standard: %s (0x%04x)\n",
		if (msp_debug)
			v4l_dbg(1, msp_debug, client, "setting standard: %s (0x%04x)\n",
			       msp_standard_std_name(std), std);

		if (std != 1) {
@@ -700,22 +700,22 @@ int msp3410d_thread(void *data)
				val = msp_read_dem(client, 0x7e);
				if (val < 0x07ff)
					break;
				v4l_dbg(1, client, "detection still in progress\n");
				v4l_dbg(1, msp_debug, client, "detection still in progress\n");
			}
		}
		for (i = 0; msp_stdlist[i].name != NULL; i++)
			if (msp_stdlist[i].retval == val)
				break;
		v4l_dbg(1, client, "current standard: %s (0x%04x)\n",
		v4l_dbg(1, msp_debug, client, "current standard: %s (0x%04x)\n",
			msp_standard_std_name(val), val);
		state->main   = msp_stdlist[i].main;
		state->second = msp_stdlist[i].second;
		state->std = val;

		if (amsound && !state->radio && (state->v4l2_std & V4L2_STD_SECAM) &&
		if (msp_amsound && !state->radio && (state->v4l2_std & V4L2_STD_SECAM) &&
				(val != 0x0009)) {
			/* autodetection has failed, let backup */
			v4l_dbg(1, client, "autodetection failed,"
			v4l_dbg(1, msp_debug, client, "autodetection failed,"
				" switching to backup standard: %s (0x%04x)\n",
				msp_stdlist[8].name ? msp_stdlist[8].name : "unknown",val);
			val = 0x0009;
@@ -798,7 +798,7 @@ int msp3410d_thread(void *data)
			watch_stereo(client);
		}
	}
	v4l_dbg(1, client, "thread: exit\n");
	v4l_dbg(1, msp_debug, client, "thread: exit\n");
	return 0;
}

@@ -825,7 +825,7 @@ static void msp34xxg_set_source(struct i2c_client *client, int source)
	 */
	int value = (source & 0x07) << 8 | (source == 0 ? 0x30 : 0x20);

	v4l_dbg(1, client, "set source to %d (0x%x)\n", source, value);
	v4l_dbg(1, msp_debug, client, "set source to %d (0x%x)\n", source, value);
	/* Loudspeaker Output */
	msp_write_dsp(client, 0x08, value);
	/* SCART1 DA Output */
@@ -840,7 +840,7 @@ static void msp34xxg_set_source(struct i2c_client *client, int source)
	 * 0x7f0 = forced mono mode
	 */
	/* a2 threshold for stereo/bilingual */
	msp_write_dem(client, 0x22, stereo_threshold);
	msp_write_dem(client, 0x22, msp_stereo_thresh);
	state->source = source;
}

@@ -897,28 +897,28 @@ int msp34xxg_thread(void *data)
	struct msp_state *state = i2c_get_clientdata(client);
	int val, std, i;

	v4l_dbg(1, client, "msp34xxg daemon started\n");
	v4l_dbg(1, msp_debug, client, "msp34xxg daemon started\n");

	state->source = 1; /* default */
	for (;;) {
		v4l_dbg(2, client, "msp34xxg thread: sleep\n");
		v4l_dbg(2, msp_debug, client, "msp34xxg thread: sleep\n");
		msp_sleep(state, -1);
		v4l_dbg(2, client, "msp34xxg thread: wakeup\n");
		v4l_dbg(2, msp_debug, client, "msp34xxg thread: wakeup\n");

	restart:
		v4l_dbg(1, client, "thread: restart scan\n");
		v4l_dbg(1, msp_debug, client, "thread: restart scan\n");
		state->restart = 0;
		if (kthread_should_stop())
			break;

		/* setup the chip*/
		msp34xxg_reset(client);
		std = standard;
		std = msp_standard;
		if (std != 0x01)
			goto unmute;

		/* watch autodetect */
		v4l_dbg(1, client, "triggered autodetect, waiting for result\n");
		v4l_dbg(1, msp_debug, client, "triggered autodetect, waiting for result\n");
		for (i = 0; i < 10; i++) {
			if (msp_sleep(state, 100))
				goto restart;
@@ -929,16 +929,16 @@ int msp34xxg_thread(void *data)
				std = val;
				break;
			}
			v4l_dbg(2, client, "detection still in progress\n");
			v4l_dbg(2, msp_debug, client, "detection still in progress\n");
		}
		if (std == 1) {
			v4l_dbg(1, client, "detection still in progress after 10 tries. giving up.\n");
			v4l_dbg(1, msp_debug, client, "detection still in progress after 10 tries. giving up.\n");
			continue;
		}

	unmute:
		state->std = std;
		v4l_dbg(1, client, "current standard: %s (0x%04x)\n",
		v4l_dbg(1, msp_debug, client, "current standard: %s (0x%04x)\n",
			msp_standard_std_name(std), std);

		/* unmute: dispatch sound to scart output, set scart volume */
@@ -950,7 +950,7 @@ int msp34xxg_thread(void *data)

		msp_write_dem(client, 0x40, state->i2s_mode);
	}
	v4l_dbg(1, client, "thread: exit\n");
	v4l_dbg(1, msp_debug, client, "thread: exit\n");
	return 0;
}

@@ -976,7 +976,7 @@ void msp34xxg_detect_stereo(struct i2c_client *client)
		 * this is a problem, I'll handle SAP just like lang1/lang2.
		 */
	}
	v4l_dbg(1, client, "status=0x%x, stereo=%d, bilingual=%d -> rxsubchans=%d\n",
	v4l_dbg(1, msp_debug, client, "status=0x%x, stereo=%d, bilingual=%d -> rxsubchans=%d\n",
		status, is_stereo, is_bilingual, state->rxsubchans);
}

Loading