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

Commit 2425bb3d authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

em28xx: regression fix: use DRX-K sync firmware requests on em28xx



As em28xx-dvb will always be initialized asynchronously, there's
no need anymore for a separate thread to load the DRX-K firmware.

Fixes a known regression with kernel 3.6 with tda18271 driver
and asynchronous DRX-K firmware load.

Antti tested it with the following hardware:
        Hauppauge WinTV HVR 930C
        MaxMedia UB425-TC
        PCTV QuatroStick nano (520e)

Tested-by: default avatarAntti Palosaari <crope@iki.fi>
Cc: stable@kernel.org #	for Kernel 3.6 - please note that driver location has changed
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 8e30783b
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -318,6 +318,7 @@ static struct drxk_config terratec_h5_drxk = {
	.no_i2c_bridge = 1,
	.no_i2c_bridge = 1,
	.microcode_name = "dvb-usb-terratec-h5-drxk.fw",
	.microcode_name = "dvb-usb-terratec-h5-drxk.fw",
	.qam_demod_parameter_count = 2,
	.qam_demod_parameter_count = 2,
	.load_firmware_sync = true,
};
};


static struct drxk_config hauppauge_930c_drxk = {
static struct drxk_config hauppauge_930c_drxk = {
@@ -327,6 +328,7 @@ static struct drxk_config hauppauge_930c_drxk = {
	.microcode_name = "dvb-usb-hauppauge-hvr930c-drxk.fw",
	.microcode_name = "dvb-usb-hauppauge-hvr930c-drxk.fw",
	.chunk_size = 56,
	.chunk_size = 56,
	.qam_demod_parameter_count = 2,
	.qam_demod_parameter_count = 2,
	.load_firmware_sync = true,
};
};


struct drxk_config terratec_htc_stick_drxk = {
struct drxk_config terratec_htc_stick_drxk = {
@@ -340,12 +342,14 @@ struct drxk_config terratec_htc_stick_drxk = {
	.antenna_dvbt = true,
	.antenna_dvbt = true,
	/* The windows driver uses the same. This will disable LNA. */
	/* The windows driver uses the same. This will disable LNA. */
	.antenna_gpio = 0x6,
	.antenna_gpio = 0x6,
	.load_firmware_sync = true,
};
};


static struct drxk_config maxmedia_ub425_tc_drxk = {
static struct drxk_config maxmedia_ub425_tc_drxk = {
	.adr = 0x29,
	.adr = 0x29,
	.single_master = 1,
	.single_master = 1,
	.no_i2c_bridge = 1,
	.no_i2c_bridge = 1,
	.load_firmware_sync = true,
};
};


static struct drxk_config pctv_520e_drxk = {
static struct drxk_config pctv_520e_drxk = {
@@ -356,6 +360,7 @@ static struct drxk_config pctv_520e_drxk = {
	.chunk_size = 58,
	.chunk_size = 58,
	.antenna_dvbt = true, /* disable LNA */
	.antenna_dvbt = true, /* disable LNA */
	.antenna_gpio = (1 << 2), /* disable LNA */
	.antenna_gpio = (1 << 2), /* disable LNA */
	.load_firmware_sync = true,
};
};


static int drxk_gate_ctrl(struct dvb_frontend *fe, int enable)
static int drxk_gate_ctrl(struct dvb_frontend *fe, int enable)